{"version":3,"sources":["dist/js/ew.js"],"names":["ew$1","$$1","luxon","_interopDefaultLegacy","e","default","ew__default","$__default","luxon__default","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","substr","css","hasValue","replace","fileRequired","elFn","mismatchPassword","startsWith","elPwd","between","x","z","val","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","_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","submitReturnsPromise","disableForm","form","getForm","find","prop","addClass","trigger","elements","filter","enableForm","$elements","removeClass","not","appendHidden","$form","$dp","attr","ar","serializeArray","forEach","appendTo","canSubmit","async","updateTextArea","validate","$dps","dp","j","test","$els","result","evt","Event","originalEvent","isDefaultPrevented","isObject","submit","_e$originalEvent","_e$originalEvent$subm","formAction","submitter","setAttribute","getAttribute","split","method","toUpperCase","body","serialize","fetch","finally","getList","compileTemplates","values","list","template","isString","templates","_this$element","_this$element2","tagName","getElement","getElements","selector","is","eq","get","updateLists","rowindex","immediate","_form$querySelector","isNumber","isUndefined","querySelector","fixId","multiple","t","prefix","endsWith","entries","_ref","join","parents","parentFields","slice","lookupOptions","pvalues","getOptionValues","updateOptions","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","filterList","$sf","toggleClass","$df","$delete","$save","saveFilters","SEARCH_FILTER_OPTION","localStorage","setItem","PROJECT_NAME","$body","currentPage","done","off","on","prompt","input","html","sanitize","prevAll","remove","next","$submenu","isArray","insertBefore","action","append","TOKEN_NAME_KEY","TOKEN_NAME","ANTIFORGERY_TOKEN_KEY","ANTIFORGERY_TOKEN","one","init","IS_LOGGEDIN","IS_SYS_ADMIN","CURRENT_USER_NAME","_self$filterList$filt","_self$filterList","item","getItem","parseJson","grep","show","hide","hasFormData","text","substring","render","loadjs","ready","setTimeout","$tab","$panel","$container","width","CONFIRM_CANCEL","href","window","location","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","style","display","from","_checkbox","checked","set","_this$_element2","_this$_element2$id","activeElement","Form","_FormBase","_this","tryFocus","addField","fields","getField","addFields","field","apply","addCustomError","getFieldElements","rowIndex","delay","makeVisible","focusDelay","preventScroll","autoFocusPreventScroll","_focused","_this$_error2","getFocusable","autoFocus","detailpage","querySelectorAll","_ew$forms$get","psearch","gotoPageByElement","$pane","validateFields","row","_form$querySelector2","_form$querySelector3","validateRequired","updateSelected","addcnt","keycnt","detailpages","gridinsert","some","insert","startcnt","rowcnt","String","customValidate","frm","_rowIndex2","k","_rowIndex3","_ew$forms$get2","AjaxLookup","elementId","formElement","m","pf","debounce","recordCount","formatResult","opt","isAutoSuggest","jsRenderHelpers","displayValue","generateRequest","page","LANGUAGE_ID","getUserParams","arp","MULTIPLE_OPTION_SEPARATOR","getUrl","query","start","params","URLSearchParams","q","n","rnd","random","toString","prepare","transform","results","totalRecordCount","records","_isAutoSuggest","SelectionListOption","selected","_AjaxLookup","$input","minWidth","maxHeight","highlight","hint","minLength","classNames","forceSelection","forceSelect","lineHeight","paddingY","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","lf","LOOKUP_ALL_DISPLAY_FIELDS","df","df2","df3","df4","every","datasets","_append","Forms","_ew$getForm","_forms","f","ids","keys","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","children","pagination","more","createElement","c","attrs","role","matches","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","currentTarget","_e$originalEvent2","detach","end","oldValue","modal","event","draggable","FilterAttachBody","_hideDropdown","_this$_popper","outerWidth","_dropdownButton$close","contents","clone","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","initIcons","_e$target","tooltipOptions","IS_MOBILE","sanitizeFn","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","triggerHandler","PATH_BASE","API_URL","qs","route","encodeURIComponent","sanitizeUrl","searchParams","decodeURIComponent","initExportLinks","_e$target3","fileDownload","preventDefault","initMultiSelectCheckboxes","_e$target4","$cbs","_update","isHtml","Swal","fire","sweetAlertSettings","showConfirmButton","allowOutsideClick","allowEscapeKey","willOpen","showLoading","cache","xhrFields","responseType","textStatus","jqXHR","createObjectURL","Blob","a","getResponseHeader","download","appendChild","click","objectUrl","revokeObjectURL","errorThrown","_Swal$getActions","getActions","showValidationMessage","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","initForms","_e$target9","isFunction$2","_alert","cb","config","confirmButtonText","customClass","htmlContainer","isConfirmed","_prompt","cfg","_config","showCancelButton","cancelButtonText","inputValidator","toast","toastOptions","Toasts","first","showToast","class","autohide","autoHideSuccessMessage","autoHideSuccessMessageDelay","$f","parentId","change","_batch$send","childFields","els","getId","names","isTextbox","isFilter","$elf","typ","elf","_updateOptions","autoFillTargetFields","autoFill","fo","frmo","$obj","arr","clearOptions","addOpt","newOption","selectOption","_updateSibling","isBoolean","ds","isModalLookup","root","convertToBool","_export","sel","fobj","keySelected","isHiddenTextArea","_el$dataset","modalLookup","_el$dataset2","isHidden","selectAll","clearSelected","tbl","rowIndexes","r","rows","clearDelete","$tr","siblings","addBack","clickDelete","setupTable","force","$tbl","$rows","tBodies","$target","cells","div","parentsUntil","RESPONSIVE_TABLE_CLASS","rowSpan","clientHeight","offsetHeight","attach","$r","setupGrid","grid","$grid","USE_OVERLAY_SCROLLBARS","overlayScrollbars","overlayScrollbarsOptions","htmlDecode","table","getAncestorBy","node","parentNode","_node","nodeType","o1","o2","lookup","getOptionTexts","lo","hasAttribute","removeAll","valueSeparator","sep","isValue","optionHtml","OPTION_HTML_TEMPLATE","_obj$options$","selectedIndex","opts","isAutoSelect","_ajaxStop","lastPageSubmit","executeScript","matchAll","createRange","createContextualFragment","s1","s2","s","addScript","stripScript","reduce","scr","HTMLScriptElement","removeScript","getContent","$content","getOptions","modalDialogHide","$dlg","removeData","showing","reload","dest_array","destEl","v0","pid","post","$tt","trig","Popover","content","wd","getTipElement","copyToClipboard","_source","_source2","str","innerText","left","select","execCommand","removeChild","object_value","parseNumber","showMessage","arg","_arg$target","doc","swal","win","$div","$alert","$heading","w","$toast","Math","floor","Pace","_forms$get","ajaxSend","jqxhr","apiUrl","isApi","allowed","hostname","API_JWT_TOKEN","IS_WINDOWS_AUTHENTICATION","setRequestHeader","API_JWT_AUTHORIZATION_HEADER","FormData","ajaxStart","ajaxStop","ajaxError","DateTime","parseDateTime","fromFormat","locale","numberingSystem","getNumberingSystem","redirect","_ew$vars","newUrl","vars","login","entry","protocol","host","_fixLayoutHeightTimer","functions","Select2Utils","Select2Defaults","createSelect","selectId","processResults","_data$records$length","_data$records","$select","_$$data$$dropdown$fin","createModalLookup","_data$records$length2","_data$records2","_$$data$$dropdown$fin2","createFilter","_data$records$length3","_data$records3","_$$data$$dropdown$fin3","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","searchOperatorChanged","parm","$fld","$fld2","hasY","$cond","hasCond","$and","opr","$opr2","opr2","isBetween","isNullOpr","isNullOpr2","hideOpr2","hideX","hideY","isFunction","setSearchType","searchType","phraseId","applyTemplate","divId","tmplId","classId","exportType","export","_document$getElementB","dlg","_dlg$querySelector","subtmpl","rowspan","childNodes","replaceWith","cloneNode","views","hasTag","jsRenderAttributes","scripts","tmpl","$meta","PDF_STYLESHEET_FILENAME","PROJECT_STYLESHEET_FILENAME","responseText","customexport","filename","param","jQuery","toggleGroup","idx","valueChanged","infix","fld","bool","nelm","oelm","fnelm","setLanguage","submitAction","_window$msg","isPost","isMultiple","_success","_submit","removeSpaces","clearError","jquery","reset","once","MOBILE_DETECT","version","shiftKey","ctrlKey","confirmDelete","selectAllKeys","selectKey","$cb","addGridRow","_bootstrap$Tooltip$ge2","$tpl","$lastrow","suffix","$elkeycnt","attributes","$btn","dispose","after","scrollHeight","deleteGridRow","_bootstrap$Tooltip$ge3","rowidx","keycntname","_delete","$keyact","htmlEncode","sameString","optionsHtml","MAX_OPTION_COUNT","headers","Headers","enable2FA","API_2FA_ACTION","API_2FA_SHOW","_result$error2","imageUrl","showLoaderOnConfirm","isLoading","getConfirmButton","disableInput","getImage","onload","enableInput","getInput","preConfirm","API_2FA_VERIFY","catch","_result$error","disable2FA","API_2FA_RESET","_result$error3","_result$error4","showBackupCodes","showDenyButton","showLoaderOnDeny","denyButtonText","denyButton","disableButtons","API_2FA_BACKUP_CODES","codes","enableButtons","preDeny","getDenyButton","API_2FA_NEW_BACKUP_CODES","addOptionDialogShow","_args$evt","lnk","addOptionDialog","_submitSuccess","_results","objName","API_OBJECT_NAME","re","linkField","dfs","displayFields","ffs","filterFields","pfs","lfv","ff","txt","obj2","ar2","_results2","_results$error","_results3","failureMessage","_fail","btn","API_ADD_ACTION","filterFieldVars","nodeName","modalDialogShow","_args$evt2","_bootstrap$Tooltip$ge4","_args$evt3","_args$evt3$currentTar","_args$evt4","_args$evt4$currentTar","modalDialog","size","_caption","$lnk","caption","_button","isNull","_always","handleResult","pathname","_current","view","warningMessage","successMessage","_result$error5","_result$error6","$bd","cf","ct","Modal","_focustrap","__handleFocusin","_handleFocusin","_e$target10","importDialogShow","_args$evt5","_bootstrap$Tooltip$ge5","importDialog","$dropzone","$data","$progress","classname","$msg","hideMessage","showProgress","pc","updateProgress","tcnt","totalCount","file","importProgress","API_PROGRESS_ACTION","API_FILE_TOKEN_NAME","importComplete","fileResults","files","fileResult","scnt","successCount","fcnt","failCount","showLog","failList","ecnt","importFail","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","API_ACTION_NAME","importFiles","processfail","progressall","loaded","total","uploadProgress","hdr","emailDialogShow","emailDialog","_e$target$querySelect","_$$closest$find$data","MAX_EMAIL_RECIPIENT","exportid","exportWithCharts","showDrillDown","arUrl","pos","spinnerClass","draggableOptions","boundary","$tip","_result$error7","_result$error8","callback","_convert","API_LIST_ACTION","API_VIEW_ACTION","API_DELETE_ACTION","responseJSON","toggleSearchOperator","toggleLayout","_bootstrap$Tooltip$ge6","layout","load","PAGE_LAYOUT","_document$createRange","_document$createRange2","initPage","DECIMAL_SEPARATOR","min_value","max_value","creditcard_string","tempdigit","doubledigit","checkdigit","charAt","email_cnt","arEmails","nid","$ft","$fn","$fa","$fs","$exts","$maxsize","$maxfilecount","$label","label","_confirmDelete","confirm","_downloadTemplate","_uploadTemplate","uploadUrl","API_JQUERY_UPLOAD_ACTION","formData","session","exts","maxsize","maxfilecount","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","context","getLocaleFromPlatform","NUMBERING_SYSTEM","numeralSystem","delimiters","thousands","GROUPING_SEPARATOR","decimal","Intl","NumberFormat","resolvedOptions","formatDateTime","dt","fromSQL","fromSeconds","Date","fromJSDate","toFormat","parseDate","parseTime","isValid","formatCurrency","CURRENCY_FORMAT","formats","currency","CURRENCY_SYMBOL","formatNumber","NUMBER_FORMAT","formatPercent","PERCENT_FORMAT","_e$target11","$tables","initPanels","renderJsTemplates","adminlte","Treeview","_jQueryInterface","_localStorage$getItem","inputs","IS_SCREEN_SM_MIN","parseFloat","$rpt","mh","USE_JAVASCRIPT_MESSAGE","togglePassword","$i","exportId","exportUrl","now","delete","exportCharts","charts","chart","toBase64Image","chartEngine","streamType","stream","parameters","API_EXPORT_CHART_ACTION","fixLayoutHeight","addEventHandlers","tblVar","fldVar","isPushNotificationSupported","navigator","urlBase64ToUint8Array","base64String","base64","repeat","rawData","atob","outputArray","Uint8Array","charCodeAt","sendSubscriptionToServer","subscription","getKey","contentEncoding","PushManager","supportedContentEncodings","endpoint","btoa","fromCharCode","json","createSubscription","API_PUSH_NOTIFICATION_ACTION","API_PUSH_NOTIFICATION_SUBSCRIBE","serviceWorkerReg","serviceWorker","pushManager","subscribe","userVisibleOnly","applicationServerKey","PUSH_SERVER_PUBLIC_KEY","getSubscription","setSubscription","inst","tip","setContent","subscribeNotification","Notification","permission","_await$getSubscriptio","requestPermission","_document$getElementB2","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","height","singleMapHeight","singleMapWidth","showMapOnTop","createMap","createBounds","createMarkerClusterer","marker","createMarker","fitBounds","promises","address","geocodingDelay","Promise","resolve","geocode","latitude","longitude","isNaN","createLatLng","all","matchMedia","MobileDetect","userAgent","mobile","MultiPage","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","hash","animate","ewAction","exportSelected","collapse","zIndex","isFinite","isDate","periodic","interval","clearTimeout","rec","_this$data","visible","_this$data2","toNumber","toDate","_ew$vars$tables","_ew$vars$tables$table","_ew$vars$tables$table2","_ew$vars$tables$table3","tables","clientFormatPattern","toJsDate","toJSDate","_getMenuElement","_menu","getParentFromElement","mutationList","mutation","MutationObserver","observe","attributeFilter","attributeOldValue","subtree","_toggle","$currentTarget","treeviewMenu","isText","stopImmediatePropagation","isNil$1","isFunction$1","isNaNNumber$1","isFiniteNumber$1","multiplyByPowerOfTen$1","number","powerOfTenExponent","NaN","numAsString","indexOfE","log10$1","numberThatIsPowerOfTen","LOG10E","toObject$1","entriesResolver","object","escapeRegexString$1","string","memoize$1","cacheKey","powerOf10LookupObject","currentValue","additionalZeros","isPowerOfTen$1","toBase","valueUnit","unitScale","base","scale","toBaseMultiplier","convertUnit","originUnit","targetUnit","valueAsBase","resolvedScale","conversionFactorFromBase","unitScaleDefinition","unit","convert","toBest","exclude","cutOffNumber","best","scaleUnit","absoluteResult","abs","scaleDefinition","stringRepeat$1","createUnitScaleFromLocaleAbbreviations$1","scaleItem","scaleItemIndex","formattedStringToNumber$1","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","locale$1","code","ordinal","merge","newObject","argsLength","isObject$1","isString$1","truncateNumber$1","ceil","getPatternParts","patternMask","isInEscapedPart","currentEscapedWord","parts","escaped","patternIncludes","patternRemoveEscapedText","patternReplace","searchValue","replaceValue","stringIncludes$1","signRule$1","patternWithoutEscapedText","negativeParentheses","forceSign","outputPatternMask","abbreviationRule$1","compactUnit","compact","abbreviationRegExpResult","compactAuto","splitStringInTwoParts$1","separator","indexOfSearchChar","countChars","stringChar","decimalPlacesRule$1","patternPrecisionPart","minimumFractionDigits","maximumFractionDigits","trimmedPatternPrecisionPart","patternPrecisionPartWithoutClosingBracket","precisionSplitted","fractionDigits","optionalDecimalPlacesRule$1","optionalFractionDigits","parsePattern$1","inputPattern","resolvedInputPattern","patternMaskAfterSignRule","signRules","patternMaskAfterAbbreviationRule","abbreviationRules","patternMaskAfterOptionalDecimalPlacesRule","optionalDecimalPlacesRules","outputPatternMaskWithoutEscapedText","decimalPlacesRules","minimumIntegerDigits","patternMaskIntegerPart","minimumIntegerDigitsRule","grouping","patternMaskAfterHandlingNumberPosition","numberPositionRule","patternMaskWithEnsuredSignPosition","addSignPositionIfItDoesNotExists","removeSignIfExists$1","valueAsString","rescaleRoundedValue$1","currentAbbreviationScale","patternRules","newScaledValue","newScaledValueUnit","scaleValueWithAbbreviation$1","forcedAbbreviationUnit","abbreviationsFromLocale","targetPowerOfTenExponent","scaleDefinitionFromLocale","closestPowerOfTenWithAvailableAbbreviation","distanceFromTarget","resolveForcedAbbreviationUnit","scaledValue","localizedUnit","roundNumber$1","precision","roundingFunction","resolvedPrecision","roundedScaledValue","numberToNonExponentialString$1","significand","exponent","exponentAsNumber","integerPartOfSignificand","fractionalPartOfSignificand","numberOfZerosToAdd","formatPositiveExponentResult","significandAsString","negativeExponentAbsoluteValue","outputIntegerPartOfSignificand","outputFractionalPartOfSignificand","firstCharInIntegerPart","formatNegativeExponentResult","numberToFixed$1","finiteNumber","fractionalPartOfValueAsString","targetFractionDigitsAmount","roundedValue","integerPart","fractionalPart","addTrailingZerosInFractionalPart","roundValueAndAddTrailingZeros$1","rounding","resolvedRoundingFunction","replaceDigitsWithNumeralSystem$1","numericString","addOrRemoveLeadingZerosToValue$1","valueIntegerPartWithoutSign","addSignInfoToFullFormattedNumber$1","fullFormattedValueWithoutSign","isValueNegative","isValueZero","splitNumberIntegerAndDecimalParts$1","decimalPart","Number","addThousandsSeparatorToValueIntegerPart$1","valueIntegerPartWithLeadingZerosAndWithoutSign","digitGroupingStyle","thousandsSeparator","restDigitGrouping","groupingSubIteration","shift","applyAbbreviationLocalizedUnitToPatternMask$1","abbreviationLocalizedUnit","hasAbbreviationInPatternMask","numberToFormattedNumber$1","resolvedValue","localizedAbbreviationUnit","scaledValueLocalizedUnit","rescaledValue","rescaledValueLocalizedUnit","scaleAndRoundValue","signedZero","valueAsStringWithoutSign","valueIntegerPartWithLeadingZeros","valueIntegerPartWithThousandsSeparator","numeralSystemFromLocale","integerPartWithNumeralSystem","decimalPartWithNumeralSystem","fullNumberWithNumeralSystem","patternMaskWithNumber","cleanPatternMask","bpsFormatter$1","regexps","unformat","patternWithEscapedBPS","timeFormatter$1","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$1","hasNotScalePercentageSymbolInPattern","scalePercentage","patternWithEscapedPercentage","currencyFromOptions","localizedCurrencySymbol","patternWithEscapedCurrencySymbol","_b","localizedOrdinal","patternWithEscapedOrdinal","scaledValueUnit","patternWithEscapedBytes","exponential","toExponential","patternWithoutExponential","roundHalfAwayFromZero$1","resolveFormatOptions$1","formatOptions","_c","roundingOption","resolveRoundingOption","resolvedLocale","optionsLocale","defaultLocale","resolveOptionsLocale","resolvedFormatters","optionsFormatters","formatters","defaultPattern","nanFormat","nonBreakingSpace","parse$1$1","inputStringWithNormalSpaces","unformatFunctionFromFormatters","formatter","matcher","getUnformatFunctionIfMatch","parse$1","round$1","format$1$1","resolvedPattern","resolvedValueAsNumber","formatFunctionFromFormatters","getFormatFunctionIfMatch","_errorFormat","arg2","arg3","withOptions","baseOptions","optionsFromArguments","unique$1","rtlDirCheck","appendLeftToRightMarkIfIsRTL","isRTL","languagesWith4DigitsGroupingStyle","getAbbreviations","languageTag","digits","intlFormatOptions","notation","useGrouping","compactDisplay","digitOfZero","digitOfOne","digitOfTwo","abbreviationResultForOne","toLocaleString","abbreviationResultForTwo","abbreviationOne","abbreviationTwo","resultIndex","_err","getLocaleFromPlatform$1$1","resolvedLanguageTag","localizedNumber","lookupObject","repeatedChar","digitsAsArray","getNumeralSystemDigits","resolvedDigits","localizedNumberWithoutDigits","groupingDelimiter","fractionDelimiter","getGroupingAndFractionDelimiters","groupingStyle","subIterationIndex","digitOrGroupingDelimiter","getGroupingStyle","shortAbbreviations","_abbreviationsLong","numerable"],"mappings":"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","sourcesContent":["/*!\n * JavaScript for ASP.NET Maker v2022.6.0\n * Copyright (c) e.World Technology Limited. All rights reserved.\n */\n(function (ew$1, $$1, luxon) {\n 'use strict';\n\n function _interopDefaultLegacy (e) { return 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 = ' {Prev}{Next} '; // 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.substr(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 /**\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 var 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.substr(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 }\r\n\r\n if (ew.hasValue(x) && $__default[\"default\"](z).val() == \"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 email: 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 time: 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 {*} 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 * @param {number} id reCaptcha ID\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 }\n\n var Validators = {\n __proto__: null,\n userLevelId: userLevelId,\n userLevelName: userLevelName,\n required: required,\n fileRequired: fileRequired,\n mismatchPassword: mismatchPassword,\n between: between,\n passwordStrength: passwordStrength,\n username: username,\n password: password,\n email: email,\n emails: emails,\n datetime: datetime,\n time: time,\n float: float,\n range: range,\n integer: integer,\n phone: phone,\n zip: zip,\n creditCard: creditCard,\n ssn: ssn,\n guid: guid,\n regex: regex,\n url: url,\n custom: custom,\n captcha: captcha,\n recaptcha: recaptcha\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 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 var 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.submitReturnsPromise = false; // Submit form and returns Promise\r\n // Disable form\r\n\r\n this.disableForm = function () {\r\n var form = this.getForm();\r\n $__default[\"default\"](form).find(\":submit:not(.dropdown-toggle)\").prop(\"disabled\", true).addClass(\"disabled\");\r\n this.trigger(\"disabled\");\r\n }; // Disable form\r\n\r\n this.disableForm = function () {\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 }; // 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 form = this.getForm(),\r\n $form = $__default[\"default\"](form);\r\n this.disableForm();\r\n this.updateTextArea();\r\n\r\n if (!this.validate || this.validate() && !$form.find(\".is-invalid\")[0]) {\r\n $form.find(\"input[name^=sv_], input[name^=p_], .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 if (formAction) form.setAttribute(\"action\", formAction);\r\n\r\n if (await this.canSubmit(e)) {\r\n if (this.submitReturnsPromise) {\r\n let url = form.getAttribute(\"action\").split(\"#\")[0].split(\"?\")[0],\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 name = name.replace(/^(sv_)?[xy](\\d*|\\$rowindex\\$)_|\\[\\]$/g, \"\"); // Remove element name prefix/suffix\r\n\r\n return this.lists[name];\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 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 var selector = \"[name='\" + name + \"']\";\r\n selector = \"input\" + selector + \",selection-list\" + selector + \",select\" + selector + \",textarea\" + selector + \",button\" + selector;\r\n var $els = this.$element.find(selector);\r\n if ($els.length == 0) return null;\r\n if ($els.length == 1 && $els.is(\"[type=checkbox]\")) // Single checkbox (boolean field)\r\n return $els[0];\r\n if ($els.length == 1 && $els.is(\":not([type=checkbox]):not([type=radio])\")) return $els[0];\r\n if ($els.length == 2 && $els.eq(0).is(\"selection-list\") && $els.eq(1).is(\"input[type=hidden]\")) // Polyfill for the ElementInternals\r\n return $els[0];\r\n return $els.get();\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 var 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\r\n var fixId = (id, multiple) => {\r\n var t = \"\",\r\n i = rowindex,\r\n ar = id.split(\" \");\r\n\r\n if (ar.length > 1) {\r\n t = ar[0];\r\n i = \"\";\r\n id = ar[1];\r\n }\r\n\r\n let prefix = $__default[\"default\"].isNumber(i) ? \"x\" + i + \"_\" : \"x_\"; // Add row index\r\n\r\n if (id.startsWith(\"x_\")) // Field element name\r\n id = id.replace(/^x_/, prefix);else // Field var\r\n id = prefix + id;\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 var selector = Object.entries(this.lists).map(_ref => {\r\n let [id, list] = _ref;\r\n return \"[name='\" + fixId(id, list.multiple) + \"']\";\r\n }).join();\r\n\r\n if (selector && form.querySelector(selector)) {\r\n // Lists found\r\n this.compileTemplates(); // For grid where updateList() called before init()\r\n\r\n var requests = [];\r\n\r\n for (let [id, list] of Object.entries(this.lists)) {\r\n let parents = list.parentFields.slice().map(parent => fixId(parent)),\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 = fixId(id, list.multiple);\r\n\r\n if (ajax) {\r\n // Ajax (async)\r\n let pvalues = parents.map(parent => ew.getOptionValues(parent, form));\r\n requests.push([id, pvalues, ajax, false]);\r\n } else {\r\n // Non-Ajax (lookup cache or user values)\r\n ew.updateOptions.call(this, id, parents, false, false);\r\n }\r\n }\r\n\r\n requests.forEach(request => this.batch.add(ew.updateOptions.bind(this, ...request)));\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 var 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 var saveFilters = function (id, filters) {\r\n if (ew.SEARCH_FILTER_OPTION == \"Client\") {\r\n localStorage.setItem(ew.PROJECT_NAME + \"_\" + id + \"_filters\", JSON.stringify(filters));\r\n } else if (ew.SEARCH_FILTER_OPTION == \"Server\") {\r\n var $body = $__default[\"default\"](\"body\").css(\"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 if (result[0] && result[0].success) self.filterList.filters = filters; // Save filters\r\n }).always(function () {\r\n $body.css(\"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 var $submenu = $__default[\"default\"](\"\");\r\n\r\n for (var i in filters) {\r\n if (!Array.isArray(filters[i])) continue;\r\n $__default[\"default\"]('' + filters[i][0] + '').on(\"click\", function (e) {\r\n // Delete\r\n var i = $__default[\"default\"](this).find(\"a[data-index]\").data(\"index\");\r\n ew.prompt(ew.language.phrase(\"DeleteFilterConfirm\").replace(\"%s\", filters[i][0]), result => {\r\n if (result) {\r\n filters.splice(i, 1);\r\n saveFilters(id, filters);\r\n }\r\n });\r\n }).appendTo($submenu);\r\n $__default[\"default\"]('' + filters[i][0] + '').insertBefore($save).on(\"click\", function (e) {\r\n var i = $__default[\"default\"](this).find(\"a[data-index]\").data(\"index\");\r\n $__default[\"default\"](\"\").attr({\r\n method: \"post\",\r\n action: ew.currentPage()\r\n }).append($__default[\"default\"](\"\").attr({\r\n name: \"cmd\",\r\n value: \"resetfilter\"\r\n }), $__default[\"default\"](\"\").attr({\r\n name: ew.TOKEN_NAME_KEY,\r\n value: ew.TOKEN_NAME\r\n }), // PHP\r\n $__default[\"default\"](\"\").attr({\r\n name: ew.ANTIFORGERY_TOKEN_KEY,\r\n value: ew.ANTIFORGERY_TOKEN\r\n }), // PHP\r\n $__default[\"default\"](\"\").attr({\r\n name: \"filter\",\r\n value: JSON.stringify(filters[i][1])\r\n })).appendTo(\"body\").trigger(\"submit\");\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); // Filters button\r\n\r\n if (ew.SEARCH_FILTER_OPTION == \"Client\" || ew.SEARCH_FILTER_OPTION == \"Server\" && ew.IS_LOGGEDIN && !ew.IS_SYS_ADMIN && ew.CURRENT_USER_NAME != \"\") {\r\n $__default[\"default\"](\".ew-filter-option .ew-btn-dropdown\").on(\"show.bs.dropdown\", function (e) {\r\n var _self$filterList$filt, _self$filterList;\r\n\r\n var filters = [];\r\n\r\n if (ew.SEARCH_FILTER_OPTION == \"Client\") {\r\n var item = localStorage.getItem(ew.PROJECT_NAME + \"_\" + self.id + \"_filters\");\r\n if (item) filters = ew.parseJson(item) || [];\r\n } else if (ew.SEARCH_FILTER_OPTION == \"Server\") filters = (_self$filterList$filt = (_self$filterList = self.filterList) == null ? void 0 : _self$filterList.filters) != null ? _self$filterList$filt : [];\r\n\r\n var ar = $__default[\"default\"].grep(filters, function (val) {\r\n if (Array.isArray(val) && val.length == 2) return val;\r\n });\r\n self.setupFilters(e, ar);\r\n }).removeClass(\"d-none\").show();\r\n } else {\r\n $__default[\"default\"](\".ew-filter-option\").addClass(\"d-none\").hide();\r\n } // 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.on(\"submit\", 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); // 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_\")) : 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 */\r\n ;\r\n\r\n _proto.addCustomError = function addCustomError(fldvar, msg) {\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 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 * Get HTML elements for a field\r\n * @param {string} name - Field name\r\n * @param {number} rowIndex [undefined] - Row index\r\n * @returns HTMLElement|HTMLElement[]|null\r\n */\r\n _proto.getFieldElements = function getFieldElements(name, rowIndex) {\r\n return this.getElements(\"x\" + (rowIndex != null ? rowIndex : \"\") + \"_\" + name) || // Set element\r\n this.getElements(\"x\" + (rowIndex != null ? rowIndex : \"\") + \"_\" + name + \"[]\") || // Field with []\r\n this.getElements(name); // Field by name directly (e.g. email form)\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 ;\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 != 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 (fieldName && 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 if (this.id.endsWith(\"srch\") && this.element.psearch && this.element.psearch != document.activeElement) {\r\n // Extended Search\r\n this.element.psearch.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 = \"\";\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 } // Validate\r\n ;\r\n\r\n _proto.validate = function validate() {\r\n var _form$querySelector, _form$querySelector2, _form$querySelector3;\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 action = (_form$querySelector2 = form.querySelector(\"#action\")) == null ? void 0 : _form$querySelector2.value,\r\n keycnt = this.formKeyCountName ? (_form$querySelector3 = form.querySelector(\"#\" + this.formKeyCountName)) == null ? void 0 : _form$querySelector3.value : null,\r\n // Get key_count\r\n detailpages = form.querySelectorAll(\"input[name=detailpage]\"),\r\n gridinsert = action == \"gridinsert\" || action == \"insert\" && Array.from(detailpages).some(dp => dp.value == this.id),\r\n // Master/Detail-Add or Grid-Add\r\n insert = action == \"insert\" && !gridinsert,\r\n // Inline-Add\r\n startcnt = insert ? 0 : 1,\r\n rowcnt = insert ? 0 : parseInt(keycnt, 10) || 1;\r\n\r\n for (let i = startcnt; i <= rowcnt; i++) {\r\n let rowIndex = keycnt ? 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 (this.customValidate && !this.customValidate(form)) {\r\n this.focus();\r\n return false;\r\n }\r\n }\r\n\r\n if (this.pageId == \"list\" && gridinsert && addcnt == 0) {\r\n // No row added\r\n ew.alert(ew.language.phrase(\"NoAddRecord\"));\r\n return false;\r\n } // Process detail forms\r\n\r\n if ([\"add\", \"edit\"].includes(this.pageId)) {\r\n detailpages.forEach(dp => {\r\n let frm = ew.forms.get(dp.value);\r\n if (frm && !frm.validate()) return false;\r\n });\r\n }\r\n\r\n return true;\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 rowIndex = (_rowIndex2 = rowIndex) != null ? _rowIndex2 : \"\";\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 * 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 k = form.querySelector(\"#\" + this.formKeyCountName),\r\n // Get key_count\r\n rowcnt = parseInt(k == null ? void 0 : k.value, 10) || 1,\r\n startcnt = rowcnt === 0 ? 0 : 1; // Check rowcnt === 0 => Inline-Add\r\n\r\n for (let i = startcnt; i <= rowcnt; i++) {\r\n let rowIndex = k ? String(i) : \"\";\r\n this.setInvalid(rowIndex);\r\n }\r\n } else {\r\n var _rowIndex3;\r\n\r\n rowIndex = (_rowIndex3 = rowIndex) != null ? _rowIndex3 : \"\";\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\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 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 _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 this.formElement = this.form.getElement(); // HTML form or DIV\r\n\r\n this.list = this.form.getList(this.elementId);\r\n let m = this.elementId.match(/^[xy](\\d*|\\$rowindex\\$)_/),\r\n rowindex = m ? m[1] : \"\";\r\n this.parentFields = this.list.parentFields.slice() // Clone\r\n .map(pf => pf.split(\" \").length == 1 ? pf.replace(/^x_/, \"x\" + rowindex + \"_\") : pf); // 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\r\n if (this.list.template && !this.isAutoSuggest) {\r\n return this.list.template.render(opt, ew.jsRenderHelpers);\r\n } else {\r\n return ew.displayValue(opt, this.element) || opt[0];\r\n }\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\r\n if (this.parentFields.length > 0) {\r\n this.parentFields.forEach((pf, i) => {\r\n let arp = ew.getOptionValues(pf, this.formElement);\r\n data[\"v\" + (i + 1)] = arp.join(ew.MULTIPLE_OPTION_SEPARATOR);\r\n });\r\n }\r\n\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 _createClass(AjaxLookup, [{\r\n key: \"isAutoSuggest\",\r\n get: function () {\r\n if (this._isAutoSuggest === null) 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 /**\r\n * Class selection list option\r\n */\r\n let SelectionListOption =\r\n /**\r\n * Constructor\r\n */\r\n function SelectionListOption(value, text, selected) {\r\n this.value = String(value);\r\n this.text = String(text);\r\n this.selected = !!selected;\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 _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.$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 SelectionListOption(item.lf || item[0], item.text));\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 (ew.LOOKUP_ALL_DISPLAY_FIELDS) {\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 var Select2Language = {\r\n errorLoading: function () {\r\n return ew.language.phrase(\"ErrorLoading\");\r\n },\r\n inputTooLong: function (args) {\r\n var overChars = args.input.length - args.maximum;\r\n return ew.language.phrase(\"InputTooLong\").replace(\"%s\", overChars);\r\n },\r\n inputTooShort: function (args) {\r\n var remainingChars = args.minimum - args.input.length;\r\n return ew.language.phrase(\"InputTooShort\").replace(\"%s\", remainingChars);\r\n },\r\n loadingMore: function () {\r\n return ew.language.phrase(\"LoadingMore\");\r\n },\r\n maximumSelected: function (args) {\r\n return ew.language.phrase(\"MaximumSelected\").replace(\"%s\", args.maximum);\r\n },\r\n noResults: function () {\r\n return ew.language.phrase(\"NoResults\");\r\n },\r\n searching: function () {\r\n return ew.language.phrase(\"Searching\");\r\n },\r\n removeAllItems: function () {\r\n return ew.language.phrase(\"RemoveAllItems\");\r\n },\r\n removeItem: function () {\r\n return ew.language.phrase(\"RemoveItem\");\r\n },\r\n search: function () {\r\n return ew.language.phrase(\"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().on('click', function (e) {\r\n let value = $__default[\"default\"](this).data('value');\r\n\r\n if (value) {\r\n // OK\r\n ew.forms.get(self.$element[0].form).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().on('click', 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'); //***this.trigger('toggle', {});\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 : '' + options._templateResult(result) + '';\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 if (form) (_forms$get = forms.get(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.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$length, _data$records;\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$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 };\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 };\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 };\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 = {\r\n container: \"body\",\r\n trigger: ew.IS_MOBILE ? \"manual\" : \"hover\",\r\n placement: \"bottom\",\r\n sanitizeFn: ew.sanitizeFn\r\n };\r\n $__default[\"default\"](el).find(\".ew-icon\").closest(\".btn\").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({\r\n title: this.title,\r\n ...tooltipOptions\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} 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 = 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 } // Sanitize URL\r\n\r\n function sanitizeUrl(url) {\r\n var ar = url.split(\"?\"),\r\n search = ar[1];\r\n\r\n if (search) {\r\n var searchParams = new URLSearchParams(search);\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 search = searchParams.toString();\r\n }\r\n\r\n return ar[0] + (search ? \"?\" + search : \"\");\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 var el = (_e$target3 = e == null ? void 0 : e.target) != null ? _e$target3 : document;\r\n $__default[\"default\"](el).find(\"a.ew-export-link[href]:not(.ew-email):not(.ew-print):not(.ew-xml)\").on(\"click\", function (e) {\r\n var href = this.href;\r\n if (href && href != \"#\") fileDownload(href);\r\n e.preventDefault();\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 } // Download file\r\n\r\n function fileDownload(href, data) {\r\n let isHtml = href.includes(\"export=html\");\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 $__default[\"default\"].ajax({\r\n url: href,\r\n type: data ? \"POST\" : \"GET\",\r\n cache: false,\r\n data: data || null,\r\n xhrFields: {\r\n responseType: isHtml ? \"text\" : \"blob\"\r\n }\r\n }).done((data, textStatus, jqXHR) => {\r\n var url = URL.createObjectURL(isHtml ? new Blob([data], {\r\n type: \"text/html\"\r\n }) : data),\r\n a = document.createElement(\"a\"),\r\n cd = jqXHR.getResponseHeader(\"Content-Disposition\"),\r\n m = 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 }).fail((jqXHR, textStatus, errorThrown) => {\r\n var _Swal$getActions;\r\n\r\n Swal.hideLoading();\r\n Swal.update({\r\n showConfirmButton: true\r\n });\r\n (_Swal$getActions = Swal.getActions()) == null ? void 0 : _Swal$getActions.classList.add(\"d-flex\");\r\n Swal.showValidationMessage(\"\" + (errorThrown || ew.language.phrase(\"FailedToExport\")) + \"\");\r\n $document$1.trigger(\"export\", [{\r\n \"type\": \"fail\",\r\n \"url\": href\r\n }]);\r\n }).always(() => {\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 var 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 var $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 var 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 var $this = $__default[\"default\"](this);\r\n $this.tooltip(Object.assign({\r\n html: true,\r\n placement: \"bottom\",\r\n sanitizeFn: ew.sanitizeFn\r\n }, $this.data()));\r\n });\r\n $el.find(\"a.ew-tooltip-link\").each(tooltip); // Init tooltips\r\n\r\n $el.find(\".ew-tooltip\").tooltip({\r\n placement: \"bottom\",\r\n sanitizeFn: ew.sanitizeFn\r\n });\r\n $el.find(\".ew-popover\").popover({\r\n sanitizeFn: ew.sanitizeFn\r\n });\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 searchOperatorChanged(el) {\r\n var $el = $__default[\"default\"](el),\r\n $p = $el.closest(\"[id^=r_], [id^=xs_]\"),\r\n parm = el.id.substr(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 == \"BETWEEN\",\r\n // Can only be operator 1\r\n isNullOpr = [\"IS NULL\", \"IS NOT NULL\"].includes(opr),\r\n isNullOpr2 = [\"IS NULL\", \"IS NOT NULL\"].includes(opr2),\r\n hideOpr2 = !hasY || isBetween,\r\n hideX = isNullOpr,\r\n hideY = !isBetween && (!hasCond || isNullOpr2);\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 $el = $__default[\"default\"](el),\r\n ids = ew.forms.ids();\r\n\r\n for (let id of ids) {\r\n if ($el.find(\"#\" + id)) forms.get(id).init();\r\n }\r\n } // Is function\r\n\r\n function isFunction$2(x) {\r\n return typeof x === \"function\";\r\n }\r\n /**\r\n * Alert (OK button only)\r\n *\r\n * @param {string} msg - Message\r\n * @param {callback} [cb] - Callback function\r\n * @param {string} [type] - CSS class (see https://getbootstrap.com/docs/5.0/utilities/colors/#color)\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$2(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$2(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: \"muted|primary|success|info|warning|danger\"\r\n */\r\n\r\n function showToast(message, type) {\r\n if (!message) return;\r\n type = type || \"danger\";\r\n let args = {\r\n message,\r\n type,\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 } = args);\r\n return toast({\r\n class: \"ew-toast bg-\" + type,\r\n title: ew.language.phrase(type),\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\").not(\".ew-pager-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=psearch]\",\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 _batch$send;\r\n\r\n var f = this.$element ? this.$element[0] : this.form ? this.form : null; // Get form/div element from this\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\r\n obj = forms.get(this).getList(this.name || this.id).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.name || self.id);\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 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(id),\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 if (obj.list) obj.render();\r\n selectOption(obj, ar);\r\n\r\n if (change !== false) {\r\n if (!obj.options && obj.length) $obj.first().triggerHandler(\"click\");else $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 (/(s(ea)?rch|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 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.tagName != \"SELECTION-LIST\" && !obj.classList.contains(\"form-select\") || // Not or native \r\n isModalLookup(obj)) // Lookup\r\n data[\"v0\"] = ar[0] ? obj.multiple ? ar.join(ew.MULTIPLE_OPTION_SEPARATOR) : ar[0] : random(); // Filter by the current value\r\n\r\n for (var i = 0, cnt = arp.length; i < cnt; i++) // Filter by parent fields\r\n data[\"v\" + (i + 1)] = arp[i].join(ew.MULTIPLE_OPTION_SEPARATOR);\r\n\r\n return $__default[\"default\"].ajax(getApiUrl(ew.API_LOOKUP_ACTION), {\r\n method: \"POST\",\r\n dataType: \"json\",\r\n data: data,\r\n async: async,\r\n processData: false,\r\n success: result => {\r\n var ds = result.records || [];\r\n addOpt(ds);\r\n\r\n _updateSibling();\r\n\r\n $obj.first().trigger(\"updated\", [Object.assign({}, result, {\r\n target: obj\r\n })]); // Object \"updated\" event fired after the object is updated\r\n\r\n return ds;\r\n },\r\n complete: () => $obj.data(\"updating\", false)\r\n });\r\n }\r\n } // Get user parameters from id\r\n\r\n function getUserParams(id, root) {\r\n var id = id.replace(/\\[\\]$/, \"\"),\r\n o = {};\r\n var root = !$__default[\"default\"].isString(root) ? root : /^#/.test(root) ? root : \"#\" + root;\r\n var $els = root ? $__default[\"default\"](root).find(id) : $__default[\"default\"](id);\r\n var val = $els.val();\r\n\r\n if (val) {\r\n var params = new URLSearchParams(val);\r\n params.forEach(function (value, key) {\r\n o[key] = value;\r\n });\r\n }\r\n\r\n return o;\r\n } // Apply client side template to a DIV\r\n\r\n function applyTemplate(divId, tmplId, classId, exportType, data) {\r\n // Note: classId = fileName\r\n let args = {\r\n \"data\": data || {},\r\n \"id\": divId,\r\n \"template\": tmplId,\r\n \"class\": classId,\r\n \"export\": exportType,\r\n \"enabled\": true\r\n };\r\n $document$1.trigger(\"rendertemplate\", [args]);\r\n\r\n if (args.enabled) {\r\n var _document$getElementB;\r\n\r\n let template = (_document$getElementB = document.getElementById(tmplId)) == null ? void 0 : _document$getElementB.content,\r\n dlg = document.querySelector(\"#ew-modal-dialog.show\"); // Shown modal dialog\r\n\r\n if (!template) return;\r\n template.querySelectorAll(\".ew-slot\").forEach(el => {\r\n var _dlg$querySelector;\r\n\r\n let id = el.name || el.id,\r\n subtmpl = (_dlg$querySelector = dlg == null ? void 0 : dlg.querySelector(\"#\" + id)) != null ? _dlg$querySelector : document.getElementById(id); // Find in shown modal dialog first in case Custom Template for modal page\r\n\r\n if (subtmpl != null && subtmpl.content) {\r\n if (el.dataset.rowspan > 1) Array.prototype.slice.call(subtmpl.content.childNodes).forEach(node => node.rowSpan = el.dataset.rowspan);\r\n el.replaceWith(subtmpl.content.cloneNode(true));\r\n } else {\r\n el.remove();\r\n }\r\n });\r\n\r\n if ($__default[\"default\"].views) {\r\n let textContent = template.textContent,\r\n hasTag = textContent.includes(\"{{\") && textContent.includes(\"}}\");\r\n\r\n if (!hasTag) {\r\n let selector = ew.jsRenderAttributes.map(attr => \"[\" + attr + \"*='{{'][\" + attr + \"*='}}']\").join(\",\");\r\n hasTag = template.querySelector(selector);\r\n }\r\n\r\n if (hasTag) {\r\n // Includes JsRender template\r\n let scripts = Array.prototype.slice.call(template.querySelectorAll(\"script\")); // Extract scripts\r\n\r\n scripts.forEach(item => item.remove());\r\n let div = document.createElement(\"div\");\r\n div.appendChild(template);\r\n let html = div.innerHTML.replace(/{{([^}]+)}}/g, m => htmlDecode(m)),\r\n // HTML-decode comparison operators\r\n tmpl = $__default[\"default\"].templates(html);\r\n document.getElementById(divId).innerHTML = tmpl.render(args.data, ew.jsRenderHelpers);\r\n scripts.forEach(item => document.body.appendChild(item)); // Add scripts\r\n } else {\r\n document.getElementById(divId).appendChild(template);\r\n }\r\n } else {\r\n document.getElementById(divId).appendChild(template);\r\n }\r\n }\r\n\r\n if (exportType && exportType != \"print\") {\r\n // Export custom\r\n $__default[\"default\"](function () {\r\n let $meta = $__default[\"default\"](\"meta[http-equiv='Content-Type']\"),\r\n html = \"\",\r\n $div = $__default[\"default\"](\"#\" + divId);\r\n if ($div.children(0).is(\"div[id^=ct_]\")) // Remove first div tag\r\n $div = $div.children(0);\r\n if ($meta[0]) html += \"\";\r\n\r\n if (exportType == \"pdf\") {\r\n html += \"\";\r\n } else {\r\n html += \"\";\r\n }\r\n\r\n html += \"\" + \"head>\";\r\n $__default[\"default\"](\".ew-chart-top\").each(function () {\r\n html += $__default[\"default\"](this).html();\r\n });\r\n html += $div.html();\r\n $__default[\"default\"](\".ew-chart-bottom\").each(function () {\r\n html += $__default[\"default\"](this).html();\r\n });\r\n html += \"\";\r\n let url = currentPage(),\r\n data = {\r\n \"customexport\": exportType,\r\n \"data\": html,\r\n \"filename\": args.class\r\n };\r\n data[ew.TOKEN_NAME] = ew.ANTIFORGERY_TOKEN;\r\n\r\n if (exportType == \"email\") {\r\n let str = currentUrl.searchParams.toString() + \"&\" + $__default[\"default\"].param(data); // Add data\r\n\r\n $__default[\"default\"].post(url, str, function (result) {\r\n showMessage(result);\r\n });\r\n } else {\r\n fileDownload(url, data);\r\n }\r\n\r\n window.parent.jQuery(\"body\").css(\"cursor\", \"default\"); // Use window.parent in case in iframe\r\n });\r\n }\r\n } // Toggle group\r\n\r\n function toggleGroup(el) {\r\n var $el = $__default[\"default\"](el),\r\n $tr = $el.closest(\"tr\"),\r\n selector = \"tr\",\r\n level;\r\n\r\n for (var i = 1; i <= 6; i++) {\r\n var idx = i == 1 ? \"\" : \"-\" + i;\r\n var data = $tr.data(\"group\" + idx);\r\n\r\n if ($__default[\"default\"].isValue(data)) {\r\n level = i;\r\n if (data != \"\") selector += \"[data-group\" + idx + \"='\" + String(data).replace(/'/g, \"\\\\'\") + \"']\";\r\n }\r\n }\r\n\r\n if ($el.hasClass(\"ew-rpt-grp-hide\")) {\r\n // Show\r\n $__default[\"default\"](selector).slice(1).removeClass(\"ew-rpt-grp-hide-\" + level);\r\n $el.removeClass(\"ew-rpt-grp-hide\");\r\n } else {\r\n // Hide\r\n $__default[\"default\"](selector).slice(1).addClass(\"ew-rpt-grp-hide-\" + level);\r\n $el.addClass(\"ew-rpt-grp-hide\");\r\n }\r\n } // Check if boolean value is true\r\n\r\n function convertToBool(value) {\r\n return value && [\"1\", \"y\", \"t\", \"true\"].includes(value.toLowerCase());\r\n } // Check if element value changed\r\n\r\n function valueChanged(fobj, infix, fld, bool) {\r\n var nelm = getElements(\"x\" + infix + \"_\" + fld, fobj);\r\n var oelm = getElement(\"o\" + infix + \"_\" + fld, fobj); // Hidden element\r\n\r\n var fnelm = getElement(\"fn_x\" + infix + \"_\" + fld, fobj); // Hidden element\r\n\r\n if ((nelm == null ? void 0 : nelm.type) == \"hidden\" && !oelm) // For example, detail key\r\n return false;\r\n if (!oelm && (!nelm || Array.isArray(nelm) && nelm.length == 0)) return false;\r\n\r\n var getValue = obj => getOptionValues(obj).join();\r\n\r\n if (oelm && nelm) {\r\n if (bool) {\r\n if (convertToBool(getValue(oelm)) === convertToBool(getValue(nelm))) return false;\r\n } else {\r\n var oldvalue = getValue(oelm);\r\n var newvalue = fnelm ? getValue(fnelm) : getValue(nelm);\r\n if (oldvalue == newvalue) return false;\r\n }\r\n }\r\n\r\n return true;\r\n } // Set language\r\n\r\n function setLanguage(el) {\r\n var $el = $__default[\"default\"](el),\r\n val = $el.val() || $el.data(\"language\");\r\n if (!val) return false;\r\n currentUrl.searchParams.set(\"language\", val);\r\n window.location = sanitizeUrl(currentUrl.toString());\r\n return false;\r\n }\r\n /**\r\n * Submit action\r\n *\r\n * @param {MouseEvent} e - Mouse event\r\n * @param {Object} args - Arguments\r\n * @param {HTMLElement} args.f - HTML form (default is the form of the source element) (for backward compatibility only)\r\n * @param {string} args.url - URL to which the request is sent (default is current page) (for backward compatibility only)\r\n * @param {Object} args.key - Key as object (for single record only)\r\n * @param {string|Object} args.msg - Message or Swal config\r\n * @param {string} args.action - Custom action name\r\n * @param {string} args.select - \"single\"|\"s\" (single record) or \"multiple\"|\"m\" (multiple records, default)\r\n * @param {string} args.method - \"ajax\"|\"a\" (Ajax by HTTP POST) or \"post\"|\"p\" (HTTP POST by HTML form, default)\r\n * @param {Object} args.data - Object of user data that is sent to the server\r\n * @param {string|callback|Object} success - Function to be called if the request succeeds, or settings for jQuery.ajax() (for Ajax only)\r\n * @returns\r\n */\r\n\r\n function submitAction(e, args) {\r\n var _window$msg;\r\n\r\n var el = e.currentTarget,\r\n f = args.f || el.form || el.closest(\"form\"),\r\n $f = $__default[\"default\"](f),\r\n key = args.key,\r\n action = args.action,\r\n url = args.url || currentPage(),\r\n msg = args.msg,\r\n data = args.data,\r\n success = args.success,\r\n isPost = !args.method || sameText(args.method[0], \"p\"),\r\n isMultiple = !args.select && !args.key || args.select && sameText(args.select[0], \"m\");\r\n\r\n if ((isMultiple || isPost) && !f) {\r\n _alert(ew.language.phrase(\"NoHtmlForm\"));\r\n\r\n return false;\r\n }\r\n\r\n if (isMultiple && !keySelected(f)) {\r\n _alert(ew.language.phrase(\"NoRecordSelected\"));\r\n\r\n return false;\r\n }\r\n\r\n var _success = function (result) {\r\n showMessage(result);\r\n };\r\n\r\n var _submit = function (value) {\r\n if (isPost && f) {\r\n // Post back by form\r\n if (action) // Action\r\n $__default[\"default\"](\"\").attr({\r\n type: \"hidden\",\r\n name: \"useraction\",\r\n value: action\r\n }).appendTo($f);\r\n if (!$__default[\"default\"].isUndefined(value)) $__default[\"default\"](\"\").attr({\r\n type: \"hidden\",\r\n name: \"actionvalue\",\r\n value: value\r\n }).appendTo($f);\r\n\r\n if ($__default[\"default\"].isObject(data)) {\r\n // User data\r\n for (var k in data) {\r\n var $input = $f.find(\"input[type=hidden][name='\" + k + \"']\");\r\n if ($input[0]) $input.val(data[k]);else $__default[\"default\"](\"\").attr({\r\n type: \"hidden\",\r\n name: k,\r\n value: data[k]\r\n }).appendTo($f);\r\n }\r\n }\r\n\r\n if (!isMultiple && $__default[\"default\"].isObject(key)) {\r\n // Key\r\n for (var k in key) $__default[\"default\"](\"\").attr({\r\n type: \"hidden\",\r\n name: k,\r\n value: key[k]\r\n }).appendTo($f);\r\n }\r\n\r\n $f.prop({\r\n action: url,\r\n method: \"post\"\r\n }).trigger(\"submit\"); // if (action) // Action\r\n // $f.find(\"input[type=hidden][name=useraction]\").remove(); // Remove the \"useraction\" element\r\n } else {\r\n // Ajax\r\n data = $__default[\"default\"].isObject(data) ? $__default[\"default\"].param(data) : $__default[\"default\"].isString(data) ? data : \"\"; // User data\r\n\r\n if (action) data += \"&useraction=\" + action + \"&ajax=\" + action; // Action\r\n\r\n if (!$__default[\"default\"].isUndefined(value)) data += \"&actionvalue=\" + encodeURIComponent(value); // User input value\r\n\r\n if (isMultiple) // Multiple records\r\n data += \"&\" + $f.find(\"input[name='key_m[]']:checked\").serialize(); // Keys\r\n else if (key) // Single record\r\n data += \"&\" + ($__default[\"default\"].isObject(key) ? $__default[\"default\"].param(key) : key); // Key\r\n\r\n if (success && $__default[\"default\"].isString(success)) success = window[success];\r\n\r\n if (isFunction$2(success)) {\r\n $__default[\"default\"].post(url, data, success);\r\n } else if ($__default[\"default\"].isObject(success)) {\r\n // \"success\" is Ajax settings\r\n success.data = data;\r\n success.method = success.method || \"POST\";\r\n success.success = success.success || _success;\r\n $__default[\"default\"].ajax(url, success);\r\n } else {\r\n $__default[\"default\"].post(url, data, _success);\r\n }\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 if (msg) {\r\n _prompt(msg, value => {\r\n if (value) _submit(value);\r\n });\r\n } else {\r\n _submit();\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Export with selected records and/or Custom Template\r\n *\r\n * @param {MouseEvent|HTMLFormElement} e - Event or HTML form\r\n * @param {string} url - Form action\r\n * @param {string} type - Export type\r\n * @param {boolean} custom - Using Custom Template\r\n * @param {boolean} sel - Selected records only\r\n * @param {HTMLFormElement} fobj - email form object\r\n * @returns false\r\n */\r\n\r\n function _export(e, url, type, custom, sel, fobj) {\r\n var f = e.currentTarget.form;\r\n if (!f) return false;\r\n var $f = $__default[\"default\"](f),\r\n target = $f.attr(\"target\"),\r\n action = $f.attr(\"action\"),\r\n cb = sel && f.querySelector(\"input[type=checkbox][name='key_m[]']\");\r\n\r\n if (cb && !keySelected(f)) {\r\n _alert(ew.language.phrase(\"NoRecordSelected\"));\r\n\r\n return false;\r\n }\r\n\r\n if (custom) {\r\n // Use Custom Template\r\n $__default[\"default\"](\"iframe.ew-export\").remove();\r\n if (type == \"email\" && fobj) url += \"&\" + $__default[\"default\"](fobj).serialize().replace(/&export=email/, \"\"); // Remove duplicate export=email\r\n\r\n if (cb) {\r\n $__default[\"default\"](\"\").attr(\"name\", \"ew-export-frame\").addClass(\"ew-export d-none\").appendTo($body);\r\n\r\n try {\r\n $f.append($__default[\"default\"](\"\").attr({\r\n name: \"custom\",\r\n value: \"1\"\r\n })).attr({\r\n action: url,\r\n target: \"ew-export-frame\"\r\n }).find(\"input[name=exporttype]\").val(type).end().trigger(\"submit\");\r\n } finally {\r\n // Reset\r\n $f.attr({\r\n \"target\": target || \"\",\r\n \"action\": action\r\n }).find(\"input[name=custom]\").remove();\r\n }\r\n } else {\r\n $__default[\"default\"](\"\").attr({\r\n name: \"ew-export-frame\",\r\n src: url\r\n }).addClass(\"ew-export d-none\").appendTo($body);\r\n }\r\n } else {\r\n // No Custom Template\r\n $f.find(\"input[name=exporttype]\").val(type);\r\n if ([\"xml\", \"print\"].includes(type)) $f.trigger(\"submit\"); // Submit the form directly\r\n else fileDownload(action, $f.serialize());\r\n }\r\n\r\n return false;\r\n }\r\n /**\r\n * Remove spaces\r\n * @param {string} value - Value\r\n * @returns {string}\r\n */\r\n\r\n function removeSpaces(value) {\r\n return /^(<(p|br)\\/?>( )?(<\\/p>)?)?$/i.test(value.replace(/\\s/g, \"\")) ? \"\" : value;\r\n }\r\n /**\r\n * Check if hidden text area (HTML editor)\r\n * @param {HTMLElement|jQuery} el - HTML element or jQuery object\r\n * @returns {boolean}\r\n */\r\n\r\n function isHiddenTextArea(el) {\r\n var $el = $__default[\"default\"](el);\r\n return $el.is(\":hidden\") && $el.data(\"editor\");\r\n }\r\n /**\r\n * Check if modal lookup\r\n * @param {HTMLElement|jQuery} el - HTML element or jQuery object\r\n * @returns {boolean}\r\n */\r\n\r\n function isModalLookup(el) {\r\n var _el$dataset;\r\n\r\n return el == null ? void 0 : (_el$dataset = el.dataset) == null ? void 0 : _el$dataset.modalLookup;\r\n }\r\n /**\r\n * Check if filter\r\n * @param {HTMLElement|jQuery} el - HTML element or jQuery object\r\n * @returns {boolean}\r\n */\r\n\r\n function isFilter(el) {\r\n var _el$dataset2;\r\n\r\n return el == null ? void 0 : (_el$dataset2 = el.dataset) == null ? void 0 : _el$dataset2.filter;\r\n }\r\n /**\r\n * Check if hidden textbox (Auto-Suggest)\r\n * @param {HTMLElement|jQuery} el - HTML element or jQuery object\r\n * @returns {boolean}\r\n */\r\n\r\n function isAutoSuggest(el) {\r\n var $el = $__default[\"default\"](el);\r\n return $el.is(\":hidden\") && $el.data(\"autosuggest\");\r\n }\r\n /**\r\n * Check if textbox\r\n * @param {HTMLElement|jQuery} el - HTML element or jQuery object\r\n * @returns {boolean}\r\n */\r\n\r\n function isTextbox(el) {\r\n var $el = $__default[\"default\"](el);\r\n return $el.is(\"input[type!=checkbox][type!=radio]\") && !isAutoSuggest($el);\r\n }\r\n /**\r\n * Clear error message\r\n * @param {HTMLElement|HTMLElement[]|jQuery} el - HTML element(s) or jQuery\r\n */\r\n\r\n function clearError(el) {\r\n if (el.jquery) {\r\n // el is jQuery object\r\n let typ = el.attr(\"type\");\r\n el = typ == \"checkbox\" || typ == \"radio\" ? el.get() : el[0];\r\n }\r\n\r\n $__default[\"default\"](el).closest(fieldContainerSelector).find(\".invalid-feedback\").html(\"\");\r\n }\r\n /**\r\n * Show error message\r\n * @param {Form} frm Form object\r\n * @param {HTMLElement|HTMLElement[]|jQuery} el - HTML element(s) or jQuery\r\n * @param {string} msg - Error message\r\n * @param {boolean} focus - Set focus\r\n */\r\n\r\n function onError(frm, el, msg, focus) {\r\n if (el.jquery) {\r\n // el is jQuery object\r\n let typ = el.attr(\"type\");\r\n el = typ == \"checkbox\" || typ == \"radio\" ? el.get() : el[0];\r\n } else if (el instanceof Field) {\r\n // el is Field object\r\n el = el.element;\r\n }\r\n\r\n $__default[\"default\"](el).closest(fieldContainerSelector).find(\".invalid-feedback\").append(\"\" + msg + \"\");\r\n if (focus) setFocus(el);\r\n frm == null ? void 0 : frm.makeVisible(el);\r\n return false;\r\n }\r\n /**\r\n * Set focus\r\n * @param {HTMLElement|HTMLElement[]} obj - HTML element(s)\r\n * @param {Object} options - Focus options\r\n */\r\n\r\n function setFocus(obj, options) {\r\n if (!obj) return;\r\n var $obj = $__default[\"default\"](obj);\r\n if (isHidden($obj)) return;\r\n\r\n if (isHiddenTextArea(obj)) {\r\n // HTML editor\r\n return $obj.data(\"editor\").focus();\r\n } else if (!obj.options && obj.length) {\r\n // Radio/Checkbox list\r\n obj = $obj[0];\r\n } else if (isAutoSuggest(obj)) {\r\n // Auto-Suggest\r\n obj = obj.input;\r\n }\r\n\r\n obj.focus(options);\r\n }\r\n /**\r\n * Set invalid\r\n * @param {HTMLElement|HTMLElement[]} obj - HTML element(s)\r\n */\r\n\r\n function setInvalid(obj) {\r\n if (!obj) return;\r\n let $obj = $__default[\"default\"](obj);\r\n if (isHidden($obj)) return;\r\n if (!obj.options && obj.length) // Radio/Checkbox list\r\n obj = $obj[0];\r\n\r\n let $p = $obj.closest(fieldContainerSelector),\r\n reset = () => $p.find(\".is-invalid\").removeClass(\"is-invalid\");\r\n\r\n if (isAutoSuggest(obj)) {\r\n $p.find(\".ew-auto-suggest\").removeClass(\"is-valid\").addClass(\"is-invalid\").one(\"click keydown\", reset);\r\n } else if (isHiddenTextArea(obj)) {\r\n $obj.removeClass(\"is-valid\").addClass(\"is-invalid\");\r\n $obj.data(\"editor\").instance.once(\"change\", reset);\r\n } else if (isModalLookup(obj)) {\r\n $obj.removeClass(\"is-valid\").addClass(\"is-invalid\").one(\"select2:open\", reset);\r\n } else {\r\n if (obj.type == \"checkbox\" || obj.type == \"radio\") {\r\n $obj.removeClass(\"is-valid\").addClass(\"is-invalid\").one(\"click keydown\", reset);\r\n } else {\r\n $obj.removeClass(\"is-valid\").addClass(\"is-invalid\").parent().one(ew.MOBILE_DETECT.version(\"Safari\") && !ew.MOBILE_DETECT.version(\"Chrome\") ? \"change\" : \"click\", reset); // \"change\" event for Safari\r\n\r\n $obj.closest(\".input-group\").removeClass(\"is-valid\").addClass(\"is-invalid\");\r\n }\r\n }\r\n }\r\n /**\r\n * Set valid\r\n * @param {HTMLElement|HTMLElement[]} obj - HTML element(s)\r\n */\r\n\r\n function setValid(obj) {\r\n if (!obj) return;\r\n var $obj = $__default[\"default\"](obj);\r\n if (isHidden($obj)) return;\r\n if (!obj.options && obj.length) // Radio/Checkbox list\r\n obj = $obj[0];\r\n var $p = $obj.closest(fieldContainerSelector);\r\n\r\n if (isAutoSuggest(obj)) {\r\n $p.find(\".ew-auto-suggest\").removeClass(\"is-invalid\").addClass(\"is-valid\").one(\"click keydown\", function () {\r\n $p.find(\".is-valid\").removeClass(\"is-valid\");\r\n });\r\n } else {\r\n if (obj.type == \"checkbox\" || obj.type == \"radio\") {\r\n $obj.removeClass(\"is-invalid\").addClass(\"is-valid\").one(\"click keydown\", function () {\r\n $p.find(\".is-valid\").removeClass(\"is-valid\");\r\n });\r\n } else {\r\n $obj.removeClass(\"is-invalid\").addClass(\"is-valid\").parent().one(\"click keydown\", function () {\r\n $p.find(\".is-valid\").removeClass(\"is-valid\");\r\n });\r\n $obj.closest(\".input-group\").removeClass(\"is-invalid\").addClass(\"is-valid\");\r\n }\r\n }\r\n } // Check if object has value\r\n\r\n function hasValue(obj) {\r\n return getOptionValues(obj).join(\"\") != \"\";\r\n } // Check if object value is a masked password\r\n\r\n function isMaskedPassword(obj) {\r\n var val = $__default[\"default\"](obj).val();\r\n return val == null ? void 0 : val.match(/^\\*+$/);\r\n } // Sort by field\r\n\r\n function sort(e, url, type) {\r\n if (e.shiftKey && !e.ctrlKey) url = url.split(\"?\")[0] + \"?cmd=resetsort\";else if (type == 2 && e.ctrlKey) url += \"&ctrl=1\";\r\n window.location = sanitizeUrl(url);\r\n return true;\r\n } // Open table header filter by field\r\n\r\n function filter(e) {\r\n let data = e.currentTarget.dataset;\r\n $__default[\"default\"](\"select[data-select2-id='f\" + data.table + \"srch_\" + data.field + \"']\").select2(\"open\");\r\n } // Confirm Delete Message\r\n\r\n function confirmDelete(el) {\r\n clickDelete(el);\r\n\r\n _prompt(ew.language.phrase(\"DeleteConfirmMsg\"), result => {\r\n result && el.href ? window.location = sanitizeUrl(el.href) : clearDelete(el);\r\n });\r\n\r\n return false;\r\n } // Check if any key selected // PHP\r\n\r\n function keySelected(f) {\r\n return $__default[\"default\"](f).find(\"input[type=checkbox][name='key_m[]']:checked\", f).length > 0;\r\n } // Select all keys\r\n\r\n function selectAllKeys(cb) {\r\n selectAll(cb);\r\n var tbl = $__default[\"default\"](cb).closest(\".ew-table\")[0];\r\n if (!tbl) return;\r\n $__default[\"default\"](tbl.tBodies).each(function () {\r\n $__default[\"default\"](this.rows).each(function (i, r) {\r\n var $r = $__default[\"default\"](r);\r\n if ($r.is(\":not(.ew-template):not(.ew-table-preview-row)\")) $r.toggleClass(\"table-active ew-table-selected-row\", cb.checked).triggerHandler(\"change\");\r\n });\r\n });\r\n } // Select all related checkboxes in the form\r\n\r\n function selectAll(cb) {\r\n if (!cb || !cb.form) return;\r\n $__default[\"default\"](cb.form.elements).filter(\"input[type=checkbox][name^=\" + cb.name + \"_], [type=checkbox][name=\" + cb.name + \"]\").not(cb).not(\":disabled\").prop(\"checked\", cb.checked);\r\n } // Update selected checkbox\r\n\r\n function updateSelected(f) {\r\n return $__default[\"default\"](f).find(\"input[type=checkbox][name^=u_]:checked,input:hidden[name^=u_][value=1]\").length > 0;\r\n } // Clear selected rows color\r\n\r\n function clearSelected(tbl) {\r\n let rowIndexes = $__default[\"default\"](tbl).find(\"input[type=checkbox][name='key_m[]']:checked\").closest(\"[data-rowindex]\").map((i, r) => r.dataset.rowindex).get();\r\n $__default[\"default\"](tbl == null ? void 0 : tbl.rows).filter((i, r) => r.classList.contains(\"table-active\") && !rowIndexes.includes(r.dataset.rowindex)).removeClass(\"table-active ew-table-selected-row\").triggerHandler(\"change\");\r\n } // Clear all row delete status\r\n\r\n function clearDelete(el) {\r\n var $el = $__default[\"default\"](el),\r\n tbl = $el.closest(\".ew-table\")[0];\r\n if (!tbl) return;\r\n var $tr = $el.closest(\".ew-table > tbody > tr\");\r\n $tr.siblings(\"[data-rowindex='\" + $tr.data(\"rowindex\") + \"']\").addBack().removeClass(\"table-active\").triggerHandler(\"change\");\r\n } // Click single delete link\r\n\r\n function clickDelete(el) {\r\n var $el = $__default[\"default\"](el),\r\n tbl = $el.closest(\".ew-table\")[0];\r\n if (!tbl) return;\r\n clearSelected(tbl);\r\n var $tr = $el.closest(\".ew-table > tbody > tr\");\r\n $tr.siblings(\"[data-rowindex='\" + $tr.data(\"rowindex\") + \"']\").addBack().addClass(\"table-active\").triggerHandler(\"change\");\r\n } // Select a row\r\n\r\n function selectKey(e) {\r\n var cb = e.target,\r\n $cb = $__default[\"default\"](cb),\r\n tbl = $cb.closest(\".ew-table\")[0];\r\n if (!tbl) return;\r\n clearSelected(tbl);\r\n var $tr = $cb.closest(\".ew-table > tbody > tr\");\r\n $tr.siblings(\"[data-rowindex='\" + $tr.data(\"rowindex\") + \"']\").addBack().each(function (i, r) {\r\n $__default[\"default\"](r).toggleClass(\"table-active ew-table-selected-row\", cb.checked).triggerHandler(\"change\");\r\n });\r\n e.stopPropagation();\r\n } // Setup table\r\n\r\n function setupTable(index, tbl, force) {\r\n var $tbl = $__default[\"default\"](tbl),\r\n $rows = $__default[\"default\"](tbl.rows);\r\n if (!tbl || !tbl.rows || !force && $tbl.data(\"isset\") || tbl.tBodies.length == 0) return; // Set selected row color\r\n\r\n var click = function (e) {\r\n var $this = $__default[\"default\"](this),\r\n $tbl = $this.closest(\".ew-table\"),\r\n tbl = $tbl[0],\r\n $target = $__default[\"default\"](e.target);\r\n if (!tbl || $target.hasClass(\"btn\") || $target.hasClass(\"ew-preview-btn\") || $target.is(\":input\")) return;\r\n clearSelected(tbl); // Clear all other selected rows\r\n\r\n $this.siblings(\"[data-rowindex='\" + $this.data(\"rowindex\") + \"']\").addBack().toggleClass(\"table-active\").triggerHandler(\"change\");\r\n };\r\n\r\n var n = $rows.filter(\"[data-rowindex=1]\").length || $rows.filter(\"[data-rowindex=0]\").length || 1; // Alternate color every n rows\r\n\r\n var rows = $rows.filter(\":not(.ew-template)\").each(function () {\r\n $__default[\"default\"](this.cells).removeClass(\"ew-table-last-row\").last().addClass(\"ew-table-last-col\"); // Cell of last column\r\n }).get();\r\n var div = $tbl.parentsUntil(\".ew-grid\", \".\" + ew.RESPONSIVE_TABLE_CLASS)[0];\r\n\r\n if (rows.length) {\r\n for (var i = 1; i <= n; i++) {\r\n var r = rows[rows.length - i]; // Last rows\r\n\r\n $__default[\"default\"](r.cells).each(function () {\r\n if (this.rowSpan == i) // Cell of last row\r\n $__default[\"default\"](this).addClass(\"ew-table-last-row\").toggleClass(\"ew-table-border-bottom\", (div == null ? void 0 : div.clientHeight) > tbl.offsetHeight);\r\n });\r\n }\r\n }\r\n\r\n var form = $tbl.closest(\"form\")[0];\r\n var attach = form && $__default[\"default\"](form.elements).filter(\"input#action:not([value^=grid])\").length > 0;\r\n $__default[\"default\"](tbl.tBodies[tbl.tBodies.length - 1].rows) // Use last TBODY (avoid Opera bug)\r\n .filter(\":not(.ew-template):not(.ew-table-preview-row)\").each(function () {\r\n var $r = $__default[\"default\"](this);\r\n if (attach && !$r.data(\"isset\")) $r.on(\"click\", click).data(\"isset\", true);\r\n });\r\n setupGrid(index, $tbl.closest(\".ew-grid\")[0], force);\r\n $tbl.data(\"isset\", true);\r\n } // Setup grid\r\n\r\n function setupGrid(index, grid, force) {\r\n var $grid = $__default[\"default\"](grid);\r\n if (!grid || !force && $grid.data(\"isset\")) return;\r\n var rowcnt = $grid.find(\"table.ew-table > tbody\").first().children(\"tr:not(.ew-table-preview-row, .ew-template)\").length;\r\n if (rowcnt == 0 && !$grid.find(\".ew-grid-upper-panel, .ew-grid-lower-panel\")[0]) $grid.hide();\r\n\r\n if ($grid.find(\".ew-grid-middle-panel:visible\").hasClass(ew.RESPONSIVE_TABLE_CLASS) && $grid.width() > $__default[\"default\"](\".content\").width()) {\r\n $grid.addClass(\"d-flex\");\r\n $grid.closest(\".ew-detail-pages\").addClass(\"d-block\");\r\n $grid.closest(\".ew-form\").addClass(\"w-100\");\r\n if (ew.USE_OVERLAY_SCROLLBARS) $grid.find(\".ew-grid-middle-panel:not(.ew-preview-middle-panel)\").overlayScrollbars(ew.overlayScrollbarsOptions);\r\n }\r\n\r\n $grid.data(\"isset\", true);\r\n } // Add a row to grid\r\n\r\n function addGridRow(el) {\r\n var _bootstrap$Tooltip$ge2;\r\n\r\n var $grid = $__default[\"default\"](el).closest(\".ew-grid\"),\r\n $tbl = $grid.find(\"table.ew-table\").last(),\r\n $p = $tbl.parent(\"div\"),\r\n $tpl = $tbl.find(\"tr.ew-template\");\r\n if (!el || !$grid[0] || !$tbl[0] || !$tpl[0]) return false;\r\n var $lastrow = $__default[\"default\"]($tbl[0].rows).last();\r\n $tbl.find(\"td.ew-table-last-row\").removeClass(\"ew-table-last-row\");\r\n var $row = $tpl.clone(true, true).removeClass(\"ew-template\");\r\n var $form = $grid.find(\"div.ew-form[id^=f][id$=grid]\");\r\n if (!$form[0]) $form = $grid.find(\"form.ew-form[id^=f][id$=list]\");\r\n var suffix = $form.is(\"div\") ? \"_\" + $form.attr(\"id\") : \"\";\r\n var $elkeycnt = $form.find(\"#key_count\" + suffix);\r\n var keycnt = parseInt($elkeycnt.val(), 10) + 1;\r\n $row.attr({\r\n \"id\": \"r\" + keycnt + $row.attr(\"id\").substring(2),\r\n \"data-rowindex\": keycnt\r\n });\r\n var $els = $tpl.find(\"script:contains('$rowindex$')\"); // Get scripts with rowindex\r\n\r\n $row.children(\"td\").each(function () {\r\n $__default[\"default\"](this).find(\"*\").each(function () {\r\n $__default[\"default\"].each(this.attributes, function (i, attr) {\r\n attr.value = attr.value.replace(/\\$rowindex\\$/g, keycnt); // Replace row index\r\n });\r\n });\r\n });\r\n var $btn = $row.find(\".ew-icon\").closest(\"a, button\");\r\n (_bootstrap$Tooltip$ge2 = bootstrap.Tooltip.getInstance($btn[0])) == null ? void 0 : _bootstrap$Tooltip$ge2.dispose();\r\n $btn.tooltip({\r\n container: \"body\",\r\n placement: \"bottom\",\r\n trigger: \"hover\",\r\n sanitizeFn: ew.sanitizeFn\r\n });\r\n $elkeycnt.val(keycnt).after($__default[\"default\"](\"\").attr({\r\n type: \"hidden\",\r\n id: \"k\" + keycnt + \"_action\" + suffix,\r\n name: \"k\" + keycnt + \"_action\" + suffix,\r\n value: \"insert\"\r\n }));\r\n $lastrow.after($row);\r\n $els.each(function () {\r\n addScript(this.text.replace(/\\$rowindex\\$/g, keycnt));\r\n });\r\n var frm = $form.data(\"form\");\r\n frm == null ? void 0 : frm.initEditors();\r\n frm == null ? void 0 : frm.initUpload();\r\n setupTable(-1, $tbl[0], true);\r\n $p.scrollTop($p[0].scrollHeight);\r\n return false;\r\n } // Delete a row from grid\r\n\r\n function deleteGridRow(el, infix) {\r\n var _bootstrap$Tooltip$ge3;\r\n\r\n (_bootstrap$Tooltip$ge3 = bootstrap.Tooltip.getInstance(el)) == null ? void 0 : _bootstrap$Tooltip$ge3.dispose();\r\n var $el = $__default[\"default\"](el),\r\n $grid = $el.closest(\".ew-grid, .ew-multi-column-grid\"),\r\n $row = $el.closest(\"tr, div[data-rowindex]\"),\r\n $tbl = $row.closest(\".ew-table\");\r\n if (!el || !$grid[0] || !$row[0]) return false;\r\n var rowidx = parseInt($row.data(\"rowindex\"), 10);\r\n var $form = $grid.find(\"div.ew-form[id^=f][id$=grid]\");\r\n if (!$form[0]) $form = $grid.find(\"form.ew-form[id^=f][id$=list]\");\r\n var frm = $form.data(\"form\");\r\n if (!$form[0] || !frm) return false;\r\n var suffix = $form.is(\"div\") ? \"_\" + $form.attr(\"id\") : \"\";\r\n var keycntname = \"#key_count\" + suffix;\r\n\r\n var _delete = function () {\r\n $row.remove();\r\n if ($grid.is(\".ew-grid\")) setupTable(-1, $tbl[0], true);\r\n\r\n if (rowidx > 0) {\r\n var $keyact = $form.find(\"#k\" + rowidx + \"_action\" + suffix);\r\n\r\n if ($keyact[0]) {\r\n $keyact.val($keyact.val() == \"insert\" ? \"insertdelete\" : \"delete\");\r\n } else {\r\n $form.find(keycntname).after($__default[\"default\"](\"\").attr({\r\n type: \"hidden\",\r\n id: \"k\" + rowidx + \"_action\" + suffix,\r\n name: \"k\" + rowidx + \"_action\" + suffix,\r\n value: \"delete\"\r\n }));\r\n }\r\n }\r\n };\r\n\r\n if (isFunction$2(frm.emptyRow) && frm.emptyRow(infix)) {\r\n // Empty row\r\n _delete();\r\n } else {\r\n // Confirm\r\n _prompt(ew.language.phrase(\"DeleteConfirmMsg\"), result => {\r\n if (result) _delete();\r\n });\r\n }\r\n\r\n return false;\r\n } // HTML encode text\r\n\r\n function htmlEncode(text) {\r\n var str = String(text);\r\n return str.replace(/&/g, '&').replace(/\\\"/g, '"').replace(//g, '>');\r\n } // HTML decode text\r\n\r\n function htmlDecode(text) {\r\n var str = String(text);\r\n return str.replace(/&/g, '&').replace(/"/g, '\"').replace(/</g, '<').replace(/>/g, '>');\r\n } // Get form element(s) as single element or array of radio/checkbox\r\n\r\n function getElements(el, root) {\r\n var selector;\r\n\r\n if ($__default[\"default\"].isObject(el) && el.dataset) {\r\n // HTML element (e.g. radio/checkbox)\r\n selector = \"[data-table='\" + el.dataset.table + \"'][data-field='\" + el.dataset.field + \"']:not([name^=o]):not([name^='x$'])\";\r\n } else if ($__default[\"default\"].isString(el)) {\r\n selector = \"[name='\" + el + \"']\";\r\n var ar = el.split(\" \"); // Check if \"#id name\"\r\n\r\n if (ar.length == 2) selector = \"[data-table='\" + ar[0] + \"'][data-field='\" + getId(ar[1]) + \"']:not([name^=o]):not([name^='x$'])\"; // Remove []\r\n }\r\n\r\n var root = !$__default[\"default\"].isString(root) ? root : /^#/.test(root) ? root : \"#\" + root;\r\n selector = \"input\" + selector + \",select\" + selector + \",textarea\" + selector + \",button\" + selector + \",selection-list\" + selector;\r\n var $els = root ? $__default[\"default\"](root).find(selector) : $__default[\"default\"](selector);\r\n if ($els.length == 1 && $els.is(\":not([type=checkbox]):not([type=radio])\")) return $els[0];\r\n if ($els.length == 2 && $els.eq(0).is(\"selection-list\") && $els.eq(1).is(\"input[type=hidden]\")) // Polyfill for the ElementInternals\r\n return $els[0];\r\n return $els.get();\r\n } // Get first element (not necessarily form element)\r\n\r\n function getElement(name, root) {\r\n var root = $__default[\"default\"].isString(root) ? \"#\" + root : root,\r\n selector = \"#\" + name.replace(/([\\$\\[\\]])/g, \"\\\\$1\") + \",[name='\" + name + \"']\";\r\n return root ? $__default[\"default\"](root).find(selector)[0] : $__default[\"default\"](selector).first()[0];\r\n } // Get ancestor by function\r\n\r\n function getAncestorBy(node, fn) {\r\n while (node = node.parentNode) {\r\n var _node;\r\n\r\n if (((_node = node) == null ? void 0 : _node.nodeType) == 1 && (!fn || fn(node))) return node;\r\n }\r\n\r\n return null;\r\n } // Check if an element is hidden\r\n\r\n function isHidden(el) {\r\n var $el = $__default[\"default\"](el);\r\n return $el.css(\"display\") == \"none\" && !$el.is(\"selection-list\") && !$el.closest(\".dropdown-menu\")[0] && !isModalLookup(el) && !isAutoSuggest(el) && !isHiddenTextArea(el) || getAncestorBy(el, node => node.style.display == \"none\" && !node.classList.contains(\"tab-pane\") && !node.classList.contains(\"collapse\")) != null;\r\n } // Check if same text\r\n\r\n function sameText(o1, o2) {\r\n return String(o1).toLowerCase() == String(o2).toLowerCase();\r\n } // Check if same string\r\n\r\n function sameString(o1, o2) {\r\n return String(o1) == String(o2);\r\n } // Get element value\r\n\r\n function getValue(el, form) {\r\n if (!el) return \"\";\r\n let obj;\r\n\r\n if ($__default[\"default\"].isString(el)) {\r\n let ar = el.split(\" \");\r\n\r\n if (ar.length == 2) {\r\n // Parent field in master table\r\n obj = getElements(el);\r\n } else {\r\n obj = getElements(el, form);\r\n }\r\n } else if (el.type == \"radio\" || el.type == \"checkbox\") {\r\n // Single radio/checkbox\r\n obj = getElements(el);\r\n } else {\r\n obj = el;\r\n }\r\n\r\n if (obj.options) {\r\n // Selection list\r\n if (obj.list) {\r\n let val = obj.values;\r\n return obj.multiple ? val : val[0] || \"\";\r\n } else {\r\n let val = Array.prototype.filter.call(obj.options, option => option.selected && option.value !== \"\").map(option => option.value);\r\n return obj.type == \"select-multiple\" ? val : val[0] || \"\";\r\n }\r\n } else if ($__default[\"default\"].isNumber(obj.length)) {\r\n // Radio/Checkbox list, or element not found\r\n let val = $__default[\"default\"](obj).filter(\":checked\").map(function () {\r\n return this.value;\r\n }).get();\r\n return obj.length == 1 ? val[0] : val;\r\n } else if (ew.isHiddenTextArea(obj)) {\r\n $__default[\"default\"](obj).data(\"editor\").save();\r\n return obj.value;\r\n } else {\r\n // text/hidden\r\n let data = $__default[\"default\"](obj).data();\r\n if (data.lookup && data.multiple) // Modal-Lookup\r\n return obj.value.split(ew.MULTIPLE_OPTION_SEPARATOR);else return obj.value;\r\n }\r\n } // Get existing selected values as an array\r\n\r\n function getOptionValues(el, form) {\r\n var obj;\r\n\r\n if ($__default[\"default\"].isString(el)) {\r\n var ar = el.split(\" \");\r\n\r\n if (ar.length == 2) {\r\n // Parent field in master table\r\n obj = getElements(el);\r\n } else {\r\n obj = getElements(el, form);\r\n }\r\n } else if (el.type == \"radio\" || el.type == \"checkbox\") {\r\n // Single radio/checkbox\r\n obj = getElements(el);\r\n } else {\r\n obj = el;\r\n }\r\n\r\n if (obj.options) {\r\n // Selection list\r\n if (obj.list) return obj.values;else return Array.prototype.filter.call(obj.options, option => option.selected && option.value !== \"\").map(option => option.value);\r\n } else if ($__default[\"default\"].isNumber(obj.length)) {\r\n // Radio/Checkbox list, or element not found\r\n return $__default[\"default\"](obj).filter(\":checked\").map(function () {\r\n return this.value;\r\n }).get();\r\n } else if (ew.isHiddenTextArea(obj)) {\r\n $__default[\"default\"](obj).data(\"editor\").save();\r\n return [obj.value];\r\n } else {\r\n // text/hidden\r\n var data = $__default[\"default\"](obj).data();\r\n if (data.lookup && data.multiple) // Modal-Lookup\r\n return obj.value.split(ew.MULTIPLE_OPTION_SEPARATOR);else return [obj.value];\r\n }\r\n } // Get existing text of selected values as an array\r\n\r\n function getOptionTexts(el, form) {\r\n var obj;\r\n\r\n if ($__default[\"default\"].isString(el)) {\r\n var ar = el.split(\" \");\r\n\r\n if (ar.length == 2) {\r\n // Parent field in master table\r\n obj = getElements(el);\r\n } else {\r\n obj = getElements(el, form);\r\n }\r\n } else {\r\n obj = el;\r\n }\r\n\r\n if (isAutoSuggest(obj)) {\r\n // AutoSuggest (before obj.options)\r\n return [obj.input.value];\r\n } else if (obj.options) {\r\n // Selection list\r\n return Array.prototype.filter.call(obj.options, option => option.selected && option.value !== \"\").map(option => option.text);\r\n } else if ($__default[\"default\"].isNumber(obj.length)) {\r\n // Radio/Checkbox list, or element not found\r\n return $__default[\"default\"](obj).filter(\":checked\").map(function () {\r\n return $__default[\"default\"](this).parent().text();\r\n }).get();\r\n } else if (ew.isHiddenTextArea(obj)) {\r\n $__default[\"default\"](obj).data(\"editor\").save();\r\n return [obj.value];\r\n } else {\r\n return [obj.value];\r\n }\r\n } // Clear existing options\r\n\r\n function clearOptions(obj) {\r\n if (obj.options) {\r\n // Selection list\r\n var lo = obj.type == \"select-multiple\" || // multiple\r\n obj.hasAttribute(\"data-dropdown\") || // dropdown\r\n convertToBool(obj.getAttribute(\"data-pleaseselect\")) === false || // data-pleaseselect=\"false\"\r\n obj.length > 0 && obj.options[0].value != \"\" // non-empty first element\r\n ? 0 : 1;\r\n\r\n if (obj.list) {\r\n obj.removeAll();\r\n } else {\r\n for (var i = obj.length - 1; i >= lo; i--) obj.remove(i);\r\n }\r\n\r\n if (isAutoSuggest(obj)) {\r\n obj.input.value = \"\";\r\n obj.value = \"\";\r\n }\r\n }\r\n }\r\n /**\r\n * Get the name or id of an element\r\n *\r\n * @param {HTMLElement} el - HTML element\r\n * @param {boolean} [remove=true] - Remove square brackets\r\n * @returns\r\n */\r\n\r\n function getId(el, remove) {\r\n var id = $__default[\"default\"].isString(el) ? el : $__default[\"default\"](el).attr(\"name\") || $__default[\"default\"](el).attr(\"id\"); // Use name first (id may have suffix)\r\n\r\n return remove !== false ? id.replace(/\\[\\]$/, \"\") : id;\r\n } // Get display value separator\r\n\r\n function valueSeparator(index, obj) {\r\n var sep = $__default[\"default\"](obj).data(\"value-separator\");\r\n return Array.isArray(sep) ? sep[index - 1] : sep || \", \";\r\n }\r\n /**\r\n * Get display value\r\n *\r\n * @param {Object} opt - Option being displayed\r\n * @param {HTMLElment} obj - HTML element\r\n * @returns {string} Display value\r\n */\r\n\r\n function displayValue(opt, obj) {\r\n var text = opt.df;\r\n\r\n for (var i = 2; i <= 4; i++) {\r\n if (opt[\"df\" + i] && opt[\"df\" + i] != \"\") {\r\n var sep = valueSeparator(i - 1, obj);\r\n if ($__default[\"default\"].isUndefined(sep)) break;\r\n if ($__default[\"default\"].isValue(text)) text += sep;\r\n text += opt[\"df\" + i];\r\n }\r\n }\r\n\r\n return text;\r\n }\r\n /**\r\n * Get HTML for a single option\r\n *\r\n * @param {*} val - Value of the option\r\n * @returns {string} HTML\r\n */\r\n\r\n function optionHtml(val) {\r\n return ew.OPTION_HTML_TEMPLATE.replace(/\\{value\\}/g, val);\r\n }\r\n /**\r\n * Get HTML for diplaying all options\r\n *\r\n * @param {string[]} options - Array of all options (HTML)\r\n * @param {number} max - Maximum number of options to show\r\n * @returns {string} HTML\r\n */\r\n\r\n function optionsHtml(options, max) {\r\n if (options.length > (max || ew.MAX_OPTION_COUNT)) {\r\n // More than max option count\r\n return ew.language.phrase(\"CountSelected\").replace(\"%s\", options.length);\r\n } else if (options.length) {\r\n // Some options\r\n var html = \"\";\r\n\r\n for (var i = 0; i < options.length; i++) html += optionHtml(options[i]);\r\n\r\n return html;\r\n } else {\r\n // No options\r\n return ew.language.phrase(\"PleaseSelect\");\r\n }\r\n }\r\n /**\r\n * Create new option\r\n *\r\n * @param {(HTMLElement|array)} obj - Selection list\r\n * @param {Object} opt - Object for the new option\r\n * @param {form} f - form object of obj\r\n * @returns\r\n */\r\n\r\n function newOption(obj, opt, f) {\r\n var frm = forms.get(f.id),\r\n id = getId(obj),\r\n list = frm.getList(id),\r\n value = opt.lf,\r\n item = {\r\n lf: opt.lf,\r\n df: opt.df,\r\n df2: opt.df2,\r\n df3: opt.df3,\r\n df4: opt.df4\r\n },\r\n text;\r\n\r\n if (list.template && !isAutoSuggest(obj)) {\r\n text = list.template.render(item, ew.jsRenderHelpers);\r\n } else {\r\n text = displayValue(opt, obj) || value;\r\n }\r\n\r\n var args = {\r\n \"data\": item,\r\n \"name\": id,\r\n \"form\": f.$element,\r\n \"value\": value,\r\n \"text\": text\r\n };\r\n\r\n if (obj.options) {\r\n // Selection list\r\n let option;\r\n\r\n if (obj.list) {\r\n option = new SelectionListOption(args.value, args.text);\r\n } else {\r\n option = document.createElement(\"option\");\r\n option.value = args.value;\r\n option.innerHTML = args.text;\r\n }\r\n\r\n args = { ...args,\r\n option\r\n };\r\n $document$1.trigger(\"newoption\", [args]); // Fire \"newoption\" event for selection list\r\n\r\n if (obj.list) {\r\n obj.add(args.option.value, args.option.text);\r\n } else {\r\n obj.add(args.option);\r\n }\r\n }\r\n\r\n return args.text;\r\n } // Select combobox option\r\n\r\n function selectOption(obj, values) {\r\n if (!obj || !values) return;\r\n var $obj = $__default[\"default\"](obj);\r\n\r\n if (Array.isArray(values)) {\r\n if (obj.options) {\r\n // Selection list\r\n if (obj.list) {\r\n obj.value = values;\r\n } else {\r\n var _obj$options$;\r\n\r\n $obj.val(values);\r\n if (obj.type == \"select-one\" && obj.selectedIndex == -1 && !((_obj$options$ = obj.options[0]) != null && _obj$options$.value)) obj.selectedIndex = 0; // Make sure an option is selected\r\n }\r\n\r\n if (isAutoSuggest(obj) && values.length == 1) {\r\n let opts = obj.options || [];\r\n\r\n for (let opt of opts) {\r\n if (opt.value == values[0]) {\r\n obj.value = opt.value;\r\n obj.input.value = opt.text;\r\n break;\r\n }\r\n }\r\n }\r\n } else if (obj.type) {\r\n obj.value = values.join(ew.MULTIPLE_OPTION_SEPARATOR);\r\n }\r\n } // Auto-select if only one option\r\n\r\n function isAutoSelect(el) {\r\n if (!$__default[\"default\"](el).data(\"autoselect\")) // data-autoselect=\"false\"\r\n return false;\r\n var form = getForm(el);\r\n\r\n if (form) {\r\n if (/s(ea)?rch$/.test(form.id)) // Search forms\r\n return false;\r\n var list = forms.get(form.id).getList(el.id);\r\n if ((list == null ? void 0 : list.parentFields.length) === 0) // No parent fields\r\n return false;\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (!isAutoSelect(obj)) return;\r\n\r\n if (obj.options) {\r\n // Selection List\r\n if (!obj.list && obj.type == \"select-one\" && obj.options.length == 2 && !obj.options[1].selected) {\r\n obj.options[1].selected = true;\r\n $obj.trigger(\"change\");\r\n } else if (obj.options.length == 1 && !obj.options[0].selected) {\r\n obj.options[0].selected = true;\r\n $obj.trigger(\"change\");\r\n }\r\n\r\n if (obj.list) obj.render();\r\n\r\n if (isAutoSuggest(obj)) {\r\n let opts = obj.options || [];\r\n\r\n if (opts.length == 1) {\r\n obj.value = opts[0].value;\r\n obj.input.value = opts[0].text;\r\n }\r\n }\r\n }\r\n } // Fetch API\r\n\r\n function _fetch(url, init) {\r\n var _init;\r\n\r\n (_init = init) != null ? _init : init = {};\r\n let apiUrl = getApiUrl(),\r\n isApi = url.startsWith(apiUrl); // Is API request\r\n\r\n if (isApi && ew.API_JWT_TOKEN && !ew.IS_WINDOWS_AUTHENTICATION) {\r\n // Do NOT set JWT authorization header if Windows Authentication\r\n init.headers = new Headers(init.headers || {});\r\n init.headers.set(ew.API_JWT_AUTHORIZATION_HEADER, \"Bearer \" + ew.API_JWT_TOKEN);\r\n }\r\n\r\n if (!init.method || init.method == \"GET\") {\r\n // GET\r\n let ar = url.split(\"?\"),\r\n params = new URLSearchParams(ar[1]);\r\n params.set(ew.TOKEN_NAME_KEY, ew.TOKEN_NAME); // Add token name // PHP\r\n\r\n params.set(ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN); // Add antiforgery token // PHP\r\n\r\n if (init.body instanceof FormData || $__default[\"default\"].isString(init.body) || $__default[\"default\"].isObject(init.body) || Array.isArray(init.body) && init.body.every(item => Array.isArray(item) && item.length == 2)) {\r\n // String, object or array of array\r\n let body = new URLSearchParams(init.body);\r\n body.forEach((value, key) => params.set(key, value));\r\n }\r\n\r\n ar[1] = params.toString();\r\n url = ar[0] + (ar[1] ? \"?\" + ar[1] : \"\");\r\n return fetch(url);\r\n } else {\r\n // POST\r\n if (init.body instanceof FormData) {\r\n // FormData\r\n init.body.set(ew.TOKEN_NAME_KEY, ew.TOKEN_NAME); // Add token name // PHP\r\n\r\n init.body.set(ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN); // Add antiforgery token // PHP\r\n } else if ($__default[\"default\"].isString(init.body) || $__default[\"default\"].isObject(init.body) || Array.isArray(init.body) && init.body.every(item => Array.isArray(item) && item.length == 2)) {\r\n // String, object or array of array\r\n init.body = new URLSearchParams(init.body);\r\n init.body.set(ew.TOKEN_NAME_KEY, ew.TOKEN_NAME); // Add token name // PHP\r\n\r\n init.body.set(ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN); // Add antiforgery token // PHP\r\n }\r\n\r\n return fetch(url, init);\r\n }\r\n }\r\n\r\n $document$1.ajaxSend(function (event, jqxhr, settings) {\r\n var url = settings.url,\r\n apiUrl = getApiUrl(),\r\n isApi = url.startsWith(apiUrl),\r\n // Is API request\r\n allowed = isApi || url.startsWith(ew.PATH_BASE) || url.startsWith(currentPage());\r\n\r\n if (!allowed && url.match(/^http/i)) {\r\n var objUrl = new URL(url);\r\n allowed = objUrl.hostname == currentUrl.hostname; // Same host name\r\n }\r\n\r\n if (allowed) {\r\n if (isApi && ew.API_JWT_TOKEN && !ew.IS_WINDOWS_AUTHENTICATION) // Do NOT set JWT authorization header if Windows Authentication\r\n jqxhr.setRequestHeader(ew.API_JWT_AUTHORIZATION_HEADER, \"Bearer \" + ew.API_JWT_TOKEN);\r\n\r\n if (settings.type == \"GET\" || settings.contentType == \"application/json\") {\r\n // GET or sending JSON data\r\n var ar = settings.url.split(\"?\"),\r\n params = new URLSearchParams(ar[1]);\r\n params.set(ew.TOKEN_NAME_KEY, ew.TOKEN_NAME); // Add token name // PHP\r\n\r\n params.set(ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN); // Add antiforgery token // PHP\r\n\r\n ar[1] = params.toString();\r\n settings.url = ar[0] + (ar[1] ? \"?\" + ar[1] : \"\");\r\n } else {\r\n // POST\r\n if (settings.data instanceof FormData) {\r\n // FormData\r\n settings.data.set(ew.TOKEN_NAME_KEY, ew.TOKEN_NAME); // Add token name // PHP\r\n\r\n settings.data.set(ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN); // Add antiforgery token // PHP\r\n } else {\r\n var params = new URLSearchParams(settings.data);\r\n params.set(ew.TOKEN_NAME_KEY, ew.TOKEN_NAME); // Add token name // PHP\r\n\r\n params.set(ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN); // Add antiforgery token // PHP\r\n\r\n settings.data = params.toString();\r\n }\r\n }\r\n }\r\n }); // Ajax start\r\n\r\n $document$1.ajaxStart(function () {\r\n $document$1.data(\"_ajax\", true);\r\n $__default[\"default\"](\"form.ew-form\").addClass(\"ew-wait\").each(function () {\r\n var frm = forms.get(this.id);\r\n\r\n if (frm) {\r\n if (!frm.multiPage || !frm.multiPage.lastPageSubmit) frm.disableForm();\r\n }\r\n });\r\n }); // Ajax stop (internal)\r\n\r\n function _ajaxStop() {\r\n $__default[\"default\"](\"form.ew-form.ew-wait\").removeClass(\"ew-wait\").each(function () {\r\n var frm = forms.get(this.id);\r\n\r\n if (frm) {\r\n if (!frm.multiPage || !frm.multiPage.lastPageSubmit) {\r\n frm.enableForm();\r\n }\r\n }\r\n });\r\n $document$1.data(\"_ajax\", false);\r\n } // Ajax stop/error\r\n\r\n $document$1.ajaxStop(_ajaxStop).ajaxError(_ajaxStop); // Execute JavaScript in HTML loaded by Ajax\r\n\r\n function executeScript(html, id) {\r\n let matches = html.replace(/[\\s\\S]*<\\/head>/, \"\").matchAll(/
' + ew.language.phrase(\"SessionWillExpire\") + '
\" + ew.language.phrase(\"Exporting\") + \"
\" + msg + \"