{"version":3,"names":["ew","devnull","bundleIdCache","bundleResultCache","bundleCallbackQueue","publish","bundleId","pathsNotFound","q","length","splice","executeCallbacks","args","depsNotFound","call","success","error","loadFile","path","callbackFn","numTries","e","doc","document","async","maxTries","numRetries","beforeCallbackFn","before","pathname","replace","pathStripped","test","createElement","rel","href","src","undefined","onload","onerror","onbeforeload","ev","result","type","as","defaultPrevented","tagName","head","appendChild","loadjs","paths","arg1","arg2","trim","loadFn","resolve","reject","fn","i","numWaiting","push","x","loadFiles","returnPromise","Promise","_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","t","r","toPrimitive","TypeError","String","Number","_defineProperties","enumerable","configurable","writable","Object","defineProperty","key","_createClass","_defineProperty","value","ready","deps","bundleIds","subscribe","done","reset","isDefined","Language","data","this","phrase","id","_this$data$id$toLower","toLowerCase","get","set","_setPrototypeOf","setPrototypeOf","bind","__proto__","_getPrototypeOf","getPrototypeOf","_isNativeReflectConstruct","Boolean","valueOf","Reflect","construct","_wrapNativeSuper","Map","Function","toString","indexOf","n","_isNativeFunction","has","Wrapper","apply","arguments","p","_construct","create","SelectionListOption","text","defaultSelected","_innerHTML","_value","_defaultSelected","_selectionList","_this$_selected","_selected","_this$_selectionList","render","SelectionList","_HTMLElement","_this","_internals","attachInternals","_proto","connectedCallback","getAttribute","values","multiple","split","MULTIPLE_OPTION_SEPARATOR","val","add","selected","option","addOption","selectionList","index","options","findIndex","opt","remove","removeAll","clear","getRandom","Math","floor","random","triggerChange","event","Event","view","window","bubbles","cancelable","dispatchEvent","isInvalid","className","attributeChangedCallback","name","oldValue","newValue","targetId","inputs","getElementById","querySelectorAll","forEach","input","classList","toggle","setFormValue","console","log","disabled","hasAttribute","showLoading","_this$target","target","createRange","createContextualFragment","spinnerTemplate","hideLoading","_this$target2","querySelector","template","list","firstChild","removeChild","innerHTML","row","title","bsToggle","self","node","content","cloneNode","cols","columns","tbl","cnt","radioSuffix","contains","_input$dataset","containerClass","dataset","removeAttribute","$","attr","tooltip","tooltipOptions","filter","clone","label","suffix","setAttribute","checked","addEventListener","_bootstrap$Tooltip$ge","bootstrap","Tooltip","getInstance","hide","parseInt","htmlFor","cell","cellClass","rowClass","append","j","c","focus","_this$target3","form","parentNode","templateId","inputId","_ew","IS_MOBILE","join","ar","Array","isArray","map","v","includes","HTMLElement","assign","source","api","init","converter","defaultAttributes","attributes","expires","Date","now","toUTCString","encodeURIComponent","decodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","write","cookies","jar","parts","slice","found","read","withAttributes","withConverter","freeze","tabId","jQuery","off","el","Treeview","SidebarSearch","adminlte","CardRefresh","overlayTemplate","customElements","define","_initPanelsReq","noop","templateCallback","element","HTMLOptionElement","ew$1","PAGE_ID","RELATIVE_PATH","GENERATE_PASSWORD_UPPERCASE","GENERATE_PASSWORD_LOWERCASE","GENERATE_PASSWORD_NUMBER","GENERATE_PASSWORD_SPECIALCHARS","CONFIRM_CANCEL","UNFORMAT_YEAR","LAZY_LOAD_DELAY","AJAX_DELAY","LOOKUP_DELAY","MAX_OPTION_COUNT","MIN_SESSION_KEEP_ALIVE_INTERVAL","NUMBERING_SYSTEM","SERVICE_WORKER","Cookies","uniqueTabId","opts","storage","navEntries","existingTabId","usedSessionStorage","sessionStorage","performance","getEntriesByType","getItem","hasExisting","usingExisting","mayBeDuplicate","newTabId","globalThis","crypto","randomUUID","bytes","Uint8Array","getRandomValues","hexValues","byte","padStart","genUUID","setItem","language","vars","maps","addOptionDialog","emailDialog","importDialog","modalDialog","modalLookupDialog","ajaxBatchSize","autoSuggestSettings","highlight","hint","minLength","debounce","delay","templates","classNames","menu","suggestion","cursor","lightboxSettings","transition","photo","opacity","calendarOptions","showViewPageOnEventClick","useContextMenu","usePopover","popoverViews","fullCalendarOptions","headerToolbar","start","center","end","themeSystem","initialView","dayMaxEventRows","timeZone","droppable","editable","eventPopoverOptions","placement","trigger","html","uploadOptions","cropperOptions","autoCropArea","viewMode","cropperCanvasOptions","minWidth","minHeight","maxWidth","maxHeight","fillColor","imageSmoothingQuality","importUploadOptions","maxFileSize","maxNumberOfFiles","sweetAlertSettings","showClass","popup","backdrop","icon","hideClass","customClass","container","header","closeButton","image","htmlContainer","inputLabel","validationMessage","actions","confirmButton","denyButton","cancelButton","loader","footer","selectOptions","allowClear","theme","width","minimumResultsForSearch","escapeMarkup","templateResult","templateSelection","customOption","iconClass","selectMinimumInputLength","modalLookupOptions","closeOnSelect","minimumInputLength","dropdownCssClass","modal","draggableOptions","filterOptions","dropdownAutoWidth","preventScroll","importTabulatorOptions","height","toastOptions","position","tippyOptions","DOMPurifyConfig","sanitize","str","DOMPurify","queryBuilderOptions","allowViewRules","allowClearRules","queryBuilderPlugins","queryBuilderErrorClass","sanitizeFn","popoverOptions","loginWizardOptions","autoAdjustHeight","animation","speed","easing","scrollIntoViewOptions","securityCodeDebounce","resendOtpInterval","PDFObjectOptions","chartConfig","spinnerClass","screenMediaQuery","callbacks","jsTemplates","jsRenderHelpers","jsRenderAttributes","autoHideSuccessMessage","autoHideSuccessMessageDelay","searchOperatorChange","setLanguage","addOptionDialogShow","importDialogShow","toggleSearchOperator","togglePassword","sort","selectKey","export","exportWithCharts","setSearchType","emailDialogShow","selectAll","selectAllKeys","submitAction","addGridRow","confirmDelete","deleteGridRow","getStoredTheme","localStorage","setStoredTheme","getPreferredTheme","storedTheme","matchMedia","matches","isDark","updateIframes","iframe","contentWindow","documentElement","setTheme","URL","location","searchParams","CustomEvent","detail","showActiveTheme","themeSwitcher","themeSwitcherText","activeThemeIcon","btnToActive","activeBtnIcon","classes","from","cls","startsWith","themeSwitcherLabel","textContent","bsThemeValue","initThemes","initPanel","isset","child","children","panelSelectors","initPanels","_initPanels","requestAnimationFrame","cancelAnimationFrame","then","catch","clientScript","startupScript","deepAssign","extended","overwrite","merge","obj","prop","hasOwnProperty","applyTemplateId","renderJsTemplates","_e$target","views","helpers","sprintf","a","b","seq","_template$dataset","manual","allowCode","jsTemplate","markup","renderTemplate","$document","method","callback","$target","refreshTemplate","find","writeTabIdCookie","PROJECT_NAME","sameSite","COOKIE_SAMESITE","secure","COOKIE_SECURE","visibilityState"],"sources":["0"],"sourcesContent":["/*!\n * Core JavaScript for PHPMaker v2025.5.0\n * Copyright (c) e.World Technology Limited. All rights reserved.\n */\nvar ew = (function () {\n 'use strict';\n\n /**\r\n * Global dependencies.\r\n * @global {Object} document - DOM\r\n */\r\n\r\n var devnull = function () {},\r\n bundleIdCache = {},\r\n bundleResultCache = {},\r\n bundleCallbackQueue = {};\r\n\r\n /**\r\n * Subscribe to bundle load event.\r\n * @param {string[]} bundleIds - Bundle ids\r\n * @param {Function} callbackFn - The callback function\r\n */\r\n function subscribe(bundleIds, callbackFn) {\r\n // listify\r\n bundleIds = bundleIds.push ? bundleIds : [bundleIds];\r\n var depsNotFound = [],\r\n i = bundleIds.length,\r\n numWaiting = i,\r\n fn,\r\n bundleId,\r\n r,\r\n q;\r\n\r\n // define callback function\r\n fn = function (bundleId, pathsNotFound) {\r\n if (pathsNotFound.length) depsNotFound.push(bundleId);\r\n numWaiting--;\r\n if (!numWaiting) callbackFn(depsNotFound);\r\n };\r\n\r\n // register callback\r\n while (i--) {\r\n bundleId = bundleIds[i];\r\n\r\n // execute callback if in result cache\r\n r = bundleResultCache[bundleId];\r\n if (r) {\r\n fn(bundleId, r);\r\n continue;\r\n }\r\n\r\n // add to callback queue\r\n q = bundleCallbackQueue[bundleId] = bundleCallbackQueue[bundleId] || [];\r\n q.push(fn);\r\n }\r\n }\r\n\r\n /**\r\n * Publish bundle load event.\r\n * @param {string} bundleId - Bundle id\r\n * @param {string[]} pathsNotFound - List of files not found\r\n */\r\n function publish(bundleId, pathsNotFound) {\r\n // exit if id isn't defined\r\n if (!bundleId) return;\r\n var q = bundleCallbackQueue[bundleId];\r\n\r\n // cache result\r\n bundleResultCache[bundleId] = pathsNotFound;\r\n\r\n // exit if queue is empty\r\n if (!q) return;\r\n\r\n // empty callback queue\r\n while (q.length) {\r\n q[0](bundleId, pathsNotFound);\r\n q.splice(0, 1);\r\n }\r\n }\r\n\r\n /**\r\n * Execute callbacks.\r\n * @param {Object or Function} args - The callback args\r\n * @param {string[]} depsNotFound - List of dependencies not found\r\n */\r\n function executeCallbacks(args, depsNotFound) {\r\n // accept function as argument\r\n if (args.call) args = {\r\n success: args\r\n };\r\n\r\n // success and error callbacks\r\n if (depsNotFound.length) (args.error || devnull)(depsNotFound);else (args.success || devnull)(args);\r\n }\r\n\r\n /**\r\n * Load individual file.\r\n * @param {string} path - The file path\r\n * @param {Function} callbackFn - The callback function\r\n */\r\n function loadFile(path, callbackFn, args, numTries) {\r\n var doc = document,\r\n async = args.async,\r\n maxTries = (args.numRetries || 0) + 1,\r\n beforeCallbackFn = args.before || devnull,\r\n pathname = path.replace(/[\\?|#].*$/, ''),\r\n pathStripped = path.replace(/^(css|img)!/, ''),\r\n // isLegacyIECss, //***\r\n e;\r\n numTries = numTries || 0;\r\n if (/(^css!|\\.css$)/.test(pathname)) {\r\n // css\r\n e = doc.createElement('link');\r\n e.rel = 'stylesheet';\r\n e.href = pathStripped;\r\n\r\n // tag IE9+\r\n // isLegacyIECss = 'hideFocus' in e; //***\r\n\r\n // use preload in IE Edge (to detect load errors)\r\n // if (isLegacyIECss && e.relList) { //***\r\n // isLegacyIECss = 0;\r\n // e.rel = 'preload';\r\n // e.as = 'style';\r\n // }\r\n } else if (/(^img!|\\.(png|gif|jpg|svg|webp)$)/.test(pathname)) {\r\n // image\r\n e = doc.createElement('img');\r\n e.src = pathStripped;\r\n } else {\r\n // javascript\r\n e = doc.createElement('script');\r\n e.src = path;\r\n e.async = async === undefined ? true : async;\r\n }\r\n e.onload = e.onerror = e.onbeforeload = function (ev) {\r\n var result = ev.type[0];\r\n\r\n // treat empty stylesheets as failures to get around lack of onerror\r\n // support in IE9-11\r\n // if (isLegacyIECss) { //***\r\n // try {\r\n // if (!e.sheet.cssText.length) result = 'e';\r\n // } catch (x) {\r\n // // sheets objects created from load errors don't allow access to\r\n // // `cssText` (unless error is Code:18 SecurityError)\r\n // if (x.code != 18) result = 'e';\r\n // }\r\n // }\r\n\r\n // handle retries in case of load failure\r\n if (result == 'e') {\r\n // increment counter\r\n numTries += 1;\r\n\r\n // exit function and try again\r\n if (numTries < maxTries) {\r\n return loadFile(path, callbackFn, args, numTries);\r\n }\r\n } else if (e.rel == 'preload' && e.as == 'style') {\r\n // activate preloaded stylesheets\r\n return e.rel = 'stylesheet'; // jshint ignore:line\r\n }\r\n\r\n // execute callback\r\n callbackFn(path, result, ev.defaultPrevented);\r\n };\r\n\r\n // add to document (unless callback returns `false`)\r\n if (beforeCallbackFn(path, e) !== false && e.tagName != \"IMG\") doc.head.appendChild(e); //***\r\n }\r\n\r\n /**\r\n * Load multiple files.\r\n * @param {string[]} paths - The file paths\r\n * @param {Function} callbackFn - The callback function\r\n */\r\n function loadFiles(paths, callbackFn, args) {\r\n // listify paths\r\n paths = paths.push ? paths : [paths];\r\n var numWaiting = paths.length,\r\n x = numWaiting,\r\n pathsNotFound = [],\r\n fn,\r\n i;\r\n\r\n // define callback function\r\n fn = function (path, result, defaultPrevented) {\r\n // handle error\r\n if (result == 'e') pathsNotFound.push(path);\r\n\r\n // handle beforeload event. If defaultPrevented then that means the load\r\n // will be blocked (ex. Ghostery/ABP on Safari)\r\n if (result == 'b') {\r\n if (defaultPrevented) pathsNotFound.push(path);else return;\r\n }\r\n numWaiting--;\r\n if (!numWaiting) callbackFn(pathsNotFound);\r\n };\r\n\r\n // load scripts\r\n for (i = 0; i < x; i++) loadFile(paths[i], fn, args);\r\n }\r\n\r\n /**\r\n * Initiate script load and register bundle.\r\n * @param {(string|string[])} paths - The file paths\r\n * @param {(string|Function|Object)} [arg1] - The (1) bundleId or (2) success\r\n * callback or (3) object literal with success/error arguments, numRetries,\r\n * etc.\r\n * @param {(Function|Object)} [arg2] - The (1) success callback or (2) object\r\n * literal with success/error arguments, numRetries, etc.\r\n */\r\n function loadjs(paths, arg1, arg2) {\r\n var bundleId, args;\r\n\r\n // bundleId (if string)\r\n if (arg1 && arg1.trim) bundleId = arg1;\r\n\r\n // args (default is {})\r\n args = (bundleId ? arg2 : arg1) || {};\r\n\r\n // throw error if bundle is already defined\r\n if (bundleId) {\r\n if (bundleId in bundleIdCache) {\r\n throw \"LoadJS\";\r\n } else {\r\n bundleIdCache[bundleId] = true;\r\n }\r\n }\r\n function loadFn(resolve, reject) {\r\n loadFiles(paths, function (pathsNotFound) {\r\n // execute callbacks\r\n executeCallbacks(args, pathsNotFound);\r\n\r\n // resolve Promise\r\n if (resolve) {\r\n executeCallbacks({\r\n success: resolve,\r\n error: reject\r\n }, pathsNotFound);\r\n }\r\n\r\n // publish bundle load event\r\n publish(bundleId, pathsNotFound);\r\n }, args);\r\n }\r\n if (args.returnPromise) return new Promise(loadFn);else loadFn();\r\n }\r\n\r\n /**\r\n * Execute callbacks when dependencies have been satisfied.\r\n * @param {(string|string[])} deps - List of bundle ids\r\n * @param {Object} args - success/error arguments\r\n */\r\n loadjs.ready = function ready(deps, args) {\r\n // subscribe to bundle load event\r\n subscribe(deps, function (depsNotFound) {\r\n // execute callbacks\r\n executeCallbacks(args, depsNotFound);\r\n });\r\n return loadjs;\r\n };\r\n\r\n /**\r\n * Manually satisfy bundle dependencies.\r\n * @param {string} bundleId - The bundle id\r\n */\r\n loadjs.done = function done(bundleId) {\r\n publish(bundleId, []);\r\n };\r\n\r\n /**\r\n * Reset loadjs dependencies statuses\r\n */\r\n loadjs.reset = function reset() {\r\n bundleIdCache = {};\r\n bundleResultCache = {};\r\n bundleCallbackQueue = {};\r\n };\r\n\r\n /**\r\n * Determine if bundle has already been defined\r\n * @param String} bundleId - The bundle id\r\n */\r\n loadjs.isDefined = function isDefined(bundleId) {\r\n return bundleId in bundleIdCache;\r\n };\r\n //***\n\n function _typeof(o) {\r\n \"@babel/helpers - typeof\";\r\n\r\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\r\n return typeof o;\r\n } : function (o) {\r\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\r\n }, _typeof(o);\r\n }\n\n function toPrimitive(t, r) {\r\n if (\"object\" != _typeof(t) || !t) return t;\r\n var e = t[Symbol.toPrimitive];\r\n if (void 0 !== e) {\r\n var i = e.call(t, r || \"default\");\r\n if (\"object\" != _typeof(i)) return i;\r\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\r\n }\r\n return (\"string\" === r ? String : Number)(t);\r\n }\n\n function toPropertyKey(t) {\r\n var i = toPrimitive(t, \"string\");\r\n return \"symbol\" == _typeof(i) ? i : i + \"\";\r\n }\n\n function _defineProperties(e, r) {\r\n for (var t = 0; t < r.length; t++) {\r\n var o = r[t];\r\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\r\n }\r\n }\r\n function _createClass(e, r, t) {\r\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\r\n writable: !1\r\n }), e;\r\n }\n\n function _defineProperty(e, r, t) {\r\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\r\n value: t,\r\n enumerable: !0,\r\n configurable: !0,\r\n writable: !0\r\n }) : e[r] = t, e;\r\n }\n\n /**\r\n * Language class\r\n */\r\n let Language = /*#__PURE__*/function () {\r\n /**\r\n * Constructor\r\n * @param {Object} data - Phrases\r\n */\r\n function Language(data) {\r\n _defineProperty(this, \"data\", {});\r\n this.data = data != null ? data : {};\r\n }\r\n\r\n /**\r\n * Get phrase by ID\r\n *\r\n * @param {string} id - ID\r\n * @returns {string} Phrase\r\n */\r\n var _proto = Language.prototype;\r\n _proto.phrase = function phrase(id) {\r\n var _this$data$id$toLower;\r\n return (_this$data$id$toLower = this.data[id.toLowerCase()]) != null ? _this$data$id$toLower : id;\r\n }\r\n\r\n /**\r\n * Get phrases\r\n */;\r\n return _createClass(Language, [{\r\n key: \"phrases\",\r\n get: function () {\r\n return this.data;\r\n }\r\n\r\n /**\r\n * Set phrases\r\n */,\r\n set: function (value) {\r\n this.data = value;\r\n }\r\n }]);\r\n }();\n\n function _setPrototypeOf(t, e) {\r\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\r\n return t.__proto__ = e, t;\r\n }, _setPrototypeOf(t, e);\r\n }\n\n function _inheritsLoose(t, o) {\r\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);\r\n }\n\n function _getPrototypeOf(t) {\r\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\r\n return t.__proto__ || Object.getPrototypeOf(t);\r\n }, _getPrototypeOf(t);\r\n }\n\n function _isNativeFunction(t) {\r\n try {\r\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\r\n } catch (n) {\r\n return \"function\" == typeof t;\r\n }\r\n }\n\n function _isNativeReflectConstruct() {\r\n try {\r\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\r\n } catch (t) {}\r\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\r\n return !!t;\r\n })();\r\n }\n\n function _construct(t, e, r) {\r\n if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\r\n var o = [null];\r\n o.push.apply(o, e);\r\n var p = new (t.bind.apply(t, o))();\r\n return r && _setPrototypeOf(p, r.prototype), p;\r\n }\n\n function _wrapNativeSuper(t) {\r\n var r = \"function\" == typeof Map ? new Map() : void 0;\r\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\r\n if (null === t || !_isNativeFunction(t)) return t;\r\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\r\n if (void 0 !== r) {\r\n if (r.has(t)) return r.get(t);\r\n r.set(t, Wrapper);\r\n }\r\n function Wrapper() {\r\n return _construct(t, arguments, _getPrototypeOf(this).constructor);\r\n }\r\n return Wrapper.prototype = Object.create(t.prototype, {\r\n constructor: {\r\n value: Wrapper,\r\n enumerable: !1,\r\n writable: !0,\r\n configurable: !0\r\n }\r\n }), _setPrototypeOf(Wrapper, t);\r\n }, _wrapNativeSuper(t);\r\n }\n\n /**\r\n * Class selection list option\r\n */\r\n let SelectionListOption = /*#__PURE__*/function () {\r\n /**\r\n * Constructor\r\n * @param {*} text - Inner HTML\r\n * @param {*} value - Value\r\n * @param {*} defaultSelected - Is selected\r\n */\r\n function SelectionListOption(text, value, defaultSelected) {\r\n _defineProperty(this, \"_selected\", undefined);\r\n _defineProperty(this, \"_selectionList\", undefined);\r\n _defineProperty(this, \"_innerHTML\", \"\");\r\n _defineProperty(this, \"_value\", \"\");\r\n _defineProperty(this, \"_defaultSelected\", false);\r\n this._innerHTML = String(text);\r\n this._value = String(value);\r\n this._defaultSelected = !!defaultSelected;\r\n }\r\n\r\n /**\r\n * Get text\r\n */\r\n return _createClass(SelectionListOption, [{\r\n key: \"text\",\r\n get: function () {\r\n return this._innerHTML;\r\n }\r\n\r\n /**\r\n * Set text\r\n */,\r\n set: function (value) {\r\n this._innerHTML = String(value);\r\n }\r\n\r\n /**\r\n * Get inner HTML\r\n */\r\n }, {\r\n key: \"innerHTML\",\r\n get: function () {\r\n return this._innerHTML;\r\n }\r\n\r\n /**\r\n * Set inner HTML\r\n */,\r\n set: function (value) {\r\n this._innerHTML = value;\r\n }\r\n\r\n /**\r\n * Get value\r\n */\r\n }, {\r\n key: \"value\",\r\n get: function () {\r\n return this._value;\r\n }\r\n\r\n /**\r\n * Set value\r\n */,\r\n set: function (value) {\r\n this._value = String(value);\r\n }\r\n\r\n /**\r\n * Get default selected\r\n */\r\n }, {\r\n key: \"defaultSelected\",\r\n get: function () {\r\n return this._defaultSelected;\r\n }\r\n\r\n /**\r\n * Set default selected\r\n */,\r\n set: function (value) {\r\n this._defaultSelected = !!value;\r\n }\r\n\r\n /**\r\n * Get selection list\r\n */\r\n }, {\r\n key: \"selectionList\",\r\n get: function () {\r\n return this._selectionList;\r\n }\r\n\r\n /**\r\n * Set selection list\r\n */,\r\n set: function (value) {\r\n this._selectionList = value;\r\n }\r\n\r\n /**\r\n * Get selected\r\n */\r\n }, {\r\n key: \"selected\",\r\n get: function () {\r\n var _this$_selected;\r\n return (_this$_selected = this._selected) != null ? _this$_selected : this.defaultSelected;\r\n }\r\n\r\n /**\r\n * Set selected\r\n */,\r\n set: function (value) {\r\n var _this$_selectionList;\r\n this._selected = value;\r\n (_this$_selectionList = this._selectionList) == null || _this$_selectionList.render();\r\n }\r\n }]);\r\n }();\n\n /**\r\n * Class Dynamic Selection List\r\n */\r\n let SelectionList = /*#__PURE__*/function (_HTMLElement) {\r\n /**\r\n * Constructor\r\n */\r\n function SelectionList() {\r\n var _this;\r\n _this = _HTMLElement.call(this) || this;\r\n _defineProperty(_this, \"containerClass\", \"d-sm-table\");\r\n _defineProperty(_this, \"rowClass\", \"d-sm-table-row\");\r\n _defineProperty(_this, \"cellClass\", \"d-sm-table-cell\");\r\n /**\r\n * Options\r\n * @type {SelectionListOption[]}\r\n */\r\n _defineProperty(_this, \"options\", []);\r\n _this._internals = _this.attachInternals();\r\n return _this;\r\n }\r\n\r\n /**\r\n * Connected\r\n */\r\n _inheritsLoose(SelectionList, _HTMLElement);\r\n var _proto = SelectionList.prototype;\r\n _proto.connectedCallback = function connectedCallback() {\r\n let value = this.getAttribute(\"value\") || \"\",\r\n values = this.multiple ? value.split(ew.MULTIPLE_OPTION_SEPARATOR) : [value];\r\n for (let val of values) this.add(val, \"\", true);\r\n }\r\n\r\n /**\r\n * Target element id\r\n */;\r\n /**\r\n * Add an option\r\n */\r\n _proto.add = function add(value, text, selected) {\r\n let option = new SelectionListOption(text, value, selected);\r\n this.addOption(option);\r\n }\r\n\r\n /**\r\n * Add an option\r\n */;\r\n _proto.addOption = function addOption(option) {\r\n if (option instanceof SelectionListOption) {\r\n option.selectionList = this;\r\n let index = this.options.findIndex(opt => opt.value == option.value);\r\n if (index > -1) this.options[index] = option;else this.options.push(option);\r\n }\r\n }\r\n\r\n /**\r\n * Remove an option\r\n */;\r\n _proto.remove = function remove(index) {\r\n let option = this.options[index];\r\n if (option) this.options.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Remove all options\r\n */;\r\n _proto.removeAll = function removeAll() {\r\n this.options.splice(0);\r\n }\r\n\r\n /**\r\n * Clear selection\r\n */;\r\n _proto.clear = function clear() {\r\n for (let option of this.options) option.selected = false;\r\n this.render();\r\n }\r\n\r\n /**\r\n * Get random number\r\n */;\r\n _proto.getRandom = function getRandom() {\r\n return Math.floor(Math.random() * (999999 - 100000)) + 100000;\r\n }\r\n\r\n /**\r\n * Trigger change event\r\n */;\r\n _proto.triggerChange = function triggerChange() {\r\n const event = new Event(\"change\", {\r\n view: window,\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n this.dispatchEvent(event);\r\n }\r\n\r\n /**\r\n * Check if invalid\r\n */;\r\n _proto.isInvalid = function isInvalid(className) {\r\n return /\\bis-invalid\\b/.test(className);\r\n }\r\n\r\n /**\r\n * Check class\r\n */;\r\n _proto.attributeChangedCallback = function attributeChangedCallback(name, oldValue, newValue) {\r\n if (name == \"class\") {\r\n if (this.targetId && this.isInvalid(oldValue) != this.isInvalid(newValue)) {\r\n // \"is-invalid\" toggled\r\n let target = document.getElementById(this.targetId),\r\n inputs = target.querySelectorAll(\"input\"),\r\n isInvalid = this.isInvalid(newValue);\r\n inputs.forEach(input => input.classList.toggle(\"is-invalid\", isInvalid));\r\n }\r\n } else if (name == \"value\") {\r\n this._internals.setFormValue(this.value);\r\n if (this.value !== \"\") this.classList.remove(\"is-invalid\");\r\n } else if (name == \"disabled\") {\r\n let target = document.getElementById(this.targetId),\r\n inputs = target.querySelectorAll(\"input\");\r\n console.log(oldValue, newValue);\r\n inputs.forEach(input => input.disabled = this.hasAttribute(\"disabled\"));\r\n }\r\n }\r\n\r\n /**\r\n * Show loading\r\n */;\r\n _proto.showLoading = function showLoading() {\r\n var _this$target;\r\n (_this$target = this.target) == null || _this$target.appendChild(document.createRange().createContextualFragment(ew.spinnerTemplate()));\r\n }\r\n\r\n /**\r\n * Hide loading\r\n */;\r\n _proto.hideLoading = function hideLoading() {\r\n var _this$target2;\r\n (_this$target2 = this.target) == null || (_this$target2 = _this$target2.querySelector(\".ew-loading\")) == null || _this$target2.remove();\r\n }\r\n\r\n /**\r\n * Render checkbox or radio in the target element\r\n */;\r\n _proto.render = function render() {\r\n let target = this.target,\r\n template = this.template;\r\n if (!target || !template || !this.list) return;\r\n\r\n // Clear the target\r\n while (target.firstChild) target.removeChild(target.firstChild);\r\n\r\n // Render\r\n target.innerHTML = ew.spinnerTemplate();\r\n let self = this,\r\n content = template.content,\r\n node = content.cloneNode(true),\r\n input = node.querySelector(\"input\"),\r\n cols = this.columns || 1,\r\n tbl = document.createElement(\"div\"),\r\n cnt = this.length,\r\n radioSuffix = \"_\" + this.getRandom(),\r\n isInvalid = this.classList.contains(\"is-invalid\"),\r\n row,\r\n title,\r\n bsToggle;\r\n tbl.className = this.containerClass + \" ew-item-container\";\r\n if (input.type == \"radio\" || input.type == \"checkbox\") {\r\n var _input$dataset;\r\n title = input.title, bsToggle = (_input$dataset = input.dataset) == null ? void 0 : _input$dataset.bsToggle;\r\n if (title && bsToggle) {\r\n input.removeAttribute(\"title\");\r\n input.removeAttribute(\"data-bs-toggle\");\r\n $(tbl).attr(\"title\", title).tooltip(ew.tooltipOptions);\r\n }\r\n }\r\n let options = this.options.filter(opt => opt.value);\r\n options.forEach((option, i) => {\r\n let clone = node.cloneNode(true),\r\n input = clone.querySelector(\"input\"),\r\n label = clone.querySelector(\"label\"),\r\n suffix = \"_\" + this.getRandom(); // Make sure the id is unique\r\n input.name = input.name + (input.type == \"radio\" ? radioSuffix : suffix);\r\n input.id = input.id + suffix;\r\n input.value = option.value;\r\n input.setAttribute(\"data-index\", i);\r\n input.checked = option.selected;\r\n input.disabled = this.disabled;\r\n input.classList.add(\"ew-custom-option\");\r\n if (isInvalid) input.classList.add(\"is-invalid\");\r\n input.addEventListener(\"click\", function () {\r\n var _bootstrap$Tooltip$ge;\r\n (_bootstrap$Tooltip$ge = bootstrap.Tooltip.getInstance(tbl)) == null || _bootstrap$Tooltip$ge.hide();\r\n let index = parseInt(this.getAttribute(\"data-index\"), 10);\r\n if (self.type == \"select-one\") {\r\n for (let option of self.options) option.selected = false;\r\n }\r\n self.options[index].selected = this.checked;\r\n self.setAttribute(\"value\", self.value);\r\n self.triggerChange();\r\n });\r\n label.innerHTML = option.text;\r\n label.htmlFor = input.id;\r\n let cell = document.createElement(\"div\");\r\n cell.className = this.cellClass;\r\n cell.appendChild(clone);\r\n if (i % cols == 0) {\r\n row = document.createElement(\"div\");\r\n row.className = this.rowClass;\r\n }\r\n row.append(cell);\r\n if (i % cols == cols - 1) {\r\n tbl.append(row);\r\n } else if (i == cnt - 1) {\r\n // Last\r\n for (let j = i % cols + 1; j < cols; j++) {\r\n let c = document.createElement(\"div\");\r\n c.className = this.cellClass;\r\n row.append(c);\r\n }\r\n tbl.append(row);\r\n }\r\n });\r\n target.innerHTML = \"\";\r\n target.append(tbl);\r\n this.setAttribute(\"value\", this.value);\r\n }\r\n\r\n /**\r\n * Set focus\r\n */;\r\n _proto.focus = function focus() {\r\n if (this.list) {\r\n var _this$target3;\r\n (_this$target3 = this.target) == null || (_this$target3 = _this$target3.querySelector(\"input\")) == null || _this$target3.focus();\r\n } else {\r\n _HTMLElement.prototype.focus.call(this);\r\n }\r\n };\r\n return _createClass(SelectionList, [{\r\n key: \"form\",\r\n get:\r\n /**\r\n * Get form\r\n */\r\n function () {\r\n return this._internals.form;\r\n }\r\n\r\n /**\r\n * Get name\r\n */\r\n }, {\r\n key: \"name\",\r\n get: function () {\r\n return this.getAttribute(\"name\");\r\n }\r\n }, {\r\n key: \"targetId\",\r\n get: function () {\r\n return this.getAttribute(\"data-target\");\r\n }\r\n\r\n /**\r\n * Target\r\n */\r\n }, {\r\n key: \"target\",\r\n get: function () {\r\n return this.parentNode.querySelector(\"#\" + this.targetId);\r\n }\r\n\r\n /**\r\n * Template id\r\n */\r\n }, {\r\n key: \"templateId\",\r\n get: function () {\r\n return this.getAttribute(\"data-template\");\r\n }\r\n\r\n /**\r\n * Template\r\n */\r\n }, {\r\n key: \"template\",\r\n get: function () {\r\n return this.parentNode.querySelector(\"#\" + this.templateId);\r\n }\r\n\r\n /**\r\n * Input element id (for AutoSuggest)\r\n */\r\n }, {\r\n key: \"inputId\",\r\n get: function () {\r\n return this.getAttribute(\"data-input\");\r\n }\r\n\r\n /**\r\n * Input element (for AutoSuggest)\r\n */\r\n }, {\r\n key: \"input\",\r\n get: function () {\r\n return this.parentNode.querySelector(\"#\" + this.inputId);\r\n }\r\n\r\n /**\r\n * Is list\r\n */\r\n }, {\r\n key: \"list\",\r\n get: function () {\r\n return this.options;\r\n }\r\n\r\n /**\r\n * Number of columns\r\n */\r\n }, {\r\n key: \"columns\",\r\n get: function () {\r\n var _ew;\r\n if ((_ew = ew) != null && _ew.IS_MOBILE) {\r\n return 1;\r\n } else {\r\n let cols = this.getAttribute(\"data-repeatcolumn\");\r\n return cols ? parseInt(cols, 10) : 1;\r\n }\r\n }\r\n\r\n /**\r\n * Length\r\n */\r\n }, {\r\n key: \"length\",\r\n get: function () {\r\n return this.options.length;\r\n }\r\n\r\n /**\r\n * Get selected index\r\n */\r\n }, {\r\n key: \"selectedIndex\",\r\n get: function () {\r\n return this.options.findIndex(option => option.selected);\r\n }\r\n\r\n /**\r\n * Set selected index\r\n */,\r\n set: function (index) {\r\n let option = this.options[index];\r\n if (option) {\r\n this.options.forEach(option => option.selected = false);\r\n option.selected = true;\r\n this.render();\r\n }\r\n }\r\n\r\n /**\r\n * Type\r\n */\r\n }, {\r\n key: \"type\",\r\n get: function () {\r\n return this.getAttribute(\"data-type\") || this.getAttribute(\"type\");\r\n }\r\n\r\n /**\r\n * Get disabled\r\n */\r\n }, {\r\n key: \"disabled\",\r\n get: function () {\r\n return this.hasAttribute(\"disabled\");\r\n }\r\n\r\n /**\r\n * Set disabled\r\n * @param {bool} val\r\n */,\r\n set: function (val) {\r\n val ? this.setAttribute(\"disabled\", \"\") : this.removeAttribute(\"disabled\");\r\n }\r\n\r\n /**\r\n * Multiple\r\n */\r\n }, {\r\n key: \"multiple\",\r\n get: function () {\r\n return this.type == \"select-multiple\";\r\n }\r\n\r\n /**\r\n * Get value\r\n * @returns {string}\r\n */\r\n }, {\r\n key: \"value\",\r\n get: function () {\r\n if (this.type == \"select-one\" || this.type == \"select-multiple\") {\r\n return this.values.join(ew.MULTIPLE_OPTION_SEPARATOR || \",\");\r\n } else {\r\n return this.getAttribute(\"value\");\r\n }\r\n }\r\n\r\n /**\r\n * Get value as array\r\n * @returns {string[]}\r\n */,\r\n set:\r\n /**\r\n * Set value\r\n * @param {string|string[]} val\r\n */\r\n function (val) {\r\n if (this.type == \"select-one\") {\r\n for (let option of this.options) option.selected = option.value == val;\r\n } else if (this.type == \"select-multiple\") {\r\n let ar;\r\n if (Array.isArray(val)) {\r\n // Array\r\n ar = val.map(v => v != null ? v : String(v));\r\n } else {\r\n var _val;\r\n // String\r\n (_val = val) != null ? _val : val = String(val);\r\n ar = val ? val.split(ew.MULTIPLE_OPTION_SEPARATOR || \",\") : [];\r\n }\r\n for (let option of this.options) option.selected = ar.includes(String(option.value));\r\n } else {\r\n this.setAttribute(\"value\", val);\r\n }\r\n this.render();\r\n }\r\n }, {\r\n key: \"values\",\r\n get: function () {\r\n if (this.type == \"select-one\" || this.type == \"select-multiple\") {\r\n return this.options.filter(option => option.selected).map(option => option.value);\r\n } else {\r\n let val = this.getAttribute(\"value\");\r\n return val ? val.split(ew.MULTIPLE_OPTION_SEPARATOR || \",\") : [];\r\n }\r\n }\r\n }], [{\r\n key: \"observedAttributes\",\r\n get:\r\n /**\r\n * Specify observed attributes so that attributeChangedCallback will work\r\n */\r\n function () {\r\n return [\"class\", \"value\", \"disabled\"];\r\n }\r\n\r\n /**\r\n * Form associcated\r\n */\r\n }, {\r\n key: \"formAssociated\",\r\n get: function () {\r\n return true;\r\n }\r\n }]);\r\n }(/*#__PURE__*/_wrapNativeSuper(HTMLElement));\n\n /*! js-cookie v3.0.5 | MIT */\r\n /* eslint-disable no-var */\r\n function assign(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n for (var key in source) {\r\n target[key] = source[key];\r\n }\r\n }\r\n return target;\r\n }\r\n /* eslint-enable no-var */\r\n\r\n /* eslint-disable no-var */\r\n var defaultConverter = {\r\n read: function (value) {\r\n if (value[0] === '\"') {\r\n value = value.slice(1, -1);\r\n }\r\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\r\n },\r\n write: function (value) {\r\n return encodeURIComponent(value).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent);\r\n }\r\n };\r\n /* eslint-enable no-var */\r\n\r\n /* eslint-disable no-var */\r\n\r\n function init(converter, defaultAttributes) {\r\n function set(name, value, attributes) {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n attributes = assign({}, defaultAttributes, attributes);\r\n if (typeof attributes.expires === 'number') {\r\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\r\n }\r\n if (attributes.expires) {\r\n attributes.expires = attributes.expires.toUTCString();\r\n }\r\n name = encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);\r\n var stringifiedAttributes = '';\r\n for (var attributeName in attributes) {\r\n if (!attributes[attributeName]) {\r\n continue;\r\n }\r\n stringifiedAttributes += '; ' + attributeName;\r\n if (attributes[attributeName] === true) {\r\n continue;\r\n }\r\n\r\n // Considers RFC 6265 section 5.2:\r\n // ...\r\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\r\n // character:\r\n // Consume the characters of the unparsed-attributes up to,\r\n // not including, the first %x3B (\";\") character.\r\n // ...\r\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\r\n }\r\n return document.cookie = name + '=' + converter.write(value, name) + stringifiedAttributes;\r\n }\r\n function get(name) {\r\n if (typeof document === 'undefined' || arguments.length && !name) {\r\n return;\r\n }\r\n\r\n // To prevent the for loop in the first place assign an empty array\r\n // in case there are no cookies at all.\r\n var cookies = document.cookie ? document.cookie.split('; ') : [];\r\n var jar = {};\r\n for (var i = 0; i < cookies.length; i++) {\r\n var parts = cookies[i].split('=');\r\n var value = parts.slice(1).join('=');\r\n try {\r\n var found = decodeURIComponent(parts[0]);\r\n jar[found] = converter.read(value, found);\r\n if (name === found) {\r\n break;\r\n }\r\n } catch (e) {}\r\n }\r\n return name ? jar[name] : jar;\r\n }\r\n return Object.create({\r\n set,\r\n get,\r\n remove: function (name, attributes) {\r\n set(name, '', assign({}, attributes, {\r\n expires: -1\r\n }));\r\n },\r\n withAttributes: function (attributes) {\r\n return init(this.converter, assign({}, this.attributes, attributes));\r\n },\r\n withConverter: function (converter) {\r\n return init(assign({}, this.converter, converter), this.attributes);\r\n }\r\n }, {\r\n attributes: {\r\n value: Object.freeze(defaultAttributes)\r\n },\r\n converter: {\r\n value: Object.freeze(converter)\r\n }\r\n });\r\n }\r\n var api = init(defaultConverter, {\r\n path: '/'\r\n });\n\n const genUUID = () => {\r\n // best case, `crypto.randomUUID` is available\r\n if (globalThis.crypto?.randomUUID) {\r\n return globalThis.crypto.randomUUID();\r\n }\r\n const bytes = new Uint8Array(16);\r\n if (globalThis.crypto?.getRandomValues) {\r\n // `crypto.getRandomValues` is available even in non-secure contexts\r\n globalThis.crypto.getRandomValues(bytes);\r\n }\r\n else {\r\n // fallback to Math.random, if the Crypto API is completely missing\r\n for (let i = 0; i < bytes.length; i++) {\r\n bytes[i] = Math.floor(Math.random() * 256);\r\n }\r\n }\r\n bytes[6] = (bytes[6] & 0x0f) | 0x40; // Set the 4 most significant bits to 0100\r\n bytes[8] = (bytes[8] & 0x3f) | 0x80; // Set the 2 most significant bits to 10\r\n const hexValues = [];\r\n bytes.forEach((byte) => {\r\n hexValues.push(byte.toString(16).padStart(2, '0'));\r\n });\r\n return (hexValues.slice(0, 4).join('') +\r\n '-' +\r\n hexValues.slice(4, 6).join('') +\r\n '-' +\r\n hexValues.slice(6, 8).join('') +\r\n '-' +\r\n hexValues.slice(8, 10).join('') +\r\n '-' +\r\n hexValues.slice(10).join(''));\r\n };\n\n // Default sessionStorage key to store the tab ID in.\r\n const defaultKey = 'unique-tab-id';\r\n // Used for in-memory storage when `sessionStorage` is not supported.\r\n let tabId = null;\r\n /**\r\n * Returns a unique ID for each browser tab. This can be used to construct a\r\n * tab scoped DB name. This allows data to sync between tabs by using one\r\n * named SQLite database file per tab. This is sub-optimal compared with\r\n * sharing a database but avoids concurrent database access.\r\n *\r\n * Handles duplicate tabs with some potential for false positives.\r\n * False positives result in a new tabID which means a new database name\r\n * and thus additional data transfer and storage.\r\n *\r\n * Uses window.sessionStorage. Some browsers disable access to sessionStorage\r\n * even when saying its available (e.g.: as a result of disabling third party\r\n * cookies o_O). So we handle this by falling back to an in-memory tabId\r\n * singleton -- which means each page load syncs data into a new DB.\r\n *\r\n * Other platforms can pass in a storage implementation or default to the\r\n * in-memory tabId singleton.\r\n */\r\n const uniqueTabId = (opts = {}) => {\r\n const key = opts.key ?? defaultKey;\r\n // Use sessionStorage as the default storage if available.\r\n let storage;\r\n if (opts.storage !== undefined) {\r\n storage = opts.storage;\r\n }\r\n else {\r\n try {\r\n storage = window.sessionStorage;\r\n }\r\n catch {\r\n // We catch errors in the Storage use (we have to to handle\r\n // browser security where they pretend Storage is available\r\n // but then throw errors when you use it) so this cast isn't\r\n // as bad as it looks.\r\n storage = {};\r\n }\r\n }\r\n let navEntries;\r\n if (opts.navEntries !== undefined) {\r\n navEntries = opts.navEntries;\r\n }\r\n else {\r\n try {\r\n navEntries = window.performance.getEntriesByType('navigation');\r\n }\r\n catch {\r\n navEntries = [];\r\n }\r\n }\r\n // Lookup the tabId\r\n let existingTabId;\r\n let usedSessionStorage;\r\n try {\r\n existingTabId = storage.getItem(key);\r\n usedSessionStorage = true;\r\n }\r\n catch {\r\n existingTabId = tabId;\r\n usedSessionStorage = false;\r\n }\r\n const hasExisting = existingTabId !== null;\r\n // If we got the tab ID from memory then always use it.\r\n if (hasExisting && !usedSessionStorage) {\r\n return {\r\n tabId: existingTabId,\r\n hasExisting: true,\r\n usingExisting: true,\r\n };\r\n }\r\n // If it's not a duplicate tab then use it.\r\n //\r\n // Note that only the current document is included in the [performance timeline][1],\r\n // so there is only one PerformanceNavigationTiming object in the navEntries array.\r\n //\r\n // [1]: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n const navEntry = navEntries && navEntries.length ? navEntries[0] : { type: null };\r\n const mayBeDuplicate = navEntry.type === 'back_forward';\r\n if (hasExisting && !mayBeDuplicate) {\r\n return {\r\n tabId: existingTabId,\r\n hasExisting: true,\r\n usingExisting: true,\r\n mayBeDuplicate: false,\r\n };\r\n }\r\n // Otherwise generate, store and return a new one.\r\n const newTabId = genUUID();\r\n try {\r\n storage.setItem(key, newTabId);\r\n }\r\n catch {\r\n tabId = newTabId;\r\n }\r\n return {\r\n tabId: newTabId,\r\n hasExisting: hasExisting,\r\n usingExisting: false,\r\n mayBeDuplicate: mayBeDuplicate,\r\n };\r\n };\n\n // AdminLTE\r\n loadjs.ready(\"adminlte\", function () {\r\n let $ = jQuery;\r\n\r\n // Init Treeview/SidebarSearch after rendering menu\r\n $(window).off(\"load.lte.treeview\").off(\"load.lte.sidebarsearch\");\r\n loadjs.ready(\"templates\", () => {\r\n document.querySelectorAll(\"[data-widget=treeview]\").forEach(el => $(el).Treeview(null)); // Use null so _init() will not be called again\r\n document.querySelectorAll(\"[data-widget=sidebar-search]\").forEach(el => $(el).SidebarSearch(null)); // Use null so _init() will not be called again\r\n });\r\n\r\n // Card Refresh\r\n adminlte.CardRefresh.overlayTemplate = ew.overlayTemplate();\r\n });\n\n // loadjs\r\n window.loadjs = loadjs;\r\n\r\n // Define SelectionList\r\n customElements.define(\"selection-list\", SelectionList);\r\n\r\n // Select2 templateResult/templateSelection\r\n let noop = () => {},\r\n templateCallback = o => (o.element instanceof HTMLOptionElement ? o.element.innerHTML : \"\") || o.text;\r\n let ew$1 = {\r\n SelectionListOption: SelectionListOption,\r\n PAGE_ID: \"\",\r\n // Page ID // To be updated in page\r\n RELATIVE_PATH: \"\",\r\n // Relative path // To be updated in page\r\n MULTIPLE_OPTION_SEPARATOR: \",\",\r\n GENERATE_PASSWORD_UPPERCASE: true,\r\n GENERATE_PASSWORD_LOWERCASE: true,\r\n GENERATE_PASSWORD_NUMBER: true,\r\n GENERATE_PASSWORD_SPECIALCHARS: 1,\r\n // Max. number of special characters (number|boolean)\r\n CONFIRM_CANCEL: true,\r\n UNFORMAT_YEAR: 50,\r\n LAZY_LOAD_DELAY: 0,\r\n AJAX_DELAY: 5,\r\n LOOKUP_DELAY: 250,\r\n MAX_OPTION_COUNT: 3,\r\n MIN_SESSION_KEEP_ALIVE_INTERVAL: 60,\r\n // Seconds\r\n NUMBERING_SYSTEM: \"\",\r\n SERVICE_WORKER: \"sw.js\",\r\n Cookies: api,\r\n uniqueTabId: uniqueTabId(),\r\n // BrowserTabTracker,\r\n Language,\r\n // Class\r\n language: new Language(),\r\n // Language object\r\n vars: null,\r\n maps: {},\r\n addOptionDialog: null,\r\n emailDialog: null,\r\n importDialog: null,\r\n modalDialog: null,\r\n modalLookupDialog: null,\r\n ajaxBatchSize: 5,\r\n autoSuggestSettings: {\r\n highlight: true,\r\n hint: true,\r\n minLength: 1,\r\n debounce: 250,\r\n delay: 250,\r\n // For loading more results\r\n templates: {},\r\n // Custom templates for Typeahead (notFound, pending, header, footer, suggestion)\r\n classNames: {\r\n menu: \"tt-menu dropdown-menu\",\r\n input: 'tt-input form-control',\r\n dataset: \"tt-dataset\",\r\n suggestion: \"tt-suggestion dropdown-item\",\r\n cursor: \"active\"\r\n }\r\n },\r\n lightboxSettings: {\r\n transition: \"none\",\r\n photo: true,\r\n opacity: 0.5\r\n },\r\n calendarOptions: {\r\n showViewPageOnEventClick: false,\r\n useContextMenu: true,\r\n usePopover: true,\r\n popoverViews: [\"dayGridMonth\"],\r\n fullCalendarOptions: {\r\n headerToolbar: {\r\n start: \"prev,next today\",\r\n center: \"title\",\r\n end: \"dayGridMonth,timeGridWeek,timeGridDay,listWeek\"\r\n },\r\n themeSystem: \"bootstrap5\",\r\n // Bootstrap5 theme with Font Awesome icons\r\n // See https://fullcalendar.io/docs/eventTimeFormat\r\n // eventTimeFormat: { hour: 'numeric', minute: '2-digit', omitZeroMinute: true, meridiem: 'narrow' },\r\n initialView: \"dayGridMonth\",\r\n dayMaxEventRows: true,\r\n timeZone: \"UTC\",\r\n droppable: true,\r\n editable: true\r\n },\r\n eventPopoverOptions: {\r\n placement: \"auto\",\r\n trigger: \"hover\",\r\n // Either \"hover\" or \"click\"\r\n html: true\r\n }\r\n },\r\n uploadOptions: {\r\n // See https://github.com/blueimp/jQuery-File-Upload/wiki/Options\r\n cropperOptions: {\r\n // See https://github.com/fengyuanchen/cropperjs/blob/e969348d313dafe3416926125b21388cc67cefb1/README.md#options\r\n autoCropArea: 1,\r\n // Define the automatic cropping area size (between 0 and 1)\r\n viewMode: 2 // Restrict the minimum canvas size to fit within the container\r\n },\r\n cropperCanvasOptions: {\r\n // See https://github.com/fengyuanchen/cropperjs/blob/e969348d313dafe3416926125b21388cc67cefb1/README.md#getcroppedcanvasoptions\r\n minWidth: 256,\r\n minHeight: 256,\r\n maxWidth: 4096,\r\n maxHeight: 4096,\r\n fillColor: \"#fff\",\r\n imageSmoothingQuality: \"high\" // Quality of image smoothing\r\n }\r\n },\r\n importUploadOptions: {\r\n maxFileSize: 10000000,\r\n maxNumberOfFiles: 10\r\n },\r\n sweetAlertSettings: {\r\n showClass: {\r\n popup: \"swal2-noanimation\",\r\n // Disable popup animation\r\n backdrop: \"swal2-noanimation\",\r\n // Disable backdrop animation\r\n icon: \"\" // Disable icon animation\r\n },\r\n hideClass: {\r\n popup: \"\",\r\n // Disable popup animation\r\n backdrop: \"\",\r\n // Disable backdrop animation\r\n icon: \"\" // Disable icon animation\r\n },\r\n customClass: {\r\n container: \"ew-swal2-container\",\r\n popup: \"ew-swal2-popup\",\r\n header: \"ew-swal2-header\",\r\n title: \"ew-swal2-title\",\r\n closeButton: \"ew-swal2-close-button\",\r\n icon: \"ew-swal2-icon\",\r\n image: \"ew-swal2-image\",\r\n htmlContainer: \"ew-swal2-html-container\",\r\n content: \"ew-swal2-content\",\r\n input: \"form-control ew-swal2-input\",\r\n inputLabel: \"ew-swal2-input-label\",\r\n validationMessage: \"ew-swal2-validation-message\",\r\n actions: \"ew-swal2-actions\",\r\n confirmButton: \"btn btn-primary ew-swal2-confirm-button\",\r\n denyButton: \"btn btn-danger ew-swal2-deny-button\",\r\n cancelButton: \"btn btn-secondary ew-swal2-cancel-button\",\r\n loader: \"ew-swal2-loader\",\r\n footer: \"ew-swal2-footer\"\r\n }\r\n },\r\n selectOptions: {\r\n // Select2 options\r\n allowClear: true,\r\n theme: \"bootstrap5\",\r\n width: \"style\",\r\n minimumResultsForSearch: 20,\r\n escapeMarkup: v => v,\r\n templateResult: templateCallback,\r\n templateSelection: templateCallback,\r\n // Custom options\r\n debounce: 250,\r\n // For ajax.delay, see https://select2.org/data-sources/ajax#rate-limiting-requests\r\n customOption: true,\r\n containerClass: \"d-sm-table\",\r\n rowClass: \"d-sm-table-row\",\r\n cellClass: \"d-sm-table-cell text-nowrap\",\r\n iconClass: \"form-check-label\"\r\n },\r\n selectMinimumInputLength: 1,\r\n modalLookupOptions: {\r\n // Select2 options\r\n allowClear: true,\r\n theme: \"bootstrap5\",\r\n width: \"100%\",\r\n escapeMarkup: v => v,\r\n templateResult: templateCallback,\r\n templateSelection: templateCallback,\r\n closeOnSelect: false,\r\n minimumInputLength: 0,\r\n dropdownCssClass: \"ew-modal-dropdown\",\r\n // Custom options\r\n modal: true,\r\n debounce: 250,\r\n // For ajax.delay, see https://select2.org/data-sources/ajax#rate-limiting-requests\r\n draggableOptions: {\r\n cursor: \"grabbing\"\r\n } // See https://api.jqueryui.com/draggable/\r\n },\r\n filterOptions: {\r\n // Select2 options\r\n allowClear: true,\r\n theme: \"bootstrap5\",\r\n width: \"100%\",\r\n escapeMarkup: v => v,\r\n templateResult: templateCallback,\r\n templateSelection: templateCallback,\r\n closeOnSelect: false,\r\n minimumInputLength: 0,\r\n dropdownAutoWidth: true,\r\n dropdownCssClass: \"ew-filter-dropdown\",\r\n // Custom options\r\n debounce: 250,\r\n // For ajax.delay, see https://select2.org/data-sources/ajax#rate-limiting-requests\r\n customOption: true,\r\n columns: 1,\r\n multiple: true,\r\n preventScroll: true,\r\n // For focusing the search box\r\n containerClass: \"container\",\r\n rowClass: \"row\",\r\n cellClass: \"col text-nowrap\",\r\n iconClass: \"form-check-label\"\r\n },\r\n importTabulatorOptions: {\r\n height: 300\r\n },\r\n // See http://tabulator.info/docs/5.1/options\r\n toastOptions: {\r\n position: \"topRight\" // topRight|topLeft|bottomRight|bottomLeft\r\n },\r\n tippyOptions: {\r\n theme: \"translucent\"\r\n },\r\n DOMPurifyConfig: {},\r\n sanitize: function (str) {\r\n return DOMPurify.sanitize(str, this.DOMPurifyConfig);\r\n },\r\n draggableOptions: {\r\n cursor: \"grabbing\"\r\n },\r\n // See https://api.jqueryui.com/draggable/\r\n queryBuilderOptions: {\r\n allowViewRules: false,\r\n // Show view rules button\r\n allowClearRules: false // Show clear rules button\r\n },\r\n // Query builder options\r\n queryBuilderPlugins: {\r\n // Query builder plugins\r\n \"filter-description\": null,\r\n \"unique-filter\": null,\r\n // \"invert\": null,\r\n \"not-group\": null\r\n },\r\n queryBuilderErrorClass: \"invalid-tooltip\",\r\n // \"invalid-tooltip\" or \"invalid-feedback\"\r\n bundleIds: [\"dom\", \"head\"],\r\n // All bundle IDs\r\n tooltipOptions: {\r\n placement: \"bottom\",\r\n customClass: \"ew-custom-tooltip\",\r\n sanitizeFn: null\r\n },\r\n popoverOptions: {\r\n html: true,\r\n customClass: \"ew-custom-popover\",\r\n sanitizeFn: null\r\n },\r\n loginWizardOptions: {\r\n autoAdjustHeight: true,\r\n // Automatically adjust content height\r\n transition: {\r\n animation: \"slideHorizontal\",\r\n // Animation effect on navigation, none|fade|slideHorizontal|slideVertical|slideSwing|css(Animation CSS class also need to specify)\r\n speed: \"400\",\r\n // Animation speed, not used if animation is \"css\"\r\n easing: \"\" // Animation easing, not supported without a jQuery easing plugin. Not used if animation is \"css\"\r\n }\r\n },\r\n scrollIntoViewOptions: true,\r\n securityCodeDebounce: 1000,\r\n resendOtpInterval: 60,\r\n // For re-sending OTP (in seconds)\r\n PDFObjectOptions: {},\r\n chartConfig: {},\r\n spinnerClass: \"spinner-border text-primary\",\r\n // spinner-border or spinner-grow\r\n screenMediaQuery: \"(min-width: 768px)\",\r\n // Media query string for minimum screen width (not mobile), should matches $screen-sm-min\r\n callbacks: {},\r\n // Callbacks\r\n jsTemplates: [],\r\n // JsRender templates\r\n jsRenderHelpers: {},\r\n // JsRender helpers\r\n jsRenderAttributes: [\"src\", \"href\", \"title\", \"data-bs-title\"],\r\n // Attributes supporting built-in JsRender tags\r\n autoHideSuccessMessage: true,\r\n autoHideSuccessMessageDelay: 5000,\r\n searchOperatorChange: noop,\r\n setLanguage: noop,\r\n addOptionDialogShow: noop,\r\n importDialogShow: noop,\r\n toggleSearchOperator: noop,\r\n togglePassword: noop,\r\n sort: noop,\r\n selectKey: noop,\r\n export: noop,\r\n exportWithCharts: noop,\r\n setSearchType: noop,\r\n emailDialogShow: noop,\r\n selectAll: noop,\r\n selectAllKeys: noop,\r\n submitAction: noop,\r\n addGridRow: noop,\r\n confirmDelete: () => false,\r\n deleteGridRow: () => false\r\n };\r\n\r\n /**\r\n * Color mode toggler (based on https://getbootstrap.com/docs/5.3/customize/color-modes/#javascript)\r\n */\r\n ew$1.getStoredTheme = () => localStorage.getItem(\"theme\");\r\n ew$1.setStoredTheme = theme => localStorage.setItem(\"theme\", theme);\r\n ew$1.getPreferredTheme = () => {\r\n const storedTheme = ew$1.getStoredTheme();\r\n if (storedTheme) return storedTheme;\r\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\r\n };\r\n ew$1.isDark = () => ew$1.getPreferredTheme() == \"dark\";\r\n ew$1.updateIframes = () => document.querySelectorAll(\".ew-iframe\").forEach(iframe => {\r\n const theme = ew$1.getPreferredTheme();\r\n const el = iframe.contentWindow.document.documentElement;\r\n el.setAttribute(\"data-bs-theme\", theme); // For Bootstrap 5.3+\r\n el.classList.toggle(\"dark\", theme == \"dark\"); // For Tailwind\r\n });\r\n ew$1.setTheme = theme => {\r\n if (theme !== \"light\" && theme !== \"dark\")\r\n // Auto\r\n theme = window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\r\n if (new URL(window.location).searchParams.get(\"export\") == \"print\")\r\n // Print\r\n theme = \"light\";\r\n document.documentElement.setAttribute(\"data-bs-theme\", theme); // For Bootstrap 5.3+\r\n ew$1.updateIframes();\r\n const event = new CustomEvent(\"changetheme\", {\r\n detail: theme\r\n });\r\n document.dispatchEvent(event);\r\n };\r\n ew$1.setTheme(ew$1.getPreferredTheme());\r\n ew$1.showActiveTheme = function (theme, focus) {\r\n if (focus === void 0) {\r\n focus = false;\r\n }\r\n const themeSwitcher = document.querySelector(\"#bd-theme\");\r\n if (!themeSwitcher) return;\r\n const themeSwitcherText = document.querySelector(\"#bd-theme-text\");\r\n const activeThemeIcon = document.querySelector(\".theme-icon-active\");\r\n const btnToActive = document.querySelector(\"[data-bs-theme-value='\" + theme + \"']\");\r\n if (!btnToActive) return;\r\n const activeBtnIcon = btnToActive.querySelector(\".theme-icon\");\r\n document.querySelectorAll(\"[data-bs-theme-value]\").forEach(element => {\r\n element.classList.remove(\"active\");\r\n element.setAttribute(\"aria-pressed\", \"false\");\r\n });\r\n btnToActive.classList.add(\"active\");\r\n btnToActive.setAttribute(\"aria-pressed\", \"true\");\r\n let classes = Array.from(activeThemeIcon.classList.values());\r\n for (const cls of classes) {\r\n if (cls.startsWith(\"fa-\") || cls.startsWith(\"bi-\")) activeThemeIcon.classList.remove(cls);\r\n }\r\n let iterator = activeBtnIcon == null ? void 0 : activeBtnIcon.classList.values();\r\n for (const cls of iterator) {\r\n if (cls.startsWith(\"fa-\") || cls.startsWith(\"bi-\")) activeThemeIcon.classList.add(cls);\r\n }\r\n const themeSwitcherLabel = themeSwitcherText.textContent + \" (\" + btnToActive.dataset.bsThemeValue + \")\";\r\n themeSwitcher.setAttribute(\"aria-label\", themeSwitcherLabel);\r\n if (focus) themeSwitcher.focus();\r\n };\r\n window.matchMedia(\"(prefers-color-scheme: dark)\").addEventListener(\"change\", () => {\r\n const storedTheme = ew$1.getStoredTheme();\r\n if (storedTheme !== \"light\" && storedTheme !== \"dark\") ew$1.setTheme(ew$1.getPreferredTheme());\r\n });\r\n ew$1.initThemes = () => {\r\n const theme = ew$1.getPreferredTheme();\r\n ew$1.showActiveTheme(theme);\r\n ew$1.updateIframes();\r\n document.querySelectorAll(\"[data-bs-theme-value]\").forEach(toggle => {\r\n toggle.addEventListener(\"click\", () => {\r\n let theme = toggle.getAttribute(\"data-bs-theme-value\");\r\n ew$1.setStoredTheme(theme);\r\n ew$1.setTheme(theme);\r\n ew$1.showActiveTheme(theme, true);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Init panel/header/footer\r\n *\r\n * @param {HTMLElement} el - Element\r\n */\r\n ew$1.initPanel = el => {\r\n if (el.dataset.isset) return;\r\n let html = \"\";\r\n for (let child of el.children) {\r\n html = child.innerHTML.trim();\r\n if (html !== \"\") break;\r\n }\r\n if (html === \"\") el.classList.add(\"d-none\");\r\n el.dataset.isset = true;\r\n };\r\n\r\n // Panel selectors\r\n ew$1.panelSelectors = [\".user-panel\", \".ew-grid-upper-panel\", \".ew-grid-lower-panel\", \".ew-multi-column-row > * > .card > .card-header\", \".ew-multi-column-row > * > .card > .card-footer\"];\r\n\r\n /**\r\n * Init panels/headers/footers\r\n */\r\n ew$1.initPanels = el => el == null ? void 0 : el.querySelectorAll(ew$1.panelSelectors.join(\",\")).forEach(ew$1.initPanel);\r\n\r\n // Request animation frame to init panels\r\n let _initPanelsReq;\r\n let _initPanels = () => {\r\n ew$1.initPanels(document);\r\n _initPanelsReq = requestAnimationFrame(_initPanels);\r\n };\r\n loadjs.ready(\"wrapper\", () => _initPanelsReq = requestAnimationFrame(_initPanels));\r\n\r\n // DOM content loaded\r\n document.addEventListener(\"DOMContentLoaded\", () => {\r\n ew$1.initPanels(document);\r\n cancelAnimationFrame(_initPanelsReq);\r\n loadjs.done(\"dom\");\r\n });\r\n\r\n /**\r\n * Initiate script load (async in series) and register bundle\r\n * @param {(string|string[])} paths - The file paths\r\n * @param {(string|Function|Object)} [arg1] - The (1) bundleId or (2) success\r\n * callback or (3) object literal with success/error arguments, numRetries,\r\n * etc.\r\n * @param {(Function|Object)} [arg2] - The (1) success callback or (2) object\r\n * literal with success/error arguments, numRetries, etc.\r\n */\r\n ew$1.loadjs = function (paths, arg1, arg2) {\r\n let bundleId = arg1 != null && arg1.trim ? arg1 : \"\";\r\n if (bundleId && bundleId != \"load\" && !ew$1.bundleIds.includes(bundleId)) ew$1.bundleIds.push(bundleId);\r\n let args = (bundleId ? arg2 : arg1) || {};\r\n paths = Array.isArray(paths) ? paths : [paths];\r\n paths = paths.filter(path => path && (!Array.isArray(path) || path.length)); // Valid paths\r\n if (args.call)\r\n // Accept function as argument\r\n args = {\r\n success: args\r\n };\r\n args = {\r\n ...args,\r\n returnPromise: true\r\n };\r\n let clone = {\r\n ...args\r\n },\r\n p = Promise.resolve();\r\n delete clone.success;\r\n paths.forEach((path, i, ar) => {\r\n if (i == ar.length - 1)\r\n // Last\r\n p = p.then(() => loadjs(path, bundleId || args, bundleId ? args : null).catch(paths => console.log(paths)));else p = p.then(() => loadjs(path, clone).catch(paths => console.log(paths)));\r\n });\r\n return p;\r\n };\r\n\r\n /**\r\n * Initiate script load (async in series) when dependencies have been satisfied\r\n * @param {(string|string[])} deps - List of bundle ids\r\n * @param {(string|string[])} paths - The file paths\r\n * @param {(string|Function|Object)} [arg1] - The (1) bundleId or (2) success\r\n * callback or (3) object literal with success/error arguments, numRetries,\r\n * etc.\r\n * @param {(Function|Object)} [arg2] - The (1) success callback or (2) object\r\n * literal with success/error arguments, numRetries, etc.\r\n */\r\n ew$1.ready = function (deps, paths, arg1, arg2) {\r\n let bundleId = arg1 != null && arg1.trim ? arg1 : \"\";\r\n if (bundleId && bundleId != \"load\" && !ew$1.bundleIds.includes(bundleId)) ew$1.bundleIds.push(bundleId);\r\n loadjs.ready(deps, function () {\r\n ew$1.loadjs(paths, arg1, arg2);\r\n });\r\n };\r\n\r\n // Global client script\r\n loadjs.ready(\"head\", function () {\r\n ew$1.clientScript();\r\n });\r\n\r\n // Global startup script\r\n loadjs.ready(\"foot\", function () {\r\n ew$1.startupScript();\r\n loadjs.done(\"load\");\r\n });\r\n\r\n // Deep merge two or more objects into the first object\r\n let deepAssign = function () {\r\n let extended = {},\r\n overwrite = true,\r\n i = 0;\r\n // Check if overwrite\r\n if (arguments[0] === false) {\r\n // First argument is boolean\r\n overwrite = false;\r\n i++;\r\n }\r\n if (typeof arguments[i] == \"object\") {\r\n // Get first object\r\n extended = arguments[i];\r\n i++;\r\n }\r\n // Merge the object into the extended object\r\n let merge = function (obj) {\r\n for (let prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n // If property is an object, merge properties\r\n if (typeof obj[prop] == \"object\" && !Array.isArray(obj[prop]) && obj[prop] !== null) {\r\n // Note: Type of array/null is \"object\"\r\n extended[prop] = deepAssign(overwrite, extended[prop], obj[prop]);\r\n } else {\r\n if (overwrite) {\r\n extended[prop] = obj[prop];\r\n } else {\r\n if (!extended.hasOwnProperty(prop)) extended[prop] = obj[prop];\r\n }\r\n }\r\n }\r\n }\r\n };\r\n // Loop through each object and merge\r\n for (; i < arguments.length; i++) {\r\n if (typeof arguments[i] == \"object\") merge(arguments[i]);\r\n }\r\n return extended;\r\n };\r\n ew$1.deepAssign = deepAssign;\r\n\r\n /**\r\n * Bundle IDs for applying JsRender templates\r\n */\r\n ew$1.applyTemplateId = [\"jsrender\", \"makerjs\"];\r\n\r\n /**\r\n * Render all JsRender templates\r\n *\r\n * @param {Event} e - Event\r\n */\r\n ew$1.renderJsTemplates = function (e) {\r\n var _e$target;\r\n let $ = jQuery,\r\n el = (_e$target = e == null ? void 0 : e.target) != null ? _e$target : document;\r\n $.views.helpers({\r\n language: ew$1.language,\r\n phrase: ew$1.language.phrase.bind(ew$1.language),\r\n sprintf: ew$1.sprintf,\r\n ...ew$1.jsRenderHelpers\r\n });\r\n Array.from(el.querySelectorAll(\".ew-js-template\")).sort((a, b) => {\r\n a = parseInt(a.dataset.seq, 10) || 0;\r\n b = parseInt(b.dataset.seq, 10) || 0;\r\n return a - b;\r\n }).forEach((template, index) => {\r\n var _template$dataset;\r\n let options = Object.assign({}, (_template$dataset = template.dataset) != null ? _template$dataset : {}),\r\n {\r\n name,\r\n manual,\r\n allowCode\r\n } = options;\r\n manual = manual === \"\",\r\n // Boolean data-* exists\r\n allowCode = allowCode === \"\";\r\n name || (name = \"js-template-\" + index);\r\n if (!$.render[name]) {\r\n // Render the first template of named template only\r\n let args = {\r\n jsTemplate: $.templates(name, {\r\n markup: template.text,\r\n allowCode\r\n }),\r\n template,\r\n ...options\r\n };\r\n ew$1.jsTemplates.push(args);\r\n if (!manual) ew$1.renderTemplate(args);\r\n }\r\n });\r\n loadjs.done(\"templates\");\r\n };\r\n\r\n /**\r\n * Render JsRender template\r\n *\r\n * @param args - Object { jsTemplate, template, name, method, target, allowCode, data, callback }\r\n * @returns\r\n */\r\n ew$1.renderTemplate = function (args) {\r\n let $ = jQuery,\r\n $document = $(document);\r\n $document.trigger(\"rendertemplate\", [args]);\r\n let {\r\n template,\r\n jsTemplate,\r\n method,\r\n target,\r\n data,\r\n callback\r\n } = args,\r\n $target = $(target || template.parentNode);\r\n if (typeof data == \"string\") data = ew$1.vars[data] || window[data]; // Get data from ew.vars or global\r\n data = typeof data == \"object\" ? data : {};\r\n let html = jsTemplate.render(data);\r\n if (html && method && target)\r\n // Render by specified method to target\r\n $(html)[method]($target);else if (html && !method && target)\r\n // No method, render as inner HTML of target\r\n $target.html(html);else if (html && !method && !target)\r\n // No method and target, render locally\r\n $target.append(html);\r\n if (callback) {\r\n let fn = ew$1.callbacks[callback] || ew$1[callback] || window[callback];\r\n if (typeof fn == \"function\") {\r\n let e = $.Event(\"templaterendered\", {\r\n target: $target[0],\r\n detail: args\r\n });\r\n try {\r\n return fn(e);\r\n } finally {\r\n $document.trigger(e);\r\n }\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Update JsRender template\r\n *\r\n * @param {string} name - Name of template\r\n * @param {Object} [data] - New data\r\n * @returns\r\n */\r\n ew$1.refreshTemplate = function (name, data) {\r\n let args = ew$1.jsTemplates.find(t => t.name == name);\r\n if (args) {\r\n if (typeof data == \"object\") {\r\n args.data = data;\r\n }\r\n return ew$1.renderTemplate(args);\r\n }\r\n return null;\r\n };\r\n\r\n // Overlay template\r\n ew$1.overlayTemplate = function () {\r\n return '
' + this.language.phrase(\"Loading\") + '
';\r\n };\r\n\r\n // Spinner template\r\n ew$1.spinnerTemplate = function () {\r\n return '
' + this.language.phrase(\"Loading\") + '
';\r\n };\r\n\r\n // Write browser tab ID cooke\r\n ew$1.writeTabIdCookie = function () {\r\n if (ew$1.Cookies.get(ew$1.PROJECT_NAME + \"_TabId\") != ew$1.uniqueTabId.tabId) {\r\n //console.log(\"Tab ID: \" + ew.uniqueTabId.tabId); // Uncomment to debug\r\n ew$1.Cookies.set(ew$1.PROJECT_NAME + \"_TabId\", ew$1.uniqueTabId.tabId, {\r\n sameSite: ew$1.COOKIE_SAMESITE,\r\n secure: ew$1.COOKIE_SECURE\r\n });\r\n }\r\n };\r\n loadjs.ready(\"clientvars\", () => ew$1.writeTabIdCookie());\r\n window.addEventListener(\"visibilitychange\", () => document.visibilityState != \"visible\" || ew$1.writeTabIdCookie());\n\n return ew$1;\n\n})();\n"],"mappings":"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","ignoreList":[]}