{"version":3,"sources":["dist/js/ew.js"],"names":["ew$1","$$1","luxon","_interopDefaultLegacy","e","default","ew__default","$__default","luxon__default","DateTime$1","DateTime","Validators","__proto__","userLevelId","el","ew","checkInteger","value","language","phrase","parseInt","userLevelName","id","elId","document","getElementById","name","trim","level","sameText","includes","toLowerCase","required","fieldName","_$el$data","$el","$p","closest","data","substring","css","hasValue","replace","fileRequired","elFn","mismatchPassword","startsWith","elPwd","between","x","z","endsWith","val","toUpperCase","passwordStrength","isMaskedPassword","hasClass","username","raw","match","RegExp","escapeRegExChars","INVALID_USERNAME_CHARACTERS","password","ENCRYPTED_PASSWORD","INVALID_PASSWORD_CHARACTERS","email","getValue","checkEmail","emails","cnt","err","checkEmails","datetime","format","checkDate","time","checkTime","float","checkNumber","range","min","max","checkRange","integer","phone","checkPhone","zip","checkZip","creditCard","checkCreditCard","ssn","checkSsn","guid","checkGuid","regex","pattern","checkByRegEx","url","checkUrl","custom","fn","_len","arguments","length","args","Array","_key","captcha","recaptcha","_grecaptcha","grecaptcha","getResponse","dataset","minDate","minDateTime","formatPattern","HTMLElement","minValue","minFormat","parseDate","Date","fromJSDate","zone","formatDateTime","DATE_FORMAT","TIME_FORMAT","maxDate","maxDateTime","maxValue","maxFormat","parseNumber","_defineProperties","target","props","i","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","o","p","setPrototypeOf","_inheritsLoose","subClass","superClass","create","constructor","_defineProperty","obj","batchSettings","type","contentType","processData","dataType","toJSON","JSON","stringify","parse","batchSetup","options","extend","Batch","batch","func","this","undefined","parent","ajaxSetup","_batch","requests","add","_func$name","call","clear","send","instance","success","parentSuccess","status","xhr","map","request","settings","childSuccess","statusText","_deliver","ajax","_addRequest","push","_responses$error","_responses$error2","responses","error","description","alert","each","response","_request$settings$com","_request$settings$suc","complete","$ajax","FormBase","pageId","$self","_initiated","element","$element","htmlForm","initSearchPanel","modified","emptyRow","multiPage","autoSuggests","lists","formKeyCountName","submitWithFetch","enableOnInit","filterList","disableForm","body","style","cursor","form","getForm","elements","filter","prop","addClass","trigger","enableForm","$elements","removeClass","not","appendHidden","$form","$dp","attr","find","ar","serializeArray","forEach","appendTo","canSubmit","async","_await$this$validate","_this$validate","updateTextArea","validate","$dps","dp","j","test","$els","result","evt","Event","originalEvent","isDefaultPrevented","isObject","submit","_e$originalEvent","_e$originalEvent$subm","formAction","submitter","parseUrl","pathname","setAttribute","getAttribute","method","serialize","fetch","finally","getList","_this$getElement","_this$getElement$data","field","getElement","compileTemplates","values","list","template","isString","templates","getOptionTemplate","_this$element","_this$element2","tagName","getElements","fixId","multiple","rowindex","t","split","prefix","isNumber","updateList","immediate","_Object$entries$find","entries","entry","parents","parentFields","slice","lookupOptions","updateOptions","getOptionValues","updateLists","_form$querySelector","isUndefined","querySelector","selector","_ref","join","_ref2","isArray","bind","deferreds","batchSize","ajaxBatchSize","b","splice","getApiUrl","API_LOOKUP_ACTION","when","then","source","fail","console","log","always","createAutoSuggest","assign","limit","AUTO_SUGGEST_MAX_ENTRIES","autoSuggestSettings","AutoSuggest","initEditors","ed","active","save","destroyEditor","destroy","onError","msg","initUpload","index","later","AJAX_DELAY","upload","setupFilters","filters","$sf","toggleClass","$df","$delete","$save","saveFilters","CLIENT_SEARCH_FILTER","localStorage","setItem","PROJECT_NAME","SERVER_SEARCH_FILTER","currentPage","done","_result$","off","on","prompt","input","html","sanitize","prevAll","remove","next","$submenu","insertBefore","cmd","refresh","setLayout","append","one","init","hasFormData","text","hide","render","loadjs","ready","setTimeout","is","$tab","$panel","$container","width","CONFIRM_CANCEL","href","window","location","from","matches","forms","beforeSend","before","Field","fldvar","validators","invalid","validator","addValidator","_proto","addError","_this$_error","_error","clearErrors","clearValidators","_element","shouldValidate","updateFeedback","resetInvalid","_this$_element","_this$_element$classL","_this$_element$closes","_this$_element$closes2","classList","contains","server","fieldContainerSelector","innerHTML","errorMessage","_this$_element$closes3","feedback","setInvalid","focus","setFocus","canFocus","_el$style","_el$classList","hidden","readonly","disabled","display","get","_checkbox","checked","set","_this$_element2","_this$_element2$id","activeElement","Form","_FormBase","_this","tryFocus","addField","fields","getField","addFields","apply","addCustomError","rowIndex","setFieldElement","delay","makeVisible","focusDelay","preventScroll","autoFocusPreventScroll","_focused","_this$_error2","getFocusable","getFieldElements","autoFocus","detailpage","querySelectorAll","_ew$forms$get","TABLE_BASIC_SEARCH","gotoPageByElement","$pane","validateFields","getCurrentRowIndex","row","_form$querySelector2","_e$currentTarget","validateRequired","updateSelected","addcnt","inlineAdd","action","currentTarget","keycnt","keyCount","gridinsert","rowcnt","_await$this$customVal","_this$customValidate","String","customValidate","returnFocus","detailpages","_await$frm$validate","frm","_this$getForm$dataset","getFieldValue","_ew$forms$get2","some","_this$getForm$querySe","FormBuilder","setId","setPageId","setLists","setQueryBuilderLists","autoFillTargetFields","childFields","filterFieldVars","filterFields","addList","setFields","setValidate","setCustomValidate","setValidateRequired","setSubmit","setFormKeyCountName","setEmptyRow","setMultiPage","setSubmitWithFetch","setFilterList","setInitSearchPanel","setEnableOnInit","build","MultiPage","context","AjaxLookup","_this$list$parentFiel","_this$list$parentFiel2","elementId","formElement","m","pf","debounce","recordCount","formatResult","opt","isAutoSuggest","jsRenderHelpers","displayValue","generateRequest","page","LANGUAGE_ID","getUserParams","getOptionValue","getUrl","query","start","params","URLSearchParams","q","n","rnd","random","toString","prepare","transform","results","totalRecordCount","records","toSelect2Data","every","item","hasOwnProperty","Set","gf","group","children","lf","df","df2","df3","df4","_isAutoSuggest","_AjaxLookup","$input","minWidth","maxHeight","highlight","hint","minLength","classNames","forceSelection","forceSelect","lineHeight","paddingY","lookupAllDisplayFields","d","setValue","ta","isOpen","menu","empty","$item","getActiveSelectable","typeahead","close","timer","loadingMore","tpl","suggestion","footer","syncResults","asyncResults","cancel","getSyncResults","Infinity","$menu","$node","$dataset","suggestionHeight","outerHeight","suggestions","rendered","count","h","scrollTop","toggle","loadingMoreTimer","_loadingMoreTimer","$footer","_loadingMoreTimer2","offset","top","getMore","v","findIndex","option","selected","SelectionListOption","datasets","_append","Forms","_ew$getForm","_forms","f","ids","keys","lang","Select2Language","errorLoading","inputTooLong","overChars","maximum","inputTooShort","remainingChars","minimum","maximumSelected","noResults","searching","removeAllItems","removeItem","search","Utils$3","select2","amd","require","_defined","Select2ResultsDecorator","decorated","$results","displayMessage","escapeMarkup","hideLoading","$message","message","className","sort","cols","len","$row","last","$option","pagination","more","createElement","c","attrs","role","Element","msMatchesSelector","webkitMatchesSelector","_resultId","title","StoreData","Utils$2","ModalResults","container","_container$listeners$","listeners","pop","$highlighted","getHighlightedResults","GetData","_mousedown","$this","ModalSearch","$search","removeAttr","KEYS","$","PRINT_SCREEN","DropdownSearchDecorator","handleSearch","which","TAB","SHIFT","CTRL","ALT","_keyUpPrevented","term","Select2AttachBody","_AttachBody","_attachPositioningHandler","events","handler","_positionDropdown","_resizeDropdown","_detachPositioningHandler","_showDropdown","$dropdownContainer","$dropdownParent","_popper","Popper","createPopper","placement","IS_RTL","modifiers","enabled","_this$_popper2","update","_this$_popper3","ModalAttachBody","_bindContainerResultHandlers","stopPropagation","position","$dropdown","_containerResultsHandlersBound","$modal","_self$$search$","_updateDropdown","_e$originalEvent2","detach","end","oldValue","modal","event","draggable","FilterAttachBody","_hideDropdown","_this$_popper","outerWidth","_dropdownButton$close","contents","clone","triggerHandler","selection","_handleClear","$filterDropdown","dropdownButton","reference","DropdownAttachBody","_defined$1","AllowClear$1","Utils$1","FilterAllowClear","_AllowClear","_","isDisabled","$clear","$selection","previousVal","placeholder","unselectData","prevented","Select2MultipleSelectionDecorator","Select2DataAdapterDecorator","_data$element","ResultsList","SingleSelection","MultipleSelection","Placeholder","AllowClear","SelectionSearch","EventRelay","Utils","Translation","SelectData","ArrayData","AjaxData","Tags","Tokenizer","MinimumInputLength","MaximumInputLength","MaximumSelectionLength","Dropdown","DropdownSearch","HidePlaceholder","InfiniteScroll","MinimumResultsForSearch","SelectOnClose","CloseOnSelect","DropdownCSS","TagsSearchHighlight","Defaults","defaults","dataAdapter","Decorate","minimumInputLength","maximumInputLength","maximumSelectionLength","tags","tokenSeparators","tokenizer","resultsAdapter","columns","customOption","iconClass","templateResult","selectOptions","_templateResult","loading","selectOnClose","dropdownAdapter","minimumResultsForSearch","closeOnSelect","dropdownCssClass","dropdown","selectionAdapter","allowClear","translations","dir","currentUrl","URL","$document$1","$body","initIcons","_e$target","tooltipOptions","IS_MOBILE","tooltip","_bootstrap$Tooltip$ge","bootstrap","Tooltip","getInstance","initPasswordOptions","_e$target2","pStrength","MIN_PASSWORD_STRENGTH","changeBackground","backgrounds","passwordValidFrom","onPasswordStrengthChanged","strength","percentage","$pst","$pb","pct","valid","setValid","pGenerator","passwordLength","GENERATE_PASSWORD_LENGTH","uppercase","GENERATE_PASSWORD_UPPERCASE","lowercase","GENERATE_PASSWORD_LOWERCASE","numbers","GENERATE_PASSWORD_NUMBER","specialChars","GENERATE_PASSWORD_SPECIALCHARS","onPasswordGenerated","pwd","PATH_BASE","API_URL","qs","route","encodeURIComponent","_pathname","_hash","hash","searchParams","createSearchParams","getSearchParams","setSearchParams","mergeSearchParams","buildUrl","_len2","_key2","has","setSearchParam","deleteSearchParam","_len3","names","_key3","delete","PAGE_LAYOUT","sanitizeUrl","decodeURIComponent","initExportLinks","_e$target3","fileDownload","getchartParams","preventDefault","TOKEN_NAME_KEY","TOKEN_NAME","ANTIFORGERY_TOKEN_KEY","ANTIFORGERY_TOKEN","initMultiSelectCheckboxes","_e$target4","$cbs","_update","getError","_result$error","_result$error2","failureMessage","isHtml","API_EXPORT_ACTION","swal","Swal","fire","sweetAlertSettings","showConfirmButton","allowOutsideClick","allowEscapeKey","willOpen","showLoading","_fetch","ct","headers","_getError","json","blob","createObjectURL","Blob","a","cd","download","appendChild","click","objectUrl","revokeObjectURL","catch","lazyLoad","_e$target5","LAZY_LOAD","img","LAZY_LOAD_DELAY","src","initLightboxes","_e$target6","USE_COLORBOX","lightboxSettings","current","previous","xhrError","imgError","colorbox","rel","initPdfObjects","_e$target7","EMBED_PDF","PDFObjectOptions","PDFObject","embed","fallbackLink","initTooltips","_e$target8","popover","popoverOptions","parseJson","searchOperatorChange","parm","$fld","$fld2","hasY","$cond","hasCond","$and","opr","$opr2","opr2","isBetween","isEmptyOpr","isEmptyOpr2","hideOpr2","hideX","hideY","initForms","_e$target9","isFunction$1","_alert","cb","config","confirmButtonText","customClass","htmlContainer","show","isConfirmed","_prompt","cfg","_config","showCancelButton","cancelButtonText","inputValidator","toast","toastOptions","Toasts","first","showToast","class","autohide","autoHideSuccessMessage","autoHideSuccessMessageDelay","$f","parentId","change","_obj","_batch$send","els","getId","isTextbox","isFilter","$elf","typ","elf","_updateOptions","autoFill","fo","frmo","arp","$obj","arr","clearOptions","addOpt","newOption","selectOption","_updateSibling","isBoolean","ds","isNativeSelectOne","isModalLookup","MULTIPLE_OPTION_SEPARATOR","jqXHR","textStatus","errorThrown","root","exportCustom","divId","exportType","tblVar","_div$children$","div","customexport","exportEmail","convertToBool","charts","exportCharts","chart","chartEngine","streamType","stream","toBase64Image","fileName","_export","export","exportSelected","emailForm","keySelected","postParams","_document$querySelect","$iframe","isHiddenTextArea","_el$dataset","modalLookup","_el$dataset2","isSelect2","isBooleanCheckbox","isHidden","reset","once","MOBILE_DETECT","version","scrollIntoView","_OverlayScrollbars","OverlayScrollbars","scroll","selectAll","clearSelected","tbl","rowIndexes","r","rows","clearDelete","$tr","siblings","addBack","clickDelete","setupTable","force","HTMLTableElement","$tbl","$rows","isset","tBodies","$target","cells","parentsUntil","RESPONSIVE_TABLE_CLASS","cell","rowSpan","clientHeight","offsetHeight","attach","$r","setupGrid","grid","$grid","htmlDecode","$root","selectors","getFieldSelector","table","s1","s2","flatMap","tag","sel","eq","getAncestorBy","node","parentNode","_node","nodeType","o1","o2","headerCase","str","charAt","samePath","p1","p2","ar1","ar2","LIST_ACTION","VIEW_ACTION","EDIT_ACTION","isValue","getOptionTexts","lo","hasAttribute","removeAll","valueSeparator","sep","reduce","optionHtml","OPTION_HTML_TEMPLATE","addOption","_obj$querySelector","optGroup","g","label","_obj$dataset","_forms$get$getList","_forms$get$getList$pa","_obj$options$","selectedIndex","opts","autoselect","_init$headers","_init$headers$get","Headers","isApi","API_JWT_TOKEN","IS_WINDOWS_AUTHENTICATION","API_JWT_AUTHORIZATION_HEADER","_ajaxStop","lastPageSubmit","executeScript","replaceAll","matchAll","createRange","createContextualFragment","s","addScript","stripScript","scr","HTMLScriptElement","removeScript","getContent","keepScripts","_m$","$content","getOptions","modalDialogHide","$dlg","removeData","showing","reload","dest_array","destEl","v0","pid","post","$tt","trig","Popover","content","wd","_getTipElement","initSearchFilters","_e$target11","btn","IS_LOGGEDIN","IS_SYS_ADMIN","CURRENT_USER_NAME","_frm$filterList$filte","_frm$filterList","formId","getItem","_ref3","_ref4","copyToClipboard","_source","_source2","innerText","left","select","execCommand","removeChild","object_value","showMessage","arg","_arg$target","doc","$div","$alert","$heading","w","$toast","Math","floor","Pace","_forms$get","ajaxSend","jqxhr","allowed","hostname","setRequestHeader","ajaxStart","ajaxStop","ajaxError","Interval","dt","fromSQL","fromSeconds","toFormat","locale","numberingSystem","getNumberingSystem","parseDateTime","fromFormat","redirect","_ew$vars","newUrl","vars","login","protocol","host","isMediumScreen","matchMedia","screenMediaQuery","promise","$overlay","overlayTemplate","Response","validation","warningMessage","successMessage","$html","unshift","history","pushState","$old","$new","$tmpl","$searchType","TABLE_BASIC_SEARCH_TYPE","replaceWith","initPage","_bootstrap$Tooltip$ge7","_fixLayoutHeightTimer","functions","Select2Utils","Select2Defaults","createSelect","selectId","lookup","processResults","_data$records$length","_data$records","transport","failure","$select","_$$data$$dropdown$fin","createModalLookup","_data$records$length2","_data$records2","_$$data$$dropdown$fin2","createFilter","_data$records$length3","_data$records3","_$$data$$dropdown$fin3","getSearchParam","setSessionTimer","timeoutTime","keepAliveTimer","counter","useKeepAlive","SESSION_KEEP_ALIVE_INTERVAL","IS_AUTOLOGIN","keepAlive","API_SESSION_ACTION","token","resetTimer","SESSION_TIMEOUT_COUNTDOWN","SESSION_TIMEOUT","timeout","timerInterval","timerProgressBar","setInterval","getHtmlContainer","sec","timeleft","round","getTimerLeft","textContent","willClose","clearInterval","setTimer","dismiss","DismissReason","TIMEOUT_URL","keepAliveInterval","updateDropdownPosition","prev","isFunction","setSearchType","searchType","phraseId","getQueryBuilderFilterInput","rule","_document$getElementB","_document$getElementB2","_span$innerHTML$repla","fldVar","tmplId","span","cloneNode","queryBuilderErrorClass","$0","$1","$2","getQueryBuilderValueSetter","getQueryBuilderFilterValidation","callback","$value","errors","operator","nb_inputs","$invalid","applyTemplate","classId","isModal","_parent$querySelector","subtmpl","rowspan","childNodes","views","hasTag","jsRenderAttributes","scripts","tmpl","toggleGroup","idx","valueChanged","fobj","infix","fld","bool","oldEl","fnEl","setLanguage","submitAction","_window$msg","isPostBack","isMultiple","_success","_submit","isDismissed","removeSpaces","clearError","jquery","sortUrl","sortType","shiftKey","ctrlKey","ctrl","inlineAction","_args$evt","$btn","$detached","ewAction","$record","curindex","_fail","_always","_deleted","_disableInlineButtons","_enableInlineButtons","_getTable","_updateRowIndexes","$data","inline","rowtype","Promise","resolve","prepend","_submitSuccess","$main","ROWTYPE_VIEW","ROWTYPE_ADD","returnUrl","_$grid$data","modalDialogShow","confirmDelete","selectAllKeys","selectKey","chk","addGridRow","_bootstrap$Tooltip$ge2","$tpl","$lastrow","suffix","$keycnt","FORM_KEY_COUNT_NAME","FORM_ROW_ACTION_NAME","attributes","dispose","after","scrollHeight","deleteGridRow","_bootstrap$Tooltip$ge3","rowidx","_delete","$keyact","htmlEncode","sameString","optionsHtml","MAX_OPTION_COUNT","enable2FA","TWO_FACTOR_AUTHENTICATION_TYPE","API_2FA_ACTION","API_2FA_SHOW","_result$error4","imageUrl","showLoaderOnConfirm","isLoading","getConfirmButton","disableInput","getImage","onload","enableInput","getInput","preConfirm","API_2FA_VERIFY","showValidationMessage","_result$error3","_result$error7","inputValue","account","API_2FA_SEND_OTP","_result$error5","_result$error6","disable2FA","API_2FA_RESET","_result$error8","_result$error9","sendOTP","_result$error10","_result$error11","showBackupCodes","showDenyButton","showLoaderOnDeny","denyButtonText","denyButton","disableButtons","API_2FA_BACKUP_CODES","codes","enableButtons","preDeny","getDenyButton","API_2FA_NEW_BACKUP_CODES","addOptionDialogShow","_args$evt2","lnk","addOptionDialog","_results","objName","API_OBJECT_NAME","re","linkField","dfs","displayFields","ffs","pfs","lfv","ff","txt","obj2","_results2","_results3","API_ADD_ACTION","nodeName","_args$evt3","_bootstrap$Tooltip$ge4","_args$evt4","_args$evt4$currentTar","_args$evt5","_args$evt5$currentTar","_$dlg$data","_$dlg$data2","modalDialog","size","_caption","$lnk","caption","_hide","handleResult","_current","view","_createButtons","_button","_return","_resp$headers$get","resp","isJson","hasErrors","lnkData","$dlglnk","stopImmediatePropagation","Modal","_focustrap","__handleFocusin","_handleFocusin","_e$target10","Accept","importDialogShow","_args$evt6","_bootstrap$Tooltip$ge5","importDialog","sse","$dropzone","$bd","$progress","classname","$msg","hideMessage","showProgress","pc","updateProgress","tcnt","totalCount","scnt","successCount","fcnt","failCount","filename","file","addRow","_index","initialized","Tabulator","autoColumns","autoColumnsDefinitions","definitions","column","headerSort","resizable","visible","headerSortTristate","formatter","textOverflow","getRow","getData","importTabulatorOptions","importComplete","_sse","fileResults","files","fileResult","rollbacked","IMPORT_MAX_FAILURES","saveImport","importFail","_sse2","_table2","clearData","API_ACTION_NAME","API_IMPORT_ACTION","API_FILE_TOKEN_NAME","EventSource","addEventListener","importUploadOptions","acceptFileTypes","IMPORT_FILE_ALLOWED_EXTENSIONS","fileupload","API_UPLOAD_ACTION","autoUpload","singleFileUploads","dropZone","messages","maxFileSize","maxNumberOfFiles","minFileSize","SESSION_ID","_data$result","_data$result$files","importfiles","ok","filetoken","_table","importFiles","processfail","progressall","loaded","total","uploadProgress","hdr","_this$querySelector","_table3","_table4","removeAttribute","emailDialogShow","emailDialog","_e$target$querySelect","_$$closest$find$data","MAX_EMAIL_RECIPIENT","showDrillDown","pos","spinnerTemplate","draggableOptions","boundary","cache","$tip","responseText","_result$error12","_result$error13","setContent","_convert","API_LIST_ACTION","API_VIEW_ACTION","API_DELETE_ACTION","responseJSON","toggleSearchOperator","toggleLayout","_bootstrap$Tooltip$ge6","layout","DECIMAL_SEPARATOR","min_value","max_value","creditcard_string","tempdigit","doubledigit","checkdigit","email_cnt","arEmails","nid","$ft","$fn","$fa","$label","_confirmDelete","confirm","uploadUrl","API_JQUERY_UPLOAD_ACTION","_downloadTemplate","_uploadTemplate","formData","session","deepAssign","multipart","loadImageFileTypes","loadVideoFileTypes","loadAudioFileTypes","filesContainer","uploadTemplateId","downloadTemplateId","uploadTemplate","downloadTemplate","previewMaxWidth","UPLOAD_THUMBNAIL_WIDTH","previewMaxHeight","UPLOAD_THUMBNAIL_HEIGHT","uploadOptions","MULTIPLE_UPLOAD_SEPARATOR","fid","indexOf","_data$files","l","_data$files2","_data$result2","_data$result2$files","_data$files3","getLocaleFromPlatform","NUMBERING_SYSTEM","numeralSystem","delimiters","thousands","GROUPING_SEPARATOR","decimal","Intl","NumberFormat","resolvedOptions","formatTimeSpan","allDay","to","isValid","equals","startOf","minus","interval","days","Number","isInteger","parseTime","formatCurrency","CURRENCY_FORMAT","formats","currency","CURRENCY_SYMBOL","formatNumber","NUMBER_FORMAT","formatPercent","PERCENT_FORMAT","_e$target12","$tables","initPanels","renderJsTemplates","_localStorage$getItem","inputs","$rpt","mh","USE_JAVASCRIPT_MESSAGE","togglePassword","$i","updateChart","$debug","isMobile","isDark","fixLayoutHeight","addEventHandlers","fullCalendar$1","fullCalendar","calendar","updateTable","eventFields","addUrl","viewUrl","editUrl","deleteUrl","copyUrl","fullCalendarOptions","eventPopoverOptions","processJson","convertValue","_calendar$getEventByI","getEventById","addEvent","curEvent","groupId","setStart","setEnd","setAllDay","setExtendedProp","setProp","processEvent","info","relatedEvents","apiAction","API_EDIT_ACTION","processRequest","revert","reject","toPlainObject","collapseExtendedProps","toISOString","apiUrl","getFldParm","currentTable","urlAddId","addEventDialogShow","startStr","endStr","startFld","endFld","viewEventDialogShow","customButtons","headerToolbar","bsDropdown","getOrCreatePopover","Default","getOrCreateInstance","seq","shift","_Array$from$find$repl","_Array$from$find","popoverClass","_templateFactory","generateGetBoundingClientRect","y","rect","getBoundingClientRect","jsEvent","offsetX","offsetY","height","right","bottom","virtualElement","useContextMenu","bsToggle","clearMenus","_menu","eventId","editEventDialogShow","deleteEvent","drop","draggedEl","eventReceive","eventDragStart","_bootstrap$Popover$ge","eventDrop","eventResize","eventClick","_bootstrap$Popover$ge2","button","open","usePopover","_getOrCreatePopover","showViewPageOnEventClick","eventMouseEnter","_bsDropdown","_getOrCreatePopover2","_isShown","eventMouseLeave","_bsDropdown2","_bootstrap$Popover$ge3","FullCalendar","Calendar","isPushNotificationSupported","navigator","urlBase64ToUint8Array","base64String","base64","repeat","rawData","atob","outputArray","Uint8Array","charCodeAt","sendSubscriptionToServer","subscription","getKey","contentEncoding","PushManager","supportedContentEncodings","FormData","endpoint","btoa","fromCharCode","createSubscription","API_PUSH_NOTIFICATION_ACTION","API_PUSH_NOTIFICATION_SUBSCRIBE","serviceWorkerReg","serviceWorker","pushManager","subscribe","userVisibleOnly","applicationServerKey","PUSH_SERVER_PUBLIC_KEY","getSubscription","setSubscription","inst","subscribeNotification","Notification","permission","_await$getSubscriptio","requestPermission","checkSubscription","unsubscribeNotification","res","unsubscribe","API_PUSH_NOTIFICATION_DELETE","SERVICE_WORKER","register","scope","webpush","pushNotificationDialogShow","pushDialog","successes","acc","cur","failures","inited","latlng","useSingleMap","showAllMarkers","useMarkerClusterer","ext","maps","singleMapHeight","singleMapWidth","showMapOnTop","createMap","createBounds","createMarkerClusterer","marker","createMarker","fitBounds","promises","address","geocodingDelay","geocode","latitude","longitude","isNaN","createLatLng","all","MobileDetect","userAgent","mobile","formid","formID","pageIndex","maxPageIndex","minPageIndex","pageIndexes","$pages","$collapses","isTab","isCollapse","hideDisabledButton","hideInactivePages","lockTabs","hideTabs","showPagerTop","showPagerBottom","pagerTemplate","_show","_properties","pageShow","gotoPage","$page","gotoPageByIndex","gotoPageByElementId","togglePage","$tabs","google","setCenter","$bodies","$document","debugMode","DEBUG","animate","panel","Collapse","actions","_this$form","pageSize","zIndex","blueimp","processQueue","fileTypes","cropperOptions","cropperCanvasOptions","widget","processActions","cropImage","dfd","Deferred","that","cropperDialog","Cropper","getCroppedCanvas","toBlob","File","resolveWith","rejectWith","isFinite","isDate","periodic","clearTimeout","rec","_this$data","_this$data2","toNumber","toDate","_ew$vars$tables","_ew$vars$tables$table","_ew$vars$tables$table2","_ew$vars$tables$table3","tables","clientFormatPattern","toJsDate","toJSDate","mutationList","mutation","MutationObserver","observe","_parent","attributeFilter","attributeOldValue","subtree","isNil","isNaNNumber","isFiniteNumber","multiplyByPowerOfTen","number","powerOfTenExponent","NaN","numAsString","indexOfE","log10","numberThatIsPowerOfTen","LOG10E","toObject","entriesResolver","object","escapeRegexString","string","memoize","cacheKey","powerOf10LookupObject","currentValue","additionalZeros","isPowerOfTen","toBase","valueUnit","unitScale","base","scale","toBaseMultiplier","convertUnit","originUnit","targetUnit","valueAsBase","resolvedScale","conversionFactorFromBase","unitScaleDefinition","unit","convert","toBest","exclude","cutOffNumber","best","scaleUnit","absoluteResult","abs","scaleDefinition","stringRepeat","createUnitScaleFromLocaleAbbreviations","scaleItem","scaleItemIndex","formattedStringToNumber","inputString","_a","stringOriginal","stringWithLatinDigits","numericStringWithExtraInfo","numeralSystemMap","numericStringLength","numeralSystemToLatinSystemMap","digit","digitIndex","output","numericStringIndex","char","replaceNumeralSystemWithLatinNumbers","zeroFormat","nullFormat","decimalDelimiterFromLocale","stringWithDotDecimalDelimiter","abbreviationScalingFactor","abbreviations","abbreviationsSortedByLengthDesc","abbreviation","scapedAbbreviationForRegex","regexp","getScalingFactorFromAbbreviations","negativeFactor","numberAsString","code","ordinal","merge","newObject","argsLength","truncateNumber","ceil","getPatternParts","patternMask","isInEscapedPart","currentEscapedWord","parts","escaped","patternIncludes","patternRemoveEscapedText","patternReplace","searchValue","replaceValue","stringIncludes","splitStringInTwoParts","separator","indexOfSearchChar","countChars","stringChar","parsePattern","inputPattern","resolvedInputPattern","patternMaskAfterSignRule","signRules","patternWithoutEscapedText","negativeParentheses","forceSign","outputPatternMask","signRule","patternMaskAfterAbbreviationRule","abbreviationRules","compactUnit","compact","abbreviationRegExpResult","compactAuto","abbreviationRule","patternMaskAfterOptionalDecimalPlacesRule","optionalDecimalPlacesRules","optionalFractionDigits","optionalDecimalPlacesRule","outputPatternMaskWithoutEscapedText","decimalPlacesRules","patternPrecisionPart","minimumFractionDigits","maximumFractionDigits","trimmedPatternPrecisionPart","patternPrecisionPartWithoutClosingBracket","precisionSplitted","fractionDigits","decimalPlacesRule","minimumIntegerDigits","patternMaskIntegerPart","minimumIntegerDigitsRule","grouping","patternMaskAfterHandlingNumberPosition","numberPositionRule","patternMaskWithEnsuredSignPosition","addSignPositionIfItDoesNotExists","scaleValueWithAbbreviation","patternRules","forcedAbbreviationUnit","abbreviationsFromLocale","targetPowerOfTenExponent","k","scaleDefinitionFromLocale","closestPowerOfTenWithAvailableAbbreviation","distanceFromTarget","resolveForcedAbbreviationUnit","scaledValue","localizedUnit","roundNumber","precision","roundingFunction","resolvedPrecision","roundedScaledValue","numberToNonExponentialString","valueAsString","significand","exponent","exponentAsNumber","integerPartOfSignificand","fractionalPartOfSignificand","numberOfZerosToAdd","formatPositiveExponentResult","significandAsString","negativeExponentAbsoluteValue","outputIntegerPartOfSignificand","outputFractionalPartOfSignificand","firstCharInIntegerPart","formatNegativeExponentResult","numberToFixed","finiteNumber","fractionalPartOfValueAsString","targetFractionDigitsAmount","roundedValue","integerPart","fractionalPart","addTrailingZerosInFractionalPart","roundValueAndAddTrailingZeros","rounding","resolvedRoundingFunction","replaceDigitsWithNumeralSystem","numericString","scaleAndRoundValue","scaledValueLocalizedUnit","rescaledValue","rescaledValueLocalizedUnit","currentAbbreviationScale","newScaledValue","newScaledValueUnit","rescaleRoundedValue","numberToFormattedNumber","resolvedValue","localizedAbbreviationUnit","isValueNegative","signedZero","isValueZero","valueAsStringWithoutSign","removeSignIfExists","decimalPart","splitNumberIntegerAndDecimalParts","valueIntegerPartWithLeadingZeros","valueIntegerPartWithoutSign","addOrRemoveLeadingZerosToValue","valueIntegerPartWithThousandsSeparator","valueIntegerPartWithLeadingZerosAndWithoutSign","digitGroupingStyle","thousandsSeparator","restDigitGrouping","groupingSubIteration","addThousandsSeparatorToValueIntegerPart","numeralSystemFromLocale","integerPartWithNumeralSystem","decimalPartWithNumeralSystem","fullNumberWithNumeralSystem","abbreviationLocalizedUnit","patternMaskWithSignInfo","fullFormattedValueWithoutSign","addSignInfoToFullFormattedNumber","fullFormattedValueWithNormalizedText","patternStripAndNormalizeEscapedText","bpsFormatter","regexps","unformat","patternWithEscapedBPS","timeFormatter","absoluteValue","sign","hours","minutes","seconds","isNegative","timeArray","reverse","decimalSuffixes","binarySuffixes","unformatRegex","concat","bytesDecimalScale","unitIndex","pow","bytesBinaryScale","currencySymbolsMap","EUR","USD","XCD","AUD","INR","BRL","CAD","XAF","CNY","NZD","XPF","GBP","HKD","ILS","JPY","KRW","XOF","MXN","TWD","VND","BUILT_IN_FORMATTERS","hasNotScalePercentageSymbolInPattern","scalePercentage","patternWithEscapedPercentage","currencyFromOptions","localizedCurrencySymbol","patternWithEscapedCurrencySymbol","_b","localizedOrdinal","patternWithEscapedOrdinal","scaledValueUnit","patternWithEscapedBytes","exponential","toExponential","patternWithoutExponential","roundHalfAwayFromZero","resolveFormatOptions","formatOptions","_c","roundingOption","resolveRoundingOption","resolvedLocale","optionsLocale","defaultLocale","resolveOptionsLocale","resolvedFormatters","optionsFormatters","formatters","defaultPattern","nanFormat","nonBreakingSpace","parse$1","inputStringWithNormalSpaces","unformatFunctionFromFormatters","matcher","getUnformatFunctionIfMatch","format$1","parseFloat","resolvedPattern","resolvedValueAsNumber","formatFunctionFromFormatters","getFormatFunctionIfMatch","_errorFormat","arg2","arg3","withOptions","baseOptions","optionsFromArguments","rtlDirCheck","appendLeftToRightMarkIfIsRTL","isRTL","languagesWith4DigitsGroupingStyle","getAbbreviations","languageTag","digits","intlFormatOptions","notation","useGrouping","compactDisplay","digitOfZero","digitOfOne","digitOfTwo","abbreviationResultForOne","toLocaleString","abbreviationResultForTwo","abbreviationOne","abbreviationTwo","resultIndex","_err","getLocaleFromPlatform$1","resolvedLanguageTag","localizedNumber","lookupObject","repeatedChar","digitsAsArray","getNumeralSystemDigits","resolvedDigits","localizedNumberWithoutDigits","groupingDelimiter","fractionDelimiter","getGroupingAndFractionDelimiters","groupingStyle","subIterationIndex","digitOrGroupingDelimiter","getGroupingStyle","shortAbbreviations","_abbreviationsLong","numerable","jQuery"],"mappings":"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","sourcesContent":["/*!\n * JavaScript for PHPMaker v2023.13.0\n * Copyright (c) e.World Technology Limited. All rights reserved.\n */\n(function (ew$1, $$1, luxon) {\n 'use strict';\n\n var _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };\n\n var ew__default = /*#__PURE__*/_interopDefaultLegacy(ew$1);\n var $__default = /*#__PURE__*/_interopDefaultLegacy($$1);\n var luxon__default = /*#__PURE__*/_interopDefaultLegacy(luxon);\n\n function MultiPage(formid) {\r\n var self = this;\r\n this.$form = null;\r\n this.formID = formid;\r\n this.pageIndex = 1;\r\n this.maxPageIndex = 0;\r\n this.minPageIndex = 0;\r\n this.pageIndexes = [];\r\n this.$pages = null;\r\n this.$collapses = null;\r\n this.isTab = false; // Is tabs\r\n\r\n this.isCollapse = false; // Is collapses (accordion)\r\n\r\n this.lastPageSubmit = false; // Enable submit button for the last page only\r\n\r\n this.hideDisabledButton = false; // Hide disabled submit button\r\n\r\n this.hideInactivePages = false; // Hide inactive pages\r\n\r\n this.lockTabs = false; // Set inactive tabs as disabled\r\n\r\n this.hideTabs = false; // Hide all tabs\r\n\r\n this.showPagerTop = false; // Show pager at top\r\n\r\n this.showPagerBottom = false; // Show pager at bottom\r\n\r\n this.pagerTemplate = ''; // Pager template\r\n // \"show\" handler (for disabled tabs)\r\n\r\n var _show = function (e) {\r\n e.preventDefault();\r\n }; // Set properties\r\n\r\n var _properties = [\"lastPageSubmit\", \"hideDisabledButton\", \"hideInactivePages\", \"lockTabs\", \"hideTabs\", \"showPagerTop\", \"showPagerBottom\", \"pagerTemplate\"];\r\n\r\n this.set = function () {\r\n if (arguments.length == 1 && $__default.default.isObject(arguments[0])) {\r\n var obj = arguments[0];\r\n\r\n for (var i in obj) {\r\n var p = i[0].toLowerCase() + i.substring(1); // Camel case\r\n\r\n if (_properties.includes(p)) this[p] = obj[i];\r\n }\r\n }\r\n }; // DOM loaded\r\n\r\n this.init = function () {\r\n var tpl = this.pagerTemplate.replace(/\\{prev\\}/i, ew.language.phrase(\"Prev\")).replace(/\\{next\\}/i, ew.language.phrase(\"Next\"));\r\n\r\n if (this.isTab) {\r\n if (this.showPagerTop) this.$pages.closest(\".ew-nav\").before(tpl);\r\n if (this.showPagerBottom) this.$pages.closest(\".ew-nav\").after(tpl);\r\n this.$form.find(\".ew-prev\").click(function (e) {\r\n self.$pages.off(\"show.bs.tab\", _show).filter(\".active\").parent().prev(\":has([data-bs-toggle=tab]:not(.ew-hidden):not(.ew-disabled))\").find(\"[data-bs-toggle=tab]\").toggleClass(\"disabled d-none\", false).click();\r\n return false;\r\n });\r\n this.$form.find(\".ew-next\").click(function (e) {\r\n self.$pages.off(\"show.bs.tab\", _show).filter(\".active\").parent().next(\":has([data-bs-toggle=tab]:not(.ew-hidden):not(.ew-disabled))\").find(\"[data-bs-toggle=tab]\").toggleClass(\"disabled d-none\", false).click();\r\n return false;\r\n });\r\n if (this.hideTabs) this.$form.find(\".ew-multi-page > .ew-nav > .nav-tabs\").hide();\r\n } else if (this.isCollapse) {\r\n if (this.showPagerTop) this.$collapses.closest(\".ew-accordion\").before(tpl);\r\n if (this.showPagerBottom) this.$collapses.closest(\".ew-accordion\").after(tpl);\r\n this.$form.find(\".ew-prev\").click(function (e) {\r\n self.$pages.closest(\".accordion-item\").filter(\":has(.collapse.show)\").prev(\":has([data-bs-toggle=collapse]:not(.ew-hidden):not(.ew-disabled))\").toggleClass(\"disabled d-none\", false).find(\"[data-bs-toggle=collapse]\").click();\r\n return false;\r\n });\r\n this.$form.find(\".ew-next\").click(function (e) {\r\n self.$pages.closest(\".accordion-item\").filter(\":has(.collapse.show)\").next(\":has([data-bs-toggle=collapse]:not(.ew-hidden):not(.ew-disabled))\").toggleClass(\"disabled d-none\", false).find(\"[data-bs-toggle=collapse]\").click();\r\n return false;\r\n });\r\n }\r\n\r\n this.pageShow();\r\n }; // Page show\r\n\r\n this.pageShow = function () {\r\n if (this.isTab) {\r\n if (this.lockTabs) this.$pages.on(\"show.bs.tab\", _show);\r\n this.$pages.each(function () {\r\n var $this = $__default.default(this);\r\n if (self.hideInactivePages) $this.toggleClass(\"d-none\", !$this.hasClass(\"active\"));\r\n if (self.lockTabs) $this.toggleClass(\"disabled\", !$this.hasClass(\"active\"));\r\n });\r\n } else if (this.isCollapse) {\r\n this.$pages.closest(\".accordion-item\").each(function () {\r\n var $this = $__default.default(this);\r\n if (self.hideInactivePages) $this.toggleClass(\"d-none\", !$this.find(\".collapse.show\")[0]);\r\n });\r\n }\r\n\r\n var disabled = this.lastPageSubmit && this.pageIndex != this.maxPageIndex;\r\n var $btn = this.$form.closest(\".content, .modal-content\").find(\"#btn-action, button.ew-submit\").prop(\"disabled\", disabled).toggle(!this.hideDisabledButton || !disabled);\r\n $__default.default(\".ew-captcha\").toggle($btn.is(\":visible:not(:disabled)\")); // Re-captcha uses class \"disabled\", not \"disabled\" property.\r\n\r\n disabled = this.pageIndex <= this.minPageIndex;\r\n this.$form.find(\".ew-prev\").toggleClass(\"disabled\", disabled);\r\n disabled = this.pageIndex >= this.maxPageIndex;\r\n this.$form.find(\".ew-next\").toggleClass(\"disabled\", disabled);\r\n }; // Go to page by index\r\n\r\n this.gotoPage = function (i) {\r\n if (i <= 0 || i < this.minPageIndex || i > this.maxPageIndex) return;\r\n\r\n if (this.pageIndex != i) {\r\n var $page = this.$pages.eq(i - 1);\r\n\r\n if (this.isTab) {\r\n if ($page.is(\":not(.d-none):not(.disabled)\")) $page.click();else $page.parent().next(\":has([data-bs-toggle=tab]):not(.d-none):not(.disabled)\").find(\"[data-bs-toggle=tab]\").toggleClass(\"disabled\", false).click();\r\n } else if (this.isCollapse) {\r\n var $p = $page.closest(\".accordion-item\");\r\n if ($p.is(\":not(.d-none)\")) $page.click();else $p.next(\":has([data-bs-toggle=collapse]):not(.d-none)\").find(\"[data-bs-toggle=collapse]\").click();\r\n }\r\n\r\n this.pageIndex = i;\r\n }\r\n };\r\n\r\n this.gotoPageByIndex = this.gotoPage; // Go to page by element\r\n\r\n this.gotoPageByElement = function (el) {\r\n this.gotoPage(parseInt($__default.default(el).data(\"page\"), 10) || -1);\r\n }; // Go to page by element's id or name or data-field attribute\r\n\r\n this.gotoPageByElementId = function (id) {\r\n var $el = this.$form.find(\"[data-page]\").filter(\"[id='\" + id + \"'],[name='\" + id + \"'],[data-field='\" + id + \"']\");\r\n this.gotoPageByElement($el);\r\n }; // Toggle page\r\n\r\n this.togglePage = function (i, show) {\r\n if (this.isTab) {\r\n this.$pages.eq(i - 1).toggleClass(\"d-none\", !show);\r\n } else if (this.isCollapse) {\r\n this.$pages.eq(i - 1).closest(\".accordion-item\").toggle(\"d-none\", !show);\r\n }\r\n }; // Render\r\n\r\n this.render = function () {\r\n this.$form = $__default.default(\"#\" + formid);\r\n this.pageIndexes = this.$form.find(\"[data-page]\").map(function () {\r\n var index = parseInt(this.dataset.page, 10);\r\n return index > 0 ? index : null;\r\n }).get();\r\n this.pageIndexes.sort(function (a, b) {\r\n return a - b;\r\n });\r\n this.minPageIndex = this.pageIndexes[0];\r\n this.maxPageIndex = this.pageIndexes[this.pageIndexes.length - 1];\r\n var $tabs = this.$form.find(\"[data-bs-toggle=tab]\");\r\n\r\n if ($tabs[0]) {\r\n this.$pages = $tabs;\r\n this.isTab = true;\r\n $tabs.on(\"shown.bs.tab\", function (e) {\r\n self.pageIndex = $tabs.index(e.target) + 1;\r\n self.pageShow();\r\n $__default.default($__default.default(this).attr(\"href\")).find(\".ew-map\").each(function () {\r\n var m = ew.maps[this.id];\r\n\r\n if (m != null && m[\"map\"]) {\r\n google.maps.event.trigger(m[\"map\"], \"resize\");\r\n m[\"map\"].setCenter(m[\"latlng\"]);\r\n }\r\n });\r\n });\r\n this.pageIndex = $tabs.index($tabs.parent(\".active\")) + 1;\r\n } else {\r\n this.$collapses = this.$form.find(\"[data-bs-toggle=collapse]\");\r\n\r\n if (this.$collapses[0]) {\r\n this.$pages = this.$collapses;\r\n this.isCollapse = true;\r\n var $bodies = this.$collapses;\r\n $bodies.on(\"shown.bs.collapse\", function (e) {\r\n self.pageIndex = $bodies.index(e.target) + 1;\r\n self.pageShow();\r\n $__default.default(this).find(\".ew-map\").each(function () {\r\n var m = ew.maps[this.id];\r\n\r\n if (m != null && m[\"map\"]) {\r\n google.maps.event.trigger(m[\"map\"], \"resize\");\r\n m[\"map\"].setCenter(m[\"latlng\"]);\r\n }\r\n });\r\n });\r\n this.pageIndex = $bodies.index($bodies.hasClass(\"show\")) + 1;\r\n }\r\n }\r\n\r\n $__default.default(function () {\r\n self.init();\r\n });\r\n };\r\n }\n\n let DateTime$1 = luxon__default.default.DateTime;\r\n /**\r\n * User level ID validator\r\n */\r\n\r\n function userLevelId(el) {\r\n if (el && !ew.checkInteger(el.value)) return {\r\n userLevelId: ew.language.phrase(\"UserLevelIDInteger\")\r\n };\r\n let level = parseInt(el.value, 10);\r\n if (level < 1) return {\r\n userLevelId: ew.language.phrase(\"UserLevelIDIncorrect\")\r\n };\r\n return false;\r\n }\r\n /**\r\n * User level name validator\r\n * @param {string} id User ID Field input element ID\r\n */\r\n\r\n function userLevelName(id) {\r\n return function (el) {\r\n let elId = document.getElementById(\"x_\" + id);\r\n\r\n if (elId && el) {\r\n let name = el.value.trim(),\r\n level = parseInt(elId.value.trim(), 10);\r\n\r\n if (level === 0 && !ew.sameText(name, \"Default\")) {\r\n return {\r\n userLevelName: ew.language.phrase(\"UserLevelDefaultName\")\r\n };\r\n } else if (level === -1 && !ew.sameText(name, \"Administrator\")) {\r\n return {\r\n userLevelName: ew.language.phrase(\"UserLevelAdministratorName\")\r\n };\r\n } else if (level === -2 && !ew.sameText(name, \"Anonymous\")) {\r\n return {\r\n userLevelName: ew.language.phrase(\"UserLevelAnonymousName\")\r\n };\r\n } else if (level > 0 && [\"anonymous\", \"administrator\", \"default\"].includes(name.toLowerCase())) {\r\n return {\r\n userLevelName: ew.language.phrase(\"UserLevelNameIncorrect\")\r\n };\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * Required validator\r\n */\r\n\r\n function required(fieldName) {\r\n return function (el) {\r\n var _$el$data;\r\n\r\n let $el = $__default.default(el),\r\n $p = $el.closest(\"#r_\" + ((_$el$data = $el.data(\"field\")) == null ? void 0 : _$el$data.substring(2))); // Find the row\r\n\r\n if (!$p[0]) $p = $el.closest(\"[id^=el]\"); // Find the span\r\n\r\n if ($p.css(\"display\") == \"none\") {\r\n // Hidden by .visible()\r\n return false;\r\n }\r\n\r\n if (el && !ew.hasValue(el)) {\r\n return {\r\n required: ew.language.phrase(\"EnterRequiredField\").replace(\"%s\", fieldName)\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * File required validator\r\n */\r\n\r\n function fileRequired(fieldName) {\r\n return function (el) {\r\n let elFn = document.getElementById(\"fn_\" + el.id);\r\n\r\n if (elFn && !ew.hasValue(elFn)) {\r\n return {\r\n fileRequired: ew.language.phrase(\"EnterRequiredField\").replace(\"%s\", fieldName)\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * Mismatch password validator\r\n */\r\n\r\n function mismatchPassword(el) {\r\n let id;\r\n if (el.id.startsWith(\"c_\")) // Confirm Password field in Register page\r\n id = el.id.replace(/^c_/, \"x_\");else if (el.id == \"cpwd\") // Change Password page\r\n id = \"npwd\";\r\n let elPwd = document.getElementById(id);\r\n\r\n if (el.value !== elPwd.value) {\r\n return {\r\n mismatchPassword: ew.language.phrase(\"MismatchPassword\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Between validator\r\n */\r\n\r\n function between(el) {\r\n let x, z;\r\n\r\n if (el.id.startsWith(\"y_\")) {\r\n x = document.getElementById(el.id.replace(/^y_/, \"x_\"));\r\n z = document.getElementById(el.id.replace(/^y_/, \"z_\"));\r\n } else if (el.id.endsWith(\"_value_1\")) {\r\n // QueryBuider\r\n x = document.getElementById(el.id.replace(/_value_1$/, \"_value_0\"));\r\n z = document.getElementById(el.id.replace(/_value_1$/, \"_operator\"));\r\n }\r\n\r\n if (ew.hasValue(x) && $__default.default(z).val().toUpperCase() == \"BETWEEN\" && !ew.hasValue(el)) {\r\n return {\r\n between: ew.language.phrase(\"EnterValue2\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Password strength validator\r\n */\r\n\r\n function passwordStrength(el) {\r\n let $el = $__default.default(el);\r\n\r\n if (!ew.isMaskedPassword(el) && $el.hasClass(\"ew-password-strength\") && !$el.data(\"validated\")) {\r\n return {\r\n passwordStrength: ew.language.phrase(\"PasswordTooSimple\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * User name validator\r\n */\r\n\r\n function username(raw) {\r\n return function (el) {\r\n if (!raw && el.value.match(new RegExp('[' + ew.escapeRegExChars(ew.INVALID_USERNAME_CHARACTERS) + ']'))) return {\r\n username: ew.language.phrase(\"InvalidUsernameChars\")\r\n };\r\n return false;\r\n };\r\n }\r\n /**\r\n * Password validator\r\n */\r\n\r\n function password(raw) {\r\n return function (el) {\r\n if (!raw && !ew.ENCRYPTED_PASSWORD && el.value.match(new RegExp('[' + ew.escapeRegExChars(ew.INVALID_PASSWORD_CHARACTERS) + ']'))) return {\r\n password: ew.language.phrase(\"InvalidPasswordChars\")\r\n };\r\n return false;\r\n };\r\n }\r\n /**\r\n * Email validator\r\n */\r\n\r\n function email(el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkEmail(value)) {\r\n return {\r\n email: ew.language.phrase(\"IncorrectEmail\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Emails validator\r\n */\r\n\r\n function emails(cnt, err) {\r\n return function (el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkEmails(value, cnt)) {\r\n return {\r\n emails: err\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * DateTime validator\r\n * @param {string} format DateTime format\r\n */\r\n\r\n function datetime(format) {\r\n return function (el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkDate(value, format)) {\r\n return {\r\n datetime: ew.language.phrase(\"IncorrectDate\").replace(/%s/g, format)\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * Time validator\r\n * @param {string} format Time format\r\n */\r\n\r\n function time(format) {\r\n return function (el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkTime(value, format)) {\r\n return {\r\n time: ew.language.phrase(\"IncorrectTime\").replace(/%s/g, format)\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * Float validator\r\n */\r\n\r\n function float(el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkNumber(value)) {\r\n return {\r\n float: ew.language.phrase(\"IncorrectFloat\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Range validator\r\n * @param {number} min Min value\r\n * @param {number} max Max value\r\n */\r\n\r\n function range(min, max) {\r\n return function (el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkRange(value, min, max)) {\r\n return {\r\n range: ew.language.phrase(\"IncorrectRange\").replace(\"%1\", min).replace(\"%2\", max)\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * Integer validator\r\n */\r\n\r\n function integer(el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkInteger(value)) {\r\n return {\r\n integer: ew.language.phrase(\"IncorrectInteger\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * US phone validator\r\n */\r\n\r\n function phone(el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkPhone(value)) {\r\n return {\r\n phone: ew.language.phrase(\"IncorrectPhone\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * US ZIP validator\r\n */\r\n\r\n function zip(el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkZip(value)) {\r\n return {\r\n zip: ew.language.phrase(\"IncorrectZip\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Credit card validator\r\n */\r\n\r\n function creditCard(el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkCreditCard(value)) {\r\n return {\r\n creditCard: ew.language.phrase(\"IncorrectCreditCard\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * US SSN validator\r\n */\r\n\r\n function ssn(el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkSsn(value)) {\r\n return {\r\n ssn: ew.language.phrase(\"IncorrectSSN\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * GUID validator\r\n */\r\n\r\n function guid(el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkGuid(value)) {\r\n return {\r\n guid: ew.language.phrase(\"IncorrectGUID\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Regular expression validator\r\n * @param {string} pattern Regular expression pattern\r\n */\r\n\r\n function regex(pattern) {\r\n return function (el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkByRegEx(value, pattern)) {\r\n return {\r\n regex: ew.language.phrase(\"IncorrectField\")\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * URL validator\r\n */\r\n\r\n function url(el) {\r\n let value = ew.getValue(el);\r\n\r\n if (!ew.checkUrl(value)) {\r\n return {\r\n url: ew.language.phrase(\"IncorrectUrl\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Custom validator\r\n * @param {Function} fn Function(value, ...args)\r\n * @param {...any} args Additional arguments for the function\r\n */\r\n\r\n function custom(fn) {\r\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n args[_key - 1] = arguments[_key];\r\n }\r\n\r\n return function (el) {\r\n if (typeof fn == \"function\") {\r\n let value = ew.getValue(el);\r\n if (fn(value, ...args)) return {\r\n custom: ew.language.phrase(\"IncorrectField\")\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * Captcha validator\r\n */\r\n\r\n function captcha(el) {\r\n if (el && !ew.hasValue(el)) {\r\n return {\r\n captcha: ew.language.phrase(\"EnterValidateCode\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * reCaptcha validator\r\n */\r\n\r\n function recaptcha(el) {\r\n var _grecaptcha;\r\n\r\n if (el && !ew.hasValue(el) && ((_grecaptcha = grecaptcha) == null ? void 0 : _grecaptcha.getResponse(el.dataset.id)) === \"\") {\r\n return {\r\n recaptcha: ew.language.phrase(\"ClickReCaptcha\")\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Min date/time validator\r\n * @param {Function|HTMLElement|DateTime|Date} min Min date\r\n */\r\n\r\n function minDate(min) {\r\n return function (el) {\r\n let value = ew.getValue(el),\r\n format = el.dataset.formatPattern,\r\n minDateTime;\r\n min = typeof min == \"function\" ? min() : min;\r\n\r\n if (min instanceof HTMLElement) {\r\n let minValue = min.value,\r\n minFormat = min.dataset.formatPattern;\r\n if (min.value && min.dataset.formatPattern) minDateTime = ew.parseDate(minValue, minFormat);\r\n } else if (min instanceof Date) {\r\n minDateTime = DateTime$1.fromJSDate(min, {\r\n zone: \"utc\"\r\n });\r\n } else if (min instanceof DateTime$1) {\r\n minDateTime = min;\r\n }\r\n\r\n if (value && format && minDateTime) {\r\n let dateTime = ew.parseDate(value, format);\r\n if (dateTime < minDateTime) return {\r\n minDate: ew.language.phrase(\"IncorrectMinDate\").replace(\"%s\", ew.formatDateTime(minDateTime, ew.DATE_FORMAT + \" \" + ew.TIME_FORMAT))\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * Max date/time validator\r\n * @param {Function|HTMLElement|DateTime|Date} max Max date\r\n */\r\n\r\n function maxDate(max) {\r\n return function (el) {\r\n let value = ew.getValue(el),\r\n format = el.dataset.formatPattern,\r\n maxDateTime;\r\n max = typeof max == \"function\" ? max() : max;\r\n\r\n if (max instanceof HTMLElement) {\r\n let maxValue = max.value,\r\n maxFormat = max.dataset.formatPattern;\r\n if (max.value && max.dataset.formatPattern) maxDateTime = ew.parseDate(maxValue, maxFormat);\r\n } else if (max instanceof Date) {\r\n maxDateTime = DateTime$1.fromJSDate(max, {\r\n zone: \"utc\"\r\n });\r\n } else if (max instanceof DateTime$1) {\r\n maxDateTime = max;\r\n }\r\n\r\n if (value && format && maxDateTime) {\r\n let dateTime = ew.parseDate(value, format);\r\n if (dateTime > maxDateTime) return {\r\n maxDate: ew.language.phrase(\"IncorrectMaxDate\").replace(\"%s\", ew.formatDateTime(maxDateTime, ew.DATE_FORMAT + \" \" + ew.TIME_FORMAT))\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * Min validator\r\n * @param {Function|HTMLElement|String|Number} min Min value\r\n */\r\n\r\n function min(min) {\r\n return function (el) {\r\n let value = ew.parseNumber(ew.getValue(el)),\r\n minValue;\r\n min = typeof min == \"function\" ? min() : min;\r\n\r\n if (min instanceof HTMLElement) {\r\n minValue = ew.parseNumber(ew.getValue(min));\r\n } else if (typeof min == \"string\") {\r\n minValue = ew.parseNumber(min);\r\n } else if (typeof min == \"number\") {\r\n minValue = min;\r\n }\r\n\r\n if (typeof value == \"number\" && typeof minValue == \"number\") {\r\n if (value < minValue) return {\r\n min: ew.language.phrase(\"IncorrectMin\").replace(\"%s\", minValue)\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n /**\r\n * Max validator\r\n * @param {Function|HTMLElement|String|Number} max Max value\r\n */\r\n\r\n function max(max) {\r\n return function (el) {\r\n let value = ew.parseNumber(ew.getValue(el)),\r\n maxValue;\r\n max = typeof max == \"function\" ? max() : max;\r\n\r\n if (max instanceof HTMLElement) {\r\n maxValue = ew.parseNumber(ew.getValue(max));\r\n } else if (typeof max == \"string\") {\r\n maxValue = ew.parseNumber(max);\r\n } else if (typeof max == \"number\") {\r\n maxValue = max;\r\n }\r\n\r\n if (typeof value == \"number\" && typeof maxValue == \"number\") {\r\n if (value > maxValue) return {\r\n max: ew.language.phrase(\"IncorrectMax\").replace(\"%s\", maxValue)\r\n };\r\n }\r\n\r\n return false;\r\n };\r\n }\n\n var Validators = {\n __proto__: null,\n userLevelId,\n userLevelName,\n required,\n fileRequired,\n mismatchPassword,\n between,\n passwordStrength,\n username,\n password,\n email,\n emails,\n datetime,\n time,\n float,\n range,\n integer,\n phone,\n zip,\n creditCard,\n ssn,\n guid,\n regex,\n url,\n custom,\n captcha,\n recaptcha,\n minDate,\n maxDate,\n min,\n max\n };\n\n function _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) descriptor.writable = true;\r\n Object.defineProperty(target, descriptor.key, descriptor);\r\n }\r\n }\r\n\r\n function _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\r\n if (staticProps) _defineProperties(Constructor, staticProps);\r\n Object.defineProperty(Constructor, \"prototype\", {\r\n writable: false\r\n });\r\n return Constructor;\r\n }\n\n function _assertThisInitialized(self) {\r\n if (self === void 0) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\r\n }\r\n\r\n return self;\r\n }\n\n function _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\r\n o.__proto__ = p;\r\n return o;\r\n };\r\n\r\n return _setPrototypeOf(o, p);\r\n }\n\n function _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass);\r\n }\n\n function _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n });\r\n } else {\r\n obj[key] = value;\r\n }\r\n\r\n return obj;\r\n }\n\n /*\r\n * Based on: jquery.batch v0.1.0\r\n * Copyright 2013, Matt Morgan (@mlmorg)\r\n * MIT license\r\n */\r\n // Global batch settings\r\n\r\n $__default.default.batchSettings = {\r\n type: 'POST',\r\n contentType: 'application/json',\r\n processData: false,\r\n dataType: 'json',\r\n toJSON: JSON.stringify,\r\n parse: data => data\r\n }; // Setup method\r\n\r\n $__default.default.batchSetup = function (options) {\r\n return $__default.default.extend($__default.default.batchSettings, options);\r\n }; // $.batch class\r\n // -------------\r\n\r\n var Batch = $__default.default.batch = function (func, options) {\r\n // Always instantiate a Batch class even if called without \"new\"\r\n if (!(this instanceof Batch)) {\r\n return new Batch(func, options);\r\n } // Shift arguments if func is an object\r\n\r\n if (typeof func === 'object') {\r\n options = func;\r\n func = undefined;\r\n } // Default options\r\n\r\n this.options = $__default.default.extend({}, $__default.default.batchSettings, options); // Find a parent batch object, if we're nested\r\n\r\n this.parent = $__default.default.ajaxSetup()._batch; // Requests storage\r\n\r\n this.requests = []; // Add any requests\r\n\r\n if (func) {\r\n this.add(func);\r\n }\r\n\r\n return this;\r\n }; // Our methods\r\n\r\n $__default.default.extend(Batch.prototype, {\r\n // Method for adding requests to the batch\r\n add: function (func) {\r\n var _func$name;\r\n\r\n // Set global _batch variable in jQuery.ajaxSettings\r\n $__default.default.ajaxSetup({\r\n _batch: this.parent || this\r\n }); // Call the user's function\r\n\r\n if ((_func$name = func.name) != null && _func$name.startsWith('bound ')) {\r\n // Bound function\r\n func();\r\n } else {\r\n func.call($__default.default.ajaxSetup()._batch);\r\n } // Remove the global _batch variable when we're not nested\r\n\r\n if (!this.parent) {\r\n $__default.default.ajaxSetup({\r\n _batch: null\r\n });\r\n }\r\n\r\n return this;\r\n },\r\n // Clear requests storage\r\n clear: function () {\r\n this.requests = [];\r\n },\r\n // Method for running the batch request\r\n send: function (options) {\r\n options = options || {};\r\n var instance = this; // When we're handling a child batch object, wrap any success functions\r\n // and add them to the parent batch success\r\n\r\n if (this.parent && options.success) {\r\n var parentSuccess = this.parent.options.success;\r\n\r\n this.parent.options.success = function (data, status, xhr) {\r\n options.success(data, status, xhr);\r\n\r\n if (parentSuccess) {\r\n parentSuccess(data, status, xhr);\r\n }\r\n };\r\n } // When we're handling the top-most batch, send the request\r\n else if (this.requests.length) {\r\n // Map an array of requests\r\n var requests = $__default.default.map(this.requests, function (request) {\r\n return request.settings.data;\r\n }); // Override the success callback\r\n\r\n var success = options.success;\r\n var childSuccess = this.options.success;\r\n\r\n options.success = function (data, statusText, xhr) {\r\n // Call our _deliver method to handle each individual batch request response\r\n instance._deliver.call(instance, data, statusText); // Child batch success functions\r\n\r\n if (childSuccess) {\r\n childSuccess(data, statusText, xhr);\r\n } // User's success function\r\n\r\n if (success) {\r\n success(data, statusText, xhr);\r\n }\r\n }; // Build the Ajax request options\r\n\r\n options = $__default.default.extend({}, this.options, options); // Create hash of requests to pass as the data in the Ajax request\r\n\r\n if (!options.data) {\r\n options.data = $__default.default.batchSettings.toJSON(requests);\r\n } // Call the request\r\n\r\n return $__default.default.ajax(options);\r\n }\r\n },\r\n // Private method to add a request to the batch requests array\r\n _addRequest: function (xhr, settings) {\r\n this.requests.push({\r\n xhr: xhr,\r\n settings: settings\r\n });\r\n },\r\n // Delivers each batch request response to its intended xhr success/complete function\r\n _deliver: function (data, statusText) {\r\n var _responses$error;\r\n\r\n var instance = this; // Pass the response off to the user to parse out the responses\r\n\r\n var responses = $__default.default.batchSettings.parse(data);\r\n\r\n if (responses != null && (_responses$error = responses.error) != null && _responses$error.description) {\r\n var _responses$error2;\r\n\r\n ew__default.default.alert(responses == null ? void 0 : (_responses$error2 = responses.error) == null ? void 0 : _responses$error2.description);\r\n return;\r\n } // Loop through the responses\r\n\r\n $__default.default.each(responses, function (i, response) {\r\n var _request$settings$com;\r\n\r\n // Only work with batch requests that we have stored\r\n if (!instance.requests[i]) {\r\n return;\r\n } // Grab the stored request data\r\n\r\n var request = instance.requests[i]; // Build statusText a la jQuery based on status code\r\n\r\n request.xhr.statusText = statusText; // Call the user/success function, if it exists. Pass the response body, status text and xhr.\r\n\r\n if (statusText === 'success') {\r\n var _request$settings$suc;\r\n\r\n (_request$settings$suc = request.settings.success) == null ? void 0 : _request$settings$suc.call(request.xhr, response, statusText);\r\n } // Call complete\r\n\r\n (_request$settings$com = request.settings.complete) == null ? void 0 : _request$settings$com.call(request.xhr, statusText);\r\n });\r\n }\r\n });\r\n // ---------------\r\n // Override jQuery.ajax to cancel any outgoing requests called within\r\n // a $.batch() function and add them to the batch requests array for\r\n // that batch instance\r\n\r\n var $ajax = $__default.default.ajax;\r\n\r\n $__default.default.ajax = function (url, options) {\r\n // Shift arguments when options are passed as first argument\r\n if (typeof url === 'object') {\r\n options = url;\r\n url = undefined;\r\n } // Set options object\r\n\r\n options = options || {}; // Override the jQuery beforeSend method\r\n\r\n var beforeSend = options.beforeSend;\r\n\r\n options.beforeSend = function (xhr, settings) {\r\n // Call the user's beforeSend function, if passed\r\n if (beforeSend) {\r\n var before = beforeSend(xhr, settings); // Cancel request if user's beforeSend function returns false\r\n\r\n if (before === false) {\r\n return before;\r\n }\r\n } // We're only worried about requests made within a $.batch function\r\n // (aka they have a _batch object)\r\n\r\n if (settings._batch) {\r\n // Add request to batch\r\n settings._batch._addRequest(xhr, settings); // Cancel this request\r\n\r\n return false;\r\n }\r\n }; // Run original $.ajax method for all other requests\r\n\r\n return $ajax.call(this, url, options);\r\n };\n\n function FormBase(id, pageId) {\r\n let self = this,\r\n $self = $__default.default(self);\r\n this._initiated = false;\r\n this.id = id; // Same ID as the form\r\n\r\n this.element = document.getElementById(id); // HTML form or div\r\n\r\n this.$element = $__default.default(this.element); // jQuery object of the form or div\r\n\r\n this.pageId = pageId;\r\n this.htmlForm = null; // HTML form element\r\n\r\n this.initSearchPanel = false; // Expanded by default\r\n\r\n this.modified = false;\r\n this.emptyRow = null; // Check empty row\r\n\r\n this.multiPage = null; // Multi-page\r\n\r\n this.autoSuggests = {}; // AutoSuggests\r\n\r\n this.lists = {}; // Dynamic selection lists\r\n\r\n this.batch = new Batch(); // For batch lookup\r\n\r\n this.formKeyCountName = \"\"; // For list/grid pages\r\n\r\n this.submitWithFetch = false; // Submit form with Fetch API and returns Promise\r\n\r\n this.enableOnInit = false; // Disable form during init\r\n\r\n this.filterList = null; // Disable form\r\n\r\n this.disableForm = function () {\r\n document.body.style.cursor = \"wait\";\r\n let form = this.getForm();\r\n $__default.default(form.elements).filter(\":submit:not(.dropdown-toggle), .ew-submit\").prop(\"disabled\", true).addClass(\"disabled\");\r\n this.trigger(\"disabled\");\r\n }; // Enable form\r\n\r\n this.enableForm = function () {\r\n let form = this.getForm(),\r\n $elements = $__default.default(form.elements);\r\n $elements.filter(\".ew-disabled-element\").removeClass(\"ew-disabled-element\").prop(\"disabled\", false);\r\n $elements.filter(\".ew-enabled-element\").removeClass(\"ew-enabled-element\").prop(\"disabled\", true);\r\n $elements.filter(\":submit:not(.dropdown-toggle), .ew-submit\").not(\".ew-disabled\") // Exclude submit buttons with .ew-disabled (disabled purposely)\r\n .prop(\"disabled\", false).removeClass(\"disabled\");\r\n this.trigger(\"enabled\");\r\n document.body.style.cursor = \"default\";\r\n }; // Append hidden element with form name\r\n\r\n this.appendHidden = function (el) {\r\n var form = this.getForm(),\r\n $form = $__default.default(form),\r\n $dp = $__default.default(el).closest(\".ew-form\"),\r\n name = $dp.attr(\"id\") + \"$\" + el.name;\r\n if ($form.find(\"input:hidden[name='\" + name + \"']\")[0]) // Already appended\r\n return;\r\n var ar = $dp.find('[name=\"' + el.name + '\"]').serializeArray();\r\n\r\n if (ar.length) {\r\n ar.forEach(function (o, i) {\r\n $__default.default('').val(o.value).appendTo($form);\r\n });\r\n } else {\r\n $__default.default('').val(\"\").appendTo($form);\r\n }\r\n }; // Can submit\r\n\r\n this.canSubmit = async function (e) {\r\n var _await$this$validate, _this$validate;\r\n\r\n var form = this.getForm(),\r\n $form = $__default.default(form);\r\n this.disableForm();\r\n this.updateTextArea();\r\n\r\n if (((_await$this$validate = await ((_this$validate = this.validate) == null ? void 0 : _this$validate.call(this, e))) != null ? _await$this$validate : true) && !$form.find(\".is-invalid\")[0]) {\r\n $form.find(\"input[name^=sv_], input[name^=p_], [name*=_query_builder_rule_], .ew-template input, .ew-custom-option\") // Do not submit these values\r\n .prop(\"disabled\", true).addClass(\"ew-disabled-element\");\r\n $form.find(\"[data-readonly=1][disabled]\").prop(\"disabled\", false).addClass(\"ew-enabled-element\"); // Submit readonly values\r\n\r\n var $dps = $form.find(\"input[name=detailpage]\").map(function (i, el) {\r\n return $form.find(\"#\" + el.value)[0];\r\n });\r\n\r\n if ($dps.length > 1) {\r\n // Multiple Master/Detail, check element names\r\n $dps.each(function (i, dp) {\r\n $__default.default(dp).find(\":input\").each(function (j, el) {\r\n if (/^(fn_)?(x|o)\\d*_/.test(el.name)) {\r\n var $els = $dps.not(dp).find(\":input[name='\" + el.name + \"']\");\r\n\r\n if ($els.length) {\r\n // Elements with same name found\r\n self.appendHidden(el); // Append element with form name\r\n\r\n $els.each(function () {\r\n self.appendHidden(this); // Append elements with same name and form name\r\n });\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n let args = {\r\n form: form,\r\n result: true\r\n },\r\n evt = $__default.default.Event(\"beforesubmit\", {\r\n originalEvent: e\r\n });\r\n $form.trigger(evt, [args]);\r\n let result = await args.result; // Support Promise\r\n\r\n if (!evt.isDefaultPrevented() && (result === true || $__default.default.isObject(result) && result.value)) // Support Swal.fire()\r\n return true;\r\n } else {\r\n this.enableForm();\r\n }\r\n\r\n return false;\r\n }; // Submit\r\n\r\n this.submit = async function (e) {\r\n var _e$originalEvent, _e$originalEvent$subm;\r\n\r\n let form = this.getForm(),\r\n formAction = e == null ? void 0 : (_e$originalEvent = e.originalEvent) == null ? void 0 : (_e$originalEvent$subm = _e$originalEvent.submitter) == null ? void 0 : _e$originalEvent$subm.formAction;\r\n\r\n if (formAction) {\r\n formAction = ew.parseUrl(formAction).pathname;\r\n form.setAttribute(\"action\", formAction);\r\n }\r\n\r\n if (await this.canSubmit(e)) {\r\n if (this.submitWithFetch) {\r\n let url = form.getAttribute(\"action\"),\r\n method = form.method.toUpperCase(),\r\n body = $__default.default(form).serialize();\r\n return ew.fetch(url, {\r\n method,\r\n body\r\n }).finally(() => this.enableForm()); // Return Promise\r\n } else {\r\n form.submit();\r\n }\r\n } else {\r\n this.enableForm();\r\n }\r\n }; // Get dynamic selection list by element name or id\r\n\r\n this.getList = function (name) {\r\n var _this$getElement, _this$getElement$data;\r\n\r\n if ($__default.default.isObject(name)) {\r\n // Object\r\n let obj = name;\r\n name = obj.name || obj.id;\r\n if (name.includes(\"query_builder_rule\")) name = obj.dataset.field;\r\n }\r\n\r\n name = name.replace(/^(sv_)?[xy](\\d*|\\$rowindex\\$)_|\\[\\]$/g, \"\"); // Remove element name prefix/suffix\r\n\r\n if (this.lists[name]) return this.lists[name];\r\n let field = (_this$getElement = this.getElement(name)) == null ? void 0 : (_this$getElement$data = _this$getElement.dataset.field) == null ? void 0 : _this$getElement$data.replace(/^x_|\\[\\]$/g, \"\"); // Remove element name prefix/suffix\r\n\r\n return field ? this.lists[field] : {};\r\n }; // Compile templates\r\n\r\n this.compileTemplates = function () {\r\n let lists = Object.values(this.lists);\r\n\r\n for (let list of lists) {\r\n if (list.template && $__default.default.isString(list.template)) list.template = $__default.default.templates(list.template);\r\n }\r\n }; // Get option template of dynamic selection list\r\n\r\n this.getOptionTemplate = function (list) {\r\n if (list.template && $__default.default.isString(list.template)) list.template = $__default.default.templates(list.template);\r\n return list.template;\r\n }; // Get the HTML form element\r\n\r\n this.getForm = function () {\r\n if (!this.htmlForm) {\r\n var _this$element, _this$element2;\r\n\r\n if (((_this$element = this.element) == null ? void 0 : _this$element.tagName) == \"FORM\") {\r\n // HTML form\r\n this.htmlForm = this.element;\r\n } else if (((_this$element2 = this.element) == null ? void 0 : _this$element2.tagName) == \"DIV\") {\r\n // HTML div => Grid page\r\n this.htmlForm = this.element.closest(\"form\");\r\n }\r\n }\r\n\r\n return this.htmlForm;\r\n }; // Get form element as single element\r\n\r\n this.getElement = function (name) {\r\n return name ? ew.getElement(name, this.$element) : this.$element[0];\r\n }; // Get form element(s) as single element or array of radio/checkbox\r\n\r\n this.getElements = function (name) {\r\n return ew.getElements(name, this.$element);\r\n }; // Fix ID\r\n\r\n this.fixId = function (id, multiple, rowindex) {\r\n let t = \"\",\r\n ar = id.split(\" \");\r\n\r\n if (ar.length > 1) {\r\n t = ar[0];\r\n rowindex = \"\";\r\n id = ar[1];\r\n }\r\n\r\n let prefix = $__default.default.isNumber(rowindex) ? \"x\" + rowindex + \"_\" : \"x_\"; // Add row index\r\n\r\n id = id.startsWith(\"x_\") ? id.replace(/^x_/, prefix) // Field element name\r\n : prefix + id; // Field var\r\n\r\n if (multiple && !id.endsWith(\"[]\")) // Add [] if select-multiple\r\n id += \"[]\";\r\n return t ? t + \" \" + id : id;\r\n };\r\n /**\r\n * Update a selection list\r\n * @param {string|HTMLElement} id - ID (Field param) or HTML element\r\n * @param {Object} list - List\r\n * @param {(null|undefined|number)} rowindex - Row index\r\n * @param {boolean} immediate - Send request immediately\r\n * @returns\r\n */\r\n\r\n this.updateList = function (id, list, rowindex, immediate) {\r\n var _list, _Object$entries$find;\r\n\r\n (_list = list) != null ? _list : list = $__default.default.isString(id) // Find the list if not provided\r\n ? (_Object$entries$find = Object.entries(this.lists).find(entry => entry[0] == id.replace(/^x_/, \"\"))) == null ? void 0 : _Object$entries$find[1] // String\r\n : this.getList(id); // HTMLElement\r\n\r\n if (list.template && $__default.default.isString(list.template)) // Compile template in case updateLists() called before init()\r\n list.template = $__default.default.templates(list.template);\r\n let form = this.element,\r\n parents = list.parentFields.slice().map(parent => this.fixId(parent, false, rowindex)),\r\n // Clone and fix index\r\n ajax = list.ajax && !list.lookupOptions.length; // Has link table and no lookup cache\r\n\r\n id = $__default.default.isString(id) ? this.fixId(id, list.multiple, rowindex) : id;\r\n return !ajax || immediate ? ew.updateOptions.call(this, id, parents, ajax, false) // Non-Ajax (lookup cache or user values) or update immediately\r\n : [id, parents.map(parent => ew.getOptionValues(parent, form)), ajax, false]; // Ajax (async) => to be batch updated\r\n };\r\n /**\r\n * Update selection lists\r\n * @param {(null|undefined|number)} rowindex - Row index\r\n * @param {bool} [immediate] - Send request immediately\r\n * @returns\r\n */\r\n\r\n this.updateLists = function (rowindex, immediate) {\r\n var _form$querySelector;\r\n\r\n if (rowindex === null) // rowindex == $rowindex$ == null\r\n return;\r\n if (this.pageId == \"grid\" && !$__default.default.isNumber(rowindex) && !$__default.default.isUndefined(rowindex)) return;\r\n let form = this.getForm(); // Set up $element and htmlForm\r\n\r\n if ((form == null ? void 0 : (_form$querySelector = form.querySelector(\"input#confirm\")) == null ? void 0 : _form$querySelector.value) == \"confirm\") // Confirm page\r\n return;\r\n let selector = Object.entries(this.lists).map(_ref => {\r\n let [id, list] = _ref;\r\n return \"[name='\" + this.fixId(id, list.multiple, rowindex) + \"']\";\r\n }).join();\r\n if (selector && this.element.querySelector(selector)) // List found\r\n Object.entries(this.lists).map(_ref2 => {\r\n let [id, list] = _ref2;\r\n return this.updateList(id, list, rowindex);\r\n }) // Update each list\r\n .filter(result => Array.isArray(result)) // Get ajax requests for batch update\r\n .forEach(request => this.batch.add(ew.updateOptions.bind(this, ...request))); // Batch update async requests\r\n // Update the Ajax lists\r\n\r\n if (this.batch.requests.length) {\r\n if (rowindex === undefined || immediate) {\r\n // Called by form or update immediately (add blank row)\r\n let deferreds = [],\r\n batchSize = ew.ajaxBatchSize > 0 ? ew.ajaxBatchSize : 1;\r\n\r\n while (this.batch.requests.length > batchSize) {\r\n let b = new Batch();\r\n b.requests = this.batch.requests.splice(0, batchSize);\r\n deferreds.push(b.send({\r\n url: ew.getApiUrl(ew.API_LOOKUP_ACTION)\r\n }));\r\n }\r\n\r\n if (this.batch.requests.length > 0) deferreds.push(this.batch.send({\r\n url: ew.getApiUrl(ew.API_LOOKUP_ACTION)\r\n }));\r\n $__default.default.when(...deferreds).then(() => $__default.default(document).trigger(\"updatedone\", [{\r\n source: self,\r\n target: form\r\n }])).fail(error => console.log(error)).always(() => this.batch.clear());\r\n }\r\n } else {\r\n $__default.default(document).trigger(\"updatedone\", [{\r\n source: self,\r\n target: form\r\n }]);\r\n }\r\n }; // Create AutoSuggest\r\n\r\n this.createAutoSuggest = function (settings) {\r\n var options = Object.assign({\r\n limit: ew.AUTO_SUGGEST_MAX_ENTRIES,\r\n form: this\r\n }, ew.autoSuggestSettings, settings); // Global settings + field specific settings\r\n\r\n self.autoSuggests[settings.id] = new ew.AutoSuggest(options);\r\n }; // Init editors\r\n\r\n this.initEditors = function () {\r\n var form = this.getForm();\r\n $__default.default(form.elements).filter(\"textarea.editor\").each(function (i, el) {\r\n var ed = $__default.default(el).data(\"editor\");\r\n if (ed && !ed.active && !ed.name.includes(\"$rowindex$\")) ed.create();\r\n });\r\n }; // Update textareas\r\n\r\n this.updateTextArea = function (name) {\r\n var form = this.getForm();\r\n $__default.default(form.elements).filter(\"textarea.editor\").each(function (i, el) {\r\n var ed = $__default.default(el).data(\"editor\");\r\n if (!ed || name && ed.name != name) return true; // Continue\r\n\r\n ed.save();\r\n if (name) return false; // Break\r\n });\r\n }; // Destroy editor(s)\r\n\r\n this.destroyEditor = function (name) {\r\n var form = this.getForm();\r\n $__default.default(form.elements).filter(\"textarea.editor\").each(function (i, el) {\r\n var ed = $__default.default(el).data(\"editor\");\r\n if (!ed || name && ed.name != name) return true; // Continue\r\n\r\n ed.destroy();\r\n if (name) return false; // Break\r\n });\r\n }; // Show error message\r\n\r\n this.onError = function (el, msg) {\r\n return ew.onError(this, el, msg);\r\n }; // Init file upload\r\n\r\n this.initUpload = function () {\r\n var form = this.getForm();\r\n $__default.default(form.elements).filter(\"input:file:not([name*='$rowindex$'])\").each(function (index) {\r\n $__default.default.later(ew.AJAX_DELAY * index, null, ew.upload, this); // Delay a little in case of large number of upload fields\r\n });\r\n }; // Set up filters\r\n\r\n this.setupFilters = function (e, filters) {\r\n let id = this.id,\r\n data = this.filterList ? this.filterList.data : null,\r\n $sf = $__default.default(\".ew-save-filter[data-form=\" + id + \"]\").toggleClass(\"disabled\", !data),\r\n $df = $__default.default(\".ew-delete-filter[data-form=\" + id + \"]\").toggleClass(\"disabled\", !filters.length).toggleClass(\"dropdown-toggle\", !!filters.length),\r\n $delete = $df.parent(\"li\").toggleClass(\"dropdown-submenu dropdown-hover\", !!filters.length).toggleClass(\"disabled\", !filters.length),\r\n $save = $sf.parent(\"li\").toggleClass(\"disabled\", !data);\r\n\r\n let saveFilters = function (id, filters) {\r\n if (ew.CLIENT_SEARCH_FILTER) {\r\n localStorage.setItem(ew.PROJECT_NAME + \"_\" + id + \"_filters\", JSON.stringify(filters));\r\n } else if (ew.SERVER_SEARCH_FILTER) {\r\n document.body.style.cursor = \"wait\";\r\n $__default.default.ajax(ew.currentPage(), {\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: {\r\n \"ajax\": \"savefilters\",\r\n \"filters\": JSON.stringify(filters)\r\n }\r\n }).done(function (result) {\r\n var _result$;\r\n\r\n if ((_result$ = result[0]) != null && _result$.success) self.filterList.filters = filters; // Save filters\r\n }).always(function () {\r\n document.body.style.cursor = \"default\";\r\n });\r\n }\r\n };\r\n\r\n $save.off(\"click.ew\").on(\"click.ew\", function (e) {\r\n // Save filter\r\n if ($save.hasClass(\"disabled\")) return false;\r\n ew.prompt({\r\n input: \"text\",\r\n html: ew.language.phrase(\"EnterFilterName\")\r\n }, name => {\r\n name = ew.sanitize(name);\r\n\r\n if (name) {\r\n filters.push([name, data]);\r\n saveFilters(id, filters);\r\n }\r\n }, true);\r\n }).prevAll().remove();\r\n $df.next(\"ul.dropdown-menu\").remove();\r\n\r\n if (filters.length) {\r\n let $submenu = $__default.default('');\r\n filters.forEach((filter, i, ar) => {\r\n $__default.default('
  • ' + filter[0] + '
  • ').on(\"click\", function (e) {\r\n // Delete\r\n let index = this.querySelector(\"a[data-index]\").dataset.index;\r\n ew.prompt(ew.language.phrase(\"DeleteFilterConfirm\").replace(\"%s\", filter[0]), result => {\r\n if (result) {\r\n ar.splice(index, 1);\r\n saveFilters(id, filters);\r\n }\r\n });\r\n }).appendTo($submenu);\r\n $__default.default('
  • ' + filter[0] + '
  • ').insertBefore($save).on(\"click\", function (e) {\r\n let body = {\r\n cmd: \"resetfilter\",\r\n filter: JSON.stringify(filter[1])\r\n };\r\n ew.refresh(ew.fetch(ew.setLayout(ew.currentPage(), false), {\r\n method: \"POST\",\r\n body\r\n }));\r\n });\r\n });\r\n $__default.default('
  • ').insertBefore($save);\r\n $delete.append($submenu);\r\n }\r\n }; // Add event handler\r\n\r\n this.on = function () {\r\n $self.on(...arguments);\r\n }; // Add event handler\r\n\r\n this.one = function () {\r\n $self.one(...arguments);\r\n }; // Remove event handler\r\n\r\n this.off = function () {\r\n $self.off(...arguments);\r\n }; // Trigger event\r\n\r\n this.trigger = function () {\r\n $self.trigger(...arguments);\r\n }; // Init form\r\n\r\n this.init = function () {\r\n if (this._initiated) return; // Check form\r\n\r\n var form = this.getForm();\r\n if (!form) return;\r\n var $form = $__default.default(form); // Compile templates\r\n\r\n this.compileTemplates(); // Search form\r\n\r\n if (/s(ea)?rch$/.test(this.id)) {\r\n // Search panel\r\n if (this.initSearchPanel && !ew.hasFormData(form)) $__default.default(\"#\" + this.id + \"_search_panel\").removeClass(\"show\"); // Hide search operator column\r\n\r\n if (!$__default.default(\".ew-table .ew-search-operator\").text().trim()) $__default.default(\".ew-table .ew-search-operator\").parent(\"td\").hide(); // Search operators\r\n\r\n $form.find(\"select[id^=z_]\").each(function () {\r\n var $this = $__default.default(this).trigger(\"change\");\r\n if ($this.val() != \"BETWEEN\") $form.find(\"#w_\" + this.id.substring(2)).trigger(\"change\");\r\n });\r\n } // Multi-page\r\n\r\n if (this.multiPage) this.multiPage.render(); // HTML editors\r\n\r\n loadjs.ready([\"editor\"], () => setTimeout(this.initEditors.bind(this), 0)); // Delay for custom template to apply first\r\n // Dynamic selection lists\r\n\r\n this.updateLists(); // Init file upload\r\n\r\n this.initUpload(); // Submit/Cancel\r\n\r\n if (this.$element.is(\"form\")) {\r\n // Not Grid page\r\n // Detail pages\r\n this.$element.find(\".ew-detail-pages .ew-nav a[data-bs-toggle=tab]\").on(\"shown.bs.tab\", function (e) {\r\n var $tab = $__default.default(e.target.getAttribute(\"href\")),\r\n $panel = $tab.find(\".table-responsive.ew-grid-middle-panel\"),\r\n $container = $tab.closest(\".container-fluid\");\r\n if ($panel.width() >= $container.width()) $panel.width($container.width() + \"px\");else $panel.width(\"auto\");\r\n });\r\n $form.off(\"submit.ew\").on(\"submit.ew\", function (e) {\r\n // Bind submit event\r\n let args = {\r\n form: form,\r\n result: self.submit(e)\r\n },\r\n evt = $__default.default.Event(\"aftersubmit\", {\r\n originalEvent: e\r\n });\r\n self.trigger(evt, [args]);\r\n return false; // Disable normal submission\r\n });\r\n $form.find(\"[data-field], .ew-priv\").on(\"change\", function () {\r\n if (ew.CONFIRM_CANCEL) self.modified = true;\r\n });\r\n $form.find(\"#btn-cancel[data-href]\").on(\"click\", function () {\r\n // Cancel\r\n self.updateTextArea();\r\n var href = this.dataset.href;\r\n\r\n if (self.modified && ew.hasFormData(form)) {\r\n ew.prompt(ew.language.phrase(\"ConfirmCancel\"), result => {\r\n if (result) {\r\n $form.find(\"#btn-action\").prop(\"disabled\", true); // Disable the save button\r\n\r\n window.location = href;\r\n }\r\n });\r\n } else {\r\n $form.find(\"#btn-action\").prop(\"disabled\", true); // Disable the save button\r\n\r\n window.location = href;\r\n }\r\n });\r\n }\r\n\r\n this._initiated = true; // Store form object as data\r\n\r\n this.$element.data(\"form\", this); // Enable form\r\n\r\n if (this.enableOnInit || Array.from(form.elements).find(el => el.matches(\"button.disabled.enable-on-init\"))) this.enableForm(); // Trigger listeners\r\n\r\n this.trigger(\"initiated\");\r\n }; // Add to the global forms object\r\n\r\n ew.forms.add(this);\r\n }\n\n /**\r\n * Class Field\r\n */\r\n let Field = /*#__PURE__*/function () {\r\n /**\r\n * Constructor\r\n * @param {string} fldvar Field variable name\r\n * @param {Function[]|Function} validators Validators\r\n * @param {bool} invalid Initial valid status (e.g. server side)\r\n */\r\n function Field(fldvar, validators, invalid) {\r\n _defineProperty(this, \"name\", \"\");\r\n\r\n _defineProperty(this, \"validators\", []);\r\n\r\n _defineProperty(this, \"_validate\", true);\r\n\r\n this.name = fldvar;\r\n\r\n if (Array.isArray(validators)) {\r\n for (let validator of validators) this.addValidator(validator);\r\n } else if (typeof validators === \"function\") {\r\n this.addValidator(validators);\r\n }\r\n\r\n this.invalid = invalid;\r\n }\r\n /**\r\n * Add validator\r\n * @param {Function} validator Validator function\r\n */\r\n\r\n var _proto = Field.prototype;\r\n\r\n _proto.addValidator = function addValidator(validator) {\r\n if (typeof validator === \"function\") this.validators.push(validator);\r\n }\r\n /**\r\n * Get error\r\n * @returns {Object}\r\n */\r\n ;\r\n\r\n /**\r\n * Add error\r\n * @param {Object} err Error\r\n */\r\n _proto.addError = function addError(err) {\r\n if (err) {\r\n var _this$_error;\r\n\r\n let error = (_this$_error = this._error) != null ? _this$_error : {};\r\n this._error = { ...error,\r\n ...err\r\n };\r\n this.invalid = true;\r\n }\r\n }\r\n /**\r\n * Clear all errors\r\n */\r\n ;\r\n\r\n _proto.clearErrors = function clearErrors() {\r\n this._error = null;\r\n this.invalid = false;\r\n }\r\n /**\r\n * Clear all validators\r\n */\r\n ;\r\n\r\n _proto.clearValidators = function clearValidators() {\r\n this.validators = [];\r\n }\r\n /**\r\n * Get error message\r\n * @returns {string} HTML\r\n */\r\n ;\r\n\r\n /**\r\n * Validate field value\r\n * @returns {boolean}\r\n */\r\n _proto.validate = function validate() {\r\n let result = true;\r\n this.clearErrors(); // Reset error\r\n\r\n if (this._element && this.shouldValidate) {\r\n if (Array.isArray(this.validators)) {\r\n for (let validator of this.validators) {\r\n let err = validator(this._element);\r\n\r\n if (err !== false) {\r\n this.addError(err);\r\n result = false;\r\n }\r\n }\r\n\r\n this.updateFeedback();\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n /**\r\n * Reset invalid property (on page load for Grid-Add/Edit)\r\n */\r\n ;\r\n\r\n _proto.resetInvalid = function resetInvalid() {\r\n var _this$_element, _this$_element$classL, _this$_element$closes, _this$_element$closes2;\r\n\r\n this.clearErrors();\r\n if ((_this$_element = this._element) != null && (_this$_element$classL = _this$_element.classList) != null && _this$_element$classL.contains(\"is-invalid\") && !this._error) this.addError({\r\n server: (_this$_element$closes = this._element.closest(ew.fieldContainerSelector)) == null ? void 0 : (_this$_element$closes2 = _this$_element$closes.querySelector(\".invalid-feedback\")) == null ? void 0 : _this$_element$closes2.innerHTML\r\n }); // Server side error\r\n }\r\n /**\r\n * Update the error message to feedback element\r\n */\r\n ;\r\n\r\n _proto.updateFeedback = function updateFeedback() {\r\n let err = this.errorMessage;\r\n\r\n if (this._element && err) {\r\n var _this$_element$closes3;\r\n\r\n let feedback = (_this$_element$closes3 = this._element.closest(ew.fieldContainerSelector)) == null ? void 0 : _this$_element$closes3.querySelector(\".invalid-feedback\");\r\n if (feedback) feedback.innerHTML = err;\r\n ew.setInvalid(this._element);\r\n }\r\n }\r\n /**\r\n * Set focus\r\n * @param {Object} options - Focus options\r\n */\r\n ;\r\n\r\n _proto.focus = function focus(options) {\r\n if (this._element) ew.setFocus(this._element, options);\r\n }\r\n /**\r\n * Check if the field can be focused\r\n */\r\n ;\r\n\r\n _proto.canFocus = function canFocus() {\r\n var _el$style, _el$classList;\r\n\r\n let el = this._element;\r\n return el && !(el.hidden && !el.tagName == \"SELECTION-LIST\" || el.readonly || el.disabled || el.type == \"hidden\" || ((_el$style = el.style) == null ? void 0 : _el$style.display) == \"none\" || (_el$classList = el.classList) != null && _el$classList.contains(\"d-none\"));\r\n }\r\n /**\r\n * Check if focused\r\n */\r\n ;\r\n\r\n _createClass(Field, [{\r\n key: \"error\",\r\n get: function () {\r\n return this._error;\r\n }\r\n }, {\r\n key: \"errorMessage\",\r\n get: function () {\r\n if (this._error) {\r\n return Array.from(Object.values(this._error)).join(\"
    \");\r\n }\r\n\r\n return \"\";\r\n }\r\n /**\r\n * Check if the field should be validated\r\n */\r\n\r\n }, {\r\n key: \"shouldValidate\",\r\n get: function () {\r\n return !this._checkbox || this._checkbox.checked;\r\n }\r\n /**\r\n * Set form element\r\n */\r\n\r\n }, {\r\n key: \"element\",\r\n get:\r\n /**\r\n * Get form element\r\n * @returns {HTMLElement|HTMLElement[]}\r\n */\r\n function () {\r\n return this._element;\r\n }\r\n /**\r\n * Get field value from form element\r\n * @returns {string|Array}\r\n */\r\n ,\r\n set: function (el) {\r\n var _this$_element2, _this$_element2$id;\r\n\r\n this._element = el;\r\n this._checkbox = (_this$_element2 = this._element) != null && (_this$_element2$id = _this$_element2.id) != null && _this$_element2$id.match(/^[xy]_/) ? document.getElementById(this._element.id.replace(/^[xy]_/, \"u_\").replace(/\\[\\]$/, \"\")) : null; // Find the checkbox for the field in Update page\r\n }\r\n }, {\r\n key: \"value\",\r\n get: function () {\r\n return this._element ? ew.getValue(this._element) : \"\";\r\n }\r\n }, {\r\n key: \"focused\",\r\n get: function () {\r\n return this._element && this._element == document.activeElement;\r\n }\r\n }]);\r\n\r\n return Field;\r\n }();\n\n /**\r\n * Class Form\r\n */\r\n\r\n let Form = /*#__PURE__*/function (_FormBase) {\r\n _inheritsLoose(Form, _FormBase);\r\n\r\n /**\r\n * Constructor\r\n * @param {string} id Form ID\r\n * @param {string} pageId Page ID\r\n */\r\n function Form(id, pageId) {\r\n var _this;\r\n\r\n _this = _FormBase.call(this, id, pageId) || this;\r\n\r\n _defineProperty(_assertThisInitialized(_this), \"row\", {});\r\n\r\n _defineProperty(_assertThisInitialized(_this), \"fields\", {});\r\n\r\n _defineProperty(_assertThisInitialized(_this), \"validateRequired\", true);\r\n\r\n _defineProperty(_assertThisInitialized(_this), \"autoFocus\", true);\r\n\r\n _defineProperty(_assertThisInitialized(_this), \"autoFocusPreventScroll\", true);\r\n\r\n _this.on(\"initiated\", function () {\r\n let form = this.getForm();\r\n\r\n if (form.classList.contains(\"ew-wait\")) {\r\n this.one(\"enabled\", function () {\r\n this.setInvalid();\r\n this.tryFocus();\r\n });\r\n return;\r\n }\r\n\r\n this.setInvalid();\r\n this.tryFocus();\r\n });\r\n\r\n return _this;\r\n }\r\n /**\r\n * Add field\r\n * @param {string} fldvar Field variable name\r\n * @param {Function[]} validators Validators\r\n * @param {bool} invalid Invalid\r\n */\r\n\r\n var _proto = Form.prototype;\r\n\r\n _proto.addField = function addField(fldvar, validators, invalid) {\r\n if (!(fldvar in this.fields)) this.fields[fldvar] = new Field(fldvar, validators, invalid);\r\n }\r\n /**\r\n * Get field\r\n * @param {string} fldvar Field variable name\r\n * @returns Field\r\n */\r\n ;\r\n\r\n _proto.getField = function getField(fldvar) {\r\n return this.fields[fldvar];\r\n }\r\n /**\r\n * Add fields by field definitions\r\n * @param {Array} fields\r\n */\r\n ;\r\n\r\n _proto.addFields = function addFields(fields) {\r\n if (Array.isArray(fields)) {\r\n for (let field of fields) {\r\n if (Array.isArray(field)) {\r\n this.addField.apply(this, field);\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Add error\r\n * @param {string} fldvar Field variable name\r\n * @param {Object} err Error\r\n */\r\n ;\r\n\r\n _proto.addError = function addError(fldvar, err) {\r\n if (err) {\r\n var _this$_error;\r\n\r\n this._error = (_this$_error = this._error) != null ? _this$_error : {};\r\n this._error[fldvar] = err;\r\n }\r\n }\r\n /**\r\n * Add custom error\r\n * @param {string} fldvar Field variable name\r\n * @param {string} msg Error message\r\n * @param {number} rowIndex - Row index\r\n */\r\n ;\r\n\r\n _proto.addCustomError = function addCustomError(fldvar, msg, rowIndex) {\r\n if (fldvar in this.fields) {\r\n let field = this.fields[fldvar],\r\n err = {\r\n custom: msg\r\n };\r\n field.addError(err);\r\n this.setFieldElement(fldvar, rowIndex);\r\n field.updateFeedback();\r\n this.addError(fldvar, err);\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Get error\r\n */\r\n ;\r\n\r\n /**\r\n * Set focus to a HTML element\r\n * @param {HTMLElement} el - HTML element to be focused\r\n */\r\n _proto.setFocus = function setFocus(el) {\r\n let delay = this.makeVisible(el) ? Form.focusDelay : 0;\r\n\r\n if (el && el != document.activeElement && el.focus) {\r\n let preventScroll = !el.closest(\".modal-body\") && Form.autoFocusPreventScroll && this.autoFocusPreventScroll;\r\n setTimeout(() => {\r\n el.focus({\r\n preventScroll\r\n });\r\n }, delay); // Focus after tab transition\r\n\r\n this._focused = true;\r\n }\r\n }\r\n /**\r\n * Set focus to the first field with error\r\n */\r\n ;\r\n\r\n _proto.focus = function focus() {\r\n if (!this.canFocus()) return;\r\n\r\n for (let [fldvar, field] of Object.entries(this.fields)) {\r\n var _this$_error2;\r\n\r\n if (field.invalid || (_this$_error2 = this._error) != null && _this$_error2[fldvar]) {\r\n this.getFocusable(field);\r\n\r\n if (field.canFocus()) {\r\n this.setFocus(field.element);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Get focuable field element\r\n * @param {Field} field - Field object\r\n */\r\n ;\r\n\r\n _proto.getFocusable = function getFocusable(field) {\r\n var _field$element;\r\n\r\n (_field$element = field.element) != null ? _field$element : field.element = this.getFieldElements(field.name);\r\n if (!field.canFocus()) field.element = this.getFieldElements(field.name, 0); // Inline-Add\r\n\r\n if (!field.canFocus()) field.element = this.getFieldElements(field.name, 1); // Inline-Edit or Grid-Add/Edit\r\n }\r\n /**\r\n * Try set focus to a field\r\n * @param {string|undefined|true} fieldName [undefined] - Field variable name. If undefined, find the first field. If true, always try to focus.\r\n */\r\n ;\r\n\r\n _proto.tryFocus = function tryFocus(fieldName) {\r\n if (!this.canFocus()) return;\r\n if (!fieldName && (!Form.autoFocus || !this.autoFocus || this._focused)) return;\r\n\r\n if (!fieldName && this.invalid) {\r\n // Has error\r\n this.focus();\r\n return;\r\n }\r\n\r\n if ([\"add\", \"edit\"].includes(this.pageId)) {\r\n // Process detail forms\r\n let form = this.getForm(),\r\n detailpage = Array.from(form.querySelectorAll(\"input[name=detailpage]\")).find(dp => {\r\n var _ew$forms$get;\r\n\r\n return (_ew$forms$get = ew.forms.get(dp.value)) == null ? void 0 : _ew$forms$get.invalid;\r\n });\r\n\r\n if (detailpage) {\r\n detailpage.focus();\r\n return;\r\n }\r\n }\r\n\r\n for (let [fldvar, field] of Object.entries(this.fields)) {\r\n if (typeof fieldName == \"string\" && fieldName !== fldvar) continue;\r\n field.element = null; // Reset field element first so that it will get the first element\r\n\r\n this.getFocusable(field);\r\n\r\n if (field.canFocus()) {\r\n this.setFocus(field.element);\r\n return;\r\n }\r\n }\r\n\r\n let input = this.element[ew.TABLE_BASIC_SEARCH]; // Quick Search input\r\n\r\n if (this.id.endsWith(\"srch\") && input && input != document.activeElement) {\r\n // Extended Search\r\n input.focus({\r\n preventScroll: Form.autoFocusPreventScroll && this.autoFocusPreventScroll\r\n }); // Focus the Quick Search input\r\n\r\n this._focused = true;\r\n }\r\n }\r\n /**\r\n * Check if the form can be focused\r\n */\r\n ;\r\n\r\n _proto.canFocus = function canFocus() {\r\n var _el$style, _el$classList;\r\n\r\n let el = this.element;\r\n return el && !(el.hidden || el.type == \"hidden\" || ((_el$style = el.style) == null ? void 0 : _el$style.display) == \"none\" || (_el$classList = el.classList) != null && _el$classList.contains(\"d-none\"));\r\n }\r\n /**\r\n * Make the form visible\r\n * @param {HTMLElement} el - Focused element\r\n */\r\n ;\r\n\r\n _proto.makeVisible = function makeVisible(el) {\r\n if (this.multiPage) {\r\n // Multi-page\r\n this.multiPage.gotoPageByElement(el);\r\n return true;\r\n } else if (this.$element.is(\"div\")) {\r\n // Multiple Master/Detail\r\n let $pane = this.$element.closest(\".tab-pane\");\r\n\r\n if ($pane[0] && !$pane.hasClass(\"active\")) {\r\n $pane.closest(\".ew-nav\").find(\"a[data-bs-toggle=tab][href='#\" + $pane.attr(\"id\") + \"']\").trigger(\"click\");\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Validate all fields of the specified row\r\n * @param {number} rowIndex - Row index\r\n */\r\n ;\r\n\r\n _proto.validateFields = function validateFields(rowIndex) {\r\n var _rowIndex;\r\n\r\n (_rowIndex = rowIndex) != null ? _rowIndex : rowIndex = this.getCurrentRowIndex();\r\n if (rowIndex < 2) // Regular pages (\"\"), Inline-Add (\"0\") or first row (\"1\")\r\n this.value = null; // Reset\r\n\r\n this.row = {};\r\n this._error = null; // Reset\r\n\r\n let result = true;\r\n\r\n for (let field of Object.values(this.fields)) {\r\n field.element = this.getFieldElements(field.name, rowIndex);\r\n this.row[field.name] = field.value; // Get field value\r\n\r\n if (field.element && !field.validate()) {\r\n // Invalid field value\r\n this.addError(field.name, field.error);\r\n result = false;\r\n }\r\n } // Save the field values of the row\r\n\r\n if (!this.value) {\r\n this.value = { ...this.row\r\n };\r\n } else {\r\n if (!Array.isArray(this.value)) this.value = [this.value];\r\n let index = parseInt(rowIndex, 10) || 0;\r\n index = index > 1 ? index - 1 : 0;\r\n this.value[index] = { ...this.row\r\n };\r\n }\r\n\r\n this.focus();\r\n return result;\r\n }\r\n /**\r\n * Key count (number|NaN)\r\n */\r\n ;\r\n\r\n /**\r\n * Validate\r\n * @param {Event} e - Event\r\n * @returns {bool}\r\n */\r\n _proto.validate = async function validate(e) {\r\n var _form$querySelector, _form$querySelector2, _ref, _e$currentTarget;\r\n\r\n if (!this.validateRequired) return true; // Ignore validation\r\n\r\n let form = this.getForm();\r\n if (((_form$querySelector = form.querySelector(\"#confirm\")) == null ? void 0 : _form$querySelector.value) == \"confirm\") return true;\r\n\r\n if (this.pageId == \"update\" && !ew.updateSelected(form)) {\r\n ew.alert(ew.language.phrase(\"NoFieldSelected\"));\r\n return false;\r\n }\r\n\r\n let addcnt = 0,\r\n inlineAdd = form.querySelector(\".ew-inline-insert\"),\r\n // Inline-Add\r\n action = ((_form$querySelector2 = form.querySelector(\"#action\")) == null ? void 0 : _form$querySelector2.value) || ((_ref = (_e$currentTarget = e == null ? void 0 : e.currentTarget) != null ? _e$currentTarget : inlineAdd) == null ? void 0 : _ref.dataset.action),\r\n keycnt = inlineAdd ? 0 : this.keyCount,\r\n gridinsert = action == \"gridinsert\" || [\"insert\", \"confirm\"].includes(action) && keycnt,\r\n // Grid-Add or Master/Detail-Add\r\n startcnt = inlineAdd ? 0 : 1,\r\n rowcnt = inlineAdd ? 0 : keycnt || 1;\r\n\r\n for (let i = startcnt; i <= rowcnt; i++) {\r\n var _await$this$customVal, _this$customValidate;\r\n\r\n let rowIndex = keycnt >= 0 ? String(i) : \"\";\r\n form.dataset.rowindex = rowIndex;\r\n\r\n if ([\"list\", \"grid\"].includes(this.pageId)) {\r\n if (gridinsert ? !this.emptyRow(rowIndex) : true) addcnt++;else continue;\r\n } // Validate fields\r\n\r\n if (!this.validateFields(rowIndex)) return false; // Call customValidate event\r\n\r\n if (!((_await$this$customVal = await ((_this$customValidate = this.customValidate) == null ? void 0 : _this$customValidate.call(this, form))) != null ? _await$this$customVal : true)) {\r\n this.focus();\r\n return false;\r\n }\r\n }\r\n\r\n delete form.dataset.rowindex; // Reset\r\n\r\n if (this.pageId == \"list\" && gridinsert && addcnt == 0) {\r\n // No row added\r\n ew.alert({\r\n html: ew.language.phrase(\"NoAddRecord\"),\r\n returnFocus: false\r\n }); // Do not return focus\r\n\r\n this.tryFocus(true);\r\n return false;\r\n } // Process detail forms\r\n\r\n if ([\"add\", \"edit\"].includes(this.pageId)) {\r\n let detailpages = form.querySelectorAll(\"input[name=detailpage]\");\r\n\r\n for (let dp of detailpages) {\r\n var _await$frm$validate;\r\n\r\n let frm = ew.forms.get(dp.value);\r\n if (!((_await$frm$validate = await (frm == null ? void 0 : frm.validate == null ? void 0 : frm.validate(e))) != null ? _await$frm$validate : true)) return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n /**\r\n * Get current row index (during validation)\r\n * @returns {string} Row index\r\n */\r\n ;\r\n\r\n _proto.getCurrentRowIndex = function getCurrentRowIndex() {\r\n var _this$getForm$dataset;\r\n\r\n return (_this$getForm$dataset = this.getForm().dataset.rowindex) != null ? _this$getForm$dataset : \"\";\r\n }\r\n /**\r\n * Get field values of the specified row\r\n * @param {number} rowIndex - Row index\r\n */\r\n ;\r\n\r\n _proto.getValue = function getValue(rowIndex) {\r\n var _rowIndex2;\r\n\r\n (_rowIndex2 = rowIndex) != null ? _rowIndex2 : rowIndex = this.getCurrentRowIndex();\r\n let value = {};\r\n\r\n for (let field of Object.values(this.fields)) {\r\n var _field$element2;\r\n\r\n (_field$element2 = field.element) != null ? _field$element2 : field.element = this.getFieldElements(field.name, rowIndex);\r\n value[field.name] = field.value; // Get field value\r\n }\r\n\r\n return value;\r\n }\r\n /**\r\n * Get a field value of the specified row\r\n * @param {string} fldvar - Field variable name\r\n * @param {number} rowIndex - Row index\r\n */\r\n ;\r\n\r\n _proto.getFieldValue = function getFieldValue(fldvar, rowIndex) {\r\n let field = this.getField(fldvar);\r\n\r\n if (field) {\r\n var _rowIndex3, _field$element3;\r\n\r\n (_rowIndex3 = rowIndex) != null ? _rowIndex3 : rowIndex = this.getCurrentRowIndex();\r\n (_field$element3 = field.element) != null ? _field$element3 : field.element = this.getFieldElements(field.name, rowIndex);\r\n return field.value;\r\n }\r\n\r\n return null;\r\n }\r\n /**\r\n * Get HTML elements for a field\r\n * @param {string} name - Field name\r\n * @param {number} rowIndex - Row index\r\n * @returns HTMLElement|HTMLElement[]|null\r\n */\r\n ;\r\n\r\n _proto.getFieldElements = function getFieldElements(name, rowIndex) {\r\n var _rowIndex4;\r\n\r\n (_rowIndex4 = rowIndex) != null ? _rowIndex4 : rowIndex = this.getCurrentRowIndex();\r\n return this.getElements(\"x\" + rowIndex + \"_\" + name) || // By name with prefix\r\n this.getElements(\"x\" + rowIndex + \"_\" + name + \"[]\") || // By name with prefix and []\r\n this.getElements(name); // By name directly (e.g. email form)\r\n }\r\n /**\r\n * Set the element property of the field object and return the field elements\r\n * @param {string} fldvar - Field variable name\r\n * @param {number} rowIndex - Row index\r\n * @returns HTMLElement|HTMLElement[]|null\r\n */\r\n ;\r\n\r\n _proto.setFieldElement = function setFieldElement(fldvar, rowIndex) {\r\n let field = this.getField(fldvar);\r\n if (field) field.element = this.getFieldElements(field.name, rowIndex);\r\n return field == null ? void 0 : field.element;\r\n }\r\n /**\r\n * Set invalid fields of the specified row\r\n * @param {number} rowIndex - Row index. If undefined, set for the whole form.\r\n */\r\n ;\r\n\r\n _proto.setInvalid = function setInvalid(rowIndex) {\r\n let form = this.getForm(); // Get HTML form\r\n\r\n if (typeof rowIndex === \"undefined\" && this.formKeyCountName) {\r\n let inlineAdd = form.querySelector(\".ew-inline-insert\"),\r\n // Inline-Add\r\n keycnt = inlineAdd ? 0 : this.keyCount,\r\n startcnt = inlineAdd ? 0 : 1,\r\n rowcnt = inlineAdd ? 0 : keycnt || 1;\r\n\r\n for (let i = startcnt; i <= rowcnt; i++) {\r\n let rowIndex = keycnt >= 0 ? String(i) : \"\";\r\n this.setInvalid(rowIndex);\r\n }\r\n } else {\r\n var _rowIndex5;\r\n\r\n (_rowIndex5 = rowIndex) != null ? _rowIndex5 : rowIndex = \"\";\r\n\r\n for (let field of Object.values(this.fields)) {\r\n field.element = this.getFieldElements(field.name, rowIndex); // Always get element in case Grid-Add/Edit\r\n\r\n if (rowIndex) field.resetInvalid(); // For Grid-Add/Edit\r\n\r\n if (field.invalid) {\r\n this.addError(field.name, field.error);\r\n if (!this._focused) this.focus(); // Focus at the current row\r\n } else {\r\n continue;\r\n }\r\n\r\n ew.setInvalid(field.element);\r\n } // Process detail forms\r\n\r\n if ([\"add\", \"edit\"].includes(this.pageId)) form.querySelectorAll(\"input[name=detailpage]\").forEach(dp => {\r\n var _ew$forms$get2;\r\n\r\n return (_ew$forms$get2 = ew.forms.get(dp.value)) == null ? void 0 : _ew$forms$get2.setInvalid();\r\n });\r\n }\r\n };\r\n\r\n _createClass(Form, [{\r\n key: \"error\",\r\n get: function () {\r\n return this._error;\r\n }\r\n /**\r\n * Check if invalid\r\n */\r\n\r\n }, {\r\n key: \"invalid\",\r\n get: function () {\r\n return this._error || Object.values(this.fields).some(field => field.invalid);\r\n }\r\n }, {\r\n key: \"keyCount\",\r\n get: function () {\r\n var _this$getForm$querySe;\r\n\r\n let keycnt = this.formKeyCountName ? (_this$getForm$querySe = this.getForm().querySelector(\"#\" + this.formKeyCountName)) == null ? void 0 : _this$getForm$querySe.value : undefined; // Get key_count\r\n\r\n return parseInt(keycnt, 10);\r\n }\r\n }]);\r\n\r\n return Form;\r\n }(FormBase);\r\n\r\n _defineProperty(Form, \"autoFocus\", true);\r\n\r\n _defineProperty(Form, \"autoFocusPreventScroll\", true);\r\n\r\n _defineProperty(Form, \"focusDelay\", 200);\n\n /**\r\n * Class FormBuilder\r\n */\r\n let FormBuilder = /*#__PURE__*/function () {\r\n function FormBuilder() {\r\n _defineProperty(this, \"lists\", {});\r\n\r\n _defineProperty(this, \"fields\", []);\r\n\r\n _defineProperty(this, \"validateRequired\", false);\r\n\r\n _defineProperty(this, \"multiPage\", false);\r\n\r\n _defineProperty(this, \"submitWithFetch\", false);\r\n\r\n _defineProperty(this, \"initSearchPanel\", false);\r\n\r\n _defineProperty(this, \"enableOnInit\", false);\r\n }\r\n\r\n var _proto = FormBuilder.prototype;\r\n\r\n // Set ID\r\n _proto.setId = function setId(value) {\r\n this.id = value;\r\n return this;\r\n } // Set page ID\r\n ;\r\n\r\n _proto.setPageId = function setPageId(value) {\r\n this.pageId = value;\r\n return this;\r\n } // Set lists\r\n ;\r\n\r\n _proto.setLists = function setLists(value) {\r\n if (value && typeof value == \"object\" && !Array.isArray(value)) this.lists = value;\r\n return this;\r\n } // Set lists for query builder (Dynamic Selection Lists and AutoFill not supported since there can be multiple inputs for the same field)\r\n ;\r\n\r\n _proto.setQueryBuilderLists = function setQueryBuilderLists(value) {\r\n if (value && typeof value == \"object\" && !Array.isArray(value)) {\r\n for (let [id, list] of Object.entries(value)) value[id] = { ...list,\r\n ...{\r\n autoFillTargetFields: [],\r\n childFields: [],\r\n filterFieldVars: [],\r\n filterFields: [],\r\n parentFields: []\r\n }\r\n };\r\n\r\n this.lists = value;\r\n }\r\n\r\n return this;\r\n } // Add list\r\n ;\r\n\r\n _proto.addList = function addList(name, value) {\r\n this.lists[name] = value;\r\n return this;\r\n } // Set fields\r\n ;\r\n\r\n _proto.setFields = function setFields(value) {\r\n if (Array.isArray(value)) this.fields = value;\r\n return this;\r\n } // Add field\r\n ;\r\n\r\n _proto.addField = function addField(fldvar, validators, invalid) {\r\n if (!this.fields.find(field => field[0] == fldvar)) this.fields.push([fldvar, validators, invalid]);\r\n return this;\r\n } // Add fields\r\n ;\r\n\r\n _proto.addFields = function addFields(value) {\r\n if (Array.isArray(value)) this.fields = [...this.fields, ...value];\r\n return this;\r\n } // Set validate\r\n ;\r\n\r\n _proto.setValidate = function setValidate(value) {\r\n this.validate = value;\r\n return this;\r\n } // Set custom validate\r\n ;\r\n\r\n _proto.setCustomValidate = function setCustomValidate(value) {\r\n this.customValidate = value;\r\n return this;\r\n } // Set validate required\r\n ;\r\n\r\n _proto.setValidateRequired = function setValidateRequired(value) {\r\n this.validateRequired = value;\r\n return this;\r\n } // Set submit\r\n ;\r\n\r\n _proto.setSubmit = function setSubmit(value) {\r\n this.submit = value;\r\n return this;\r\n } // Set form KeyCount name\r\n ;\r\n\r\n _proto.setFormKeyCountName = function setFormKeyCountName(value) {\r\n this.formKeyCountName = value;\r\n return this;\r\n } // Set empty row\r\n ;\r\n\r\n _proto.setEmptyRow = function setEmptyRow(value) {\r\n this.emptyRow = value;\r\n return this;\r\n } // Set multi page\r\n ;\r\n\r\n _proto.setMultiPage = function setMultiPage(value) {\r\n this.multiPage = value;\r\n return this;\r\n } // Set submit with Fetch API\r\n ;\r\n\r\n _proto.setSubmitWithFetch = function setSubmitWithFetch(value) {\r\n this.submitWithFetch = value;\r\n return this;\r\n } // Set filter list\r\n ;\r\n\r\n _proto.setFilterList = function setFilterList(value) {\r\n this.filterList = value;\r\n return this;\r\n } // Set initSearchPanel\r\n ;\r\n\r\n _proto.setInitSearchPanel = function setInitSearchPanel(value) {\r\n this.initSearchPanel = value;\r\n return this;\r\n } // Set enableOnInit\r\n ;\r\n\r\n _proto.setEnableOnInit = function setEnableOnInit(value) {\r\n this.enableOnInit = value;\r\n return this;\r\n } // Build\r\n ;\r\n\r\n _proto.build = function build() {\r\n let form = new ew.Form(this.id, this.pageId);\r\n if (Array.isArray(this.fields)) form.addFields(this.fields);\r\n if (typeof this.validate == 'function') form.validate = this.validate;\r\n if (typeof this.customValidate == 'function') form.customValidate = this.customValidate;\r\n if (typeof this.emptyRow == 'function') form.emptyRow = this.emptyRow;\r\n if (typeof this.submit == 'function') form.submit = this.submit;\r\n if (this.formKeyCountName) form.formKeyCountName = this.formKeyCountName;\r\n if (this.multiPage) form.multiPage = new ew.MultiPage(this.id);\r\n if (this.enableOnInit) form.enableOnInit = true;\r\n\r\n if (this.submitWithFetch) {\r\n form.submitWithFetch = true;\r\n form.on(\"aftersubmit\", (e, args) => ew.refresh(args == null ? void 0 : args.result, args == null ? void 0 : args.context));\r\n }\r\n\r\n if (this.filterList) form.filterList = this.filterList;\r\n if (this.lists) form.lists = this.lists;\r\n form.validateRequired = !!this.validateRequired;\r\n form.initSearchPanel = !!this.initSearchPanel;\r\n form.lists = this.lists;\r\n return form;\r\n };\r\n\r\n return FormBuilder;\r\n }();\n\n let AjaxLookup = /*#__PURE__*/function () {\r\n /**\r\n * Constructor\r\n * @param {Object} settings Settings\r\n * @param {string} settings.id - Input element ID\r\n * @param {string|Form} settings.form - Form of the input element\r\n * @param {Number} settings.limit - Options per page\r\n * @param {Object} settings.data - Data submitted by Ajax\r\n * @param {string} settings.action - Ajax action: \"autosuggest\" or \"modal\"\r\n */\r\n function AjaxLookup(settings) {\r\n var _this$list$parentFiel, _this$list$parentFiel2;\r\n\r\n _defineProperty(this, \"_isAutoSuggest\", null);\r\n\r\n this.elementId = settings.id; // Id\r\n\r\n this.form = settings.form; // Form\r\n\r\n if ($__default.default.isString(this.form)) // Form is string => Form id\r\n this.form = ew.forms.get(this.form);\r\n this.element = this.form.getElement(this.elementId); // Actual HTML element\r\n\r\n if (!this.element) // Element not found\r\n return;\r\n this.formElement = this.form.getElement(); // HTML form or DIV\r\n\r\n this.list = this.form.getList(this.element);\r\n let m = this.elementId.match(/^[xy](\\d*|\\$rowindex\\$)_/),\r\n rowindex = m ? m[1] : \"\";\r\n this.parentFields = (_this$list$parentFiel = (_this$list$parentFiel2 = this.list.parentFields) == null ? void 0 : _this$list$parentFiel2.slice() // Clone\r\n .map(pf => pf.split(\" \").length == 1 ? pf.replace(/^x_/, \"x\" + rowindex + \"_\") : pf)) != null ? _this$list$parentFiel : []; // Parent field in the same table, add row index\r\n\r\n this.limit = settings.limit;\r\n this.debounce = settings.debounce;\r\n this.data = settings.data;\r\n this.recordCount = 0;\r\n this.action = settings.action || \"autosuggest\";\r\n }\r\n /**\r\n * Is AutoSuggest\r\n */\r\n\r\n var _proto = AjaxLookup.prototype;\r\n\r\n /**\r\n * Format display value\r\n * @param {Array} opt Option\r\n */\r\n _proto.formatResult = function formatResult(opt) {\r\n this.form.compileTemplates();\r\n return this.list.template && !this.isAutoSuggest ? this.list.template.render(opt, ew.jsRenderHelpers) : ew.displayValue(opt, this.element) || opt[0];\r\n }\r\n /**\r\n * Generate request\r\n */\r\n ;\r\n\r\n _proto.generateRequest = function generateRequest() {\r\n var _data$ajax;\r\n\r\n var data = Object.assign({}, this.data, {\r\n name: this.element.name,\r\n page: this.list.page,\r\n field: this.list.field,\r\n language: ew.LANGUAGE_ID\r\n }, ew.getUserParams(\"#p_\" + this.elementId, this.formElement));\r\n (_data$ajax = data.ajax) != null ? _data$ajax : data.ajax = this.action;\r\n if (this.parentFields.length > 0) this.parentFields.forEach((pf, i) => data[\"v\" + (i + 1)] = ew.getOptionValue(pf, this.formElement));\r\n return data;\r\n }\r\n /**\r\n * Get URL\r\n */\r\n ;\r\n\r\n _proto.getUrl = function getUrl(query, start) {\r\n let params = new URLSearchParams({\r\n q: query || \"\",\r\n n: this.limit,\r\n rnd: ew.random(),\r\n start: $__default.default.isNumber(start) ? start : -1\r\n });\r\n return ew.getApiUrl(ew.API_LOOKUP_ACTION, params.toString());\r\n }\r\n /**\r\n * Prepare URL and data for sending request\r\n * @param {string} query Search term\r\n * @param {Number} start Start page\r\n */\r\n ;\r\n\r\n _proto.prepare = function prepare(query, start) {\r\n return {\r\n url: this.getUrl(query, start),\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: this.generateRequest()\r\n };\r\n }\r\n /**\r\n * Transform options (virtual)\r\n * @param {Object[]} data Data from server\r\n */\r\n ;\r\n\r\n _proto.transform = function transform(data) {\r\n let results = [];\r\n\r\n if ((data == null ? void 0 : data.result) == \"OK\") {\r\n this.recordCount = data.totalRecordCount;\r\n results = data.records;\r\n }\r\n\r\n return results;\r\n }\r\n /**\r\n * Convert options to Select2 data format\r\n * @param {Object[]} options Options\r\n * @returns {Object[]}\r\n */\r\n ;\r\n\r\n _proto.toSelect2Data = function toSelect2Data(options) {\r\n if (Array.isArray(options)) {\r\n if (options.every(item => item.hasOwnProperty(\"gf\"))) {\r\n // Has group by field\r\n let groups = [...new Set(options.map(item => item.gf))];\r\n return groups.map(group => {\r\n return {\r\n text: group,\r\n children: options.filter(item => item.gf == group).map(item => {\r\n return {\r\n id: item.lf,\r\n text: this.formatResult({\r\n lf: item.lf,\r\n df: item.df,\r\n df2: item.df2,\r\n df3: item.df3,\r\n df4: item.df4\r\n })\r\n };\r\n })\r\n };\r\n });\r\n } else {\r\n return options.map(item => {\r\n return {\r\n id: item.lf,\r\n text: this.formatResult({\r\n lf: item.lf,\r\n df: item.df,\r\n df2: item.df2,\r\n df3: item.df3,\r\n df4: item.df4\r\n })\r\n };\r\n });\r\n }\r\n }\r\n\r\n return options;\r\n };\r\n\r\n _createClass(AjaxLookup, [{\r\n key: \"isAutoSuggest\",\r\n get: function () {\r\n var _this$_isAutoSuggest;\r\n\r\n (_this$_isAutoSuggest = this._isAutoSuggest) != null ? _this$_isAutoSuggest : this._isAutoSuggest = ew.isAutoSuggest(this.element);\r\n return this._isAutoSuggest;\r\n }\r\n /**\r\n * Lookup options\r\n */\r\n\r\n }, {\r\n key: \"options\",\r\n get: function () {\r\n return this.list.lookupOptions;\r\n }\r\n }]);\r\n\r\n return AjaxLookup;\r\n }();\n\n let AutoSuggest = /*#__PURE__*/function (_AjaxLookup) {\r\n _inheritsLoose(AutoSuggest, _AjaxLookup);\r\n\r\n function AutoSuggest(settings) {\r\n var _this;\r\n\r\n _this = _AjaxLookup.call(this, settings) || this;\r\n if (!_this.element) // Element not found\r\n return _assertThisInitialized(_this);\r\n _this.input = _this.form.getElement(\"sv_\" + _this.elementId); // User input\r\n\r\n if (!_this.input || _this.elementId.includes(\"$rowindex$\")) return _assertThisInitialized(_this);\r\n\r\n let self = _assertThisInitialized(_this),\r\n $input = $__default.default(_this.input),\r\n $element = $__default.default(_this.element); // Properties\r\n\r\n _this.minWidth = settings.minWidth;\r\n _this.maxHeight = settings.maxHeight;\r\n _this.highlight = settings.highlight;\r\n _this.hint = settings.hint;\r\n _this.minLength = settings.minLength;\r\n _this.templates = Object.assign({}, settings.templates);\r\n _this.classNames = Object.assign({}, settings.classNames);\r\n _this.delay = settings.delay; // For loading more results\r\n\r\n _this.debounce = settings.debounce;\r\n _this.display = settings.display || \"text\";\r\n _this.forceSelection = settings.forceSelect;\r\n _this.lineHeight = settings.lineHeight;\r\n _this.paddingY = settings.paddingY;\r\n _this.lookupAllDisplayFields = settings.lookupAllDisplayFields;\r\n _this.$input = $input;\r\n _this.$element = $element; // Save instance\r\n\r\n $element.data(\"autosuggest\", _assertThisInitialized(_this)); // Save initial option\r\n\r\n if ($input.val() && $element.val()) _this.element.add($element.val(), $input.val(), true); // Add events\r\n\r\n $input.on(\"typeahead:select\", (e, d) => {\r\n self.setValue(d[self.display]);\r\n }).on(\"change\", () => {\r\n let ta = $input.data(\"tt-typeahead\");\r\n\r\n if (ta != null && ta.isOpen() && !ta.menu.empty()) {\r\n let $item = ta.menu.getActiveSelectable();\r\n\r\n if ($item) {\r\n // A suggestion is highlighted\r\n let i = $item.index(),\r\n val = self.element.options[i].text;\r\n $input.typeahead(\"val\", val);\r\n }\r\n }\r\n\r\n self.setValue();\r\n }).on(\"blur\", () => {\r\n // \"change\" fires before blur\r\n let ta = $input.data(\"tt-typeahead\");\r\n if (ta != null && ta.isOpen()) ta.menu.close();\r\n }).on(\"focus\", () => {\r\n $input.attr(\"placeholder\", $input.data(\"placeholder\")).removeClass(\"is-invalid\");\r\n $element.removeClass(\"is-invalid\");\r\n }); // Get suggestions\r\n\r\n let async = !_this.options.length,\r\n loadingMore = false,\r\n timer; // Option template (\"suggestion\" template)\r\n\r\n let tpl = self.list.template || self.templates.suggestion;\r\n if (tpl && $__default.default.isString(tpl)) tpl = $__default.default.templates(tpl);\r\n if (tpl) self.templates.suggestion = tpl.render.bind(tpl);\r\n if (async && !self.templates.footer) self.templates.footer = ''; // \"footer\" template\r\n\r\n let source = (query, syncResults, asyncResults) => {\r\n if (async) {\r\n if (timer) timer.cancel();\r\n timer = $__default.default.later(_this.debounce, null, () => {\r\n _this.recordCount = 0; // Reset\r\n\r\n $__default.default.ajax(_this.prepare(query)).done(data => asyncResults(_this.transform(data)));\r\n });\r\n } else {\r\n let records = _this.getSyncResults(query);\r\n\r\n syncResults(_this.transform({\r\n result: \"OK\",\r\n totalRecordCount: records.length,\r\n records\r\n }));\r\n }\r\n }; // Create Typeahead\r\n\r\n $__default.default(function () {\r\n // Typeahead options and dataset\r\n let options = {\r\n highlight: self.highlight,\r\n minLength: self.minLength,\r\n hint: self.hint,\r\n classNames: self.classNames\r\n };\r\n let dataset = {\r\n name: self.form.id + \"-\" + self.elementId,\r\n source,\r\n async,\r\n templates: self.templates,\r\n display: self.display,\r\n limit: async ? self.limit : Infinity\r\n };\r\n let args = [options, dataset]; // Trigger \"typeahead\" event\r\n\r\n $element.trigger(\"typeahead\", [args]); // Create Typeahead\r\n\r\n self.typeahead = $input.typeahead.apply($input, args).off(\"blur.tt\").data(\"tt-typeahead\");\r\n\r\n let menu = self.typeahead.menu,\r\n $menu = menu.$node,\r\n $dataset = $menu.find(\".tt-dataset\"),\r\n suggestionHeight = () => $menu.find(\".tt-suggestion\").outerHeight(false);\r\n\r\n if (self.minWidth) $menu.css(\"min-width\", self.minWidth);\r\n $input.on(\"typeahead:rendered\", (e, suggestions) => {\r\n let rendered = suggestions.length,\r\n count = self.count;\r\n\r\n if (count >= self.limit) {\r\n let h = suggestionHeight();\r\n if (h) $dataset.css(\"max-height\", h * self.limit);\r\n }\r\n\r\n if (rendered > 0) $dataset.scrollTop(suggestionHeight() * (count - rendered)); // Scroll to the first suggestion\r\n\r\n if (async) $menu.find(\".tt-footer\").toggle(self.recordCount > count);\r\n });\r\n\r\n if (async) {\r\n let loadingMoreTimer;\r\n $dataset.on(\"scroll\", () => {\r\n var _loadingMoreTimer;\r\n\r\n (_loadingMoreTimer = loadingMoreTimer) == null ? void 0 : _loadingMoreTimer.cancel();\r\n loadingMoreTimer = $__default.default.later(self.delay, null, () => {\r\n let $footer = $menu.find(\".tt-footer\");\r\n\r\n if (!$footer.is(\":hidden\") && !loadingMore) {\r\n let currentOffset = $dataset.offset().top + $dataset.outerHeight(false),\r\n loadingMoreOffset = $footer.offset().top + $footer.outerHeight(false);\r\n\r\n if (currentOffset + 20 > loadingMoreOffset) {\r\n // $footer shows more than 20px\r\n loadingMore = true;\r\n self.getMore().always(() => loadingMore = false);\r\n } else {\r\n var _loadingMoreTimer2;\r\n\r\n (_loadingMoreTimer2 = loadingMoreTimer) == null ? void 0 : _loadingMoreTimer2.cancel();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n });\r\n return _this;\r\n } // Set the selected item to the actual field\r\n\r\n var _proto = AutoSuggest.prototype;\r\n\r\n _proto.setValue = function setValue(v) {\r\n v || (v = this.$input.val());\r\n let index = this.element.options.findIndex(option => option.text == v);\r\n\r\n if (index < 0) {\r\n // Not found in results\r\n if (this.forceSelection && v) {\r\n // Force selection and query not empty => error\r\n this.$input.typeahead(\"val\", \"\").addClass(\"is-invalid\");\r\n this.$element.next(\".invalid-feedback\").html(ew.language.phrase(\"ValueNotExist\"));\r\n this.$element.addClass(\"is-invalid\").val(\"\").trigger(\"change\");\r\n return;\r\n }\r\n } else {\r\n // Found in results\r\n this.element.options[index].selected = true;\r\n if (!/s(ea)?rch$/.test(this.formElement.id) || this.forceSelection) // Force selection or not search form\r\n v = this.element.options[index].value; // Replace the display value by Link Field value\r\n }\r\n\r\n if (v !== this.$element.attr(\"value\")) this.$element.attr(\"value\", v).trigger(\"change\"); // Set value to the actual field\r\n } // Transform suggestion\r\n ;\r\n\r\n _proto.transform = function transform(data) {\r\n let results = _AjaxLookup.prototype.transform.call(this, data).map(item => Object.assign({}, item, {\r\n text: _AjaxLookup.prototype.formatResult.call(this, item)\r\n }));\r\n\r\n this.element.options = results.map(item => new ew.SelectionListOption(item.text, item.lf || item[0]));\r\n return results;\r\n } // Get current suggestion count\r\n ;\r\n\r\n // Get suggestions from lookup cache\r\n _proto.getSyncResults = function getSyncResults(query) {\r\n if (this.options.length) {\r\n let results = this.options.filter(item => {\r\n if (this.lookupAllDisplayFields) {\r\n let v = [item.df, item.df2, item.df3, item.df4].map(df => String(df).toLowerCase()).join(\" \");\r\n return query.toLowerCase().split(\" \").filter(q => q !== \"\").every(q => v.includes(q));\r\n } else {\r\n return String(item.df).toLowerCase().startsWith(query);\r\n }\r\n });\r\n this.recordCount = results.length;\r\n return results;\r\n }\r\n\r\n return [];\r\n } // Get more suggestions by Ajax\r\n ;\r\n\r\n _proto.getMore = function getMore() {\r\n let menu = this.typeahead.menu,\r\n start = this.count,\r\n settings = this.prepare(menu.query, start);\r\n return $__default.default.ajax(settings).done(data => menu.datasets[0]._append(menu.query, this.transform(data)));\r\n };\r\n\r\n _createClass(AutoSuggest, [{\r\n key: \"count\",\r\n get: function () {\r\n return this.typeahead.menu.$node.find(\".tt-suggestion.tt-selectable\").length || 0;\r\n }\r\n }]);\r\n\r\n return AutoSuggest;\r\n }(AjaxLookup);\n\n /**\r\n * Class Forms\r\n */\r\n\r\n let Forms = /*#__PURE__*/function () {\r\n function Forms() {\r\n _defineProperty(this, \"_forms\", {});\r\n }\r\n\r\n var _proto = Forms.prototype;\r\n\r\n /**\r\n * Get form by element or id\r\n * @param {HTMLElement|string} el Element or id\r\n */\r\n _proto.get = function get(el) {\r\n var _ew$getForm;\r\n\r\n if (!el) return null;\r\n let id = $__default.default.isString(el) ? el : (_ew$getForm = ew.getForm(el)) == null ? void 0 : _ew$getForm.id;\r\n return this._forms[id];\r\n }\r\n /**\r\n * Add form\r\n * @param {Form} f Form\r\n */\r\n ;\r\n\r\n _proto.add = function add(f) {\r\n if (this._forms[f.id] && this._forms[f.id] !== f) delete this._forms[f.id];\r\n this._forms[f.id] = f;\r\n }\r\n /**\r\n * Get all ids\r\n * @returns {string[]}\r\n */\r\n ;\r\n\r\n _proto.ids = function ids() {\r\n return Object.keys(this._forms);\r\n };\r\n\r\n return Forms;\r\n }();\n\n let lang = ew.language.phrase(\"select2\");\r\n var Select2Language = {\r\n errorLoading: function () {\r\n return lang.errorLoading;\r\n },\r\n inputTooLong: function (args) {\r\n var overChars = args.input.length - args.maximum;\r\n return lang.inputTooLong.replace(\"%s\", overChars);\r\n },\r\n inputTooShort: function (args) {\r\n var remainingChars = args.minimum - args.input.length;\r\n return lang.inputTooShort.replace(\"%s\", remainingChars);\r\n },\r\n loadingMore: function () {\r\n return '
    ' + lang.loadingMore + '
    ';\r\n },\r\n maximumSelected: function (args) {\r\n return lang.maximumSelected.replace(\"%s\", args.maximum);\r\n },\r\n noResults: function () {\r\n return lang.noResults;\r\n },\r\n searching: function () {\r\n return '
    ' + lang.searching + '
    ';\r\n },\r\n removeAllItems: function () {\r\n return lang.removeAllItems;\r\n },\r\n removeItem: function () {\r\n return lang.removeItem;\r\n },\r\n search: function () {\r\n return lang.search;\r\n }\r\n };\n\n let _defined$3 = $__default.default.fn.select2.amd.require._defined,\r\n Utils$3 = _defined$3['select2/utils'];\r\n /**\r\n * Select2 decorator for Results\r\n */\r\n\r\n let Select2ResultsDecorator = /*#__PURE__*/function () {\r\n function Select2ResultsDecorator() {}\r\n\r\n var _proto = Select2ResultsDecorator.prototype;\r\n\r\n _proto.render = function render(decorated) {\r\n var $results = $__default.default('
    '); //***\r\n\r\n if (this.options.get('multiple')) {\r\n $results.attr('aria-multiselectable', 'true');\r\n }\r\n\r\n this.$results = $results;\r\n return $results;\r\n };\r\n\r\n _proto.displayMessage = function displayMessage(decorated, params) {\r\n var escapeMarkup = this.options.get('escapeMarkup');\r\n this.clear();\r\n this.hideLoading();\r\n var $message = $__default.default('
    '); //***\r\n\r\n if (params.message.includes(\"<\") && params.message.includes(\">\")) {\r\n // HTML //***\r\n $message.append(params.message);\r\n } else {\r\n var message = this.options.get('translations').get(params.message);\r\n $message.append(escapeMarkup(message(params.args)));\r\n }\r\n\r\n $message[0].className += ' select2-results__message';\r\n this.$results.append($message);\r\n };\r\n\r\n _proto.append = function append(decorated, data) {\r\n this.hideLoading();\r\n\r\n if (data.results == null || data.results.length === 0) {\r\n if (this.$results.children().length === 0) {\r\n if (this.$element.data(\"updating\") && data.pagination.more) {\r\n this.trigger('results:message', {\r\n message: '
    ' + ew.language.phrase('Loading') + '
    ' + ew.language.phrase('Loading')\r\n });\r\n this.$element.one(\"updated\", () => this.$element.select2(\"close\").select2(\"open\"));\r\n } else {\r\n this.trigger('results:message', {\r\n message: 'noResults'\r\n });\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n data.results = this.sort(data.results); //***\r\n\r\n var cols = this.options.get('columns'),\r\n len = data.results.length,\r\n $row = this.$results.find(\".\" + this.options.get('rowClass')).last();\r\n\r\n for (var d = 0; d < data.results.length; d++) {\r\n var item = data.results[d];\r\n var $option = this.option(item);\r\n\r\n if (!$row.length || $row.children().length == cols) {\r\n // Add new row\r\n $row = $__default.default('
    ');\r\n this.$results.append($row);\r\n }\r\n\r\n $row.append($option);\r\n\r\n if (d == len - 1) {\r\n // Last\r\n var cnt = cols - $row.children().length;\r\n\r\n for (var i = 0; i < cnt; i++) $row.append('
    ');\r\n }\r\n }\r\n };\r\n\r\n _proto.option = function option(decorated, data) {\r\n // var option = document.createElement('li');\r\n var option = document.createElement('div'); //***\r\n\r\n option.classList.add('select2-results__option');\r\n option.classList.add('select2-results__option--selectable');\r\n this.options.get('cellClass').split(\" \").forEach(c => option.classList.add(c)); //***\r\n\r\n var attrs = {\r\n 'role': 'option',\r\n 'aria-selected': 'false'\r\n };\r\n var matches = window.Element.prototype.matches || window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector;\r\n\r\n if (data.element != null && matches.call(data.element, ':disabled') || data.element == null && data.disabled) {\r\n attrs['aria-disabled'] = 'true';\r\n option.classList.remove('select2-results__option--selectable');\r\n option.classList.add('select2-results__option--disabled');\r\n }\r\n\r\n if (data.id == null) {\r\n option.classList.remove('select2-results__option--selectable');\r\n }\r\n\r\n if (data._resultId != null) {\r\n option.id = data._resultId;\r\n }\r\n\r\n if (data.title) {\r\n option.title = data.title;\r\n } // if (data.children) { //***\r\n // attrs.role = 'group';\r\n // attrs['aria-label'] = data.text;\r\n // option.classList.remove('select2-results__option--selectable');\r\n // option.classList.add('select2-results__option--group');\r\n // }\r\n\r\n for (var attr in attrs) {\r\n var val = attrs[attr];\r\n option.setAttribute(attr, val);\r\n } // if (data.children) { //***\r\n // var $option = $(option);\r\n // var label = document.createElement('strong');\r\n // label.className = 'select2-results__group';\r\n // this.template(data, label);\r\n // var $children = [];\r\n // for (var c = 0; c < data.children.length; c++) {\r\n // var child = data.children[c];\r\n // var $child = this.option(child);\r\n // $children.push($child);\r\n // }\r\n // var $childrenContainer = $('', {\r\n // 'class': 'select2-results__options select2-results__options--nested',\r\n // 'role': 'none'\r\n // });\r\n // $childrenContainer.append($children);\r\n // $option.append(label);\r\n // $option.append($childrenContainer);\r\n // } else {\r\n\r\n this.template(data, option); // }\r\n\r\n Utils$3.StoreData(option, 'data', data);\r\n return option;\r\n };\r\n\r\n return Select2ResultsDecorator;\r\n }();\n\n let _defined$2 = $__default.default.fn.select2.amd.require._defined,\r\n Utils$2 = _defined$2['select2/utils'];\r\n /**\r\n * Results for modal lookup\r\n */\r\n\r\n let ModalResults = /*#__PURE__*/function () {\r\n function ModalResults() {}\r\n\r\n var _proto = ModalResults.prototype;\r\n\r\n _proto.bind = function bind(decorated, container, $container) {\r\n var _container$listeners$;\r\n\r\n var self = this;\r\n decorated.call(this, container, $container); // Remove handlers\r\n\r\n (_container$listeners$ = container.listeners['results:select']) == null ? void 0 : _container$listeners$.pop();\r\n this.$results.off('mouseup');\r\n container.on('results:select', function (evt) {\r\n var $highlighted = self.getHighlightedResults();\r\n\r\n if ($highlighted.length === 0) {\r\n return;\r\n }\r\n\r\n var data = Utils$2.GetData($highlighted[0], 'data');\r\n\r\n if ($highlighted.hasClass('select2-results__option--selected')) {\r\n self.trigger('unselect', {\r\n originalEvent: evt,\r\n data: data\r\n });\r\n } else {\r\n self.trigger('select', {\r\n originalEvent: evt,\r\n data: data\r\n });\r\n }\r\n });\r\n this.$results.on('mousedown', '.select2-results__option--selectable', function (evt) {\r\n this._mousedown = true;\r\n });\r\n this.$results.on('mouseup', '.select2-results__option--selectable', function (evt) {\r\n if (!this._mousedown) return;\r\n var $this = $__default.default(this);\r\n var data = Utils$2.GetData(this, 'data');\r\n\r\n if ($this.hasClass('select2-results__option--selected')) {\r\n self.trigger('unselect', {\r\n originalEvent: evt,\r\n data: data\r\n });\r\n return;\r\n }\r\n\r\n self.trigger('select', {\r\n originalEvent: evt,\r\n data: data\r\n });\r\n });\r\n };\r\n\r\n return ModalResults;\r\n }();\n\n /**\r\n * Search box for modal lookup\r\n */\r\n let ModalSearch = /*#__PURE__*/function () {\r\n function ModalSearch() {}\r\n\r\n var _proto = ModalSearch.prototype;\r\n\r\n _proto.bind = function bind(decorated, container, $container) {\r\n var _container$listeners$;\r\n\r\n var self = this;\r\n decorated.call(this, container, $container);\r\n (_container$listeners$ = container.listeners['close']) == null ? void 0 : _container$listeners$.pop(); // Remove handler from Search\r\n\r\n container.on('close', function () {\r\n self.$search.attr('tabindex', -1).removeAttr('aria-controls').removeAttr('aria-activedescendant');\r\n });\r\n };\r\n\r\n return ModalSearch;\r\n }();\n\n /**\r\n * Dropdown search decorator\r\n */\r\n let KEYS = $.fn.select2.amd.require._defined['select2/keys'];\r\n KEYS.PRINT_SCREEN = 44;\r\n\r\n let DropdownSearchDecorator = /*#__PURE__*/function () {\r\n function DropdownSearchDecorator() {}\r\n\r\n var _proto = DropdownSearchDecorator.prototype;\r\n\r\n _proto.handleSearch = function handleSearch(decorated, evt) {\r\n var key = evt.which; // Ignore events from modifier keys\r\n\r\n if ([KEYS.TAB, KEYS.SHIFT, KEYS.CTRL, KEYS.ALT, KEYS.PRINT_SCREEN].includes(key)) {\r\n return;\r\n }\r\n\r\n if (!this._keyUpPrevented) {\r\n var input = this.$search.val();\r\n this.trigger('query', {\r\n term: input\r\n });\r\n }\r\n\r\n this._keyUpPrevented = false;\r\n };\r\n\r\n return DropdownSearchDecorator;\r\n }();\n\n let AttachBody$2 = $__default.default.fn.select2.amd.require._defined['select2/dropdown/attachBody'];\r\n /**\r\n * Select2 AttachBody with popper\r\n */\r\n\r\n let Select2AttachBody = /*#__PURE__*/function (_AttachBody) {\r\n _inheritsLoose(Select2AttachBody, _AttachBody);\r\n\r\n // Constructor\r\n function Select2AttachBody(decorated, $element, options) {\r\n return _AttachBody.call(this, decorated, $element, options) || this;\r\n } // Override _attachPositioningHandler\r\n\r\n var _proto = Select2AttachBody.prototype;\r\n\r\n _proto._attachPositioningHandler = function _attachPositioningHandler(decorated, container) {\r\n var self = this;\r\n var events = ['scroll.select2.' + container.id, 'resize.select2.' + container.id, 'orientationchange.select2.' + container.id];\r\n\r\n var handler = () => {\r\n self._positionDropdown();\r\n\r\n self._resizeDropdown();\r\n };\r\n\r\n $__default.default(window).on(events.join(' '), handler);\r\n container.$element.closest('.modal').on('scroll.select2.' + container.id, handler);\r\n };\r\n\r\n // Override _detachPositioningHandler\r\n _proto._detachPositioningHandler = function _detachPositioningHandler(decorated, container) {\r\n var events = ['scroll.select2.' + container.id, 'resize.select2.' + container.id, 'orientationchange.select2.' + container.id];\r\n $__default.default(window).off(events.join(' '));\r\n container.$element.closest('.modal').off('scroll.select2.' + container.id);\r\n };\r\n\r\n // Override _showDropdown\r\n _proto._showDropdown = function _showDropdown(decorated) {\r\n var _this$_popper;\r\n\r\n this.$dropdownContainer.appendTo(this.$dropdownParent);\r\n (_this$_popper = this._popper) != null ? _this$_popper : this._popper = Popper.createPopper(this.$container[0], this.$dropdownContainer[0], {\r\n placement: ew.IS_RTL ? 'bottom-end' : 'bottom-start',\r\n modifiers: [{\r\n name: 'flip',\r\n enabled: true\r\n }, {\r\n name: 'preventOverflow',\r\n enabled: true\r\n }]\r\n });\r\n\r\n this._positionDropdown();\r\n\r\n this._resizeDropdown();\r\n };\r\n\r\n // Override _positionDropdown()\r\n _proto._positionDropdown = function _positionDropdown() {\r\n var _this$_popper2;\r\n\r\n (_this$_popper2 = this._popper) == null ? void 0 : _this$_popper2.update();\r\n } // Override destroy()\r\n ;\r\n\r\n _proto.destroy = function destroy(decorated) {\r\n var _this$_popper3;\r\n\r\n _AttachBody.prototype.destroy.call(this, decorated);\r\n\r\n (_this$_popper3 = this._popper) == null ? void 0 : _this$_popper3.destroy();\r\n this._popper = null;\r\n };\r\n\r\n return Select2AttachBody;\r\n }(AttachBody$2);\n\n /**\r\n * Select2 AttachBody decorator for modal lookup\r\n */\r\n\r\n let ModalAttachBody = /*#__PURE__*/function () {\r\n function ModalAttachBody(decorated, $element, options) {\r\n _defineProperty(this, \"$modal\", null);\r\n\r\n options.set('dropdownParent', $__default.default(document.body));\r\n decorated.call(this, $element, options);\r\n }\r\n\r\n var _proto = ModalAttachBody.prototype;\r\n\r\n _proto.bind = function bind(decorated, container, $container) {\r\n let self = this;\r\n decorated.call(this, container, $container);\r\n container.on('open', function () {\r\n self._showDropdown(); // Must bind after the results handlers to ensure correct sizing\r\n\r\n self._bindContainerResultHandlers(container);\r\n });\r\n this.$dropdownContainer.on('mousedown', function (evt) {\r\n evt.stopPropagation();\r\n });\r\n };\r\n\r\n _proto.position = function position(decorated, $dropdown, $container) {\r\n // Clone all of the container classes\r\n $dropdown.attr('class', $container.attr('class'));\r\n $dropdown.removeClass('select2');\r\n this.$container = $container;\r\n };\r\n\r\n _proto.render = function render(decorated) {\r\n let $container = $__default.default('');\r\n let $dropdown = decorated.call(this);\r\n $container.append($dropdown);\r\n this.$dropdownContainer = $container;\r\n return $container;\r\n };\r\n\r\n _proto._bindContainerResultHandlers = function _bindContainerResultHandlers(decorated, container) {\r\n // These should only be bound once\r\n if (this._containerResultsHandlersBound) {\r\n return;\r\n }\r\n\r\n let self = this;\r\n container.$modal = this.$modal;\r\n container.on('results:all', function () {\r\n var _self$$search$;\r\n\r\n self._updateDropdown();\r\n\r\n (_self$$search$ = self.$search[0]) == null ? void 0 : _self$$search$.focus();\r\n });\r\n container.on('results:append', function () {\r\n self._updateDropdown();\r\n });\r\n container.on('results:message', function () {\r\n self._updateDropdown();\r\n });\r\n container.on('select', function (e) {\r\n var _e$originalEvent;\r\n\r\n let target = (_e$originalEvent = e.originalEvent) == null ? void 0 : _e$originalEvent.currentTarget;\r\n target == null ? void 0 : target.classList.add('select2-results__option--selected');\r\n\r\n self._updateDropdown();\r\n });\r\n container.on('unselect', function (e) {\r\n var _e$originalEvent2;\r\n\r\n let target = (_e$originalEvent2 = e.originalEvent) == null ? void 0 : _e$originalEvent2.currentTarget;\r\n target == null ? void 0 : target.classList.remove('select2-results__option--selected');\r\n\r\n self._updateDropdown();\r\n });\r\n this._containerResultsHandlersBound = true;\r\n };\r\n\r\n _proto._updateDropdown = function _updateDropdown() {\r\n if (!this.$modal.find(this.$dropdownContainer)[0]) this.$modal.find('.modal-body').children().detach().end().append(this.$dropdownContainer);\r\n };\r\n\r\n _proto._showDropdown = function _showDropdown(decorated) {\r\n var _this$$modal;\r\n\r\n let self = this,\r\n oldValue = this.$element.val();\r\n this.$dropdownContainer.appendTo(this.options.get('dropdownParent'));\r\n (_this$$modal = this.$modal) != null ? _this$$modal : this.$modal = $__default.default('#ew-modal-lookup-dialog');\r\n\r\n this._updateDropdown();\r\n\r\n this.$modal.find('.modal-title').empty().append(ew.language.phrase('LookupTitle').replace('%s', this.$element.data('caption')));\r\n this.$modal.find('.modal-footer button[data-value]').off().on('click', function () {\r\n if (!$__default.default(this).data('value')) // Cancel\r\n self.$element.val(oldValue).trigger('change');\r\n });\r\n this.$modal.modal('show').on('hidden.bs.modal', function (event) {\r\n self.$container.removeClass('select2-container--open');\r\n }).draggable(this.options.get('draggableOptions'));\r\n };\r\n\r\n return ModalAttachBody;\r\n }();\n\n let AttachBody$1 = $__default.default.fn.select2.amd.require._defined['select2/dropdown/attachBody'];\r\n /**\r\n * Select2 AttachBody for table header filter\r\n */\r\n\r\n let FilterAttachBody = /*#__PURE__*/function (_AttachBody) {\r\n _inheritsLoose(FilterAttachBody, _AttachBody);\r\n\r\n // Constructor\r\n function FilterAttachBody(decorated, $element, options) {\r\n return _AttachBody.call(this, decorated, $element, options) || this;\r\n } // Override bind()\r\n\r\n var _proto = FilterAttachBody.prototype;\r\n\r\n _proto.bind = function bind(decorated, container, $container) {\r\n var self = this;\r\n decorated.call(this, container, $container);\r\n container.on('open', function () {\r\n self._showDropdown(); // Must bind after the results handlers to ensure correct sizing\r\n\r\n self._bindContainerResultHandlers(container);\r\n });\r\n container.on('close', function () {\r\n self._hideDropdown();\r\n });\r\n this.$dropdownContainer.on('mousedown', function (evt) {\r\n evt.stopPropagation();\r\n });\r\n } // Override _positionDropdown()\r\n ;\r\n\r\n _proto._positionDropdown = function _positionDropdown() {\r\n var _this$_popper;\r\n\r\n (_this$_popper = this._popper) == null ? void 0 : _this$_popper.update();\r\n } // Override _resizeDropdown()\r\n ;\r\n\r\n _proto._resizeDropdown = function _resizeDropdown() {\r\n var css = {\r\n width: this.$container.outerWidth(false) + 'px'\r\n };\r\n\r\n if (this.options.get('dropdownAutoWidth')) {\r\n css.minWidth = css.width;\r\n css.position = 'relative';\r\n css.width = 'auto';\r\n }\r\n\r\n this.$dropdown.css(css);\r\n } // Override _showDropdown()\r\n ;\r\n\r\n _proto._showDropdown = function _showDropdown(decorated) {\r\n var _dropdownButton$close, _this$_popper2;\r\n\r\n this.$dropdownContainer.appendTo(this.$dropdownParent); // Footer\r\n\r\n let self = this,\r\n oldValue = this.$element.val(),\r\n $footer = $__default.default('#ew-filter-dropdown-footer').contents().clone();\r\n $footer.find('.ew-filter-btn[data-value]').off('click.ew').on('click.ew', function (e) {\r\n let value = $__default.default(this).data('value');\r\n\r\n if (value) {\r\n // OK\r\n $__default.default(self.$element[0].form).triggerHandler('submit');\r\n } else {\r\n // Cancel\r\n self.$element.val(oldValue).trigger('change');\r\n }\r\n\r\n self.$element.select2('close');\r\n });\r\n $footer.find('.ew-filter-clear').off('click.ew').on('click.ew', e => self.$element.data('select2').selection._handleClear(e));\r\n let $filterDropdown = this.$dropdownContainer.find('.ew-filter-dropdown');\r\n if (!$filterDropdown.find('.ew-filter-btn')[0]) $filterDropdown.append($footer); // Popper\r\n\r\n var dropdownButton = document.querySelector('.ew-filter-dropdown-btn[data-table=' + this.$element.data('table') + '][data-field=' + this.$element.data('field') + ']'),\r\n reference = (_dropdownButton$close = dropdownButton.closest(\".ew-table-header-cell\")) != null ? _dropdownButton$close : dropdownButton.closest(\".ew-table-header-btn\");\r\n (_this$_popper2 = this._popper) != null ? _this$_popper2 : this._popper = Popper.createPopper(reference, this.$dropdownContainer[0], {\r\n placement: ew.IS_RTL ? 'bottom-end' : 'bottom-start',\r\n modifiers: [{\r\n name: 'flip',\r\n enabled: true\r\n }, {\r\n name: 'preventOverflow',\r\n enabled: true\r\n }]\r\n });\r\n\r\n this._positionDropdown();\r\n\r\n this._resizeDropdown();\r\n } // Override position()\r\n ;\r\n\r\n _proto.position = function position(decorated, $dropdown, $container) {\r\n // Clone all of the container classes\r\n $dropdown.attr('class', $container.attr('class'));\r\n $dropdown[0].classList.remove('select2');\r\n $dropdown[0].classList.add('select2-container--open');\r\n this.$container = $container;\r\n };\r\n\r\n // Override destroy()\r\n _proto.destroy = function destroy(decorated) {\r\n var _this$_popper3;\r\n\r\n _AttachBody.prototype.destroy.call(this, decorated);\r\n\r\n (_this$_popper3 = this._popper) == null ? void 0 : _this$_popper3.destroy();\r\n this._popper = null;\r\n };\r\n\r\n return FilterAttachBody;\r\n }(AttachBody$1);\n\n let AttachBody = $__default.default.fn.select2.amd.require._defined['select2/dropdown/attachBody'];\r\n /**\r\n * Select2 AttachBody for dropdown\r\n */\r\n\r\n let DropdownAttachBody = /*#__PURE__*/function (_AttachBody) {\r\n _inheritsLoose(DropdownAttachBody, _AttachBody);\r\n\r\n // Constructor\r\n function DropdownAttachBody(decorated, $element, options) {\r\n return _AttachBody.call(this, decorated, $element, options) || this;\r\n } // Override bind()\r\n\r\n var _proto = DropdownAttachBody.prototype;\r\n\r\n _proto.bind = function bind(decorated, container, $container) {\r\n var self = this;\r\n decorated.call(this, container, $container);\r\n container.on('open', function () {\r\n self._showDropdown(); // Must bind after the results handlers to ensure correct sizing\r\n\r\n self._bindContainerResultHandlers(container);\r\n });\r\n container.on('close', function () {\r\n self._hideDropdown();\r\n });\r\n this.$dropdownContainer.on('mousedown', function (evt) {\r\n evt.stopPropagation();\r\n });\r\n } // Override _showDropdown()\r\n ;\r\n\r\n _proto._showDropdown = function _showDropdown(decorated) {\r\n var _this$_popper;\r\n\r\n this.$dropdownContainer.appendTo(this.$dropdownParent);\r\n (_this$_popper = this._popper) != null ? _this$_popper : this._popper = Popper.createPopper(this.$element.parent().find('.select2-container')[0], this.$dropdownContainer[0], {\r\n placement: ew.IS_RTL ? 'bottom-end' : 'bottom-start',\r\n modifiers: [{\r\n name: 'flip',\r\n enabled: true\r\n }, {\r\n name: 'preventOverflow',\r\n enabled: true\r\n }]\r\n });\r\n\r\n this._positionDropdown();\r\n\r\n this._resizeDropdown();\r\n } // Override _positionDropdown()\r\n ;\r\n\r\n _proto._positionDropdown = function _positionDropdown() {\r\n var _this$_popper2;\r\n\r\n (_this$_popper2 = this._popper) == null ? void 0 : _this$_popper2.update();\r\n } // Override position()\r\n ;\r\n\r\n _proto.position = function position(decorated, $dropdown, $container) {\r\n // Clone all of the container classes\r\n $dropdown.attr('class', $container.attr('class'));\r\n $dropdown[0].classList.remove('select2');\r\n $dropdown[0].classList.add('select2-container--open');\r\n this.$container = $container;\r\n };\r\n\r\n // Override destroy()\r\n _proto.destroy = function destroy(decorated) {\r\n var _this$_popper3;\r\n\r\n _AttachBody.prototype.destroy.call(this, decorated);\r\n\r\n (_this$_popper3 = this._popper) == null ? void 0 : _this$_popper3.destroy();\r\n this._popper = null;\r\n };\r\n\r\n return DropdownAttachBody;\r\n }(AttachBody);\n\n let _defined$1 = $__default.default.fn.select2.amd.require._defined,\r\n AllowClear$1 = _defined$1['select2/selection/allowClear'],\r\n Utils$1 = _defined$1['select2/utils'];\r\n /**\r\n * Select2 AttachBody for table header filter\r\n */\r\n\r\n let FilterAllowClear = /*#__PURE__*/function (_AllowClear) {\r\n _inheritsLoose(FilterAllowClear, _AllowClear);\r\n\r\n function FilterAllowClear() {\r\n return _AllowClear.apply(this, arguments) || this;\r\n }\r\n\r\n var _proto = FilterAllowClear.prototype;\r\n\r\n // Override _handleClear\r\n _proto._handleClear = function _handleClear(_, evt) {\r\n // Ignore the event if it is disabled\r\n if (this.isDisabled()) {\r\n return;\r\n }\r\n\r\n var $clear = this.$selection.find('.select2-selection__clear'); // Ignore the event if nothing has been selected\r\n\r\n if ($clear.length === 0) {\r\n return;\r\n }\r\n\r\n evt.stopPropagation();\r\n var data = Utils$1.GetData($clear[0], 'data');\r\n var previousVal = this.$element.val();\r\n this.$element.val(this.placeholder.id);\r\n var unselectData = {\r\n data: data\r\n };\r\n this.trigger('clear', unselectData);\r\n\r\n if (unselectData.prevented) {\r\n this.$element.val(previousVal);\r\n return;\r\n }\r\n\r\n for (var d = 0; d < data.length; d++) {\r\n unselectData = {\r\n data: data[d]\r\n }; // Trigger the `unselect` event, so people can prevent it from being\r\n // cleared.\r\n\r\n this.trigger('unselect', unselectData); // If the event was prevented, don't clear it out.\r\n\r\n if (unselectData.prevented) {\r\n this.$element.val(previousVal);\r\n return;\r\n }\r\n }\r\n\r\n this.$element.trigger('input').trigger('change');\r\n };\r\n\r\n return FilterAllowClear;\r\n }(AllowClear$1);\n\n /**\r\n * Select2 decorator for MultipleSelection\r\n */\r\n let Select2MultipleSelectionDecorator = /*#__PURE__*/function () {\r\n function Select2MultipleSelectionDecorator() {}\r\n\r\n var _proto = Select2MultipleSelectionDecorator.prototype;\r\n\r\n _proto.bind = function bind(decorated, container, $container) {\r\n decorated.call(this, container, $container);\r\n this.$selection.on('click', '.select2-selection__choice__remove', function (evt) {\r\n evt.stopPropagation();\r\n });\r\n };\r\n\r\n return Select2MultipleSelectionDecorator;\r\n }();\n\n /**\r\n * Select2 decorator for SelectAdapter\r\n */\r\n let Select2DataAdapterDecorator = /*#__PURE__*/function () {\r\n function Select2DataAdapterDecorator() {}\r\n\r\n var _proto = Select2DataAdapterDecorator.prototype;\r\n\r\n _proto.option = function option(decorated, data) {\r\n var _data$element;\r\n\r\n var text = data.text,\r\n html = (_data$element = data.element) == null ? void 0 : _data$element.innerHTML,\r\n $option = decorated.call(this, data); // Check HTML\r\n\r\n if (text.startsWith('<') && text.endsWith('>')) $option.html(text);else if (html && html != text) $option.html(html);\r\n return $option;\r\n };\r\n\r\n return Select2DataAdapterDecorator;\r\n }();\n\n let _defined = $.fn.select2.amd.require._defined,\r\n ResultsList = _defined['select2/results'],\r\n SingleSelection = _defined['select2/selection/single'],\r\n MultipleSelection = _defined['select2/selection/multiple'],\r\n Placeholder = _defined['select2/selection/placeholder'],\r\n AllowClear = _defined['select2/selection/allowClear'],\r\n SelectionSearch = _defined['select2/selection/search'],\r\n EventRelay = _defined['select2/selection/eventRelay'],\r\n Utils = _defined['select2/utils'],\r\n Translation = _defined['select2/translation'],\r\n SelectData = _defined['select2/data/select'],\r\n ArrayData = _defined['select2/data/array'],\r\n AjaxData = _defined['select2/data/ajax'],\r\n Tags = _defined['select2/data/tags'],\r\n Tokenizer = _defined['select2/data/tokenizer'],\r\n MinimumInputLength = _defined['select2/data/minimumInputLength'],\r\n MaximumInputLength = _defined['select2/data/maximumInputLength'],\r\n MaximumSelectionLength = _defined['select2/data/maximumSelectionLength'],\r\n Dropdown = _defined['select2/dropdown'],\r\n DropdownSearch = _defined['select2/dropdown/search'],\r\n HidePlaceholder = _defined['select2/dropdown/hidePlaceholder'],\r\n InfiniteScroll = _defined['select2/dropdown/infiniteScroll'],\r\n // AttachBody = _defined['select2/dropdown/attachBody'],\r\n MinimumResultsForSearch = _defined['select2/dropdown/minimumResultsForSearch'],\r\n SelectOnClose = _defined['select2/dropdown/selectOnClose'],\r\n CloseOnSelect = _defined['select2/dropdown/closeOnSelect'],\r\n DropdownCSS = _defined['select2/dropdown/dropdownCss'],\r\n TagsSearchHighlight = _defined['select2/dropdown/tagsSearchHighlight'],\r\n Defaults = _defined['select2/defaults']; // Override select2 Defaults\r\n\r\n Defaults.apply = function (options) {\r\n options = $.extend(true, {}, this.defaults, options);\r\n\r\n if (options.dataAdapter == null) {\r\n if (options.ajax != null) {\r\n options.dataAdapter = AjaxData;\r\n } else if (options.data != null) {\r\n options.dataAdapter = ArrayData;\r\n } else {\r\n options.dataAdapter = SelectData;\r\n }\r\n\r\n options.dataAdapter = Utils.Decorate( // Override\r\n options.dataAdapter, Select2DataAdapterDecorator);\r\n\r\n if (options.minimumInputLength > 0) {\r\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MinimumInputLength);\r\n }\r\n\r\n if (options.maximumInputLength > 0) {\r\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MaximumInputLength);\r\n }\r\n\r\n if (options.maximumSelectionLength > 0) {\r\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MaximumSelectionLength);\r\n }\r\n\r\n if (options.tags) {\r\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\r\n }\r\n\r\n if (options.tokenSeparators != null || options.tokenizer != null) {\r\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tokenizer);\r\n }\r\n }\r\n\r\n if (options.resultsAdapter == null) {\r\n options.resultsAdapter = ResultsList; // Override\r\n\r\n if (options.columns > 0 && options.customOption) {\r\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, Select2ResultsDecorator);\r\n\r\n if (options.iconClass && options.multiple && options.templateResult == ew.selectOptions.templateResult) {\r\n options._templateResult = options.templateResult;\r\n\r\n options.templateResult = result => result.loading ? result.text : '
    ';\r\n }\r\n } else if (options.modal || options.filter) {\r\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, ModalResults);\r\n }\r\n\r\n if (options.ajax != null) {\r\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, InfiniteScroll);\r\n }\r\n\r\n if (options.placeholder != null) {\r\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, HidePlaceholder);\r\n }\r\n\r\n if (options.selectOnClose) {\r\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, SelectOnClose);\r\n }\r\n\r\n if (options.tags) {\r\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, TagsSearchHighlight);\r\n }\r\n }\r\n\r\n if (options.dropdownAdapter == null) {\r\n if (options.modal || options.filter) {\r\n options.dropdownAdapter = Utils.Decorate(Dropdown, DropdownSearch);\r\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, DropdownSearchDecorator);\r\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, ModalSearch);\r\n } else {\r\n options.dropdownAdapter = Dropdown;\r\n\r\n if (!options.multiple) {\r\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, DropdownSearch);\r\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, DropdownSearchDecorator);\r\n }\r\n }\r\n\r\n if (options.minimumResultsForSearch !== 0) {\r\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, MinimumResultsForSearch);\r\n }\r\n\r\n if (options.closeOnSelect) {\r\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, CloseOnSelect);\r\n }\r\n\r\n if (options.dropdownCssClass != null) {\r\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, DropdownCSS);\r\n }\r\n\r\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, options.modal ? ModalAttachBody : options.filter ? FilterAttachBody : options.dropdown ? DropdownAttachBody : Select2AttachBody // Override\r\n );\r\n }\r\n\r\n if (options.selectionAdapter == null) {\r\n if (options.multiple) {\r\n options.selectionAdapter = MultipleSelection;\r\n options.selectionAdapter = Utils.Decorate( // Override\r\n options.selectionAdapter, Select2MultipleSelectionDecorator);\r\n } else {\r\n options.selectionAdapter = SingleSelection;\r\n } // Add the placeholder mixin if a placeholder was specified\r\n\r\n if (options.placeholder != null) {\r\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, Placeholder);\r\n }\r\n\r\n if (options.allowClear) {\r\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, options.filter ? FilterAllowClear : AllowClear);\r\n }\r\n\r\n if (options.multiple) {\r\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, SelectionSearch);\r\n }\r\n\r\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, EventRelay);\r\n }\r\n\r\n options.translations = new Translation(Select2Language);\r\n options.dir = ew.IS_RTL ? \"rtl\" : \"ltr\";\r\n return options;\r\n };\n\n let currentUrl = new URL(window.location);\r\n let forms = new Forms();\r\n let $document$1 = $__default.default(document),\r\n $body = $__default.default(\"body\");\r\n let fieldContainerSelector = \".row, [id^=el_], [class^=el_]\"; // Set focus\r\n\r\n Pace.on(\"done\", () => {\r\n var _forms$get;\r\n\r\n let form = document.querySelector(\".modal.show form.ew-form\") || document.querySelector(\"form.ew-form\");\r\n (_forms$get = forms.get(form == null ? void 0 : form.id)) == null ? void 0 : _forms$get.tryFocus();\r\n }); // Create select2\r\n\r\n function createSelect(options) {\r\n if (options.selectId.includes(\"$rowindex$\")) return;\r\n\r\n if ($__default.default.isObject(options.data)) {\r\n let lookup = new ew.AjaxLookup(options.data);\r\n options.data = lookup.toSelect2Data(lookup.options);\r\n }\r\n\r\n if ($__default.default.isObject(options.ajax)) {\r\n let limit = options.ajax.limit,\r\n lookup = new ew.AjaxLookup({ ...options.ajax,\r\n ...{\r\n action: \"modal\"\r\n }\r\n });\r\n options.ajax = {\r\n url: params => {\r\n let start = params.page ? (params.page - 1) * limit : -1;\r\n return lookup.getUrl(params.term, start);\r\n },\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: lookup.generateRequest.bind(lookup),\r\n delay: options.debounce,\r\n processResults: function (data) {\r\n var _data$records$length, _data$records;\r\n\r\n let self = this;\r\n return {\r\n results: lookup.toSelect2Data(lookup.transform(data)),\r\n pagination: {\r\n more: self.container.$results.find(\".select2-results__option:not(.select2-results__option--load-more)\").length + ((_data$records$length = (_data$records = data.records) == null ? void 0 : _data$records.length) != null ? _data$records$length : 0) < lookup.recordCount\r\n }\r\n };\r\n },\r\n transport: (params, success, failure) => $__default.default.ajax(params).then(data => {\r\n let error = getError(data);\r\n !error || _alert(error);\r\n success(data);\r\n }).fail(failure)\r\n };\r\n }\r\n\r\n let args = {\r\n name: options.name,\r\n options\r\n };\r\n $document$1.trigger(\"select2\", [args]);\r\n let $select = $__default.default(\"select[data-select2-id='\" + options.selectId + \"']\").select2(args.options);\r\n $select.on(\"select2:open\", function () {\r\n var _$$data$$dropdown$fin;\r\n\r\n (_$$data$$dropdown$fin = $__default.default(this).data(\"select2\").$dropdown.find(\".select2-search__field\")[0]) == null ? void 0 : _$$data$$dropdown$fin.focus();\r\n });\r\n\r\n if ($__default.default.isObject(options.ajax)) {\r\n $select.on(\"select2:opening\", function () {\r\n $__default.default(this).data(\"select2\").$results.find(\".select2-results__option:not(.loading-results)\").remove();\r\n });\r\n }\r\n\r\n if (options.minimumResultsForSearch === Infinity) {\r\n $select.on(\"select2:opening select2:closing\", function () {\r\n $__default.default(this).data(\"select2\").$dropdown.find(\".select2-search--dropdown\").addClass(\"select2-search--hide\");\r\n });\r\n }\r\n } // Create modal lookup\r\n\r\n function createModalLookup(options) {\r\n if (options.selectId.includes(\"$rowindex$\")) return;\r\n\r\n if ($__default.default.isObject(options.data)) {\r\n let lookup = new ew.AjaxLookup(options.data);\r\n options.data = lookup.options.map(item => {\r\n return {\r\n id: item.lf,\r\n text: lookup.formatResult({\r\n lf: item.lf,\r\n df: item.df,\r\n df2: item.df2,\r\n df3: item.df3,\r\n df4: item.df4\r\n })\r\n };\r\n });\r\n }\r\n\r\n if ($__default.default.isObject(options.ajax)) {\r\n let limit = options.ajax.limit,\r\n lookup = new ew.AjaxLookup({ ...options.ajax,\r\n ...{\r\n action: \"modal\"\r\n }\r\n });\r\n options.ajax = {\r\n url: params => {\r\n let start = params.page ? (params.page - 1) * limit : -1;\r\n return lookup.getUrl(params.term, start);\r\n },\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: lookup.generateRequest.bind(lookup),\r\n delay: options.debounce,\r\n processResults: function (data) {\r\n var _data$records$length2, _data$records2;\r\n\r\n let self = this;\r\n return {\r\n results: lookup.transform(data).map(item => {\r\n return {\r\n id: item.lf,\r\n text: lookup.formatResult({\r\n lf: item.lf,\r\n df: item.df,\r\n df2: item.df2,\r\n df3: item.df3,\r\n df4: item.df4\r\n })\r\n };\r\n }),\r\n pagination: {\r\n more: self.container.$results.find(\".select2-results__option:not(.select2-results__option--load-more)\").length + ((_data$records$length2 = (_data$records2 = data.records) == null ? void 0 : _data$records2.length) != null ? _data$records$length2 : 0) < lookup.recordCount\r\n }\r\n };\r\n },\r\n transport: (params, success, failure) => $__default.default.ajax(params).then(data => {\r\n let error = getError(data);\r\n !error || _alert(error);\r\n success(data);\r\n }).fail(failure)\r\n };\r\n }\r\n\r\n let $select = $__default.default(\"select[data-select2-id='\" + options.selectId + \"']\").select2(options);\r\n $select.on(\"select2:open\", function () {\r\n var _$$data$$dropdown$fin2;\r\n\r\n (_$$data$$dropdown$fin2 = $__default.default(this).data(\"select2\").$dropdown.find(\".select2-search__field\").addClass(\"form-control\")[0]) == null ? void 0 : _$$data$$dropdown$fin2.focus();\r\n });\r\n\r\n if ($__default.default.isObject(options.ajax)) {\r\n $select.on(\"select2:opening\", function () {\r\n $__default.default(this).data(\"select2\").$results.find(\".select2-results__option:not(.loading-results)\").remove();\r\n });\r\n }\r\n } // Create table header filter\r\n\r\n function createFilter(options) {\r\n if (options.selectId.includes(\"$rowindex$\")) return;\r\n\r\n if ($__default.default.isObject(options.data)) {\r\n let lookup = new ew.AjaxLookup(options.data);\r\n options.data = lookup.options.map(item => {\r\n return {\r\n id: item.lf,\r\n text: lookup.formatResult({\r\n lf: item.lf,\r\n df: item.df,\r\n df2: item.df2,\r\n df3: item.df3,\r\n df4: item.df4\r\n })\r\n };\r\n });\r\n }\r\n\r\n if ($__default.default.isObject(options.ajax)) {\r\n let limit = options.ajax.limit,\r\n lookup = new ew.AjaxLookup({ ...options.ajax,\r\n ...{\r\n action: \"modal\"\r\n }\r\n });\r\n options.ajax = {\r\n url: params => {\r\n let start = params.page ? (params.page - 1) * limit : -1;\r\n return lookup.getUrl(params.term, start);\r\n },\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: lookup.generateRequest.bind(lookup),\r\n delay: options.debounce,\r\n processResults: function (data) {\r\n var _data$records$length3, _data$records3;\r\n\r\n let self = this;\r\n return {\r\n results: lookup.transform(data).map(item => {\r\n return {\r\n id: item.lf,\r\n text: lookup.formatResult({\r\n lf: item.lf,\r\n df: item.df,\r\n df2: item.df2,\r\n df3: item.df3,\r\n df4: item.df4\r\n })\r\n };\r\n }),\r\n pagination: {\r\n more: self.container.$results.find(\".select2-results__option:not(.select2-results__option--load-more)\").length + ((_data$records$length3 = (_data$records3 = data.records) == null ? void 0 : _data$records3.length) != null ? _data$records$length3 : 0) < lookup.recordCount\r\n }\r\n };\r\n },\r\n transport: (params, success, failure) => $__default.default.ajax(params).then(data => {\r\n let error = getError(data);\r\n !error || _alert(error);\r\n success(data);\r\n }).fail(failure)\r\n };\r\n }\r\n\r\n let $select = $__default.default(\"select[data-select2-id='\" + options.selectId + \"']\").select2(options);\r\n $select.on(\"select2:open\", function () {\r\n var _$$data$$dropdown$fin3;\r\n\r\n (_$$data$$dropdown$fin3 = $__default.default(this).data(\"select2\").$dropdown.find(\".select2-search__field\").addClass(\"form-control\")[0]) == null ? void 0 : _$$data$$dropdown$fin3.focus({\r\n preventScroll: options.preventScroll\r\n }); // Do not scroll on focus by default\r\n });\r\n\r\n if ($__default.default.isObject(options.ajax)) {\r\n $select.on(\"select2:opening\", function () {\r\n $__default.default(this).data(\"select2\").$results.find(\".select2-results__option:not(.loading-results)\").remove();\r\n });\r\n }\r\n } // Init icon tooltip\r\n\r\n function initIcons(e) {\r\n var _e$target;\r\n\r\n let el = (_e$target = e == null ? void 0 : e.target) != null ? _e$target : document,\r\n tooltipOptions = { ...ew.tooltipOptions,\r\n container: \"body\",\r\n trigger: ew.IS_MOBILE ? \"manual\" : \"hover\"\r\n };\r\n $__default.default(el).find(\".ew-icon\").closest(\".btn, .ew-home, .ew-row-link:not(.dropdown-item)\").each(function () {\r\n let $this = $__default.default(this);\r\n\r\n if ($this.hasClass(\"dropdown-toggle\")) {\r\n let $p = $this.closest(\".btn-group\");\r\n\r\n if ($p.children(\".btn\").length == 1) {\r\n $p.tooltip({ ...tooltipOptions,\r\n title: this.dataset.title || this.title\r\n }).on(\"mouseleave\", e => {\r\n var _bootstrap$Tooltip$ge;\r\n\r\n return (_bootstrap$Tooltip$ge = bootstrap.Tooltip.getInstance(e.currentTarget)) == null ? void 0 : _bootstrap$Tooltip$ge.hide();\r\n });\r\n $this.next(\".dropdown-menu\").on(\"mouseover\", e => e.stopPropagation());\r\n }\r\n } else {\r\n $this.tooltip(tooltipOptions);\r\n }\r\n });\r\n } // Init password options\r\n\r\n function initPasswordOptions(e) {\r\n var _e$target2;\r\n\r\n var el = (_e$target2 = e == null ? void 0 : e.target) != null ? _e$target2 : document;\r\n\r\n if ($__default.default.fn.pStrength && typeof ew.MIN_PASSWORD_STRENGTH != \"undefined\") {\r\n $__default.default(el).find(\".ew-password-strength\").each(function () {\r\n var $this = $__default.default(this);\r\n if (!$this.data(\"pStrength\")) $this.pStrength({\r\n \"changeBackground\": false,\r\n \"backgrounds\": [],\r\n \"passwordValidFrom\": ew.MIN_PASSWORD_STRENGTH,\r\n \"onPasswordStrengthChanged\": function (strength, percentage) {\r\n var $pst = $__default.default(\"[id='\" + this.attr(\"data-password-strength\") + \"']\"),\r\n // Do not use #\r\n $pb = $pst.find(\".progress-bar\");\r\n\r\n if (this.val() && !ew.isMaskedPassword(this)) {\r\n var pct = percentage + \"%\",\r\n min = ew.MIN_PASSWORD_STRENGTH,\r\n valid = percentage >= min;\r\n\r\n if (percentage < min * 0.25) {\r\n $pb.addClass(\"bg-danger\").removeClass(\"bg-warning bg-info bg-success\");\r\n } else if (percentage < min * 0.5) {\r\n $pb.addClass(\"bg-warning\").removeClass(\"bg-danger bg-info bg-success\");\r\n } else if (percentage < min * 0.75) {\r\n $pb.addClass(\"bg-primary\").removeClass(\"bg-danger bg-warning bg-success\");\r\n } else {\r\n $pb.addClass(\"bg-success\").removeClass(\"bg-danger bg-warning bg-info\");\r\n }\r\n\r\n $pb.css(\"width\", pct);\r\n if (percentage > min * 0.5) pct = ew.language.phrase(\"PasswordStrength\").replace(\"%p\", pct);\r\n $pb.html(pct);\r\n $pst.removeClass(\"d-none\");\r\n this.data(\"validated\", valid);\r\n if (valid) setValid(this[0]);\r\n } else {\r\n $pst.addClass(\"d-none\");\r\n this.data(\"validated\", null);\r\n }\r\n\r\n $pst.width(this.outerWidth());\r\n }\r\n });\r\n });\r\n }\r\n\r\n if ($__default.default.fn.pGenerator) {\r\n $__default.default(el).find(\".ew-password-generator\").each(function () {\r\n var $this = $__default.default(this);\r\n if (!$this.data(\"pGenerator\")) $this.pGenerator({\r\n \"passwordLength\": ew.GENERATE_PASSWORD_LENGTH,\r\n \"uppercase\": ew.GENERATE_PASSWORD_UPPERCASE,\r\n \"lowercase\": ew.GENERATE_PASSWORD_LOWERCASE,\r\n \"numbers\": ew.GENERATE_PASSWORD_NUMBER,\r\n \"specialChars\": ew.GENERATE_PASSWORD_SPECIALCHARS,\r\n \"onPasswordGenerated\": function (pwd) {\r\n $__default.default(\"#\" + this.attr(\"data-password-confirm\")).val(pwd);\r\n $__default.default(\"#\" + this.attr(\"data-password-field\")).val(pwd).trigger(\"change\").trigger(\"focus\").triggerHandler(\"click\"); // Trigger click to remove \"is-invalid\" class (Do not use $this.data)\r\n }\r\n });\r\n });\r\n }\r\n }\r\n /**\r\n * Get API action URL\r\n * @param {string|string[]} action - Route as string or array, e.g. \"foo\", [\"foo\", \"1\"]\r\n * @param {string|string[]|Object|URLSearchParams|FormData} query - Search params, e.g. \"foo=1&bar=2\", [[\"foo\", \"1\"], [\"bar\", \"2\"]], {\"foo\": \"1\", \"bar\": \"2\"}\r\n */\r\n\r\n function getApiUrl(action, query) {\r\n var url = ew.PATH_BASE + ew.API_URL,\r\n params = query instanceof URLSearchParams ? query : new URLSearchParams(query),\r\n qs = params.toString();\r\n\r\n if ($__default.default.isString(action)) {\r\n // Route as string\r\n url += action ? action : \"\";\r\n } else if (Array.isArray(action)) {\r\n // Route as array\r\n var route = action.map(function (v) {\r\n return encodeURIComponent(v);\r\n }).join(\"/\");\r\n url += route ? route : \"\";\r\n }\r\n\r\n return url + (qs ? \"?\" + qs : \"\");\r\n }\r\n /**\r\n * Parse URL\r\n * Note: .search is read only, always use .searchParams to change parameters\r\n * @param {string} url - URL\r\n * @returns {Object}\r\n */\r\n\r\n function parseUrl(url) {\r\n var _pathname, _hash;\r\n\r\n let pathname, search, hash;\r\n [pathname, hash] = url.split(\"#\");\r\n [pathname, search] = pathname.split(\"?\");\r\n if (!search && pathname.includes(\"=\")) [pathname, search] = [\"\", pathname];\r\n let obj = {\r\n url: url,\r\n pathname: (_pathname = pathname) != null ? _pathname : \"\",\r\n hash: (_hash = hash) != null ? _hash : \"\",\r\n searchParams: new URLSearchParams(search)\r\n };\r\n Object.defineProperty(obj, \"search\", {\r\n // Read only\r\n value: search,\r\n writable: false,\r\n enumerable: true\r\n });\r\n return obj;\r\n }\r\n /**\r\n * Create URLSearchParams\r\n * @param {*} params - search parameters\r\n * @returns {URLSearchParams}\r\n */\r\n\r\n function createSearchParams(params) {\r\n try {\r\n return new URLSearchParams(params);\r\n } catch (e) {\r\n console.log(e);\r\n return new URLSearchParams();\r\n }\r\n }\r\n /**\r\n * Get URL search parameters\r\n * @param {string} url - URL\r\n * @returns {URLSearchParams}\r\n */\r\n\r\n function getSearchParams(url) {\r\n return parseUrl(url).searchParams;\r\n }\r\n /**\r\n * Get a search parameter from URL\r\n * @param {string} url - URL\r\n * @param {string} name - Name\r\n * @returns {string} Value\r\n */\r\n\r\n function getSearchParam(url, name) {\r\n return getSearchParams(url).get(name);\r\n }\r\n /**\r\n * Set URL search parameters\r\n * @param {string} url - URL\r\n * @param {*} args - search parameters to be merged\r\n * @returns {string} URL\r\n */\r\n\r\n function setSearchParams(url) {\r\n let obj = parseUrl(url);\r\n\r\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n args[_key - 1] = arguments[_key];\r\n }\r\n\r\n obj.searchParams = mergeSearchParams(obj.searchParams, ...args);\r\n return buildUrl(obj);\r\n }\r\n /**\r\n * Merge URL search parameters\r\n * @param {*} args - search parameters to be merged\r\n * @returns {URLSearchParams}\r\n */\r\n\r\n function mergeSearchParams() {\r\n let searchParams = new URLSearchParams();\r\n\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2];\r\n }\r\n\r\n for (const params of args) {\r\n if ($__default.default.isObject(params) || $__default.default.isString(params) && params) {\r\n // Note: Array is also object\r\n let newParams = params instanceof URLSearchParams ? params : createSearchParams(params);\r\n newParams.forEach((value, key) => searchParams.has(key) ? key.endsWith(\"[]\") ? searchParams.append(key, value) : searchParams.set(key, value) : searchParams.set(key, value));\r\n }\r\n }\r\n\r\n return searchParams;\r\n }\r\n /**\r\n * Set URL search parameter\r\n * @param {string} url - URL\r\n * @param {string} name - Name\r\n * @param {string} value - Value\r\n * @returns {string} URL\r\n */\r\n\r\n function setSearchParam(url, name, value) {\r\n return setSearchParams(url, {\r\n [name]: value\r\n });\r\n }\r\n /**\r\n * Delete search parameters from URL\r\n * @param {string} url - URL\r\n * @param {string[]} names - Names\r\n * @returns {string} URL\r\n */\r\n\r\n function deleteSearchParam(url) {\r\n let obj = parseUrl(url);\r\n\r\n for (var _len3 = arguments.length, names = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\r\n names[_key3 - 1] = arguments[_key3];\r\n }\r\n\r\n names.forEach(name => obj.searchParams.delete(name));\r\n return buildUrl(obj);\r\n }\r\n /**\r\n * Build URL\r\n * @param {Object} obj Object { pathname, searchParams, hash }\r\n * @returns {string} URL\r\n */\r\n\r\n function buildUrl(obj) {\r\n let search = obj.searchParams.toString();\r\n return obj.pathname + (obj.pathname && search ? \"?\" : \"\") + search + (obj.hash ? \"#\" + obj.hash : \"\");\r\n }\r\n /**\r\n * Set layout parameter to URL\r\n * Disable layout by adding \"layout=false\"\r\n * @param {string} url - URL\r\n * @param {string} value - Layout\r\n * @returns {string} URL\r\n */\r\n\r\n function setLayout(url, value) {\r\n return url && url != \"#\" ? setSearchParams(url, {\r\n [ew.PAGE_LAYOUT]: String(value)\r\n }) : url;\r\n } // Sanitize URL\r\n\r\n function sanitizeUrl(url) {\r\n let obj = parseUrl(url),\r\n searchParams = obj.searchParams;\r\n searchParams.forEach((value, key) => {\r\n value = decodeURIComponent(value);\r\n if ([\"<>\", \"<=\", \">=\", \">\", \"<\"].includes(value)) searchParams.set(key, value);else searchParams.set(key, ew.sanitize(value));\r\n });\r\n return buildUrl(obj);\r\n } // Set session timer\r\n\r\n function setSessionTimer() {\r\n var timeoutTime,\r\n timer,\r\n keepAliveTimer,\r\n counter,\r\n useKeepAlive = ew.SESSION_KEEP_ALIVE_INTERVAL > 0 || ew.IS_LOGGEDIN && ew.IS_AUTOLOGIN; // Keep alive\r\n\r\n var keepAlive = () => {\r\n $__default.default.get(getApiUrl(ew.API_SESSION_ACTION), {\r\n \"rnd\": random()\r\n }, token => {\r\n if (token && $__default.default.isObject(token)) {\r\n // PHP\r\n ew.TOKEN_NAME = token[ew.TOKEN_NAME_KEY];\r\n ew.ANTIFORGERY_TOKEN = token[ew.ANTIFORGERY_TOKEN_KEY];\r\n if (token[\"JWT\"]) ew.API_JWT_TOKEN = token[\"JWT\"];\r\n }\r\n });\r\n }; // Reset timer\r\n\r\n var resetTimer = () => {\r\n counter = ew.SESSION_TIMEOUT_COUNTDOWN;\r\n timeoutTime = ew.SESSION_TIMEOUT - ew.SESSION_TIMEOUT_COUNTDOWN;\r\n\r\n if (timeoutTime < 0) {\r\n // Timeout now\r\n timeoutTime = 0;\r\n counter = ew.SESSION_TIMEOUT;\r\n }\r\n\r\n if (timer) timer.cancel(); // Clear timer\r\n }; // Timeout\r\n\r\n var timeout = () => {\r\n if (keepAliveTimer) keepAliveTimer.cancel(); // Stop keep alive\r\n\r\n if (counter > 0) {\r\n let timerInterval;\r\n let message = '

    ' + ew.language.phrase(\"SessionWillExpire\") + '

    ';\r\n\r\n if (message.includes(\"%m\") && message.includes(\"%s\")) {\r\n message = message.replace(\"%m\", '' + Math.floor(counter / 60) + '');\r\n message = message.replace(\"%s\", '' + counter % 60 + '');\r\n } else if (message.includes(\"%s\")) {\r\n message = message.replace(\"%s\", '' + counter + '');\r\n }\r\n\r\n Swal.fire({ ...ew.sweetAlertSettings,\r\n html: message,\r\n showConfirmButton: true,\r\n confirmButtonText: ew.language.phrase(\"OKBtn\"),\r\n timer: counter * 1000,\r\n timerProgressBar: true,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n willOpen: () => {\r\n timerInterval = setInterval(() => {\r\n let content = Swal.getHtmlContainer(),\r\n min = content.querySelector(\".ew-session-counter-minute\"),\r\n sec = content.querySelector(\".ew-session-counter-second\"),\r\n timeleft = Math.round(Swal.getTimerLeft() / 1000);\r\n\r\n if (min && sec) {\r\n min.textContent = Math.floor(timeleft / 60);\r\n sec.textContent = timeleft % 60;\r\n } else if (sec) {\r\n sec.textContent = timeleft;\r\n }\r\n }, 1000);\r\n },\r\n willClose: () => {\r\n clearInterval(timerInterval);\r\n }\r\n }).then(result => {\r\n if (result.value) {\r\n // OK button pressed\r\n keepAlive();\r\n if (!useKeepAlive && ew.SESSION_TIMEOUT > 0) setTimer();\r\n } else if (result.dismiss === Swal.DismissReason.timer) {\r\n // Timeout\r\n resetTimer();\r\n window.location = sanitizeUrl(ew.TIMEOUT_URL + \"?expired=1\");\r\n }\r\n });\r\n }\r\n }; // Set timer\r\n\r\n var setTimer = () => {\r\n resetTimer(); // Reset timer first\r\n\r\n timer = $__default.default.later(timeoutTime * 1000, null, timeout);\r\n };\r\n\r\n if (useKeepAlive) {\r\n // Keep alive\r\n var keepAliveInterval = ew.SESSION_KEEP_ALIVE_INTERVAL > 0 ? ew.SESSION_KEEP_ALIVE_INTERVAL : ew.SESSION_TIMEOUT - ew.SESSION_TIMEOUT_COUNTDOWN;\r\n if (keepAliveInterval <= 0) keepAliveInterval = 60;\r\n keepAliveTimer = $__default.default.later(keepAliveInterval * 1000, null, keepAlive, null, true); // Periodic\r\n } else {\r\n if (ew.SESSION_TIMEOUT > 0) // Set session timeout\r\n setTimer();\r\n }\r\n } // Init export links\r\n\r\n function initExportLinks(e) {\r\n var _e$target3;\r\n\r\n let $el = $__default.default((_e$target3 = e == null ? void 0 : e.target) != null ? _e$target3 : document);\r\n $el.find(\"a.ew-export-link[href]:not(.ew-email):not(.ew-print):not(.ew-xml)\").on(\"click\", function (e) {\r\n let href = this.href;\r\n if (href && href != \"#\") fileDownload(href, getchartParams());\r\n e.preventDefault();\r\n });\r\n $el.find(\"a.ew-export-link[href].ew-print, a.ew-export-link[href].ew-xml\").each(function () {\r\n let url = new URL(this.href);\r\n url.searchParams.set(ew.TOKEN_NAME_KEY, ew.TOKEN_NAME);\r\n url.searchParams.set(ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN);\r\n this.href = url.pathname + url.search; // Add token name and antiforgery token // PHP\r\n });\r\n } // Init multi-select checkboxes\r\n\r\n function initMultiSelectCheckboxes(e) {\r\n var _e$target4;\r\n\r\n var el = (_e$target4 = e == null ? void 0 : e.target) != null ? _e$target4 : document,\r\n $el = $__default.default(el),\r\n $cbs = $el.find(\"input[type=checkbox].ew-multi-select\");\r\n\r\n var _update = function (id) {\r\n var $els = $cbs.filter(\"[name^='\" + id + \"_']\"),\r\n cnt = $els.length,\r\n len = $els.filter(\":checked\").length;\r\n $__default.default(\"input[type=checkbox]#\" + id).prop(\"checked\", len == cnt).prop(\"indeterminate\", len != cnt && len != 0);\r\n };\r\n\r\n $cbs.on(\"click\", e => _update(e.target.name.split(\"_\")[0]));\r\n $el.find(\"input[type=checkbox].ew-priv:not(.ew-multi-select)\").each((i, el) => _update(el.id)); // Init\r\n } // Get error from response\r\n\r\n function getError(result) {\r\n var _result$error, _result$error2;\r\n\r\n return result && (((_result$error = result.error) == null ? void 0 : _result$error.description) || ((_result$error2 = result.error) == null ? void 0 : _result$error2.message) || $__default.default.isString(result.error) && result.error || result.failureMessage || // Check this first\r\n result.success === false && result.message || null);\r\n } // Download file\r\n\r\n function fileDownload(href, data) {\r\n let isHtml = href.includes(\"export=html\") || href.includes(getApiUrl([ew.API_EXPORT_ACTION, \"html\"])),\r\n swal = window.parent.Swal; // Use window.parent.Swal in case in iframe\r\n\r\n data = mergeSearchParams(data, [[ew.TOKEN_NAME_KEY, ew.TOKEN_NAME], [ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN]]);\r\n return swal.fire({ ...ew.sweetAlertSettings,\r\n showConfirmButton: false,\r\n html: \"

    \" + ew.language.phrase(\"Exporting\") + \"

    \",\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n willOpen: () => {\r\n swal.showLoading();\r\n\r\n _fetch(href, {\r\n method: data ? \"POST\" : \"GET\",\r\n body: data || null\r\n }).then(async response => {\r\n let ct = response.headers.get(\"Content-Type\");\r\n\r\n if (ct != null && ct.includes(\"json\")) {\r\n var _getError;\r\n\r\n let result = await response.json(),\r\n error = (_getError = getError(result)) != null ? _getError : ew.language.phrase(\"FailedToExport\");\r\n\r\n if (error) {\r\n swal.hideLoading();\r\n swal.update({\r\n html: \"
    \" + error + \"
    \",\r\n showConfirmButton: true\r\n });\r\n $document$1.trigger(\"export\", [{\r\n type: \"fail\",\r\n url: href\r\n }]);\r\n }\r\n } else {\r\n let data = isHtml ? await response.text() : await response.blob(),\r\n url = URL.createObjectURL(isHtml ? new Blob([data], {\r\n type: \"text/html\"\r\n }) : data),\r\n a = document.createElement(\"a\"),\r\n cd = response.headers.get(\"Content-Disposition\"),\r\n m = cd == null ? void 0 : cd.match(/\\bfilename=((['\"])(.+)\\2|([^;]+))/i);\r\n a.style.display = \"none\";\r\n a.href = url;\r\n if (m) a.download = m[3] || m[4];\r\n document.body.appendChild(a);\r\n a.click();\r\n $document$1.trigger(\"export\", [{\r\n type: \"done\",\r\n url: href,\r\n objectUrl: url\r\n }]);\r\n URL.revokeObjectURL(url);\r\n swal.close();\r\n }\r\n }).catch(error => {\r\n swal.hideLoading();\r\n swal.update({\r\n html: \"
    \" + error + \"
    \",\r\n showConfirmButton: true\r\n });\r\n $document$1.trigger(\"export\", [{\r\n type: \"fail\",\r\n url: href\r\n }]);\r\n }).finally(() => {\r\n $document$1.trigger(\"export\", [{\r\n type: \"always\",\r\n url: href\r\n }]);\r\n });\r\n }\r\n });\r\n } // Lazy load images\r\n\r\n function lazyLoad(e) {\r\n var _e$target5;\r\n\r\n if (!ew.LAZY_LOAD) return;\r\n var el = (_e$target5 = e == null ? void 0 : e.target) != null ? _e$target5 : document;\r\n el.querySelectorAll(\"img.ew-lazy\").forEach((img, i) => {\r\n if (ew.LAZY_LOAD_DELAY > 0) setTimeout(() => img.src = img.dataset.src, i * ew.LAZY_LOAD_DELAY);else img.src = img.dataset.src;\r\n });\r\n $document$1.trigger(\"lazyload\"); // All images loaded\r\n } // Update select2 dropdown position\r\n\r\n function updateDropdownPosition() {\r\n var select = $__default.default(\".select2-container--open\").prev(\".ew-select\").data(\"select2\");\r\n\r\n if (select) {\r\n select.dropdown._positionDropdown();\r\n\r\n select.dropdown._resizeDropdown();\r\n }\r\n } // Colorboxes\r\n\r\n function initLightboxes(e) {\r\n var _e$target6;\r\n\r\n if (!ew.USE_COLORBOX) return;\r\n var el = (_e$target6 = e == null ? void 0 : e.target) != null ? _e$target6 : document;\r\n var settings = Object.assign({}, ew.lightboxSettings, {\r\n title: ew.language.phrase(\"LightboxTitle\"),\r\n current: ew.language.phrase(\"LightboxCurrent\"),\r\n previous: ew.language.phrase(\"LightboxPrevious\"),\r\n next: ew.language.phrase(\"LightboxNext\"),\r\n close: ew.language.phrase(\"LightboxClose\"),\r\n xhrError: ew.language.phrase(\"LightboxXhrError\"),\r\n imgError: ew.language.phrase(\"LightboxImgError\")\r\n });\r\n $__default.default(el).find(\".ew-lightbox\").each(function () {\r\n var $this = $__default.default(this);\r\n $this.colorbox(Object.assign({\r\n rel: $this.data(\"rel\")\r\n }, settings));\r\n });\r\n } // PDFObjects\r\n\r\n function initPdfObjects(e) {\r\n var _e$target7;\r\n\r\n if (!ew.EMBED_PDF) return;\r\n let el = (_e$target7 = e == null ? void 0 : e.target) != null ? _e$target7 : document,\r\n options = Object.assign({}, ew.PDFObjectOptions);\r\n $__default.default(el).find(\".ew-pdfobject\").not(\":has(.pdfobject)\").each(function () {\r\n // Not already embedded\r\n let $this = $__default.default(this),\r\n url = $this.data(\"url\"),\r\n html = $this.html();\r\n if (url) PDFObject.embed(url, this, Object.assign(options, {\r\n fallbackLink: html\r\n }));\r\n });\r\n } // Tooltips and popovers\r\n\r\n function initTooltips(e) {\r\n var _e$target8;\r\n\r\n let el = (_e$target8 = e == null ? void 0 : e.target) != null ? _e$target8 : document,\r\n $el = $__default.default(el);\r\n $el.find(\"input[data-bs-toggle=tooltip], textarea[data-bs-toggle=tooltip], select[data-bs-toggle=tooltip]\").each(function () {\r\n let $this = $__default.default(this);\r\n $this.tooltip({ ...ew.tooltipOptions,\r\n html: true,\r\n ...$this.data()\r\n });\r\n });\r\n $el.find(\"a.ew-tooltip-link\").each(tooltip); // Set up tooltip links as popovers\r\n\r\n $el.find(\".ew-tooltip\").tooltip(ew.tooltipOptions);\r\n $el.find(\".ew-popover\").popover(ew.popoverOptions);\r\n } // Parse JSON\r\n\r\n function parseJson(data) {\r\n if ($__default.default.isString(data)) {\r\n try {\r\n return JSON.parse(data);\r\n } catch (e) {\r\n return undefined;\r\n }\r\n }\r\n\r\n return data;\r\n } // Change search operator\r\n\r\n function searchOperatorChange(el) {\r\n let $el = $__default.default(el),\r\n $p = $el.closest(\"[id^=r_], [id^=xs_]\"),\r\n parm = el.id.substring(2),\r\n $fld = $p.find(\".ew-search-field\"),\r\n $fld2 = $p.find(\".ew-search-field2\"),\r\n $y = $fld2.find(\"[name='y_\" + parm + \"'], [name='y_\" + parm + \"[]']\"),\r\n hasY = $y.length,\r\n $cond = $p.find(\".ew-search-cond\"),\r\n hasCond = $cond.length,\r\n // Has condition and operator 2\r\n $and = $p.find(\".ew-search-and\"),\r\n $opr = $p.find(\".ew-search-operator\"),\r\n opr = $opr.find(\"[name='z_\" + parm + \"']\").val(),\r\n $opr2 = $p.find(\".ew-search-operator2\"),\r\n opr2 = $opr2.find(\"[name='w_\" + parm + \"']\").val(),\r\n isBetween = opr.includes(\"BETWEEN\"),\r\n // Can only be operator 1\r\n isEmptyOpr = [\"IS NULL\", \"IS NOT NULL\", \"IS EMPTY\", \"IS NOT EMPTY\"].includes(opr),\r\n isEmptyOpr2 = [\"IS NULL\", \"IS NOT NULL\", \"IS EMPTY\", \"IS NOT EMPTY\"].includes(opr2),\r\n hideOpr2 = !hasY || isBetween,\r\n hideX = isEmptyOpr,\r\n hideY = !isBetween && (!hasCond || isEmptyOpr2);\r\n $cond.toggleClass(\"d-none\", hideOpr2).find(\":input\").prop(\"disabled\", hideOpr2);\r\n $and.toggleClass(\"d-none\", !isBetween);\r\n $opr2.toggleClass(\"d-none\", hideOpr2).find(\":input\").prop(\"disabled\", hideOpr2);\r\n $fld.toggleClass(\"d-none\", hideX).find(\":input\").prop(\"disabled\", hideX);\r\n $fld2.toggleClass(\"d-none\", hideY).find(\":input\").prop(\"disabled\", hideY);\r\n } // Init forms\r\n\r\n function initForms(e) {\r\n var _e$target9;\r\n\r\n let el = (_e$target9 = e == null ? void 0 : e.target) != null ? _e$target9 : document,\r\n ids = ew.forms.ids();\r\n\r\n for (let id of ids) {\r\n if (el.matches != null && el.matches(\"#\" + id) || el.querySelector(\"#\" + id)) forms.get(id).init();\r\n }\r\n } // Is function\r\n\r\n function isFunction$1(x) {\r\n return typeof x === \"function\";\r\n }\r\n /**\r\n * Alert (OK button only)\r\n *\r\n * @param {string|Object} msg - Message or config\r\n * @param {callback} [cb] - Callback function\r\n * @param {string} [type] - CSS class (see https://getbootstrap.com/docs/5.2/utilities/colors/)\r\n * @returns {Promise}\r\n */\r\n\r\n function _alert(msg, cb, type) {\r\n let config = $__default.default.isObject(msg) ? msg : {};\r\n msg = $__default.default.isString(msg) ? msg : \"\";\r\n type = $__default.default.isString(cb) ? cb : type;\r\n config = $__default.default.extend(true, {}, ew.sweetAlertSettings, {\r\n html: msg,\r\n confirmButtonText: ew.language.phrase(\"OKBtn\"),\r\n customClass: {\r\n htmlContainer: \"ew-swal2-html-container text-\" + (type || \"danger\")\r\n }\r\n }, config);\r\n let args = {\r\n config,\r\n type,\r\n show: true\r\n };\r\n $document$1.trigger(\"alert\", [args]);\r\n if (args.show) return Swal.fire(args.config).then(result => isFunction$1(cb) ? cb(result.isConfirmed) : result);\r\n }\r\n /**\r\n * Prompt/Confirm/Alert\r\n *\r\n * @param {string|Object} cfg - Message or config object\r\n * @param {callback} [cb] - Callback function\r\n * @returns {Promise}\r\n */\r\n\r\n function _prompt(cfg, cb) {\r\n var _config, _config$inputValidato;\r\n\r\n let config = $__default.default.isObject(cfg) ? cfg : {};\r\n config = $__default.default.extend(true, {}, ew.sweetAlertSettings, {\r\n html: $__default.default.isString(cfg) ? cfg : \"\",\r\n showCancelButton: true,\r\n confirmButtonText: ew.language.phrase(\"OKBtn\"),\r\n cancelButtonText: ew.language.phrase(\"CancelBtn\")\r\n }, config); // Confirm/Alert\r\n\r\n if (config.input) // Prompt\r\n (_config$inputValidato = (_config = config).inputValidator) != null ? _config$inputValidato : _config.inputValidator = value => {\r\n if (!value) return ew.language.phrase(\"EnterValue\");\r\n };\r\n return Swal.fire(config).then(result => isFunction$1(cb) ? cb(result.value) : result);\r\n }\r\n\r\n function toast(options) {\r\n options = Object.assign({}, ew.toastOptions, options);\r\n $document$1.Toasts(\"create\", options);\r\n var position = options.position,\r\n $container = $__default.default(\"#toastsContainer\" + position[0].toUpperCase() + position.substring(1));\r\n return $container.children().first();\r\n }\r\n /**\r\n * Show toast\r\n *\r\n * @param {string} message - Message\r\n * @param {string} type - CSS class: \"primary|secondary|success|info|warning|danger|light|dark\"\r\n * @param {string} title - Title\r\n */\r\n\r\n function showToast(message, type, title) {\r\n if (!message) return;\r\n type || (type = \"danger\");\r\n title || (title = ew.language.phrase(type));\r\n let args = {\r\n message,\r\n type,\r\n title,\r\n show: true\r\n };\r\n $document$1.trigger(\"toast\", [args]);\r\n if (!args.show) return;\r\n ({\r\n message,\r\n type,\r\n title\r\n } = args);\r\n return toast({\r\n class: \"ew-toast bg-\" + type,\r\n title,\r\n body: message,\r\n autohide: type == \"success\" ? ew.autoHideSuccessMessage : false,\r\n // Autohide for success message\r\n delay: type == \"success\" ? ew.autoHideSuccessMessageDelay : 500\r\n });\r\n } // Get form.ew-form or div.ew-form HTML element\r\n\r\n function getForm(el) {\r\n if (el instanceof Form) return el.$element[0];\r\n var $el = $__default.default(el),\r\n $f = $el.closest(\".ew-form\");\r\n if (!$f[0]) // Element not inside form\r\n $f = $el.closest(\".ew-grid, .ew-multi-column-grid\").find(\".ew-form\");\r\n return $f[0];\r\n } // Check form data\r\n\r\n function hasFormData(form) {\r\n var selector = \"[name^=x_],[name^=y_],[name^=z_],[name^=w_],[name=\" + ew.TABLE_BASIC_SEARCH + \"]\",\r\n els = $__default.default(form).find(selector).filter(\":enabled\").get();\r\n\r\n for (var i = 0, len = els.length; i < len; i++) {\r\n var el = els[i];\r\n\r\n if (/^(z|w)_/.test(el.name)) {\r\n if (/^IS/.test($__default.default(el).val())) return true;\r\n } else if (el.type == \"checkbox\" || el.type == \"radio\") {\r\n if (el.checked) return true;\r\n } else if (el.type == \"select-one\" || el.type == \"select-multiple\") {\r\n if (!!$__default.default(el).val()) return true;\r\n } else if ([\"text\", \"textarea\", \"password\", \"search\", \"color\", \"date\", \"datetime-local\", \"datetime\", \"email\", \"hidden\", \"month\", \"number\", \"range\", \"tel\", \"time\", \"url\", \"week\"].includes(el.type)) {\r\n if (el.value) return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Set search type\r\n *\r\n * @param {HTMLElement} el - HTML element\r\n * @returns false\r\n */\r\n\r\n function setSearchType(el) {\r\n var val = el.dataset.searchType,\r\n phraseId = \"Auto\";\r\n if (val == \"=\") phraseId = \"Exact\";else if (val == \"AND\") phraseId = \"All\";else if (val == \"OR\") phraseId = \"Any\";\r\n el.closest(\".ew-basic-search\").querySelector(\"input.ew-basic-search-type\").value = val || \"\";\r\n el.closest(\".dropdown-menu\").querySelectorAll(\".dropdown-item\").forEach(item => item.classList.remove(\"active\"));\r\n el.closest(\".dropdown-item\").classList.add(\"active\");\r\n var searchType = el.closest(\".input-group\").querySelector(\"#searchtype\"),\r\n text = ew.language.phrase(\"QuickSearch\" + phraseId + \"Short\");\r\n searchType.innerHTML = text;\r\n searchType.classList.toggle(\"me-2\", !!text);\r\n return false;\r\n }\r\n /**\r\n * Update a dynamic selection list\r\n *\r\n * @this {Form|HTMLElement} Form or parent element\r\n * @param {(HTMLElement|HTMLElement[]|string|string[])} obj - Target HTML element(s) or the ID of the element(s)\r\n * @param {(string[]|array[])} parentId - Parent field element names or data\r\n * @param {(boolean|null)} async - async(true) or sync(false) or non-Ajax(null)\r\n * @param {boolean} change - Trigger onchange event\r\n * @returns {Promise}\r\n */\r\n\r\n function updateOptions(obj, parentId, async, change) {\r\n var _obj, _batch$send;\r\n\r\n var f = this.$element ? this.$element[0] : this.form || ((_obj = obj) == null ? void 0 : _obj.form); // Get form/div element from this/obj\r\n\r\n if (!f) return;\r\n var frm = this.htmlForm ? this : forms.get(f.id); // Get Form object\r\n\r\n if (!frm) return;\r\n if (this.form && $__default.default.isUndefined(obj)) // Target unspecified => update child fields\r\n obj = forms.get(this).getList(this).childFields.slice(); // Clone\r\n else if ($__default.default.isString(obj)) obj = getElements(obj, f);\r\n if (!obj || Array.isArray(obj) && obj.length == 0) return;\r\n var self = this,\r\n batch = new Batch();\r\n\r\n if (Array.isArray(obj) && $__default.default.isString(obj[0])) {\r\n // Array of id\r\n var els = [];\r\n\r\n for (var i = 0, len = obj.length; i < len; i++) {\r\n var ar = obj[i].split(\" \");\r\n\r\n if (ar.length == 1 && self.form) {\r\n // Parent/Child fields in the same table\r\n var m = getId(self, false).match(/^([xy]\\d*_)/);\r\n if (m) obj[i] = obj[i].replace(/^([xy]\\d*_)/, m[1]);\r\n }\r\n\r\n var el = getElements(obj[i], f),\r\n names = [];\r\n if (isTextbox(el) || isFilter(el)) // Search text box or filter\r\n continue;\r\n els.push(el);\r\n\r\n if (ar.length == 2 && Array.isArray(el)) {\r\n // Check if id is \"tblVar fldVar\" and multiple inputs\r\n var $el = $__default.default(el);\r\n $el.each(function () {\r\n if (!names.includes(this.name)) {\r\n names.push(this.name);\r\n var $elf = $el.filter(\"[name='\" + this.name + \"']\"),\r\n typ = $elf.attr(\"type\"),\r\n elf = [\"radio\", \"checkbox\"].includes(typ) ? $elf.get() : $elf[0];\r\n batch.add(_updateOptions.bind(self, elf, parentId, async, change));\r\n }\r\n });\r\n } else {\r\n batch.add(_updateOptions.bind(self, el, parentId, async, change));\r\n }\r\n }\r\n\r\n obj = els;\r\n var list = forms.get(self).getList(self);\r\n if (Array.isArray(list == null ? void 0 : list.autoFillTargetFields) && list.autoFillTargetFields[0]) // AutoFill\r\n batch.add(autoFill.bind(null, self));\r\n } else {\r\n if (isTextbox(obj) || isFilter(obj)) // Search text box or filter\r\n return;\r\n batch.add(_updateOptions.bind(self, obj, parentId, async, change));\r\n }\r\n\r\n return (_batch$send = batch.send({\r\n url: ew.getApiUrl(ew.API_LOOKUP_ACTION)\r\n })) == null ? void 0 : _batch$send.then(function () {\r\n $document$1.trigger(\"updatedone\", [{\r\n source: self,\r\n target: obj\r\n }]); // Document \"updatedone\" event fired after all the target elements are updated\r\n });\r\n }\r\n /**\r\n * Update a dynamic selection list\r\n *\r\n * @param {(HTMLElement|HTMLElement[]} obj - Target HTML element(s) or the ID of the element(s)\r\n * @param {(string[]|array[])} parentId - Parent field element names or data\r\n * @param {(boolean|null)} async - async(true) or sync(false) or non-Ajax(null)\r\n * @param {boolean} change - Trigger onchange event\r\n * @returns {Promise}\r\n */\r\n\r\n function _updateOptions(obj, parentId, async, change) {\r\n if (change === void 0) {\r\n change = true;\r\n }\r\n\r\n var id = getId(obj, false);\r\n if (!id) return;\r\n var fo = getForm(obj); // Get form/div element from obj\r\n\r\n if (!fo || !fo.id) return;\r\n var frmo = forms.get(fo.id);\r\n if (!frmo) return;\r\n var self = this,\r\n args = Array.from(arguments),\r\n ar = getOptionValues(obj),\r\n m = id.match(/^([xy])(\\d*)_/),\r\n prefix = m ? m[1] : \"\",\r\n rowindex = m ? m[2] : \"\",\r\n arp = [],\r\n list = frmo.getList(obj),\r\n $obj = $__default.default(obj).data(\"updating\", true);\r\n if ($obj.data(\"hidden\")) // Skip data-hidden field, e.g. detail key\r\n return;\r\n\r\n if ($__default.default.isUndefined(parentId)) {\r\n // Parent IDs not specified, use default\r\n parentId = list.parentFields.slice(); // Clone\r\n\r\n if (rowindex != \"\") {\r\n for (var i = 0, len = parentId.length; i < len; i++) {\r\n var arr = parentId[i].split(\" \");\r\n if (arr.length == 1) // Parent field in the same table, add row index\r\n parentId[i] = parentId[i].replace(/^x_/, \"x\" + rowindex + \"_\");\r\n }\r\n }\r\n }\r\n\r\n if (Array.isArray(parentId) && parentId.length > 0) {\r\n if (Array.isArray(parentId[0])) {\r\n // Array of array => data\r\n arp = parentId;\r\n } else if ($__default.default.isString(parentId[0])) {\r\n // Array of string => Parent IDs\r\n for (var i = 0, len = parentId.length; i < len; i++) arp.push(getOptionValues(parentId[i], fo));\r\n }\r\n }\r\n\r\n if (!isAutoSuggest(obj)) // Do not clear Auto-Suggest\r\n clearOptions(obj);\r\n\r\n var addOpt = function (results) {\r\n var name = getId(obj);\r\n results.forEach(function (result) {\r\n let args = {\r\n \"data\": result,\r\n \"parents\": arp,\r\n \"valid\": true,\r\n \"name\": name,\r\n \"form\": fo\r\n };\r\n $document$1.trigger(\"addoption\", [args]);\r\n if (args.valid) newOption(obj, result, fo);\r\n });\r\n obj.render == null ? void 0 : obj.render(); // Selection list\r\n\r\n selectOption(obj, ar, change);\r\n\r\n if (change) {\r\n if (!obj.options && obj.length) $obj.first().triggerHandler(\"click\"); // else\r\n // $obj.first().trigger(\"change\");\r\n }\r\n };\r\n\r\n if ($__default.default.isUndefined(async)) // Async not specified, use default\r\n async = list.ajax;\r\n\r\n var _updateSibling = function () {\r\n // Update the y_* element\r\n if (/(srch|search|summary|crosstab)$/.test(fo.id) && prefix == \"x\" && !rowindex) {\r\n // Search form\r\n args[0] = id.replace(/^x_/, \"y_\");\r\n updateOptions.apply(self, args); // args[0] is string, use updateOptions()\r\n }\r\n };\r\n\r\n if (!$__default.default.isBoolean(async) || Array.isArray(list.lookupOptions) && list.lookupOptions.length > 0) {\r\n // Non-Ajax or Options loaded\r\n var ds = list.lookupOptions;\r\n addOpt(ds);\r\n\r\n _updateSibling();\r\n\r\n $obj.first().trigger(\"updated\", [{\r\n target: obj\r\n }]); // Object \"updated\" event fired after the object is updated\r\n\r\n return ds;\r\n } else {\r\n // Ajax\r\n var name = getId(obj),\r\n data = Object.assign({\r\n page: list.page,\r\n field: list.field,\r\n ajax: \"updateoption\",\r\n language: ew.LANGUAGE_ID,\r\n name: name // Name of the target element\r\n\r\n }, getUserParams(\"#p_\" + id, fo)); // Add user parameters\r\n\r\n if (isAutoSuggest(obj) && self.htmlForm) // Auto-Suggest (init form or auto-fill)\r\n data[\"v0\"] = ar[0] || random(); // Filter by the current value\r\n else if (obj.options && !obj.list && !isNativeSelectOne(obj) || // Not or native \").attr({\r\n type: \"hidden\",\r\n name,\r\n value\r\n }).appendTo($f);\r\n };\r\n\r\n let _submit = function (value) {\r\n if (isPostBack && f) {\r\n // Post back by form\r\n if (action) {\r\n // Action\r\n _append(\"action\", action); // Set action\r\n\r\n }\r\n\r\n if (!$__default.default.isUndefined(value)) _append(\"actionvalue\", value); // Set action value\r\n\r\n if ($__default.default.isObject(data)) {\r\n // User data\r\n for (const [name, value] of Object.entries(data)) _append(name, value);\r\n }\r\n\r\n if (!isMultiple && $__default.default.isObject(key)) {\r\n // Key\r\n for (const [name, value] of Object.entries(key)) _append(name, value);\r\n }\r\n\r\n if (parseUrl(url).pathname != currentUrl.pathname) // Do not use refresh if post to another page\r\n $f.off(\"submit.ew\");\r\n $f.prop({\r\n action: url,\r\n method: \"post\"\r\n }).trigger(\"submit\");\r\n } else {\r\n // Ajax\r\n data = new URLSearchParams(data); // User data\r\n\r\n if (action) {\r\n // Action\r\n data.set(\"action\", action);\r\n data.set(\"ajax\", action);\r\n $f.find(\"#action\").remove(); // Remove action in form\r\n }\r\n\r\n if (!$__default.default.isUndefined(value)) data.set(\"actionvalue\", value); // User input value\r\n\r\n data = mergeSearchParams(data, $f.serialize()); // Form data including key_m[]\r\n\r\n if (!isMultiple && $__default.default.isObject(key)) // Key\r\n data = mergeSearchParams(data, key);\r\n if (success && $__default.default.isString(success)) success = window[success];\r\n let settings = $__default.default.isObject(success) ? success : {};\r\n settings.data = data.toString();\r\n settings.method || (settings.method = \"POST\");\r\n settings.success || (settings.success = isFunction$1(success) ? success : _success);\r\n $__default.default.ajax(url, settings);\r\n }\r\n };\r\n\r\n msg = $__default.default.isString(msg) ? (_window$msg = window[msg]) != null ? _window$msg : msg : msg; // Get config object if available\r\n\r\n msg ? _prompt(msg).then(result => result.isDismissed || _submit(result.value)) : _submit();\r\n return false;\r\n }\r\n /**\r\n * Get charts parameters as object\r\n *\r\n * @returns string\r\n */\r\n\r\n function getchartParams() {\r\n let charts = Array.from(Object.entries(window.exportCharts)).map(_ref => {\r\n let [id, chart] = _ref;\r\n return {\r\n chartEngine: \"Chart.js\",\r\n streamType: \"base64\",\r\n stream: chart.toBase64Image(),\r\n fileName: id + \".png\"\r\n };\r\n });\r\n return charts.length ? {\r\n charts: JSON.stringify(charts)\r\n } : null;\r\n }\r\n /**\r\n * Export with charts, selected records and/or Custom Template (non-API)\r\n *\r\n * @param {MouseEvent|HTMLFormElement} args.evt - Event or HTML form\r\n * @param {string} args.url - Form action\r\n * @param {string} args.export - Export type\r\n * @param {boolean} args.custom - Use Custom Template\r\n * @param {boolean} args.exportSelected - Selected records only\r\n * @param {HTMLFormElement} args.emailForm - email form object\r\n * @returns false\r\n */\r\n\r\n async function _export(args) {\r\n let {\r\n evt,\r\n url,\r\n export: type,\r\n custom,\r\n exportSelected,\r\n emailForm\r\n } = args,\r\n f = evt.currentTarget.form;\r\n exportSelected && (exportSelected = f && !!f.querySelector(\"input[type=checkbox][name='key_m[]']\"));\r\n\r\n if (exportSelected && !keySelected(f)) {\r\n _alert(ew.language.phrase(\"NoRecordSelected\"));\r\n\r\n return false;\r\n }\r\n\r\n let $f = f ? $__default.default(f) : $__default.default('
    ').appendTo($body),\r\n target = $f.attr(\"target\"),\r\n action = $f.attr(\"action\"),\r\n postParams = [[ew.TOKEN_NAME_KEY, ew.TOKEN_NAME], [ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN]]; // Export data\r\n\r\n try {\r\n if (custom) {\r\n var _document$querySelect;\r\n\r\n // Use Custom Template (chart data to be retrieved later in iframe)\r\n document.body.style.cursor = \"wait\";\r\n let name = \"ew-export-frame\";\r\n url = setSearchParams(url, {\r\n export: type,\r\n custom: 1\r\n }, $__default.default(emailForm).serialize()); // Make sure parameters include \"export=type&custom=1\"\r\n\r\n (_document$querySelect = document.querySelector(\"iframe[name='\" + name + \"']\")) == null ? void 0 : _document$querySelect.remove();\r\n let $iframe = $__default.default(\"