{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/store/modules/devices.ts","webpack:///./src/store/modules/AuthModule.ts","webpack:///./src/store/modules/BodyModule.ts","webpack:///./src/store/modules/BreadcrumbsModule.ts","webpack:///./src/core/config/DefaultLayoutConfig.ts","webpack:///./src/store/modules/ConfigModule.ts","webpack:///./src/store/index.ts","webpack:///./src/core/services/ApiService.ts","webpack:///./src/App.vue?955e","webpack:///./src/store/enums/StoreEnums.ts","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/assets/ts/components/_CookieComponent.ts","webpack:///./src/assets/ts/components/_DrawerComponent.ts","webpack:///./src/assets/ts/components/_FeedbackComponent.ts","webpack:///./src/assets/ts/components/_ImageInputComponent.ts","webpack:///./src/assets/ts/components/_ScrollComponent.ts","webpack:///./src/assets/ts/components/_StickyComponent.ts","webpack:///./src/assets/ts/components/_ToggleComponent.ts","webpack:///./src/assets/ts/components/_PasswordMeterComponent.ts","webpack:///./src/assets/ts/components/_SwapperComponent.ts","webpack:///./src/assets/ts/components/MenuComponent.ts","webpack:///./src/assets/ts/components/SearchComponent.ts","webpack:///./src/core/services/JwtService.ts","webpack:///./src/router/index.ts","webpack:///./src/store/urls.ts","webpack:///./src/assets/ts/_utils/_ElementStyleUtil.ts","webpack:///./src/assets/ts/_utils/_DataUtil.ts","webpack:///./src/assets/ts/_utils/_TypesHelpers.ts","webpack:///./src/assets/ts/_utils/_DOMEventHandlerUtil.ts","webpack:///./src/assets/ts/_utils/ElementAnimateUtil.ts","webpack:///./src/assets/ts/_utils/DomHelpers.ts","webpack:///./src/assets/ts/_utils/EventHandlerUtil.ts","webpack:///./src/core/plugins/keenthemes.ts","webpack:///./src/assets/ts/components/_StepperComponent.ts","webpack:///./src/App.vue?55f6","webpack:///./src/App.vue","webpack:///./src/App.vue?6484","webpack:///./src/core/plugins/i18n.ts","webpack:///./src/core/plugins/inline-svg.ts","webpack:///./src/core/plugins/vee-validate.ts","webpack:///./src/main.ts","webpack:///./src/store/api/devices.ts","webpack:///./src/assets/ts/components/_ScrollTopComponent.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","GET_DEVICES_LISTING","SET_DEVICES_LISTING","SET_TOTAL_BINS","namespaced","state","devices","loading","mutations","totalNumberOfBins","actions","payload","commit","res","log","getters","getDeviceListing","errors","user","isAuthenticated","JwtService","getToken","this","SET_ERROR","SET_AUTH","saveUser","saveToken","token","SET_USER","SET_PASSWORD","password","PURGE_AUTH","destroyToken","LOGIN","credentials","params","ApiService","query","context","catch","email","LOGOUT","REGISTER","post","response","FORGOT_PASSWORD","VERIFY_AUTH","setHeader","AuthModule","classes","position","SET_CLASSNAME_BY_POSITION","className","ADD_BODY_CLASSNAME","body","classList","add","REMOVE_BODY_CLASSNAME","remove","ADD_BODY_ATTRIBUTE","qulifiedName","REMOVE_BODY_ATTRIBUTE","removeAttribute","ADD_CLASSNAME","BodyModule","breadcrumbs","pageBreadcrumbPath","title","SET_BREADCRUMB_MUTATION","SET_BREADCRUMB_ACTION","BreadcrumbsModule","config","themeName","themeVersion","demo","main","primaryColor","logo","dark","light","loader","display","scrollTop","header","menuIcon","width","fixed","desktop","tabletAndMobile","toolbar","aside","theme","minimized","minimize","hoverable","content","footer","initial","path","defaultValue","SET_LAYOUT_CONFIG","RESET_LAYOUT_CONFIG","assign","OVERRIDE_LAYOUT_CONFIG","JSON","parse","localStorage","getItem","OVERRIDE_PAGE_LAYOUT_CONFIG","ConfigModule","rawError","store","init","app","vueInstance","use","a","axios","defaults","baseURL","headers","common","url","resource","slug","update","put","delete","Actions","Mutations","map","webpackContext","req","id","webpackContextResolve","keys","matches","cookie","match","RegExp","replace","decodeURIComponent","set","cookieOptions","options","expires","Date","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","CookieComponent","instanceId","drawerComponentObj","DrawerStore","has","getAllInstances","Map","defaultDrawerOptions","overlay","baseClass","overlayClass","direction","_element","overlayElement","toggleElement","shown","lastWidth","closeElement","_handlers","togglers","_getOption","closers","on","preventDefault","getElementById","_toggle","_hide","_update","String","hasBaseClass","element","contains","bodyCanvasAttr","parseInt","attr","optionName","option","trigger","_show","_deleteOverlay","_createOverlay","elementZIndex","overlayZindex","append","overlayClassOption","toString","addEventListener","_getDirection","_getWidth","toggle","show","hide","isShown","goElement","handler","one","off","instanceUid","createInstances","selector","elements","querySelectorAll","forEach","item","drawer","DrawerComponent","getInstance","initGlobalHandlers","timer","el","instance","hasInstace","elementId","hideAll","oldInstances","dr","updateAll","handleDismiss","closest","bootstrap","reinitialization","defaultFeedbackOptions","placement","defaultImageInputOptions","_go","showPopup","innerHTML","setPopupTopCenterPosition","height","hidePopup","getElement","defaultImageInputQueires","componentName","instanseQuery","inputQuery","wrapperQuery","cancelQuery","removeQuery","hiddenQuery","defaultScrollOptions","_options","_queries","_change","inputElement","files","reader","FileReader","wrapperElement","style","setProperty","readAsDataURL","_cancel","hiddenElement","_remove","queries","uid","querySelector","cancelElement","removeElement","handlers","getInputElement","ImageInput","ImageInputComponent","createInsance","saveState","getOption","hasAttribute","getHeightType","getAutoHeight","dependencies","wrappers","offset","len","borderTop","borderBottom","setupHeight","getHeight","heightType","setupState","pos","setupScrollHandler","scrollHandler","removeEventListener","cookieId","destroyScrollHandler","resetHeight","heghtType","Function","toLowerCase","ScrollComponent","scroll","destroyAll","resize","createInstance","defaultStickyOptions","reverse","animation","animationSpeed","animationClass","instanceName","offsetNum","st","lastScrollTop","attributeName","enable","eventTriggerState","disable","dataStickyAttr","attrValueInStr","attrValue","top","left","zindex","animateClass","widthTarget","targetElement","offsetLeft","callBack","callback","StickyComponent","sticky","reInitialization","defaultToggleOptions","attribute","_isEnabled","_disable","_enable","isEnabled","elementTargetAttr","elementToggleAttr","ToggleComponent","defaultPasswordMeterOptions","minLength","checkUppercase","checkLowercase","checkDigit","checkChar","scoreHighlightClass","defaultPasswordMeterQueires","visibilityQuery","highlightQuery","reset","score","highlight","checkSteps","visibilityElement","highlightElement","check","visitbility","visibleIcon","hiddenIcon","typeAttr","focus","checkScore","checkLength","checkLowerCase","val","test","getCheckScore","count","items","total","index","getScore","passwordMeter","PasswordMeterComponent","SwapperStore","defaultSwapperOptions","defaultSwapperQueires","attrQuery","parentSelector","parentElement","prepend","place","SwapperComponent","defaultMenuOptions","dropdown","hoverTimeout","accordion","slideSpeed","expand","triggerElement","_setTriggerElement","child","_isTriggerElement","_getItemOption","_getItemElement","itemElement","sub","subItem","_getItemParentElement","parentItem","_getItemParentElements","parent","parents","buffer","unshift","_getDropdownPopperConfig","placementOption","offsetValue","split","strategy","modifiers","flipVariations","_getItemChildElement","_getItemChildElements","children","_getItemSubElement","_getCss","styleProp","defaultView","ownerDocument","getComputedStyle","getPropertyValue","_getItemSubType","_isItemSubShown","_isItemDropdownPermanent","_isItemParentShown","_isItemSubElement","_hasItemSub","_getItemLinkElement","_getItemToggleElement","_showDropdown","MenuComponent","hideDropdowns","parentZindex","initDropdownPopper","reference","attach","popper","_hideDropdown","destroy","destroyDropdownPopper","_showAccordion","_hideAccordions","subElement","_hideAccordion","itemsToHide","itemToHide","_reset","removeClass","_destroy","_mouseout","_mouseover","_dismiss","itemSubType","_link","_click","click","link","dismiss","mouseover","mouseout","getItemTriggerType","getItemSubType","getItemLinkElement","getItemToggleElement","getItemSubElement","getItemParentElements","isItemSubShown","isItemParentShown","getTriggerElement","isItemDropdownPermanent","hideAccordions","elementMenu","menu","menuData","subMenu","skip","updateDropdowns","forceUpdate","menuItem","menuInstance","menuItems","menuObj","stopPropagation","defaultSearchOptions","keypress","enter","layout","showOnFocus","defaultSearchQueires","processing","_getElement","getResponsiveFormMode","responsive","breakpoint","breakPointNum","blur","charCode","keyCode","search","input","clear","responsiveFormMode","contentElement","formElement","menuObject","spinnerElement","clearElement","toolbarElement","complete","isProcessing","getQuery","getMenu","getFormElement","submitElement","resultsElement","suggestionElement","emptyElement","getContentElement","Search","SearchComponent","ID_TOKEN_KEY","getUser","username","setItem","stringify","permissions","features","removeItem","interceptors","status","location","reload","routes","redirect","component","router","history","beforeEach","to","from","dispatch","scrollTo","base_url","UPDATE_DEVICE","CHECK_USER_PASSWORD","DELETE_DEVICE","DELETE_DEVICE_FROM_ADMIN","DELETE_DEVICE_FROM_PLATFORM","GET_CUSTOMERS_LIST","GET_CUSTOMERS_LISTING","CREATE_DEVICE_BY_CSV","GET_BINS_LISTING","GET_BIN_LIST","GET_WASTE_TYPE","GET_UPLINK_LISTING","ADD_DEVICES_DATA","ADD_REPO_TO_PLATFORM","EXPORT_DEVICES","CSV_REPO","ADD_NOTIFICATION_RULES","GET_NOTIFICATION_LIST","GET_NOTIFICATION_EMAIL_LIST","DELETE_NOTIFICATION","ADD_NOTIFICATION_EMAIL","DELETE_NOTIFICATION_EMAIL","GET_NOTIFICATION_RULES","ADD_NOTIFICATION_MOBILE","GET_NOTIFICATION_MOBILE_LIST","DELETE_NOTIFICATION_MOBILE","GET_INVOICEING_LISTING","CREATE_INVOICE","UPDATE_INVOICE","GET_INVOICE","DELETE_INVOICE","GET_USERS_LIST","ADD_USERS","DELETE_USER","UPDATE_USER","CHANGE_USER_PASSWORD","ADD_COMPANIES","DELETE_COMPANIES","UPDATE_COMPANY","GET_COMPANY","PRODUCTION_SCRIPT","CREDENTIAL_SHEETS_CSV_NAMES","GET_DOWNLINKS_LISTING","CREATE_DOWNLINK","UPDATE_DOWNLINK","DELETE_DOWNLINK","GET_DOWNLINK_DEVICES","DECODE_HEX","GET_WEBHOOKS","CREATE_WEBHOOKS","UPDATE_WEBHOOKS","DELETE_WEBHOOKS","ADD_NEW_ROLE","USER_ROLE","EDIT_ROLE","DELETE_ROLE","NEW_PERMISSION","PERMISSION_LIST","UPDATE_PERMISSION","DELETE_PERMISSION","ASSIGN_PERMISSION","MANAGE_PERMISSION","PERMISSION_BY_ROLE","UN_ASSIGN_PERMISSION","SERVICES_LIST","FEATURE_LIST","NEW_ADD_FEATURE","UPDATE_FEATURE","DELETE_FEATURE","WASTE_TYPE_LIST","ADD_WASTE_TYPE","UPDATE_WASTE_TYPE","DELETE_WASTE_TYPE","ASSIGN_WASTE_TYPES","WASTE_TYPE_BY_COMPANY","CSV_DECODER","DEPTH_MAP","Bin_Notification","BINS_MOBILITY","UPDATE_BIN_DIMENSION","UPDATE_BIN_WASTE_TYPE_ID","UPDATE_BIN_LOCATION","OFFSET","UPDATE_FULL_AT","UPDATE_THRESHOLD","DEVICE_DATA","COMPANIES_DATA","ROUTING_CONFIGURATION","GET_ROUTING_LISTING","DELETE_CONFIGURATION","UPDATE_CONFIGURATION","BINS_CONFIGURATION","GET_TRACKERS_LISTING","DELETE_TRACKER_FROM_PLATFORM","UPDATE_TRACKER","GROUP_LIST","ADD_ADDRESS_GROUP","ADDRESS_LIST","ADD_ADDRESS","ADDRESS_DETAILS","URLS","important","attibuteName","removeProperty","instanceData","DataUtil","newMap","getAllInstancesByKey","v","k","getObjectPropertyValueByKey","obj","entries","getUniqueIdWithPrefix","prefix","Math","floor","random","getTime","stringSnakeToCamel","str","toUpperCase","toJSON","join","jsonStr","matched","substring","eventName","eventId","DOMEventHandlerUtil","targets","funcFromStore","calee","currentTarget","animate","duration","easings","linear","b","change","loop","timestamp","time","start","requestAnimationFrame","performance","now","animationName","animateClasses","cssClass","transitionEnd","animationEnd","animationDelay","ElementStyleUtil","animationDuration","targetPos","getElementOffset","scrollPos","pageYOffset","documentElement","ElementAnimateUtil","getCSS","getCSSVariableValue","variableName","hex","trim","getElementActualCss","prop","cache","css","cssText","offsetWidth","offsetHeight","parseFloat","attributeValue","getElementActualHeight","getElementIndex","getElementMatches","Element","f","webkitMatchesSelector","tagName","getClientRects","rect","getBoundingClientRect","win","pageXOffset","getElementParents","getHighestZindex","bufferNode","isNaN","getScrollTop","scrollingElement","getViewPort","innerWidth","innerHeight","insertAfterElement","referenceNode","insertBefore","nextSibling","isVisibleElement","throttle","func","delay","getElementChildren","childNodes","nodeType","getElementChild","slide","dir","speed","calcHeight","calcPaddingTop","calcPaddingBottom","paddingTop","paddingBottom","overflow","slideUp","slideDown","getBreakpoint","getAttributeValueByBreakpoint","incomingAttr","resultKey","resultBreakpoint","setEventMetasByName","metas","EventHandlerUtil","getEventMetasByName","setEventMetaByNameAndHandlerId","handlerId","meta","getEventsMetaByHandlerId","setFiredByNameAndHandlerId","handerId","fired","addEvent","removeEvent","initializeComponents","reinitializeComponents","reinitializeScrollComponent","defaultStepperOptions","startIndex","animationNextClass","animationPreviousClass","totatStepsNumber","passedStepIndex","currentStepIndex","_goTo","refreshUI","initHandlers","btnNext","btnPrev","steps","stepDirection","_getStepDirection","getStepContent","getLastStepIndex","getTotalStepsNumber","isLastStep","isFirstStep","isBetweenStep","goto","goNext","getNextStepIndex","goPrev","getPrevStepIndex","goFirst","goLast","getCurrentStepIndex","getPassedStepIndex","btnSubmit","StepperComponent","stepper","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","setup","__exports__","messages","en","dashboard","layoutBuilder","provision","bins","profileOverview","projects","campaigns","documents","connections","wizards","horizontal","vertical","account","accountOverview","settings","authentication","basicFlow","signIn","signUp","passwordReset","error404","error500","apps","chat","privateChat","groupChat","drawerChat","widgets","widgetsLists","widgetsStatistics","widgetsCharts","widgetsMixed","widgetsTables","widgetsFeeds","changelog","megaMenu","exampleLink","modals","general","inviteFriends","viewUsers","upgradePlan","shareAndEarn","forms","newTarget","newCard","newAddress","createAPIKey","twoFactorAuth","createApp","createAccount","documentation","components","resources","repository","customers","gettingStarted","customersListing","customerDetails","calendarApp","subscriptions","getStarted","subscriptionList","addSubscription","viewSubscription","es","profile","docsAndComponents","activity","de","ja","fr","i18n","legacy","locale","globalInjection","initInlineSvg","initVeeValidate","validateOnBlur","validateOnChange","validateOnInput","validateOnModelUpdate","App","mount","getTrackersListing","deleteTrackerFromPlatform","updateTracker","getRoutingListing","resp","routingConfig","deleteConfiguration","updateConfiguration","binsConfiguration","getDevicesListing","getDevicesExport","getCustomersListing","getCustomersList","checkPassword","updateDeviceData","deleteDeviceData","deleteDeviceFromAdmin","deleteDeviceFromPlatform","createDeviceByCsV","createDeviceByRepo","getBinsListing","getBinList","getWasteType","getUplinkList","addDevices","addRepoToPlatform","invoiceListing","getUsersList","addNewUsers","updateUser","ChangeUserPassword","json","deleteUser","addNewCompany","getCompany","deleteCompany","updateCompany","getProductionUrl","credentialSheetCsv","createInvoice","load","se_account_id","currency","po_number","invoice_date","format","due_date","delivery_date","shipmentList","platformList","sensorList","price","po_placement","payable_at_delivery","ammount_received","ammount_payable","ammount_remaining","updateInvoice","getInvoice","getNotificationListing","addNotificationRule","addNotificationEmail","getEmailNotificationList","deleteEmail","deleteNotification","getEmailRules","updateNotification","addNotificationMobile","getMobileNotificationList","deleteMobile","deleteInvoice","addNewRole","getUserRole","deleteRole","getServicesList","getFeatureList","addFeature","updateFeature","deleteFeature","addNewPermission","permissionList","updatePermission","deletePermission","assignPermission","unassignPermission","permission_By_Role","managePermission","editRole","wasteType_list","addwasteType","updatewasteType","deletewasteType","assignwasteType","wasteTypeByCompany","uploadCsvDecoder","enable_depth_Map","enable_mobility","enableNotification","update_bin_dimension","update_bin_waste_type","update_bin_location","update_bin_offset","update_bin_full_at","updateThreshold","threshold","getDevicesData","getCompaniesData","getGroupList","AddAddressGroup","getAddressList","AddAddress","AddressDetails","defaultScrollTopOptions","_scroll","go","ScrollTopComponent","goTop"],"mappings":"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","file":"js/app.3cd8f0b0.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0ef3bf8c\":\"da440d7b\",\"chunk-167a987d\":\"1189039c\",\"chunk-2d0a4247\":\"6cdbd2bd\",\"chunk-2d0da708\":\"1a39a67e\",\"chunk-2d0e5751\":\"939b37bb\",\"chunk-2d207727\":\"c49a0891\",\"chunk-2d3f8408\":\"414bd3c3\",\"chunk-2f782783\":\"fb2fbb1c\",\"chunk-2d0aa5b8\":\"7219735c\",\"chunk-68ed560a\":\"5f51772a\",\"chunk-363d1a45\":\"502092ac\",\"chunk-4c8aef54\":\"552bfe37\",\"chunk-c77d4938\":\"c0dcf502\",\"chunk-2d3fb8c6\":\"402b6186\",\"chunk-037f3ee7\":\"3c291910\",\"chunk-294e7880\":\"5761d52d\",\"chunk-da7d8262\":\"a0af19dd\",\"chunk-3c444328\":\"ab56baa0\",\"chunk-4ade0d78\":\"ffa51067\",\"chunk-309ef5b8\":\"6761b5c0\",\"chunk-3620fc4d\":\"bfd2445b\",\"chunk-2d0a34f5\":\"1ad14b85\",\"chunk-114b1f48\":\"a1d66d36\",\"chunk-1655f104\":\"a5845902\",\"chunk-2d2293a9\":\"02b5ebe7\",\"chunk-6520b019\":\"a757dbe6\",\"chunk-269571d8\":\"5a89871d\",\"chunk-4b28d042\":\"106499a8\",\"chunk-49e050b6\":\"f8dd953b\",\"chunk-57b58da0\":\"d86adca4\",\"chunk-73d36b04\":\"6bb4e29c\",\"chunk-9d0c483e\":\"e8ce73bc\",\"chunk-0816fc6f\":\"35c90875\",\"chunk-18bdd69f\":\"92d3b7e9\",\"chunk-c4072456\":\"82bfd88e\",\"chunk-39d6d5de\":\"1f0002cd\",\"chunk-4edbc77a\":\"8066a03b\",\"chunk-5d3e8d36\":\"dd5a4a43\",\"chunk-7d6bf767\":\"d094f57e\",\"chunk-805da624\":\"79e0c03b\",\"chunk-2d0a2cf8\":\"2e6d5068\",\"chunk-2d0c46b5\":\"2533dc22\",\"chunk-2d0d5c7e\":\"3fe88feb\",\"chunk-2d216388\":\"04bbb95c\",\"chunk-2d21dbea\":\"1e9e56c4\",\"chunk-2d2384d4\":\"1036d943\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-0ef3bf8c\":1,\"chunk-167a987d\":1,\"chunk-2f782783\":1,\"chunk-68ed560a\":1,\"chunk-363d1a45\":1,\"chunk-4c8aef54\":1,\"chunk-c77d4938\":1,\"chunk-037f3ee7\":1,\"chunk-294e7880\":1,\"chunk-3c444328\":1,\"chunk-4ade0d78\":1,\"chunk-309ef5b8\":1,\"chunk-114b1f48\":1,\"chunk-1655f104\":1,\"chunk-6520b019\":1,\"chunk-269571d8\":1,\"chunk-4b28d042\":1,\"chunk-49e050b6\":1,\"chunk-57b58da0\":1,\"chunk-73d36b04\":1,\"chunk-9d0c483e\":1,\"chunk-0816fc6f\":1,\"chunk-18bdd69f\":1,\"chunk-c4072456\":1,\"chunk-39d6d5de\":1,\"chunk-7d6bf767\":1,\"chunk-805da624\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0ef3bf8c\":\"1bc7377f\",\"chunk-167a987d\":\"af3870ab\",\"chunk-2d0a4247\":\"31d6cfe0\",\"chunk-2d0da708\":\"31d6cfe0\",\"chunk-2d0e5751\":\"31d6cfe0\",\"chunk-2d207727\":\"31d6cfe0\",\"chunk-2d3f8408\":\"31d6cfe0\",\"chunk-2f782783\":\"30f38911\",\"chunk-2d0aa5b8\":\"31d6cfe0\",\"chunk-68ed560a\":\"1f537f71\",\"chunk-363d1a45\":\"116fb8aa\",\"chunk-4c8aef54\":\"c9c94849\",\"chunk-c77d4938\":\"8d236f92\",\"chunk-2d3fb8c6\":\"31d6cfe0\",\"chunk-037f3ee7\":\"2f9bee7f\",\"chunk-294e7880\":\"4e5e5de0\",\"chunk-da7d8262\":\"31d6cfe0\",\"chunk-3c444328\":\"66182f66\",\"chunk-4ade0d78\":\"009a9b46\",\"chunk-309ef5b8\":\"30f38911\",\"chunk-3620fc4d\":\"31d6cfe0\",\"chunk-2d0a34f5\":\"31d6cfe0\",\"chunk-114b1f48\":\"86f8dd75\",\"chunk-1655f104\":\"573aaa9e\",\"chunk-2d2293a9\":\"31d6cfe0\",\"chunk-6520b019\":\"89d90544\",\"chunk-269571d8\":\"ffa68b95\",\"chunk-4b28d042\":\"bf838ef3\",\"chunk-49e050b6\":\"883948c9\",\"chunk-57b58da0\":\"dde59ad0\",\"chunk-73d36b04\":\"c16d0b65\",\"chunk-9d0c483e\":\"cfda46ed\",\"chunk-0816fc6f\":\"55e4bb61\",\"chunk-18bdd69f\":\"63278900\",\"chunk-c4072456\":\"d4f954ea\",\"chunk-39d6d5de\":\"0b11f0a1\",\"chunk-4edbc77a\":\"31d6cfe0\",\"chunk-5d3e8d36\":\"31d6cfe0\",\"chunk-7d6bf767\":\"ef3350f5\",\"chunk-805da624\":\"31d9adac\",\"chunk-2d0a2cf8\":\"31d6cfe0\",\"chunk-2d0c46b5\":\"31d6cfe0\",\"chunk-2d0d5c7e\":\"31d6cfe0\",\"chunk-2d216388\":\"31d6cfe0\",\"chunk-2d21dbea\":\"31d6cfe0\",\"chunk-2d2384d4\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { getDevicesListing } from \"../api/devices\";\r\n\r\nexport const GET_DEVICES_LISTING = \"GET_DEVICES_LISTING\";\r\nexport const SET_DEVICES_LISTING = \"SET_DEVICES_LISTING\";\r\nexport const SET_ERROR = \"SET_ERROR\";\r\nexport const SET_LOADING = \"SET_LOADING\";\r\nexport const SET_TOTAL_BINS = \"SET_TOTAL_BINS\";\r\n\r\nexport const devices = {\r\n namespaced: true,\r\n state: {\r\n devices: [],\r\n loading: false,\r\n },\r\n mutations: {\r\n [SET_DEVICES_LISTING]: (state, data) => {\r\n state.devices = data;\r\n },\r\n [SET_TOTAL_BINS]: (state, data) => {\r\n state.totalNumberOfBins = data;\r\n },\r\n },\r\n actions: {\r\n [GET_DEVICES_LISTING]: async ({ commit }, payload) => {\r\n // commit(SET_LOADING, true);\r\n // commit(SET_ERROR, null, { root: true });\r\n try {\r\n const res = await getDevicesListing(payload);\r\n\r\n // commit(SET_LOADING, false);\r\n commit(SET_DEVICES_LISTING, res.devices);\r\n // commit(SET_TOTAL_BINS, res.total_number_of_records);\r\n } catch (error) {\r\n // commit(SET_LOADING, false);\r\n console.log(error);\r\n // let message = error.response.data.message;\r\n // commit(\"SET_ERROR\", message, { root: true });\r\n }\r\n },\r\n },\r\n getters: {\r\n getDeviceListing: (state) => {\r\n return state.devices;\r\n },\r\n },\r\n};\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport JwtService from \"@/core/services/JwtService\";\r\nimport { Actions, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport interface User {\r\n name: string;\r\n email: string;\r\n password: string;\r\n token: string;\r\n}\r\n\r\nexport interface UserAuthInfo {\r\n errors: unknown;\r\n user: User;\r\n isAuthenticated: boolean;\r\n}\r\n\r\n@Module\r\nexport default class AuthModule extends VuexModule implements UserAuthInfo {\r\n errors = {};\r\n user = {} as User;\r\n isAuthenticated = !!JwtService.getToken();\r\n\r\n /**\r\n * Get current user object\r\n * @returns User\r\n */\r\n get currentUser(): User {\r\n return this.user;\r\n }\r\n\r\n /**\r\n * Verify user authentication\r\n * @returns boolean\r\n */\r\n get isUserAuthenticated(): boolean {\r\n return this.isAuthenticated;\r\n }\r\n\r\n /**\r\n * Get authentification errors\r\n * @returns array\r\n */\r\n get getErrors() {\r\n return this.errors;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_ERROR](error) {\r\n this.errors = error;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_AUTH](user) {\r\n this.isAuthenticated = true;\r\n this.user = user;\r\n this.errors = [];\r\n JwtService.saveUser(this.user);\r\n JwtService.saveToken(this.user.token);\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_USER](user) {\r\n this.user = user;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_PASSWORD](password) {\r\n this.user.password = password;\r\n }\r\n\r\n @Mutation\r\n [Mutations.PURGE_AUTH]() {\r\n this.isAuthenticated = false;\r\n this.user = {} as User;\r\n this.errors = [];\r\n JwtService.destroyToken();\r\n }\r\n\r\n @Action\r\n [Actions.LOGIN](credentials) {\r\n const params = {\r\n ...credentials,\r\n };\r\n return new Promise((resolve, reject) => {\r\n ApiService.query(`auth/login_admin`, params)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_AUTH, data);\r\n resolve();\r\n })\r\n .catch(() => {\r\n this.context.commit(Mutations.SET_ERROR, {\r\n email: [\"These credentials do not match our records.\"],\r\n });\r\n reject();\r\n });\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOGOUT]() {\r\n this.context.commit(Mutations.PURGE_AUTH);\r\n }\r\n\r\n @Action\r\n [Actions.REGISTER](credentials) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(\"register\", credentials)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_AUTH, data);\r\n resolve();\r\n })\r\n .catch(({ response }) => {\r\n this.context.commit(Mutations.SET_ERROR, response.data.errors);\r\n reject();\r\n });\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.FORGOT_PASSWORD](payload) {\r\n const params = {\r\n params: {\r\n ...payload,\r\n },\r\n };\r\n return new Promise((resolve, reject) => {\r\n ApiService.query(\"forgot_password\", params)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_AUTH, data);\r\n resolve();\r\n })\r\n .catch(({ response }) => {\r\n this.context.commit(Mutations.SET_ERROR, response.data.errors);\r\n reject();\r\n });\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.VERIFY_AUTH]() {\r\n if (JwtService.getToken()) {\r\n ApiService.setHeader();\r\n const params = {\r\n params: {\r\n token: JwtService.getToken(),\r\n },\r\n };\r\n // ApiService.query(\"verify_token\", params as AxiosRequestConfig)\r\n // .then(({ data }) => {\r\n // this.context.commit(Mutations.SET_AUTH, data);\r\n // })\r\n // .catch(({ response }) => {\r\n // this.context.commit(Mutations.SET_ERROR, response.data.errors);\r\n // this.context.commit(Mutations.PURGE_AUTH);\r\n // });\r\n } else {\r\n this.context.commit(Mutations.PURGE_AUTH);\r\n }\r\n }\r\n\r\n // @Action\r\n // [Actions.UPDATE_USER](payload) {\r\n // ApiService.setHeader();\r\n // return new Promise((resolve, reject) => {\r\n // ApiService.post(\"update_user\", payload)\r\n // .then(({ data }) => {\r\n // this.context.commit(Mutations.SET_USER, data);\r\n // resolve();\r\n // })\r\n // .catch(({ response }) => {\r\n // this.context.commit(Mutations.SET_ERROR, response.data.errors);\r\n // reject();\r\n // });\r\n // });\r\n // }\r\n}\r\n","import { Module, VuexModule, Mutation, Action } from \"vuex-module-decorators\";\r\nimport { Actions, Mutations } from \"@/store/enums/StoreEnums\";\r\n\r\nexport interface StoreInfo {\r\n classes: {\r\n header?: Array;\r\n headerContainer?: Array;\r\n headerMobile?: Array;\r\n headerMenu?: Array;\r\n aside?: Array;\r\n asideMenu?: Array;\r\n asideToggle?: Array;\r\n toolbar?: Array;\r\n toolbarContainer?: Array;\r\n content?: Array;\r\n contentContainer?: Array;\r\n footerContainer?: Array;\r\n sidebar?: Array;\r\n pageTitle?: Array;\r\n };\r\n}\r\n\r\n@Module\r\nexport default class BodyModule extends VuexModule implements StoreInfo {\r\n classes = {};\r\n\r\n /**\r\n * Get current page title\r\n * @returns string\r\n */\r\n get getClasses() {\r\n return (position) => {\r\n if (typeof position !== \"undefined\") {\r\n return this.classes[position];\r\n }\r\n return this.classes;\r\n };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLASSNAME_BY_POSITION](payload) {\r\n const { position, className } = payload;\r\n if (!this.classes[position]) {\r\n this.classes[position] = [];\r\n }\r\n this.classes[position].push(className);\r\n }\r\n\r\n @Action\r\n [Actions.ADD_BODY_CLASSNAME](className) {\r\n document.body.classList.add(className);\r\n }\r\n\r\n @Action\r\n [Actions.REMOVE_BODY_CLASSNAME](className) {\r\n document.body.classList.remove(className);\r\n }\r\n\r\n @Action\r\n [Actions.ADD_BODY_ATTRIBUTE](payload) {\r\n const { qulifiedName, value } = payload;\r\n document.body.setAttribute(qulifiedName, value);\r\n }\r\n\r\n @Action\r\n [Actions.REMOVE_BODY_ATTRIBUTE](payload) {\r\n const { qulifiedName } = payload;\r\n document.body.removeAttribute(qulifiedName);\r\n }\r\n\r\n @Action\r\n [Actions.ADD_CLASSNAME](payload) {\r\n this.context.commit(Mutations.SET_CLASSNAME_BY_POSITION, payload);\r\n }\r\n}\r\n","import { Action, Mutation, Module, VuexModule } from \"vuex-module-decorators\";\r\nimport { Actions, Mutations } from \"@/store/enums/StoreEnums\";\r\n\r\ninterface Breadcrumb {\r\n title: string;\r\n pageBreadcrumbPath: Array;\r\n}\r\n\r\ninterface StoreInfo {\r\n breadcrumbs: Breadcrumb;\r\n}\r\n\r\n@Module\r\nexport default class BreadcrumbsModule extends VuexModule implements StoreInfo {\r\n breadcrumbs = {} as Breadcrumb;\r\n\r\n /**\r\n * Get breadcrumb object for current page\r\n * @returns object\r\n */\r\n get getBreadcrumbs(): Breadcrumb {\r\n return this.breadcrumbs;\r\n }\r\n\r\n /**\r\n * Get breadcrumb array for current page\r\n * @returns object\r\n */\r\n get pageBreadcrumbPath(): Array {\r\n return this.breadcrumbs.pageBreadcrumbPath;\r\n }\r\n\r\n /**\r\n * Get current page title\r\n * @returns string\r\n */\r\n get pageTitle(): string {\r\n return this.breadcrumbs.title;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_BREADCRUMB_MUTATION](payload) {\r\n this.breadcrumbs = payload;\r\n }\r\n\r\n @Action\r\n [Actions.SET_BREADCRUMB_ACTION](payload) {\r\n this.context.commit(Mutations.SET_BREADCRUMB_MUTATION, payload);\r\n }\r\n}\r\n","import LayoutConfigTypes from \"@/core/config/LayoutConfigTypes\";\r\n\r\nconst config: LayoutConfigTypes = {\r\n themeName: \"Metronic\",\r\n themeVersion: \"8.0.31\",\r\n demo: \"demo1\",\r\n main: {\r\n type: \"default\",\r\n primaryColor: \"#009EF7\",\r\n logo: {\r\n dark: \"/media/logos/bblogo.png\",\r\n light: \"/media/logos/bblogo2.png\",\r\n },\r\n },\r\n loader: {\r\n logo: \"/media/logos/bblogo2\",\r\n display: true,\r\n type: \"default\",\r\n },\r\n scrollTop: {\r\n display: true,\r\n },\r\n header: {\r\n display: true,\r\n menuIcon: \"font\",\r\n width: \"fluid\",\r\n fixed: {\r\n desktop: true,\r\n tabletAndMobile: true,\r\n },\r\n },\r\n toolbar: {\r\n display: true,\r\n width: \"fluid\",\r\n fixed: {\r\n desktop: true,\r\n tabletAndMobile: true,\r\n },\r\n },\r\n aside: {\r\n display: true,\r\n theme: \"light\",\r\n fixed: true,\r\n menuIcon: \"svg\",\r\n minimized: false,\r\n minimize: true,\r\n hoverable: true,\r\n },\r\n content: {\r\n width: \"fixed\",\r\n },\r\n footer: {\r\n width: \"fluid\",\r\n },\r\n};\r\n\r\nexport default config;\r\n","import objectPath from \"object-path\";\r\nimport merge from \"deepmerge\";\r\nimport layoutConfig from \"@/core/config/DefaultLayoutConfig\";\r\nimport { Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Mutation, Module, VuexModule } from \"vuex-module-decorators\";\r\nimport LayoutConfigTypes from \"@/core/config/LayoutConfigTypes\";\r\n\r\ninterface StoreInfo {\r\n config: LayoutConfigTypes;\r\n initial: LayoutConfigTypes;\r\n}\r\n\r\n@Module\r\nexport default class ConfigModule extends VuexModule implements StoreInfo {\r\n config = layoutConfig;\r\n initial = layoutConfig;\r\n\r\n /**\r\n * Get config from layout config\r\n * @returns {function(path, defaultValue): *}\r\n */\r\n get layoutConfig() {\r\n return (path, defaultValue) => {\r\n return objectPath.get(this.config, path, defaultValue);\r\n };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LAYOUT_CONFIG](payload): void {\r\n this.config = payload;\r\n }\r\n\r\n @Mutation\r\n [Mutations.RESET_LAYOUT_CONFIG]() {\r\n this.config = Object.assign({}, this.initial);\r\n }\r\n\r\n @Mutation\r\n [Mutations.OVERRIDE_LAYOUT_CONFIG](): void {\r\n this.config = this.initial = Object.assign(\r\n {},\r\n this.initial,\r\n JSON.parse(window.localStorage.getItem(\"config\") || \"{}\")\r\n );\r\n }\r\n\r\n @Mutation\r\n [Mutations.OVERRIDE_PAGE_LAYOUT_CONFIG](payload): void {\r\n this.config = merge(this.config, payload);\r\n }\r\n}\r\n","import { createStore } from \"vuex\";\r\nimport { config } from \"vuex-module-decorators\";\r\nimport { devices } from \"./modules/devices\";\r\nimport AuthModule from \"@/store/modules/AuthModule\";\r\nimport BodyModule from \"@/store/modules/BodyModule\";\r\nimport BreadcrumbsModule from \"@/store/modules/BreadcrumbsModule\";\r\nimport ConfigModule from \"@/store/modules/ConfigModule\";\r\n\r\nconfig.rawError = true;\r\n\r\nconst store = createStore({\r\n modules: {\r\n AuthModule,\r\n BodyModule,\r\n BreadcrumbsModule,\r\n ConfigModule,\r\n devices,\r\n },\r\n});\r\n\r\nexport default store;\r\n","import { App } from \"vue\";\r\nimport axios from \"axios\";\r\nimport VueAxios from \"vue-axios\";\r\nimport JwtService from \"@/core/services/JwtService\";\r\nimport { AxiosResponse, AxiosRequestConfig } from \"axios\";\r\n\r\n/**\r\n * @description service to call HTTP request via Axios\r\n */\r\nclass ApiService {\r\n /**\r\n * @description property to share vue instance\r\n */\r\n public static vueInstance: App;\r\n\r\n /**\r\n * @description initialize vue axios\r\n */\r\n public static init(app: App) {\r\n ApiService.vueInstance = app;\r\n ApiService.vueInstance.use(VueAxios, axios);\r\n ApiService.vueInstance.axios.defaults.baseURL = process.env.VUE_APP_API_URL;\r\n }\r\n\r\n /**\r\n * @description set the default HTTP request headers\r\n */\r\n public static setHeader(): void {\r\n ApiService.vueInstance.axios.defaults.headers.common[\r\n \"Authorization\"\r\n ] = `Token ${JwtService.getToken()}`;\r\n ApiService.vueInstance.axios.defaults.headers.common[\"Accept\"] =\r\n \"application/json\";\r\n }\r\n\r\n /**\r\n * @description send the GET HTTP request\r\n * @param resource: string\r\n * @param params: AxiosRequestConfig\r\n * @returns Promise\r\n */\r\n public static query(\r\n url: string,\r\n params: AxiosRequestConfig\r\n ): Promise {\r\n return ApiService.vueInstance.axios.post(url, params);\r\n }\r\n\r\n /**\r\n * @description send the GET HTTP request\r\n * @param resource: string\r\n * @param slug: string\r\n * @returns Promise\r\n */\r\n public static get(\r\n resource: string,\r\n slug = \"\" as string\r\n ): Promise {\r\n return ApiService.vueInstance.axios.get(`${resource}/${slug}`);\r\n }\r\n\r\n /**\r\n * @description set the POST HTTP request\r\n * @param resource: string\r\n * @param params: AxiosRequestConfig\r\n * @returns Promise\r\n */\r\n public static post(\r\n resource: string,\r\n params: AxiosRequestConfig\r\n ): Promise {\r\n return ApiService.vueInstance.axios.post(`${resource}`, params);\r\n }\r\n\r\n /**\r\n * @description send the UPDATE HTTP request\r\n * @param resource: string\r\n * @param slug: string\r\n * @param params: AxiosRequestConfig\r\n * @returns Promise\r\n */\r\n public static update(\r\n resource: string,\r\n slug: string,\r\n params: AxiosRequestConfig\r\n ): Promise {\r\n return ApiService.vueInstance.axios.put(`${resource}/${slug}`, params);\r\n }\r\n\r\n /**\r\n * @description Send the PUT HTTP request\r\n * @param resource: string\r\n * @param params: AxiosRequestConfig\r\n * @returns Promise\r\n */\r\n public static put(\r\n resource: string,\r\n params: AxiosRequestConfig\r\n ): Promise {\r\n return ApiService.vueInstance.axios.put(`${resource}`, params);\r\n }\r\n\r\n /**\r\n * @description Send the DELETE HTTP request\r\n * @param resource: string\r\n * @returns Promise\r\n */\r\n public static delete(resource: string): Promise {\r\n return ApiService.vueInstance.axios.delete(resource);\r\n }\r\n}\r\n\r\nexport default ApiService;\r\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=da7f236e&lang=scss\"","enum Actions {\r\n // action types\r\n ADD_BODY_CLASSNAME = \"addBodyClassName\",\r\n REMOVE_BODY_CLASSNAME = \"removeBodyClassName\",\r\n ADD_BODY_ATTRIBUTE = \"addBodyAttribute\",\r\n REMOVE_BODY_ATTRIBUTE = \"removeBodyAttribute\",\r\n ADD_CLASSNAME = \"addClassName\",\r\n VERIFY_AUTH = \"verifyAuth\",\r\n LOGIN = \"login\",\r\n DEVICES_LIST = \"devicesList\",\r\n LOGOUT = \"logout\",\r\n REGISTER = \"register\",\r\n UPDATE_USER = \"updateUser\",\r\n FORGOT_PASSWORD = \"forgotPassword\",\r\n SET_BREADCRUMB_ACTION = \"setBreadcrumbAction\",\r\n}\r\n\r\nenum Mutations {\r\n // mutation types\r\n SET_CLASSNAME_BY_POSITION = \"appendBreadcrumb\",\r\n PURGE_AUTH = \"logOut\",\r\n SET_AUTH = \"setAuth\",\r\n SET_USER = \"setUser\",\r\n SET_PASSWORD = \"setPassword\",\r\n SET_ERROR = \"setError\",\r\n SET_BREADCRUMB_MUTATION = \"setBreadcrumbMutation\",\r\n SET_LAYOUT_CONFIG = \"setLayoutConfig\",\r\n RESET_LAYOUT_CONFIG = \"resetLayoutConfig\",\r\n OVERRIDE_LAYOUT_CONFIG = \"overrideLayoutConfig\",\r\n OVERRIDE_PAGE_LAYOUT_CONFIG = \"overridePageLayoutConfig\",\r\n}\r\n\r\nexport { Actions, Mutations };\r\n","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","/* eslint-disable no-useless-escape */\r\n// DOCS: https://javascript.info/cookie\r\nexport class CookieComponent {\r\n /**\r\n * Returns the cookie with the given name, or undefined if not found\r\n *\r\n * @param {string} name - cookie name\r\n * @returns string | null\r\n */\r\n public static get(name: string): string | undefined {\r\n let matches = document.cookie.match(\r\n new RegExp('(?:^|; )' + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + '=([^;]*)')\r\n )\r\n return matches ? decodeURIComponent(matches[1]) : undefined\r\n }\r\n\r\n /**\r\n * Please note that a cookie value is encoded,\r\n * so getCookie uses a built-in decodeURIComponent function to decode it.\r\n *\r\n * @param {string} name - cookie name\r\n * @param {string | number | boolean} value - cookie value\r\n * @param {any} cookieOptions - cookie options\r\n * @returns void\r\n */\r\n public static set(name: string, value: string | number | boolean, cookieOptions: any): void {\r\n const options = {\r\n path: '/',\r\n // add other defaults here if necessary\r\n ...cookieOptions,\r\n }\r\n\r\n if (options.expires instanceof Date) {\r\n options.expires = options.expires.toUTCString()\r\n }\r\n\r\n let updatedCookie = encodeURIComponent(name) + '=' + encodeURIComponent(value)\r\n\r\n for (let optionKey in options) {\r\n updatedCookie += '; ' + optionKey\r\n let optionValue = options[optionKey]\r\n if (optionValue !== true) {\r\n updatedCookie += '=' + optionValue\r\n }\r\n }\r\n\r\n document.cookie = updatedCookie\r\n }\r\n\r\n /**\r\n * To delete a cookie, we can call it with a negative expiration date\r\n *\r\n * @param {string} name\r\n */\r\n public static delete(name: string): void {\r\n CookieComponent.set(name, '', {\r\n 'max-age': -1,\r\n })\r\n }\r\n}\r\n","import {\r\n EventHandlerUtil,\r\n getUniqueIdWithPrefix,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getAttributeValueByBreakpoint,\r\n throttle,\r\n getCSS,\r\n DOMEventHandlerUtil,\r\n ElementStyleUtil,\r\n} from '../_utils/index'\r\n\r\nexport class DrawerStore {\r\n static store: Map = new Map()\r\n\r\n public static set(instanceId: string, drawerComponentObj: DrawerComponent): void {\r\n if (DrawerStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n DrawerStore.store.set(instanceId, drawerComponentObj);\r\n }\r\n\r\n public static get(instanceId: string): DrawerComponent | undefined {\r\n if (!DrawerStore.has(instanceId)) {\r\n return\r\n }\r\n return DrawerStore.store.get(instanceId);\r\n }\r\n\r\n public static remove(instanceId: string): void {\r\n if (!DrawerStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n DrawerStore.store.delete(instanceId)\r\n }\r\n\r\n public static has(instanceId: string): boolean {\r\n return DrawerStore.store.has(instanceId);\r\n }\r\n\r\n public static getAllInstances() {\r\n return DrawerStore.store;\r\n }\r\n}\r\n\r\nexport interface DrawerOptions {\r\n overlay: boolean\r\n baseClass: string\r\n overlayClass: string\r\n direction: string\r\n}\r\n\r\nconst defaultDrawerOptions: DrawerOptions = {\r\n overlay: true,\r\n baseClass: 'drawer',\r\n overlayClass: 'drawer-overlay',\r\n direction: 'end',\r\n}\r\n\r\nclass DrawerComponent {\r\n element: HTMLElement\r\n overlayElement: HTMLElement | null = null\r\n toggleElement: HTMLElement | null = null\r\n options: DrawerOptions\r\n instanceUid: string\r\n name: string = ''\r\n shown: boolean = false\r\n lastWidth: number = 0\r\n closeElement: HTMLElement | null = null\r\n\r\n constructor(_element: HTMLElement, options: DrawerOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultDrawerOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('drawer')\r\n this.overlayElement = null\r\n this.name = this.element.getAttribute('data-kt-drawer-name') || ''\r\n this.shown = false\r\n this.toggleElement = null\r\n // Event Handlers\r\n this._handlers()\r\n // Update Instance\r\n this._update()\r\n // Bind Instance\r\n DrawerStore.set(this.element.id, this)\r\n }\r\n\r\n private _handlers = () => {\r\n const togglers = this._getOption('toggle') as string\r\n const closers = this._getOption('close') as string\r\n\r\n if (togglers !== null && togglers.length > 0) {\r\n DOMEventHandlerUtil.on(document.body, togglers, 'click', (e: Event) => {\r\n e.preventDefault()\r\n this.toggleElement = document.getElementById(togglers)\r\n this._toggle()\r\n })\r\n }\r\n\r\n if (closers !== null && closers.length > 0) {\r\n DOMEventHandlerUtil.on(document.body, closers, 'click', (e: Event) => {\r\n e.preventDefault()\r\n this.closeElement = document.getElementById(closers)\r\n\r\n this._hide()\r\n })\r\n }\r\n }\r\n\r\n private _update = () => {\r\n const width = String(this._getOption('width'))\r\n const direction = String(this._getOption('direction'))\r\n\r\n // Reset state\r\n const hasBaseClass = this.element.classList.contains(`${this.options.baseClass}-on`)\r\n const bodyCanvasAttr = String(document.body.getAttribute(`data-kt-drawer-${this.name}-`))\r\n\r\n if (hasBaseClass === true && bodyCanvasAttr === 'on') {\r\n this.shown = true\r\n } else {\r\n this.shown = false\r\n }\r\n\r\n // Activate/deactivate\r\n if (this._getOption('activate') === true) {\r\n this.element.classList.add(this.options.baseClass)\r\n this.element.classList.add(`${this.options.baseClass}-${direction}`)\r\n ElementStyleUtil.set(this.element, 'width', width, true)\r\n\r\n this.lastWidth = parseInt(width)\r\n } else {\r\n ElementStyleUtil.set(this.element, 'width', '')\r\n this.element.classList.remove(this.options.baseClass)\r\n this.element.classList.remove(`${this.options.baseClass}-${direction}`)\r\n this._hide()\r\n }\r\n }\r\n\r\n private _getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`data-kt-drawer-${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n return true\r\n } else {\r\n if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n private _toggle = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.toggle') === false) {\r\n return\r\n }\r\n\r\n if (this.shown) {\r\n this._hide()\r\n } else {\r\n this._show()\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.toggled')\r\n }\r\n\r\n private _hide = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.hide') === false) {\r\n return\r\n }\r\n\r\n this.shown = false\r\n this._deleteOverlay()\r\n document.body.removeAttribute(`data-kt-drawer-${this.name}`)\r\n document.body.removeAttribute(`data-kt-drawer`)\r\n this.element.classList.remove(`${this.options.baseClass}-on`)\r\n if (this.toggleElement != null) {\r\n this.toggleElement.classList.remove('active')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.after.hidden')\r\n }\r\n\r\n private _show = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.show') === false) {\r\n return\r\n }\r\n\r\n this.shown = true\r\n this._createOverlay()\r\n document.body.setAttribute(`data-kt-drawer-${this.name}`, 'on')\r\n document.body.setAttribute('data-kt-drawer', 'on')\r\n this.element.classList.add(`${this.options.baseClass}-on`)\r\n if (this.toggleElement !== null) {\r\n this.toggleElement.classList.add('active')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.shown')\r\n }\r\n\r\n private _createOverlay = () => {\r\n if (this._getOption('overlay') === true) {\r\n this.overlayElement = document.createElement('DIV')\r\n const elementZIndex = getCSS(this.element, 'z-index')\r\n if (elementZIndex) {\r\n const overlayZindex = parseInt(elementZIndex) - 1\r\n ElementStyleUtil.set(this.overlayElement, 'z-index', overlayZindex) // update\r\n }\r\n document.body.append(this.overlayElement)\r\n const overlayClassOption = this._getOption('overlay-class')\r\n if (overlayClassOption) {\r\n this.overlayElement.classList.add(overlayClassOption.toString())\r\n }\r\n this.overlayElement.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n this._hide()\r\n })\r\n }\r\n }\r\n\r\n private _deleteOverlay = () => {\r\n if (this.overlayElement !== null && this.overlayElement.parentNode) {\r\n this.overlayElement.parentNode.removeChild(this.overlayElement)\r\n }\r\n }\r\n\r\n private _getDirection = () => {\r\n return String(this._getOption('direction')) === 'left' ? 'left' : 'right'\r\n }\r\n\r\n private _getWidth = () => {\r\n let width = this._getOption('width')\r\n if (width && width === 'auto') {\r\n width = getCSS(this.element, 'width')\r\n }\r\n\r\n return width\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public toggle = () => {\r\n this._toggle()\r\n }\r\n\r\n public show = () => {\r\n this._show()\r\n }\r\n\r\n public hide = () => {\r\n this._hide()\r\n }\r\n\r\n public isShown = () => {\r\n return this.shown\r\n }\r\n\r\n public update = () => {\r\n this._update()\r\n }\r\n\r\n public goElement = () => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace = (elementId: string): boolean => {\r\n return DrawerStore.has(elementId)\r\n }\r\n\r\n public static getInstance = (elementId: string) => {\r\n return DrawerStore.get(elementId)\r\n }\r\n\r\n public static hideAll = () => {\r\n const oldInstances = DrawerStore.getAllInstances()\r\n oldInstances.forEach((dr) => {\r\n dr.hide()\r\n })\r\n }\r\n\r\n public static updateAll = () => {\r\n const oldInstances = DrawerStore.getAllInstances()\r\n oldInstances.forEach((dr) => {\r\n dr.update()\r\n })\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string): void {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let drawer = DrawerComponent.getInstance(item.id)\r\n if (!drawer) {\r\n drawer = new DrawerComponent(item, defaultDrawerOptions)\r\n }\r\n drawer.element = item;\r\n drawer.hide()\r\n })\r\n }\r\n\r\n // Dismiss instances\r\n public static handleDismiss = () => {\r\n // External drawer toggle handler\r\n DOMEventHandlerUtil.on(document.body, '[data-kt-drawer-dismiss=\"true\"]', 'click', () => {\r\n /* @ts-ignore */\r\n const element = this.closest('[data-kt-drawer=\"true\"]')\r\n if (element) {\r\n const drawer = DrawerComponent.getInstance(element)\r\n if (drawer && drawer.isShown()) {\r\n drawer.hide()\r\n }\r\n }\r\n })\r\n }\r\n\r\n // Global Initialization\r\n public static initGlobalHandlers(): void {\r\n // Window Resize Handling\r\n window.addEventListener('resize', function () {\r\n let timer: number | undefined\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n const elements = document.body.querySelectorAll('[data-kt-drawer=\"true\"]')\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n const instance = DrawerComponent.getInstance(item.id)\r\n if (instance) {\r\n instance.element = item;\r\n instance.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n public static bootstrap = () => {\r\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\r\n DrawerComponent.initGlobalHandlers()\r\n DrawerComponent.handleDismiss()\r\n }\r\n\r\n public static reinitialization = () => {\r\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\r\n DrawerComponent.hideAll()\r\n DrawerComponent.updateAll()\r\n DrawerComponent.handleDismiss()\r\n }\r\n}\r\n\r\nexport {DrawerComponent, defaultDrawerOptions}\r\n","import {\r\n DataUtil,\r\n ElementStyleUtil,\r\n EventHandlerUtil,\r\n getUniqueIdWithPrefix,\r\n getAttributeValueByBreakpoint,\r\n} from '../_utils/index'\r\n\r\nexport interface FeedbackOptions {\r\n width?: number\r\n placement?: string\r\n content?: string\r\n type?: string\r\n}\r\n\r\nconst defaultFeedbackOptions: FeedbackOptions = {\r\n width: 100,\r\n placement: 'top-center',\r\n content: '',\r\n type: 'popup',\r\n}\r\n\r\nclass FeedbackComponent {\r\n element: HTMLElement\r\n options: FeedbackOptions\r\n instanceUid: string\r\n shown: boolean\r\n\r\n constructor(_element: HTMLElement, options: FeedbackOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultFeedbackOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('feedback')\r\n this.shown = false\r\n\r\n // Event handlers\r\n this._handlers() // will add in the show popup\r\n DataUtil.set(this.element, 'feedback', this)\r\n }\r\n\r\n private _handlers = () => {\r\n this.element.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n this._go()\r\n })\r\n }\r\n\r\n private _go = () => {}\r\n\r\n private showPopup = () => {\r\n this.element = document.createElement('DIV')\r\n\r\n this.element.classList.add('feedback feedback-popup')\r\n this.element.innerHTML = this.options.content || ''\r\n\r\n if (this.options.placement === 'top-center') {\r\n this.setPopupTopCenterPosition()\r\n }\r\n\r\n document.body.appendChild(this.element)\r\n this.element.classList.add('feedback-shown')\r\n this.shown = true\r\n }\r\n\r\n private setPopupTopCenterPosition = () => {\r\n const width = getAttributeValueByBreakpoint(this.options.width?.toString() || '0')\r\n const height = ElementStyleUtil.get(this.element, 'height')\r\n this.element.classList.add('feedback-top-center')\r\n ElementStyleUtil.set(this.element, 'width', width)\r\n ElementStyleUtil.set(this.element, 'left', '50%')\r\n ElementStyleUtil.set(this.element, 'top', '-' + height)\r\n }\r\n\r\n private hidePopup = () => {\r\n this.element.remove()\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public show = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.feedback.show') === false) {\r\n return\r\n }\r\n\r\n if (this.options.type === 'popup') {\r\n this.showPopup()\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.feedback.shown')\r\n\r\n return this\r\n }\r\n\r\n public hide = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.feedback.hide') === false) {\r\n return\r\n }\r\n\r\n if (this.options.type === 'popup') {\r\n this.hidePopup()\r\n }\r\n\r\n this.shown = false\r\n EventHandlerUtil.trigger(this.element, 'kt.feedback.hidden')\r\n return this\r\n }\r\n\r\n public isShown = () => {\r\n return this.isShown\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string) {\r\n throw new Error('not implemented')\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement) {\r\n throw new Error('not implemented')\r\n }\r\n\r\n public static getInstance(element: HTMLElement) {\r\n throw new Error('not implemented')\r\n }\r\n\r\n public static bootstrap(attr: string = '[data-Feedback]') {\r\n throw new Error('not implemented')\r\n }\r\n}\r\n\r\nexport {FeedbackComponent, defaultFeedbackOptions}\r\n","import {EventHandlerUtil, DataUtil, getUniqueIdWithPrefix, getCSS} from '../_utils/index'\r\n\r\nexport interface IImageInputOptions {}\r\n\r\nexport interface IImageInputQueries {\r\n componentName: string\r\n instanseQuery: string\r\n inputQuery: string\r\n wrapperQuery: string\r\n cancelQuery: string\r\n removeQuery: string\r\n hiddenQuery: string\r\n}\r\n\r\nconst defaultImageInputOptions = {}\r\n\r\nconst defaultImageInputQueires: IImageInputQueries = {\r\n componentName: 'image-input',\r\n instanseQuery: '[data-kt-image-input]',\r\n inputQuery: 'input[type=\"file\"]',\r\n wrapperQuery: '.image-input-wrapper',\r\n cancelQuery: '[data-kt-image-input-action=\"cancel\"]',\r\n removeQuery: '[data-kt-image-input-action=\"remove\"]',\r\n hiddenQuery: 'input[type=\"hidden\"]',\r\n}\r\n\r\nclass ImageInputComponent {\r\n element: HTMLElement\r\n inputElement: HTMLInputElement | null\r\n wrapperElement: HTMLElement | null\r\n cancelElement: HTMLElement | null\r\n removeElement: HTMLElement | null\r\n hiddenElement: HTMLInputElement | null\r\n src: string = ''\r\n options: IImageInputOptions\r\n queries: IImageInputQueries\r\n uid: string\r\n value: string = ''\r\n\r\n constructor(_element: HTMLElement, _options: IImageInputOptions, _queries: IImageInputQueries) {\r\n // Variables\r\n this.options = Object.assign(defaultImageInputOptions, _options)\r\n this.queries = _queries\r\n this.uid = getUniqueIdWithPrefix(this.queries.componentName)\r\n\r\n // Elements\r\n this.element = _element\r\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\r\n this.wrapperElement = this.element.querySelector(this.queries.wrapperQuery)\r\n this.cancelElement = this.element.querySelector(this.queries.cancelQuery)\r\n this.removeElement = this.element.querySelector(this.queries.removeQuery)\r\n this.hiddenElement = this.element.querySelector(this.queries.hiddenQuery)\r\n if (this.wrapperElement) {\r\n this.src = getCSS(this.wrapperElement, 'backgroundImage')\r\n }\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private handlers(): void {\r\n this.element.addEventListener('change', this._change)\r\n if (this.cancelElement) {\r\n this.cancelElement.addEventListener('click', this._cancel)\r\n }\r\n\r\n if (this.removeElement) {\r\n this.removeElement.addEventListener('click', this._cancel)\r\n }\r\n }\r\n\r\n // Event Handlers\r\n private _change = (e: Event) => {\r\n e.preventDefault()\r\n\r\n if (this.inputElement !== null && this.inputElement.files && this.inputElement.files[0]) {\r\n // Fire change event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.change', e) === false) {\r\n return\r\n }\r\n\r\n const reader = new FileReader()\r\n\r\n reader.onload = (e: ProgressEvent) => {\r\n if (this.wrapperElement && e.target) {\r\n this.wrapperElement.style.setProperty('background-image', `url('${e.target.result}')`)\r\n }\r\n }\r\n\r\n reader.readAsDataURL(this.inputElement.files[0])\r\n this.element.classList.add('image-input-changed')\r\n this.element.classList.remove('image-input-empty')\r\n\r\n // Fire removed event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.changed', e)\r\n }\r\n }\r\n\r\n private _cancel = (e: Event) => {\r\n e.preventDefault()\r\n\r\n // Fire cancel event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.cancel', e) === false) {\r\n return\r\n }\r\n\r\n this.element.classList.remove('image-input-changed')\r\n this.element.classList.remove('image-input-empty')\r\n this.element.style.setProperty('background-image', this.src)\r\n if (this.inputElement) {\r\n this.inputElement.value = ''\r\n }\r\n\r\n if (this.hiddenElement !== null) {\r\n this.hiddenElement.value = '0'\r\n }\r\n\r\n // Fire canceled event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.canceled', e)\r\n }\r\n\r\n private _remove = (e: Event) => {\r\n e.preventDefault()\r\n\r\n // Fire remove event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.remove', e) === false) {\r\n return\r\n }\r\n\r\n this.element.classList.remove('image-input-changed')\r\n this.element.classList.add('image-input-empty')\r\n if (this.wrapperElement) {\r\n this.wrapperElement.style.setProperty('background-image', 'none')\r\n }\r\n\r\n if (this.inputElement) {\r\n this.inputElement.value = ''\r\n }\r\n\r\n if (this.hiddenElement !== null) {\r\n this.hiddenElement.value = '1'\r\n }\r\n\r\n // Fire removed event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.removed', e)\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public getInputElement(): HTMLInputElement | null {\r\n return this.inputElement\r\n }\r\n\r\n public getElement(): HTMLElement {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultImageInputQueires.componentName\r\n ) => {\r\n const ImageInput = DataUtil.get(el, componentName)\r\n if (ImageInput) {\r\n return ImageInput\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultImageInputQueires.instanseQuery,\r\n options: IImageInputOptions = defaultImageInputOptions,\r\n queries: IImageInputQueries = defaultImageInputQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let ImageInput = ImageInputComponent.getInstance(item)\r\n if (!ImageInput) {\r\n ImageInput = new ImageInputComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultImageInputQueires.instanseQuery,\r\n options: IImageInputOptions = defaultImageInputOptions,\r\n queries: IImageInputQueries = defaultImageInputQueires\r\n ): ImageInputComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let ImageInput = ImageInputComponent.getInstance(item)\r\n if (!ImageInput) {\r\n ImageInput = new ImageInputComponent(item, options, queries)\r\n }\r\n return ImageInput\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultImageInputQueires.instanseQuery) => {\r\n ImageInputComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultImageInputQueires.instanseQuery) => {\r\n ImageInputComponent.createInstances(selector)\r\n }\r\n}\r\nexport {ImageInputComponent, defaultImageInputOptions, defaultImageInputQueires}\r\n","import {\r\n DataUtil,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getAttributeValueByBreakpoint,\r\n getViewPort,\r\n isVisibleElement,\r\n throttle,\r\n getCSS,\r\n ElementStyleUtil,\r\n} from '../_utils/index'\r\nimport {CookieComponent} from './_CookieComponent'\r\n\r\nexport interface ScrollOptions {\r\n saveState?: boolean\r\n}\r\n\r\nconst defaultScrollOptions: ScrollOptions = {\r\n saveState: true,\r\n}\r\n\r\nclass ScrollComponent {\r\n element: HTMLElement\r\n options: ScrollOptions\r\n id: string\r\n\r\n constructor(_element: HTMLElement, options: ScrollOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultScrollOptions, options)\r\n this.id = this.element.getAttribute('id') || ''\r\n this.update()\r\n // this.element.setAttribute('data-kt-scrolltop', 'true')\r\n DataUtil.set(this.element, 'scroll', this)\r\n }\r\n\r\n private getOption = (name: string) => {\r\n if (this.element.hasAttribute('data-kt-scroll-' + name) === true) {\r\n const attr = this.element.getAttribute('data-kt-scroll-' + name) || ''\r\n let value: string | JSON | boolean = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n value = true\r\n } else if (value !== null && String(value) === 'false') {\r\n value = false\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n private getHeightType = () => {\r\n if (this.getOption('height')) {\r\n return 'height'\r\n }\r\n if (this.getOption('min-height')) {\r\n return 'min-height'\r\n }\r\n if (this.getOption('max-height')) {\r\n return 'max-height'\r\n }\r\n }\r\n\r\n private getAutoHeight = () => {\r\n let height: number | string = getViewPort().height\r\n const dependencies = this.getOption('dependencies')\r\n const wrappers = this.getOption('wrappers')\r\n const offset = this.getOption('offset')\r\n\r\n // Height dependencies\r\n if (dependencies !== null) {\r\n const elements = document.querySelectorAll(dependencies as string)\r\n if (elements && elements.length > 0) {\r\n for (let i = 0, len = elements.length; i < len; i++) {\r\n const element = elements[i] as HTMLElement\r\n if (isVisibleElement(element) === false) {\r\n continue\r\n }\r\n\r\n height = height - parseInt(getCSS(element, 'height'))\r\n height = height - parseInt(getCSS(element, 'margin-top'))\r\n height = height - parseInt(getCSS(element, 'margin-bottom'))\r\n\r\n const borderTop = getCSS(element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Wrappers\r\n if (wrappers !== null) {\r\n var elements = document.querySelectorAll(wrappers as string)\r\n if (elements && elements.length > 0) {\r\n for (let i = 0, len = elements.length; i < len; i++) {\r\n const element = elements[i] as HTMLElement\r\n\r\n if (!isVisibleElement(element)) {\r\n continue\r\n }\r\n\r\n height = height - parseInt(getCSS(element, 'margin-top'))\r\n height = height - parseInt(getCSS(element, 'margin-bottom'))\r\n height = height - parseInt(getCSS(element, 'padding-top'))\r\n height = height - parseInt(getCSS(element, 'padding-bottom'))\r\n\r\n const borderTop = getCSS(element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Custom offset\r\n if (offset !== null) {\r\n height = height - parseInt(offset as string)\r\n }\r\n\r\n height = height - parseInt(getCSS(this.element, 'margin-top'))\r\n height = height - parseInt(getCSS(this.element, 'margin-bottom'))\r\n\r\n const borderTop = getCSS(this.element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(this.element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n\r\n height = String(height) + 'px'\r\n\r\n return height\r\n }\r\n\r\n private setupHeight = () => {\r\n let height = this.getHeight()\r\n let heightType = this.getHeightType() as string\r\n\r\n // Set height\r\n if (height !== null && height.length > 0) {\r\n ElementStyleUtil.set(this.element, heightType, height)\r\n } else {\r\n ElementStyleUtil.set(this.element, heightType, '')\r\n }\r\n }\r\n\r\n private setupState = () => {\r\n if (this.getOption('save-state') === true && this.id) {\r\n const cookie = CookieComponent.get(this.id + 'st')\r\n if (cookie) {\r\n var pos = parseInt(cookie)\r\n\r\n if (pos > 0) {\r\n this.element.scrollTop = pos\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setupScrollHandler = () => {\r\n if (this.getOption('save-state') === true && this.id) {\r\n this.element.addEventListener('scroll', this.scrollHandler)\r\n } else {\r\n this.element.removeEventListener('scroll', this.scrollHandler)\r\n }\r\n }\r\n\r\n private scrollHandler = () => {\r\n const cookieId = this.id + 'st'\r\n CookieComponent.set(cookieId, this.element.scrollTop, {})\r\n }\r\n\r\n private destroyScrollHandler = () => {\r\n this.element.removeEventListener('scroll', this.scrollHandler)\r\n }\r\n\r\n private resetHeight = () => {\r\n const heghtType = this.getHeightType()\r\n if (heghtType) {\r\n ElementStyleUtil.set(this.element, heghtType, '')\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public update = () => {\r\n // Activate/deactivate\r\n if (\r\n this.getOption('activate') === true ||\r\n !this.element.hasAttribute('data-kt-scroll-activate')\r\n ) {\r\n this.setupHeight()\r\n this.setupScrollHandler()\r\n this.setupState()\r\n } else {\r\n this.resetHeight()\r\n this.destroyScrollHandler()\r\n }\r\n }\r\n\r\n public getHeight = () => {\r\n const heightType = this.getHeightType()\r\n const height = this.getOption(heightType || '')\r\n if (height instanceof Function) {\r\n return height.call(height)\r\n } else if (height !== null && typeof height === 'string' && height.toLowerCase() === 'auto') {\r\n return this.getAutoHeight()\r\n } else {\r\n return height\r\n }\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement) {\r\n return DataUtil.has(element, 'scroll')\r\n }\r\n\r\n public static getInstance(element: HTMLElement) {\r\n if (element !== null && ScrollComponent.hasInstace(element)) {\r\n return DataUtil.get(element, 'scroll')\r\n }\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string) {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element: Element) => {\r\n const item = element as HTMLElement\r\n let scroll = ScrollComponent.getInstance(item)\r\n if (!scroll) {\r\n scroll = new ScrollComponent(item, defaultScrollOptions)\r\n }\r\n })\r\n }\r\n\r\n public static destroyAll(attr: string = '[data-kt-scroll=\"true\"]') {}\r\n\r\n public static bootstrap(attr: string = '[data-kt-scroll=\"true\"]') {\r\n ScrollComponent.createInstances(attr)\r\n ScrollComponent.resize()\r\n }\r\n\r\n public static createInstance = (\r\n element: HTMLElement,\r\n options: ScrollOptions = defaultScrollOptions\r\n ): ScrollComponent | undefined => {\r\n let scroll = ScrollComponent.getInstance(element)\r\n if (!scroll) {\r\n scroll = new ScrollComponent(element, options)\r\n }\r\n return scroll\r\n }\r\n\r\n public static reinitialization(attr: string = '[data-kt-scroll=\"true\"]') {\r\n ScrollComponent.createInstances(attr)\r\n }\r\n\r\n public static updateAll(){\r\n const elements = document.body.querySelectorAll('[data-kt-scroll=\"true\"]')\r\n elements.forEach((element: Element) => {\r\n const instance = ScrollComponent.getInstance(element as HTMLElement)\r\n if (instance) {\r\n instance.update()\r\n }\r\n })\r\n }\r\n\r\n public static resize() {\r\n // Window Resize Handling\r\n window.addEventListener('resize', function () {\r\n let timer\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n ScrollComponent.updateAll();\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport {ScrollComponent, defaultScrollOptions}\r\n","import {\r\n getElementOffset,\r\n getScrollTop,\r\n getAttributeValueByBreakpoint,\r\n getUniqueIdWithPrefix,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getCSS,\r\n DataUtil,\r\n ElementAnimateUtil,\r\n ElementStyleUtil,\r\n EventHandlerUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface StickyOptions {\r\n offset: number\r\n reverse: boolean\r\n animation: boolean\r\n animationSpeed: string\r\n animationClass: string\r\n}\r\n\r\nconst defaultStickyOptions: StickyOptions = {\r\n offset: 200,\r\n reverse: false,\r\n animation: true,\r\n animationSpeed: '0.3s',\r\n animationClass: 'animation-slide-in-down',\r\n}\r\n\r\nclass StickyComponent {\r\n element: HTMLElement\r\n options: StickyOptions\r\n instanceUid: string\r\n instanceName: string | null = ''\r\n attributeName: string\r\n eventTriggerState: boolean\r\n lastScrollTop: number\r\n\r\n constructor(_element: HTMLElement, options: StickyOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultStickyOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('sticky')\r\n this.instanceName = this.element.getAttribute('data-kt-sticky-name')\r\n this.attributeName = 'data-kt-sticky-' + this.instanceName\r\n this.eventTriggerState = true\r\n this.lastScrollTop = 0\r\n\r\n // Event Handlers\r\n window.addEventListener('scroll', this.scroll)\r\n\r\n // Initial Launch\r\n this.scroll()\r\n\r\n DataUtil.set(this.element, 'sticky', this)\r\n }\r\n\r\n private scroll = () => {\r\n let offset = this.getOption('offset')\r\n let reverse = this.getOption('reverse')\r\n\r\n // Exit if false\r\n if (offset === false) {\r\n return\r\n }\r\n\r\n let offsetNum = 0\r\n if (typeof offset === 'string') {\r\n offsetNum = parseInt(offset)\r\n }\r\n\r\n const st = getScrollTop()\r\n\r\n // Reverse scroll mode\r\n if (reverse === true) {\r\n // Release on reverse scroll mode\r\n if (st > offsetNum && this.lastScrollTop < st) {\r\n if (document.body.hasAttribute(this.attributeName) === false) {\r\n this.enable()\r\n document.body.setAttribute(this.attributeName, 'on')\r\n }\r\n\r\n if (this.eventTriggerState === true) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n\r\n this.eventTriggerState = false\r\n }\r\n } else {\r\n // Back scroll mode\r\n if (document.body.hasAttribute(this.attributeName)) {\r\n this.disable()\r\n document.body.removeAttribute(this.attributeName)\r\n }\r\n\r\n if (this.eventTriggerState === false) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n\r\n this.eventTriggerState = true\r\n }\r\n }\r\n\r\n this.lastScrollTop = st\r\n return\r\n }\r\n\r\n // Classic scroll mode\r\n if (st > offsetNum) {\r\n if (document.body.hasAttribute(this.attributeName) === false) {\r\n this.enable()\r\n document.body.setAttribute(this.attributeName, 'on')\r\n }\r\n\r\n if (this.eventTriggerState === true) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n this.eventTriggerState = false\r\n }\r\n } else {\r\n // back scroll mode\r\n if (document.body.hasAttribute(this.attributeName) === true) {\r\n this.disable()\r\n document.body.removeAttribute(this.attributeName)\r\n }\r\n\r\n if (this.eventTriggerState === false) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\r\n this.eventTriggerState = true\r\n }\r\n }\r\n }\r\n\r\n private getOption = (name: string) => {\r\n const dataStickyAttr = 'data-kt-sticky-' + name\r\n if (this.element.hasAttribute(dataStickyAttr) === true) {\r\n const attrValueInStr = this.element.getAttribute(dataStickyAttr)\r\n const attrValue = getAttributeValueByBreakpoint(attrValueInStr || '')\r\n if (attrValue !== null && String(attrValue) === 'true') {\r\n return true\r\n } else if (attrValue !== null && String(attrValue) === 'false') {\r\n return false\r\n }\r\n\r\n return attrValue\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n }\r\n }\r\n }\r\n\r\n private disable = () => {\r\n ElementStyleUtil.remove(this.element, 'top')\r\n ElementStyleUtil.remove(this.element, 'width')\r\n ElementStyleUtil.remove(this.element, 'left')\r\n ElementStyleUtil.remove(this.element, 'right')\r\n ElementStyleUtil.remove(this.element, 'z-index')\r\n ElementStyleUtil.remove(this.element, 'position')\r\n }\r\n\r\n private enable = (update: boolean = false) => {\r\n const top = this.getOption('top')\r\n const left = this.getOption('left')\r\n // const right = this.getOption(\"right\");\r\n let width = this.getOption('width')\r\n const zindex = this.getOption('zindex')\r\n\r\n if (update !== true && this.getOption('animation') === true) {\r\n ElementStyleUtil.set(this.element, 'animationDuration', this.getOption('animationSpeed'))\r\n ElementAnimateUtil.animateClass(this.element, 'animation ' + this.getOption('animationClass'))\r\n }\r\n\r\n if (zindex !== null) {\r\n ElementStyleUtil.set(this.element, 'z-index', zindex)\r\n ElementStyleUtil.set(this.element, 'position', 'fixed')\r\n }\r\n\r\n if (top !== null) {\r\n ElementStyleUtil.set(this.element, 'top', top)\r\n }\r\n\r\n if (width !== null && width !== undefined) {\r\n const widthTarget = getObjectPropertyValueByKey(width, 'target')\r\n if (widthTarget) {\r\n const targetElement = document.querySelector(widthTarget)\r\n if (targetElement) {\r\n width = getCSS(targetElement, 'width')\r\n }\r\n }\r\n ElementStyleUtil.set(this.element, 'width', width)\r\n }\r\n\r\n if (left !== null) {\r\n if (String(left).toLowerCase() === 'auto') {\r\n var offsetLeft = getElementOffset(this.element).left\r\n\r\n if (offsetLeft > 0) {\r\n ElementStyleUtil.set(this.element, 'left', String(offsetLeft) + 'px')\r\n }\r\n }\r\n }\r\n }\r\n\r\n public update = () => {\r\n if (document.body.hasAttribute(this.attributeName) === true) {\r\n this.disable()\r\n document.body.removeAttribute(this.attributeName)\r\n this.enable(true)\r\n document.body.setAttribute(this.attributeName, 'on')\r\n }\r\n }\r\n\r\n // Event API\r\n public on = (name: string, callBack: Function) => {\r\n return EventHandlerUtil.on(this.element, name, callBack)\r\n }\r\n\r\n public one = (name: string, callback: Function) => {\r\n return EventHandlerUtil.one(this.element, name, callback)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string) => {\r\n return EventHandlerUtil.trigger(this.element, name)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement) {\r\n return DataUtil.has(element, 'sticky')\r\n }\r\n\r\n public static getInstance(element: HTMLElement) {\r\n if (element !== null && StickyComponent.hasInstace(element)) {\r\n return DataUtil.get(element, 'sticky')\r\n }\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string) {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let sticky = StickyComponent.getInstance(item)\r\n if (!sticky) {\r\n sticky = new StickyComponent(item, defaultStickyOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: StickyOptions = defaultStickyOptions\r\n ): StickyComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let sticky = StickyComponent.getInstance(item)\r\n if (!sticky) {\r\n sticky = new StickyComponent(item, options)\r\n }\r\n return sticky\r\n }\r\n\r\n public static bootstrap(attr: string = '[data-kt-sticky=\"true\"]') {\r\n StickyComponent.createInstances(attr)\r\n }\r\n\r\n public static reInitialization(attr: string = '[data-kt-sticky=\"true\"]') {\r\n StickyComponent.createInstances(attr)\r\n }\r\n}\r\n\r\nexport {StickyComponent, defaultStickyOptions}\r\n","import {DataUtil, getUniqueIdWithPrefix, EventHandlerUtil} from '../_utils/index'\r\n// Helpers\r\nimport {CookieComponent} from './_CookieComponent'\r\n\r\nexport interface ToggleOptions {\r\n saveState: boolean\r\n targetState?: string\r\n toggleState?: string\r\n targetToggleMode?: string\r\n}\r\n\r\nconst defaultToggleOptions: ToggleOptions = {\r\n saveState: false,\r\n}\r\n\r\nclass ToggleComponent {\r\n element: HTMLElement\r\n instanceUid: string\r\n options: ToggleOptions\r\n state: string = ''\r\n target: HTMLElement | null = null\r\n attribute: string = ''\r\n\r\n constructor(_element: HTMLElement, options: ToggleOptions) {\r\n this.options = Object.assign(defaultToggleOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('toggle')\r\n this.element = _element\r\n\r\n const elementTargetAttr = this.element.getAttribute('data-kt-toggle-target')\r\n if (elementTargetAttr) {\r\n this.target = document.querySelector(elementTargetAttr)\r\n }\r\n const elementToggleAttr = this.element.getAttribute('data-kt-toggle-state')\r\n this.state = elementToggleAttr || ''\r\n this.attribute = 'data-kt-' + this.element.getAttribute('data-kt-toggle-name')\r\n\r\n // Event Handlers\r\n this._handlers()\r\n\r\n // Update Instance\r\n // Bind Instance\r\n DataUtil.set(this.element, 'toggle', this)\r\n }\r\n\r\n private _handlers = () => {\r\n this.element.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n this._toggle()\r\n })\r\n }\r\n\r\n // Event handlers\r\n private _toggle = () => {\r\n // Trigger \"after.toggle\" event\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.change')\r\n\r\n if (this._isEnabled()) {\r\n this._disable()\r\n } else {\r\n this._enable()\r\n }\r\n\r\n // Trigger \"before.toggle\" event\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.changed')\r\n return this\r\n }\r\n\r\n private _enable = () => {\r\n if (this._isEnabled()) {\r\n return\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enable')\r\n this.target?.setAttribute(this.attribute, 'on')\r\n if (this.state.length > 0) {\r\n this.element.classList.add(this.state)\r\n }\r\n\r\n if (this.options.saveState) {\r\n CookieComponent.set(this.attribute, 'on', {})\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enabled')\r\n return this\r\n }\r\n\r\n private _disable = () => {\r\n if (!this._isEnabled()) {\r\n return false\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disable')\r\n this.target?.removeAttribute(this.attribute)\r\n\r\n if (this.state.length > 0) {\r\n this.element.classList.remove(this.state)\r\n }\r\n\r\n if (this.options.saveState) {\r\n CookieComponent.delete(this.attribute)\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disabled')\r\n return this\r\n }\r\n\r\n private _isEnabled = () => {\r\n if (!this.target) {\r\n return false\r\n }\r\n\r\n return String(this.target.getAttribute(this.attribute)).toLowerCase() === 'on'\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n\r\n // Plugin API\r\n // Plugin API\r\n public toggle = () => {\r\n return this._toggle()\r\n }\r\n\r\n public enable = () => {\r\n return this._enable()\r\n }\r\n\r\n public disable = () => {\r\n return this._disable()\r\n }\r\n\r\n public isEnabled = () => {\r\n return this._isEnabled()\r\n }\r\n\r\n public goElement = () => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event?: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (el: HTMLElement) => {\r\n const toggleElement = DataUtil.get(el, 'toggle')\r\n if (toggleElement) {\r\n return toggleElement\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (selector: string) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let toggleElement = ToggleComponent.getInstance(item)\r\n if (!toggleElement) {\r\n toggleElement = new ToggleComponent(item, defaultToggleOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: ToggleOptions = defaultToggleOptions\r\n ): ToggleComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let toggle = ToggleComponent.getInstance(item)\r\n if (!toggle) {\r\n toggle = new ToggleComponent(item, options)\r\n }\r\n return toggle\r\n }\r\n\r\n public static reinitialization = () => {\r\n ToggleComponent.createInstances('[data-kt-toggle]')\r\n }\r\n\r\n public static bootstrap = () => {\r\n ToggleComponent.createInstances('[data-kt-toggle]')\r\n }\r\n}\r\n\r\nexport {ToggleComponent, defaultToggleOptions}\r\n","/* eslint-disable array-callback-return */\r\n/* eslint-disable no-useless-escape */\r\nimport {DataUtil} from '../_utils/index'\r\n\r\nexport interface IPasswordMeterOptions {\r\n minLength: number\r\n checkUppercase: boolean\r\n checkLowercase: boolean\r\n checkDigit: boolean\r\n checkChar: boolean\r\n scoreHighlightClass: string\r\n}\r\n\r\nexport interface IPasswordMeterQueries {\r\n componentName: string\r\n instanseQuery: string\r\n inputQuery: string\r\n visibilityQuery: string\r\n highlightQuery: string\r\n}\r\n\r\nconst defaultPasswordMeterOptions = {\r\n minLength: 8,\r\n checkUppercase: true,\r\n checkLowercase: true,\r\n checkDigit: true,\r\n checkChar: true,\r\n scoreHighlightClass: 'active',\r\n}\r\n\r\nconst defaultPasswordMeterQueires: IPasswordMeterQueries = {\r\n componentName: 'password-meter',\r\n instanseQuery: '[data-kt-password-meter]',\r\n inputQuery: 'input[type]',\r\n visibilityQuery: '[data-kt-password-meter-control=\"visibility\"]',\r\n highlightQuery: '[data-kt-password-meter-control=\"highlight\"]',\r\n}\r\n\r\nclass PasswordMeterComponent {\r\n element: HTMLElement\r\n inputElement: HTMLInputElement | null\r\n visibilityElement: HTMLElement | null\r\n highlightElement: HTMLElement | null\r\n options: IPasswordMeterOptions\r\n queries: IPasswordMeterQueries\r\n score: number\r\n checkSteps: number\r\n\r\n constructor(\r\n _element: HTMLElement,\r\n _options: IPasswordMeterOptions,\r\n _queries: IPasswordMeterQueries\r\n ) {\r\n this.element = _element\r\n this.options = Object.assign(defaultPasswordMeterOptions, _options)\r\n this.queries = _queries\r\n this.score = 0\r\n this.checkSteps = 5\r\n\r\n // Elements\r\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\r\n this.visibilityElement = this.element.querySelector(this.queries.visibilityQuery)\r\n this.highlightElement = this.element.querySelector(this.queries.highlightQuery)\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private handlers(): void {\r\n if (this.inputElement) {\r\n this.inputElement.addEventListener('input', () => {\r\n this.check()\r\n })\r\n }\r\n\r\n if (this.visibilityElement) {\r\n this.visibilityElement.addEventListener('click', () => {\r\n this.visitbility()\r\n })\r\n }\r\n }\r\n\r\n private visitbility() {\r\n if (this.visibilityElement && this.inputElement) {\r\n const visibleIcon = this.visibilityElement.querySelector(\r\n 'i:not(.d-none), .svg-icon:not(.d-none)'\r\n )\r\n\r\n const hiddenIcon = this.visibilityElement.querySelector('i.d-none, .svg-icon.d-none')\r\n\r\n const typeAttr = this.inputElement.getAttribute('type') || ''\r\n\r\n if (typeAttr === 'password') {\r\n this.inputElement.setAttribute('type', 'text')\r\n } else {\r\n this.inputElement.setAttribute('type', 'password')\r\n }\r\n\r\n visibleIcon?.classList.add('d-none')\r\n hiddenIcon?.classList.remove('d-none')\r\n\r\n this.inputElement.focus()\r\n }\r\n }\r\n\r\n private checkScore(): number {\r\n return 0\r\n }\r\n\r\n private checkLength(): boolean {\r\n if (this.inputElement) {\r\n return this.inputElement.value.length >= this.options.minLength // 20 score\r\n }\r\n\r\n return false\r\n }\r\n\r\n private checkLowerCase(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[a-z]/.test(val) // 20 score\r\n }\r\n\r\n private checkUppercase(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[A-Z]/.test(val) // 20 score\r\n }\r\n\r\n private checkDigit(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[0-9]/.test(val) // 20 score\r\n }\r\n\r\n private checkChar(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g.test(val) // 20 score\r\n }\r\n\r\n private getCheckScore(): number {\r\n let count = 1\r\n if (this.options.checkUppercase) {\r\n count++\r\n }\r\n\r\n if (this.options.checkLowercase) {\r\n count++\r\n }\r\n\r\n if (this.options.checkDigit) {\r\n count++\r\n }\r\n\r\n if (this.options.checkChar) {\r\n count++\r\n }\r\n\r\n this.checkSteps = count\r\n return 100 / this.checkSteps\r\n }\r\n\r\n private highlight() {\r\n const items = this.highlightElement\r\n ? [].slice.call(this.highlightElement.querySelectorAll('div'))\r\n : []\r\n const total = items.length\r\n let index = 0\r\n const checkScore = this.getCheckScore()\r\n const score = this.getScore()\r\n\r\n items.map((item: HTMLElement) => {\r\n index++\r\n if (checkScore * index * (this.checkSteps / total) <= score) {\r\n item.classList.add('active')\r\n } else {\r\n item.classList.remove('active')\r\n }\r\n })\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public reset = () => {\r\n this.score = 0\r\n this.highlight()\r\n }\r\n\r\n public getScore() {\r\n return this.score\r\n }\r\n\r\n public check() {\r\n let score = 0\r\n const checkScore = this.checkScore()\r\n if (this.checkLength()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkUppercase && this.checkLowerCase()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkLowercase && this.checkUppercase()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkDigit && this.checkDigit()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkChar && this.checkChar()) {\r\n score = score + checkScore\r\n }\r\n\r\n this.score = score\r\n this.highlight()\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultPasswordMeterQueires.componentName\r\n ) => {\r\n const passwordMeter = DataUtil.get(el, componentName)\r\n if (passwordMeter) {\r\n return passwordMeter\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery,\r\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\r\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let passwordMeter = PasswordMeterComponent.getInstance(item)\r\n if (!passwordMeter) {\r\n passwordMeter = new PasswordMeterComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery,\r\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\r\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\r\n ): PasswordMeterComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let passwordMeter = PasswordMeterComponent.getInstance(item)\r\n if (!passwordMeter) {\r\n passwordMeter = new PasswordMeterComponent(item, options, queries)\r\n }\r\n return passwordMeter\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultPasswordMeterQueires.instanseQuery) => {\r\n PasswordMeterComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery\r\n ) => {\r\n PasswordMeterComponent.createInstances(selector)\r\n }\r\n}\r\nexport {PasswordMeterComponent, defaultPasswordMeterOptions, defaultPasswordMeterQueires}\r\n","import {\r\n getAttributeValueByBreakpoint,\r\n stringSnakeToCamel,\r\n getObjectPropertyValueByKey,\r\n EventHandlerUtil,\r\n throttle,\r\n} from '../_utils/index'\r\n\r\nexport class SwapperStore {\r\n static store: Map = new Map()\r\n\r\n public static set(instanceId: string, drawerComponentObj: SwapperComponent): void {\r\n if (SwapperStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n SwapperStore.store.set(instanceId, drawerComponentObj);\r\n }\r\n\r\n public static get(instanceId: string): SwapperComponent | undefined {\r\n if (!SwapperStore.has(instanceId)) {\r\n return\r\n }\r\n return SwapperStore.store.get(instanceId);\r\n }\r\n\r\n public static remove(instanceId: string): void {\r\n if (!SwapperStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n SwapperStore.store.delete(instanceId)\r\n }\r\n\r\n public static has(instanceId: string): boolean {\r\n return SwapperStore.store.has(instanceId);\r\n }\r\n\r\n public static getAllInstances() {\r\n return SwapperStore.store;\r\n }\r\n}\r\n\r\nexport interface ISwapperOptions {\r\n mode: string\r\n}\r\n\r\nexport interface ISwapperQueries {\r\n componentName: string\r\n instanseQuery: string\r\n attrQuery: string\r\n}\r\n\r\nconst defaultSwapperOptions: ISwapperOptions = {\r\n mode: 'append',\r\n}\r\n\r\nconst defaultSwapperQueires: ISwapperQueries = {\r\n componentName: 'swapper',\r\n instanseQuery: '[data-kt-swapper=\"true\"]',\r\n attrQuery: 'data-kt-swapper-',\r\n}\r\n\r\nclass SwapperComponent {\r\n element: HTMLElement\r\n options: ISwapperOptions\r\n queries: ISwapperQueries\r\n\r\n constructor(_element: HTMLElement, _options: ISwapperOptions, _queries: ISwapperQueries) {\r\n this.element = _element\r\n this.options = Object.assign(defaultSwapperOptions, _options)\r\n this.queries = _queries\r\n\r\n // Initial update\r\n this.update()\r\n\r\n SwapperStore.set(this.element.id, this)\r\n }\r\n\r\n private getOption(name: string) {\r\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n if (attr != null && String(value) === 'true') {\r\n return true\r\n } else if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public update = () => {\r\n const parentSelector = this.getOption('parent')?.toString()\r\n const mode = this.getOption('mode')\r\n const parentElement = parentSelector ? document.querySelector(parentSelector) : null\r\n\r\n if (parentElement && this.element.parentNode !== parentElement) {\r\n if (mode === 'prepend') {\r\n parentElement.prepend(this.element)\r\n } else if (mode === 'append') {\r\n parentElement.append(this.element)\r\n }\r\n }\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultSwapperQueires.componentName\r\n ): SwapperComponent | null => {\r\n const place = SwapperStore.get(el.id)\r\n if (place) {\r\n return place as SwapperComponent\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultSwapperQueires.instanseQuery,\r\n options: ISwapperOptions = defaultSwapperOptions,\r\n queries: ISwapperQueries = defaultSwapperQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let place = SwapperComponent.getInstance(item)\r\n if (!place) {\r\n place = new SwapperComponent(item, options, queries)\r\n }\r\n place.element = item;\r\n place.update();\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultSwapperQueires.instanseQuery,\r\n options: ISwapperOptions = defaultSwapperOptions,\r\n queries: ISwapperQueries = defaultSwapperQueires\r\n ): SwapperComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let place = SwapperComponent.getInstance(item)\r\n if (!place) {\r\n place = new SwapperComponent(item, options, queries)\r\n }\r\n return place\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultSwapperQueires.instanseQuery) => {\r\n SwapperComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultSwapperQueires.instanseQuery) => {\r\n SwapperComponent.createInstances(selector)\r\n }\r\n}\r\n\r\n// Window resize handler\r\nwindow.addEventListener('resize', function () {\r\n let timer\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Offcanvas instances on window resize\r\n const elements = document.querySelectorAll(defaultSwapperQueires.instanseQuery)\r\n elements.forEach((el) => {\r\n const place = SwapperComponent.getInstance(el as HTMLElement)\r\n if (place) {\r\n place.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n})\r\n\r\nexport {SwapperComponent, defaultSwapperOptions, defaultSwapperQueires}\r\n","import {createPopper, VirtualElement} from '@popperjs/core'\r\nimport {\r\n getElementChild,\r\n getElementParents,\r\n getAttributeValueByBreakpoint,\r\n getUniqueIdWithPrefix,\r\n DataUtil,\r\n ElementStyleUtil,\r\n EventHandlerUtil,\r\n insertAfterElement,\r\n slideUp,\r\n slideDown,\r\n DOMEventHandlerUtil,\r\n throttle,\r\n getHighestZindex,\r\n} from '../_utils/index'\r\n\r\nexport interface MenuOptions {\r\n dropdown: {\r\n hoverTimeout: number\r\n zindex: number\r\n }\r\n accordion: {\r\n slideSpeed: number\r\n expand: boolean\r\n }\r\n}\r\n\r\nconst defaultMenuOptions: MenuOptions = {\r\n dropdown: {\r\n hoverTimeout: 200,\r\n zindex: 105,\r\n },\r\n accordion: {\r\n slideSpeed: 250,\r\n expand: false,\r\n },\r\n}\r\n\r\ntype PopperPlacement =\r\n | 'right'\r\n | 'auto'\r\n | 'auto-start'\r\n | 'auto-end'\r\n | 'top'\r\n | 'bottom'\r\n | 'left'\r\n | 'top-start'\r\n | 'top-end'\r\n | 'bottom-start'\r\n | 'bottom-end'\r\n | 'right-start'\r\n | 'right-end'\r\n | 'left-start'\r\n | 'left-end'\r\n | undefined\r\n\r\nclass MenuComponent {\r\n element: HTMLElement\r\n options: MenuOptions\r\n instanceUid: string\r\n triggerElement: HTMLElement | null = null\r\n\r\n constructor(_element: HTMLElement, options: MenuOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultMenuOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('menu')\r\n // this.element.setAttribute('data-kt-menu', 'true')\r\n this._setTriggerElement()\r\n this._update()\r\n DataUtil.set(this.element, 'menu', this)\r\n return this\r\n }\r\n\r\n // Set external trigger element\r\n private _setTriggerElement = () => {\r\n const target = document.querySelector(\r\n `[data-kt-menu-target=\"#${this.element.getAttribute('id')}\"`\r\n )\r\n\r\n if (target) {\r\n this.triggerElement = target as HTMLElement\r\n } else if (this.element.closest('[data-kt-menu-trigger]')) {\r\n this.triggerElement = this.element.closest('[data-kt-menu-trigger]') as HTMLElement\r\n } else if (\r\n this.element.parentNode &&\r\n getElementChild(this.element.parentNode as HTMLElement, '[data-kt-menu-trigger]')\r\n ) {\r\n const child = getElementChild(\r\n this.element.parentNode as HTMLElement,\r\n '[data-kt-menu-trigger]'\r\n )\r\n if (child) {\r\n this.triggerElement = child\r\n }\r\n }\r\n\r\n if (this.triggerElement) {\r\n DataUtil.set(this.triggerElement, 'menu', this)\r\n }\r\n }\r\n\r\n // Test if menu has external trigger element\r\n private _isTriggerElement = (item: HTMLElement) => {\r\n return this.triggerElement === item\r\n }\r\n\r\n // Get item option(through html attributes)\r\n private _getItemOption = (item: HTMLElement, name: string) => {\r\n let value: string | JSON | null | boolean = null\r\n if (item && item.hasAttribute('data-kt-menu-' + name)) {\r\n const attr = item.getAttribute('data-kt-menu-' + name) || ''\r\n value = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n value = true\r\n } else if (value !== null && String(value) === 'false') {\r\n value = false\r\n }\r\n }\r\n return value\r\n }\r\n\r\n // Get item element\r\n private _getItemElement = (_element: HTMLElement) => {\r\n // Element is the external trigger element\r\n if (this._isTriggerElement(_element)) {\r\n return _element\r\n }\r\n\r\n // Element has item toggler attribute\r\n if (_element.hasAttribute('data-kt-menu-trigger')) {\r\n return _element\r\n }\r\n\r\n // Element has item DOM reference in it's data storage\r\n const itemElement = DataUtil.get(_element, 'item')\r\n if (itemElement) {\r\n return itemElement\r\n }\r\n\r\n // Item is parent of element\r\n const item = _element.closest('.menu-item[data-kt-menu-trigger]')\r\n if (item) {\r\n return item\r\n }\r\n\r\n // Element's parent has item DOM reference in it's data storage\r\n const sub = _element.closest('.menu-sub')\r\n if (sub) {\r\n const subItem = DataUtil.get(sub as HTMLElement, 'item')\r\n if (subItem) {\r\n return subItem\r\n }\r\n }\r\n }\r\n\r\n // Get item parent element\r\n private _getItemParentElement = (item: HTMLElement) => {\r\n const sub = item.closest('.menu-sub')\r\n if (!sub) {\r\n return null\r\n }\r\n\r\n const subItem = DataUtil.get(sub as HTMLElement, 'item')\r\n if (subItem) {\r\n return subItem\r\n }\r\n\r\n const parentItem = sub.closest('.menu-item[data-kt-menu-trigger]')\r\n if (sub && parentItem) {\r\n return parentItem\r\n }\r\n\r\n return null\r\n }\r\n\r\n // Get item parent elements\r\n private _getItemParentElements = (item: HTMLElement) => {\r\n const parents:Array = []\r\n let parent:Element\r\n let i = 0\r\n let buffer:HTMLElement = item\r\n\r\n do {\r\n parent = this._getItemParentElement(buffer)\r\n if (parent) {\r\n parents.push(parent)\r\n buffer = parent as HTMLElement\r\n }\r\n\r\n i++\r\n } while (parent !== null && i < 20)\r\n\r\n if (this.triggerElement) {\r\n parents.unshift(this.triggerElement)\r\n }\r\n\r\n return parents\r\n }\r\n\r\n // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/)\r\n private _getDropdownPopperConfig = (item: HTMLElement) => {\r\n // Placement\r\n const placementOption = this._getItemOption(item, 'placement')\r\n let placement: PopperPlacement = 'right'\r\n if (placementOption) {\r\n placement = placementOption as PopperPlacement\r\n }\r\n\r\n // Flip\r\n // const flipValue = this._getItemOption(item, 'flip')\r\n // const flip = flipValue ? flipValue.toString().split(',') : []\r\n\r\n // Offset\r\n const offsetValue = this._getItemOption(item, 'offset')\r\n const offset = offsetValue ? offsetValue.toString().split(',') : []\r\n\r\n // Strategy\r\n const strategy: 'absolute' | 'fixed' | undefined =\r\n this._getItemOption(item, 'overflow') === true ? 'absolute' : 'fixed'\r\n\r\n return {\r\n placement: placement,\r\n strategy: strategy,\r\n modifiers: [\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: offset,\r\n },\r\n },\r\n {\r\n name: 'preventOverflow'\r\n },\r\n {\r\n name: 'flip',\r\n options: {\r\n // altBoundary: true,\r\n // fallbackPlacements: flip,\r\n flipVariations: false\r\n },\r\n },\r\n ],\r\n }\r\n }\r\n\r\n // Get item child element\r\n private _getItemChildElement = (item: HTMLElement) => {\r\n let selector = item\r\n\r\n const subItem = DataUtil.get(item, 'sub')\r\n if (subItem) {\r\n selector = subItem\r\n }\r\n\r\n if (selector) {\r\n //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]');\r\n const element = selector.querySelector('.menu-item[data-kt-menu-trigger]')\r\n if (element) {\r\n return element\r\n }\r\n }\r\n return null\r\n }\r\n\r\n // Get item child elements\r\n private _getItemChildElements = (item: HTMLElement) => {\r\n const children: Array = []\r\n let child:Element | null\r\n let i = 0\r\n let buffer = item\r\n do {\r\n child = this._getItemChildElement(buffer)\r\n if (child) {\r\n children.push(child)\r\n buffer = child as HTMLElement\r\n }\r\n\r\n i++\r\n } while (child !== null && i < 20)\r\n\r\n return children\r\n }\r\n\r\n // Get item sub element\r\n private _getItemSubElement = (item: HTMLElement) => {\r\n if (!item) {\r\n return null\r\n }\r\n\r\n if (this._isTriggerElement(item)) {\r\n return this.element\r\n }\r\n\r\n if (item.classList.contains('menu-sub')) {\r\n return item\r\n } else if (DataUtil.has(item, 'sub')) {\r\n return DataUtil.get(item, 'sub')\r\n } else {\r\n return getElementChild(item, '.menu-sub')\r\n }\r\n }\r\n\r\n private _getCss = (el: HTMLElement, styleProp: string) => {\r\n const defaultView = (el.ownerDocument || document).defaultView\r\n if (!defaultView) {\r\n return ''\r\n }\r\n\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\r\n }\r\n\r\n // Get item sub type\r\n private _getItemSubType = (element: HTMLElement) => {\r\n const sub = this._getItemSubElement(element)\r\n if (sub && parseInt(this._getCss(sub, 'z-index')) > 0) {\r\n return 'dropdown'\r\n } else {\r\n return 'accordion'\r\n }\r\n }\r\n\r\n // Test if item's sub is shown\r\n private _isItemSubShown = (item: HTMLElement) => {\r\n let sub = this._getItemSubElement(item)\r\n if (sub) {\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n return sub.classList.contains('show') && sub.hasAttribute('data-popper-placement')\r\n } else {\r\n return item.classList.contains('show')\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n // Test if item dropdown is permanent\r\n private _isItemDropdownPermanent = (item: HTMLElement) => {\r\n return this._getItemOption(item, 'permanent') === true\r\n }\r\n\r\n // Test if item's parent is shown\r\n private _isItemParentShown = (item: HTMLElement) => {\r\n return getElementParents(item, '.menu-item.show').length > 0\r\n }\r\n\r\n // Test of it is item sub element\r\n private _isItemSubElement = (item: HTMLElement) => {\r\n return item.classList.contains('menu-sub')\r\n }\r\n\r\n // Test if item has sub\r\n private _hasItemSub = (item: HTMLElement) => {\r\n return item.classList.contains('menu-item') && item.hasAttribute('data-kt-menu-trigger')\r\n }\r\n\r\n // Get link element\r\n private _getItemLinkElement = (item: HTMLElement) => {\r\n return getElementChild(item, '.menu-link')\r\n }\r\n\r\n // Get toggle element\r\n private _getItemToggleElement = (item: HTMLElement) => {\r\n if (this.triggerElement) {\r\n return this.triggerElement\r\n }\r\n\r\n return this._getItemLinkElement(item)\r\n }\r\n\r\n // Show item dropdown\r\n private _showDropdown = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.show') === false) {\r\n return\r\n }\r\n\r\n // Hide all currently shown dropdowns except current one\r\n MenuComponent.hideDropdowns(item)\r\n\r\n // const toggle = this._isTriggerElement(item) ? item : this._getItemLinkElement(item);\r\n const sub = this._getItemSubElement(item)\r\n const width = this._getItemOption(item, 'width')\r\n const height = this._getItemOption(item, 'height')\r\n\r\n let zindex = this.options.dropdown.zindex\r\n const parentZindex = getHighestZindex(item) // update\r\n // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update\r\n if (parentZindex !== null && parentZindex >= zindex) {\r\n zindex = parentZindex + 1\r\n }\r\n\r\n if (zindex) {\r\n ElementStyleUtil.set(sub, 'z-index', zindex)\r\n }\r\n\r\n if (width) {\r\n ElementStyleUtil.set(sub, 'width', width)\r\n }\r\n\r\n if (height) {\r\n ElementStyleUtil.set(sub, 'height', height)\r\n }\r\n\r\n this.initDropdownPopper(item, sub)\r\n\r\n item.classList.add('show')\r\n item.classList.add('menu-dropdown')\r\n sub.classList.add('show')\r\n\r\n // Append the sub the the root of the menu\r\n if (this._getItemOption(item, 'overflow') === true) {\r\n document.body.appendChild(sub)\r\n DataUtil.set(item, 'sub', sub)\r\n DataUtil.set(sub, 'item', item)\r\n DataUtil.set(sub, 'menu', this)\r\n } else {\r\n DataUtil.set(sub, 'item', item)\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.shown')\r\n }\r\n\r\n // Init dropdown popper(new)\r\n private initDropdownPopper = (item: HTMLElement, sub: HTMLElement) => {\r\n // Setup popper instance\r\n let reference\r\n const attach = this._getItemOption(item, 'attach') as string\r\n\r\n if (attach) {\r\n if (attach === 'parent') {\r\n reference = item.parentNode\r\n } else {\r\n reference = document.querySelector(attach)\r\n }\r\n } else {\r\n reference = item\r\n }\r\n\r\n if (reference) {\r\n const popper = createPopper(\r\n reference as Element | VirtualElement,\r\n sub,\r\n this._getDropdownPopperConfig(item)\r\n )\r\n DataUtil.set(item, 'popper', popper)\r\n }\r\n }\r\n\r\n // Hide item dropdown\r\n private _hideDropdown = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hide') === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n ElementStyleUtil.set(sub, 'z-index', '')\r\n ElementStyleUtil.set(sub, 'width', '')\r\n ElementStyleUtil.set(sub, 'height', '')\r\n item.classList.remove('show')\r\n item.classList.remove('menu-dropdown')\r\n sub.classList.remove('show')\r\n\r\n // Append the sub back to it's parent\r\n if (this._getItemOption(item, 'overflow') === true) {\r\n if (item.classList.contains('menu-item')) {\r\n item.appendChild(sub)\r\n } else {\r\n insertAfterElement(this.element, item)\r\n }\r\n\r\n DataUtil.remove(item, 'sub')\r\n DataUtil.remove(sub, 'item')\r\n DataUtil.remove(sub, 'menu')\r\n }\r\n\r\n if (DataUtil.has(item, 'popper') === true) {\r\n DataUtil.get(item, 'popper').destroy()\r\n DataUtil.remove(item, 'popper')\r\n }\r\n\r\n // Destroy popper(new)\r\n this.destroyDropdownPopper(item)\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\r\n }\r\n\r\n // Destroy dropdown popper(new)\r\n private destroyDropdownPopper = (item: HTMLElement) => {\r\n if (DataUtil.has(item, 'popper') === true) {\r\n DataUtil.get(item, 'popper').destroy()\r\n DataUtil.remove(item, 'popper')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\r\n }\r\n\r\n private _showAccordion = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.show') === false) {\r\n return\r\n }\r\n\r\n if (this.options.accordion.expand === false) {\r\n this._hideAccordions(item)\r\n }\r\n\r\n if (DataUtil.has(item, 'popper') === true) {\r\n this._hideDropdown(item)\r\n }\r\n\r\n item.classList.add('hover') // updateWW\r\n item.classList.add('showing')\r\n\r\n const subElement = this._getItemSubElement(item)\r\n if (subElement) {\r\n const sub = subElement as HTMLElement\r\n slideDown(sub, this.options.accordion.slideSpeed, () => {\r\n item.classList.remove('showing')\r\n item.classList.add('show')\r\n sub.classList.add('show')\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.shown')\r\n })\r\n }\r\n }\r\n\r\n private _hideAccordion = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hide') === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n item.classList.add('hiding')\r\n\r\n if (sub) {\r\n slideUp(sub, this.options.accordion.slideSpeed, () => {\r\n item.classList.remove('hiding')\r\n item.classList.remove('show')\r\n sub.classList.remove('show')\r\n item.classList.remove('hover') // update\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hidden')\r\n })\r\n }\r\n }\r\n\r\n // Hide all shown accordions of item\r\n private _hideAccordions = (item: HTMLElement) => {\r\n const itemsToHide = this.element.querySelectorAll('.show[data-kt-menu-trigger]')\r\n if (itemsToHide && itemsToHide.length > 0) {\r\n for (var i = 0, len = itemsToHide.length; i < len; i++) {\r\n const itemToHide = itemsToHide[i] as HTMLElement\r\n\r\n if (\r\n this._getItemSubType(itemToHide) === 'accordion' &&\r\n itemToHide !== item &&\r\n item.contains(itemToHide) === false &&\r\n itemToHide.contains(item) === false\r\n ) {\r\n this._hideAccordion(itemToHide)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Event Handlers\r\n // Reset item state classes if item sub type changed\r\n private _reset = (item: HTMLElement) => {\r\n if (this._hasItemSub(item) === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n\r\n // Reset sub state if sub type is changed during the window resize\r\n if (DataUtil.has(item, 'type') && DataUtil.get(item, 'type') !== this._getItemSubType(item)) {\r\n // updated\r\n item.classList.remove('hover')\r\n item.classList.remove('show')\r\n item.classList.remove('show')\r\n if (sub && sub.removeClass) {\r\n sub.removeClass(sub, 'show')\r\n }\r\n } // updated\r\n }\r\n\r\n // TODO: not done\r\n private _destroy = () => {}\r\n\r\n // Update all item state classes if item sub type changed\r\n private _update = () => {\r\n const items = this.element.querySelectorAll('.menu-item[data-kt-menu-trigger]')\r\n items.forEach((el) => this._reset(el as HTMLElement))\r\n }\r\n\r\n // Hide item sub\r\n private _hide = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === false) {\r\n return\r\n }\r\n\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n this._hideDropdown(item)\r\n } else if (this._getItemSubType(item) === 'accordion') {\r\n this._hideAccordion(item)\r\n }\r\n }\r\n\r\n // Show item sub\r\n private _show = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === true) {\r\n return\r\n }\r\n\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n this._showDropdown(item) // // show current dropdown\r\n } else if (this._getItemSubType(item) === 'accordion') {\r\n this._showAccordion(item)\r\n }\r\n\r\n // Remember last submenu type\r\n\r\n DataUtil.set(item, 'type', this._getItemSubType(item)) // updated\r\n }\r\n\r\n // Toggle item sub\r\n private _toggle = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === true) {\r\n this._hide(item)\r\n } else {\r\n this._show(item)\r\n }\r\n }\r\n\r\n // Mouseout handle\r\n private _mouseout = (element: HTMLElement, e: MouseEvent) => {\r\n const item = this._getItemElement(element)\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'trigger') !== 'hover') {\r\n return\r\n }\r\n\r\n const timeout = setTimeout(() => {\r\n if (DataUtil.get(item, 'hover') === '1') {\r\n this._hide(item)\r\n }\r\n }, this.options.dropdown.hoverTimeout)\r\n\r\n DataUtil.set(item, 'hover', '1')\r\n DataUtil.set(item, 'timeout', timeout)\r\n }\r\n\r\n // Mouseover handle\r\n private _mouseover = (element: HTMLElement, e: MouseEvent) => {\r\n const item = this._getItemElement(element)\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'trigger') !== 'hover') {\r\n return\r\n }\r\n\r\n if (DataUtil.get(item, 'hover') === '1') {\r\n clearTimeout(DataUtil.get(item, 'timeout'))\r\n DataUtil.remove(item, 'hover')\r\n DataUtil.remove(item, 'timeout')\r\n }\r\n\r\n this._show(item)\r\n }\r\n\r\n // Dismiss handler\r\n private _dismiss = (element: HTMLElement, e: Event) => {\r\n const item = this._getItemElement(element)\r\n const items = this._getItemChildElements(item)\r\n //if ( item !== null && _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\r\n const itemSubType = this._getItemSubType(item)\r\n if (item !== null && itemSubType === 'dropdown') {\r\n this._hide(item) // hide items dropdown\r\n\r\n // Hide all child elements as well\r\n if (items.length > 0) {\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n //if ( _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\r\n if (items[i] !== null && this._getItemSubType(items[i] as HTMLElement) === 'dropdown') {\r\n this._hide(items[i] as HTMLElement)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Link handler\r\n private _link = (element: HTMLElement, e: Event) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.link.click') === false) {\r\n return\r\n }\r\n\r\n // Dismiss all shown dropdowns\r\n MenuComponent.hideDropdowns(undefined)\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.link.clicked')\r\n }\r\n\r\n private _click = (element: HTMLElement, e: Event) => {\r\n e.preventDefault()\r\n const item = this._getItemElement(element)\r\n if (this._getItemOption(item, 'trigger') !== 'click') {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'toggle') === false) {\r\n this._show(item)\r\n } else {\r\n this._toggle(item)\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public click = (element: HTMLElement, e: Event) => {\r\n return this._click(element, e)\r\n }\r\n\r\n public link = (element: HTMLElement, e: Event) => {\r\n return this._link(element, e)\r\n }\r\n\r\n public dismiss = (element: HTMLElement, e: Event) => {\r\n return this._dismiss(element, e)\r\n }\r\n\r\n public mouseover = (element: HTMLElement, e: Event) => {\r\n return this._mouseover(element, e as MouseEvent)\r\n }\r\n\r\n public mouseout = (element: HTMLElement, e: Event) => {\r\n return this._mouseout(element, e as MouseEvent)\r\n }\r\n\r\n // General Methods\r\n public getItemTriggerType = (item: HTMLElement) => {\r\n return this._getItemOption(item, 'trigger')\r\n }\r\n\r\n public getItemSubType = (element: HTMLElement) => {\r\n return this._getItemSubType(element)\r\n }\r\n\r\n public show = (item: HTMLElement) => {\r\n return this._show(item)\r\n }\r\n\r\n public hide = (item: HTMLElement) => {\r\n return this._hide(item)\r\n }\r\n\r\n public reset = (item: HTMLElement) => {\r\n return this._reset(item)\r\n }\r\n\r\n public update = () => {\r\n return this._update()\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n public getItemLinkElement = (item: HTMLElement) => {\r\n return this._getItemLinkElement(item)\r\n }\r\n\r\n public getItemToggleElement = (item: HTMLElement) => {\r\n return this._getItemToggleElement(item)\r\n }\r\n\r\n public getItemSubElement = (item: HTMLElement) => {\r\n return this._getItemSubElement(item)\r\n }\r\n\r\n public getItemParentElements = (item: HTMLElement) => {\r\n return this._getItemParentElements(item)\r\n }\r\n\r\n public isItemSubShown = (item: HTMLElement) => {\r\n return this._isItemSubShown(item)\r\n }\r\n\r\n public isItemParentShown = (item: HTMLElement) => {\r\n return this._isItemParentShown(item)\r\n }\r\n\r\n public getTriggerElement = () => {\r\n return this.triggerElement\r\n }\r\n\r\n public isItemDropdownPermanent = (item: HTMLElement) => {\r\n return this._isItemDropdownPermanent(item)\r\n }\r\n\r\n // Accordion Mode Methods\r\n public hideAccordions = (item: HTMLElement) => {\r\n return this._hideAccordions(item)\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: any) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: any) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n // public static methods\r\n // Get KTMenu instance by element\r\n public static getInstance = (element: HTMLElement) => {\r\n // Element has menu DOM reference in it's DATA storage\r\n const elementMenu = DataUtil.get(element, 'menu')\r\n if (elementMenu) {\r\n return elementMenu\r\n }\r\n\r\n // Element has .menu parent\r\n const menu = element.closest('.menu')\r\n if (menu) {\r\n const menuData = DataUtil.get(menu as HTMLElement, 'menu')\r\n if (menuData) {\r\n return menuData\r\n }\r\n }\r\n\r\n // Element has a parent with DOM reference to .menu in it's DATA storage\r\n if (element.classList.contains('menu-link')) {\r\n const sub = element.closest('.menu-sub')\r\n if (sub) {\r\n const subMenu = DataUtil.get(sub as HTMLElement, 'menu')\r\n if (subMenu) {\r\n return subMenu\r\n }\r\n }\r\n }\r\n\r\n return null\r\n }\r\n\r\n // Hide all dropdowns and skip one if provided\r\n public static hideDropdowns = (skip: HTMLElement | undefined) => {\r\n const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n\r\n if (items && items.length > 0) {\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n const item = items[i]\r\n const menu = MenuComponent.getInstance(item as HTMLElement)\r\n\r\n if (menu && menu.getItemSubType(item) === 'dropdown') {\r\n if (skip) {\r\n if (\r\n menu.getItemSubElement(item).contains(skip) === false &&\r\n item.contains(skip) === false &&\r\n item !== skip\r\n ) {\r\n menu.hide(item)\r\n }\r\n } else {\r\n menu.hide(item)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public static updateDropdowns = () => {\r\n const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n if (items && items.length > 0) {\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i]\r\n\r\n if (DataUtil.has(item as HTMLElement, 'popper')) {\r\n DataUtil.get(item as HTMLElement, 'popper').forceUpdate()\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Global handlers\r\n public static createInstances = (selector: string) => {\r\n // Initialize menus\r\n document.querySelectorAll(selector).forEach((el) => {\r\n const menuItem = el as HTMLElement\r\n let menuInstance = MenuComponent.getInstance(menuItem)\r\n if (!menuInstance) {\r\n menuInstance = new MenuComponent(el as HTMLElement, defaultMenuOptions)\r\n }\r\n })\r\n }\r\n\r\n public static initGlobalHandlers = () => {\r\n // Dropdown handler\r\n document.addEventListener('click', (e) => {\r\n const menuItems = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n if (menuItems && menuItems.length > 0) {\r\n for (let i = 0; i < menuItems.length; i++) {\r\n const item = menuItems[i] as HTMLElement\r\n const menuObj = MenuComponent.getInstance(item) as MenuComponent\r\n if (menuObj && menuObj.getItemSubType(item) === 'dropdown') {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const menu = menuObj.getElement()\r\n const sub = menuObj.getItemSubElement(item) as HTMLElement\r\n if (item === e.target || item.contains(e.target as HTMLElement)) {\r\n continue\r\n }\r\n\r\n if (sub && (sub === e.target || sub.contains(e.target as HTMLElement))) {\r\n continue\r\n }\r\n menuObj.hide(item)\r\n }\r\n }\r\n }\r\n })\r\n\r\n // Sub toggle handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger=\"auto\"])',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu) {\r\n return menu.click(this, e)\r\n }\r\n }\r\n )\r\n\r\n // // Link handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '.menu-item:not([data-kt-menu-trigger]) > .menu-link',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n e.stopPropagation()\r\n const menu = MenuComponent.getInstance(this)\r\n if (menu && menu.link) {\r\n return menu.link(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Dismiss handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-dismiss=\"true\"]',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu) {\r\n return menu.dismiss(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Mouseover handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-trigger], .menu-sub',\r\n 'mouseover',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu && menu.getItemSubType(this) === 'dropdown') {\r\n return menu.mouseover(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Mouseout handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-trigger], .menu-sub',\r\n 'mouseout',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu && menu.getItemSubType(this) === 'dropdown') {\r\n return menu.mouseout(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Resize handler\r\n window.addEventListener('resize', () => {\r\n let timer\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n const elements = document.querySelectorAll('[data-kt-menu=\"true\"]')\r\n elements.forEach((el) => {\r\n const menu = MenuComponent.getInstance(el as HTMLElement)\r\n if (menu) {\r\n menu.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n public static bootstrap = () => {\r\n MenuComponent.initGlobalHandlers()\r\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\r\n }\r\n\r\n public static reinitialization = () => {\r\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: MenuOptions = defaultMenuOptions\r\n ): MenuComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let menu = MenuComponent.getInstance(item)\r\n if (!menu) {\r\n menu = new MenuComponent(item, options)\r\n }\r\n return menu\r\n }\r\n}\r\n\r\nexport {MenuComponent, defaultMenuOptions}\r\n","import {\r\n EventHandlerUtil,\r\n DataUtil,\r\n getBreakpoint,\r\n getAttributeValueByBreakpoint,\r\n stringSnakeToCamel,\r\n getObjectPropertyValueByKey,\r\n getViewPort,\r\n isVisibleElement,\r\n throttle,\r\n} from '../_utils/index'\r\n\r\nimport {MenuComponent, defaultMenuOptions} from './MenuComponent'\r\n\r\nexport interface ISearchOptions {\r\n minLength: number // Miniam text lenght to query search\r\n keypress: boolean // Enable search on keypress\r\n enter: boolean // Enable search on enter key press\r\n layout: 'menu' | 'inline' // Use 'menu' or 'inline' layout options to display search results\r\n responsive?: number // Pass integer value or bootstrap compatible breakpoint key(sm,md,lg,xl,xxl) to enable reponsive form mode for device width below the breakpoint value\r\n showOnFocus: boolean // Always show menu on input focus\r\n}\r\n\r\nexport interface ISearchQueries {\r\n componentName: string\r\n instanseQuery: string\r\n attrQuery: string\r\n}\r\n\r\nconst defaultSearchOptions: ISearchOptions = {\r\n minLength: 2, // Miniam text lenght to query search\r\n keypress: true, // Enable search on keypress\r\n enter: true, // Enable search on enter key press\r\n layout: 'menu', // Use 'menu' or 'inline' layout options to display search results\r\n showOnFocus: true, // Always show menu on input focus\r\n}\r\n\r\nconst defaultSearchQueires: ISearchQueries = {\r\n componentName: 'search',\r\n instanseQuery: '[data-kt-search]',\r\n attrQuery: 'data-kt-search-',\r\n}\r\n\r\nclass SearchComponent {\r\n element: HTMLElement\r\n contentElement: HTMLElement\r\n formElement: HTMLFormElement\r\n inputElement: HTMLInputElement\r\n spinnerElement: HTMLElement\r\n clearElement: HTMLElement\r\n toggleElement: HTMLElement\r\n submitElement: HTMLElement\r\n toolbarElement: HTMLElement\r\n resultsElement: HTMLElement\r\n suggestionElement: HTMLElement\r\n emptyElement: HTMLElement\r\n layout: any\r\n\r\n options: ISearchOptions\r\n queries: ISearchQueries\r\n\r\n processing: boolean = false\r\n menuObject: MenuComponent | undefined\r\n\r\n constructor(_element: HTMLElement, _options: ISearchOptions, _queries: ISearchQueries) {\r\n // Variables\r\n this.options = Object.assign(defaultSearchOptions, _options)\r\n this.queries = _queries\r\n\r\n // Elements\r\n this.element = _element\r\n this.contentElement = this._getElement('content') as HTMLElement\r\n this.formElement = this._getElement('form') as HTMLFormElement\r\n this.inputElement = this._getElement('input') as HTMLInputElement\r\n this.spinnerElement = this._getElement('spinner') as HTMLElement\r\n this.clearElement = this._getElement('clear') as HTMLElement\r\n this.toggleElement = this._getElement('toggle') as HTMLElement\r\n this.submitElement = this._getElement('submit') as HTMLElement\r\n this.toolbarElement = this._getElement('toolbar') as HTMLElement\r\n\r\n this.resultsElement = this._getElement('results') as HTMLElement\r\n this.suggestionElement = this._getElement('suggestion') as HTMLElement\r\n this.emptyElement = this._getElement('empty') as HTMLElement\r\n\r\n // Layout\r\n this.layout = this.getOption('layout')\r\n if (this.layout === 'menu') {\r\n this.menuObject = new MenuComponent(this.contentElement, defaultMenuOptions)\r\n }\r\n\r\n // Update\r\n this.update()\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private _getElement = (name: string) => {\r\n return this.element.querySelector('[data-kt-search-element=\"' + name + '\"]')\r\n }\r\n\r\n // Get option\r\n private getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n\r\n if (value !== null && String(value) === 'true') {\r\n return true\r\n } else if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n // Check if responsive form mode is enabled\r\n private getResponsiveFormMode = () => {\r\n const responsive = this.getOption('responsive') as string\r\n const width = getViewPort().width\r\n\r\n if (!responsive) {\r\n return null\r\n }\r\n\r\n const breakpoint = getBreakpoint(responsive)\r\n let breakPointNum = -1\r\n if (!breakpoint) {\r\n breakPointNum = parseInt(responsive)\r\n } else {\r\n breakPointNum = +breakpoint\r\n }\r\n\r\n if (width < breakPointNum) {\r\n return 'on'\r\n } else {\r\n return 'off'\r\n }\r\n }\r\n\r\n // Focus\r\n private focus = () => {\r\n this.element.classList.add('focus')\r\n\r\n if (\r\n this.getOption('show-on-focus') === true ||\r\n this.inputElement.value.length >= this.options.minLength\r\n ) {\r\n this.show()\r\n }\r\n }\r\n\r\n // Blur\r\n private blur = () => {\r\n this.element.classList.remove('focus')\r\n }\r\n\r\n // Enter\r\n private enter = (e: KeyboardEvent) => {\r\n const key = e.charCode || e.keyCode || 0\r\n\r\n if (key === 13) {\r\n e.preventDefault()\r\n\r\n this.search()\r\n }\r\n }\r\n\r\n // Input\r\n private input = () => {\r\n if (this.getOption('min-length')) {\r\n const minLength = parseInt(this.getOption('min-length') as string)\r\n\r\n if (this.inputElement.value.length >= minLength) {\r\n this.search()\r\n } else if (this.inputElement.value.length === 0) {\r\n this.clear()\r\n }\r\n }\r\n }\r\n\r\n private handlers(): void {\r\n // Focus\r\n this.inputElement.addEventListener('focus', this.focus)\r\n\r\n // Blur\r\n this.inputElement.addEventListener('blur', this.blur)\r\n\r\n // Keypress\r\n if (this.getOption('keypress') === true) {\r\n this.inputElement.addEventListener('input', this.input)\r\n }\r\n\r\n // Submit\r\n if (this.submitElement) {\r\n this.submitElement.addEventListener('click', this.search)\r\n }\r\n\r\n // Enter\r\n if (this.getOption('enter') === true) {\r\n this.inputElement.addEventListener('keypress', this.enter)\r\n }\r\n\r\n // Clear\r\n if (this.clearElement) {\r\n this.clearElement.addEventListener('click', this.clear)\r\n }\r\n\r\n // Menu\r\n if (this.menuObject) {\r\n // Toggle menu\r\n if (this.toggleElement) {\r\n this.toggleElement.addEventListener('click', this.show)\r\n\r\n this.menuObject.on('kt.menu.dropdown.show', function () {\r\n // @ts-ignore\r\n if (isVisibleElement(this.toggleElement)) {\r\n // @ts-ignore\r\n this.toggleElement.classList.add('active')\r\n // @ts-ignore\r\n this.toggleElement.classList.add('show')\r\n }\r\n })\r\n\r\n this.menuObject.on('kt.menu.dropdown.hide', function () {\r\n // @ts-ignore\r\n if (isVisibleElement(this.toggleElement)) {\r\n // @ts-ignore\r\n this.toggleElement.classList.remove('active')\r\n // @ts-ignore\r\n this.toggleElement.classList.remove('show')\r\n }\r\n })\r\n }\r\n\r\n this.menuObject.on('kt.menu.dropdown.shown', function () {\r\n // @ts-ignore\r\n this.inputElement.focus()\r\n })\r\n }\r\n\r\n // Window resize handling\r\n window.addEventListener('resize', () => {\r\n let timer\r\n\r\n throttle(\r\n timer,\r\n () => {\r\n this.update()\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n // Update\r\n public update = () => {\r\n // Handle responsive form\r\n if (this.layout === 'menu') {\r\n let responsiveFormMode = this.getResponsiveFormMode()\r\n\r\n if (responsiveFormMode === 'on' && this.contentElement.contains(this.formElement) === false) {\r\n this.contentElement.prepend(this.formElement)\r\n this.formElement.classList.remove('d-none')\r\n } else if (\r\n responsiveFormMode === 'off' &&\r\n this.contentElement.contains(this.formElement) === true\r\n ) {\r\n this.element.prepend(this.formElement)\r\n this.formElement.classList.add('d-none')\r\n }\r\n }\r\n }\r\n\r\n // Show menu\r\n public show = () => {\r\n if (this.menuObject) {\r\n this.update()\r\n\r\n this.menuObject.show(this.element)\r\n }\r\n }\r\n\r\n // Hide menu\r\n public hide = () => {\r\n if (this.menuObject) {\r\n this.update()\r\n\r\n this.menuObject.hide(this.element)\r\n }\r\n }\r\n\r\n // Search\r\n public search = () => {\r\n if (this.processing === false) {\r\n // Show search spinner\r\n if (this.spinnerElement) {\r\n this.spinnerElement.classList.remove('d-none')\r\n }\r\n\r\n // Hide search clear button\r\n if (this.clearElement) {\r\n this.clearElement.classList.add('d-none')\r\n }\r\n\r\n // Hide search toolbar\r\n if (this.toolbarElement) {\r\n this.toolbarElement.classList.add('d-none')\r\n }\r\n\r\n // Focus input\r\n this.inputElement.focus()\r\n\r\n this.processing = true\r\n EventHandlerUtil.trigger(this.element, 'kt.search.process')\r\n }\r\n }\r\n\r\n // Complete\r\n public complete = () => {\r\n if (this.spinnerElement) {\r\n this.spinnerElement.classList.add('d-none')\r\n }\r\n\r\n // Show search toolbar\r\n if (this.clearElement) {\r\n this.clearElement.classList.remove('d-none')\r\n }\r\n\r\n if (this.inputElement.value.length === 0) {\r\n this.clear()\r\n }\r\n\r\n // Focus input\r\n this.inputElement.focus()\r\n\r\n this.show()\r\n\r\n this.processing = false\r\n }\r\n\r\n // Clear\r\n public clear = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.search.clear') === false) {\r\n return\r\n }\r\n\r\n // Clear and focus input\r\n this.inputElement.value = ''\r\n this.inputElement.focus()\r\n\r\n // Hide clear icon\r\n if (this.clearElement) {\r\n this.clearElement.classList.add('d-none')\r\n }\r\n\r\n // Show search toolbar\r\n if (this.toolbarElement) {\r\n this.toolbarElement.classList.remove('d-none')\r\n }\r\n\r\n // Hide menu\r\n if (this.getOption('show-on-focus') === false) {\r\n this.hide()\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.search.cleared')\r\n }\r\n\r\n public isProcessing = () => {\r\n return this.processing\r\n }\r\n\r\n public getQuery = () => {\r\n return this.inputElement.value\r\n }\r\n\r\n public getMenu = () => {\r\n return this.menuObject\r\n }\r\n\r\n public getFormElement = () => {\r\n return this.formElement\r\n }\r\n\r\n public getInputElement(): HTMLInputElement {\r\n return this.inputElement\r\n }\r\n\r\n public getContentElement(): HTMLElement {\r\n return this.contentElement\r\n }\r\n\r\n public getElement(): HTMLElement {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultSearchQueires.componentName\r\n ) => {\r\n const Search = DataUtil.get(el, componentName)\r\n if (Search) {\r\n return Search\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultSearchQueires.instanseQuery,\r\n options: ISearchOptions = defaultSearchOptions,\r\n queries: ISearchQueries = defaultSearchQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let Search = SearchComponent.getInstance(item)\r\n if (!Search) {\r\n Search = new SearchComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultSearchQueires.instanseQuery,\r\n options: ISearchOptions = defaultSearchOptions,\r\n queries: ISearchQueries = defaultSearchQueires\r\n ): SearchComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let Search = SearchComponent.getInstance(item)\r\n if (!Search) {\r\n Search = new SearchComponent(item, options, queries)\r\n }\r\n return Search\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultSearchQueires.instanseQuery) => {\r\n SearchComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultSearchQueires.instanseQuery) => {\r\n SearchComponent.createInstances(selector)\r\n }\r\n}\r\nexport {SearchComponent, defaultSearchOptions, defaultSearchQueires}\r\n","import axios from \"axios\";\r\nconst ID_TOKEN_KEY = \"id_token\" as string;\r\n\r\n/**\r\n * @description get token form localStorage\r\n */\r\nexport const getToken = (): string | null => {\r\n return window.localStorage.getItem(ID_TOKEN_KEY);\r\n};\r\n\r\nexport const getUser = () => {\r\n return {\r\n email: localStorage.getItem(\"email\"),\r\n username: localStorage.getItem(\"username\"),\r\n };\r\n};\r\n\r\n/**\r\n * @description save token into localStorage\r\n * @param token: string\r\n */\r\nexport const saveToken = (token: string): void => {\r\n window.localStorage.setItem(ID_TOKEN_KEY, token);\r\n};\r\n\r\nexport const saveUser = (user): void => {\r\n user.username ? localStorage.setItem(\"username\", user.username) : false;\r\n user.email ? localStorage.setItem(\"email\", user.email) : false;\r\n localStorage.setItem(\"permissions\", JSON.stringify(user.permissions));\r\n localStorage.setItem(\"features\", JSON.stringify(user.features));\r\n};\r\n\r\n/**\r\n * @description remove token form localStorage\r\n */\r\nexport const destroyToken = (): void => {\r\n window.localStorage.removeItem(ID_TOKEN_KEY);\r\n};\r\n\r\naxios.interceptors.response.use(\r\n function (response) {\r\n // What do you do if you receive a response, such as jump to your login page?\r\n // ......\r\n return response;\r\n },\r\n function (error) {\r\n if (error.response.status === 403 || error.response.status === 401) {\r\n localStorage.clear();\r\n window.location.reload();\r\n }\r\n //// Do something for the response error\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nexport default { getToken, saveToken, destroyToken, saveUser };\r\n","import { createRouter, createWebHistory, RouteRecordRaw } from \"vue-router\";\r\nimport store from \"@/store\";\r\nimport { Mutations, Actions } from \"@/store/enums/StoreEnums\";\r\n\r\nconst routes: Array = [\r\n {\r\n path: \"/\",\r\n redirect: \"/dashboard\",\r\n component: () => import(\"@/layout/Layout.vue\"),\r\n children: [\r\n {\r\n path: \"/dashboard\",\r\n name: \"dashboard\",\r\n component: () => import(\"@/views/Dashboard.vue\"),\r\n },\r\n {\r\n path: \"/builder\",\r\n name: \"builder\",\r\n component: () => import(\"@/views/Builder.vue\"),\r\n },\r\n {\r\n path: \"/provisioning/devices/\",\r\n name: \"provisioning\",\r\n component: () => import(\"@/components/page-layouts/Profile.vue\"),\r\n children: [\r\n {\r\n path: \"/bins\",\r\n name: \"device-overview\",\r\n component: () => import(\"@/views/provisioning/devices/Bins.vue\"),\r\n },\r\n {\r\n path: \"/trackers\",\r\n name: \"tracker-overview\",\r\n component: () =>\r\n import(\"@/views/provisioning/devices/trackers.vue\"),\r\n },\r\n {\r\n path: \"/provisioning/devices/uplink/:id\",\r\n name: \"uplink-overview\",\r\n component: () => import(\"@/views/provisioning/devices/Uplink.vue\"),\r\n },\r\n {\r\n path: \"repo_to_platform\",\r\n name: \"device-projects\",\r\n component: () =>\r\n import(\"@/views/provisioning/devices/RepoToPlatform.vue\"),\r\n },\r\n {\r\n path: \"add_repo\",\r\n name: \"device-campaigns\",\r\n component: () =>\r\n import(\"@/views/provisioning/devices/Add_Repo.vue\"),\r\n },\r\n {\r\n path: \"connections\",\r\n name: \"device-connections\",\r\n component: () =>\r\n import(\"@/views/provisioning/devices/Connections.vue\"),\r\n },\r\n {\r\n path: \"repository\",\r\n name: \"device-repository\",\r\n component: () =>\r\n import(\"@/views/provisioning/devices/Repository.vue\"),\r\n },\r\n ],\r\n },\r\n {\r\n path: \"/administration/notifications\",\r\n name: \"apps-administration-notification\",\r\n component: () =>\r\n import(\"@/views/apps/administration/notifications/Notifications.vue\"),\r\n },\r\n {\r\n path: \"/administration/users\",\r\n name: \"apps-administration-users\",\r\n component: () =>\r\n import(\"@/views/apps/administration/users/UsersList.vue\"),\r\n },\r\n {\r\n path: \"/help/viewer\",\r\n name: \"apps-help-section\",\r\n component: () => import(\"@/views/help/HelpSection.vue\"),\r\n },\r\n {\r\n path: \"/production\",\r\n name: \"production\",\r\n component: () => import(\"@/views/help/Production.vue\"),\r\n },\r\n {\r\n path: \"/credentialsheets\",\r\n name: \"credentialsheets\",\r\n component: () => import(\"@/views/help/CredentialSheets.vue\"),\r\n },\r\n {\r\n path: \"/devicereport\",\r\n name: \"devicereport\",\r\n component: () => import(\"@/views/DataAnalysis/DeviceReport.vue\"),\r\n },\r\n {\r\n path: \"/companyreport\",\r\n name: \"companyreport\",\r\n component: () => import(\"@/views/DataAnalysis/CompanyReport.vue\"),\r\n },\r\n {\r\n path: \"/downlink/vie\",\r\n name: \"downlink-managment\",\r\n component: () => import(\"@/views/downlink/Downlink.vue\"),\r\n },\r\n {\r\n path: \"/webhooks\",\r\n name: \"webhooks-management\",\r\n component: () => import(\"@/views/webhooks/Webhooks.vue\"),\r\n },\r\n\r\n {\r\n path: \"/management/permission\",\r\n name: \"permissions-managment\",\r\n component: () => import(\"@/views/permissions/Permission.vue\"),\r\n },\r\n\r\n {\r\n path: \"/management/routing\",\r\n name: \"routing-managment\",\r\n component: () => import(\"@/views/routing/routing.vue\"),\r\n },\r\n\r\n {\r\n path: \"/help/adddevice\",\r\n name: \"help-add-device\",\r\n component: () => import(\"@/views/help/files/AddDevice.vue\"),\r\n },\r\n {\r\n path: \"/help/addbins\",\r\n name: \"help-add-bins\",\r\n component: () => import(\"@/views/help/files/AddBins.vue\"),\r\n },\r\n {\r\n path: \"/help/nbiot\",\r\n name: \"help-nbiot-device\",\r\n component: () => import(\"@/views/help/files/Mqtt.vue\"),\r\n },\r\n {\r\n path: \"/help/roles\",\r\n name: \"help-roles-device\",\r\n component: () => import(\"@/views/help/files/Roles.vue\"),\r\n },\r\n {\r\n path: \"/help/adminpanel\",\r\n name: \"help-admin-device\",\r\n component: () => import(\"@/views/help/files/Admin.vue\"),\r\n },\r\n {\r\n path: \"/help/daizy\",\r\n name: \"help-daizy-device\",\r\n component: () => import(\"@/views/help/files/DaizyDoc.vue\"),\r\n },\r\n {\r\n path: \"/apps/billing/invoice\",\r\n name: \"invoices\",\r\n component: () => import(\"@/views/billing/InvoiceList.vue\"),\r\n },\r\n {\r\n path: \"/apps/billing/create\",\r\n name: \"create\",\r\n component: () => import(\"@/views/billing/CreateInvoice.vue\"),\r\n },\r\n {\r\n path: \"/apps/billing/update/:id\",\r\n name: \"update\",\r\n component: () => import(\"@/views/billing/CreateInvoice.vue\"),\r\n },\r\n {\r\n path: \"/apps/csv/decoder\",\r\n name: \"csv-decoder\",\r\n component: () =>\r\n import(\"@/views/provisioning/devices/Csv_Decoder/Decoder.vue\"),\r\n },\r\n {\r\n path: \"/administration/companies\",\r\n name: \"csv-listing\",\r\n component: () =>\r\n import(\"@/views/apps/administration/companies/CustomerList.vue\"),\r\n },\r\n ],\r\n },\r\n {\r\n path: \"/\",\r\n component: () => import(\"@/components/page-layouts/Auth.vue\"),\r\n children: [\r\n {\r\n path: \"/sign-in\",\r\n name: \"sign-in\",\r\n component: () =>\r\n import(\"@/views/provisioning/authentication/basic-flow/SignIn.vue\"),\r\n },\r\n {\r\n path: \"/sign-up\",\r\n name: \"sign-up\",\r\n component: () =>\r\n import(\"@/views/provisioning/authentication/basic-flow/SignUp.vue\"),\r\n },\r\n {\r\n path: \"/password-reset\",\r\n name: \"password-reset\",\r\n component: () =>\r\n import(\r\n \"@/views/provisioning/authentication/basic-flow/PasswordReset.vue\"\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n // the 404 route, when none of the above matches\r\n path: \"/404\",\r\n name: \"404\",\r\n component: () => import(\"@/views/provisioning/authentication/Error404.vue\"),\r\n },\r\n {\r\n path: \"/500\",\r\n name: \"500\",\r\n component: () => import(\"@/views/provisioning/authentication/Error500.vue\"),\r\n },\r\n {\r\n path: \"/:pathMatch(.*)*\",\r\n redirect: \"/404\",\r\n },\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(),\r\n routes,\r\n});\r\n\r\nrouter.beforeEach(async (to, from) => {\r\n // reset config to initial state\r\n store.commit(Mutations.RESET_LAYOUT_CONFIG);\r\n\r\n store.dispatch(Actions.VERIFY_AUTH);\r\n\r\n // Scroll page to top on every route change\r\n setTimeout(() => {\r\n window.scrollTo(0, 0);\r\n }, 100);\r\n});\r\n\r\nexport default router;\r\n","const base_url = process.env.VUE_APP_API_URL;\r\nconst GET_DEVICES_LISTING = base_url + \"devices/listing\";\r\nconst UPDATE_DEVICE = base_url + \"devices/\";\r\nconst CHECK_USER_PASSWORD = base_url + \"users/check_password\";\r\nconst DELETE_DEVICE = base_url + \"devices/\";\r\nconst DELETE_DEVICE_FROM_ADMIN = base_url + \"devices/remove_from_admin\";\r\nconst DELETE_DEVICE_FROM_PLATFORM = base_url + \"devices/remove_from_platform/\";\r\nconst GET_CUSTOMERS_LIST = base_url + \"companies/list\";\r\nconst GET_CUSTOMERS_LISTING = base_url + \"companies/listing\";\r\nconst CREATE_DEVICE_BY_CSV = base_url + \"devices/csv\";\r\nconst GET_BINS_LISTING = base_url + \"bins/listing_admin\";\r\nconst GET_BIN_LIST = base_url + \"bins/list\";\r\nconst GET_WASTE_TYPE = base_url + \"bins/wastetypes\";\r\nconst GET_UPLINK_LISTING = base_url + \"devices/uplink_listing\";\r\nconst ADD_DEVICES_DATA = base_url + \"devices\";\r\nconst ADD_REPO_TO_PLATFORM = base_url + \"devices/repo_to_platform\";\r\nconst EXPORT_DEVICES = base_url + \"devices/expo\";\r\nconst CSV_REPO = base_url + \"devices/repo\";\r\n// Notifications\r\nconst ADD_NOTIFICATION_RULES = base_url + \"notifications\";\r\nconst GET_NOTIFICATION_LIST = base_url + \"notifications/listing\";\r\nconst GET_NOTIFICATION_EMAIL_LIST = base_url + \"notifications/email/\";\r\nconst DELETE_NOTIFICATION = base_url + \"notifications/\";\r\nconst ADD_NOTIFICATION_EMAIL = base_url + \"notifications/email\";\r\nconst DELETE_NOTIFICATION_EMAIL = base_url + \"notifications/email/\";\r\nconst GET_NOTIFICATION_RULES = base_url + \"notifications/\";\r\nconst ADD_NOTIFICATION_MOBILE = base_url + \"notifications/mobile\";\r\nconst GET_NOTIFICATION_MOBILE_LIST = base_url + \"notifications/mobile/\";\r\nconst DELETE_NOTIFICATION_MOBILE = base_url + \"notifications/mobile/\";\r\n\r\n// Invoices\r\nconst GET_INVOICEING_LISTING = base_url + \"invoices/listing\";\r\nconst CREATE_INVOICE = base_url + \"invoices/\";\r\nconst UPDATE_INVOICE = base_url + \"invoices/\";\r\nconst GET_INVOICE = base_url + \"invoices/\";\r\nconst DELETE_INVOICE = base_url + \"invoices/\";\r\nconst GET_USERS_LIST = base_url + \"users/listing\";\r\nconst ADD_USERS = base_url + \"users\";\r\nconst DELETE_USER = base_url + \"users/\";\r\nconst UPDATE_USER = base_url + \"users/\";\r\nconst CHANGE_USER_PASSWORD = base_url + \"users/change_password\";\r\nconst ADD_COMPANIES = base_url + \"companies\";\r\nconst DELETE_COMPANIES = base_url + \"companies/\";\r\nconst UPDATE_COMPANY = base_url + \"companies/\";\r\nconst GET_COMPANY = base_url + \"companies/\";\r\nconst PRODUCTION_SCRIPT = base_url + \"devices/production\";\r\nconst CREDENTIAL_SHEETS_CSV_NAMES = base_url + \"devices/csv\";\r\n// Downlinks\r\nconst GET_DOWNLINKS_LISTING = base_url + \"downlinks/listing\";\r\nconst CREATE_DOWNLINK = base_url + \"downlinks/\";\r\nconst UPDATE_DOWNLINK = base_url + \"downlinks/\";\r\nconst DELETE_DOWNLINK = base_url + \"downlinks/delete\";\r\nconst GET_DOWNLINK_DEVICES = base_url + \"downlinks/listing_device\";\r\nconst DECODE_HEX = base_url + \"decoder/\";\r\n// Webhooks\r\nconst GET_WEBHOOKS = base_url + \"webhooks\";\r\nconst CREATE_WEBHOOKS = base_url + \"webhooks/\";\r\nconst UPDATE_WEBHOOKS = base_url + \"webhooks/\";\r\nconst DELETE_WEBHOOKS = base_url + \"webhooks/\";\r\n//Roles and Permission\r\nconst ADD_NEW_ROLE = base_url + \"auth/roles\";\r\nconst USER_ROLE = base_url + \"auth/roles\";\r\nconst EDIT_ROLE = base_url + \"auth/roles/\";\r\nconst DELETE_ROLE = base_url + \"auth/roles/\";\r\nconst NEW_PERMISSION = base_url + \"auth/permissions\";\r\nconst PERMISSION_LIST = base_url + \"auth/permissions/list\";\r\nconst UPDATE_PERMISSION = base_url + \"auth/permissions/\";\r\nconst DELETE_PERMISSION = base_url + \"auth/permissions/\";\r\nconst ASSIGN_PERMISSION = base_url + \"auth/assign_permission\";\r\nconst MANAGE_PERMISSION = base_url + \"auth/manage_permission\";\r\nconst PERMISSION_BY_ROLE = base_url + \"auth/permissions_by_role\";\r\nconst UN_ASSIGN_PERMISSION = base_url + \"auth/un_assign_permissions\";\r\n// Services\r\nconst SERVICES_LIST = base_url + \"auth/services\";\r\n//Features\r\nconst FEATURE_LIST = base_url + \"auth/features/list\";\r\nconst NEW_ADD_FEATURE = base_url + \"auth/features\";\r\nconst UPDATE_FEATURE = base_url + \"auth/features/\";\r\nconst DELETE_FEATURE = base_url + \"auth/features/\";\r\n//assign company waste type\r\nconst WASTE_TYPE_LIST = base_url + \"companies/waste_types/list\";\r\nconst ADD_WASTE_TYPE = base_url + \"companies/waste_types\";\r\nconst UPDATE_WASTE_TYPE = base_url + \"companies/waste_types/\";\r\nconst DELETE_WASTE_TYPE = base_url + \"companies/waste_types/\";\r\nconst ASSIGN_WASTE_TYPES = base_url + \"companies/assign_waste_types\";\r\nconst WASTE_TYPE_BY_COMPANY = base_url + \"companies/waste_types_by_company\";\r\n//Csv decoder\r\nconst CSV_DECODER = base_url + \"devices/decoder/\";\r\n//Bins operation update data\r\nconst DEPTH_MAP = base_url + \"bins/admin/depth_map\";\r\nconst Bin_Notification = base_url + \"bins/admin/notification \";\r\nconst BINS_MOBILITY = base_url + \"bins/admin/mobility\";\r\nconst UPDATE_BIN_DIMENSION = base_url + \"bins/bin_dimension\";\r\nconst UPDATE_BIN_WASTE_TYPE_ID = base_url + \"bins/bin_waste_type\";\r\nconst UPDATE_BIN_LOCATION = base_url + \"bins/bin_location\";\r\nconst OFFSET = base_url + \"bins/offset_raw_distance\";\r\nconst UPDATE_FULL_AT = base_url + \"bins/full_at\";\r\nconst UPDATE_THRESHOLD = base_url + \"companies/pickup/\";\r\n//Analysis Report\r\nconst DEVICE_DATA = base_url + \"devices/report_data\";\r\nconst COMPANIES_DATA = base_url + \"companies/fetch_report_data\";\r\n// Routing Configuration\r\nconst ROUTING_CONFIGURATION = base_url + \"routes/company\";\r\nconst GET_ROUTING_LISTING = base_url + \"routes/listing\";\r\nconst DELETE_CONFIGURATION = base_url + \"routes/configuration/\";\r\nconst UPDATE_CONFIGURATION = base_url + \"routes/configuration/\";\r\nconst BINS_CONFIGURATION = base_url + \"bins/configuration\";\r\n// Trackers\r\nconst GET_TRACKERS_LISTING = base_url + \"trackers/listing_admin\";\r\nconst DELETE_TRACKER_FROM_PLATFORM = base_url + \"trackers/\";\r\nconst UPDATE_TRACKER = base_url + \"trackers/update/\";\r\n\r\n// KPI APIs\r\nconst GROUP_LIST = base_url + \"companies/address_group/get\";\r\nconst ADD_ADDRESS_GROUP = base_url + \"companies/add_address_group\";\r\nconst ADDRESS_LIST = base_url + \"companies/address/get\";\r\nconst ADD_ADDRESS = base_url + \"companies/add_address\";\r\nconst ADDRESS_DETAILS = base_url + \"companies/address_detail/\";\r\n\r\nconst URLS = {\r\n GET_DEVICES_LISTING,\r\n GET_CUSTOMERS_LIST,\r\n UPDATE_DEVICE,\r\n DELETE_DEVICE,\r\n GET_WASTE_TYPE,\r\n CHECK_USER_PASSWORD,\r\n CREATE_DEVICE_BY_CSV,\r\n GET_BINS_LISTING,\r\n GET_BIN_LIST,\r\n GET_UPLINK_LISTING,\r\n ADD_DEVICES_DATA,\r\n ADD_REPO_TO_PLATFORM,\r\n GET_CUSTOMERS_LISTING,\r\n EXPORT_DEVICES,\r\n CSV_REPO,\r\n // Notifications\r\n ADD_NOTIFICATION_RULES,\r\n GET_NOTIFICATION_LIST,\r\n GET_NOTIFICATION_EMAIL_LIST,\r\n ADD_NOTIFICATION_EMAIL,\r\n DELETE_NOTIFICATION,\r\n DELETE_NOTIFICATION_EMAIL,\r\n GET_NOTIFICATION_RULES,\r\n GET_INVOICEING_LISTING,\r\n ADD_NOTIFICATION_MOBILE,\r\n GET_NOTIFICATION_MOBILE_LIST,\r\n DELETE_NOTIFICATION_MOBILE,\r\n // Invoices\r\n CREATE_INVOICE,\r\n UPDATE_INVOICE,\r\n GET_INVOICE,\r\n DELETE_INVOICE,\r\n GET_USERS_LIST,\r\n ADD_USERS,\r\n DELETE_USER,\r\n UPDATE_USER,\r\n CHANGE_USER_PASSWORD,\r\n ADD_COMPANIES,\r\n DELETE_COMPANIES,\r\n UPDATE_COMPANY,\r\n PRODUCTION_SCRIPT,\r\n CREDENTIAL_SHEETS_CSV_NAMES,\r\n DELETE_DEVICE_FROM_ADMIN,\r\n DELETE_DEVICE_FROM_PLATFORM,\r\n // downlinks\r\n GET_DOWNLINKS_LISTING,\r\n CREATE_DOWNLINK,\r\n UPDATE_DOWNLINK,\r\n DELETE_DOWNLINK,\r\n GET_DOWNLINK_DEVICES,\r\n DECODE_HEX,\r\n // Web hooks\r\n GET_WEBHOOKS,\r\n CREATE_WEBHOOKS,\r\n UPDATE_WEBHOOKS,\r\n DELETE_WEBHOOKS,\r\n //roles\r\n DELETE_ROLE,\r\n NEW_PERMISSION, \r\n PERMISSION_LIST,\r\n NEW_ADD_FEATURE,\r\n FEATURE_LIST,\r\n ASSIGN_PERMISSION,\r\n UPDATE_FEATURE,\r\n DELETE_FEATURE,\r\n\r\n // Permissions\r\n USER_ROLE,\r\n ADD_NEW_ROLE,\r\n EDIT_ROLE,\r\n MANAGE_PERMISSION,\r\n UPDATE_PERMISSION,\r\n DELETE_PERMISSION,\r\n PERMISSION_BY_ROLE,\r\n UN_ASSIGN_PERMISSION,\r\n\r\n // Services\r\n SERVICES_LIST,\r\n //waste type\r\n WASTE_TYPE_LIST,\r\n ADD_WASTE_TYPE,\r\n UPDATE_WASTE_TYPE,\r\n DELETE_WASTE_TYPE,\r\n ASSIGN_WASTE_TYPES,\r\n WASTE_TYPE_BY_COMPANY,\r\n //CSV_DECODER\r\n CSV_DECODER,\r\n //Bins operation update data\r\n UPDATE_BIN_DIMENSION,\r\n UPDATE_BIN_WASTE_TYPE_ID,\r\n UPDATE_BIN_LOCATION,\r\n DEPTH_MAP,\r\n Bin_Notification,\r\n BINS_MOBILITY,\r\n OFFSET,\r\n UPDATE_FULL_AT,\r\n UPDATE_THRESHOLD,\r\n //Analysis Report\r\n DEVICE_DATA,\r\n COMPANIES_DATA,\r\n // Routing Configuration\r\n ROUTING_CONFIGURATION,\r\n GET_ROUTING_LISTING,\r\n DELETE_CONFIGURATION,\r\n UPDATE_CONFIGURATION,\r\n BINS_CONFIGURATION,\r\n // Trackers\r\n GET_TRACKERS_LISTING,\r\n DELETE_TRACKER_FROM_PLATFORM,\r\n UPDATE_TRACKER,\r\n // KPI APIs\r\n GROUP_LIST,\r\n GET_COMPANY,\r\n ADD_ADDRESS_GROUP,\r\n ADDRESS_LIST,\r\n ADD_ADDRESS,\r\n ADDRESS_DETAILS\r\n};\r\nexport default URLS;\r\n","export class ElementStyleUtil {\r\n public static set(element: HTMLElement, property: string, value?: any, important?: boolean) {\r\n if (important) {\r\n element.style.setProperty(property, value, 'important')\r\n } else {\r\n element.style.setProperty(property, value)\r\n }\r\n }\r\n\r\n public static get(element: HTMLElement, attributeName: string) {\r\n return element.style.getPropertyValue(attributeName)\r\n }\r\n\r\n public static remove(element: HTMLElement, attibuteName: string) {\r\n element.style.removeProperty(attibuteName)\r\n }\r\n}\r\n","export class DataUtil {\r\n static store: Map> = new Map()\r\n\r\n public static set(instance: HTMLElement | undefined, key: string, data: any): void {\r\n if (!instance) {\r\n return\r\n }\r\n\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n const newMap = new Map().set(key, data)\r\n DataUtil.store.set(instance, newMap)\r\n return\r\n }\r\n\r\n instanceData.set(key, data)\r\n }\r\n\r\n public static get(instance: HTMLElement, key: string): any | undefined {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n return\r\n }\r\n\r\n return instanceData.get(key)\r\n }\r\n\r\n public static remove(instance: HTMLElement, key: string): void {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n return\r\n }\r\n\r\n instanceData.delete(key)\r\n }\r\n\r\n public static has(instance: HTMLElement, key: string): boolean {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (instanceData) {\r\n return instanceData.has(key)\r\n }\r\n\r\n return false\r\n }\r\n\r\n public static getAllInstancesByKey(key: string) {\r\n const result: any[] = []\r\n DataUtil.store.forEach((val) => {\r\n val.forEach((v, k) => {\r\n if (k === key) {\r\n result.push(v)\r\n }\r\n })\r\n })\r\n return result\r\n }\r\n}\r\n","function getObjectPropertyValueByKey(obj: any, key: string): any | undefined {\r\n const map = new Map(Object.entries(obj))\r\n if (obj.hasOwnProperty(key) && map) {\r\n return map.get(key)\r\n }\r\n}\r\n\r\n/**\r\n * Generates unique ID for give prefix.\r\n * @param {string} prefix Prefix for generated ID\r\n * @returns {boolean}\r\n */\r\nfunction getUniqueIdWithPrefix(prefix: string | undefined): string {\r\n const result = Math.floor(Math.random() * new Date().getTime()).toString()\r\n if (!prefix) {\r\n return result\r\n }\r\n\r\n return `${prefix}${result}`\r\n}\r\n\r\n/* eslint-disable no-useless-escape */\r\nfunction stringSnakeToCamel(str: string): string {\r\n return str.replace(/(\\-\\w)/g, function (m) {\r\n return m[1].toUpperCase()\r\n })\r\n}\r\n\r\nfunction toJSON(value: string | JSON): JSON | undefined {\r\n if (typeof value !== 'string') {\r\n return value\r\n }\r\n\r\n if (!value) {\r\n return undefined\r\n }\r\n\r\n // (\"'\" => \"\\\"\");\r\n const result = value\r\n .toString()\r\n .split('')\r\n .map((el) => (el !== \"'\" ? el : '\"'))\r\n .join('')\r\n var jsonStr = result.replace(/(\\w+:)|(\\w+ :)/g, function (matched) {\r\n return '\"' + matched.substring(0, matched.length - 1) + '\":'\r\n })\r\n try {\r\n return JSON.parse(jsonStr)\r\n } catch {\r\n return undefined\r\n }\r\n}\r\n\r\nexport {getObjectPropertyValueByKey, getUniqueIdWithPrefix, stringSnakeToCamel, toJSON}\r\n","import {getUniqueIdWithPrefix} from './_TypesHelpers'\r\n\r\nexport class DOMEventHandlerUtil {\r\n public static store = new Map()\r\n\r\n public static on(\r\n element: HTMLElement,\r\n selector: string,\r\n eventName: string,\r\n callBack: any\r\n ): string {\r\n const eventId = getUniqueIdWithPrefix('DOMEvent')\r\n DOMEventHandlerUtil.store.set(eventId, (e: Event) => {\r\n const targets = element.querySelectorAll(selector)\r\n let target: HTMLElement | null = e.target as HTMLElement\r\n while (target && target !== element) {\r\n for (let i = 0; i < targets.length; i++) {\r\n if (target === targets[i]) {\r\n callBack.call(target, e)\r\n }\r\n }\r\n\r\n if (target.parentElement) {\r\n target = target.parentElement\r\n } else {\r\n target = null\r\n }\r\n }\r\n })\r\n element.addEventListener(eventName, DOMEventHandlerUtil.store.get(eventId))\r\n return eventId\r\n }\r\n\r\n public static off(element: HTMLElement, eventName: string, eventId: string): void {\r\n const funcFromStore = DOMEventHandlerUtil.store.get(eventId)\r\n if (!funcFromStore) {\r\n return\r\n }\r\n\r\n element.removeEventListener(eventName, funcFromStore)\r\n DOMEventHandlerUtil.store.delete(eventId)\r\n }\r\n\r\n public static one(element: HTMLElement, eventName: string, callBack: Function): void {\r\n element.addEventListener(eventName, function calee(e) {\r\n // remove event\r\n if (e.target && e.target.removeEventListener) {\r\n e.target.removeEventListener(e.type, calee)\r\n }\r\n\r\n if (element && e && e.currentTarget) {\r\n // if (element && element.removeEventListener && e && e.currentTarget) {\r\n e.currentTarget.removeEventListener(e.type, calee)\r\n }\r\n\r\n // call hander\r\n return callBack(e)\r\n })\r\n }\r\n}\r\n","import {DOMEventHandlerUtil} from './_DOMEventHandlerUtil'\r\nimport {ElementStyleUtil} from './_ElementStyleUtil'\r\nimport {getElementOffset} from './DomHelpers'\r\n\r\nexport class ElementAnimateUtil {\r\n public static animate(\r\n from: number,\r\n to: number,\r\n duration: number,\r\n update: Function,\r\n complete?: Function\r\n ) {\r\n /**\r\n * TinyAnimate.easings\r\n * Adapted from jQuery Easing\r\n */\r\n const easings = {\r\n linear: function (t: number, b: number, c: number, d: number) {\r\n return (c * t) / d + b\r\n },\r\n }\r\n\r\n // Create mock done() function if necessary\r\n if (!complete) {\r\n complete = function () {}\r\n }\r\n\r\n // Animation loop\r\n // let canceled = false;\r\n const change = to - from\r\n\r\n function loop(timestamp: number) {\r\n var time = (timestamp || +new Date()) - start\r\n\r\n if (time >= 0) {\r\n update(easings.linear(time, from, change, duration))\r\n }\r\n if (time >= 0 && time >= duration) {\r\n update(to)\r\n if (complete) {\r\n complete()\r\n }\r\n } else {\r\n window.requestAnimationFrame(loop)\r\n }\r\n }\r\n\r\n update(from)\r\n\r\n // Start animation loop\r\n const start =\r\n window.performance && window.performance.now ? window.performance.now() : +new Date()\r\n\r\n window.requestAnimationFrame(loop)\r\n }\r\n\r\n public static animateClass(\r\n element: HTMLElement,\r\n animationName: string,\r\n callBack?: Function\r\n ): void {\r\n const animateClasses = animationName.split(' ')\r\n animateClasses.forEach((cssClass) => element.classList.add(cssClass))\r\n DOMEventHandlerUtil.one(element, 'animationend', function () {\r\n animateClasses.forEach((cssClass) => element.classList.remove(cssClass))\r\n })\r\n\r\n if (callBack) {\r\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\r\n }\r\n }\r\n\r\n public static transitionEnd(element: HTMLElement, callBack: Function) {\r\n DOMEventHandlerUtil.one(element, 'transitionend', callBack)\r\n }\r\n\r\n public static animationEnd(element: HTMLElement, callBack: Function) {\r\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\r\n }\r\n\r\n public static animationDelay(element: HTMLElement, value: string) {\r\n ElementStyleUtil.set(element, 'animation-delay', value)\r\n }\r\n\r\n public static animationDuration(element: HTMLElement, value: string) {\r\n ElementStyleUtil.set(element, 'animation-duration', value)\r\n }\r\n\r\n public static scrollTo(element: HTMLElement | null, offset: number, duration: number = 500) {\r\n let targetPos = element ? getElementOffset(element).top : 0\r\n let scrollPos =\r\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\r\n\r\n if (offset) {\r\n scrollPos += offset\r\n targetPos = targetPos - offset\r\n }\r\n\r\n const from = scrollPos\r\n const to = targetPos\r\n\r\n ElementAnimateUtil.animate(from, to, duration, function (value: number) {\r\n document.documentElement.scrollTop = value\r\n // document.body.parentNode.scrollTop = value;\r\n document.body.scrollTop = value\r\n }) //, easing, done\r\n }\r\n public static scrollTop(offset: number, duration: number) {\r\n ElementAnimateUtil.scrollTo(null, offset, duration)\r\n }\r\n}\r\n","import {OffsetModel} from './models/OffsetModel'\r\nimport {ViewPortModel} from './models/ViewPortModel'\r\nimport {ElementStyleUtil} from './_ElementStyleUtil'\r\nimport {DataUtil} from './_DataUtil'\r\nimport {ElementAnimateUtil} from './ElementAnimateUtil'\r\nimport {getObjectPropertyValueByKey, toJSON} from './_TypesHelpers'\r\n\r\nfunction getCSS(el: HTMLElement, styleProp: string) {\r\n const defaultView = (el.ownerDocument || document).defaultView\r\n\r\n if (!defaultView) {\r\n return ''\r\n }\r\n\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\r\n}\r\n\r\nfunction getCSSVariableValue(variableName: string) {\r\n let hex = getComputedStyle(document.documentElement).getPropertyValue(variableName)\r\n if (hex && hex.length > 0) {\r\n hex = hex.trim()\r\n }\r\n\r\n return hex\r\n}\r\n\r\nfunction getElementActualCss(el: HTMLElement, prop: any, cache: boolean) {\r\n let css = ''\r\n\r\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\r\n let value\r\n\r\n // the element is hidden so:\r\n // making the el block so we can meassure its height but still be hidden\r\n css = el.style.cssText\r\n el.style.cssText = 'position: absolute; visibility: hidden; display: block;'\r\n\r\n if (prop === 'width') {\r\n value = el.offsetWidth\r\n } else if (prop === 'height') {\r\n value = el.offsetHeight\r\n }\r\n\r\n el.style.cssText = css\r\n\r\n // store it in cache\r\n if (value !== undefined) {\r\n el.setAttribute('kt-hidden-' + prop, value.toString())\r\n return parseFloat(value.toString())\r\n }\r\n return 0\r\n } else {\r\n // store it in cache\r\n const attributeValue = el.getAttribute('kt-hidden-' + prop)\r\n if (attributeValue || attributeValue === '0') {\r\n return parseFloat(attributeValue)\r\n }\r\n }\r\n}\r\n\r\nfunction getElementActualHeight(el: HTMLElement) {\r\n return getElementActualCss(el, 'height', false)\r\n}\r\n\r\nfunction getElementActualWidth(el: HTMLElement, cache?: boolean) {\r\n return getElementActualCss(el, 'width', false)\r\n}\r\n\r\nfunction getElementIndex(element: HTMLElement) {\r\n if (element.parentNode) {\r\n const c = element.parentNode.children\r\n for (let i = 0; i < c.length; i++) {\r\n if (c[i] === element) return i\r\n }\r\n }\r\n return -1\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\r\nfunction getElementMatches(element: HTMLElement, selector: string) {\r\n const p = Element.prototype\r\n const f = p.matches || p.webkitMatchesSelector\r\n\r\n if (element && element.tagName) {\r\n return f.call(element, selector)\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nfunction getElementOffset(el: HTMLElement): OffsetModel {\r\n // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\r\n // Support: IE <=11 only\r\n // Running getBoundingClientRect on a\r\n // disconnected node in IE throws an error\r\n if (!el.getClientRects().length) {\r\n return {top: 0, left: 0}\r\n }\r\n\r\n // Get document-relative position by adding viewport scroll to viewport-relative gBCR\r\n const rect = el.getBoundingClientRect()\r\n const win = el.ownerDocument.defaultView\r\n if (win) {\r\n return {\r\n top: rect.top + win.pageYOffset,\r\n left: rect.left + win.pageXOffset,\r\n }\r\n }\r\n\r\n return rect\r\n}\r\n\r\nfunction getElementParents(element: Element, selector: string) {\r\n // Element.matches() polyfill\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches = function (s) {\r\n const matches = (document || this.ownerDocument).querySelectorAll(s)\r\n let i = matches.length\r\n while (--i >= 0 && matches.item(i) !== this) {}\r\n return i > -1\r\n }\r\n }\r\n\r\n // Set up a parent array\r\n const parents:Array = []\r\n\r\n let el: Element | null = element\r\n\r\n // Push each parent element to the array\r\n for (; el && el !== document.body; el = el.parentElement) {\r\n if (selector) {\r\n if (el.matches(selector)) {\r\n parents.push(el)\r\n }\r\n continue\r\n }\r\n parents.push(el)\r\n }\r\n\r\n // Return our parent array\r\n return parents\r\n}\r\n\r\nfunction getHighestZindex(el: HTMLElement) {\r\n let bufferNode: Node | null = el as Node\r\n let buffer = el\r\n while (bufferNode && bufferNode !== document) {\r\n // Ignore z-index if position is set to a value where z-index is ignored by the browser\r\n // This makes behavior of this function consistent across browsers\r\n // WebKit always returns auto if the element is positioned\r\n const position = buffer.style.getPropertyValue('position')\r\n if (position === 'absolute' || position === 'relative' || position === 'fixed') {\r\n // IE returns 0 when zIndex is not specified\r\n // other browsers return a string\r\n // we ignore the case of nested elements with an explicit value of 0\r\n //
\r\n const value = parseInt(buffer.style.getPropertyValue('z-index'))\r\n if (!isNaN(value) && value !== 0) {\r\n return value\r\n }\r\n }\r\n\r\n bufferNode = bufferNode.parentNode\r\n buffer = bufferNode as HTMLElement\r\n }\r\n return null\r\n}\r\n\r\nfunction getScrollTop(): number {\r\n return (document.scrollingElement || document.documentElement).scrollTop\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth\r\nfunction getViewPort(): ViewPortModel {\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n }\r\n}\r\n\r\nfunction insertAfterElement(el: HTMLElement, referenceNode: HTMLElement) {\r\n return referenceNode.parentNode?.insertBefore(el, referenceNode.nextSibling)\r\n}\r\n\r\nfunction isElementHasClasses(element: HTMLElement, classesStr: string): boolean {\r\n const classes = classesStr.split(' ')\r\n for (let i = 0; i < classes.length; i++) {\r\n if (!element.classList.contains(classes[i])) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n}\r\n\r\nfunction isVisibleElement(element: HTMLElement): boolean {\r\n return !(element.offsetWidth === 0 && element.offsetHeight === 0)\r\n}\r\n\r\n// Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds\r\nfunction throttle(timer: number | undefined, func: Function, delay?: number) {\r\n // If setTimeout is already scheduled, no need to do anything\r\n if (timer) {\r\n return\r\n }\r\n\r\n // Schedule a setTimeout after delay seconds\r\n timer = window.setTimeout(function () {\r\n func()\r\n\r\n // Once setTimeout function execution is finished, timerId = undefined so that in
\r\n // the next scroll event function execution can be scheduled by the setTimeout\r\n timer = undefined\r\n }, delay)\r\n}\r\n\r\nfunction getElementChildren(element: HTMLElement, selector: string): Array | null {\r\n if (!element || !element.childNodes) {\r\n return null\r\n }\r\n\r\n const result: Array = []\r\n for (let i = 0; i < element.childNodes.length; i++) {\r\n const child = element.childNodes[i]\r\n // child.nodeType == 1 => Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference\r\n if (child.nodeType === 1 && getElementMatches(child as HTMLElement, selector)) {\r\n result.push(child as HTMLElement)\r\n }\r\n }\r\n\r\n return result\r\n}\r\n\r\nfunction getElementChild(element: HTMLElement, selector: string): HTMLElement | null {\r\n const children = getElementChildren(element, selector)\r\n return children ? children[0] : null\r\n}\r\n\r\nfunction isMobileDevice(): boolean {\r\n let test = getViewPort().width < +getBreakpoint('lg') ? true : false\r\n\r\n if (test === false) {\r\n // For use within normal web clients\r\n test = navigator.userAgent.match(/iPad/i) != null\r\n }\r\n\r\n return test\r\n}\r\n\r\nfunction slide(el: HTMLElement, dir: string, speed: number, callback: any) {\r\n if (\r\n !el ||\r\n (dir === 'up' && isVisibleElement(el) === false) ||\r\n (dir === 'down' && isVisibleElement(el) === true)\r\n ) {\r\n return\r\n }\r\n\r\n speed = speed ? speed : 600\r\n let calcHeight = getElementActualHeight(el)\r\n let calcPaddingTop: number = 0\r\n let calcPaddingBottom: number = 0\r\n\r\n if (ElementStyleUtil.get(el, 'padding-top') && DataUtil.get(el, 'slide-padding-top') !== true) {\r\n DataUtil.set(el, 'slide-padding-top', ElementStyleUtil.get(el, 'padding-top'))\r\n }\r\n\r\n if (\r\n ElementStyleUtil.get(el, 'padding-bottom') &&\r\n DataUtil.has(el, 'slide-padding-bottom') !== true\r\n ) {\r\n DataUtil.set(el, 'slide-padding-bottom', ElementStyleUtil.get(el, 'padding-bottom'))\r\n }\r\n\r\n if (DataUtil.has(el, 'slide-padding-top')) {\r\n calcPaddingTop = parseInt(DataUtil.get(el, 'slide-padding-top'))\r\n }\r\n\r\n if (DataUtil.has(el, 'slide-padding-bottom')) {\r\n calcPaddingBottom = parseInt(DataUtil.get(el, 'slide-padding-bottom'))\r\n }\r\n\r\n if (dir === 'up') {\r\n // up\r\n el.style.cssText = 'display: block; overflow: hidden;'\r\n\r\n if (calcPaddingTop) {\r\n ElementAnimateUtil.animate(0, calcPaddingTop, speed, function (value: number) {\r\n el.style.paddingTop = calcPaddingTop - value + 'px'\r\n })\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n ElementAnimateUtil.animate(0, calcPaddingBottom, speed, function (value: number) {\r\n el.style.paddingBottom = calcPaddingBottom - value + 'px'\r\n })\r\n }\r\n\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcHeight || 0,\r\n speed,\r\n function (value: number) {\r\n el.style.height = (calcHeight || 0) - value + 'px'\r\n },\r\n function () {\r\n el.style.height = ''\r\n el.style.display = 'none'\r\n\r\n if (typeof callback === 'function') {\r\n callback()\r\n }\r\n }\r\n )\r\n } else if (dir === 'down') {\r\n // down\r\n el.style.cssText = 'display: block; overflow: hidden;'\r\n\r\n if (calcPaddingTop) {\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcPaddingTop,\r\n speed,\r\n function (value: number) {\r\n //\r\n el.style.paddingTop = value + 'px'\r\n },\r\n function () {\r\n el.style.paddingTop = ''\r\n }\r\n )\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcPaddingBottom,\r\n speed,\r\n function (value: number) {\r\n el.style.paddingBottom = value + 'px'\r\n },\r\n function () {\r\n el.style.paddingBottom = ''\r\n }\r\n )\r\n }\r\n\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcHeight || 0,\r\n speed,\r\n function (value: number) {\r\n el.style.height = value + 'px'\r\n },\r\n function () {\r\n el.style.height = ''\r\n el.style.display = ''\r\n el.style.overflow = ''\r\n\r\n if (typeof callback === 'function') {\r\n callback()\r\n }\r\n }\r\n )\r\n }\r\n}\r\n\r\nfunction slideUp(el: HTMLElement, speed: number, callback: any) {\r\n slide(el, 'up', speed, callback)\r\n}\r\n\r\nfunction slideDown(el: HTMLElement, speed: number, callback: any) {\r\n slide(el, 'down', speed, callback)\r\n}\r\n\r\nfunction getBreakpoint(breakpoint: string) {\r\n let value: number | string = getCSSVariableValue('--bs-' + breakpoint)\r\n if (value) {\r\n value = parseInt(value.trim())\r\n }\r\n\r\n return value\r\n}\r\n\r\nfunction getAttributeValueByBreakpoint(incomingAttr: string): string | JSON {\r\n let value = toJSON(incomingAttr)\r\n if (typeof value !== 'object') {\r\n return incomingAttr\r\n }\r\n\r\n const width = getViewPort().width\r\n let resultKey\r\n let resultBreakpoint = -1\r\n let breakpoint\r\n\r\n for (let key in value) {\r\n if (key === 'default') {\r\n breakpoint = 0\r\n } else {\r\n breakpoint = getBreakpoint(key) ? +getBreakpoint(key) : parseInt(key)\r\n }\r\n\r\n if (breakpoint <= width && breakpoint > resultBreakpoint) {\r\n resultKey = key\r\n resultBreakpoint = breakpoint\r\n }\r\n }\r\n\r\n return resultKey ? getObjectPropertyValueByKey(value, resultKey) : value\r\n}\r\n\r\nfunction colorLighten(color: string, amount: number) {\r\n const addLight = (_color: string, _amount: number) => {\r\n const cc = parseInt(_color, 16) + _amount\r\n const cNum = cc > 255 ? 255 : cc\r\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\r\n return c\r\n }\r\n\r\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\r\n amount = parseInt(((255 * amount) / 100).toString())\r\n return (color = `#${addLight(color.substring(0, 2), amount)}${addLight(\r\n color.substring(2, 4),\r\n amount\r\n )}${addLight(color.substring(4, 6), amount)}`)\r\n}\r\n\r\nfunction colorDarken(color: string, amount: number) {\r\n const subtractLight = (_color: string, _amount: number) => {\r\n const cc = parseInt(color, 16) - amount\r\n const cNum = cc < 0 ? 0 : cc\r\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\r\n return c\r\n }\r\n\r\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\r\n amount = parseInt(((255 * amount) / 100).toString())\r\n\r\n return (color = `#${subtractLight(color.substring(0, 2), amount)}${subtractLight(\r\n color.substring(2, 4),\r\n amount\r\n )}${subtractLight(color.substring(4, 6), amount)}`)\r\n}\r\n\r\nexport {\r\n getBreakpoint,\r\n getCSS,\r\n getCSSVariableValue,\r\n getElementActualCss,\r\n getElementActualHeight,\r\n getElementActualWidth,\r\n getElementIndex,\r\n getElementMatches,\r\n getElementOffset,\r\n getElementParents,\r\n getHighestZindex,\r\n getScrollTop,\r\n getViewPort,\r\n insertAfterElement,\r\n isElementHasClasses,\r\n isVisibleElement,\r\n throttle,\r\n getElementChildren,\r\n getElementChild,\r\n isMobileDevice,\r\n slide,\r\n slideUp,\r\n slideDown,\r\n getAttributeValueByBreakpoint,\r\n colorLighten,\r\n colorDarken,\r\n}\r\n","import {DataUtil} from './_DataUtil'\r\nimport {getUniqueIdWithPrefix} from './_TypesHelpers'\r\n\r\nexport interface EventMeta {\r\n name: string\r\n callback: Function\r\n one: boolean\r\n fired: boolean\r\n}\r\n\r\nexport class EventHandlerUtil {\r\n static store: Map> = new Map()\r\n\r\n private static setEventMetasByName(name: string, metas: Map): void {\r\n EventHandlerUtil.store.set(name, metas)\r\n }\r\n\r\n private static getEventMetasByName(name: string): Map | undefined {\r\n return EventHandlerUtil.store.get(name)\r\n }\r\n\r\n private static setEventMetaByNameAndHandlerId(\r\n name: string,\r\n handlerId: string,\r\n meta: EventMeta\r\n ): void {\r\n let metas = EventHandlerUtil.getEventMetasByName(name)\r\n if (!metas) {\r\n metas = new Map()\r\n }\r\n\r\n metas.set(handlerId, meta)\r\n EventHandlerUtil.setEventMetasByName(name, metas)\r\n }\r\n\r\n private static getEventsMetaByHandlerId(name: string, handlerId: string): EventMeta | undefined {\r\n const metas = EventHandlerUtil.store.get(name)\r\n if (!metas) {\r\n return\r\n }\r\n\r\n return metas.get(handlerId)\r\n }\r\n\r\n private static setFiredByNameAndHandlerId(name: string, handerId: string, fired: boolean): void {\r\n const meta = EventHandlerUtil.getEventsMetaByHandlerId(name, handerId)\r\n if (!meta) {\r\n return\r\n }\r\n\r\n meta.fired = fired\r\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handerId, meta)\r\n }\r\n\r\n private static addEvent(\r\n element: HTMLElement,\r\n name: string,\r\n callback: Function,\r\n one: boolean = false\r\n ) {\r\n const handlerId = getUniqueIdWithPrefix('event')\r\n DataUtil.set(element, name, handlerId)\r\n const meta: EventMeta = {\r\n name: name,\r\n callback: callback,\r\n one: one,\r\n fired: false,\r\n }\r\n\r\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handlerId, meta)\r\n }\r\n\r\n private static removeEvent(element: HTMLElement, name: string) {\r\n const handlerId = DataUtil.get(element, name)\r\n if (!handlerId) {\r\n return\r\n }\r\n\r\n const metas = EventHandlerUtil.getEventMetasByName(name)\r\n if (!metas) {\r\n return\r\n }\r\n\r\n metas.delete(handlerId)\r\n EventHandlerUtil.setEventMetasByName(name, metas)\r\n }\r\n\r\n public static trigger(element: HTMLElement, name: string, e?: Event) {\r\n if (DataUtil.has(element, name)) {\r\n const handlerId = DataUtil.get(element, name)\r\n if (!handlerId) {\r\n return undefined\r\n }\r\n\r\n const handler = EventHandlerUtil.getEventsMetaByHandlerId(name, handlerId)\r\n if (handler) {\r\n if (handler.name === name) {\r\n if (handler.one === true) {\r\n if (handler.fired === false) {\r\n EventHandlerUtil.setFiredByNameAndHandlerId(name, handlerId, true)\r\n return handler.callback.call(this, e)\r\n }\r\n } else {\r\n return handler.callback.call(this, e)\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static on = function (element: HTMLElement, name: string, callBack: Function): void {\r\n EventHandlerUtil.addEvent(element, name, callBack, false)\r\n }\r\n\r\n public static one(element: HTMLElement, name: string, callBack: Function): void {\r\n EventHandlerUtil.addEvent(element, name, callBack, true)\r\n }\r\n\r\n public static off(element: HTMLElement, name: string): void {\r\n EventHandlerUtil.removeEvent(element, name)\r\n }\r\n}\r\n","import {\r\n MenuComponent,\r\n ScrollComponent,\r\n StickyComponent,\r\n ToggleComponent,\r\n DrawerComponent,\r\n SwapperComponent,\r\n} from \"@/assets/ts/components\";\r\n\r\n/**\r\n * @description Initialize KeenThemes custom components\r\n */\r\nconst initializeComponents = () => {\r\n setTimeout(() => {\r\n ToggleComponent.bootstrap();\r\n StickyComponent.bootstrap();\r\n MenuComponent.bootstrap();\r\n ScrollComponent.bootstrap();\r\n DrawerComponent.bootstrap();\r\n SwapperComponent.bootstrap();\r\n }, 0);\r\n};\r\n\r\n/**\r\n * @description Reinitialize KeenThemes custom components\r\n */\r\nconst reinitializeComponents = () => {\r\n setTimeout(() => {\r\n ToggleComponent.reinitialization();\r\n StickyComponent.reInitialization();\r\n MenuComponent.reinitialization();\r\n reinitializeScrollComponent().then(() => {\r\n ScrollComponent.updateAll();\r\n });\r\n DrawerComponent.reinitialization();\r\n SwapperComponent.reinitialization();\r\n }, 0);\r\n};\r\n\r\nconst reinitializeScrollComponent = async () => {\r\n await ScrollComponent.reinitialization();\r\n};\r\n\r\nexport {\r\n initializeComponents,\r\n reinitializeComponents,\r\n reinitializeScrollComponent,\r\n};\r\n","import {\r\n getElementIndex,\r\n getUniqueIdWithPrefix,\r\n ElementAnimateUtil,\r\n EventHandlerUtil,\r\n DataUtil,\r\n DOMEventHandlerUtil,\r\n ElementStyleUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface IStepperOptions {\r\n startIndex: number\r\n animation: boolean\r\n animationSpeed: string\r\n animationNextClass: string\r\n animationPreviousClass: string\r\n}\r\n\r\nconst defaultStepperOptions: IStepperOptions = {\r\n startIndex: 1,\r\n animation: false,\r\n animationSpeed: '0.3s',\r\n animationNextClass: 'animate__animated animate__slideInRight animate__fast',\r\n animationPreviousClass: 'animate__animated animate__slideInLeft animate__fast',\r\n}\r\n\r\nclass StepperComponent {\r\n element: HTMLElement\r\n options: IStepperOptions\r\n instanceUid: string\r\n steps: NodeListOf\r\n btnNext: HTMLElement | null\r\n btnPrev: HTMLElement | null\r\n btnSubmit: HTMLElement | null\r\n totatStepsNumber: number = 0\r\n passedStepIndex: number = 0\r\n currentStepIndex: number = 1\r\n\r\n constructor(_element: HTMLElement, options: IStepperOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultStepperOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('stepper')\r\n\r\n // Elements\r\n this.steps = this.element.querySelectorAll('[data-kt-stepper-element=\"nav\"]')\r\n this.btnNext = this.element.querySelector('[data-kt-stepper-action=\"next\"]')\r\n this.btnPrev = this.element.querySelector('[data-kt-stepper-action=\"previous\"]')\r\n this.btnSubmit = this.element.querySelector('[data-kt-stepper-action=\"submit\"]')\r\n\r\n // Variables\r\n this.totatStepsNumber = this.steps?.length | 0\r\n this.passedStepIndex = 0\r\n this.currentStepIndex = 1\r\n\r\n // Set Current Step\r\n if (this.options.startIndex > 1) {\r\n this._goTo(this.options.startIndex)\r\n }\r\n\r\n // Event Handlers\r\n this.initHandlers()\r\n\r\n // Bind Instance\r\n DataUtil.set(this.element, 'stepper', this)\r\n }\r\n\r\n private _goTo = (index: number) => {\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.change')\r\n // Skip if this step is already shown\r\n if (index === this.currentStepIndex || index > this.totatStepsNumber || index < 0) {\r\n return\r\n }\r\n\r\n // Validate step number\r\n index = parseInt(index.toString())\r\n // Set current step\r\n this.passedStepIndex = this.currentStepIndex\r\n this.currentStepIndex = index\r\n\r\n // Refresh elements\r\n this.refreshUI()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.changed')\r\n }\r\n\r\n private initHandlers = () => {\r\n this.btnNext?.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.next', e)\r\n })\r\n\r\n this.btnPrev?.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.previous', e)\r\n })\r\n\r\n DOMEventHandlerUtil.on(this.element, '[data-kt-stepper-action=\"step\"]', 'click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n if (this.steps && this.steps.length > 0) {\r\n for (let i = 0; i < this.steps.length; i++) {\r\n if ((this.steps[i] as HTMLElement) === this.element) {\r\n let index = i + 1\r\n\r\n const stepDirection = this._getStepDirection(index)\r\n EventHandlerUtil.trigger(this.element, `stepper.${stepDirection}`, e)\r\n return\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n private _getStepDirection = (index: number) => {\r\n return index > this.currentStepIndex ? 'next' : 'previous'\r\n }\r\n\r\n private getStepContent = (index: number) => {\r\n const content = this.element.querySelectorAll('[data-kt-stepper-element=\"content\"]')\r\n if (!content) {\r\n return false\r\n }\r\n\r\n if (content[index - 1]) {\r\n return content[index - 1]\r\n }\r\n\r\n return false\r\n }\r\n\r\n private getLastStepIndex = () => {\r\n return this.totatStepsNumber\r\n }\r\n\r\n private getTotalStepsNumber = () => {\r\n return this.totatStepsNumber\r\n }\r\n\r\n private refreshUI = () => {\r\n let state = ''\r\n\r\n if (this.isLastStep()) {\r\n state = 'last'\r\n } else if (this.isFirstStep()) {\r\n state = 'first'\r\n } else {\r\n state = 'between'\r\n }\r\n\r\n // Set state class\r\n this.element.classList.remove('last')\r\n this.element.classList.remove('first')\r\n this.element.classList.remove('between')\r\n\r\n this.element.classList.add(state)\r\n\r\n // Step Items\r\n const elements = this.element.querySelectorAll(\r\n '[data-kt-stepper-element=\"nav\"], [data-kt-stepper-element=\"content\"], [data-kt-stepper-element=\"info\"]'\r\n )\r\n\r\n if (!elements || elements.length <= 0) {\r\n return\r\n }\r\n\r\n for (var i = 0, len = elements.length; i < len; i++) {\r\n var element = elements[i] as HTMLElement\r\n var index = getElementIndex(element) + 1\r\n\r\n element.classList.remove('current')\r\n element.classList.remove('completed')\r\n element.classList.remove('pending')\r\n\r\n if (index === this.currentStepIndex) {\r\n element.classList.add('current')\r\n\r\n if (\r\n this.options.animation !== false &&\r\n element.getAttribute('data-kt-stepper-element') === 'content'\r\n ) {\r\n ElementStyleUtil.set(element, 'animationDuration', this.options.animationSpeed)\r\n\r\n const animation =\r\n this._getStepDirection(this.passedStepIndex) === 'previous'\r\n ? this.options.animationPreviousClass\r\n : this.options.animationNextClass\r\n ElementAnimateUtil.animateClass(element, animation)\r\n }\r\n } else {\r\n if (index < this.currentStepIndex) {\r\n element.classList.add('completed')\r\n } else {\r\n element.classList.add('pending')\r\n }\r\n }\r\n }\r\n }\r\n\r\n private isLastStep = () => {\r\n return this.currentStepIndex === this.totatStepsNumber\r\n }\r\n\r\n private isFirstStep = () => {\r\n return this.currentStepIndex === 1\r\n }\r\n\r\n private isBetweenStep = () => {\r\n return this.isLastStep() === false && this.isFirstStep() === false\r\n }\r\n\r\n // ///////////////////////\r\n // // ** Public API ** //\r\n // ///////////////////////\r\n\r\n // // Plugin API\r\n public goto = (index: number) => {\r\n return this._goTo(index)\r\n }\r\n\r\n public goNext = () => {\r\n return this.goto(this.getNextStepIndex())\r\n }\r\n\r\n public goPrev = () => {\r\n return this.goto(this.getPrevStepIndex())\r\n }\r\n\r\n public goFirst = () => {\r\n return this.goto(1)\r\n }\r\n\r\n public goLast = () => {\r\n return this.goto(this.getLastStepIndex())\r\n }\r\n\r\n public getCurrentStepIndex = () => {\r\n return this.currentStepIndex\r\n }\r\n\r\n public getNextStepIndex = () => {\r\n if (this.totatStepsNumber >= this.currentStepIndex + 1) {\r\n return this.currentStepIndex + 1\r\n } else {\r\n return this.totatStepsNumber\r\n }\r\n }\r\n\r\n public getPassedStepIndex = () => {\r\n return this.passedStepIndex\r\n }\r\n\r\n public getPrevStepIndex = () => {\r\n if (this.currentStepIndex - 1 > 1) {\r\n return this.currentStepIndex - 1\r\n } else {\r\n return 1\r\n }\r\n }\r\n\r\n public getElement = (index: number) => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public destroy = () => {\r\n console.log('destroy stepper')\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement): boolean {\r\n return DataUtil.has(element, 'stepper')\r\n }\r\n\r\n public static getInstance(element: HTMLElement): StepperComponent | null {\r\n if (element !== null && StepperComponent.hasInstace(element)) {\r\n return DataUtil.get(element, 'stepper')\r\n }\r\n return null\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string): void {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let stepper = StepperComponent.getInstance(item)\r\n if (!stepper) {\r\n stepper = new StepperComponent(item, defaultStepperOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n element: HTMLElement,\r\n options: IStepperOptions = defaultStepperOptions\r\n ): StepperComponent | null => {\r\n if (!element) {\r\n return null\r\n }\r\n let stepper = StepperComponent.getInstance(element)\r\n if (!stepper) {\r\n stepper = new StepperComponent(element, options)\r\n }\r\n return stepper\r\n }\r\n\r\n public static bootstrap(attr: string = '[data-kt-stepper]') {\r\n StepperComponent.createInstances(attr)\r\n }\r\n}\r\n\r\nexport {StepperComponent, defaultStepperOptions}\r\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createBlock(_component_router_view))\n}","\r\nimport { defineComponent, nextTick, onMounted } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { initializeComponents } from \"@/core/plugins/keenthemes\";\r\n\r\nexport default defineComponent({\r\n name: \"app\",\r\n setup() {\r\n const store = useStore();\r\n\r\n onMounted(() => {\r\n /**\r\n * this is to override the layout config using saved data from localStorage\r\n * remove this to use config only from static config (@/core/config/DefaultLayoutConfig.ts)\r\n */\r\n store.commit(Mutations.OVERRIDE_LAYOUT_CONFIG);\r\n\r\n nextTick(() => {\r\n initializeComponents();\r\n });\r\n });\r\n },\r\n});\r\n","import { render } from \"./App.vue?vue&type=template&id=da7f236e&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=da7f236e&lang=scss\"\n\nimport exportComponent from \"C:\\\\Smartends\\\\bb-admin-panel-frontend\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createI18n } from \"vue-i18n/index\";\r\n\r\nconst messages = {\r\n en: {\r\n dashboard: \"Dashboard\",\r\n layoutBuilder: \"Bins\",\r\n provision: \"Provisioning\",\r\n devices: \"Devices\",\r\n // profile: \"Profile\",\r\n bins: \"Bins\",\r\n profileOverview: \"Overview\",\r\n projects: \"Projects\",\r\n campaigns: \"Campaigns\",\r\n documents: \"Documents\",\r\n connections: \"Connections\",\r\n wizards: \"Wizards\",\r\n horizontal: \"Horizontal\",\r\n vertical: \"Vertical\",\r\n account: \"Account\",\r\n accountOverview: \"Overview\",\r\n settings: \"Settings\",\r\n authentication: \"Authentication\",\r\n basicFlow: \"Basic Flow\",\r\n signIn: \"Sign-in\",\r\n signUp: \"Sign-up\",\r\n passwordReset: \"Password Reset\",\r\n error404: \"Error 404\",\r\n error500: \"Error 500\",\r\n apps: \"Apps\",\r\n chat: \"Chat\",\r\n privateChat: \"Private Chat\",\r\n groupChat: \"Group Chat\",\r\n drawerChat: \"Drawer Chat\",\r\n widgets: \"Widgets\",\r\n widgetsLists: \"Lists\",\r\n widgetsStatistics: \"Statistics\",\r\n widgetsCharts: \"Charts\",\r\n widgetsMixed: \"Mixed\",\r\n widgetsTables: \"Tables\",\r\n widgetsFeeds: \"Feeds\",\r\n changelog: \"Changelog\",\r\n megaMenu: \"Mega Menu\",\r\n exampleLink: \"Example link\",\r\n modals: \"Modals\",\r\n general: \"General\",\r\n inviteFriends: \"Invite Friends\",\r\n viewUsers: \"View Users\",\r\n upgradePlan: \"Upgrade Plan\",\r\n shareAndEarn: \"Share & Earn\",\r\n forms: \"Forms\",\r\n newTarget: \"New Target\",\r\n newCard: \"New Card\",\r\n newAddress: \"New Address\",\r\n createAPIKey: \"Create API Key\",\r\n twoFactorAuth: \"Two Factor Auth\",\r\n createApp: \"Create App\",\r\n createAccount: \"Create Account\",\r\n documentation: \"Documentation\",\r\n components: \"Components\",\r\n resources: \"Resources\",\r\n repository: \"Repository\",\r\n customers: \"Customers\",\r\n gettingStarted: \"Getting Started\",\r\n customersListing: \"Customers Listing\",\r\n customerDetails: \"Customers Details\",\r\n calendarApp: \"Calendar\",\r\n subscriptions: \"Subscriptions\",\r\n getStarted: \"Getting Started\",\r\n subscriptionList: \"Subscription List\",\r\n addSubscription: \"Add Subscription\",\r\n viewSubscription: \"View Subscription\",\r\n },\r\n es: {\r\n dashboard: \"Tablero\",\r\n layoutBuilder: \"Constructor de maquetación\",\r\n provision: \"Elaborado\",\r\n devices: \"Paginas\",\r\n profile: \"Perfil\",\r\n profileOverview: \"Descripción general\",\r\n projects: \"Proyectos\",\r\n campaigns: \"Campañas\",\r\n documents: \"Documentos\",\r\n connections: \"Conexiones\",\r\n wizards: \"Magos\",\r\n horizontal: \"Horizontal\",\r\n vertical: \"Vertical\",\r\n account: \"Cuenta\",\r\n accountOverview: \"Descripción general\",\r\n settings: \"Ajustes\",\r\n authentication: \"Autenticación\",\r\n basicFlow: \"Flujo básico\",\r\n signIn: \"Registrarse\",\r\n signUp: \"Inscribirse\",\r\n passwordReset: \"Restablecimiento de contraseña\",\r\n error404: \"Error 404\",\r\n error500: \"Error 500\",\r\n apps: \"Aplicaciones\",\r\n chat: \"Chat\",\r\n privateChat: \"Chat privado\",\r\n groupChat: \"Grupo de chat\",\r\n drawerChat: \"Chat del cajón\",\r\n widgets: \"Widgets\",\r\n widgetsLists: \"Liza\",\r\n widgetsStatistics: \"Estadísticas\",\r\n widgetsCharts: \"Gráficos\",\r\n widgetsMixed: \"Mezclada\",\r\n widgetsTables: \"Mesas\",\r\n widgetsFeeds: \"Alimenta\",\r\n changelog: \"Registro de cambios\",\r\n docsAndComponents: \"Documentos & Componentes\",\r\n megaMenu: \"Mega menú\",\r\n exampleLink: \"Enlace de ejemplo\",\r\n modals: \"Modales\",\r\n general: \"General\",\r\n inviteFriends: \"Invitar A Amigos\",\r\n viewUsers: \"Ver Usuarios\",\r\n upgradePlan: \"Plan De Actualización\",\r\n shareAndEarn: \"Compartir Y Ganar\",\r\n forms: \"Formas\",\r\n newTarget: \"Nuevo Objetivo\",\r\n newCard: \"Nueva Tarjeta\",\r\n newAddress: \"Nueva Direccion\",\r\n createAPIKey: \"Crea Clave De Api\",\r\n twoFactorAuth: \"Dos Factores\",\r\n createApp: \"Crear Aplicacion\",\r\n createAccount: \"Crear Una Cuenta\",\r\n activity: \"Actividad\",\r\n documentation: \"Documentación\",\r\n components: \"Componentes\",\r\n resources: \"Recursos\",\r\n customers: \"Clientes\",\r\n gettingStarted: \"Empezando\",\r\n customersListing: \"Listado De Clientes\",\r\n customerDetails: \"Detalles De Los Clientes\",\r\n calendarApp: \"Calendario\",\r\n subscriptions: \"Suscripciones\",\r\n getStarted: \"Empezando\",\r\n subscriptionList: \"Lista De Suscripción\",\r\n addSubscription: \"Añadir Suscripción\",\r\n viewSubscription: \"Suscripción\",\r\n },\r\n de: {\r\n dashboard: \"Instrumententafel\",\r\n layoutBuilder: \"Layout-Builder\",\r\n provision: \"Hergestellt\",\r\n devices: \"Seiten\",\r\n profile: \"Profil\",\r\n profileOverview: \"Überblick\",\r\n projects: \"Projekte\",\r\n campaigns: \"Kampagnen\",\r\n documents: \"Unterlagen\",\r\n connections: \"Anschlüsse\",\r\n wizards: \"Zauberer\",\r\n horizontal: \"Horizontal\",\r\n vertical: \"Vertikal\",\r\n account: \"Konto\",\r\n accountOverview: \"Überblick\",\r\n settings: \"Die Einstellungen\",\r\n authentication: \"Authentifizierung\",\r\n basicFlow: \"Grundfluss\",\r\n signIn: \"Einloggen\",\r\n signUp: \"Anmelden\",\r\n passwordReset: \"Passwort zurücksetzen\",\r\n error404: \"Fehler 404\",\r\n error500: \"Fehler 500\",\r\n apps: \"Apps\",\r\n chat: \"Plaudern\",\r\n privateChat: \"Private Chat\",\r\n groupChat: \"Privater Chat\",\r\n drawerChat: \"Gruppenchat Schubladen-Chat\",\r\n widgets: \"Widgets\",\r\n widgetsLists: \"Listen\",\r\n widgetsStatistics: \"Statistiken\",\r\n widgetsCharts: \"Diagramme\",\r\n widgetsMixed: \"Gemischt\",\r\n widgetsTables: \"Tabellen\",\r\n widgetsFeeds: \"Einspeisungen\",\r\n changelog: \"Änderungsprotokoll\",\r\n docsAndComponents: \"Dokumente & Komponenten\",\r\n megaMenu: \"Mega-Menü\",\r\n exampleLink: \"Beispiellink\",\r\n modals: \"Modale\",\r\n general: \"Allgemeines\",\r\n inviteFriends: \"Freunde Einladen\",\r\n viewUsers: \"Benutzer Anzeigen.\",\r\n upgradePlan: \"Upgrade-Plan\",\r\n shareAndEarn: \"Teilen & Verdienen\",\r\n forms: \"Formen\",\r\n newTarget: \"Neues Ziel\",\r\n newCard: \"Neue Karte\",\r\n newAddress: \"Neue Adresse\",\r\n createAPIKey: \"Api-Key Erstellen\",\r\n twoFactorAuth: \"Zwei Faktor Auth.\",\r\n createApp: \"App Erstellen\",\r\n createAccount: \"Benutzerkonto Erstellen\",\r\n activity: \"Aktivität\",\r\n documentation: \"Dokumentation\",\r\n components: \"Bauteile\",\r\n resources: \"Ressourcen\",\r\n customers: \"Kunden\",\r\n gettingStarted: \"Einstieg\",\r\n customersListing: \"Kundenauflistung\",\r\n customerDetails: \"Kundenangaben\",\r\n calendarApp: \"Kalender\",\r\n subscriptions: \"Abonnements\",\r\n getStarted: \"Einstieg\",\r\n subscriptionList: \"Abonnementliste\",\r\n addSubscription: \"Subskription Hinzufügen.\",\r\n viewSubscription: \"Abonnement Anzeigen.\",\r\n },\r\n ja: {\r\n dashboard: \"ダッシュボード\",\r\n layoutBuilder: \"レイアウトビルダー\",\r\n provision: \"作成された\",\r\n devices: \"ページ\",\r\n profile: \"プロフィール\",\r\n profileOverview: \"概要\",\r\n projects: \"プロジェクト\",\r\n campaigns: \"キャンペーン\",\r\n documents: \"書類\",\r\n connections: \"接続\",\r\n wizards: \"ウィザード\",\r\n horizontal: \"横\",\r\n vertical: \"垂直\",\r\n account: \"アカウント\",\r\n accountOverview: \"概要\",\r\n settings: \"設定\",\r\n authentication: \"認証\",\r\n basicFlow: \"基本的な流れ\",\r\n signIn: \"サインイン\",\r\n signUp: \"サインアップ\",\r\n passwordReset: \"パスワードのリセット\",\r\n error404: \"エラー404\",\r\n error500: \"エラー 500\",\r\n apps: \"アプリ\",\r\n chat: \"チャット\",\r\n privateChat: \"プライベートチャット\",\r\n groupChat: \"グループチャット\",\r\n drawerChat: \"ドロワーチャット\",\r\n widgets: \"ウィジェット\",\r\n widgetsLists: \"リスト\",\r\n widgetsStatistics: \"統計\",\r\n widgetsCharts: \"チャート\",\r\n widgetsMixed: \"混合\",\r\n widgetsTables: \"テーブル\",\r\n widgetsFeeds: \"フィード\",\r\n changelog: \"変更ログ\",\r\n docsAndComponents: \"ドキュメントとコンポーネント\",\r\n megaMenu: \"メガメニュー\",\r\n exampleLink: \"リンク例\",\r\n modals: \"モーダルズ\",\r\n general: \"一般\",\r\n inviteFriends: \"友達を招待\",\r\n viewUsers: \"ユーザーを表示します\",\r\n upgradePlan: \"アップグレードプラン\",\r\n shareAndEarn: \"シェア&稼働\",\r\n forms: \"フォーム\",\r\n newTarget: \"新しいターゲット\",\r\n newCard: \"新しいカード\",\r\n newAddress: \"新しいアドレス\",\r\n createAPIKey: \"Apiキーを作成します\",\r\n twoFactorAuth: \"2つの要因Auth\",\r\n createApp: \"アプリを作成します\",\r\n createAccount: \"アカウントを作成する\",\r\n activity: \"アクティビティ\",\r\n documentation: \"ドキュメンテーション\",\r\n components: \"コンポーネント\",\r\n resources: \"資力\",\r\n customers: \"お客様のお客様\",\r\n gettingStarted: \"入門\",\r\n customersListing: \"顧客のリスト\",\r\n customerDetails: \"お客様の詳細\",\r\n calendarApp: \"カレンダー\",\r\n subscriptions: \"購読\",\r\n getStarted: \"入門\",\r\n subscriptionList: \"サブスクリプションリスト\",\r\n addSubscription: \"サブスクリプションを追加します\",\r\n viewSubscription: \"購読を見る\",\r\n },\r\n fr: {\r\n dashboard: \"Générateur de mise\",\r\n layoutBuilder: \"En page\",\r\n provision: \"Fabriqué\",\r\n devices: \"Devices\",\r\n profile: \"Profil\",\r\n profileOverview: \"Aperçu\",\r\n projects: \"Projets\",\r\n campaigns: \"Campagnes\",\r\n documents: \"Documents\",\r\n connections: \"Connexions\",\r\n wizards: \"Sorciers\",\r\n horizontal: \"Horizontal\",\r\n vertical: \"Verticale\",\r\n account: \"Compte\",\r\n accountOverview: \"Aperçu\",\r\n settings: \"Paramètres\",\r\n authentication: \"Authentification\",\r\n basicFlow: \"Flux de base\",\r\n signIn: \"SS'identifier\",\r\n signUp: \"Inscrivez-vous\",\r\n passwordReset: \"Réinitialisation du mot de passe\",\r\n error404: \"Erreur 404\",\r\n error500: \"Erreur 500\",\r\n apps: \"Applications\",\r\n chat: \"Discuter\",\r\n privateChat: \"Discussion privée\",\r\n groupChat: \"Discussion de groupe\",\r\n drawerChat: \"Chat de tiroir\",\r\n widgets: \"Widgets\",\r\n widgetsLists: \"Listes\",\r\n widgetsStatistics: \"Statistiques\",\r\n widgetsCharts: \"Graphiques\",\r\n widgetsMixed: \"Mixte\",\r\n widgetsTables: \"Les tables\",\r\n widgetsFeeds: \"Flux\",\r\n changelog: \"Journal des modifications\",\r\n docsAndComponents: \"Documents & composants\",\r\n megaMenu: \"Méga Menu\",\r\n exampleLink: \"Exemple de lien\",\r\n modals: \"Modals\",\r\n general: \"Général\",\r\n inviteFriends: \"Inviter Des Amis\",\r\n viewUsers: \"Voir Les Utilisateurs\",\r\n upgradePlan: \"Plan De Mise À Niveau\",\r\n shareAndEarn: \"Partager Et Gagner\",\r\n forms: \"Formes\",\r\n newTarget: \"Nouvelle Cible\",\r\n newCard: \"Nouvelle Carte\",\r\n newAddress: \"Nouvelle Adresse\",\r\n createAPIKey: \"Créer Une Touche Api\",\r\n twoFactorAuth: \"Deux Facteurs D'Authentification\",\r\n createApp: \"Créer Une Application\",\r\n createAccount: \"Créer Un Compte\",\r\n activity: \"Activité\",\r\n documentation: \"Documentation\",\r\n components: \"Composants\",\r\n resources: \"Ressources\",\r\n customers: \"Les Clients\",\r\n gettingStarted: \"Commencer\",\r\n customersListing: \"Liste Des Clients\",\r\n customerDetails: \"Détails Des Clients\",\r\n calendarApp: \"Calendrier\",\r\n subscriptions: \"Abonnements\",\r\n getStarted: \"Commencer\",\r\n subscriptionList: \"Liste D'Abonnement\",\r\n addSubscription: \"Ajouter Un Abonnement\",\r\n viewSubscription: \"Voir L'Abonnement\",\r\n },\r\n};\r\n\r\nconst i18n = createI18n({\r\n legacy: false,\r\n locale: \"en\",\r\n globalInjection: true,\r\n messages,\r\n});\r\n\r\nexport default i18n;\r\n","import { App } from \"vue\";\r\nimport InlineSvg from \"vue-inline-svg\";\r\n\r\n/**\r\n * Initialize Inline-Svg component\r\n * @param app vue instance\r\n */\r\nexport function initInlineSvg(app: App) {\r\n app.component(\"inline-svg\", InlineSvg);\r\n}\r\n","import { configure } from \"vee-validate\";\r\n\r\nexport function initVeeValidate() {\r\n // Updating default vee-validate configuration\r\n configure({\r\n validateOnBlur: true,\r\n validateOnChange: true,\r\n validateOnInput: true,\r\n validateOnModelUpdate: true,\r\n });\r\n}\r\n","import { createApp } from \"vue\";\r\nimport AOS from \"aos\";\r\nimport App from \"./App.vue\";\r\nimport \"aos/dist/aos.css\";\r\nimport router from \"./router\";\r\nimport store from \"./store\";\r\nimport i18n from \"@/core/plugins/i18n\";\r\nimport BootstrapVue3 from \"bootstrap-vue-3\";\r\nimport \"bootstrap/dist/css/bootstrap.css\";\r\n\r\n//imports for app initialization\r\nimport ApiService from \"@/core/services/ApiService\";\r\nimport { initInlineSvg } from \"@/core/plugins/inline-svg\";\r\nimport { initVeeValidate } from \"@/core/plugins/vee-validate\";\r\nimport CKEditor from \"@ckeditor/ckeditor5-vue\";\r\nimport ElementPlus from \"element-plus\";\r\nimport \"element-plus/theme-chalk/index.css\";\r\n\r\n// Date time picker/\r\nimport Datepicker from \"@vuepic/vue-datepicker\";\r\nimport \"@vuepic/vue-datepicker/dist/main.css\";\r\n\r\nimport \"@/core/plugins/prismjs\";\r\nimport \"bootstrap\";\r\nimport \"@popperjs/core\";\r\nimport JsonCSV from \"vue-json-csv\";\r\n\r\nconst app = createApp(App);\r\napp.use(BootstrapVue3);\r\napp.use(store);\r\napp.use(router);\r\napp.component(\"Datepicker\", Datepicker);\r\napp.component(\"downloadCsv\", JsonCSV);\r\napp.use(AOS.init());\r\n\r\nApiService.init(app);\r\ninitInlineSvg(app);\r\ninitVeeValidate();\r\n\r\napp.use(i18n);\r\napp.use(CKEditor);\r\napp.use(ElementPlus);\r\n\r\n\r\napp.mount(\"#app\");\r\n","import { Device } from \"@/views/provisioning/devices/repo\";\r\nimport axios from \"axios\";\r\nimport moment from \"moment\";\r\nimport URLS from \"../urls\";\r\nimport { response } from \"express\";\r\ninterface Devices {\r\n total_number_of_records: number;\r\n devices: Device[];\r\n total_pages: number;\r\n success: boolean;\r\n}\r\ninterface Notifications {\r\n total_number_of_records: number;\r\n notificaitons: Device[];\r\n total_pages: number;\r\n success: boolean;\r\n}\r\n// Trackers\r\nexport const getTrackersListing = async (payload) => {\r\n const url = URLS.GET_TRACKERS_LISTING;\r\n return await axios\r\n .post(url, payload)\r\n .then((response) => response.data);\r\n};\r\nexport const deleteTrackerFromPlatform = async (devices) => {\r\n const url = URLS.DELETE_TRACKER_FROM_PLATFORM + devices;\r\n return await axios.delete(url).then((response) => response.data);\r\n};\r\n\r\nexport const updateTracker = async (id, payload) => {\r\n const url = URLS.UPDATE_TRACKER + id;\r\n return await axios.put(url, payload).then((res) => res);\r\n};\r\n\r\n// Routing Configuration\r\nexport const getRoutingListing = async (payload) => {\r\n const url = URLS.GET_ROUTING_LISTING;\r\n return await axios.post(url, payload).then((resp) => resp.data);\r\n};\r\n\r\nexport const routingConfig = async (payload) => {\r\n const url = URLS.ROUTING_CONFIGURATION;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const deleteConfiguration = async (id) => {\r\n const url = URLS.DELETE_CONFIGURATION + id;\r\n return await axios.delete(url).then((response) => response);\r\n};\r\n\r\nexport const updateConfiguration = async (id, payload) => {\r\n const url = URLS.UPDATE_CONFIGURATION + id;\r\n return await axios.put(url, payload).then((res) => res);\r\n};\r\n\r\nexport const binsConfiguration = async (payload) => {\r\n const url = URLS.BINS_CONFIGURATION;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\n// End Routing Configuration\r\n\r\nexport const getDevicesListing = async (payload) => {\r\n const url = URLS.GET_DEVICES_LISTING;\r\n return await axios\r\n .post(url, payload)\r\n .then((response) => response.data);\r\n};\r\n\r\nexport const getDevicesExport = async (payload) => {\r\n const url = URLS.EXPORT_DEVICES;\r\n return await axios.post(url, payload).then((resp) => resp.data);\r\n};\r\n\r\nexport const getCustomersListing = async (payload) => {\r\n const url = URLS.GET_CUSTOMERS_LISTING;\r\n return await axios.post(url, payload).then((resp) => resp.data);\r\n};\r\n\r\nexport const getCustomersList = async () => {\r\n const url = URLS.GET_CUSTOMERS_LIST;\r\n return await axios.get(url).then((response) => response.data.data);\r\n};\r\n\r\nexport const checkPassword = async (payload) => {\r\n const url = URLS.CHECK_USER_PASSWORD;\r\n return await axios.post(url, payload).then((response) => response);\r\n};\r\nexport const updateDeviceData = async (id, payload) => {\r\n const url = URLS.UPDATE_DEVICE + id;\r\n return await axios.put(url, payload).then((response) => response);\r\n};\r\nexport const deleteDeviceData = async (id) => {\r\n const url = URLS.DELETE_DEVICE + id;\r\n return await axios.delete(url).then((response) => response);\r\n};\r\n\r\nexport const deleteDeviceFromAdmin = async (devices) => {\r\n const url = URLS.DELETE_DEVICE_FROM_ADMIN;\r\n return await axios.post(url, devices).then((response) => response);\r\n};\r\n\r\nexport const deleteDeviceFromPlatform = async (devices) => {\r\n const url = URLS.DELETE_DEVICE_FROM_PLATFORM + devices;\r\n return await axios.delete(url).then((response) => response.data);\r\n};\r\n\r\nexport const createDeviceByCsV = async (payload) => {\r\n const url = URLS.CREATE_DEVICE_BY_CSV;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const createDeviceByRepo = async (payload) => {\r\n const url = URLS.CSV_REPO;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const getBinsListing = async (payload) => {\r\n const url = URLS.GET_BINS_LISTING;\r\n return await axios\r\n .post(url, payload)\r\n .then((response) => response.data);\r\n};\r\nexport const getBinList = async (payload) => {\r\n const url = URLS.GET_BIN_LIST;\r\n return await axios\r\n .post(url, payload)\r\n .then((response) => response.data);\r\n};\r\n\r\nexport const getWasteType = async () => {\r\n const url = URLS.GET_WASTE_TYPE;\r\n return await axios.get(url).then((res) => res);\r\n};\r\nexport const getUplinkList = async (payload) => {\r\n const url = URLS.GET_UPLINK_LISTING;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const addDevices = async (payload) => {\r\n const url = URLS.ADD_DEVICES_DATA;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\nexport const addRepoToPlatform = async (payload) => {\r\n const url = URLS.ADD_REPO_TO_PLATFORM;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const invoiceListing = async (payload) => {\r\n const url = URLS.GET_INVOICEING_LISTING;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const getUsersList = async (payload) => {\r\n const url = URLS.GET_USERS_LIST;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const addNewUsers = async (payload) => {\r\n const url = URLS.ADD_USERS;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const updateUser = async (id, payload) => {\r\n const url = URLS.UPDATE_USER + id;\r\n return await axios.put(url, payload).then((res) => res);\r\n};\r\nexport const ChangeUserPassword = async (json) => {\r\n const url = URLS.CHANGE_USER_PASSWORD;\r\n return await axios.post(url, json).then((res) => res);\r\n};\r\nexport const deleteUser = async (id) => {\r\n const url = URLS.DELETE_USER + id;\r\n return await axios.delete(url).then((response) => response);\r\n};\r\nexport const addNewCompany = async (payload) => {\r\n const url = URLS.ADD_COMPANIES;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\nexport const getCompany = async (id) => {\r\n const url = URLS.GET_COMPANY + id;\r\n return await axios.get(url).then((response) => {\r\n console.log(\"API Response\", response.data);\r\n return response.data;\r\n });\r\n};\r\nexport const deleteCompany = async (id) => {\r\n const url = URLS.DELETE_COMPANIES + id;\r\n return await axios.delete(url).then((response) => response);\r\n};\r\n\r\nexport const updateCompany = async (id, payload) => {\r\n const url = URLS.UPDATE_COMPANY + id;\r\n return await axios.put(url, payload).then((res) => res);\r\n};\r\n\r\nexport const getProductionUrl = async () => {\r\n const url = URLS.PRODUCTION_SCRIPT;\r\n return await axios.get(url).then((res) => res);\r\n};\r\nexport const credentialSheetCsv = async () => {\r\n const url = URLS.CREDENTIAL_SHEETS_CSV_NAMES;\r\n return await axios.get(url).then((res) => res);\r\n};\r\nexport const createInvoice = async (payload) => {\r\n const load = {\r\n se_account_id: payload.se_account_id ? parseInt(payload.se_account_id) : \"\",\r\n currency: payload.currency,\r\n // bank_number varchar(255),\r\n po_number: payload.po_number,\r\n invoice_date: moment(\r\n payload.invoice_date,\r\n \"MM-DD-YYYY HH:mm:ss\",\r\n true\r\n ).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n due_date: moment(payload.due_date, \"MM-DD-YYYY HH:mm:ss\", true).format(\r\n \"YYYY-MM-DD HH:mm:ss\"\r\n ),\r\n delivery_date: moment(\r\n payload.delivery_date,\r\n \"MM-DD-YYYY HH:mm:ss\",\r\n true\r\n ).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n json: JSON.stringify({\r\n shipmentList: payload.shipmentList,\r\n platformList: payload.platformList,\r\n sensorList: payload.sensorList,\r\n }),\r\n content: payload.content,\r\n price: payload.price,\r\n po_placement: payload.price,\r\n payable_at_delivery: payload.price,\r\n ammount_received: payload.ammount_received,\r\n ammount_payable: payload.ammount_payable,\r\n ammount_remaining: payload.ammount_remaining,\r\n // structured_communication varchar(255),\r\n };\r\n const url = URLS.CREATE_INVOICE;\r\n return await axios.post(url, load).then((res) => {\r\n res.data;\r\n });\r\n};\r\n\r\nexport const updateInvoice = async (payload) => {\r\n const load = {\r\n se_account_id: payload.se_account_id ? parseInt(payload.se_account_id) : \"\",\r\n currency: payload.currency,\r\n // bank_number varchar(255),\r\n po_number: payload.po_number,\r\n invoice_date: moment(\r\n payload.invoice_date,\r\n \"MM-DD-YYYY HH:mm:ss\",\r\n true\r\n ).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n due_date: moment(payload.due_date, \"MM-DD-YYYY HH:mm:ss\", true).format(\r\n \"YYYY-MM-DD HH:mm:ss\"\r\n ),\r\n delivery_date: moment(\r\n payload.delivery_date,\r\n \"MM-DD-YYYY HH:mm:ss\",\r\n true\r\n ).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n json: JSON.stringify({\r\n shipmentList: payload.shipmentList,\r\n platformList: payload.platformList,\r\n sensorList: payload.sensorList,\r\n }),\r\n content: payload.content,\r\n price: payload.price,\r\n po_placement: payload.price,\r\n payable_at_delivery: payload.price,\r\n ammount_received: payload.ammount_received,\r\n ammount_payable: payload.ammount_payable,\r\n ammount_remaining: payload.ammount_remaining,\r\n // structured_communication varchar(255),\r\n };\r\n const url = URLS.UPDATE_INVOICE + payload.id;\r\n return await axios.put(url, load).then((res) => {\r\n res.data;\r\n });\r\n};\r\n\r\nexport const getInvoice = async (id) => {\r\n const url = URLS.GET_INVOICE + id;\r\n return await axios.get(url).then((response) => response.data);\r\n};\r\n// Notifications\r\nexport const getNotificationListing = async (payload) => {\r\n const url = URLS.GET_NOTIFICATION_LIST;\r\n return await axios\r\n .post(url, payload)\r\n .then((response) => response.data);\r\n};\r\nexport const addNotificationRule = async (payload) => {\r\n const url = URLS.ADD_NOTIFICATION_RULES;\r\n return await axios.post(url, payload).then((res) => res.data);\r\n};\r\nexport const addNotificationEmail = async (payload) => {\r\n const url = URLS.ADD_NOTIFICATION_EMAIL;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\nexport const getEmailNotificationList = async (id) => {\r\n const url = URLS.GET_NOTIFICATION_EMAIL_LIST + id;\r\n return await axios.get(url).then((response) => response.data);\r\n};\r\nexport const deleteEmail = async (id) => {\r\n const url = URLS.DELETE_NOTIFICATION_EMAIL + id;\r\n return await axios.delete(url).then((response) => response.data);\r\n};\r\nexport const deleteNotification = async (id) => {\r\n const url = URLS.DELETE_NOTIFICATION + id;\r\n return await axios.delete(url).then((response) => response.data);\r\n};\r\nexport const getEmailRules = async (id) => {\r\n const url = URLS.GET_NOTIFICATION_RULES + id;\r\n return await axios.get(url).then((response) => response.data);\r\n};\r\nexport const updateNotification = async (id, payload) => {\r\n const url = URLS.GET_NOTIFICATION_RULES + id;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\nexport const addNotificationMobile = async (payload) => {\r\n const url = URLS.ADD_NOTIFICATION_MOBILE;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\nexport const getMobileNotificationList = async (id) => {\r\n const url = URLS.GET_NOTIFICATION_MOBILE_LIST + id;\r\n return await axios.get(url).then((response) => response.data);\r\n};\r\nexport const deleteMobile = async (id) => {\r\n const url = URLS.DELETE_NOTIFICATION_MOBILE + id;\r\n return await axios.delete(url).then((response) => response.data);\r\n};\r\n\r\n// INVOICES\r\nexport const deleteInvoice = async (id) => {\r\n const url = URLS.DELETE_INVOICE + id;\r\n return await axios.delete(url).then((response) => response.data);\r\n};\r\n\r\n// Roles APi Integrate\r\nexport const addNewRole = async (payload) => {\r\n const url = URLS.ADD_NEW_ROLE;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\nexport const getUserRole = async () => {\r\n const url = URLS.USER_ROLE;\r\n return await axios.get(url).then((response) => response.data);\r\n};\r\nexport const deleteRole = async (id) => {\r\n const url = URLS.DELETE_ROLE + id;\r\n return await axios.delete(url).then((response) => response.data);\r\n};\r\n// Services\r\nexport const getServicesList = async () => {\r\n const url = URLS.SERVICES_LIST;\r\n return await axios.get(url).then((response) => response.data);\r\n};\r\n\r\n//Features\r\nexport const getFeatureList = async () => {\r\n const url = URLS.FEATURE_LIST;\r\n return await axios.get(url).then((response) => response.data);\r\n};\r\n\r\nexport const addFeature = async (payload) => {\r\n const url = URLS.NEW_ADD_FEATURE;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\nexport const updateFeature = async (id, payload) => {\r\n const url = URLS.UPDATE_FEATURE + id;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\nexport const deleteFeature = async (id) => {\r\n const url = URLS.UPDATE_FEATURE + id;\r\n return await axios.delete(url).then((response) => response.data);\r\n};\r\n//Permission\r\nexport const addNewPermission = async (payload) => {\r\n const url = URLS.NEW_PERMISSION;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const permissionList = async () => {\r\n const url = URLS.PERMISSION_LIST;\r\n return await axios.get(url).then((response) => response.data);\r\n};\r\n\r\nexport const updatePermission = async (id, payload) => {\r\n const url = URLS.UPDATE_PERMISSION + id;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const deletePermission = async (id) => {\r\n const url = URLS.DELETE_PERMISSION + id;\r\n return await axios.delete(url).then((response) => response.data);\r\n};\r\nexport const assignPermission = async (payload) => {\r\n const url = URLS.ASSIGN_PERMISSION;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const unassignPermission = async (payload) => {\r\n const url = URLS.UN_ASSIGN_PERMISSION;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\nexport const permission_By_Role = async (payload) => {\r\n const url = URLS.PERMISSION_BY_ROLE;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\nexport const managePermission = async (payload) => {\r\n const url = URLS.MANAGE_PERMISSION;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\nexport const editRole = async (id, payload) => {\r\n const url = URLS.EDIT_ROLE + id;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\n//Assign waste type\r\n\r\nexport const wasteType_list = async () => {\r\n const url = URLS.WASTE_TYPE_LIST;\r\n return await axios.get(url).then((response) => response.data);\r\n};\r\n\r\nexport const addwasteType = async (payload) => {\r\n const url = URLS.ADD_WASTE_TYPE;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const updatewasteType = async (id, payload) => {\r\n const url = URLS.UPDATE_WASTE_TYPE + id;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\nexport const deletewasteType = async (id) => {\r\n const url = URLS.DELETE_WASTE_TYPE + id;\r\n return await axios.delete(url).then((response) => response.data);\r\n};\r\nexport const assignwasteType = async (payload) => {\r\n const url = URLS.ASSIGN_WASTE_TYPES;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\nexport const wasteTypeByCompany = async (payload) => {\r\n const url = URLS.WASTE_TYPE_BY_COMPANY;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n//CSV_DECODER\r\nexport const uploadCsvDecoder = async (payload) => {\r\n const url = URLS.CSV_DECODER;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n//Depth map and Mobility\r\nexport const enable_depth_Map = async (payload) => {\r\n const url = URLS.DEPTH_MAP;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\nexport const enable_mobility = async (payload) => {\r\n const url = URLS.BINS_MOBILITY;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\n// Notification\r\nexport const enableNotification = async (payload) => {\r\n const url = URLS.Bin_Notification;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\n//Bins operation data update\r\nexport const update_bin_dimension = async (payload) => {\r\n const url = URLS.UPDATE_BIN_DIMENSION;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\nexport const update_bin_waste_type = async (payload) => {\r\n const url = URLS.UPDATE_BIN_WASTE_TYPE_ID;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const update_bin_location = async (payload) => {\r\n const url = URLS.UPDATE_BIN_LOCATION;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const update_bin_offset = async (payload) => {\r\n const url = URLS.OFFSET;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const update_bin_full_at = async (payload) => {\r\n const url = URLS.UPDATE_FULL_AT;\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\n\r\nexport const updateThreshold = async (payload) => {\r\n const url = URLS.UPDATE_THRESHOLD + payload.id;\r\n delete payload.id;\r\n payload.threshold = parseInt(payload.threshold);\r\n return await axios.put(url, payload).then((response) => response.data);\r\n};\r\n//Analysis Report\r\nexport const getDevicesData = async (payload) => {\r\n const url = URLS.DEVICE_DATA;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\nexport const getCompaniesData = async (payload) => {\r\n const url = URLS.COMPANIES_DATA;\r\n return await axios.post(url, payload).then((response) => response.data);\r\n};\r\n\r\n// KPI APIs\r\nexport const getGroupList = async (payload) => {\r\n const url = URLS.GROUP_LIST;\r\n return await axios.post(url, payload).then((response) => response.data)\r\n}\r\nexport const AddAddressGroup = async (payload) => {\r\n const url = URLS.ADD_ADDRESS_GROUP;\r\n return await axios.post(url, payload).then((response) => response.data)\r\n}\r\nexport const getAddressList = async (payload) => {\r\n const url = URLS.ADDRESS_LIST;\r\n return await axios.post(url, payload).then((response) => response.data)\r\n}\r\nexport const AddAddress = async (payload) => {\r\n const url = URLS.ADD_ADDRESS;\r\n return await axios.post(url, payload).then((response) => response.data)\r\n}\r\nexport const AddressDetails = async (id) => {\r\n const url = URLS.ADDRESS_DETAILS + id;\r\n return await axios.get(url).then((response) => response.data)\r\n}","import {\r\n getScrollTop,\r\n getAttributeValueByBreakpoint,\r\n throttle,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getUniqueIdWithPrefix,\r\n DataUtil,\r\n ElementAnimateUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface IScrollTopOptions {\r\n offset: number\r\n speed: number\r\n}\r\n\r\nconst defaultScrollTopOptions: IScrollTopOptions = {\r\n offset: 200,\r\n speed: 600,\r\n}\r\n\r\nclass ScrollTopComponent {\r\n element: HTMLElement\r\n options: IScrollTopOptions\r\n instanceUid: string\r\n\r\n constructor(_element: HTMLElement, options: IScrollTopOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultScrollTopOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('scrolltop')\r\n\r\n // Event Handlers\r\n this._handlers()\r\n\r\n // Bind Instance\r\n DataUtil.set(this.element, 'scrolltop', this)\r\n }\r\n\r\n private _handlers = () => {\r\n let timer: number\r\n window.addEventListener('scroll', () => {\r\n throttle(timer, () => {\r\n this._scroll()\r\n })\r\n })\r\n\r\n this.element.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n this._go()\r\n })\r\n }\r\n\r\n private _scroll = () => {\r\n const offset = parseInt(this._getOption('offset') as string)\r\n const pos = getScrollTop() // current vertical position\r\n if (pos > offset) {\r\n if (!document.body.hasAttribute('data-kt-scrolltop')) {\r\n document.body.setAttribute('data-kt-scrolltop', 'on')\r\n }\r\n } else {\r\n if (document.body.hasAttribute('data-kt-scrolltop')) {\r\n document.body.removeAttribute('data-kt-scrolltop')\r\n }\r\n }\r\n }\r\n\r\n private _go = () => {\r\n const speed = parseInt(this._getOption('speed') as string)\r\n ElementAnimateUtil.scrollTop(0, speed)\r\n }\r\n\r\n private _getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`data-kt-scrolltop-${name}`)\r\n if (attr) {\r\n const value = getAttributeValueByBreakpoint(attr)\r\n return value !== null && String(value) === 'true'\r\n }\r\n\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n }\r\n\r\n return null\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n\r\n // Plugin API\r\n public go = () => {\r\n return this._go()\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (el: HTMLElement) => {\r\n const scrollTop = DataUtil.get(el, 'scrolltop')\r\n if (scrollTop) {\r\n return scrollTop\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (selector: string) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let scrollTop = ScrollTopComponent.getInstance(item)\r\n if (!scrollTop) {\r\n scrollTop = new ScrollTopComponent(item, defaultScrollTopOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: IScrollTopOptions = defaultScrollTopOptions\r\n ): ScrollTopComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let scrollTop = ScrollTopComponent.getInstance(item)\r\n if (!scrollTop) {\r\n scrollTop = new ScrollTopComponent(item, options)\r\n }\r\n return scrollTop\r\n }\r\n\r\n public static bootstrap = () => {\r\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\r\n }\r\n\r\n public static reinitialization = () => {\r\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\r\n }\r\n\r\n public static goTop = () => {\r\n ElementAnimateUtil.scrollTop(0, defaultScrollTopOptions.speed)\r\n }\r\n}\r\nexport {ScrollTopComponent, defaultScrollTopOptions}\r\n"],"sourceRoot":""}