{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/core/services/store/breadcrumbs.module.js","webpack:///./src/assets/js/layout/base/aside-toggle.js","webpack:///./src/core/services/jwt.service.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/assets/js/components/image-input.js","webpack:///./src/App.vue?7701","webpack:///src/App.vue","webpack:///./src/App.vue?5b92","webpack:///./src/App.vue","webpack:///./src/router.js","webpack:///./src/core/services/api.service.js","webpack:///./src/core/config/i18n/en.js","webpack:///./src/core/config/i18n/ch.js","webpack:///./src/core/config/i18n/es.js","webpack:///./src/core/config/i18n/jp.js","webpack:///./src/core/config/i18n/de.js","webpack:///./src/core/config/i18n/fr.js","webpack:///./src/core/plugins/vue-i18n.js","webpack:///./src/core/plugins/vuetify.js","webpack:///./src/core/plugins/portal-vue.js","webpack:///./src/core/plugins/bootstrap-vue.js","webpack:///./src/core/plugins/perfect-scrollbar.js","webpack:///./src/core/plugins/highlight-js.js","webpack:///./src/core/plugins/inline-svg.js","webpack:///./src/core/plugins/apexcharts.js","webpack:///./src/assets/js/layout/base/content.js","webpack:///./src/assets/js/layout/base/footer.js","webpack:///./src/assets/js/layout/base/sticky-card.js","webpack:///./src/assets/js/layout/base/stretched-card.js","webpack:///./src/assets/js/layout/base/subheader.js","webpack:///./src/assets/js/layout/extended/chat.js","webpack:///./src/assets/js/layout/extended/quick-actions.js","webpack:///./src/assets/js/layout/extended/quick-cart.js","webpack:///./src/assets/js/layout/extended/quick-notifications.js","webpack:///./src/assets/js/layout/extended/quick-panel.js","webpack:///./src/assets/js/layout/extended/quick-search.js","webpack:///./src/assets/js/layout/extended/scrolltop.js","webpack:///./src/assets/js/layout/extended/search.js","webpack:///./src/core/plugins/metronic.js","webpack:///./src/main.js","webpack:///./src/core/services/store/config.module.js","webpack:///./src/App.vue?4726","webpack:///./src/assets/js/components/header.js","webpack:///./src/core/services/store/index.js","webpack:///./src/assets/js/components/menu.js","webpack:///./src/core/services/store/htmlclass.module.js","webpack:///./src/core/services/store/auth.module.js","webpack:///./src/core/services/api.service.auth.js","webpack:///./src/assets/js/layout/extended/quick-user.js","webpack:///./src/assets/js/layout/base/brand.js","webpack:///./src/assets/js/components/dialog.js","webpack:///./src/assets/js/components/wizard.js","webpack:///./src/assets/js/components/util.js","webpack:///./src/assets/js/layout/extended/examples.js","webpack:///./src/assets/js/components/offcanvas.js","webpack:///./src/assets/js/components/scrolltop.js","webpack:///./src/assets/js/components/toggle.js","webpack:///./src/assets/js/layout/base/header-topbar.js","webpack:///./src/assets/js/layout/base/aside-menu.js","webpack:///./src/assets/js/components/card.js","webpack:///./src/assets/js/layout/base/header.js","webpack:///./src/assets/js/components/cookie.js","webpack:///./src/assets/js/layout/base/header-menu.js","webpack:///./src/assets/js/layout/base/aside.js"],"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","APPEND_BREADCRUM","SET_BREADCRUMB","ADD_BREADCRUMB","state","breadcrumbs","getters","pageTitle","last","title","actions","payload","commit","forEach","item","mutations","KTLayoutAsideToggle","_body","_element","_toggleObject","_init","KTToggle","targetState","toggleState","on","toggle","KTLayoutStickyCard","update","KTLayoutHeaderMenu","pauseDropdownHover","KTLayoutAsideMenu","KTCookie","setCookie","getState","KTUtil","hasClass","removeClass","init","id","getById","getBody","getElement","getToggle","onToggle","handler","element","ID_TOKEN_KEY","ID_JWT_KEY","getJwt","retVal","strJwt","sessionStorage","getItem","objJwt","JSON","parse","saveJwt","jwt","stringify","setItem","getToken","saveToken","token","destroyToken","removeItem","map","webpackContext","req","webpackContextResolve","keys","KTImageInput","elementId","options","the","this","defaultOptions","editMode","Plugin","construct","has","build","set","events","input","find","wrapper","cancel","remove","css","hidden","deepExtend","addEvent","preventDefault","files","reader","FileReader","readAsDataURL","addClass","eventTrigger","one","fired","setDefaults","_vm","_h","$createElement","_c","_self","staticRenderFns","mounted","component","Vue","use","Router","router","routes","path","redirect","children","meta","authorize","ApiService","VueAxios","axios","defaults","baseURL","bindInterceptors","interceptors","response","isCancel","error_description","Message","statusText","modelState","entries","Array","isArray","vm","$bvToast","toast","variant","toaster","solid","appendToast","setHeader","headers","common","JwtService","query","resource","params","catch","slug","post","config","put","delete","locale","TRANSLATOR","SELECT","MENU","NEW","ACTIONS","CREATE_POST","PAGES","FEATURES","APPS","DASHBOARD","AUTH","GENERAL","OR","SUBMIT_BUTTON","NO_ACCOUNT","SIGNUP_BUTTON","FORGOT_BUTTON","BACK_BUTTON","PRIVACY","LEGAL","CONTACT","LOGIN","TITLE","BUTTON","FORGOT","DESC","SUCCESS","REGISTER","INPUT","EMAIL","FULLNAME","PASSWORD","CONFIRM_PASSWORD","USERNAME","VALIDATION","INVALID","REQUIRED","MIN_LENGTH","AGREEMENT_REQUIRED","NOT_FOUND","INVALID_LOGIN","REQUIRED_FIELD","MIN_LENGTH_FIELD","MAX_LENGTH_FIELD","INVALID_FIELD","ECOMMERCE","COMMON","SELECTED_RECORDS_COUNT","ALL","SUSPENDED","ACTIVE","FILTER","BY_STATUS","BY_TYPE","BUSINESS","INDIVIDUAL","SEARCH","IN_ALL_FIELDS","CUSTOMERS","CUSTOMERS_LIST","NEW_CUSTOMER","DELETE_CUSTOMER_SIMPLE","DESCRIPTION","WAIT_DESCRIPTION","MESSAGE","DELETE_CUSTOMER_MULTY","UPDATE_STATUS","EDIT","UPDATE_MESSAGE","ADD_MESSAGE","VueI18n","messages","en","ch","es","jp","de","fr","lang","localStorage","i18n","Vuetify","theme","customProperties","themes","light","primary","secondary","accent","info","success","warning","PortalVue","BootstrapVue","IconsPlugin","PerfectScrollbar","VueHighlightJS","languages","scss","javascript","json","vue","InlineSvgPlugin","VueApexCharts","KTLayoutContent","_getHeight","height","getViewPort","parseInt","KTLayoutHeader","getHeight","KTLayoutSubheader","KTLayoutFooter","actualHeight","_object","offset","KTCard","sticky","zIndex","position","top","pos","isBreakpointUp","isFixed","isFixedForMobile","getHeightForMobile","left","card","right","body","cardWidth","bodyWidth","cardOffsetLeft","initSticky","addResizeHandler","updateSticky","KTLayoutStretchedCard","scroll","cardBody","cardHeader","KTLayoutChat","scrollEl","cardBodyEl","cardHeaderEl","cardFooterEl","scrollInit","windowScroll","mobileNativeScroll","desktopNativeScroll","resetHeightOnDestroy","handleWindowResize","rememberPosition","isBreakpointDown","hasAttr","attr","keyCode","_handeMessaging","messagesEl","textarea","node","ps","html","setHTML","scrollTop","encodeURI","location","hostname","getCookie","expires","Date","getTime","click","setup","KTLayoutQuickActions","header","content","KTOffcanvas","overlay","baseClass","placement","closeBy","toggleBy","disableForMobile","KTLayoutQuickCartPanel","footer","KTLayoutQuickNotifications","KTLayoutQuickPanel","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","_initNotifications","_initLogs","_initSettings","KTLayoutQuickSearch","form","results","KTLayoutScrolltop","KTScrolltop","speed","KTLayoutSearch","_target","_form","_input","_closeIcon","_resultWrapper","_resultDropdown","_resultDropdownToggle","_closeIconContainer","_query","_hasResult","_timeout","_isProcessing","_requestTimeout","_spinnerClass","_resultClass","_minLength","_showProgress","hide","_hideProgress","show","_showDropdown","$","dropdown","_hideDropdown","_processSearch","scrollUpdate","ajax","url","HOST_URL","dataType","res","_handleCancel","_handleSearch","onkeypress","charCode","KTDialog","KTHeader","KTMenu","KTWizard","KTLayoutAside","KTLayoutBrand","KTLayoutHeaderTopbar","KTLayoutExamples","KTLayoutQuickUser","productionTip","ClipboardJS","beforeEach","to","from","next","store","dispatch","RESET_LAYOUT_CONFIG","requiredAuth","iMatch","matched","concat","Set","VERIFY_AUTH","role","userRoles","iRequired","isInRole","includes","scrollTo","VueGtag","vuetify","render","h","App","$mount","SET_LAYOUT_CONFIG","OVERRIDE_LAYOUT_CONFIG","OVERRIDE_PAGE_LAYOUT_CONFIG","initial","layoutConfig","defaultValue","objectPath","assign","merge","desktop","tabletAndMobile","releseOnReverse","eventTriggerState","lastScrollTop","addEventListener","st","getScrollTop","hasAttribute","removeAttribute","args","Vuex","Store","auth","htmlClass","accordion","slideSpeed","autoScroll","autoScrollSpeed","expandAll","reset","eventHandlers","pauseDropdownHoverTime","uid","getUniqueID","reload","resetSubmenuProps","handleSubmenuAccordion","getSubmenuMode","isConditionalSubmenuDropdown","handleSubmenuDrodownHoverEnter","handleSubmenuDrodownHoverExit","handleSubmenuDropdownClick","handleSubmenuDropdownTabClick","handleLinkClick","off","scrollDestroy","el","isset","submenu","hasClasses","default","tablet","mobile","submenus","findAll","len","resumeDropdownHover","showSubmenuDropdown","time","hideSubmenuDropdown","closest","hideSubmenuDropdowns","handleSubmenuDropdownClose","shown","querySelectorAll","li","child","subnav","closables","el_","submenu_","slideUp","slideDown","scrollToItem","classAlso","items","cnt","list","contains","isOffscreen","createSubmenuDropdownClickDropoff","dropoff","stopPropagation","date","resetActiveItem","parents","i_","len_","setActiveItem","getBreadcrumbs","link","text","innerHTML","submenuLink","reverse","getPageTitle","removeEvent","scrollReInit","hideDropdown","hideDropdowns","getByTagName","ADD_BODY_CLASSNAME","REMOVE_BODY_CLASSNAME","ADD_CLASSNAME","SET_CLASSNAME_BY_POSITION","classes","getClasses","context","className","classList","add","LOGOUT","REGISTERMESSAGE","UPDATE_USER","SETUP_PROFILE","PURGE_AUTH","SET_LASTAUTHCHECK","SET_AUTH","SET_ERROR","SET_REGISTERMESSAGE","SET_PROFILE","registermessage","errors","user","isAuthenticated","lastAuthCheck","profile","currentUser","currentUserName","unique_name","currentUserRoles","currentUserProfile","credentials","ApiServiceAuth","qs","access_token","VueJwtDecode","decode","expiry","moment","unix","exp","utc","nowUtc","isValidToken","isBefore","email","username","password","image","bio","baseUrl","Authorization","startStep","clickableSteps","steps","btnSubmit","btnNext","btnPrev","btnLast","btnFirst","currentStep","stopped","totalSteps","goTo","updateUI","getNextStep","getPrevStep","getFirstStep","getLastStep","index","number","eventHandle","callback","stop","start","isLastStep","isFirstStep","isBetweenStep","stepType","stepsInfo","removeAttr","stepsContent","nested","goNext","goPrev","goLast","goFirst","getStep","Element","matches","msMatchesSelector","webkitMatchesSelector","ancestor","documentElement","parentElement","elem","lastTime","vendors","x","requestAnimationFrame","cancelAnimationFrame","currTime","timeToCall","Math","max","arr","configurable","writable","argArr","arguments","docFrag","createDocumentFragment","argItem","isNode","Node","createTextNode","String","insertBefore","firstChild","Document","DocumentFragment","KTUtilElementDataStore","KTUtilElementDataStoreID","KTUtilDelegatedEventHandlers","resizeHandlers","breakpoints","sm","md","lg","xl","_windowResizeHandler","timer","_runResizeHandlers","each","throttle","settings","removeResizeHandler","runResizeHandlers","resize","Event","dispatchEvent","evt","createEvent","initUIEvent","getURLParam","paramName","val","searchString","search","substring","split","unescape","isMobileDevice","test","width","getBreakpoint","navigator","userAgent","match","isDesktopDevice","a","isInResponsiveRange","breakpoint","prefix","floor","random","obj","stone","indexOf","getHighestZindex","isNaN","hasFixedPositionedParent","sleep","milliseconds","getRandomInt","min","isAngularVersion","Zone","out","extend","getElementById","getByTag","getByClass","getElementsByClassName","classesArr","trim","RegExp","classNames","replace","triggerCustomEvent","eventName","CustomEvent","detail","initCustomEvent","triggerEvent","doc","ownerDocument","nodeType","eventClass","bubbles","initEvent","synthetic","fireEvent","createEventObject","string","eventTriggered","currentTarget","dataset","triggered","parent","querySelector","insertAfter","referenceNode","nextSibling","selector","matchesSelector","mozMatchesSelector","oMatchesSelector","log","childNodes","f","tagName","customDataTag","outerWidth","margin","parseFloat","offsetWidth","rect","win","getClientRects","getBoundingClientRect","defaultView","pageYOffset","pageXOffset","outerHeight","style","withMargic","offsetHeight","getComputedStyle","marginTop","marginBottom","visible","animate","duration","easing","done","easings","linear","b","rAF","change","performance","now","loop","timestamp","actualCss","prop","cache","HTMLElement","cssText","actualWidth","getScroll","method","self","browserSupportsBoxModel","styleProp","toLowerCase","getPropertyValue","currentStyle","str","letter","toUpperCase","oldLeft","oldRsLeft","runtimeStyle","pixelLeft","slide","dir","recalcMaxHeight","calcHeight","calcPaddingTop","calcPaddingBottom","paddingTop","paddingBottom","display","overflow","removeEventListener","eventId","targets","callee","hash","chr","charCodeAt","animateClass","animationName","animation","animations","OAnimation","MozAnimation","WebkitAnimation","msAnimation","transitionEnd","transition","transitions","OTransition","MozTransition","WebkitTransition","msTransition","animationEnd","animateDelay","animateDuration","targetPos","scrollPos","ready","attachEvent","readyState","isEmpty","numberString","nStr","x1","x2","rgx","detectIE","ua","msie","trident","rv","edge","isRTL","pluginDefOptions","wheelSpeed","swipeEasing","wheelPropagation","minScrollbarLength","maxScrollbarLength","suppressScrollX","attrs","getAttributeNames","attrName","optionName","filterBoolean","Function","mobileHeight","destroy","scrollUpdateAll","scrollers","resetAll","setProperty","getHTML","getDocumentHeight","scrollHeight","clientHeight","scrollingElement","colorDarken","color","amount","subtractLight","cc","toString","colorLighten","addLight","func","delay","debounce","btnWait","cls","disable","caption","btnRelease","direction","windowWidth","windowHeight","KTAppSettings","initDefaultMode","elements","example","copy","clipboard","trigger","clearSelection","initCompactMode","attrCustom","classBase","classShown","classOverlay","isShown","toggleClass","classCustom","handle","targetToggleMode","toggleOn","toggleOff","_toggleElement","getToggleElement","_menuObject","menuDesktopMode","menu","isMinimized","isHoverable","getOffcanvas","getMenu","closeMobileOffcanvas","toggleSpeed","onScrollSticky","resetSticky","setContent","getSelf","expand","collapse","destroySticky","_elementForMobile","_getHeightForMobile","idForMobile","getElementForMobile","getHeader","cookie","decodeURIComponent","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","deleteCookie","_menuElement","_offcanvasElement","_offcanvasObject","menuId","offcanvasId","getMenuElement","getOffcanvasElement","insideTm","outsideTm","offcanvasClass"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,GAAG9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,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BAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,i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","file":"js/app.f5425421.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-0c557149\":\"7720fe8d\",\"chunk-2d0be2cc\":\"3b7a9dad\",\"chunk-48be6e6a\":\"4bf1e3d9\",\"chunk-0851138c\":\"587b1e4f\",\"chunk-2d20fc7b\":\"e7d638c9\",\"chunk-2d0c0c06\":\"1c779310\",\"chunk-2d22455d\":\"9cd34791\",\"chunk-5dc2c362\":\"e2563933\",\"chunk-1861c834\":\"2b493437\",\"chunk-2d0c4d85\":\"d5988e56\",\"chunk-f78870da\":\"9163d62f\",\"chunk-3c72158d\":\"3377c75e\",\"chunk-78c548ba\":\"aa819bfc\",\"chunk-827b0042\":\"98d0b990\",\"chunk-65c771f9\":\"ca64d514\",\"chunk-77c116c3\":\"15899a4d\",\"chunk-c265ca64\":\"e47df172\",\"chunk-109b3c4c\":\"f12d6f5b\",\"chunk-22572f51\":\"4a529aa5\",\"chunk-25faf99c\":\"4b9a0bfd\",\"chunk-2cb78769\":\"0f9155a4\",\"chunk-2d0b2158\":\"54f4d6c8\",\"chunk-2d0bb299\":\"124a82aa\",\"chunk-2d0a3e2a\":\"c26f9f55\",\"chunk-2d0af42f\":\"5e7d428e\",\"chunk-2d0b6ed6\":\"4d023c0b\",\"chunk-2d0b6ed8\":\"b0c3d29d\",\"chunk-a90b3764\":\"63ab7776\",\"chunk-c22fb3f8\":\"67be8cfd\",\"chunk-2d0e60c9\":\"c63eb9ab\",\"chunk-2d0f09d3\":\"e2e54c17\",\"chunk-2d0ab64d\":\"6518ec93\",\"chunk-7302e7a7\":\"74e949fc\",\"chunk-b161fbf8\":\"564d870f\",\"chunk-b162e636\":\"c1b59a93\",\"chunk-b163d1d6\":\"cf00c33b\",\"chunk-0be9e864\":\"73ab6f5e\",\"chunk-4d90b18a\":\"f524f516\",\"chunk-db3a701e\":\"686abeec\",\"chunk-ed79ad06\":\"dd32793e\",\"chunk-2d0d0453\":\"be62af73\",\"chunk-2d0de925\":\"83a96c5b\",\"chunk-2d0e1b9e\":\"c15a9c1b\",\"chunk-2d216256\":\"3555bf56\",\"chunk-2d216f4c\":\"2a5df3b6\",\"chunk-2d221823\":\"336203b4\",\"chunk-2d225636\":\"96582301\",\"chunk-2d230496\":\"43a3c668\",\"chunk-2dec1b2a\":\"1995ec0d\",\"chunk-376884b6\":\"c568ebf5\",\"chunk-3768c625\":\"f723ca45\",\"chunk-3768c647\":\"5a258494\",\"chunk-3768f920\":\"c99935df\",\"chunk-3768f94e\":\"626223c1\",\"chunk-376900b2\":\"f68e48ef\",\"chunk-37697ca5\":\"3913939f\",\"chunk-3769e020\":\"fefc979b\",\"chunk-376a6cff\":\"2b8cad92\",\"chunk-376a941d\":\"33ad310c\",\"chunk-376acc6c\":\"9f9d41f4\",\"chunk-376acc7e\":\"6db2bc5f\",\"chunk-376acca9\":\"345ff3f5\",\"chunk-376b809c\":\"8d9036ed\",\"chunk-376bfecc\":\"4e13f8ce\",\"chunk-376c3eab\":\"94635f6d\",\"chunk-376c6d21\":\"136fa5bd\",\"chunk-376c708f\":\"fe5bb6d4\",\"chunk-376cef0f\":\"01bacb49\",\"chunk-377e5862\":\"abb5c97f\",\"chunk-377e7527\":\"55c353ec\",\"chunk-377ed9f8\":\"b6f3e201\",\"chunk-377f12a5\":\"7d5fabe9\",\"chunk-377f14a2\":\"b3a1dbe1\",\"chunk-377f5235\":\"15f969ef\",\"chunk-377f9005\":\"cd51994b\",\"chunk-377fada0\":\"6ed32d76\",\"chunk-377fbbbf\":\"4e51c722\",\"chunk-3780970d\":\"5f8a8f80\",\"chunk-3780a904\":\"35f38835\",\"chunk-3780ad51\":\"d425db71\",\"chunk-3780b720\":\"ceb6b34e\",\"chunk-3780de1e\":\"04dd34be\",\"chunk-3780e609\":\"ddbf67d5\",\"chunk-3780ed6d\":\"614482c8\",\"chunk-3781564e\":\"487a9b2d\",\"chunk-49963170\":\"cc163bb8\",\"chunk-51c5309c\":\"70dbd8da\",\"chunk-56f0975a\":\"4a60029b\",\"chunk-03ee5477\":\"817116c2\",\"chunk-12a468f4\":\"9bf62b31\",\"chunk-2242b93b\":\"c7fbefcc\",\"chunk-22439689\":\"1ad2fc9d\",\"chunk-22444f31\":\"29fdd9b2\",\"chunk-2258fc51\":\"29b56b6b\",\"chunk-225b1468\":\"3e016b6d\",\"chunk-270943dc\":\"43c5e567\",\"chunk-6b22d2c1\":\"da026a25\",\"chunk-3df884a7\":\"df4351c3\",\"chunk-b13506e2\":\"8b606044\",\"chunk-b1365156\":\"6ef8373a\",\"chunk-b1382bce\":\"884a5730\",\"chunk-3081675c\":\"a74547af\",\"chunk-32c30012\":\"16a566d0\",\"chunk-379688ab\":\"3d27ac25\",\"chunk-aca59200\":\"74a307f3\",\"chunk-b9ddd6be\":\"48bdd401\",\"chunk-3b1aae9e\":\"db3fa536\",\"chunk-519e9e0a\":\"80178fdb\",\"chunk-5b47629b\":\"18ad9331\",\"chunk-94fa3c92\":\"d37ed59e\",\"chunk-68c83152\":\"aba4fba9\",\"chunk-743e4b25\":\"93d420b6\",\"chunk-74524b79\":\"a910fb63\",\"chunk-746154ec\":\"0251773c\",\"chunk-7498e9ec\":\"16d9da3c\",\"chunk-74a82e1a\":\"19b90037\",\"chunk-74b6aca8\":\"dfa0b4d6\",\"chunk-76f08193\":\"f00dbc32\",\"chunk-771a7e38\":\"3010c40f\",\"chunk-7b51fe7b\":\"5f48ddf6\",\"chunk-7d874396\":\"f7f6019f\",\"chunk-848ad9e2\":\"e43d75f4\",\"chunk-8704e4b0\":\"459da4df\",\"chunk-968fcf4c\":\"d10b8a02\",\"chunk-9f554b5c\":\"9f2354fb\",\"chunk-a1678e6a\":\"73a91f34\",\"chunk-12543ccd\":\"19d5be35\",\"chunk-dc2ab316\":\"d14603c7\",\"chunk-f9f5f4da\":\"d0d7dd80\",\"chunk-3c8c34e6\":\"869207a4\",\"chunk-b9a3d93c\":\"431b5099\",\"chunk-2fbff03c\":\"d232905d\",\"chunk-4955ec18\":\"c4fac8ab\",\"chunk-f72e6366\":\"47619f99\",\"chunk-68cd34c6\":\"48e48794\",\"chunk-641f6600\":\"e7f6dd28\",\"chunk-025a8258\":\"93e30bb9\",\"chunk-19b028fc\":\"29ccab08\",\"chunk-3894a4cc\":\"63901959\",\"chunk-48117451\":\"10ccd3cd\",\"chunk-4a3b9e44\":\"bcc854a8\",\"chunk-4dde4821\":\"fde66008\",\"chunk-5dac98f5\":\"ee88317d\",\"chunk-5f1bbd7d\":\"8ee34923\",\"chunk-7190c802\":\"3dca094d\",\"chunk-9f5d0d7a\":\"7cb31091\",\"chunk-2d225e02\":\"91e829c1\",\"chunk-50252d90\":\"755ed0f6\",\"chunk-5209150e\":\"777dd3e3\",\"chunk-6e98d5ba\":\"16fdd9c1\",\"chunk-245a4733\":\"4b927047\",\"chunk-4b9d610c\":\"ee6d8f9d\",\"chunk-b4b34986\":\"d76ac837\",\"chunk-cd7ac142\":\"8ae3387e\",\"chunk-d8a1abba\":\"a142ceaa\",\"chunk-f0a73156\":\"0eb62d42\"}[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-0c557149\":1,\"chunk-0851138c\":1,\"chunk-1861c834\":1,\"chunk-f78870da\":1,\"chunk-3c72158d\":1,\"chunk-78c548ba\":1,\"chunk-827b0042\":1,\"chunk-65c771f9\":1,\"chunk-77c116c3\":1,\"chunk-c265ca64\":1,\"chunk-109b3c4c\":1,\"chunk-22572f51\":1,\"chunk-25faf99c\":1,\"chunk-2cb78769\":1,\"chunk-a90b3764\":1,\"chunk-c22fb3f8\":1,\"chunk-7302e7a7\":1,\"chunk-0be9e864\":1,\"chunk-4d90b18a\":1,\"chunk-db3a701e\":1,\"chunk-ed79ad06\":1,\"chunk-2dec1b2a\":1,\"chunk-49963170\":1,\"chunk-51c5309c\":1,\"chunk-56f0975a\":1,\"chunk-12a468f4\":1,\"chunk-3df884a7\":1,\"chunk-3081675c\":1,\"chunk-32c30012\":1,\"chunk-379688ab\":1,\"chunk-aca59200\":1,\"chunk-b9ddd6be\":1,\"chunk-3b1aae9e\":1,\"chunk-519e9e0a\":1,\"chunk-5b47629b\":1,\"chunk-94fa3c92\":1,\"chunk-68c83152\":1,\"chunk-743e4b25\":1,\"chunk-74524b79\":1,\"chunk-746154ec\":1,\"chunk-7498e9ec\":1,\"chunk-74a82e1a\":1,\"chunk-74b6aca8\":1,\"chunk-76f08193\":1,\"chunk-771a7e38\":1,\"chunk-7b51fe7b\":1,\"chunk-7d874396\":1,\"chunk-848ad9e2\":1,\"chunk-8704e4b0\":1,\"chunk-968fcf4c\":1,\"chunk-9f554b5c\":1,\"chunk-a1678e6a\":1,\"chunk-12543ccd\":1,\"chunk-dc2ab316\":1,\"chunk-f9f5f4da\":1,\"chunk-3c8c34e6\":1,\"chunk-b9a3d93c\":1,\"chunk-2fbff03c\":1,\"chunk-4955ec18\":1,\"chunk-f72e6366\":1,\"chunk-68cd34c6\":1,\"chunk-641f6600\":1,\"chunk-025a8258\":1,\"chunk-19b028fc\":1,\"chunk-3894a4cc\":1,\"chunk-48117451\":1,\"chunk-4a3b9e44\":1,\"chunk-4dde4821\":1,\"chunk-5dac98f5\":1,\"chunk-5f1bbd7d\":1,\"chunk-7190c802\":1,\"chunk-9f5d0d7a\":1,\"chunk-50252d90\":1,\"chunk-5209150e\":1,\"chunk-6e98d5ba\":1,\"chunk-245a4733\":1,\"chunk-4b9d610c\":1,\"chunk-b4b34986\":1,\"chunk-cd7ac142\":1,\"chunk-d8a1abba\":1,\"chunk-f0a73156\":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-0c557149\":\"b5f32203\",\"chunk-2d0be2cc\":\"31d6cfe0\",\"chunk-48be6e6a\":\"31d6cfe0\",\"chunk-0851138c\":\"543a46e5\",\"chunk-2d20fc7b\":\"31d6cfe0\",\"chunk-2d0c0c06\":\"31d6cfe0\",\"chunk-2d22455d\":\"31d6cfe0\",\"chunk-5dc2c362\":\"31d6cfe0\",\"chunk-1861c834\":\"1b60846e\",\"chunk-2d0c4d85\":\"31d6cfe0\",\"chunk-f78870da\":\"464bbff6\",\"chunk-3c72158d\":\"4dc83c65\",\"chunk-78c548ba\":\"dc622e72\",\"chunk-827b0042\":\"07b869d8\",\"chunk-65c771f9\":\"bcdb3303\",\"chunk-77c116c3\":\"51468ac0\",\"chunk-c265ca64\":\"b1f0f47b\",\"chunk-109b3c4c\":\"0e443c0e\",\"chunk-22572f51\":\"bcdb3303\",\"chunk-25faf99c\":\"bcdb3303\",\"chunk-2cb78769\":\"11091cd1\",\"chunk-2d0b2158\":\"31d6cfe0\",\"chunk-2d0bb299\":\"31d6cfe0\",\"chunk-2d0a3e2a\":\"31d6cfe0\",\"chunk-2d0af42f\":\"31d6cfe0\",\"chunk-2d0b6ed6\":\"31d6cfe0\",\"chunk-2d0b6ed8\":\"31d6cfe0\",\"chunk-a90b3764\":\"9f736591\",\"chunk-c22fb3f8\":\"9f736591\",\"chunk-2d0e60c9\":\"31d6cfe0\",\"chunk-2d0f09d3\":\"31d6cfe0\",\"chunk-2d0ab64d\":\"31d6cfe0\",\"chunk-7302e7a7\":\"9f736591\",\"chunk-b161fbf8\":\"31d6cfe0\",\"chunk-b162e636\":\"31d6cfe0\",\"chunk-b163d1d6\":\"31d6cfe0\",\"chunk-0be9e864\":\"57c192d0\",\"chunk-4d90b18a\":\"1f67a724\",\"chunk-db3a701e\":\"2edf6093\",\"chunk-ed79ad06\":\"06da2e45\",\"chunk-2d0d0453\":\"31d6cfe0\",\"chunk-2d0de925\":\"31d6cfe0\",\"chunk-2d0e1b9e\":\"31d6cfe0\",\"chunk-2d216256\":\"31d6cfe0\",\"chunk-2d216f4c\":\"31d6cfe0\",\"chunk-2d221823\":\"31d6cfe0\",\"chunk-2d225636\":\"31d6cfe0\",\"chunk-2d230496\":\"31d6cfe0\",\"chunk-2dec1b2a\":\"bcdb3303\",\"chunk-376884b6\":\"31d6cfe0\",\"chunk-3768c625\":\"31d6cfe0\",\"chunk-3768c647\":\"31d6cfe0\",\"chunk-3768f920\":\"31d6cfe0\",\"chunk-3768f94e\":\"31d6cfe0\",\"chunk-376900b2\":\"31d6cfe0\",\"chunk-37697ca5\":\"31d6cfe0\",\"chunk-3769e020\":\"31d6cfe0\",\"chunk-376a6cff\":\"31d6cfe0\",\"chunk-376a941d\":\"31d6cfe0\",\"chunk-376acc6c\":\"31d6cfe0\",\"chunk-376acc7e\":\"31d6cfe0\",\"chunk-376acca9\":\"31d6cfe0\",\"chunk-376b809c\":\"31d6cfe0\",\"chunk-376bfecc\":\"31d6cfe0\",\"chunk-376c3eab\":\"31d6cfe0\",\"chunk-376c6d21\":\"31d6cfe0\",\"chunk-376c708f\":\"31d6cfe0\",\"chunk-376cef0f\":\"31d6cfe0\",\"chunk-377e5862\":\"31d6cfe0\",\"chunk-377e7527\":\"31d6cfe0\",\"chunk-377ed9f8\":\"31d6cfe0\",\"chunk-377f12a5\":\"31d6cfe0\",\"chunk-377f14a2\":\"31d6cfe0\",\"chunk-377f5235\":\"31d6cfe0\",\"chunk-377f9005\":\"31d6cfe0\",\"chunk-377fada0\":\"31d6cfe0\",\"chunk-377fbbbf\":\"31d6cfe0\",\"chunk-3780970d\":\"31d6cfe0\",\"chunk-3780a904\":\"31d6cfe0\",\"chunk-3780ad51\":\"31d6cfe0\",\"chunk-3780b720\":\"31d6cfe0\",\"chunk-3780de1e\":\"31d6cfe0\",\"chunk-3780e609\":\"31d6cfe0\",\"chunk-3780ed6d\":\"31d6cfe0\",\"chunk-3781564e\":\"31d6cfe0\",\"chunk-49963170\":\"7c8840a1\",\"chunk-51c5309c\":\"bcdb3303\",\"chunk-56f0975a\":\"b5f32203\",\"chunk-03ee5477\":\"31d6cfe0\",\"chunk-12a468f4\":\"1b60846e\",\"chunk-2242b93b\":\"31d6cfe0\",\"chunk-22439689\":\"31d6cfe0\",\"chunk-22444f31\":\"31d6cfe0\",\"chunk-2258fc51\":\"31d6cfe0\",\"chunk-225b1468\":\"31d6cfe0\",\"chunk-270943dc\":\"31d6cfe0\",\"chunk-6b22d2c1\":\"31d6cfe0\",\"chunk-3df884a7\":\"7dff1814\",\"chunk-b13506e2\":\"31d6cfe0\",\"chunk-b1365156\":\"31d6cfe0\",\"chunk-b1382bce\":\"31d6cfe0\",\"chunk-3081675c\":\"6f6fc61b\",\"chunk-32c30012\":\"2edf6093\",\"chunk-379688ab\":\"a23e4d03\",\"chunk-aca59200\":\"e86f03e0\",\"chunk-b9ddd6be\":\"464bbff6\",\"chunk-3b1aae9e\":\"dc622e72\",\"chunk-519e9e0a\":\"12c2f12c\",\"chunk-5b47629b\":\"4dc83c65\",\"chunk-94fa3c92\":\"082d4082\",\"chunk-68c83152\":\"bcdb3303\",\"chunk-743e4b25\":\"b7e4a7f0\",\"chunk-74524b79\":\"cf8ad1df\",\"chunk-746154ec\":\"f51437c9\",\"chunk-7498e9ec\":\"2c647ed8\",\"chunk-74a82e1a\":\"44cb8da0\",\"chunk-74b6aca8\":\"ea79bf3e\",\"chunk-76f08193\":\"7c7c210c\",\"chunk-771a7e38\":\"e4acf60f\",\"chunk-7b51fe7b\":\"bcdb3303\",\"chunk-7d874396\":\"bcdb3303\",\"chunk-848ad9e2\":\"bcdb3303\",\"chunk-8704e4b0\":\"1d6398ad\",\"chunk-968fcf4c\":\"bcdb3303\",\"chunk-9f554b5c\":\"19a658d4\",\"chunk-a1678e6a\":\"f2432c18\",\"chunk-12543ccd\":\"52cfcf00\",\"chunk-dc2ab316\":\"f70a6ca7\",\"chunk-f9f5f4da\":\"09e39096\",\"chunk-3c8c34e6\":\"ba1d52f1\",\"chunk-b9a3d93c\":\"9778d11c\",\"chunk-2fbff03c\":\"25e3268a\",\"chunk-4955ec18\":\"1bb1c2d6\",\"chunk-f72e6366\":\"044a613c\",\"chunk-68cd34c6\":\"6e0ee783\",\"chunk-641f6600\":\"d3b2c3cf\",\"chunk-025a8258\":\"c6daeb9a\",\"chunk-19b028fc\":\"7c4964f5\",\"chunk-3894a4cc\":\"13a6d6e4\",\"chunk-48117451\":\"977d2714\",\"chunk-4a3b9e44\":\"0188555c\",\"chunk-4dde4821\":\"4a6be393\",\"chunk-5dac98f5\":\"c16e85ef\",\"chunk-5f1bbd7d\":\"c2c0c76f\",\"chunk-7190c802\":\"75593217\",\"chunk-9f5d0d7a\":\"1c494d89\",\"chunk-2d225e02\":\"31d6cfe0\",\"chunk-50252d90\":\"f008c7a7\",\"chunk-5209150e\":\"16451555\",\"chunk-6e98d5ba\":\"dae80923\",\"chunk-245a4733\":\"5667b125\",\"chunk-4b9d610c\":\"4c2b7a3a\",\"chunk-b4b34986\":\"bcdb3303\",\"chunk-cd7ac142\":\"ea429b05\",\"chunk-d8a1abba\":\"5093f554\",\"chunk-f0a73156\":\"bcdb3303\"}[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","// action types\r\nexport const APPEND_BREADCRUM = \"appendBreadcrumb\";\r\n\r\n// mutation types\r\nexport const SET_BREADCRUMB = \"setBreadcrumb\";\r\nexport const ADD_BREADCRUMB = \"addBreadcrumb\";\r\n\r\nexport default {\r\n state: {\r\n breadcrumbs: []\r\n },\r\n getters: {\r\n /**\r\n * Get list of breadcrumbs for current page\r\n * @param state\r\n * @returns {*}\r\n */\r\n breadcrumbs(state) {\r\n return state.breadcrumbs;\r\n },\r\n\r\n /**\r\n * Get the page title\r\n * @param state\r\n * @returns {*}\r\n */\r\n pageTitle(state) {\r\n let last = state.breadcrumbs[state.breadcrumbs.length - 1];\r\n if (last && last.title) {\r\n return last.title;\r\n }\r\n }\r\n },\r\n actions: {\r\n /**\r\n * Set the breadcrumbs list\r\n * @param state\r\n * @param payload\r\n */\r\n [SET_BREADCRUMB](state, payload) {\r\n state.commit(SET_BREADCRUMB, payload);\r\n },\r\n\r\n /**\r\n * Add breadcrumb\r\n * @param state\r\n * @param payload\r\n */\r\n [ADD_BREADCRUMB](state, payload) {\r\n if (typeof payload === \"object\") {\r\n payload.forEach(item => state.commit(APPEND_BREADCRUM, item));\r\n } else {\r\n state.commit(APPEND_BREADCRUM, payload);\r\n }\r\n }\r\n },\r\n mutations: {\r\n [APPEND_BREADCRUM](state, payload) {\r\n state.breadcrumbs = [...state.breadcrumbs, payload];\r\n },\r\n [SET_BREADCRUMB](state, payload) {\r\n state.breadcrumbs = payload;\r\n }\r\n }\r\n};\r\n","\"use strict\";\r\n\r\nvar KTLayoutAsideToggle = function() {\r\n // Private properties\r\n var _body;\r\n var _element;\r\n var _toggleObject;\r\n\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\t_toggleObject = new KTToggle(_element, {\r\n\t\t\ttarget: _body,\r\n\t\t\ttargetState: 'aside-minimize',\r\n\t\t\ttoggleState: 'active'\r\n\t\t});\r\n\r\n\t\t_toggleObject.on('toggle', function(toggle) {\r\n // Update sticky card\r\n if (typeof KTLayoutStickyCard !== 'undefined') {\r\n KTLayoutStickyCard.update();\r\n }\r\n\r\n // Pause header menu dropdowns\r\n if (typeof KTLayoutHeaderMenu !== 'undefined') {\r\n KTLayoutHeaderMenu.pauseDropdownHover(800);\r\n }\r\n\r\n // Pause aside menu dropdowns\r\n if (typeof KTLayoutAsideMenu !== 'undefined') {\r\n KTLayoutAsideMenu.pauseDropdownHover(800);\r\n }\r\n\r\n // Remember state in cookie\r\n\t\t\tKTCookie.setCookie('kt_aside_toggle_state', toggle.getState());\r\n\t\t\t// to set default minimized left aside use this cookie value in your\r\n\t\t\t// server side code and add \"kt-primary--minimize aside-minimize\" classes to\r\n\t\t\t// the body tag in order to initialize the minimized left aside mode during page loading.\r\n\t\t});\r\n\r\n\t\t_toggleObject.on('beforeToggle', function(toggle) {\r\n\t\t\tif (KTUtil.hasClass(_body, 'aside-minimize') === false && KTUtil.hasClass(_body, 'aside-minimize-hover')) {\r\n\t\t\t\tKTUtil.removeClass(_body, 'aside-minimize-hover');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n _body = KTUtil.getBody();\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getToggle: function() {\r\n\t\t\treturn _toggleObject;\r\n\t\t},\r\n\r\n\t\tonToggle: function(handler) {\r\n\t\t\tif (typeof _toggleObject.element !== 'undefined') {\r\n\t\t\t\t_toggleObject.on('toggle', handler);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutAsideToggle;","const ID_TOKEN_KEY = \"token\";\nconst ID_JWT_KEY = \"jwt\";\n\nexport const getJwt = () => {\n let retVal = null;\n try {\n var strJwt = window.sessionStorage.getItem(ID_JWT_KEY);\n var objJwt = JSON.parse(strJwt);\n retVal = objJwt;\n } catch (e) {\n // console.log(\"e:\", e);\n }\n return retVal;\n};\n\nexport const saveJwt = jwt => {\n var strJwt = JSON.stringify(jwt);\n window.sessionStorage.setItem(ID_JWT_KEY, strJwt);\n};\n\nexport const getToken = () => {\n let retVal = window.sessionStorage.getItem(ID_TOKEN_KEY);\n return retVal;\n};\n\nexport const saveToken = token => {\n window.sessionStorage.setItem(ID_TOKEN_KEY, token);\n};\n\nexport const destroyToken = () => {\n window.sessionStorage.removeItem(ID_JWT_KEY);\n window.sessionStorage.removeItem(ID_TOKEN_KEY);\n};\n\nexport default { getJwt, saveJwt, getToken, saveToken, destroyToken };\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.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-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\";","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition \r\nvar KTImageInput = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n editMode: false\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('imageinput')) {\r\n the = KTUtil.data(element).get('imageinput');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('imageinput', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Init avatar\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n the.input = KTUtil.find(element, 'input[type=\"file\"]');\r\n the.wrapper = KTUtil.find(element, '.image-input-wrapper');\r\n the.cancel = KTUtil.find(element, '[data-action=\"cancel\"]');\r\n the.remove = KTUtil.find(element, '[data-action=\"remove\"]');\r\n the.src = KTUtil.css(the.wrapper, 'backgroundImage');\r\n the.hidden = KTUtil.find(element, 'input[type=\"hidden\"]');\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n },\r\n\r\n /**\r\n * Build\r\n */\r\n build: function() {\r\n // Handle change\r\n KTUtil.addEvent(the.input, 'change', function(e) {\r\n e.preventDefault();\r\n\r\n\t if (the.input && the.input.files && the.input.files[0]) {\r\n\t var reader = new FileReader();\r\n\t reader.onload = function(e) {\r\n\t KTUtil.css(the.wrapper, 'background-image', 'url('+e.target.result +')');\r\n\t }\r\n\t reader.readAsDataURL(the.input.files[0]);\r\n\r\n\t KTUtil.addClass(the.element, 'image-input-changed');\r\n KTUtil.removeClass(the.element, 'image-input-empty');\r\n\r\n // Fire change event\r\n Plugin.eventTrigger('change');\r\n\t }\r\n });\r\n\r\n // Handle cancel\r\n KTUtil.addEvent(the.cancel, 'click', function(e) {\r\n e.preventDefault();\r\n\r\n // Fire cancel event\r\n Plugin.eventTrigger('cancel');\r\n\r\n\t KTUtil.removeClass(the.element, 'image-input-changed');\r\n KTUtil.removeClass(the.element, 'image-input-empty');\r\n\t KTUtil.css(the.wrapper, 'background-image', the.src);\r\n\t the.input.value = \"\";\r\n\r\n if (the.hidden) {\r\n the.hidden.value = \"0\";\r\n }\r\n });\r\n\r\n // Handle remove\r\n KTUtil.addEvent(the.remove, 'click', function(e) {\r\n e.preventDefault();\r\n\r\n // Fire cancel event\r\n Plugin.eventTrigger('remove');\r\n\r\n\t KTUtil.removeClass(the.element, 'image-input-changed');\r\n KTUtil.addClass(the.element, 'image-input-empty');\r\n\t KTUtil.css(the.wrapper, 'background-image', \"none\");\r\n\t the.input.value = \"\";\r\n\r\n if (the.hidden) {\r\n the.hidden.value = \"1\";\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n //KTUtil.triggerCustomEvent(name);\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Attach event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTImageInput;\r\n}\r\n\nexport default KTImageInput;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=71ca3769&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport Router from \"vue-router\";\r\n\r\nVue.use(Router);\r\n\r\nconst router = new Router({\r\n routes: [\r\n {\r\n path: \"/\",\r\n name: \"root\",\r\n redirect: \"/dashboard\",\r\n component: () => import(\"@/view/layout/Layout\"),\r\n children: [\r\n {\r\n path: \"/dashboard\",\r\n name: \"dashboard\",\r\n // component: () => import(\"@/view/pages/Dashboard.vue\"),\r\n component: () => import(\"@/view/pages/easyreceipt/sales/list.vue\"),\r\n meta: { authorize: [\"user\"] }\r\n },\r\n {\r\n path: \"/profile\",\r\n name: \"profile\",\r\n redirect: \"/profile/account\",\r\n component: () => import(\"@/view/pages/profile/profile.vue\"),\r\n meta: { authorize: [\"user\"] },\r\n children: [\r\n {\r\n path: \"account\",\r\n name: \"profile-account\",\r\n component: () => import(\"@/view/pages/profile/account.vue\")\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/\",\r\n component: () => import(\"@/view/pages/auth/Auth\"),\r\n children: [\r\n {\r\n name: \"login\",\r\n path: \"/login\",\r\n component: () => import(\"@/view/pages/auth/Login\")\r\n },\r\n {\r\n name: \"register\",\r\n path: \"/register\",\r\n component: () => import(\"@/view/pages/auth/Register\")\r\n },\r\n {\r\n name: \"forgotpassword\",\r\n path: \"/forgotpassword\",\r\n component: () => import(\"@/view/pages/auth/ForgotPassword\")\r\n },\r\n {\r\n name: \"resetpassword\",\r\n path: \"/resetpassword\",\r\n component: () => import(\"@/view/pages/auth/ResetPassword\")\r\n },\r\n {\r\n name: \"verifyaccount\",\r\n path: \"/verifyaccount\",\r\n component: () => import(\"@/view/pages/auth/VerifyAccount\")\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(\"@/view/pages/error/Error-1.vue\")\r\n },\r\n {\r\n // the 404 route, when none of the above matches\r\n path: \"/401\",\r\n name: \"401\",\r\n component: () => import(\"@/view/pages/error/unauthorized.vue\")\r\n },\r\n {\r\n path: \"*\",\r\n redirect: \"/dashboard\"\r\n }\r\n ]\r\n});\r\nexport default router;\r\n","import Vue from \"vue\";\r\nimport axios from \"axios\";\r\nimport VueAxios from \"vue-axios\";\r\nimport JwtService from \"@/core/services/jwt.service\";\r\n\r\n/**\r\n * Service to call HTTP request via Axios\r\n */\r\nconst ApiService = {\r\n init() {\r\n Vue.use(VueAxios, axios);\r\n Vue.axios.defaults.baseURL = \"/\";\r\n //SET DEBUG VALUES IN /public/src/view/pages/easyreceipt/api.js\r\n //Vue.axios.defaults.baseURL = \"https://localhost:44330/\";\r\n //Vue.axios.defaults.baseURL = \"https://easyreceipt-test.thirdchannel.ph/\";\r\n\r\n this.bindInterceptors();\r\n },\r\n\r\n bindInterceptors() {\r\n Vue.axios.interceptors.response.use(\r\n response => response,\r\n error => {\r\n //console.log(\"Interceptor.error.response:\", error, error.response);\r\n //console.log(\"Interceptor.error.Cancel:\", error, Vue.axios.isCancel(error));\r\n if (Vue.axios.isCancel(error)) {\r\n return Promise.reject(error);\r\n }\r\n\r\n let message = error;\r\n // console.log(\"error.response:\", error.response);\r\n if (error.response) {\r\n message =\r\n error.response.data.error_description ||\r\n error.response.data.error ||\r\n error.response.data.message ||\r\n error.response.data.Message ||\r\n error.response.statusText;\r\n if (error.response.data.modelState) {\r\n for (const [key, value] of Object.entries(\r\n error.response.data.modelState\r\n )) {\r\n if (key) message += key;\r\n if (value && Array.isArray(value)) {\r\n value.forEach(element => (message += \"\\n\" + element));\r\n }\r\n }\r\n }\r\n }\r\n\r\n const title = \"Error\"; //`${error.response.statusText} (${error.response.status})`\r\n const vm = new Vue();\r\n vm.$bvToast.toast(`${message}`, {\r\n title: title,\r\n variant: \"danger\",\r\n toaster: \"b-toaster-bottom-right\",\r\n solid: true,\r\n appendToast: true\r\n });\r\n\r\n return Promise.reject(error);\r\n }\r\n );\r\n // Vue.axios.interceptors.response.use(function (response) {\r\n // console.log(\"INTERCEPTOR.response:\", response);\r\n // return response\r\n // }, function (error) {\r\n // console.log(\"INTERCEPTOR.error:\", error);\r\n // console.log(\"INTERCEPTOR.this\", this);\r\n // console.log(\"INTERCEPTOR.this.$bvToast\", this.$bvToast);\r\n // var message = \"\";\r\n // this.$bvToast.toast(message, {\r\n // title: \"ERROR\",\r\n // toaster: 'b-toaster-bottom-right',\r\n // solid: true,\r\n // appendToast: true\r\n // });\r\n // return Promise.reject(error)\r\n // })\r\n },\r\n\r\n setHeader() {\r\n Vue.axios.defaults.headers.common[\r\n \"Authorization\"\r\n ] = `Bearer ${JwtService.getToken()}`;\r\n },\r\n\r\n query(resource, params) {\r\n return Vue.axios.get(resource, params).catch(error => {\r\n // console.log(error);\r\n throw new Error(`[KT] ApiService ${error}`);\r\n });\r\n },\r\n\r\n /**\r\n * Send the GET HTTP request\r\n * @param resource\r\n * @param slug\r\n * @returns {*}\r\n */\r\n get(resource, slug = \"\") {\r\n return Vue.axios.get(`${resource}/${slug}`).catch(error => {\r\n // console.log(error);\r\n throw new Error(`[KT] ApiService ${error}`);\r\n });\r\n },\r\n\r\n /**\r\n * Set the POST HTTP request\r\n * @param resource\r\n * @param params\r\n * @returns {*}\r\n */\r\n post(resource, params, config = null) {\r\n //console.log(\"post:\", resource, params);\r\n return Vue.axios.post(`${resource}`, params, config);\r\n },\r\n\r\n /**\r\n * Send the UPDATE HTTP request\r\n * @param resource\r\n * @param slug\r\n * @param params\r\n * @returns {IDBRequest | Promise}\r\n */\r\n update(resource, slug, params) {\r\n return Vue.axios.put(`${resource}/${slug}`, params);\r\n },\r\n\r\n /**\r\n * Send the PUT HTTP request\r\n * @param resource\r\n * @param params\r\n * @returns {IDBRequest | Promise}\r\n */\r\n put(resource, params) {\r\n return Vue.axios.put(`${resource}`, params);\r\n },\r\n\r\n /**\r\n * Send the DELETE HTTP request\r\n * @param resource\r\n * @returns {*}\r\n */\r\n delete(resource) {\r\n return Vue.axios.delete(resource).catch(error => {\r\n // console.log(error);\r\n throw new Error(`[RWV] ApiService ${error}`);\r\n });\r\n }\r\n};\r\n\r\nexport default ApiService;\r\n","// USA\r\nexport const locale = {\r\n TRANSLATOR: {\r\n SELECT: \"Select your language\"\r\n },\r\n MENU: {\r\n NEW: \"new\",\r\n ACTIONS: \"Actions\",\r\n CREATE_POST: \"Create New Post\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"Features\",\r\n APPS: \"Apps\",\r\n DASHBOARD: \"Dashboard\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"Or\",\r\n SUBMIT_BUTTON: \"Submit\",\r\n NO_ACCOUNT: \"Don't have an account?\",\r\n SIGNUP_BUTTON: \"Sign Up\",\r\n FORGOT_BUTTON: \"Forgot Password\",\r\n BACK_BUTTON: \"Back\",\r\n PRIVACY: \"Privacy\",\r\n LEGAL: \"Legal\",\r\n CONTACT: \"Contact\"\r\n },\r\n LOGIN: {\r\n TITLE: \"Login Account\",\r\n BUTTON: \"Sign In\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Forgot Password?\",\r\n DESC: \"Enter your email to reset your password\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Password\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"Username\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} is not valid\",\r\n REQUIRED: \"{{name}} is required\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n ECOMMERCE: \"eCommerce\",\r\n CUSTOMERS: {\r\n CUSTOMERS: \"Customers\",\r\n CUSTOMERS_LIST: \"Customers list\",\r\n NEW_CUSTOMER: \"New Customer\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Customer Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\r\n WAIT_DESCRIPTION: \"Customer is deleting...\",\r\n MESSAGE: \"Customer has been deleted\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Customers Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\r\n WAIT_DESCRIPTION: \"Customers are deleting...\",\r\n MESSAGE: \"Selected customers have been deleted\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Status has been updated for selected customers\",\r\n MESSAGE: \"Selected customers status have successfully been updated\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Customer has been updated\",\r\n ADD_MESSAGE: \"Customer has been created\"\r\n }\r\n }\r\n }\r\n};\r\n","// China\r\nexport const locale = {\r\n TRANSLATOR: {\r\n SELECT: \"选择你的语言\"\r\n },\r\n MENU: {\r\n NEW: \"新\",\r\n ACTIONS: \"行动\",\r\n CREATE_POST: \"创建新帖子\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"特征\",\r\n APPS: \"应用\",\r\n DASHBOARD: \"仪表板\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"要么\",\r\n SUBMIT_BUTTON: \"提交\",\r\n NO_ACCOUNT: \"没有账号?\",\r\n SIGNUP_BUTTON: \"注册\",\r\n FORGOT_BUTTON: \"忘记密码\",\r\n BACK_BUTTON: \"背部\",\r\n PRIVACY: \"隐私\",\r\n LEGAL: \"法律\",\r\n CONTACT: \"联系\"\r\n },\r\n LOGIN: {\r\n TITLE: \"创建帐号\",\r\n BUTTON: \"签到\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Forgot Password?\",\r\n DESC: \"Enter your email to reset your password\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Password\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"用戶名\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} is not valid\",\r\n REQUIRED: \"{{name}} is required\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n ECOMMERCE: \"eCommerce\",\r\n CUSTOMERS: {\r\n CUSTOMERS: \"顾客\",\r\n CUSTOMERS_LIST: \"客户名单\",\r\n NEW_CUSTOMER: \"New Customer\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Customer Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\r\n WAIT_DESCRIPTION: \"Customer is deleting...\",\r\n MESSAGE: \"Customer has been deleted\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Customers Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\r\n WAIT_DESCRIPTION: \"Customers are deleting...\",\r\n MESSAGE: \"Selected customers have been deleted\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Status has been updated for selected customers\",\r\n MESSAGE: \"Selected customers status have successfully been updated\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Customer has been updated\",\r\n ADD_MESSAGE: \"Customer has been created\"\r\n }\r\n }\r\n }\r\n};\r\n","// Spain\r\nexport const locale = {\r\n TRANSLATOR: {\r\n SELECT: \"Elige tu idioma\"\r\n },\r\n MENU: {\r\n NEW: \"nuevo\",\r\n ACTIONS: \"Comportamiento\",\r\n CREATE_POST: \"Crear nueva publicación\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"Caracteristicas\",\r\n APPS: \"Aplicaciones\",\r\n DASHBOARD: \"Tablero\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"O\",\r\n SUBMIT_BUTTON: \"Enviar\",\r\n NO_ACCOUNT: \"No tienes una cuenta?\",\r\n SIGNUP_BUTTON: \"Regístrate\",\r\n FORGOT_BUTTON: \"Se te olvidó tu contraseña\",\r\n BACK_BUTTON: \"Espalda\",\r\n PRIVACY: \"Intimidad\",\r\n LEGAL: \"Legal\",\r\n CONTACT: \"Contacto\"\r\n },\r\n LOGIN: {\r\n TITLE: \"Crear una cuenta\",\r\n BUTTON: \"Registrarse\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Contraseña olvidada?\",\r\n DESC: \"Ingrese su correo electrónico para restablecer su contraseña\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Password\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"Usuario\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} is not valid\",\r\n REQUIRED: \"{{name}} is required\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n ECOMMERCE: \"eCommerce\",\r\n CUSTOMERS: {\r\n CUSTOMERS: \"Customers\",\r\n CUSTOMERS_LIST: \"Customers list\",\r\n NEW_CUSTOMER: \"New Customer\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Customer Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\r\n WAIT_DESCRIPTION: \"Customer is deleting...\",\r\n MESSAGE: \"Customer has been deleted\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Customers Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\r\n WAIT_DESCRIPTION: \"Customers are deleting...\",\r\n MESSAGE: \"Selected customers have been deleted\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Status has been updated for selected customers\",\r\n MESSAGE: \"Selected customers status have successfully been updated\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Customer has been updated\",\r\n ADD_MESSAGE: \"Customer has been created\"\r\n }\r\n }\r\n }\r\n};\r\n","// Japan\r\nexport const locale = {\r\n TRANSLATOR: {\r\n SELECT: \"あなたが使う言語を選んでください\"\r\n },\r\n MENU: {\r\n NEW: \"新しい\",\r\n ACTIONS: \"行動\",\r\n CREATE_POST: \"新しい投稿を作成\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"特徴\",\r\n APPS: \"アプリ\",\r\n DASHBOARD: \"ダッシュボード\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"または\",\r\n SUBMIT_BUTTON: \"提出する\",\r\n NO_ACCOUNT: \"アカウントを持っていない?\",\r\n SIGNUP_BUTTON: \"サインアップ\",\r\n FORGOT_BUTTON: \"パスワードをお忘れですか\",\r\n BACK_BUTTON: \"バック\",\r\n PRIVACY: \"プライバシー\",\r\n LEGAL: \"法的\",\r\n CONTACT: \"接触\"\r\n },\r\n LOGIN: {\r\n TITLE: \"Create Account\",\r\n BUTTON: \"Sign In\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Forgot Password?\",\r\n DESC: \"Enter your email to reset your password\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Password\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"ユーザー名\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} is not valid\",\r\n REQUIRED: \"{{name}} is required\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n ECOMMERCE: \"eCommerce\",\r\n CUSTOMERS: {\r\n CUSTOMERS: \"Customers\",\r\n CUSTOMERS_LIST: \"Customers list\",\r\n NEW_CUSTOMER: \"New Customer\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Customer Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\r\n WAIT_DESCRIPTION: \"Customer is deleting...\",\r\n MESSAGE: \"Customer has been deleted\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Customers Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\r\n WAIT_DESCRIPTION: \"Customers are deleting...\",\r\n MESSAGE: \"Selected customers have been deleted\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Status has been updated for selected customers\",\r\n MESSAGE: \"Selected customers status have successfully been updated\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Customer has been updated\",\r\n ADD_MESSAGE: \"Customer has been created\"\r\n }\r\n }\r\n }\r\n};\r\n","// Germany\r\nexport const locale = {\r\n TRANSLATOR: {\r\n SELECT: \"Wähle deine Sprache\"\r\n },\r\n MENU: {\r\n NEW: \"Neu\",\r\n ACTIONS: \"Aktionen\",\r\n CREATE_POST: \"Erstellen Sie einen neuen Beitrag\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"Eigenschaften\",\r\n APPS: \"Apps\",\r\n DASHBOARD: \"Instrumententafel\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"Oder\",\r\n SUBMIT_BUTTON: \"einreichen\",\r\n NO_ACCOUNT: \"Hast du kein Konto?\",\r\n SIGNUP_BUTTON: \"Anmelden\",\r\n FORGOT_BUTTON: \"Passwort vergessen\",\r\n BACK_BUTTON: \"Zurück\",\r\n PRIVACY: \"Privatsphäre\",\r\n LEGAL: \"Legal\",\r\n CONTACT: \"Kontakt\"\r\n },\r\n LOGIN: {\r\n TITLE: \"Create Account\",\r\n BUTTON: \"Sign In\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Forgot Password?\",\r\n DESC: \"Enter your email to reset your password\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Password\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"Nutzername\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} is not valid\",\r\n REQUIRED: \"{{name}} is required\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n ECOMMERCE: \"eCommerce\",\r\n CUSTOMERS: {\r\n CUSTOMERS: \"Customers\",\r\n CUSTOMERS_LIST: \"Customers list\",\r\n NEW_CUSTOMER: \"New Customer\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Customer Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\r\n WAIT_DESCRIPTION: \"Customer is deleting...\",\r\n MESSAGE: \"Customer has been deleted\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Customers Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\r\n WAIT_DESCRIPTION: \"Customers are deleting...\",\r\n MESSAGE: \"Selected customers have been deleted\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Status has been updated for selected customers\",\r\n MESSAGE: \"Selected customers status have successfully been updated\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Customer has been updated\",\r\n ADD_MESSAGE: \"Customer has been created\"\r\n }\r\n }\r\n }\r\n};\r\n","// France\r\nexport const locale = {\r\n TRANSLATOR: {\r\n SELECT: \"choisissez votre langue\"\r\n },\r\n MENU: {\r\n NEW: \"Nouveau\",\r\n ACTIONS: \"Actes\",\r\n CREATE_POST: \"Créer un nouveau Post\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"Fonctionnalités\",\r\n APPS: \"Applications\",\r\n DASHBOARD: \"Tableau de Bord\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"Ou\",\r\n SUBMIT_BUTTON: \"Soumettre\",\r\n NO_ACCOUNT: \"Ne pas avoir de compte?\",\r\n SIGNUP_BUTTON: \"Registre\",\r\n FORGOT_BUTTON: \"Mot de passe oublié\",\r\n BACK_BUTTON: \"Back\",\r\n PRIVACY: \"Privacy\",\r\n LEGAL: \"Legal\",\r\n CONTACT: \"Contact\"\r\n },\r\n LOGIN: {\r\n TITLE: \"Créer un compte\",\r\n BUTTON: \"Sign In\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Forgot Password?\",\r\n DESC: \"Enter your email to reset your password\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Mot de passe\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"Nom d'utilisateur\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} n'est pas valide\",\r\n REQUIRED: \"{{name}} est requis\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Nombre d'enregistrements sélectionnés: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n ECOMMERCE: \"éCommerce\",\r\n CUSTOMERS: {\r\n CUSTOMERS: \"Les clients\",\r\n CUSTOMERS_LIST: \"Liste des clients\",\r\n NEW_CUSTOMER: \"Nouveau client\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Suppression du client\",\r\n DESCRIPTION: \"Êtes-vous sûr de supprimer définitivement ce client?\",\r\n WAIT_DESCRIPTION: \"Le client est en train de supprimer ...\",\r\n MESSAGE: \"Le client a été supprimé\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Supprimer les clients\",\r\n DESCRIPTION:\r\n \"Êtes-vous sûr de supprimer définitivement les clients sélectionnés?\",\r\n WAIT_DESCRIPTION: \"Les clients suppriment ...\",\r\n MESSAGE: \"Les clients sélectionnés ont été supprimés\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Le statut a été mis à jour pour les clients sélectionnés\",\r\n MESSAGE:\r\n \"Le statut des clients sélectionnés a été mis à jour avec succès\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Le client a été mis à jour\",\r\n ADD_MESSAGE: \"Le client a été créé\"\r\n }\r\n }\r\n }\r\n};\r\n","import Vue from \"vue\";\r\nimport VueI18n from \"vue-i18n\";\r\n\r\n// Localisation language list\r\nimport { locale as en } from \"@/core/config/i18n/en\";\r\nimport { locale as ch } from \"@/core/config/i18n/ch\";\r\nimport { locale as es } from \"@/core/config/i18n/es\";\r\nimport { locale as jp } from \"@/core/config/i18n/jp\";\r\nimport { locale as de } from \"@/core/config/i18n/de\";\r\nimport { locale as fr } from \"@/core/config/i18n/fr\";\r\n\r\nVue.use(VueI18n);\r\n\r\nlet messages = {};\r\nmessages = { ...messages, en, ch, es, jp, de, fr };\r\n\r\n// get current selected language\r\nconst lang = localStorage.getItem(\"language\") || \"en\";\r\n\r\n// Create VueI18n instance with options\r\nconst i18n = new VueI18n({\r\n locale: lang, // set locale\r\n messages // set locale messages\r\n});\r\n\r\nexport default i18n;\r\n","import Vue from \"vue\";\r\nimport Vuetify from \"vuetify/lib/framework\";\r\n\r\nVue.use(Vuetify);\r\n\r\nexport default new Vuetify({\r\n theme: {\r\n options: {\r\n customProperties: true\r\n },\r\n themes: {\r\n light: {\r\n primary: \"#5867dd\",\r\n secondary: \"#e8ecfa\",\r\n accent: \"#5d78ff\",\r\n error: \"#fd397a\",\r\n info: \"#5578eb\",\r\n success: \"#0abb87\",\r\n warning: \"#ffb822\"\r\n }\r\n }\r\n }\r\n});\r\n","import Vue from \"vue\";\r\nimport PortalVue from \"portal-vue\";\r\n\r\nVue.use(PortalVue);\r\n\r\nexport default PortalVue;\r\n","import Vue from \"vue\";\r\nimport { BootstrapVue, IconsPlugin } from \"bootstrap-vue\";\r\n\r\n// Install BootstrapVue\r\nVue.use(BootstrapVue);\r\n// Optionally install the BootstrapVue icon components plugin\r\nVue.use(IconsPlugin);\r\n","import Vue from \"vue\";\r\nimport PerfectScrollbar from \"vue2-perfect-scrollbar\";\r\n\r\n// Perfect scrollbar\r\nVue.use(PerfectScrollbar);\r\n","import Vue from \"vue\";\r\n// Highlight js\r\nimport VueHighlightJS from \"vue-highlight.js\";\r\n// Highlight.js languages (Only required languages)\r\nimport scss from \"highlight.js/lib/languages/scss\";\r\nimport javascript from \"highlight.js/lib/languages/javascript\";\r\nimport json from \"highlight.js/lib/languages/json\";\r\nimport vue from \"vue-highlight.js/lib/languages/vue\";\r\nimport \"highlight.js/styles/github-gist.css\";\r\n\r\n// highlight js\r\nVue.use(VueHighlightJS, {\r\n // Register only languages that you want\r\n languages: {\r\n scss,\r\n javascript,\r\n json,\r\n vue\r\n }\r\n});\r\n","import Vue from \"vue\";\r\nimport { InlineSvgPlugin } from \"vue-inline-svg\";\r\n\r\nVue.use(InlineSvgPlugin);\r\n","import Vue from \"vue\";\r\nimport VueApexCharts from \"vue-apexcharts\";\r\n\r\nVue.use(VueApexCharts);\r\n\r\nVue.component(\"apexchart\", VueApexCharts);\r\n","\"use strict\";\r\n\r\nvar KTLayoutContent = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height;\r\n\r\n\t\theight = KTUtil.getViewPort().height;\r\n\r\n if (_element) {\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n }\r\n\r\n height = height - KTLayoutHeader.getHeight();\r\n height = height - KTLayoutSubheader.getHeight();\r\n height = height - KTLayoutFooter.getHeight();\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutContent;","\"use strict\";\r\n\r\nvar KTLayoutFooter = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutFooter;","\"use strict\";\r\n\r\nvar KTLayoutStickyCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n var _object;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar offset = 300;\r\n\r\n\t\tif (typeof KTLayoutHeader !== 'undefined') {\r\n\t\t\toffset = KTLayoutHeader.getHeight();\r\n\t\t}\r\n\r\n _object = new KTCard(_element, {\r\n\t\t\tsticky: {\r\n\t\t\t\toffset: offset,\r\n\t\t\t\tzIndex: 90,\r\n\t\t\t\tposition: {\r\n\t\t\t\t\ttop: function() {\r\n\t\t\t\t\t\tvar pos = 0;\r\n var body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (typeof KTLayoutSubheader !== 'undefined' && KTLayoutSubheader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutSubheader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixedForMobile()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeightForMobile();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tpos = pos - 1; // remove header border width\r\n\r\n\t\t\t\t\t\treturn pos;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tleft: function(card) {\r\n\t\t\t\t\t\treturn KTUtil.offset(_element).left;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tright: function(card) {\r\n\t\t\t\t\t\tvar body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tvar cardWidth = parseInt(KTUtil.css(_element, 'width'));\r\n\t\t\t\t\t\tvar bodyWidth = parseInt(KTUtil.css(body, 'width'));\r\n\t\t\t\t\t\tvar cardOffsetLeft = KTUtil.offset(_element).left;\r\n\r\n\t\t\t\t\t\treturn bodyWidth - cardWidth - cardOffsetLeft;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_object.initSticky();\r\n\r\n\t\tKTUtil.addResizeHandler(function() {\r\n\t\t\t_object.updateSticky();\r\n\t\t});\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\tif (_object) {\r\n\t\t\t\t_object.updateSticky();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutStickyCard;","\"use strict\";\r\n\r\nvar KTLayoutStretchedCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar scroll = KTUtil.find(_element, '.card-scroll');\r\n\t\tvar cardBody = KTUtil.find(_element, '.card-body');\r\n\t\tvar cardHeader = KTUtil.find(_element, '.card-header');\r\n\r\n\t\tvar height = KTLayoutContent.getHeight();\r\n\r\n\t\theight = height - parseInt(KTUtil.actualHeight(cardHeader));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'marginTop')) - parseInt(KTUtil.css(_element, 'marginBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'paddingTop')) - parseInt(KTUtil.css(cardBody, 'paddingBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'marginTop')) - parseInt(KTUtil.css(cardBody, 'marginBottom'));\r\n\r\n\t\theight = height - 3;\r\n\r\n\t\tKTUtil.css(scroll, 'height', height + 'px');\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\r\n // Re-calculate on window resize\r\n KTUtil.addResizeHandler(function() {\r\n\t\t\t\t_init();\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\t_init();\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutStretchedCard;","\"use strict\";\r\n\r\nvar KTLayoutSubheader = function() {\r\n // Private properties\r\n var _element;\r\n\r\n // Private functions\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'subheader-fixed');\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutSubheader;","\"use strict\";\r\n\r\n// Class definition\r\nvar KTLayoutChat = function () {\r\n\t// Private functions\r\n\tvar _init = function (element) {\r\n\t\tvar scrollEl = KTUtil.find(element, '.scroll');\r\n\t\tvar cardBodyEl = KTUtil.find(element, '.card-body');\r\n\t\tvar cardHeaderEl = KTUtil.find(element, '.card-header');\r\n\t\tvar cardFooterEl = KTUtil.find(element, '.card-footer');\r\n\r\n\t\tif (!scrollEl) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// initialize perfect scrollbar(see: https://github.com/utatti/perfect-scrollbar)\r\n\t\tKTUtil.scrollInit(scrollEl, {\r\n\t\t\twindowScroll: false, // allow browser scroll when the scroll reaches the end of the side\r\n\t\t\tmobileNativeScroll: true, // enable native scroll for mobile\r\n\t\t\tdesktopNativeScroll: false, // disable native scroll and use custom scroll for desktop\r\n\t\t\tresetHeightOnDestroy: true, // reset css height on scroll feature destroyed\r\n\t\t\thandleWindowResize: true, // recalculate hight on window resize\r\n\t\t\trememberPosition: true, // remember scroll position in cookie\r\n\t\t\theight: function() { // calculate height\r\n\t\t\t\tvar height;\r\n\r\n\t\t\t\tif (KTUtil.isBreakpointDown('lg')) { // Mobile mode\r\n\t\t\t\t\treturn KTUtil.hasAttr(scrollEl, 'data-mobile-height') ? parseInt(KTUtil.attr(scrollEl, 'data-mobile-height')) : 400;\r\n\t\t\t\t} else if (KTUtil.isBreakpointUp('lg') && KTUtil.hasAttr(scrollEl, 'data-height')) { // Desktop Mode\r\n\t\t\t\t\treturn parseInt(KTUtil.attr(scrollEl, 'data-height'));\r\n\t\t\t\t} else {\r\n\t\t\t\t\theight = KTLayoutContent.getHeight();\r\n\r\n\t\t\t\t\tif (scrollEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(scrollEl, 'margin-top')) - parseInt(KTUtil.css(scrollEl, 'margin-bottom'));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cardHeaderEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardHeaderEl, 'height'));\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardHeaderEl, 'margin-top')) - parseInt(KTUtil.css(cardHeaderEl, 'margin-bottom'));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cardBodyEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardBodyEl, 'padding-top')) - parseInt(KTUtil.css(cardBodyEl, 'padding-bottom'));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cardFooterEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardFooterEl, 'height'));\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardFooterEl, 'margin-top')) - parseInt(KTUtil.css(cardFooterEl, 'margin-bottom'));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Remove additional space\r\n\t\t\t\theight = height - 2;\r\n\r\n\t\t\t\treturn height;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// attach events\r\n\t\tKTUtil.on(element, '.card-footer textarea', 'keydown', function(e) {\r\n\t\t\tif (e.keyCode == 13) {\r\n\t\t\t\t_handeMessaging(element);\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tKTUtil.on(element, '.card-footer .chat-send', 'click', function(e) {\r\n\t\t\t_handeMessaging(element);\r\n\t\t});\r\n\t}\r\n\r\n\tvar _handeMessaging = function(element) {\r\n\t\tvar messagesEl = KTUtil.find(element, '.messages');\r\n\t\tvar scrollEl = KTUtil.find(element, '.scroll');\r\n var textarea = KTUtil.find(element, 'textarea');\r\n\r\n if (textarea.value.length === 0 ) {\r\n return;\r\n }\r\n\r\n\t\tvar node = document.createElement(\"DIV\");\r\n\t\tKTUtil.addClass(node, 'd-flex flex-column mb-5 align-items-end');\r\n\r\n\t\tvar html = '';\r\n\t\thtml += '';\r\n\t\thtml += '\t';\r\n\t\thtml += '\t\t2 Hours';\r\n\t\thtml += '\t\tYou';\r\n\t\thtml += '\t';\r\n\t\thtml += '\t';\r\n\t\thtml += '\t\t';\r\n\t\thtml += '\t';\r\n\t\thtml += '';\r\n\t\thtml += '' + textarea.value + '';\r\n\r\n\t\tKTUtil.setHTML(node, html);\r\n\t\tmessagesEl.appendChild(node);\r\n\t\ttextarea.value = '';\r\n\t\tscrollEl.scrollTop = parseInt(KTUtil.css(messagesEl, 'height'));\r\n\r\n\t\tvar ps;\r\n\t\tif (ps = KTUtil.data(scrollEl).get('ps')) {\r\n\t\t\tps.update();\r\n\t\t}\r\n\r\n\t\tsetTimeout(function() {\r\n\t\t\tvar node = document.createElement(\"DIV\");\r\n\t\t\tKTUtil.addClass(node, 'd-flex flex-column mb-5 align-items-start');\r\n\r\n\t\t\tvar html = '';\r\n\t\t\thtml += '';\r\n\t\t\thtml += '\t';\r\n\t\t\thtml += '\t\t';\r\n\t\t\thtml += '\t';\r\n\t\t\thtml += '\t';\r\n\t\t\thtml += '\t\tMatt Pears';\r\n\t\t\thtml += '\t\tJust now';\r\n\t\t\thtml += '\t';\r\n\t\t\thtml += '';\r\n\t\t\thtml += '';\r\n\t\t\thtml += 'Right before vacation season we have the next Big Deal for you.';\r\n\t\t\thtml += '';\r\n\r\n\t\t\tKTUtil.setHTML(node, html);\r\n\t\t\tmessagesEl.appendChild(node);\r\n\t\t\ttextarea.value = '';\r\n\t\t\tscrollEl.scrollTop = parseInt(KTUtil.css(messagesEl, 'height'));\r\n\r\n\t\t\tvar ps;\r\n\t\t\tif (ps = KTUtil.data(scrollEl).get('ps')) {\r\n\t\t\t\tps.update();\r\n\t\t\t}\r\n\t\t}, 2000);\r\n\t}\r\n\r\n\t// Public methods\r\n\treturn {\r\n\t\tinit: function() {\r\n\t\t\t// init modal chat example\r\n\t\t\t_init(KTUtil.getById('kt_chat_modal'));\r\n\r\n\t\t\t// trigger click to show popup modal chat on page load\r\n\t\t\tif (encodeURI(window.location.hostname) == 'keenthemes.com' || encodeURI(window.location.hostname) == 'www.keenthemes.com') {\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t if (!KTCookie.getCookie('kt_app_chat_shown')) {\r\n\t\t var expires = new Date(new Date().getTime() + 60 * 60 * 1000); // expire in 60 minutes from now\r\n\r\n\t\t\t\t\t\tKTCookie.setCookie('kt_app_chat_shown', 1, { expires: expires });\r\n\r\n\t\t\t\t\t\tif (KTUtil.getById('kt_app_chat_launch_btn')) {\r\n\t\t\t\t\t\t\tKTUtil.getById('kt_app_chat_launch_btn').click();\r\n\t\t\t\t\t\t}\r\n\t\t }\r\n\t\t }, 2000);\r\n\t }\r\n },\r\n\r\n setup: function(element) {\r\n _init(element);\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutChat;","\"use strict\";\r\n\r\nvar KTLayoutQuickActions = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_actions_close',\r\n toggleBy: 'kt_quick_actions_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(content, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutQuickActions;","\"use strict\";\r\n\r\nvar KTLayoutQuickCartPanel = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_cart_close',\r\n toggleBy: 'kt_quick_cart_toggle'\r\n });\r\n\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n var wrapper = KTUtil.find(_element, '.offcanvas-wrapper');\r\n var footer = KTUtil.find(_element, '.offcanvas-footer');\r\n\r\n KTUtil.scrollInit(wrapper, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n if (wrapper) {\r\n height = height - parseInt(KTUtil.css(wrapper, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(wrapper, 'marginBottom'));\r\n }\r\n\r\n if (footer) {\r\n height = height - parseInt(KTUtil.actualHeight(footer));\r\n height = height - parseInt(KTUtil.css(footer, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(footer, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutQuickCartPanel;","\"use strict\";\r\n\r\nvar KTLayoutQuickNotifications = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_notifications_close',\r\n toggleBy: 'kt_quick_notifications_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(content, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutQuickNotifications;","\"use strict\";\r\n\r\nvar KTLayoutQuickPanel = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n var _notificationsElement;\r\n var _logsElement;\r\n var _settingsElement;\r\n\r\n // Private functions\r\n var _getContentHeight = function() {\r\n var height;\r\n\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n\r\n var _init = function() {\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_panel_close',\r\n toggleBy: 'kt_quick_panel_toggle'\r\n });\r\n }\r\n\r\n var _initNotifications = function() {\r\n KTUtil.scrollInit(_notificationsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _initLogs = function() {\r\n KTUtil.scrollInit(_logsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _initSettings = function() {\r\n KTUtil.scrollInit(_settingsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _updateScrollbars = function() {\r\n $(_element).find('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\r\n KTUtil.scrollUpdate(_notificationsElement);\r\n KTUtil.scrollUpdate(_logsElement);\r\n KTUtil.scrollUpdate(_settingsElement);\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n _notificationsElement = KTUtil.getById('kt_quick_panel_notifications');\r\n _logsElement = KTUtil.getById('kt_quick_panel_logs');\r\n _settingsElement = KTUtil.getById('kt_quick_panel_settings');\r\n\r\n _init();\r\n _initNotifications();\r\n _initLogs();\r\n _initSettings();\r\n\r\n \r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutQuickPanel;","\"use strict\";\r\n\r\nvar KTLayoutQuickSearch = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n var form = KTUtil.find(_element, '.quick-search-form');\r\n var results = KTUtil.find(_element, '.quick-search-wrapper');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_search_close',\r\n toggleBy: 'kt_quick_search_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(results, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n if (results) {\r\n height = height - parseInt(KTUtil.actualHeight(form));\r\n height = height - parseInt(KTUtil.css(form, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(form, 'marginBottom'));\r\n\r\n height = height - parseInt(KTUtil.css(results, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(results, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutQuickSearch;","\"use strict\";\r\n\r\nvar KTLayoutScrolltop = function() {\r\n // Private properties\r\n var _element;\r\n var _object;\r\n\r\n // Private functions\r\n var _init = function() {\r\n _object = new KTScrolltop(_element, {\r\n offset: 300,\r\n speed: 600,\r\n });\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutScrolltop;","\"use strict\";\r\n//\r\n// Handle User Quick Search For Dropdown, Inline and Offcanvas Search Panels\r\n//\r\n\r\nvar KTLayoutSearch = function() {\r\n // Private properties\r\n var _target;\r\n var _form;\r\n var _input;\r\n var _closeIcon;\r\n var _resultWrapper;\r\n var _resultDropdown;\r\n var _resultDropdownToggle;\r\n var _closeIconContainer;\r\n var _inputGroup;\r\n var _query = '';\r\n\r\n var _hasResult = false;\r\n var _timeout = false;\r\n var _isProcessing = false;\r\n var _requestTimeout = 200; // ajax request fire timeout in milliseconds\r\n var _spinnerClass = 'spinner spinner-sm spinner-primary';\r\n var _resultClass = 'quick-search-has-result';\r\n var _minLength = 2;\r\n\r\n // Private functions\r\n var _showProgress = function() {\r\n _isProcessing = true;\r\n KTUtil.addClass(_closeIconContainer, _spinnerClass);\r\n\r\n if (_closeIcon) {\r\n KTUtil.hide(_closeIcon);\r\n }\r\n }\r\n\r\n var _hideProgress = function() {\r\n _isProcessing = false;\r\n KTUtil.removeClass(_closeIconContainer, _spinnerClass);\r\n\r\n if (_closeIcon) {\r\n if (_input.value.length < _minLength) {\r\n KTUtil.hide(_closeIcon);\r\n } else {\r\n KTUtil.show(_closeIcon, 'flex');\r\n }\r\n }\r\n }\r\n\r\n var _showDropdown = function() {\r\n if (_resultDropdownToggle && !KTUtil.hasClass(_resultDropdown, 'show')) {\r\n $(_resultDropdownToggle).dropdown('toggle');\r\n $(_resultDropdownToggle).dropdown('update');\r\n }\r\n }\r\n\r\n var _hideDropdown = function() {\r\n if (_resultDropdownToggle && KTUtil.hasClass(_resultDropdown, 'show')) {\r\n $(_resultDropdownToggle).dropdown('toggle');\r\n }\r\n }\r\n\r\n var _processSearch = function() {\r\n if (_hasResult && _query === _input.value) {\r\n _hideProgress();\r\n KTUtil.addClass(_target, _resultClass);\r\n _showDropdown();\r\n KTUtil.scrollUpdate(_resultWrapper);\r\n\r\n return;\r\n }\r\n\r\n _query = _input.value;\r\n\r\n KTUtil.removeClass(_target, _resultClass);\r\n _showProgress();\r\n _hideDropdown();\r\n\r\n setTimeout(function() {\r\n $.ajax({\r\n url: HOST_URL + '/api/quick_search.php',\r\n data: {\r\n query: _query\r\n },\r\n dataType: 'html',\r\n success: function(res) {\r\n _hasResult = true;\r\n _hideProgress();\r\n KTUtil.addClass(_target, _resultClass);\r\n KTUtil.setHTML(_resultWrapper, res);\r\n _showDropdown();\r\n KTUtil.scrollUpdate(_resultWrapper);\r\n },\r\n error: function(res) {\r\n _hasResult = false;\r\n _hideProgress();\r\n KTUtil.addClass(_target, _resultClass);\r\n KTUtil.setHTML(_resultWrapper, 'Connection error. Please try again later..');\r\n _showDropdown();\r\n KTUtil.scrollUpdate(_resultWrapper);\r\n }\r\n });\r\n }, 1000);\r\n }\r\n\r\n var _handleCancel = function(e) {\r\n _input.value = '';\r\n _query = '';\r\n _hasResult = false;\r\n KTUtil.hide(_closeIcon);\r\n KTUtil.removeClass(_target, _resultClass);\r\n _hideDropdown();\r\n }\r\n\r\n var _handleSearch = function() {\r\n if (_input.value.length < _minLength) {\r\n _hideProgress();\r\n _hideDropdown();\r\n\r\n return;\r\n }\r\n\r\n if (_isProcessing == true) {\r\n return;\r\n }\r\n\r\n if (_timeout) {\r\n clearTimeout(_timeout);\r\n }\r\n\r\n _timeout = setTimeout(function() {\r\n _processSearch();\r\n }, _requestTimeout);\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _target = KTUtil.getById(id);\r\n\r\n if (!_target) {\r\n return;\r\n }\r\n\r\n _form = KTUtil.find(_target, '.quick-search-form');\r\n _input = KTUtil.find(_target, '.form-control');\r\n _closeIcon = KTUtil.find(_target, '.quick-search-close');\r\n _resultWrapper = KTUtil.find(_target, '.quick-search-wrapper');\r\n _resultDropdown = KTUtil.find(_target, '.dropdown-menu');\r\n _resultDropdownToggle = KTUtil.find(_target, '[data-toggle=\"dropdown\"]');\r\n _inputGroup = KTUtil.find(_target, '.input-group');\r\n _closeIconContainer = KTUtil.find(_target, '.input-group .input-group-append');\r\n\r\n // Attach input keyup handler\r\n KTUtil.addEvent(_input, 'keyup', _handleSearch);\r\n KTUtil.addEvent(_input, 'focus', _handleSearch);\r\n\r\n // Prevent enter click\r\n _form.onkeypress = function(e) {\r\n var key = e.charCode || e.keyCode || 0;\r\n if (key == 13) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n KTUtil.addEvent(_closeIcon, 'click', _handleCancel);\r\n }\r\n };\r\n};\r\n\r\n\r\n\r\nvar KTLayoutSearchInline = KTLayoutSearch;\r\nvar KTLayoutSearchOffcanvas = KTLayoutSearch;\r\n\nexport default KTLayoutSearch;","// Keenthemes plugins\r\nimport KTUtil from \"@/assets/js/components/util.js\";\r\nwindow.KTUtil = KTUtil;\r\n\r\nimport KTCard from \"@/assets/js/components/card.js\";\r\nwindow.KTCard = KTCard;\r\n\r\nimport KTCookie from \"@/assets/js/components/cookie.js\";\r\nwindow.KTCookie = KTCookie;\r\n\r\nimport KTDialog from \"@/assets/js/components/dialog.js\";\r\nwindow.KTDialog = KTDialog;\r\n\r\nimport KTHeader from \"@/assets/js/components/header.js\";\r\nwindow.KTHeader = KTHeader;\r\n\r\nimport KTImageInput from \"@/assets/js/components/image-input.js\";\r\nwindow.KTImageInput = KTImageInput;\r\n\r\nimport KTMenu from \"@/assets/js/components/menu.js\";\r\nwindow.KTMenu = KTMenu;\r\n\r\nimport KTOffcanvas from \"@/assets/js/components/offcanvas.js\";\r\nwindow.KTOffcanvas = KTOffcanvas;\r\n\r\nimport KTScrolltop from \"@/assets/js/components/scrolltop.js\";\r\nwindow.KTScrolltop = KTScrolltop;\r\n\r\nimport KTToggle from \"@/assets/js/components/toggle.js\";\r\nwindow.KTToggle = KTToggle;\r\n\r\nimport KTWizard from \"@/assets/js/components/wizard.js\";\r\nwindow.KTWizard = KTWizard;\r\n\r\n// Metronic layout base js\r\nimport KTLayoutAside from \"@/assets/js/layout/base/aside.js\";\r\nwindow.KTLayoutAside = KTLayoutAside;\r\n\r\nimport KTLayoutAsideMenu from \"@/assets/js/layout/base/aside-menu.js\";\r\nwindow.KTLayoutAsideMenu = KTLayoutAsideMenu;\r\n\r\nimport KTLayoutAsideToggle from \"@/assets/js/layout/base/aside-toggle.js\";\r\nwindow.KTLayoutAsideToggle = KTLayoutAsideToggle;\r\n\r\nimport KTLayoutBrand from \"@/assets/js/layout/base/brand.js\";\r\nwindow.KTLayoutBrand = KTLayoutBrand;\r\n\r\nimport KTLayoutContent from \"@/assets/js/layout/base/content.js\";\r\nwindow.KTLayoutContent = KTLayoutContent;\r\n\r\nimport KTLayoutFooter from \"@/assets/js/layout/base/footer.js\";\r\nwindow.KTLayoutFooter = KTLayoutFooter;\r\n\r\nimport KTLayoutHeader from \"@/assets/js/layout/base/header.js\";\r\nwindow.KTLayoutHeader = KTLayoutHeader;\r\n\r\nimport KTLayoutHeaderMenu from \"@/assets/js/layout/base/header-menu.js\";\r\nwindow.KTLayoutHeaderMenu = KTLayoutHeaderMenu;\r\n\r\nimport KTLayoutHeaderTopbar from \"@/assets/js/layout/base/header-topbar.js\";\r\nwindow.KTLayoutHeaderTopbar = KTLayoutHeaderTopbar;\r\n\r\nimport KTLayoutStickyCard from \"@/assets/js/layout/base/sticky-card.js\";\r\nwindow.KTLayoutStickyCard = KTLayoutStickyCard;\r\n\r\nimport KTLayoutStretchedCard from \"@/assets/js/layout/base/stretched-card.js\";\r\nwindow.KTLayoutStretchedCard = KTLayoutStretchedCard;\r\n\r\nimport KTLayoutSubheader from \"@/assets/js/layout/base/subheader.js\";\r\nwindow.KTLayoutSubheader = KTLayoutSubheader;\r\n\r\n// Metronic layout extended js\r\nimport KTLayoutChat from \"@/assets/js/layout/extended/chat.js\";\r\nwindow.KTLayoutChat = KTLayoutChat;\r\n\r\nimport KTLayoutExamples from \"@/assets/js/layout/extended/examples.js\";\r\nwindow.KTLayoutExamples = KTLayoutExamples;\r\n\r\nimport KTLayoutQuickActions from \"@/assets/js/layout/extended/quick-actions.js\";\r\nwindow.KTLayoutQuickActions = KTLayoutQuickActions;\r\n\r\nimport KTLayoutQuickCartPanel from \"@/assets/js/layout/extended/quick-cart.js\";\r\nwindow.KTLayoutQuickCartPanel = KTLayoutQuickCartPanel;\r\n\r\nimport KTLayoutQuickNotifications from \"@/assets/js/layout/extended/quick-notifications.js\";\r\nwindow.KTLayoutQuickNotifications = KTLayoutQuickNotifications;\r\n\r\nimport KTLayoutQuickPanel from \"@/assets/js/layout/extended/quick-panel.js\";\r\nwindow.KTLayoutQuickPanel = KTLayoutQuickPanel;\r\n\r\nimport KTLayoutQuickSearch from \"@/assets/js/layout/extended/quick-search.js\";\r\nwindow.KTLayoutQuickSearch = KTLayoutQuickSearch;\r\n\r\nimport KTLayoutQuickUser from \"@/assets/js/layout/extended/quick-user.js\";\r\nwindow.KTLayoutQuickUser = KTLayoutQuickUser;\r\n\r\nimport KTLayoutScrolltop from \"@/assets/js/layout/extended/scrolltop.js\";\r\nwindow.KTLayoutScrolltop = KTLayoutScrolltop;\r\n\r\nimport KTLayoutSearch from \"@/assets/js/layout/extended/search.js\";\r\nwindow.KTLayoutSearch = KTLayoutSearch;\r\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport store from \"./core/services/store\";\nimport ApiService from \"./core/services/api.service\";\n// import ApiServiceAuth from \"./core/services/api.service.auth\";\n// import ApiServiceDlro from \"./core/services/api.service.dlro\";\n//import MockService from \"./core/mock/mock.service\";\nimport { VERIFY_AUTH } from \"./core/services/store/auth.module\";\nimport { RESET_LAYOUT_CONFIG } from \"@/core/services/store/config.module\";\n// Global 3rd party plugins\nimport \"popper.js\";\nimport \"tooltip.js\";\nimport PerfectScrollbar from \"perfect-scrollbar\";\nimport ClipboardJS from \"clipboard\";\n// Vue 3rd party plugins\nimport i18n from \"./core/plugins/vue-i18n\";\nimport vuetify from \"./core/plugins/vuetify\";\nimport \"./core/plugins/portal-vue\";\nimport \"./core/plugins/bootstrap-vue\";\nimport \"./core/plugins/perfect-scrollbar\";\nimport \"./core/plugins/highlight-js\";\nimport \"./core/plugins/inline-svg\";\nimport \"./core/plugins/apexcharts\";\nimport \"./core/plugins/metronic\";\nimport \"@mdi/font/css/materialdesignicons.css\";\nimport VueGtag from \"vue-gtag\";\n\nVue.config.productionTip = false;\n\nwindow.PerfectScrollbar = PerfectScrollbar;\nwindow.ClipboardJS = ClipboardJS;\n\n// API service init\nApiService.init();\n\n// Remove this to disable mock API\n//MockService.init();\n\nrouter.beforeEach((to, from, next) => {\n store.dispatch(RESET_LAYOUT_CONFIG);\n //const {authorize} = to.meta;\n let requiredAuth = [];\n for (let iMatch = 0; iMatch < to.matched.length; iMatch++) {\n if (\n to.matched[iMatch].meta &&\n to.matched[iMatch].meta.authorize &&\n to.matched[iMatch].meta.authorize.length > 0\n )\n requiredAuth = requiredAuth.concat(to.matched[iMatch].meta.authorize);\n }\n requiredAuth = [...new Set(requiredAuth)];\n //console.log(\"requiredAuth:\", requiredAuth);\n if (requiredAuth && requiredAuth.length > 0) {\n Promise.all([store.dispatch(VERIFY_AUTH)]).then(\n data => {\n if (\n data &&\n data.length > 0 &&\n data[0] &&\n data[0].role &&\n data[0].role.length > 0\n ) {\n let userRoles = data[0].role;\n for (\n let iRequired = 0;\n iRequired < requiredAuth.length;\n iRequired++\n ) {\n let isInRole = userRoles.includes(requiredAuth[iRequired]);\n if (isInRole === false) return next({ name: \"401\" });\n }\n next();\n } else return next({ name: \"login\" });\n },\n () => {\n // console.error(\"verify.rejected.reason:\", reason);\n }\n );\n } else {\n next();\n }\n\n // Scroll page to top on every route change\n setTimeout(() => {\n window.scrollTo(0, 0);\n }, 100);\n});\n\n//Refer to https://developers.google.com/gtagjs/reference/event\nVue.use(\n VueGtag,\n {\n config: { id: \"UA-34831333-3\" }\n },\n router\n);\n\nnew Vue({\n router,\n store,\n i18n,\n vuetify,\n render: h => h(App)\n}).$mount(\"#app\");\n","import objectPath from \"object-path\";\r\nimport merge from \"deepmerge\";\r\nimport config from \"@/core/config/layout.config.json\";\r\n\r\n// action types\r\nexport const SET_LAYOUT_CONFIG = \"setLayoutConfig\";\r\nexport const RESET_LAYOUT_CONFIG = \"resetLayoutConfig\";\r\nexport const OVERRIDE_LAYOUT_CONFIG = \"overrideLayoutConfig\";\r\nexport const OVERRIDE_PAGE_LAYOUT_CONFIG = \"overridePageLayoutConfig\";\r\n\r\n// mutation types\r\n\r\nexport default {\r\n state: {\r\n config: config,\r\n initial: config\r\n },\r\n getters: {\r\n /**\r\n * Get config from layout config\r\n * @param state\r\n * @returns {function(path, defaultValue): *}\r\n */\r\n layoutConfig: state => (path, defaultValue) => {\r\n return objectPath.get(state.config, path, defaultValue);\r\n }\r\n },\r\n actions: {\r\n /**\r\n * Set and replace the whole config\r\n * @param state\r\n * @param payload\r\n */\r\n [SET_LAYOUT_CONFIG](state, payload) {\r\n state.commit(SET_LAYOUT_CONFIG, payload);\r\n },\r\n\r\n /**\r\n * Reset the config at the initial state\r\n * @param state\r\n */\r\n [RESET_LAYOUT_CONFIG](state) {\r\n state.commit(RESET_LAYOUT_CONFIG);\r\n },\r\n\r\n /**\r\n * Reset the config using saved config in the cache by the layout builder\r\n * @param state\r\n */\r\n [OVERRIDE_LAYOUT_CONFIG](state) {\r\n state.commit(OVERRIDE_LAYOUT_CONFIG);\r\n },\r\n\r\n /**\r\n * Override config by page level\r\n * @param state\r\n * @param payload\r\n */\r\n [OVERRIDE_PAGE_LAYOUT_CONFIG](state, payload) {\r\n state.commit(OVERRIDE_PAGE_LAYOUT_CONFIG, payload);\r\n }\r\n },\r\n mutations: {\r\n [SET_LAYOUT_CONFIG](state, payload) {\r\n state.config = payload;\r\n },\r\n [RESET_LAYOUT_CONFIG](state) {\r\n state.config = Object.assign({}, state.initial);\r\n },\r\n [OVERRIDE_LAYOUT_CONFIG](state) {\r\n state.config = state.initial = Object.assign(\r\n {},\r\n state.initial,\r\n JSON.parse(localStorage.getItem(\"config\"))\r\n );\r\n },\r\n [OVERRIDE_PAGE_LAYOUT_CONFIG](state, payload) {\r\n state.config = merge(state.config, payload);\r\n }\r\n }\r\n};\r\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTHeader = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (element === undefined) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n offset: {\r\n desktop: true,\r\n tabletAndMobile: true\r\n },\r\n releseOnReverse: {\r\n desktop: false,\r\n tabletAndMobile: false\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {KTHeader}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('header')) {\r\n the = KTUtil.data(element).get('header');\r\n } else {\r\n // reset header\r\n Plugin.init(options);\r\n\r\n // build header\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('header', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles subheader click toggle\r\n * @returns {KTHeader}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n },\r\n\r\n /**\r\n * Reset header\r\n * @returns {KTHeader}\r\n */\r\n build: function() {\r\n var eventTriggerState = true;\r\n var lastScrollTop = 0;\r\n\r\n window.addEventListener('scroll', function() {\r\n var offset = 0, st, attrName;\r\n\r\n if (KTUtil.isBreakpointDown('lg') && the.options.offset.tabletAndMobile === false) {\r\n return;\r\n }\r\n\r\n if (KTUtil.isBreakpointUp('lg') && the.options.offset.desktop === false) {\r\n return;\r\n }\r\n\r\n if (KTUtil.isBreakpointUp('lg')) {\r\n offset = the.options.offset.desktop;\r\n } else if (KTUtil.isBreakpointDown('lg')) {\r\n offset = the.options.offset.tabletAndMobile;\r\n }\r\n\r\n st = KTUtil.getScrollTop();\r\n\r\n if (\r\n (KTUtil.isBreakpointDown('lg') && the.options.releseOnReverse.tabletAndMobile) ||\r\n (KTUtil.isBreakpointUp('lg') && the.options.releseOnReverse.desktop)\r\n ) {\r\n if (st > offset && lastScrollTop < st) { // down scroll mode\r\n if (body.hasAttribute('data-header-scroll') === false) {\r\n body.setAttribute('data-header-scroll', 'on');\r\n }\r\n\r\n if (eventTriggerState) {\r\n Plugin.eventTrigger('scrollOn', the);\r\n eventTriggerState = false;\r\n }\r\n } else { // back scroll mode\r\n if (body.hasAttribute('data-header-scroll') === true) {\r\n body.removeAttribute('data-header-scroll');\r\n }\r\n\r\n if (eventTriggerState == false) {\r\n Plugin.eventTrigger('scrollOff', the);\r\n eventTriggerState = true;\r\n }\r\n }\r\n\r\n lastScrollTop = st;\r\n } else {\r\n if (st > offset) { // down scroll mode\r\n if (body.hasAttribute('data-header-scroll') === false) {\r\n body.setAttribute('data-header-scroll', 'on');\r\n }\r\n\r\n if (eventTriggerState) {\r\n Plugin.eventTrigger('scrollOn', the);\r\n eventTriggerState = false;\r\n }\r\n } else { // back scroll mode\r\n if (body.hasAttribute('data-header-scroll') === true) {\r\n body.removeAttribute('data-header-scroll');\r\n }\r\n\r\n if (eventTriggerState == false) {\r\n Plugin.eventTrigger('scrollOff', the);\r\n eventTriggerState = true;\r\n }\r\n }\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, args) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the, args);\r\n }\r\n } else {\r\n return event.handler.call(this, the, args);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Register event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTHeader;\r\n}\r\n\nexport default KTHeader;","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\nimport auth from \"./auth.module\";\r\nimport htmlClass from \"./htmlclass.module\";\r\nimport config from \"./config.module\";\r\nimport breadcrumbs from \"./breadcrumbs.module\";\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n modules: {\r\n auth,\r\n htmlClass,\r\n config,\r\n breadcrumbs\r\n }\r\n});\r\n","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTMenu = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n // scrollable area with Perfect Scroll\r\n scroll: {\r\n rememberPosition: false\r\n },\r\n\r\n // accordion submenu mode\r\n accordion: {\r\n slideSpeed: 200, // accordion toggle slide speed in milliseconds\r\n autoScroll: false, // enable auto scrolling(focus) to the clicked menu item\r\n autoScrollSpeed: 1200,\r\n expandAll: true // allow having multiple expanded accordions in the menu\r\n },\r\n\r\n // dropdown submenu mode\r\n dropdown: {\r\n timeout: 500 // timeout in milliseconds to show and hide the hoverable submenu dropdown\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {KTMenu}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('menu')) {\r\n the = KTUtil.data(element).get('menu');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n the.eventHandlers = {};\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n the.uid = KTUtil.getUniqueID();\r\n },\r\n\r\n update: function(options) {\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n the.eventHandlers = {};\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n },\r\n\r\n reload: function() {\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n // reset submenu props\r\n Plugin.resetSubmenuProps();\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n build: function() {\r\n // General accordion submenu toggle\r\n the.eventHandlers['event_1'] = KTUtil.on( element, '.menu-toggle', 'click', Plugin.handleSubmenuAccordion);\r\n\r\n // Dropdown mode(hoverable)\r\n if (Plugin.getSubmenuMode() === 'dropdown' || Plugin.isConditionalSubmenuDropdown()) {\r\n // dropdown submenu - hover toggle\r\n the.eventHandlers['event_2'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseover', Plugin.handleSubmenuDrodownHoverEnter);\r\n the.eventHandlers['event_3'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseout', Plugin.handleSubmenuDrodownHoverExit);\r\n\r\n // dropdown submenu - click toggle\r\n the.eventHandlers['event_4'] = KTUtil.on( element, '[data-menu-toggle=\"click\"] > .menu-toggle, [data-menu-toggle=\"click\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownClick);\r\n the.eventHandlers['event_5'] = KTUtil.on( element, '[data-menu-toggle=\"tab\"] > .menu-toggle, [data-menu-toggle=\"tab\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownTabClick);\r\n }\r\n\r\n // Handle general link click\r\n the.eventHandlers['event_6'] = KTUtil.on(element, '.menu-item > .menu-link:not(.menu-toggle):not(.menu-link-toggle-skip)', 'click', Plugin.handleLinkClick);\r\n\r\n // Init scrollable menu\r\n if (the.options.scroll && the.options.scroll.height) {\r\n Plugin.scrollInit();\r\n }\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n reset: function() {\r\n KTUtil.off( element, 'click', the.eventHandlers['event_1']);\r\n\r\n // dropdown submenu - hover toggle\r\n KTUtil.off( element, 'mouseover', the.eventHandlers['event_2']);\r\n KTUtil.off( element, 'mouseout', the.eventHandlers['event_3']);\r\n\r\n // dropdown submenu - click toggle\r\n KTUtil.off( element, 'click', the.eventHandlers['event_4']);\r\n KTUtil.off( element, 'click', the.eventHandlers['event_5']);\r\n\r\n // handle link click\r\n KTUtil.off(element, 'click', the.eventHandlers['event_6']);\r\n },\r\n\r\n /**\r\n * Init scroll menu\r\n *\r\n */\r\n scrollInit: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollDestroy(element, true);\r\n KTUtil.scrollInit(element, {mobileNativeScroll: true, windowScroll: false, resetHeightOnDestroy: true, handleWindowResize: true, height: the.options.scroll.height, rememberPosition: the.options.scroll.rememberPosition});\r\n } else {\r\n KTUtil.scrollDestroy(element, true);\r\n }\r\n },\r\n\r\n /**\r\n * Update scroll menu\r\n */\r\n scrollUpdate: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollUpdate(element);\r\n }\r\n },\r\n\r\n /**\r\n * Scroll top\r\n */\r\n scrollTop: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollTop(element);\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n getSubmenuMode: function(el) {\r\n if ( KTUtil.isBreakpointUp('lg') ) {\r\n if (el && KTUtil.hasAttr(el, 'data-menu-toggle') && KTUtil.attr(el, 'data-menu-toggle') == 'hover') {\r\n return 'dropdown';\r\n }\r\n\r\n if ( KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n if ( KTUtil.hasClasses(body, the.options.submenu.desktop.state.body) ) {\r\n return the.options.submenu.desktop.state.mode;\r\n } else {\r\n return the.options.submenu.desktop.default;\r\n }\r\n } else if ( KTUtil.isset(the.options.submenu, 'desktop') ) {\r\n return the.options.submenu.desktop;\r\n }\r\n } else if ( KTUtil.isBreakpointUp('md') && KTUtil.isBreakpointDown('lg') && KTUtil.isset(the.options.submenu, 'tablet') ) {\r\n return the.options.submenu.tablet;\r\n } else if ( KTUtil.isBreakpointDown('md') && KTUtil.isset(the.options.submenu, 'mobile') ) {\r\n return the.options.submenu.mobile;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n isConditionalSubmenuDropdown: function() {\r\n if ( KTUtil.isBreakpointUp('lg') && KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n\r\n /**\r\n * Reset submenu attributes\r\n * @returns {KTMenu}\r\n */\r\n resetSubmenuProps: function(e) {\r\n var submenus = KTUtil.findAll(element, '.menu-submenu');\r\n if ( submenus ) {\r\n for (var i = 0, len = submenus.length; i < len; i++) {\r\n var submenu = submenus[0];\r\n\r\n KTUtil.css(submenu, 'display', '');\r\n KTUtil.css(submenu, 'overflow', '');\r\n\r\n if (submenu.hasAttribute('data-hor-direction')) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-left');\r\n KTUtil.removeClass(submenu, 'menu-submenu-right');\r\n KTUtil.addClass(submenu, submenu.getAttribute('data-hor-direction'));\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverEnter: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n item.removeAttribute('data-hover');\r\n clearTimeout( item.getAttribute('data-timeout') );\r\n item.removeAttribute('data-timeout');\r\n }\r\n\r\n Plugin.showSubmenuDropdown(item);\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverExit: function(e) {\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n var time = the.options.dropdown.timeout;\r\n\r\n var timeout = setTimeout(function() {\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n }, time);\r\n\r\n item.setAttribute('data-hover', '1');\r\n item.setAttribute('data-timeout', timeout);\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClick: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( item.getAttribute('data-menu-submenu-mode') == 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( KTUtil.hasClass(item, 'menu-item-hover') === false ) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n } else {\r\n KTUtil.removeClass(item, 'menu-item-open-dropdown' );\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles tab click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownTabClick: function(e) {\r\n if (Plugin.getSubmenuMode(this) === 'accordion') {\r\n return;\r\n }\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if (item.getAttribute('data-menu-submenu-mode') == 'accordion') {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(item, 'menu-item-hover') == false) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles link click\r\n * @returns {KTMenu}\r\n */\r\n handleLinkClick: function(e) {\r\n var submenu = this.closest('.menu-item.menu-item-submenu');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('linkClick', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( submenu && Plugin.getSubmenuMode(submenu) === 'dropdown' ) {\r\n Plugin.hideSubmenuDropdowns();\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu dropdown close on link click\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClose: function(e, el) {\r\n // exit if its not submenu dropdown mode\r\n if (Plugin.getSubmenuMode(el) === 'accordion') {\r\n return;\r\n }\r\n\r\n var shown = element.querySelectorAll('.menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)');\r\n\r\n // check if currently clicked link's parent item ha\r\n if (shown.length > 0 && KTUtil.hasClass(el, 'menu-toggle') === false && el.querySelectorAll('.menu-toggle').length === 0) {\r\n // close opened dropdown menus\r\n for (var i = 0, len = shown.length; i < len; i++) {\r\n Plugin.hideSubmenuDropdown(shown[0], true);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * helper functions\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuAccordion: function(e, el) {\r\n var query;\r\n var item = el ? el : this;\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(el) === 'dropdown' && (query = item.closest('.menu-item') ) ) {\r\n if (query.getAttribute('data-menu-submenu-mode') != 'accordion' ) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n var li = item.closest('.menu-item');\r\n var submenu = KTUtil.child(li, '.menu-submenu, .menu-inner');\r\n\r\n if (KTUtil.hasClass(item.closest('.menu-item'), 'menu-item-open-always')) {\r\n return;\r\n }\r\n\r\n if ( li && submenu ) {\r\n e.preventDefault();\r\n var speed = the.options.accordion.slideSpeed;\r\n var hasClosables = false;\r\n\r\n if ( KTUtil.hasClass(li, 'menu-item-open') === false ) {\r\n // hide other accordions\r\n if ( the.options.accordion.expandAll === false ) {\r\n var subnav = item.closest('.menu-nav, .menu-subnav');\r\n var closables = KTUtil.children(subnav, '.menu-item.menu-item-open.menu-item-submenu:not(.menu-item-here):not(.menu-item-open-always)');\r\n\r\n if ( subnav && closables ) {\r\n for (var i = 0, len = closables.length; i < len; i++) {\r\n var el_ = closables[0];\r\n var submenu_ = KTUtil.child(el_, '.menu-submenu');\r\n if ( submenu_ ) {\r\n KTUtil.slideUp(submenu_, speed, function() {\r\n Plugin.scrollUpdate();\r\n KTUtil.removeClass(el_, 'menu-item-open');\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n KTUtil.slideDown(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.scrollUpdate();\r\n\r\n Plugin.eventTrigger('submenuToggle', submenu, e);\r\n });\r\n\r\n KTUtil.addClass(li, 'menu-item-open');\r\n\r\n } else {\r\n KTUtil.slideUp(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.eventTrigger('submenuToggle', submenu, e);\r\n });\r\n\r\n KTUtil.removeClass(li, 'menu-item-open');\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * scroll to item function\r\n * @returns {KTMenu}\r\n */\r\n scrollToItem: function(item) {\r\n // handle auto scroll for accordion submenus\r\n if ( KTUtil.isBreakpointUp('lg') && the.options.accordion.autoScroll && element.getAttribute('data-menu-scroll') !== '1' ) {\r\n KTUtil.scrollTo(item, the.options.accordion.autoScrollSpeed);\r\n }\r\n },\r\n\r\n /**\r\n * Hide submenu dropdown\r\n * @returns {KTMenu}\r\n */\r\n hideSubmenuDropdown: function(item, classAlso) {\r\n // remove submenu activation class\r\n if ( classAlso ) {\r\n KTUtil.removeClass(item, 'menu-item-hover');\r\n KTUtil.removeClass(item, 'menu-item-active-tab');\r\n }\r\n\r\n // clear timeout\r\n item.removeAttribute('data-hover');\r\n\r\n if ( item.getAttribute('data-menu-toggle-class') ) {\r\n KTUtil.removeClass(body, item.getAttribute('data-menu-toggle-class'));\r\n }\r\n\r\n var timeout = item.getAttribute('data-timeout');\r\n item.removeAttribute('data-timeout');\r\n clearTimeout(timeout);\r\n },\r\n\r\n /**\r\n * Hide submenu dropdowns\r\n * @returns {KTMenu}\r\n */\r\n hideSubmenuDropdowns: function() {\r\n var items;\r\n if ( items = element.querySelectorAll('.menu-item-submenu.menu-item-hover:not(.menu-item-tabs):not([data-menu-toggle=\"tab\"])') ) {\r\n for (var j = 0, cnt = items.length; j < cnt; j++) {\r\n Plugin.hideSubmenuDropdown(items[j], true);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * helper functions\r\n * @returns {KTMenu}\r\n */\r\n showSubmenuDropdown: function(item) {\r\n // close active submenus\r\n var list = element.querySelectorAll('.menu-item-submenu.menu-item-hover, .menu-item-submenu.menu-item-active-tab');\r\n\r\n if ( list ) {\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n var el = list[i];\r\n if ( item !== el && el.contains(item) === false && item.contains(el) === false ) {\r\n Plugin.hideSubmenuDropdown(el, true);\r\n }\r\n }\r\n }\r\n\r\n // add submenu activation class\r\n KTUtil.addClass(item, 'menu-item-hover');\r\n\r\n // Change the alignment of submenu is offscreen.\r\n var submenu = KTUtil.find(item, '.menu-submenu');\r\n\r\n if (submenu && submenu.hasAttribute('data-hor-direction') === false) {\r\n if (KTUtil.hasClass(submenu, 'menu-submenu-left')) {\r\n submenu.setAttribute('data-hor-direction', 'menu-submenu-left');\r\n } else if (KTUtil.hasClass(submenu, 'menu-submenu-right')) {\r\n submenu.setAttribute('data-hor-direction', 'menu-submenu-right');\r\n }\r\n }\r\n\r\n if ( submenu && KTUtil.isOffscreen(submenu, 'left', 15) === true ) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-left');\r\n KTUtil.addClass(submenu, 'menu-submenu-right');\r\n } else if ( submenu && KTUtil.isOffscreen(submenu, 'right', 15) === true ) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-right');\r\n KTUtil.addClass(submenu, 'menu-submenu-left');\r\n }\r\n\r\n if ( item.getAttribute('data-menu-toggle-class') ) {\r\n KTUtil.addClass(body, item.getAttribute('data-menu-toggle-class'));\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu slide toggle\r\n * @returns {KTMenu}\r\n */\r\n createSubmenuDropdownClickDropoff: function(el) {\r\n var query;\r\n var zIndex = (query = KTUtil.child(el, '.menu-submenu') ? KTUtil.css(query, 'z-index') : 0) - 1;\r\n\r\n var dropoff = document.createElement('');\r\n\r\n body.appendChild(dropoff);\r\n\r\n KTUtil.addEvent(dropoff, 'click', function(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n KTUtil.remove(this);\r\n Plugin.hideSubmenuDropdown(el, true);\r\n });\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n pauseDropdownHover: function(time) {\r\n var date = new Date();\r\n\r\n the.pauseDropdownHoverTime = date.getTime() + time;\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n resumeDropdownHover: function() {\r\n var date = new Date();\r\n\r\n return (date.getTime() > the.pauseDropdownHoverTime ? true : false);\r\n },\r\n\r\n /**\r\n * Reset menu's current active item\r\n * @returns {KTMenu}\r\n */\r\n resetActiveItem: function(item) {\r\n var list;\r\n var parents;\r\n\r\n list = element.querySelectorAll('.menu-item-active');\r\n\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n var el = list[0];\r\n KTUtil.removeClass(el, 'menu-item-active');\r\n KTUtil.hide( KTUtil.child(el, '.menu-submenu') );\r\n parents = KTUtil.parents(el, '.menu-item-submenu') || [];\r\n\r\n for (var i_ = 0, len_ = parents.length; i_ < len_; i_++) {\r\n var el_ = parents[i];\r\n KTUtil.removeClass(el_, 'menu-item-open');\r\n KTUtil.hide( KTUtil.child(el_, '.menu-submenu') );\r\n }\r\n }\r\n\r\n // close open submenus\r\n if ( the.options.accordion.expandAll === false ) {\r\n if ( list = element.querySelectorAll('.menu-item-open') ) {\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n KTUtil.removeClass(parents[0], 'menu-item-open');\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Sets menu's active item\r\n * @returns {KTMenu}\r\n */\r\n setActiveItem: function(item) {\r\n // reset current active item\r\n Plugin.resetActiveItem();\r\n\r\n var parents = KTUtil.parents(item, '.menu-item-submenu') || [];\r\n for (var i = 0, len = parents.length; i < len; i++) {\r\n KTUtil.addClass(parents[i], 'menu-item-open');\r\n }\r\n\r\n KTUtil.addClass(item, 'menu-item-active');\r\n },\r\n\r\n /**\r\n * Returns page breadcrumbs for the menu's active item\r\n * @returns {KTMenu}\r\n */\r\n getBreadcrumbs: function(item) {\r\n var query;\r\n var breadcrumbs = [];\r\n var link = KTUtil.child(item, '.menu-link');\r\n\r\n breadcrumbs.push({\r\n text: (query = KTUtil.child(link, '.menu-text') ? query.innerHTML : ''),\r\n title: link.getAttribute('title'),\r\n href: link.getAttribute('href')\r\n });\r\n\r\n var parents = KTUtil.parents(item, '.menu-item-submenu');\r\n for (var i = 0, len = parents.length; i < len; i++) {\r\n var submenuLink = KTUtil.child(parents[i], '.menu-link');\r\n\r\n breadcrumbs.push({\r\n text: (query = KTUtil.child(submenuLink, '.menu-text') ? query.innerHTML : ''),\r\n title: submenuLink.getAttribute('title'),\r\n href: submenuLink.getAttribute('href')\r\n });\r\n }\r\n\r\n return breadcrumbs.reverse();\r\n },\r\n\r\n /**\r\n * Returns page title for the menu's active item\r\n * @returns {KTMenu}\r\n */\r\n getPageTitle: function(item) {\r\n var query;\r\n\r\n return (query = KTUtil.child(item, '.menu-text') ? query.innerHTML : '');\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, target, e) {\r\n for (var i = 0; i < the.events.length; i++ ) {\r\n var event = the.events[i];\r\n if ( event.name == name ) {\r\n if ( event.one == true ) {\r\n if ( event.fired == false ) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, target, e);\r\n }\r\n } else {\r\n return event.handler.call(this, target, e);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n },\r\n\r\n removeEvent: function(name) {\r\n if (the.events[name]) {\r\n delete the.events[name];\r\n }\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Update scroll\r\n */\r\n the.scrollUpdate = function() {\r\n return Plugin.scrollUpdate();\r\n };\r\n\r\n /**\r\n * Re-init scroll\r\n */\r\n the.scrollReInit = function() {\r\n return Plugin.scrollInit();\r\n };\r\n\r\n /**\r\n * Scroll top\r\n */\r\n the.scrollTop = function() {\r\n return Plugin.scrollTop();\r\n };\r\n\r\n /**\r\n * Set active menu item\r\n */\r\n the.setActiveItem = function(item) {\r\n return Plugin.setActiveItem(item);\r\n };\r\n\r\n the.reload = function() {\r\n return Plugin.reload();\r\n };\r\n\r\n the.update = function(options) {\r\n return Plugin.update(options);\r\n };\r\n\r\n /**\r\n * Set breadcrumb for menu item\r\n */\r\n the.getBreadcrumbs = function(item) {\r\n return Plugin.getBreadcrumbs(item);\r\n };\r\n\r\n /**\r\n * Set page title for menu item\r\n */\r\n the.getPageTitle = function(item) {\r\n return Plugin.getPageTitle(item);\r\n };\r\n\r\n /**\r\n * Get submenu mode\r\n */\r\n the.getSubmenuMode = function(el) {\r\n return Plugin.getSubmenuMode(el);\r\n };\r\n\r\n /**\r\n * Hide dropdown\r\n * @returns {Object}\r\n */\r\n the.hideDropdown = function(item) {\r\n Plugin.hideSubmenuDropdown(item, true);\r\n };\r\n\r\n /**\r\n * Hide dropdowns\r\n * @returns {Object}\r\n */\r\n the.hideDropdowns = function() {\r\n Plugin.hideSubmenuDropdowns();\r\n };\r\n\r\n /**\r\n * Disable menu for given time\r\n * @returns {Object}\r\n */\r\n the.pauseDropdownHover = function(time) {\r\n Plugin.pauseDropdownHover(time);\r\n };\r\n\r\n /**\r\n * Disable menu for given time\r\n * @returns {Object}\r\n */\r\n the.resumeDropdownHover = function() {\r\n return Plugin.resumeDropdownHover();\r\n };\r\n\r\n /**\r\n * Register event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n the.off = function(name) {\r\n return Plugin.removeEvent(name);\r\n };\r\n\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Handle plugin on window resize\r\n KTUtil.addResizeHandler(function() {\r\n if (init) {\r\n the.reload();\r\n }\r\n });\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTMenu;\r\n}\r\n\r\n// Plugin global lazy initialization\r\ndocument.addEventListener(\"click\", function (e) {\r\n var body = KTUtil.getByTagName('body')[0];\r\n var query;\r\n if ( query = body.querySelectorAll('.menu-nav .menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)[data-menu-toggle=\"click\"]') ) {\r\n for (var i = 0, len = query.length; i < len; i++) {\r\n var element = query[i].closest('.menu-nav').parentNode;\r\n\r\n if ( element ) {\r\n var the = KTUtil.data(element).get('menu');\r\n\r\n if ( !the ) {\r\n break;\r\n }\r\n\r\n if ( !the || the.getSubmenuMode() !== 'dropdown' ) {\r\n break;\r\n }\r\n\r\n if ( e.target !== element && element.contains(e.target) === false ) {\r\n the.hideDropdowns();\r\n }\r\n }\r\n }\r\n }\r\n});\r\n\nexport default KTMenu;","// action types\r\nexport const ADD_BODY_CLASSNAME = \"addBodyClassName\";\r\nexport const REMOVE_BODY_CLASSNAME = \"removeBodyClassName\";\r\nexport const ADD_CLASSNAME = \"addClassName\";\r\n// mutation types\r\nexport const SET_CLASSNAME_BY_POSITION = \"setClassNameByPosition\";\r\n\r\nexport default {\r\n state: {\r\n classes: {}\r\n },\r\n getters: {\r\n getClasses: state => position => {\r\n if (typeof position !== \"undefined\") {\r\n return state.classes[position];\r\n }\r\n return state.classes;\r\n }\r\n },\r\n actions: {\r\n [ADD_BODY_CLASSNAME](context, className) {\r\n document.body.classList.add(className);\r\n },\r\n [REMOVE_BODY_CLASSNAME](context, className) {\r\n document.body.classList.remove(className);\r\n },\r\n [ADD_CLASSNAME](context, payload) {\r\n context.commit(SET_CLASSNAME_BY_POSITION, payload);\r\n }\r\n },\r\n mutations: {\r\n [SET_CLASSNAME_BY_POSITION](state, payload) {\r\n const { position, className } = payload;\r\n if (!state.classes[position]) {\r\n state.classes[position] = [];\r\n }\r\n state.classes[position].push(className);\r\n }\r\n }\r\n};\r\n","import ApiServiceAuth from \"@/core/services/api.service.auth\";\r\nimport JwtService from \"@/core/services/jwt.service\";\r\nimport qs from \"qs\";\r\nimport VueJwtDecode from \"vue-jwt-decode\";\r\nimport moment from \"moment\";\r\n\r\n// action types\r\nexport const VERIFY_AUTH = \"verifyAuth\";\r\nexport const VERIFY_CLAIM = \"verifyClaim\";\r\nexport const LOGIN = \"login\";\r\nexport const LOGOUT = \"logout\";\r\nexport const REGISTER = \"register\";\r\nexport const REGISTERMESSAGE = \"registermessage\";\r\nexport const UPDATE_USER = \"updateUser\";\r\nexport const SETUP_PROFILE = \"setupProfile\";\r\n\r\n// mutation types\r\nexport const PURGE_AUTH = \"logOut\";\r\nexport const SET_LASTAUTHCHECK = \"setLastAuthCheck\";\r\nexport const SET_AUTH = \"setUser\";\r\nexport const SET_ERROR = \"setError\";\r\nexport const SET_REGISTERMESSAGE = \"setRegisterMessage\";\r\nexport const SET_PROFILE = \"setProfile\";\r\n\r\nconst state = {\r\n token: \"\",\r\n registermessage: \"\",\r\n errors: null,\r\n user: {},\r\n isAuthenticated: !!JwtService.getToken(),\r\n lastAuthCheck: null,\r\n profile : null\r\n};\r\n\r\nconst getters = {\r\n currentUser(state) {\r\n return state.user;\r\n },\r\n currentUserName(state) {\r\n return state.user.unique_name;\r\n },\r\n currentUserRoles(state) {\r\n return state.user.role;\r\n },\r\n isAuthenticated(state) {\r\n return state.isAuthenticated;\r\n },\r\n currentUserProfile(state) {\r\n return state.profile;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async [LOGIN](context, credentials) {\r\n return await new Promise((resolve, reject) => {\r\n let config = {\r\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" }\r\n };\r\n ApiServiceAuth.post(\"token\", qs.stringify(credentials), config)\r\n .then(({ data }) => {\r\n context.commit(SET_AUTH, data.access_token);\r\n resolve(data);\r\n })\r\n .catch(({ response }) => {\r\n var message = \"Unexpected error occurred\";\r\n if (response && response.data && response.data.error_description)\r\n message = response.data.error_description;\r\n context.commit(SET_ERROR, message);\r\n reject(message);\r\n });\r\n });\r\n },\r\n [SETUP_PROFILE](context, payload) {\r\n context.commit(SET_PROFILE, payload)\r\n },\r\n [LOGOUT](context) {\r\n context.commit(PURGE_AUTH);\r\n },\r\n [REGISTER](context, credentials) {\r\n return new Promise((resolve, reject) => {\r\n ApiServiceAuth.post(\"register\", credentials)\r\n .then(({ data }) => {\r\n context.commit(\r\n SET_REGISTERMESSAGE,\r\n \"Your account was successfully created.\"\r\n );\r\n resolve(data);\r\n })\r\n .catch(({ response }) => {\r\n var message = \"Unexpected error occurred\";\r\n if (response && response.data && response.data.Message)\r\n message = response.data.Message;\r\n context.commit(SET_ERROR, message);\r\n reject(response);\r\n });\r\n });\r\n },\r\n [REGISTERMESSAGE](context, message) {\r\n context.commit(\r\n SET_REGISTERMESSAGE,\r\n message ? message : \"Your account was successfully created.\"\r\n );\r\n },\r\n [VERIFY_AUTH](context) {\r\n return new Promise(resolve => {\r\n try {\r\n var token = JwtService.getToken();\r\n if (token) {\r\n if (state.token !== token) {\r\n ApiServiceAuth.post(\"check\")\r\n .then(({ data }) => {\r\n context.commit(SET_AUTH, token);\r\n context.commit(SET_LASTAUTHCHECK, data);\r\n resolve(state.user);\r\n })\r\n .catch(({ response }) => {\r\n var message = \"Unexpected error occurred\";\r\n if (response && response.data && response.data.message)\r\n message = response.data.message;\r\n context.commit(SET_ERROR, message);\r\n context.commit(PURGE_AUTH);\r\n resolve(null);\r\n });\r\n } else {\r\n let jwt = VueJwtDecode.decode(token);\r\n let expiry = moment.unix(jwt.exp).utc();\r\n let nowUtc = moment().utc();\r\n var isValidToken = nowUtc.isBefore(expiry);\r\n if (isValidToken === true) {\r\n context.commit(SET_AUTH, token);\r\n resolve(state.user);\r\n } else {\r\n context.commit(SET_ERROR, \"UNAUTHORIZED\");\r\n context.commit(PURGE_AUTH);\r\n resolve(null);\r\n }\r\n }\r\n } else {\r\n //console.log(\"NULL\");\r\n context.commit(SET_ERROR, \"UNAUTHORIZED\");\r\n context.commit(PURGE_AUTH);\r\n resolve(null);\r\n }\r\n } catch (e) {\r\n context.commit(SET_ERROR, \"UNAUTHORIZED\");\r\n context.commit(PURGE_AUTH);\r\n resolve(null);\r\n }\r\n });\r\n },\r\n [UPDATE_USER](context, payload) {\r\n const { email, username, password, image, bio } = payload;\r\n const user = {\r\n email,\r\n username,\r\n bio,\r\n image\r\n };\r\n if (password) {\r\n user.password = password;\r\n }\r\n\r\n return ApiServiceAuth.put(\"user\", user).then(({ data }) => {\r\n context.commit(SET_AUTH, data);\r\n return data;\r\n });\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [SET_REGISTERMESSAGE](state, message) {\r\n state.registermessage = message;\r\n },\r\n [SET_ERROR](state, error) {\r\n state.errors = error;\r\n },\r\n [SET_LASTAUTHCHECK](state, data) {\r\n state.lastAuthCheck = data;\r\n },\r\n [SET_AUTH](state, token) {\r\n JwtService.saveToken(token);\r\n let jwt = VueJwtDecode.decode(token);\r\n state.token = token;\r\n state.isAuthenticated = true;\r\n state.user = jwt;\r\n state.errors = \"\";\r\n },\r\n [PURGE_AUTH](state) {\r\n state.isAuthenticated = false;\r\n state.user = {\r\n unique_name: \"\",\r\n role: []\r\n };\r\n state.errors = \"\";\r\n state.profile = null;\r\n JwtService.destroyToken();\r\n },\r\n [SET_PROFILE](state, data) {\r\n state.profile = data;\r\n }\r\n};\r\n\r\nexport default {\r\n state,\r\n actions,\r\n mutations,\r\n getters\r\n};\r\n","import Vue from \"vue\";\r\nimport JwtService from \"@/core/services/jwt.service\";\r\n\r\nconst ApiServiceAuth = {\r\n baseUrl: \"/auth/\",\r\n //baseUrl: \"https://auth.thirdchannel.ph/\",\r\n //baseUrl: \"https://easyreceipt-test.thirdchannel.ph/auth/\",\r\n //baseUrl: \"http://localhost:59822/\",\r\n //baseUrl: \"https://omsmpc-test.einvoice.com.ph/auth/\",\r\n //baseUrl: \"https://omsmpc.einvoice.com.ph/auth/\",\r\n\r\n query(resource, params) {\r\n return Vue.axios.get(this.baseUrl + resource, params).catch(error => {\r\n // console.log(error);\r\n throw new Error(`[KT] ApiService ${error}`);\r\n });\r\n },\r\n\r\n /**\r\n * Send the GET HTTP request\r\n * @param resource\r\n * @param slug\r\n * @returns {*}\r\n */\r\n get(resource, slug = \"\") {\r\n return Vue.axios\r\n .get(`${this.baseUrl + resource}/${slug}`, {\r\n headers: { Authorization: `Bearer ${JwtService.getToken()}` }\r\n })\r\n .catch(error => {\r\n // console.log(error);\r\n throw new Error(`[KT] ApiService ${error}`);\r\n });\r\n },\r\n\r\n /**\r\n * Set the POST HTTP request\r\n * @param resource\r\n * @param params\r\n * @returns {*}\r\n */\r\n post(resource, params, config = null) {\r\n //console.log(\"post:\", resource, params);\r\n if (!config) {\r\n config = {\r\n headers: { Authorization: `Bearer ${JwtService.getToken()}` }\r\n };\r\n }\r\n return Vue.axios.post(`${this.baseUrl + resource}`, params, config);\r\n },\r\n\r\n /**\r\n * Send the UPDATE HTTP request\r\n * @param resource\r\n * @param slug\r\n * @param params\r\n * @returns {IDBRequest | Promise}\r\n */\r\n update(resource, slug, params) {\r\n return Vue.axios.put(`${this.baseUrl + resource}/${slug}`, params, {\r\n headers: { Authorization: `Bearer ${JwtService.getToken()}` }\r\n });\r\n },\r\n\r\n /**\r\n * Send the PUT HTTP request\r\n * @param resource\r\n * @param params\r\n * @returns {IDBRequest | Promise}\r\n */\r\n put(resource, params) {\r\n return Vue.axios.put(`${this.baseUrl + resource}`, params, {\r\n headers: { Authorization: `Bearer ${JwtService.getToken()}` }\r\n });\r\n },\r\n\r\n /**\r\n * Send the DELETE HTTP request\r\n * @param resource\r\n * @returns {*}\r\n */\r\n delete(resource) {\r\n return Vue.axios\r\n .delete(this.baseUrl + resource, {\r\n headers: { Authorization: `Bearer ${JwtService.getToken()}` }\r\n })\r\n .catch(error => {\r\n // console.log(error);\r\n throw new Error(`[RWV] ApiService ${error}`);\r\n });\r\n }\r\n};\r\n\r\nexport default ApiServiceAuth;\r\n","\"use strict\";\r\n\r\nvar KTLayoutQuickUser = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_user_close',\r\n toggleBy: 'kt_quick_user_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(content, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutQuickUser;","\"use strict\";\r\n\r\nvar KTLayoutBrand = function() {\r\n // Private properties\r\n var _element;\r\n\r\n // Private functions\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutBrand;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition \r\nvar KTDialog = function(options) {\r\n // Main object\r\n var the = this;\r\n\r\n // Get element object\r\n var element;\r\n var body = KTUtil.getBody();\r\n\r\n // Default options\r\n var defaultOptions = {\r\n 'placement' : 'top center',\r\n 'type' : 'loader',\r\n 'width' : 100,\r\n 'state' : 'default',\r\n 'message' : 'Loading...'\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n Plugin.init(options);\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles subtoggle click toggle\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n the.state = false;\r\n },\r\n\r\n /**\r\n * Show dialog\r\n */\r\n show: function() {\r\n Plugin.eventTrigger('show');\r\n\r\n element = document.createElement(\"DIV\");\r\n KTUtil.setHTML(element, the.options.message);\r\n\r\n KTUtil.addClass(element, 'dialog dialog-shown');\r\n KTUtil.addClass(element, 'dialog-' + the.options.state);\r\n KTUtil.addClass(element, 'dialog-' + the.options.type);\r\n\r\n if (the.options.placement == 'top center') {\r\n KTUtil.addClass(element, 'dialog-top-center');\r\n }\r\n\r\n body.appendChild(element);\r\n\r\n the.state = 'shown';\r\n\r\n Plugin.eventTrigger('shown');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Hide dialog\r\n */\r\n hide: function() {\r\n if (element) {\r\n Plugin.eventTrigger('hide');\r\n\r\n element.remove();\r\n the.state = 'hidden';\r\n\r\n Plugin.eventTrigger('hidden');\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Check shown state\r\n */\r\n the.shown = function() {\r\n return the.state == 'shown';\r\n };\r\n\r\n /**\r\n * Check hidden state\r\n */\r\n the.hidden = function() {\r\n return the.state == 'hidden';\r\n };\r\n\r\n /**\r\n * Show dialog\r\n */\r\n the.show = function() {\r\n return Plugin.show();\r\n };\r\n\r\n /**\r\n * Hide dialog\r\n */\r\n the.hide = function() {\r\n return Plugin.hide();\r\n };\r\n\r\n /**\r\n * Attach event\r\n * @returns {KTToggle}\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n * @returns {KTToggle}\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTDialog;\r\n}\r\n\nexport default KTDialog;","\"use strict\";\r\n\r\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTWizard = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n startStep: 1,\r\n clickableSteps: false // to make steps clickable this set value true and add data-wizard-clickable=\"true\" in HTML for class=\"wizard\" element\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('wizard')) {\r\n the = KTUtil.data(element).get('wizard');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('wizard', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Init wizard\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // Elements\r\n the.steps = KTUtil.findAll(element, '[data-wizard-type=\"step\"]');\r\n\r\n the.btnSubmit = KTUtil.find(element, '[data-wizard-type=\"action-submit\"]');\r\n the.btnNext = KTUtil.find(element, '[data-wizard-type=\"action-next\"]');\r\n the.btnPrev = KTUtil.find(element, '[data-wizard-type=\"action-prev\"]');\r\n the.btnLast = KTUtil.find(element, '[data-wizard-type=\"action-last\"]');\r\n the.btnFirst = KTUtil.find(element, '[data-wizard-type=\"action-first\"]');\r\n\r\n // Variables\r\n the.events = [];\r\n the.currentStep = 1;\r\n the.stopped = false;\r\n the.totalSteps = the.steps.length;\r\n\r\n // Init current step\r\n if (the.options.startStep > 1) {\r\n Plugin.goTo(the.options.startStep);\r\n }\r\n\r\n // Init UI\r\n Plugin.updateUI();\r\n },\r\n\r\n /**\r\n * Build Form Wizard\r\n */\r\n build: function() {\r\n // Next button event handler\r\n KTUtil.addEvent(the.btnNext, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.goTo(Plugin.getNextStep(), true);\r\n });\r\n\r\n // Prev button event handler\r\n KTUtil.addEvent(the.btnPrev, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.goTo(Plugin.getPrevStep(), true);\r\n });\r\n\r\n // First button event handler\r\n KTUtil.addEvent(the.btnFirst, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.goTo(Plugin.getFirstStep(), true);\r\n });\r\n\r\n // Last button event handler\r\n KTUtil.addEvent(the.btnLast, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.goTo(Plugin.getLastStep(), true);\r\n });\r\n\r\n if (the.options.clickableSteps === true) {\r\n KTUtil.on(element, '[data-wizard-type=\"step\"]', 'click', function() {\r\n var index = KTUtil.index(this) + 1;\r\n if (index !== the.currentStep) {\r\n Plugin.goTo(index, true);\r\n }\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Handles wizard click wizard\r\n */\r\n goTo: function(number, eventHandle) {\r\n //console.log('go to:' + number);\r\n\r\n // Skip if this step is already shown\r\n if (number === the.currentStep || number > the.totalSteps || number < 0) {\r\n return;\r\n }\r\n\r\n // Validate step number\r\n if (number) {\r\n number = parseInt(number);\r\n } else {\r\n number = Plugin.getNextStep();\r\n }\r\n\r\n // Before next and prev events\r\n var callback;\r\n\r\n if (eventHandle === true) {\r\n if (number > the.currentStep) {\r\n callback = Plugin.eventTrigger('beforeNext');\r\n } else {\r\n callback = Plugin.eventTrigger('beforePrev');\r\n }\r\n }\r\n\r\n // Skip if stopped\r\n if (the.stopped === true) {\r\n the.stopped = false;\r\n return;\r\n }\r\n\r\n // Continue if no exit\r\n if (callback !== false) {\r\n // Before change\r\n if (eventHandle === true) {\r\n Plugin.eventTrigger('beforeChange');\r\n }\r\n\r\n // Set current step\r\n the.currentStep = number;\r\n\r\n Plugin.updateUI();\r\n\r\n // Trigger change event\r\n if (eventHandle === true) {\r\n Plugin.eventTrigger('change');\r\n }\r\n }\r\n\r\n // After next and prev events\r\n if (eventHandle === true) {\r\n if (number > the.startStep) {\r\n Plugin.eventTrigger('afterNext');\r\n } else {\r\n Plugin.eventTrigger('afterPrev');\r\n }\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Cancel\r\n */\r\n stop: function() {\r\n the.stopped = true;\r\n },\r\n\r\n /**\r\n * Resume\r\n */\r\n start: function() {\r\n the.stopped = false;\r\n },\r\n\r\n /**\r\n * Check last step\r\n */\r\n isLastStep: function() {\r\n return the.currentStep === the.totalSteps;\r\n },\r\n\r\n /**\r\n * Check first step\r\n */\r\n isFirstStep: function() {\r\n return the.currentStep === 1;\r\n },\r\n\r\n /**\r\n * Check between step\r\n */\r\n isBetweenStep: function() {\r\n return Plugin.isLastStep() === false && Plugin.isFirstStep() === false;\r\n },\r\n\r\n /**\r\n * Go to the first step\r\n */\r\n updateUI: function() {\r\n var stepType = '';\r\n var index = the.currentStep - 1;\r\n\r\n if (Plugin.isLastStep()) {\r\n stepType = 'last';\r\n } else if (Plugin.isFirstStep()) {\r\n stepType = 'first';\r\n } else {\r\n stepType = 'between';\r\n }\r\n\r\n KTUtil.attr(the.element, 'data-wizard-state', stepType);\r\n\r\n // Steps\r\n var steps = KTUtil.findAll(the.element, '[data-wizard-type=\"step\"]');\r\n\r\n if (steps && steps.length > 0) {\r\n for (var i = 0, len = steps.length; i < len; i++) {\r\n if (i == index) {\r\n KTUtil.attr(steps[i], 'data-wizard-state', 'current');\r\n } else {\r\n if (i < index) {\r\n KTUtil.attr(steps[i], 'data-wizard-state', 'done');\r\n } else {\r\n KTUtil.attr(steps[i], 'data-wizard-state', 'pending');\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Steps Info\r\n var stepsInfo = KTUtil.findAll(the.element, '[data-wizard-type=\"step-info\"]');\r\n if (stepsInfo &&stepsInfo.length > 0) {\r\n for (var i = 0, len = stepsInfo.length; i < len; i++) {\r\n if (i == index) {\r\n KTUtil.attr(stepsInfo[i], 'data-wizard-state', 'current');\r\n } else {\r\n KTUtil.removeAttr(stepsInfo[i], 'data-wizard-state');\r\n }\r\n }\r\n }\r\n\r\n // Steps Content\r\n var stepsContent = KTUtil.findAll(the.element, '[data-wizard-type=\"step-content\"]');\r\n if (stepsContent&& stepsContent.length > 0) {\r\n for (var i = 0, len = stepsContent.length; i < len; i++) {\r\n if (i == index) {\r\n KTUtil.attr(stepsContent[i], 'data-wizard-state', 'current');\r\n } else {\r\n KTUtil.removeAttr(stepsContent[i], 'data-wizard-state');\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Get next step\r\n */\r\n getNextStep: function() {\r\n if (the.totalSteps >= (the.currentStep + 1)) {\r\n return the.currentStep + 1;\r\n } else {\r\n return the.totalSteps;\r\n }\r\n },\r\n\r\n /**\r\n * Get prev step\r\n */\r\n getPrevStep: function() {\r\n if ((the.currentStep - 1) >= 1) {\r\n return the.currentStep - 1;\r\n } else {\r\n return 1;\r\n }\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, nested) {\r\n //KTUtil.triggerCustomEvent(name);\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Go to the next step\r\n */\r\n the.goNext = function(eventHandle) {\r\n return Plugin.goTo(Plugin.getNextStep(), eventHandle);\r\n };\r\n\r\n /**\r\n * Go to the prev step\r\n */\r\n the.goPrev = function(eventHandle) {\r\n return Plugin.goTo(Plugin.getPrevStep(),eventHandle);\r\n };\r\n\r\n /**\r\n * Go to the last step\r\n */\r\n the.goLast = function(eventHandle) {\r\n return Plugin.goTo(Plugin.getLastStep(), eventHandle);\r\n };\r\n\r\n /**\r\n * Go to the first step\r\n */\r\n the.goFirst = function(eventHandle) {\r\n return Plugin.goTo(Plugin.getFirstStep(), eventHandle);\r\n };\r\n\r\n /**\r\n * Go to a step\r\n */\r\n the.goTo = function(number, eventHandle) {\r\n return Plugin.goTo(number, eventHandle);\r\n };\r\n\r\n /**\r\n * Cancel step\r\n */\r\n the.stop = function() {\r\n return Plugin.stop();\r\n };\r\n\r\n /**\r\n * Resume step\r\n */\r\n the.start = function() {\r\n return Plugin.start();\r\n };\r\n\r\n /**\r\n * Get current step number\r\n */\r\n the.getStep = function() {\r\n return the.currentStep;\r\n };\r\n\r\n /**\r\n * Check last step\r\n */\r\n the.isLastStep = function() {\r\n return Plugin.isLastStep();\r\n };\r\n\r\n /**\r\n * Check first step\r\n */\r\n the.isFirstStep = function() {\r\n return Plugin.isFirstStep();\r\n };\r\n\r\n /**\r\n * Attach event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTWizard;\r\n}\r\n\r\nexport default KTWizard;","\"use strict\";\r\n\r\n/**\r\n * @class KTUtil base utilize class that privides helper functions\r\n */\r\n\r\n// Polyfills\r\n/**\r\n * Element.matches() polyfill (simple version)\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\r\n */\r\nif (!Element.prototype.matches) {\r\n\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\n/**\r\n * Element.closest() polyfill\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\r\n */\r\nif (!Element.prototype.closest) {\r\n\tif (!Element.prototype.matches) {\r\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n\t}\r\n\tElement.prototype.closest = function (s) {\r\n\t\tvar el = this;\r\n\t\tvar ancestor = this;\r\n\t\tif (!document.documentElement.contains(el)) return null;\r\n\t\tdo {\r\n\t\t\tif (ancestor.matches(s)) return ancestor;\r\n\t\t\tancestor = ancestor.parentElement;\r\n\t\t} while (ancestor !== null);\r\n\t\treturn null;\r\n\t};\r\n}\r\n\r\n/**\r\n * ChildNode.remove() polyfill\r\n * https://gomakethings.com/removing-an-element-from-the-dom-the-es6-way/\r\n * @author Chris Ferdinandi\r\n * @license MIT\r\n */\r\n(function (elem) {\r\n\tfor (var i = 0; i < elem.length; i++) {\r\n\t\tif (!window[elem[i]] || 'remove' in window[elem[i]].prototype) continue;\r\n\t\twindow[elem[i]].prototype.remove = function () {\r\n\t\t\tthis.parentNode.removeChild(this);\r\n\t\t};\r\n\t}\r\n})(['Element', 'CharacterData', 'DocumentType']);\r\n\r\n//\r\n// requestAnimationFrame polyfill by Erik Möller.\r\n// With fixes from Paul Irish and Tino Zijdel\r\n//\r\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\r\n//\r\n// MIT license\r\n//\r\n(function() {\r\n var lastTime = 0;\r\n var vendors = ['webkit', 'moz'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame =\r\n window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n\r\n if (!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function(callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = window.setTimeout(function() {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n\r\n if (!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function(id) {\r\n clearTimeout(id);\r\n };\r\n}());\r\n\r\n// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md\r\n(function(arr) {\r\n arr.forEach(function(item) {\r\n if (item.hasOwnProperty('prepend')) {\r\n return;\r\n }\r\n Object.defineProperty(item, 'prepend', {\r\n configurable: true,\r\n enumerable: true,\r\n writable: true,\r\n value: function prepend() {\r\n var argArr = Array.prototype.slice.call(arguments),\r\n docFrag = document.createDocumentFragment();\r\n\r\n argArr.forEach(function(argItem) {\r\n var isNode = argItem instanceof Node;\r\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));\r\n });\r\n\r\n this.insertBefore(docFrag, this.firstChild);\r\n }\r\n });\r\n });\r\n})([Element.prototype, Document.prototype, DocumentFragment.prototype]);\r\n\r\n// Global variables\r\nwindow.KTUtilElementDataStore = {};\r\nwindow.KTUtilElementDataStoreID = 0;\r\nwindow.KTUtilDelegatedEventHandlers = {};\r\n\r\nvar KTUtil = function() {\r\n var resizeHandlers = [];\r\n\r\n /** @type {object} breakpoints The device width breakpoints **/\r\n var breakpoints = {\r\n sm: 544, // Small screen / phone\r\n md: 768, // Medium screen / tablet\r\n lg: 992, // Large screen / desktop\r\n xl: 1200 // Extra large screen / wide desktop\r\n };\r\n\r\n /**\r\n * Handle window resize event with some\r\n * delay to attach event handlers upon resize complete\r\n */\r\n var _windowResizeHandler = function() {\r\n var _runResizeHandlers = function() {\r\n // reinitialize other subscribed elements\r\n for (var i = 0; i < resizeHandlers.length; i++) {\r\n var each = resizeHandlers[i];\r\n each.call();\r\n }\r\n };\r\n\r\n var timer;\r\n\r\n window.addEventListener('resize', function() {\r\n KTUtil.throttle(timer, function() {\r\n _runResizeHandlers();\r\n }, 200);\r\n });\r\n };\r\n\r\n return {\r\n /**\r\n * Class main initializer.\r\n * @param {object} settings.\r\n * @returns null\r\n */\r\n //main function to initiate the theme\r\n init: function(settings) {\r\n if (settings && settings.breakpoints) {\r\n breakpoints = settings.breakpoints;\r\n }\r\n\r\n _windowResizeHandler();\r\n },\r\n\r\n /**\r\n * Adds window resize event handler.\r\n * @param {function} callback function.\r\n */\r\n addResizeHandler: function(callback) {\r\n resizeHandlers.push(callback);\r\n },\r\n\r\n /**\r\n * Removes window resize event handler.\r\n * @param {function} callback function.\r\n */\r\n removeResizeHandler: function(callback) {\r\n for (var i = 0; i < resizeHandlers.length; i++) {\r\n if (callback === resizeHandlers[i]) {\r\n delete resizeHandlers[i];\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Trigger window resize handlers.\r\n */\r\n runResizeHandlers: function() {\r\n _runResizeHandlers();\r\n },\r\n\r\n resize: function() {\r\n if (typeof(Event) === 'function') {\r\n // modern browsers\r\n window.dispatchEvent(new Event('resize'));\r\n } else {\r\n // for IE and other old browsers\r\n // causes deprecation warning on modern browsers\r\n var evt = window.document.createEvent('UIEvents');\r\n evt.initUIEvent('resize', true, false, window, 0);\r\n window.dispatchEvent(evt);\r\n }\r\n },\r\n\r\n /**\r\n * Get GET parameter value from URL.\r\n * @param {string} paramName Parameter name.\r\n * @returns {string}\r\n */\r\n getURLParam: function(paramName) {\r\n var searchString = window.location.search.substring(1),\r\n i, val, params = searchString.split(\"&\");\r\n\r\n for (i = 0; i < params.length; i++) {\r\n val = params[i].split(\"=\");\r\n if (val[0] == paramName) {\r\n return unescape(val[1]);\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * Checks whether current device is mobile touch.\r\n * @returns {boolean}\r\n */\r\n isMobileDevice: function() {\r\n var test = (this.getViewPort().width < this.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\n /**\r\n * Checks whether current device is desktop.\r\n * @returns {boolean}\r\n */\r\n isDesktopDevice: function() {\r\n return KTUtil.isMobileDevice() ? false : true;\r\n },\r\n\r\n /**\r\n * Gets browser window viewport size. Ref:\r\n * http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/\r\n * @returns {object}\r\n */\r\n getViewPort: function() {\r\n var e = window,\r\n a = 'inner';\r\n if (!('innerWidth' in window)) {\r\n a = 'client';\r\n e = document.documentElement || document.body;\r\n }\r\n\r\n return {\r\n width: e[a + 'Width'],\r\n height: e[a + 'Height']\r\n };\r\n },\r\n\r\n /**\r\n * Checks whether given device mode is currently activated.\r\n * @param {string} mode Responsive mode name(e.g: desktop,\r\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\r\n * @returns {boolean}\r\n */\r\n isInResponsiveRange: function(mode) {\r\n var breakpoint = this.getViewPort().width;\r\n\r\n if (mode == 'general') {\r\n return true;\r\n } else if (mode == 'desktop' && breakpoint >= (this.getBreakpoint('lg') + 1)) {\r\n return true;\r\n } else if (mode == 'tablet' && (breakpoint >= (this.getBreakpoint('md') + 1) && breakpoint < this.getBreakpoint('lg'))) {\r\n return true;\r\n } else if (mode == 'mobile' && breakpoint <= this.getBreakpoint('md')) {\r\n return true;\r\n } else if (mode == 'desktop-and-tablet' && breakpoint >= (this.getBreakpoint('md') + 1)) {\r\n return true;\r\n } else if (mode == 'tablet-and-mobile' && breakpoint <= this.getBreakpoint('lg')) {\r\n return true;\r\n } else if (mode == 'minimal-desktop-and-below' && breakpoint <= this.getBreakpoint('xl')) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n\t\t/**\r\n * Checks whether given device mode is currently activated.\r\n * @param {string} mode Responsive mode name(e.g: desktop,\r\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\r\n * @returns {boolean}\r\n */\r\n isBreakpointUp: function(mode) {\r\n var width = this.getViewPort().width;\r\n\t\t\tvar breakpoint = this.getBreakpoint(mode);\r\n\r\n\t\t\treturn (width >= breakpoint);\r\n },\r\n\r\n\t\tisBreakpointDown: function(mode) {\r\n var width = this.getViewPort().width;\r\n\t\t\tvar breakpoint = this.getBreakpoint(mode);\r\n\r\n\t\t\treturn (width < breakpoint);\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\n getUniqueID: function(prefix) {\r\n return prefix + Math.floor(Math.random() * (new Date()).getTime());\r\n },\r\n\r\n /**\r\n * Gets window width for give breakpoint mode.\r\n * @param {string} mode Responsive mode name(e.g: xl, lg, md, sm)\r\n * @returns {number}\r\n */\r\n getBreakpoint: function(mode) {\r\n return breakpoints[mode];\r\n },\r\n\r\n /**\r\n * Checks whether object has property matchs given key path.\r\n * @param {object} obj Object contains values paired with given key path\r\n * @param {string} keys Keys path seperated with dots\r\n * @returns {object}\r\n */\r\n isset: function(obj, keys) {\r\n var stone;\r\n\r\n keys = keys || '';\r\n\r\n if (keys.indexOf('[') !== -1) {\r\n throw new Error('Unsupported object path notation.');\r\n }\r\n\r\n keys = keys.split('.');\r\n\r\n do {\r\n if (obj === undefined) {\r\n return false;\r\n }\r\n\r\n stone = keys.shift();\r\n\r\n if (!obj.hasOwnProperty(stone)) {\r\n return false;\r\n }\r\n\r\n obj = obj[stone];\r\n\r\n } while (keys.length);\r\n\r\n return true;\r\n },\r\n\r\n /**\r\n * Gets highest z-index of the given element parents\r\n * @param {object} el jQuery element object\r\n * @returns {number}\r\n */\r\n getHighestZindex: function(el) {\r\n var position, value;\r\n\r\n while (el && el !== 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 position = KTUtil.css(el, 'position');\r\n\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 value = parseInt(KTUtil.css(el, 'z-index'));\r\n\r\n if (!isNaN(value) && value !== 0) {\r\n return value;\r\n }\r\n }\r\n\r\n el = el.parentNode;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * Checks whether the element has any parent with fixed positionfreg\r\n * @param {object} el jQuery element object\r\n * @returns {boolean}\r\n */\r\n hasFixedPositionedParent: function(el) {\r\n var position;\r\n\r\n while (el && el !== document) {\r\n position = KTUtil.css(el, 'position');\r\n\r\n if (position === \"fixed\") {\r\n return true;\r\n }\r\n\r\n el = el.parentNode;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n /**\r\n * Simulates delay\r\n */\r\n sleep: function(milliseconds) {\r\n var start = new Date().getTime();\r\n for (var i = 0; i < 1e7; i++) {\r\n if ((new Date().getTime() - start) > milliseconds) {\r\n break;\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Gets randomly generated integer value within given min and max range\r\n * @param {number} min Range start value\r\n * @param {number} max Range end value\r\n * @returns {number}\r\n */\r\n getRandomInt: function(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n },\r\n\r\n /**\r\n * Checks whether Angular library is included\r\n * @returns {boolean}\r\n */\r\n isAngularVersion: function() {\r\n return window.Zone !== undefined ? true : false;\r\n },\r\n\r\n // jQuery Workarounds\r\n\r\n // Deep extend: $.extend(true, {}, objA, objB);\r\n deepExtend: function(out) {\r\n out = out || {};\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n var obj = arguments[i];\r\n\r\n if (!obj)\r\n continue;\r\n\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n if (typeof obj[key] === 'object')\r\n out[key] = KTUtil.deepExtend(out[key], obj[key]);\r\n else\r\n out[key] = obj[key];\r\n }\r\n }\r\n }\r\n\r\n return out;\r\n },\r\n\r\n // extend: $.extend({}, objA, objB);\r\n extend: function(out) {\r\n out = out || {};\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n if (!arguments[i])\r\n continue;\r\n\r\n for (var key in arguments[i]) {\r\n if (arguments[i].hasOwnProperty(key))\r\n out[key] = arguments[i][key];\r\n }\r\n }\r\n\r\n return out;\r\n },\r\n\r\n getById: function(el) {\r\n if (typeof el === 'string') {\r\n return document.getElementById(el);\r\n } else {\r\n return el;\r\n }\r\n },\r\n\r\n getByTag: function(query) {\r\n return document.getElementsByTagName(query);\r\n },\r\n\r\n getByTagName: function(query) {\r\n return document.getElementsByTagName(query);\r\n },\r\n\r\n getByClass: function(query) {\r\n return document.getElementsByClassName(query);\r\n },\r\n\r\n getBody: function() {\r\n return document.getElementsByTagName('body')[0];\r\n },\r\n\r\n /**\r\n * Checks whether the element has given classes\r\n * @param {object} el jQuery element object\r\n * @param {string} Classes string\r\n * @returns {boolean}\r\n */\r\n hasClasses: function(el, classes) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n var classesArr = classes.split(\" \");\r\n\r\n for (var i = 0; i < classesArr.length; i++) {\r\n if (KTUtil.hasClass(el, KTUtil.trim(classesArr[i])) == false) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n hasClass: function(el, className) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n return el.classList ? el.classList.contains(className) : new RegExp('\\\\b' + className + '\\\\b').test(el.className);\r\n },\r\n\r\n addClass: function(el, className) {\r\n if (!el || typeof className === 'undefined') {\r\n return;\r\n }\r\n\r\n var classNames = className.split(' ');\r\n\r\n if (el.classList) {\r\n for (var i = 0; i < classNames.length; i++) {\r\n if (classNames[i] && classNames[i].length > 0) {\r\n el.classList.add(KTUtil.trim(classNames[i]));\r\n }\r\n }\r\n } else if (!KTUtil.hasClass(el, className)) {\r\n for (var x = 0; x < classNames.length; x++) {\r\n el.className += ' ' + KTUtil.trim(classNames[x]);\r\n }\r\n }\r\n },\r\n\r\n removeClass: function(el, className) {\r\n if (!el || typeof className === 'undefined') {\r\n return;\r\n }\r\n\r\n var classNames = className.split(' ');\r\n\r\n if (el.classList) {\r\n for (var i = 0; i < classNames.length; i++) {\r\n el.classList.remove(KTUtil.trim(classNames[i]));\r\n }\r\n } else if (KTUtil.hasClass(el, className)) {\r\n for (var x = 0; x < classNames.length; x++) {\r\n el.className = el.className.replace(new RegExp('\\\\b' + KTUtil.trim(classNames[x]) + '\\\\b', 'g'), '');\r\n }\r\n }\r\n },\r\n\r\n triggerCustomEvent: function(el, eventName, data) {\r\n var event;\r\n if (window.CustomEvent) {\r\n event = new CustomEvent(eventName, {\r\n detail: data\r\n });\r\n } else {\r\n event = document.createEvent('CustomEvent');\r\n event.initCustomEvent(eventName, true, true, data);\r\n }\r\n\r\n el.dispatchEvent(event);\r\n },\r\n\r\n triggerEvent: function(node, eventName) {\r\n // Make sure we use the ownerDocument from the provided node to avoid cross-window problems\r\n var doc;\r\n if (node.ownerDocument) {\r\n doc = node.ownerDocument;\r\n } else if (node.nodeType == 9) {\r\n // the node may be the document itself, nodeType 9 = DOCUMENT_NODE\r\n doc = node;\r\n } else {\r\n throw new Error(\"Invalid node passed to fireEvent: \" + node.id);\r\n }\r\n\r\n if (node.dispatchEvent) {\r\n // Gecko-style approach (now the standard) takes more work\r\n var eventClass = \"\";\r\n\r\n // Different events have different event classes.\r\n // If this switch statement can't map an eventName to an eventClass,\r\n // the event firing is going to fail.\r\n switch (eventName) {\r\n case \"click\": // Dispatching of 'click' appears to not work correctly in Safari. Use 'mousedown' or 'mouseup' instead.\r\n case \"mouseenter\":\r\n case \"mouseleave\":\r\n case \"mousedown\":\r\n case \"mouseup\":\r\n eventClass = \"MouseEvents\";\r\n break;\r\n\r\n case \"focus\":\r\n case \"change\":\r\n case \"blur\":\r\n case \"select\":\r\n eventClass = \"HTMLEvents\";\r\n break;\r\n\r\n default:\r\n throw \"fireEvent: Couldn't find an event class for event '\" + eventName + \"'.\";\r\n break;\r\n }\r\n var event = doc.createEvent(eventClass);\r\n\r\n var bubbles = eventName == \"change\" ? false : true;\r\n event.initEvent(eventName, bubbles, true); // All events created as bubbling and cancelable.\r\n\r\n event.synthetic = true; // allow detection of synthetic events\r\n // The second parameter says go ahead with the default action\r\n node.dispatchEvent(event, true);\r\n } else if (node.fireEvent) {\r\n // IE-old school style\r\n var event = doc.createEventObject();\r\n event.synthetic = true; // allow detection of synthetic events\r\n node.fireEvent(\"on\" + eventName, event);\r\n }\r\n },\r\n\r\n index: function( el ){\r\n var c = el.parentNode.children, i = 0;\r\n for(; i < c.length; i++ )\r\n if( c[i] == el ) return i;\r\n },\r\n\r\n trim: function(string) {\r\n return string.trim();\r\n },\r\n\r\n eventTriggered: function(e) {\r\n if (e.currentTarget.dataset.triggered) {\r\n return true;\r\n } else {\r\n e.currentTarget.dataset.triggered = true;\r\n\r\n return false;\r\n }\r\n },\r\n\r\n remove: function(el) {\r\n if (el && el.parentNode) {\r\n el.parentNode.removeChild(el);\r\n }\r\n },\r\n\r\n find: function(parent, query) {\r\n parent = KTUtil.getById(parent);\r\n if (parent) {\r\n return parent.querySelector(query);\r\n }\r\n },\r\n\r\n findAll: function(parent, query) {\r\n parent = KTUtil.getById(parent);\r\n if (parent) {\r\n return parent.querySelectorAll(query);\r\n }\r\n },\r\n\r\n insertAfter: function(el, referenceNode) {\r\n return referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);\r\n },\r\n\r\n parents: function(elem, selector) {\r\n // Element.matches() polyfill\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n Element.prototype.matchesSelector ||\r\n Element.prototype.mozMatchesSelector ||\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.oMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector ||\r\n function(s) {\r\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\r\n 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 var parents = [];\r\n\r\n // Push each parent element to the array\r\n for ( ; elem && elem !== document; elem = elem.parentNode ) {\r\n if (selector) {\r\n if (elem.matches(selector)) {\r\n parents.push(elem);\r\n }\r\n continue;\r\n }\r\n parents.push(elem);\r\n }\r\n\r\n // Return our parent array\r\n return parents;\r\n },\r\n\r\n children: function(el, selector, log) {\r\n if (!el || !el.childNodes) {\r\n return;\r\n }\r\n\r\n var result = [],\r\n i = 0,\r\n l = el.childNodes.length;\r\n\r\n for (var i; i < l; ++i) {\r\n if (el.childNodes[i].nodeType == 1 && KTUtil.matches(el.childNodes[i], selector, log)) {\r\n result.push(el.childNodes[i]);\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n child: function(el, selector, log) {\r\n var children = KTUtil.children(el, selector, log);\r\n\r\n return children ? children[0] : null;\r\n },\r\n\r\n matches: function(el, selector, log) {\r\n var p = Element.prototype;\r\n var f = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || function(s) {\r\n return [].indexOf.call(document.querySelectorAll(s), this) !== -1;\r\n };\r\n\r\n if (el && el.tagName) {\r\n return f.call(el, selector);\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n data: function(el) {\r\n return {\r\n set: function(name, data) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n window.KTUtilElementDataStoreID++;\r\n el.customDataTag = window.KTUtilElementDataStoreID;\r\n }\r\n\r\n if (window.KTUtilElementDataStore[el.customDataTag] === undefined) {\r\n window.KTUtilElementDataStore[el.customDataTag] = {};\r\n }\r\n\r\n window.KTUtilElementDataStore[el.customDataTag][name] = data;\r\n },\r\n\r\n get: function(name) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n return null;\r\n }\r\n\r\n return this.has(name) ? window.KTUtilElementDataStore[el.customDataTag][name] : null;\r\n },\r\n\r\n has: function(name) {\r\n if (!el) {\r\n return false;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n return false;\r\n }\r\n\r\n return (window.KTUtilElementDataStore[el.customDataTag] && window.KTUtilElementDataStore[el.customDataTag][name]) ? true : false;\r\n },\r\n\r\n remove: function(name) {\r\n if (el && this.has(name)) {\r\n delete window.KTUtilElementDataStore[el.customDataTag][name];\r\n }\r\n }\r\n };\r\n },\r\n\r\n outerWidth: function(el, margin) {\r\n var width;\r\n\r\n if (margin === true) {\r\n width = parseFloat(el.offsetWidth);\r\n width += parseFloat(KTUtil.css(el, 'margin-left')) + parseFloat(KTUtil.css(el, 'margin-right'));\r\n\r\n return parseFloat(width);\r\n } else {\r\n width = parseFloat(el.offsetWidth);\r\n\r\n return width;\r\n }\r\n },\r\n\r\n offset: function(el) {\r\n var rect, win;\r\n\r\n if ( !el ) {\r\n return;\r\n }\r\n\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\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 rect = el.getBoundingClientRect();\r\n win = el.ownerDocument.defaultView;\r\n\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 height: function(el) {\r\n return KTUtil.css(el, 'height');\r\n },\r\n\r\n outerHeight: function(el, withMargic = false) {\r\n var height = el.offsetHeight;\r\n var style;\r\n\r\n if (withMargic) {\r\n style = getComputedStyle(el);\r\n height += parseInt(style.marginTop) + parseInt(style.marginBottom);\r\n\r\n return height;\r\n } else {\r\n return height;\r\n }\r\n },\r\n\r\n visible: function(el) {\r\n return !(el.offsetWidth === 0 && el.offsetHeight === 0);\r\n },\r\n\r\n attr: function(el, name, value) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n if (value !== undefined) {\r\n el.setAttribute(name, value);\r\n } else {\r\n return el.getAttribute(name);\r\n }\r\n },\r\n\r\n hasAttr: function(el, name) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n return el.getAttribute(name) ? true : false;\r\n },\r\n\r\n removeAttr: function(el, name) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n el.removeAttribute(name);\r\n },\r\n\r\n animate: function(from, to, duration, update, easing, done) {\r\n /**\r\n * TinyAnimate.easings\r\n * Adapted from jQuery Easing\r\n */\r\n var easings = {};\r\n var easing;\r\n\r\n easings.linear = function(t, b, c, d) {\r\n return c * t / d + b;\r\n };\r\n\r\n easing = easings.linear;\r\n\r\n // Early bail out if called incorrectly\r\n if (typeof from !== 'number' ||\r\n typeof to !== 'number' ||\r\n typeof duration !== 'number' ||\r\n typeof update !== 'function') {\r\n return;\r\n }\r\n\r\n // Create mock done() function if necessary\r\n if (typeof done !== 'function') {\r\n done = function() {};\r\n }\r\n\r\n // Pick implementation (requestAnimationFrame | setTimeout)\r\n var rAF = window.requestAnimationFrame || function(callback) {\r\n window.setTimeout(callback, 1000 / 50);\r\n };\r\n\r\n // Animation loop\r\n var canceled = false;\r\n var change = to - from;\r\n\r\n function loop(timestamp) {\r\n var time = (timestamp || +new Date()) - start;\r\n\r\n if (time >= 0) {\r\n update(easing(time, from, change, duration));\r\n }\r\n if (time >= 0 && time >= duration) {\r\n update(to);\r\n done();\r\n } else {\r\n rAF(loop);\r\n }\r\n }\r\n\r\n update(from);\r\n\r\n // Start animation loop\r\n var start = window.performance && window.performance.now ? window.performance.now() : +new Date();\r\n\r\n rAF(loop);\r\n },\r\n\r\n actualCss: function(el, prop, cache) {\r\n var css = '';\r\n\r\n if (el instanceof HTMLElement === false) {\r\n return;\r\n }\r\n\r\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\r\n var 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 el.setAttribute('kt-hidden-' + prop, value);\r\n\r\n return parseFloat(value);\r\n } else {\r\n // store it in cache\r\n return parseFloat(el.getAttribute('kt-hidden-' + prop));\r\n }\r\n },\r\n\r\n actualHeight: function(el, cache) {\r\n return KTUtil.actualCss(el, 'height', cache);\r\n },\r\n\r\n actualWidth: function(el, cache) {\r\n return KTUtil.actualCss(el, 'width', cache);\r\n },\r\n\r\n getScroll: function(element, method) {\r\n // The passed in `method` value should be 'Top' or 'Left'\r\n method = 'scroll' + method;\r\n return (element == window || element == document) ? (\r\n self[(method == 'scrollTop') ? 'pageYOffset' : 'pageXOffset'] ||\r\n (browserSupportsBoxModel && document.documentElement[method]) ||\r\n document.body[method]\r\n ) : element[method];\r\n },\r\n\r\n css: function(el, styleProp, value) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (value !== undefined) {\r\n el.style[styleProp] = value;\r\n } else {\r\n var defaultView = (el.ownerDocument || document).defaultView;\r\n // W3C standard way:\r\n if (defaultView && defaultView.getComputedStyle) {\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 return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);\r\n } else if (el.currentStyle) { // IE\r\n // sanitize property name to camelCase\r\n styleProp = styleProp.replace(/\\-(\\w)/g, function(str, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = el.currentStyle[styleProp];\r\n // convert other units to pixels on IE\r\n if (/^\\d+(em|pt|%|ex)?$/i.test(value)) {\r\n return (function(value) {\r\n var oldLeft = el.style.left,\r\n oldRsLeft = el.runtimeStyle.left;\r\n el.runtimeStyle.left = el.currentStyle.left;\r\n el.style.left = value || 0;\r\n value = el.style.pixelLeft + \"px\";\r\n el.style.left = oldLeft;\r\n el.runtimeStyle.left = oldRsLeft;\r\n return value;\r\n })(value);\r\n }\r\n return value;\r\n }\r\n }\r\n },\r\n\r\n slide: function(el, dir, speed, callback, recalcMaxHeight) {\r\n if (!el || (dir == 'up' && KTUtil.visible(el) === false) || (dir == 'down' && KTUtil.visible(el) === true)) {\r\n return;\r\n }\r\n\r\n speed = (speed ? speed : 600);\r\n var calcHeight = KTUtil.actualHeight(el);\r\n var calcPaddingTop = false;\r\n var calcPaddingBottom = false;\r\n\r\n if (KTUtil.css(el, 'padding-top') && KTUtil.data(el).has('slide-padding-top') !== true) {\r\n KTUtil.data(el).set('slide-padding-top', KTUtil.css(el, 'padding-top'));\r\n }\r\n\r\n if (KTUtil.css(el, 'padding-bottom') && KTUtil.data(el).has('slide-padding-bottom') !== true) {\r\n KTUtil.data(el).set('slide-padding-bottom', KTUtil.css(el, 'padding-bottom'));\r\n }\r\n\r\n if (KTUtil.data(el).has('slide-padding-top')) {\r\n calcPaddingTop = parseInt(KTUtil.data(el).get('slide-padding-top'));\r\n }\r\n\r\n if (KTUtil.data(el).has('slide-padding-bottom')) {\r\n calcPaddingBottom = parseInt(KTUtil.data(el).get('slide-padding-bottom'));\r\n }\r\n\r\n if (dir == 'up') { // up\r\n el.style.cssText = 'display: block; overflow: hidden;';\r\n\r\n if (calcPaddingTop) {\r\n KTUtil.animate(0, calcPaddingTop, speed, function(value) {\r\n el.style.paddingTop = (calcPaddingTop - value) + 'px';\r\n }, 'linear');\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n KTUtil.animate(0, calcPaddingBottom, speed, function(value) {\r\n el.style.paddingBottom = (calcPaddingBottom - value) + 'px';\r\n }, 'linear');\r\n }\r\n\r\n KTUtil.animate(0, calcHeight, speed, function(value) {\r\n el.style.height = (calcHeight - value) + 'px';\r\n }, 'linear', 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\r\n } else if (dir == 'down') { // down\r\n el.style.cssText = 'display: block; overflow: hidden;';\r\n\r\n if (calcPaddingTop) {\r\n KTUtil.animate(0, calcPaddingTop, speed, function(value) {//\r\n el.style.paddingTop = value + 'px';\r\n }, 'linear', function() {\r\n el.style.paddingTop = '';\r\n });\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n KTUtil.animate(0, calcPaddingBottom, speed, function(value) {\r\n el.style.paddingBottom = value + 'px';\r\n }, 'linear', function() {\r\n el.style.paddingBottom = '';\r\n });\r\n }\r\n\r\n KTUtil.animate(0, calcHeight, speed, function(value) {\r\n el.style.height = value + 'px';\r\n }, 'linear', 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 slideUp: function(el, speed, callback) {\r\n KTUtil.slide(el, 'up', speed, callback);\r\n },\r\n\r\n slideDown: function(el, speed, callback) {\r\n KTUtil.slide(el, 'down', speed, callback);\r\n },\r\n\r\n show: function(el, display) {\r\n if (typeof el !== 'undefined') {\r\n el.style.display = (display ? display : 'block');\r\n }\r\n },\r\n\r\n hide: function(el) {\r\n if (typeof el !== 'undefined') {\r\n el.style.display = 'none';\r\n }\r\n },\r\n\r\n addEvent: function(el, type, handler, one) {\r\n if (typeof el !== 'undefined' && el !== null) {\r\n el.addEventListener(type, handler);\r\n }\r\n },\r\n\r\n removeEvent: function(el, type, handler) {\r\n if (el !== null) {\r\n el.removeEventListener(type, handler);\r\n }\r\n },\r\n\r\n on: function(element, selector, event, handler) {\r\n if (!selector) {\r\n return;\r\n }\r\n\r\n var eventId = KTUtil.getUniqueID('event');\r\n\r\n window.KTUtilDelegatedEventHandlers[eventId] = function(e) {\r\n var targets = element.querySelectorAll(selector);\r\n var target = e.target;\r\n\r\n while (target && target !== element) {\r\n for (var i = 0, j = targets.length; i < j; i++) {\r\n if (target === targets[i]) {\r\n handler.call(target, e);\r\n }\r\n }\r\n\r\n target = target.parentNode;\r\n }\r\n }\r\n\r\n KTUtil.addEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);\r\n\r\n return eventId;\r\n },\r\n\r\n off: function(element, event, eventId) {\r\n if (!element || !window.KTUtilDelegatedEventHandlers[eventId]) {\r\n return;\r\n }\r\n\r\n KTUtil.removeEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);\r\n\r\n delete window.KTUtilDelegatedEventHandlers[eventId];\r\n },\r\n\r\n one: function onetime(el, type, callback) {\r\n el.addEventListener(type, function callee(e) {\r\n // remove event\r\n if (e.target && e.target.removeEventListener) {\r\n e.target.removeEventListener(e.type, callee);\r\n }\r\n\r\n // need to verify from https://themeforest.net/author_dashboard#comment_23615588\r\n if (el && el.removeEventListener) {\r\n\t\t\t\t e.currentTarget.removeEventListener(e.type, callee);\r\n\t\t\t }\r\n\r\n // call handler\r\n return callback(e);\r\n });\r\n },\r\n\r\n hash: function(str) {\r\n var hash = 0,\r\n i, chr;\r\n\r\n if (str.length === 0) return hash;\r\n for (i = 0; i < str.length; i++) {\r\n chr = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n\r\n return hash;\r\n },\r\n\r\n animateClass: function(el, animationName, callback) {\r\n var animation;\r\n var animations = {\r\n animation: 'animationend',\r\n OAnimation: 'oAnimationEnd',\r\n MozAnimation: 'mozAnimationEnd',\r\n WebkitAnimation: 'webkitAnimationEnd',\r\n msAnimation: 'msAnimationEnd',\r\n };\r\n\r\n for (var t in animations) {\r\n if (el.style[t] !== undefined) {\r\n animation = animations[t];\r\n }\r\n }\r\n\r\n KTUtil.addClass(el, 'animated ' + animationName);\r\n\r\n KTUtil.one(el, animation, function() {\r\n KTUtil.removeClass(el, 'animated ' + animationName);\r\n });\r\n\r\n if (callback) {\r\n KTUtil.one(el, animation, callback);\r\n }\r\n },\r\n\r\n transitionEnd: function(el, callback) {\r\n var transition;\r\n var transitions = {\r\n transition: 'transitionend',\r\n OTransition: 'oTransitionEnd',\r\n MozTransition: 'mozTransitionEnd',\r\n WebkitTransition: 'webkitTransitionEnd',\r\n msTransition: 'msTransitionEnd'\r\n };\r\n\r\n for (var t in transitions) {\r\n if (el.style[t] !== undefined) {\r\n transition = transitions[t];\r\n }\r\n }\r\n\r\n KTUtil.one(el, transition, callback);\r\n },\r\n\r\n animationEnd: function(el, callback) {\r\n var animation;\r\n var animations = {\r\n animation: 'animationend',\r\n OAnimation: 'oAnimationEnd',\r\n MozAnimation: 'mozAnimationEnd',\r\n WebkitAnimation: 'webkitAnimationEnd',\r\n msAnimation: 'msAnimationEnd'\r\n };\r\n\r\n for (var t in animations) {\r\n if (el.style[t] !== undefined) {\r\n animation = animations[t];\r\n }\r\n }\r\n\r\n KTUtil.one(el, animation, callback);\r\n },\r\n\r\n animateDelay: function(el, value) {\r\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\r\n for (var i = 0; i < vendors.length; i++) {\r\n KTUtil.css(el, vendors[i] + 'animation-delay', value);\r\n }\r\n },\r\n\r\n animateDuration: function(el, value) {\r\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\r\n for (var i = 0; i < vendors.length; i++) {\r\n KTUtil.css(el, vendors[i] + 'animation-duration', value);\r\n }\r\n },\r\n\r\n scrollTo: function(target, offset, duration) {\r\n var duration = duration ? duration : 500;\r\n var targetPos = target ? KTUtil.offset(target).top : 0;\r\n var scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n var from, to;\r\n\r\n if (offset) {\r\n scrollPos += offset;\r\n }\r\n\r\n from = scrollPos;\r\n to = targetPos;\r\n\r\n KTUtil.animate(from, to, duration, function(value) {\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\r\n scrollTop: function(offset, duration) {\r\n KTUtil.scrollTo(null, offset, duration);\r\n },\r\n\r\n isArray: function(obj) {\r\n return obj && Array.isArray(obj);\r\n },\r\n\r\n ready: function(callback) {\r\n if (document.attachEvent ? document.readyState === \"complete\" : document.readyState !== \"loading\") {\r\n callback();\r\n } else {\r\n document.addEventListener('DOMContentLoaded', callback);\r\n }\r\n },\r\n\r\n isEmpty: function(obj) {\r\n for (var prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n numberString: function(nStr) {\r\n nStr += '';\r\n var x = nStr.split('.');\r\n var x1 = x[0];\r\n var x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n },\r\n\r\n detectIE: function() {\r\n var ua = window.navigator.userAgent;\r\n\r\n // Test values; Uncomment to check result …\r\n\r\n // IE 10\r\n // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';\r\n\r\n // IE 11\r\n // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';\r\n\r\n // Edge 12 (Spartan)\r\n // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';\r\n\r\n // Edge 13\r\n // ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';\r\n\r\n var msie = ua.indexOf('MSIE ');\r\n if (msie > 0) {\r\n // IE 10 or older => return version number\r\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\r\n }\r\n\r\n var trident = ua.indexOf('Trident/');\r\n if (trident > 0) {\r\n // IE 11 => return version number\r\n var rv = ua.indexOf('rv:');\r\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\r\n }\r\n\r\n var edge = ua.indexOf('Edge/');\r\n if (edge > 0) {\r\n // Edge (IE 12+) => return version number\r\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\r\n }\r\n\r\n // other browser\r\n return false;\r\n },\r\n\r\n isRTL: function() {\r\n var html = KTUtil.getByTagName('html')[0];\r\n\r\n if (html) {\r\n return (KTUtil.attr(html, 'direction') == 'rtl');\r\n }\r\n },\r\n\r\n // Scroller\r\n scrollInit: function(element, options) {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Learn more: https://github.com/mdbootstrap/perfect-scrollbar#options\r\n var pluginDefOptions = {\r\n wheelSpeed: 0.5,\r\n swipeEasing: true,\r\n wheelPropagation: false,\r\n minScrollbarLength: 40,\r\n maxScrollbarLength: 300,\r\n suppressScrollX: true\r\n };\r\n\r\n options = KTUtil.deepExtend({}, pluginDefOptions, options);\r\n\r\n // Define init function\r\n function init() {\r\n var ps;\r\n var height;\r\n\r\n // Get extra options via data attributes\r\n var attrs = element.getAttributeNames();\r\n if (attrs.length > 0) {\r\n attrs.forEach(function(attrName) {\r\n \t\t\t// more options; https://github.com/ganlanyuan/tiny-slider#options\r\n \t\t\tif ((/^data-.*/g).test(attrName)) {\r\n if (['scroll', 'height', 'mobile-height'].includes(optionName) == false) {\r\n var optionName = attrName.replace('data-', '').toLowerCase().replace(/(?:[\\s-])\\w/g, function(match) {\r\n \t\t\t\t\treturn match.replace('-', '').toUpperCase();\r\n \t\t\t\t});\r\n\r\n options[optionName] = KTUtil.filterBoolean(element.getAttribute(attrName));\r\n }\r\n \t\t\t}\r\n \t\t});\r\n }\r\n\r\n if (options.height instanceof Function) {\r\n height = options.height.call();\r\n } else {\r\n if (options.mobileHeight) {\r\n height = parseInt(options.mobileHeight);\r\n } else {\r\n height = parseInt(options.height);\r\n }\r\n }\r\n\r\n if (height === false) {\r\n KTUtil.scrollDestroy(element, true);\r\n\r\n return;\r\n }\r\n\r\n height = parseInt(height);\r\n\r\n // Destroy scroll on table and mobile modes\r\n if ((options.mobileNativeScroll || options.disableForMobile) && KTUtil.isMobileDevice() === true) {\r\n ps = KTUtil.data(element).get('ps');\r\n if (ps) {\r\n if (options.resetHeightOnDestroy) {\r\n KTUtil.css(element, 'height', 'auto');\r\n } else {\r\n KTUtil.css(element, 'overflow', 'auto');\r\n if (height > 0) {\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n }\r\n\r\n ps.destroy();\r\n ps = KTUtil.data(element).remove('ps');\r\n } else if (height > 0){\r\n KTUtil.css(element, 'overflow', 'auto');\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (height > 0) {\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n\r\n if (options.desktopNativeScroll) {\r\n KTUtil.css(element, 'overflow', 'auto');\r\n return;\r\n }\r\n\r\n // Pass options via HTML Attributes\r\n if (KTUtil.attr(element, 'data-window-scroll') == 'true') {\r\n options.windowScroll = true;\r\n }\r\n\r\n // Init scroll\r\n ps = KTUtil.data(element).get('ps');\r\n\r\n if (ps) {\r\n ps.update();\r\n } else {\r\n KTUtil.css(element, 'overflow', 'hidden');\r\n KTUtil.addClass(element, 'scroll');\r\n\r\n ps = new PerfectScrollbar(element, options);\r\n\r\n KTUtil.data(element).set('ps', ps);\r\n }\r\n\r\n // Remember scroll position in cookie\r\n var uid = KTUtil.attr(element, 'id');\r\n // Consider using Localstorage\r\n //if (options.rememberPosition === true && Cookies && uid) {\r\n // if (KTCookie.getCookie(uid)) {\r\n // var pos = parseInt(KTCookie.getCookie(uid));\r\n //\r\n // if (pos > 0) {\r\n // element.scrollTop = pos;\r\n // }\r\n // }\r\n //\r\n // element.addEventListener('ps-scroll-y', function() {\r\n // KTCookie.setCookie(uid, element.scrollTop);\r\n // });\r\n //}\r\n }\r\n\r\n // Init\r\n init();\r\n\r\n // Handle window resize\r\n if (options.handleWindowResize) {\r\n KTUtil.addResizeHandler(function() {\r\n init();\r\n });\r\n }\r\n },\r\n\r\n scrollUpdate: function(element) {\r\n var ps = KTUtil.data(element).get('ps');\r\n if (ps) {\r\n ps.update();\r\n }\r\n },\r\n\r\n scrollUpdateAll: function(parent) {\r\n var scrollers = KTUtil.findAll(parent, '.ps');\r\n for (var i = 0, len = scrollers.length; i < len; i++) {\r\n KTUtil.scrollUpdate(scrollers[i]);\r\n }\r\n },\r\n\r\n scrollDestroy: function(element, resetAll) {\r\n var ps = KTUtil.data(element).get('ps');\r\n\r\n if (ps) {\r\n ps.destroy();\r\n ps = KTUtil.data(element).remove('ps');\r\n }\r\n\r\n if (element && resetAll) {\r\n element.style.setProperty('overflow', '');\r\n element.style.setProperty('height', '');\r\n }\r\n },\r\n\r\n filterBoolean: function(val) {\r\n // Convert string boolean\r\n\t\t\tif (val === true || val === 'true') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (val === false || val === 'false') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n return val;\r\n },\r\n\r\n setHTML: function(el, html) {\r\n el.innerHTML = html;\r\n },\r\n\r\n getHTML: function(el) {\r\n if (el) {\r\n return el.innerHTML;\r\n }\r\n },\r\n\r\n getDocumentHeight: function() {\r\n var body = document.body;\r\n var html = document.documentElement;\r\n\r\n return Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );\r\n },\r\n\r\n getScrollTop: function() {\r\n return (document.scrollingElement || document.documentElement).scrollTop;\r\n },\r\n\r\n colorDarken: function(color, amount) {\r\n var subtractLight = function(color, amount){\r\n var cc = parseInt(color,16) - amount;\r\n var c = (cc < 0) ? 0 : (cc);\r\n c = (c.toString(16).length > 1 ) ? c.toString(16) : `0${c.toString(16)}`;\r\n\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);\r\n\r\n return color = `#${subtractLight(color.substring(0,2), amount)}${subtractLight(color.substring(2,4), amount)}${subtractLight(color.substring(4,6), amount)}`;\r\n },\r\n\r\n colorLighten: function(color, amount) {\r\n var addLight = function(color, amount){\r\n var cc = parseInt(color,16) + amount;\r\n var c = (cc > 255) ? 255 : (cc);\r\n c = (c.toString(16).length > 1 ) ? c.toString(16) : `0${c.toString(16)}`;\r\n\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);\r\n\r\n return color = `#${addLight(color.substring(0,2), amount)}${addLight(color.substring(2,4), amount)}${addLight(color.substring(4,6), amount)}`;\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\n throttle: function (timer, func, delay) {\r\n \t// If setTimeout is already scheduled, no need to do anything\r\n \tif (timer) {\r\n \t\treturn;\r\n \t}\r\n\r\n \t// Schedule a setTimeout after delay seconds\r\n \ttimer = setTimeout(function () {\r\n \t\tfunc();\r\n\r\n \t\t// Once setTimeout function execution is finished, timerId = undefined so that in \r\n \t\t// the next scroll event function execution can be scheduled by the setTimeout\r\n \t\ttimer = undefined;\r\n \t}, delay);\r\n },\r\n\r\n // Debounce function: Input as function which needs to be debounced and delay is the debounced time in milliseconds\r\n debounce: function (timer, func, delay) {\r\n \t// Cancels the setTimeout method execution\r\n \tclearTimeout(timer)\r\n\r\n \t// Executes the func after delay time.\r\n \ttimer = setTimeout(func, delay);\r\n },\r\n\r\n btnWait: function(el, cls, message, disable = true) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (disable) {\r\n KTUtil.attr(el, \"disabled\", true);\r\n }\r\n\r\n if (cls) {\r\n KTUtil.addClass(el, cls);\r\n KTUtil.attr(el, \"wait-class\", cls);\r\n }\r\n\r\n if (message) {\r\n var caption = KTUtil.find(el, '.btn-caption');\r\n\r\n if (caption) {\r\n KTUtil.data(caption).set('caption', KTUtil.getHTML(caption));\r\n KTUtil.setHTML(caption, message);\r\n } else {\r\n KTUtil.data(el).set('caption', KTUtil.getHTML(el));\r\n KTUtil.setHTML(el, message);\r\n }\r\n }\r\n },\r\n\r\n btnRelease: function(el) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n /// Show loading state on button\r\n KTUtil.removeAttr(el, \"disabled\");\r\n\r\n if (KTUtil.hasAttr(el, \"wait-class\")) {\r\n KTUtil.removeClass(el, KTUtil.attr(el, \"wait-class\"));\r\n }\r\n\r\n var caption = KTUtil.find(el, '.btn-caption');\r\n\r\n if (caption && KTUtil.data(caption).has('caption')) {\r\n KTUtil.setHTML(caption, KTUtil.data(caption).get('caption'));\r\n } else if (KTUtil.data(el).has('caption')) {\r\n KTUtil.setHTML(el, KTUtil.data(el).get('caption'));\r\n }\r\n },\r\n\r\n isOffscreen: function(el, direction, offset = 0) {\r\n var windowWidth = KTUtil.getViewPort().width;\r\n var windowHeight = KTUtil.getViewPort().height;\r\n\r\n var top = KTUtil.offset(el).top;\r\n var height = KTUtil.outerHeight(el) + offset;\r\n var left = KTUtil.offset(el).left;\r\n var width = KTUtil.outerWidth(el) + offset;\r\n\r\n if (direction == 'bottom') {\r\n if (windowHeight < top + height) {\r\n return true;\r\n } else if (windowHeight > top + height * 1.5) {\r\n return true;\r\n }\r\n }\r\n\r\n if (direction == 'top') {\r\n if (top < 0) {\r\n return true;\r\n } else if (top > height) {\r\n return true;\r\n }\r\n }\r\n\r\n if (direction == 'left') {\r\n if (left < 0) {\r\n return true;\r\n } else if (left * 2 > width) {\r\n //console.log('left 2');\r\n //return true;\r\n }\r\n }\r\n\r\n if (direction == 'right') {\r\n if (windowWidth < left + width) {\r\n return true;\r\n } else {\r\n //console.log('right 2');\r\n //return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n }\r\n}();\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTUtil;\r\n}\r\n\r\n// Initialize KTUtil class on document ready\r\nKTUtil.ready(function() {\r\n\tif (typeof KTAppSettings !== 'undefined') {\r\n\t\tKTUtil.init(KTAppSettings);\r\n\t} else {\r\n\t\tKTUtil.init();\r\n\t}\r\n});\r\n\r\n// CSS3 Transitions only after page load(.page-loading class added to body tag and remove with JS on page load)\r\nwindow.onload = function() {\r\n var result = KTUtil.getByTagName('body');\r\n if (result && result[0]) {\r\n KTUtil.removeClass(result[0], 'page-loading');\r\n }\r\n}\r\n\nexport default KTUtil;","\"use strict\";\r\n\r\nvar KTLayoutExamples = function() {\r\n\r\n var initDefaultMode = function(element) {\r\n var elements = element;\r\n if (typeof elements === 'undefined') {\r\n elements = document.querySelectorAll('.example:not(.example-compact):not(.example-hover):not(.example-basic)');\r\n }\r\n\r\n for (var i = 0; i < elements.length; ++i) {\r\n var example = elements[i];\r\n var copy = KTUtil.find(example, '.example-copy');\r\n\r\n var clipboard = new ClipboardJS(copy, {\r\n target: function(trigger) {\r\n var example = trigger.closest('.example');\r\n var el = KTUtil.find(example, '.example-code .tab-pane.active');\r\n\r\n if (!el) {\r\n el = KTUtil.find(example, '.example-code');\r\n }\r\n\r\n return el;\r\n }\r\n });\r\n\r\n clipboard.on('success', function(e) {\r\n KTUtil.addClass(e.trigger, 'example-copied');\r\n e.clearSelection();\r\n\r\n setTimeout(function() {\r\n KTUtil.removeClass(e.trigger, 'example-copied');\r\n }, 2000);\r\n });\r\n }\r\n }\r\n\r\n var initCompactMode = function(element) {\r\n var example,code,toggle,copy, clipboard;\r\n var elements = element;\r\n if (typeof elements === 'undefined') {\r\n var elements = document.querySelectorAll('.example.example-compact');\r\n }\r\n\r\n for (var i = 0; i < elements.length; ++i) {\r\n var example = elements[i];\r\n var toggle = KTUtil.find(example, '.example-toggle');\r\n var copy = KTUtil.find(example, '.example-copy');\r\n\r\n // Handle toggle\r\n KTUtil.addEvent(toggle, 'click', function() {\r\n var example = this.closest('.example');\r\n var code = KTUtil.find(example, '.example-code');\r\n var the = this;\r\n\r\n if (KTUtil.hasClass(this, 'example-toggled')) {\r\n KTUtil.slideUp(code, 300, function() {\r\n KTUtil.removeClass(the, 'example-toggled');\r\n KTUtil.removeClass(code, 'example-code-on');\r\n KTUtil.hide(code);\r\n });\r\n } else {\r\n KTUtil.addClass(code, 'example-code-on');\r\n KTUtil.addClass(this, 'example-toggled');\r\n KTUtil.slideDown(code, 300, function() {\r\n KTUtil.show(code);\r\n });\r\n }\r\n });\r\n\r\n // Handle copy\r\n var clipboard = new ClipboardJS(copy, {\r\n target: function(trigger) {\r\n var example = trigger.closest('.example');\r\n var el = KTUtil.find(example, '.example-code .tab-pane.active');\r\n\r\n if (!el) {\r\n el = KTUtil.find(example, '.example-code');\r\n }\r\n\r\n return el;\r\n }\r\n });\r\n\r\n clipboard.on('success', function(e) {\r\n KTUtil.addClass(e.trigger, 'example-copied');\r\n e.clearSelection();\r\n\r\n setTimeout(function() {\r\n KTUtil.removeClass(e.trigger, 'example-copied');\r\n }, 2000);\r\n });\r\n }\r\n }\r\n\r\n return {\r\n init: function(element, options) {\r\n initDefaultMode(element);\r\n initCompactMode(element);\r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutExamples;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTOffcanvas = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n attrCustom: ''\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('offcanvas')) {\r\n the = KTUtil.data(element).get('offcanvas');\r\n } else {\r\n // Reset offcanvas\r\n Plugin.init(options);\r\n\r\n // Build offcanvas\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('offcanvas', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n the.classBase = the.options.baseClass;\r\n the.attrCustom = the.options.attrCustom;\r\n the.classShown = the.classBase + '-on';\r\n the.classOverlay = the.classBase + '-overlay';\r\n the.target;\r\n\r\n the.state = KTUtil.hasClass(element, the.classShown) ? 'shown' : 'hidden';\r\n },\r\n\r\n build: function() {\r\n // offcanvas toggle\r\n if (the.options.toggleBy) {\r\n if (typeof the.options.toggleBy === 'string') {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n } else if (the.options.toggleBy && the.options.toggleBy[0]) {\r\n if (the.options.toggleBy[0].target) {\r\n for (var i in the.options.toggleBy) {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i].target), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n } else {\r\n for (var i in the.options.toggleBy) {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i]), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n }\r\n\r\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\r\n KTUtil.addEvent( KTUtil.getById(the.options.toggleBy.target), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n }\r\n\r\n // offcanvas close\r\n var closeBy = KTUtil.getById(the.options.closeBy);\r\n if (closeBy) {\r\n KTUtil.addEvent(closeBy, 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.hide();\r\n });\r\n }\r\n },\r\n\r\n isShown: function() {\r\n return (the.state == 'shown' ? true : false);\r\n },\r\n\r\n toggle: function() {;\r\n Plugin.eventTrigger('toggle');\r\n\r\n if (the.state == 'shown') {\r\n Plugin.hide();\r\n } else {\r\n Plugin.show();\r\n }\r\n },\r\n\r\n show: function() {\r\n if (the.state == 'shown') {\r\n return;\r\n }\r\n\r\n Plugin.eventTrigger('beforeShow');\r\n\r\n Plugin.toggleClass('show');\r\n\r\n // Offcanvas panel\r\n KTUtil.attr(body, 'data-offcanvas-' + the.classBase, 'on');\r\n KTUtil.addClass(element, the.classShown);\r\n\r\n if (the.attrCustom.length > 0) {\r\n KTUtil.attr(body, 'data-offcanvas-' + the.classCustom, 'on');\r\n //KTUtil.addClass(body, the.classCustom);\r\n }\r\n\r\n the.state = 'shown';\r\n\r\n if (the.options.overlay) {\r\n the.overlay = KTUtil.insertAfter(document.createElement('DIV') , element );\r\n KTUtil.addClass(the.overlay, the.classOverlay);\r\n\r\n KTUtil.addEvent(the.overlay, 'click', function(e) {\r\n //e.stopPropagation();\r\n e.preventDefault();\r\n Plugin.hide(the.target);\r\n });\r\n }\r\n\r\n Plugin.eventTrigger('afterShow');\r\n },\r\n\r\n hide: function() {\r\n if (the.state == 'hidden') {\r\n return;\r\n }\r\n\r\n Plugin.eventTrigger('beforeHide');\r\n\r\n Plugin.toggleClass('hide');\r\n\r\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.classBase);\r\n KTUtil.removeClass(element, the.classShown);\r\n\r\n if (the.attrCustom.length > 0) {\r\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.attrCustom);\r\n }\r\n\r\n the.state = 'hidden';\r\n\r\n if (the.options.overlay && the.overlay) {\r\n KTUtil.remove(the.overlay);\r\n }\r\n\r\n Plugin.eventTrigger('afterHide');\r\n },\r\n\r\n toggleClass: function(mode) {\r\n var id = KTUtil.attr(the.target, 'id');\r\n var toggleBy;\r\n\r\n if (the.options.toggleBy && the.options.toggleBy[0] && the.options.toggleBy[0].target) {\r\n for (var i in the.options.toggleBy) {\r\n if (the.options.toggleBy[i].target === id) {\r\n toggleBy = the.options.toggleBy[i];\r\n }\r\n }\r\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\r\n toggleBy = the.options.toggleBy;\r\n }\r\n\r\n if (toggleBy) {\r\n var el = KTUtil.getById(toggleBy.target);\r\n\r\n if (mode === 'show') {\r\n KTUtil.addClass(el, toggleBy.state);\r\n }\r\n\r\n if (mode === 'hide') {\r\n KTUtil.removeClass(el, toggleBy.state);\r\n }\r\n }\r\n },\r\n\r\n eventTrigger: function(name, args) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the, args);\r\n }\r\n } else {\r\n return event.handler.call(this, the, args);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n * @param options\r\n */\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Check if canvas is shown\r\n * @returns {boolean}\r\n */\r\n the.isShown = function() {\r\n return Plugin.isShown();\r\n };\r\n\r\n /**\r\n * Set to hide the canvas\r\n */\r\n the.hide = function() {\r\n return Plugin.hide();\r\n };\r\n\r\n /**\r\n * Set to show the canvas\r\n */\r\n the.show = function() {\r\n return Plugin.show();\r\n };\r\n\r\n /**\r\n * Attach event\r\n * @param name\r\n * @param handler\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n * @param name\r\n * @param handler\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTOffcanvas;\r\n}\r\n\nexport default KTOffcanvas;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTScrolltop = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n offset: 300,\r\n speed: 6000\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {mscrolltop}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('scrolltop')) {\r\n the = KTUtil.data(element).get('scrolltop');\r\n } else {\r\n // reset scrolltop\r\n Plugin.init(options);\r\n\r\n // build scrolltop\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('scrolltop', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles subscrolltop click toggle\r\n * @returns {mscrolltop}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n },\r\n\r\n build: function() {\r\n var timer;\r\n\r\n window.addEventListener('scroll', function() {\r\n KTUtil.throttle(timer, function() {\r\n Plugin.handle();\r\n }, 200);\r\n });\r\n\r\n // handle button click\r\n KTUtil.addEvent(element, 'click', Plugin.scroll);\r\n },\r\n\r\n /**\r\n * Handles scrolltop click scrollTop\r\n */\r\n handle: function() {\r\n var pos = KTUtil.getScrollTop(); // current vertical position\r\n\r\n if (pos > the.options.offset) {\r\n if (body.hasAttribute('data-scrolltop') === false) {\r\n body.setAttribute('data-scrolltop', 'on');\r\n }\r\n } else {\r\n if (body.hasAttribute('data-scrolltop') === true) {\r\n body.removeAttribute('data-scrolltop');\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Handles scrolltop click scrollTop\r\n */\r\n scroll: function(e) {\r\n e.preventDefault();\r\n\r\n KTUtil.scrollTop(0, the.options.speed);\r\n },\r\n\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, args) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the, args);\r\n }\r\n } else {\r\n return event.handler.call(this, the, args);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Get subscrolltop mode\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Set scrolltop content\r\n * @returns {mscrolltop}\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTScrolltop;\r\n}\r\n\nexport default KTScrolltop;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTToggle = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n targetToggleMode: 'class' // class|attribute\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('toggle')) {\r\n the = KTUtil.data(element).get('toggle');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('toggle', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles subtoggle click toggle\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n // Merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n //alert(the.options.target.tagName);\r\n the.target = KTUtil.getById(options.target);\r\n\r\n the.targetState = the.options.targetState;\r\n the.toggleState = the.options.toggleState;\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n the.state = KTUtil.hasClasses(the.target, the.targetState) ? 'on' : 'off';\r\n } else {\r\n the.state = KTUtil.hasAttr(the.target, 'data-' + the.targetState) ? KTUtil.attr(the.target, 'data-' + the.targetState) : 'off';\r\n }\r\n },\r\n\r\n /**\r\n * Setup toggle\r\n */\r\n build: function() {\r\n KTUtil.addEvent(element, 'mouseup', Plugin.toggle);\r\n },\r\n\r\n /**\r\n * Handles offcanvas click toggle\r\n */\r\n toggle: function(e) {\r\n Plugin.eventTrigger('beforeToggle');\r\n\r\n if (the.state == 'off') {\r\n Plugin.toggleOn();\r\n } else {\r\n Plugin.toggleOff();\r\n }\r\n\r\n Plugin.eventTrigger('afterToggle');\r\n\r\n e.preventDefault();\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles toggle click toggle\r\n */\r\n toggleOn: function() {\r\n Plugin.eventTrigger('beforeOn');\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n KTUtil.addClass(the.target, the.targetState);\r\n } else {\r\n KTUtil.attr(the.target, 'data-' + the.targetState, 'on');\r\n }\r\n\r\n if (the.toggleState) {\r\n KTUtil.addClass(element, the.toggleState);\r\n }\r\n\r\n the.state = 'on';\r\n\r\n Plugin.eventTrigger('afterOn');\r\n\r\n Plugin.eventTrigger('toggle');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles toggle click toggle\r\n */\r\n toggleOff: function() {\r\n Plugin.eventTrigger('beforeOff');\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n KTUtil.removeClass(the.target, the.targetState);\r\n } else {\r\n KTUtil.removeAttr(the.target, 'data-' + the.targetState);\r\n }\r\n\r\n if (the.toggleState) {\r\n KTUtil.removeClass(element, the.toggleState);\r\n }\r\n\r\n the.state = 'off';\r\n\r\n Plugin.eventTrigger('afterOff');\r\n\r\n Plugin.eventTrigger('toggle');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Get toggle state\r\n */\r\n the.getState = function() {\r\n return the.state;\r\n };\r\n\r\n /**\r\n * Toggle\r\n */\r\n the.toggle = function() {\r\n return Plugin.toggle();\r\n };\r\n\r\n /**\r\n * Toggle on\r\n */\r\n the.toggleOn = function() {\r\n return Plugin.toggleOn();\r\n };\r\n\r\n /**\r\n * Toggle off\r\n */\r\n the.toggleOff = function() {\r\n return Plugin.toggleOff();\r\n };\r\n\r\n /**\r\n * Attach event\r\n * @returns {KTToggle}\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n * @returns {KTToggle}\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTToggle;\r\n}\r\n\nexport default KTToggle;","\"use strict\";\r\n\r\nvar KTLayoutHeaderTopbar = function() {\r\n // Private properties\r\n\tvar _toggleElement;\r\n var _toggleObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n\t\t\t_toggleObject = new KTToggle(_toggleElement, {\r\n\t\t\t\ttarget: KTUtil.getBody(),\r\n\t\t\t\ttargetState: 'topbar-mobile-on',\r\n\t\t\t\ttoggleState: 'active',\r\n\t\t\t});\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _toggleElement = KTUtil.getById(id);\r\n\r\n\t\t\tif (!_toggleElement) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getToggleElement: function() {\r\n return _toggleElement;\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutHeaderTopbar;","\"use strict\";\r\n\r\nvar KTLayoutAsideMenu = function() {\r\n // Private properties\r\n var _element;\r\n var _menuObject;\r\n\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\tvar menuDesktopMode = (KTUtil.attr(_element, 'data-menu-dropdown') === '1' ? 'dropdown' : 'accordion');\r\n var scroll;\r\n\r\n\t\tif (KTUtil.attr(_element, 'data-menu-scroll') === '1') {\r\n\t\t\tscroll = {\r\n\t\t\t\trememberPosition: true, // remember position on page reload\r\n\t\t\t\theight: function() { // calculate available scrollable area height\r\n\t\t\t\t\tvar height = parseInt(KTUtil.getViewPort().height);\r\n\r\n\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\theight = height - KTLayoutBrand.getHeight();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\theight = height - (parseInt(KTUtil.css(_element, 'marginBottom')) + parseInt(KTUtil.css(_element, 'marginTop')));\r\n\r\n\t\t\t\t\treturn height;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t_menuObject = new KTMenu(_element, {\r\n\t\t\t// Vertical scroll\r\n\t\t\tscroll: scroll,\r\n\r\n\t\t\t// Submenu setup\r\n\t\t\tsubmenu: {\r\n\t\t\t\tdesktop: menuDesktopMode,\r\n\t\t\t\ttablet: 'accordion', // menu set to accordion in tablet mode\r\n\t\t\t\tmobile: 'accordion' // menu set to accordion in mobile mode\r\n\t\t\t},\r\n\r\n\t\t\t// Accordion setup\r\n\t\t\taccordion: {\r\n\t\t\t\texpandAll: false // allow having multiple expanded accordions in the menu\r\n\t\t\t}\r\n\t\t});\r\n\r\n // Disable menu click if aside is fixed and minimized\r\n _menuObject.on('submenuToggle', function(menu) {\r\n if (KTLayoutAside.isMinimized() === true && KTLayoutAside.isHoverable() === false) {\r\n return false;\r\n }\r\n });\r\n\r\n // Close aside offcanvas panel before page reload On tablet and mobile\r\n _menuObject.on('linkClick', function(menu) {\r\n if (KTUtil.isBreakpointDown('lg')) { // Tablet and mobile mode\r\n KTLayoutAside.getOffcanvas().hide(); // Hide offcanvas after general link click\r\n }\r\n });\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize menu\r\n _init();\r\n\t\t},\r\n\r\n\t\tgetElement: function() {\r\n\t\t\treturn _element;\r\n\t\t},\r\n\r\n getMenu: function() {\r\n\t\t\treturn _menuObject;\r\n\t\t},\r\n\r\n pauseDropdownHover: function(time) {\r\n\t\t\tif (_menuObject) {\r\n\t\t\t\t_menuObject.pauseDropdownHover(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcloseMobileOffcanvas: function() {\r\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\r\n\t\t\t\t_menuObject.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutAsideMenu;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTCard = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n toggleSpeed: 400,\r\n sticky: {\r\n releseOnReverse: false,\r\n offset: 300,\r\n zIndex: 101\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('card')) {\r\n the = KTUtil.data(element).get('card');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('card', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Init card\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n the.header = KTUtil.child(element, '.card-header');\r\n the.footer = KTUtil.child(element, '.card-footer');\r\n\r\n if (KTUtil.child(element, '.card-body')) {\r\n the.body = KTUtil.child(element, '.card-body');\r\n } else if (KTUtil.child(element, '.form')) {\r\n the.body = KTUtil.child(element, '.form');\r\n }\r\n },\r\n\r\n /**\r\n * Build Form Wizard\r\n */\r\n build: function() {\r\n // Remove\r\n var remove = KTUtil.find(the.header, '[data-card-tool=remove]');\r\n if (remove) {\r\n KTUtil.addEvent(remove, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.remove();\r\n });\r\n }\r\n\r\n // Reload\r\n var reload = KTUtil.find(the.header, '[data-card-tool=reload]');\r\n if (reload) {\r\n KTUtil.addEvent(reload, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.reload();\r\n });\r\n }\r\n\r\n // Toggle\r\n var toggle = KTUtil.find(the.header, '[data-card-tool=toggle]');\r\n if (toggle) {\r\n KTUtil.addEvent(toggle, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.toggle();\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Enable stickt mode\r\n */\r\n initSticky: function() {\r\n var lastScrollTop = 0;\r\n var offset = the.options.sticky.offset;\r\n\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n\t window.addEventListener('scroll', Plugin.onScrollSticky);\r\n },\r\n\r\n\t /**\r\n\t * Window scroll handle event for sticky card\r\n\t */\r\n\t onScrollSticky: function(e) {\r\n\t\t var offset = the.options.sticky.offset;\r\n\r\n\t\t if(isNaN(offset)) return;\r\n\r\n\t\t var st = KTUtil.getScrollTop();\r\n\r\n\t\t if (st >= offset && KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n\t\t\t Plugin.eventTrigger('stickyOn');\r\n\r\n\t\t\t KTUtil.addClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.updateSticky();\r\n\r\n\t\t } else if ((st*1.5) <= offset && KTUtil.hasClass(body, 'card-sticky-on')) {\r\n\t\t\t // Back scroll mode\r\n\t\t\t Plugin.eventTrigger('stickyOff');\r\n\r\n\t\t\t KTUtil.removeClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.resetSticky();\r\n\t\t }\r\n\t },\r\n\r\n updateSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n var top;\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on')) {\r\n if (the.options.sticky.position.top instanceof Function) {\r\n top = parseInt(the.options.sticky.position.top.call(this, the));\r\n } else {\r\n top = parseInt(the.options.sticky.position.top);\r\n }\r\n\r\n var left;\r\n if (the.options.sticky.position.left instanceof Function) {\r\n left = parseInt(the.options.sticky.position.left.call(this, the));\r\n } else {\r\n left = parseInt(the.options.sticky.position.left);\r\n }\r\n\r\n var right;\r\n if (the.options.sticky.position.right instanceof Function) {\r\n right = parseInt(the.options.sticky.position.right.call(this, the));\r\n } else {\r\n right = parseInt(the.options.sticky.position.right);\r\n }\r\n\r\n KTUtil.css(the.header, 'z-index', the.options.sticky.zIndex);\r\n KTUtil.css(the.header, 'top', top + 'px');\r\n KTUtil.css(the.header, 'left', left + 'px');\r\n KTUtil.css(the.header, 'right', right + 'px');\r\n }\r\n },\r\n\r\n resetSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n KTUtil.css(the.header, 'z-index', '');\r\n KTUtil.css(the.header, 'top', '');\r\n KTUtil.css(the.header, 'left', '');\r\n KTUtil.css(the.header, 'right', '');\r\n }\r\n },\r\n\r\n /**\r\n * Remove card\r\n */\r\n remove: function() {\r\n if (Plugin.eventTrigger('beforeRemove') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.remove(element);\r\n\r\n Plugin.eventTrigger('afterRemove');\r\n },\r\n\r\n /**\r\n * Set content\r\n */\r\n setContent: function(html) {\r\n if (html) {\r\n the.body.innerHTML = html;\r\n }\r\n },\r\n\r\n /**\r\n * Get body\r\n */\r\n getBody: function() {\r\n return the.body;\r\n },\r\n\r\n /**\r\n * Get self\r\n */\r\n getSelf: function() {\r\n return element;\r\n },\r\n\r\n /**\r\n * Reload\r\n */\r\n reload: function() {\r\n Plugin.eventTrigger('reload');\r\n },\r\n\r\n /**\r\n * Toggle\r\n */\r\n toggle: function() {\r\n if (KTUtil.hasClass(element, 'card-collapse') || KTUtil.hasClass(element, 'card-collapsed')) {\r\n Plugin.expand();\r\n } else {\r\n Plugin.collapse();\r\n }\r\n },\r\n\r\n /**\r\n * Collapse\r\n */\r\n collapse: function() {\r\n if (Plugin.eventTrigger('beforeCollapse') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.slideUp(the.body, the.options.toggleSpeed, function() {\r\n Plugin.eventTrigger('afterCollapse');\r\n });\r\n\r\n KTUtil.addClass(element, 'card-collapse');\r\n },\r\n\r\n /**\r\n * Expand\r\n */\r\n expand: function() {\r\n if (Plugin.eventTrigger('beforeExpand') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.slideDown(the.body, the.options.toggleSpeed, function() {\r\n Plugin.eventTrigger('afterExpand');\r\n });\r\n\r\n KTUtil.removeClass(element, 'card-collapse');\r\n KTUtil.removeClass(element, 'card-collapsed');\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n //KTUtil.triggerCustomEvent(name);\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Remove card\r\n */\r\n the.remove = function() {\r\n return Plugin.remove(html);\r\n };\r\n\r\n /**\r\n * Init sticky card\r\n */\r\n the.initSticky = function() {\r\n return Plugin.initSticky();\r\n };\r\n\r\n /**\r\n * Rerender sticky layout\r\n */\r\n the.updateSticky = function() {\r\n return Plugin.updateSticky();\r\n };\r\n\r\n /**\r\n * Reset the sticky\r\n */\r\n the.resetSticky = function() {\r\n return Plugin.resetSticky();\r\n };\r\n\r\n\t/**\r\n\t * Destroy sticky card\r\n\t */\r\n\tthe.destroySticky = function() {\r\n\t\tPlugin.resetSticky();\r\n\t\twindow.removeEventListener('scroll', Plugin.onScrollSticky);\r\n\t};\r\n\r\n /**\r\n * Reload card\r\n */\r\n the.reload = function() {\r\n return Plugin.reload();\r\n };\r\n\r\n /**\r\n * Set card content\r\n */\r\n the.setContent = function(html) {\r\n return Plugin.setContent(html);\r\n };\r\n\r\n /**\r\n * Toggle card\r\n */\r\n the.toggle = function() {\r\n return Plugin.toggle();\r\n };\r\n\r\n /**\r\n * Collapse card\r\n */\r\n the.collapse = function() {\r\n return Plugin.collapse();\r\n };\r\n\r\n /**\r\n * Expand card\r\n */\r\n the.expand = function() {\r\n return Plugin.expand();\r\n };\r\n\r\n /**\r\n * Get cardbody\r\n * @returns {jQuery}\r\n */\r\n the.getBody = function() {\r\n return Plugin.getBody();\r\n };\r\n\r\n /**\r\n * Get cardbody\r\n * @returns {jQuery}\r\n */\r\n the.getSelf = function() {\r\n return Plugin.getSelf();\r\n };\r\n\r\n /**\r\n * Attach event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTCard;\r\n}\r\n\nexport default KTCard;","\"use strict\";\r\n\r\nvar KTLayoutHeader = function() {\r\n // Private properties\r\n var _element;\r\n var _elementForMobile;\r\n var _object;\r\n\r\n\t// Private functions\r\n // Get Height\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element) + 1;\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Get Height\r\n var _getHeightForMobile = function() {\r\n var height;\r\n\r\n height = KTUtil.actualHeight(_elementForMobile);\r\n\r\n return height;\r\n }\r\n\r\n // Public Methods\r\n\treturn {\r\n\t\tinit: function(id, idForMobile) {\r\n _element = KTUtil.getById(id);\r\n _elementForMobile = KTUtil.getById(idForMobile);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'header-fixed')\r\n },\r\n\r\n isFixedForMobile: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'header-mobile-fixed')\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getElementForMobile: function() {\r\n return _elementForMobile;\r\n },\r\n\r\n getHeader: function() {\r\n return _object;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n },\r\n\r\n getHeightForMobile: function() {\r\n return _getHeightForMobile();\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutHeader;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n// DOCS: https://javascript.info/cookie\r\n\r\n// Component Definition \r\nvar KTCookie = function() {\r\n return {\r\n // returns the cookie with the given name,\r\n // or undefined if not found\r\n getCookie: function(name) {\r\n var matches = document.cookie.match(new RegExp(\r\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\r\n ));\r\n return matches ? decodeURIComponent(matches[1]) : undefined;\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 setCookie: function(name, value, options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n\r\n options = Object.assign({}, {path: '/'}, options);\r\n\r\n if (options.expires instanceof Date) {\r\n options.expires = options.expires.toUTCString();\r\n }\r\n\r\n var updatedCookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\r\n\r\n for (var optionKey in options) {\r\n if (!options.hasOwnProperty(optionKey)) {\r\n continue;\r\n }\r\n updatedCookie += \"; \" + optionKey;\r\n var 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 // To delete a cookie, we can call it with a negative expiration date:\r\n deleteCookie: function(name) {\r\n setCookie(name, \"\", {\r\n 'max-age': -1\r\n })\r\n }\r\n }\r\n}();\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTCookie;\r\n}\r\n\nexport default KTCookie;","\"use strict\";\r\n\r\nvar KTLayoutHeaderMenu = function() {\r\n // Private properties\r\n\tvar _menuElement;\r\n var _menuObject;\r\n var _offcanvasElement;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n\tvar _init = function() {\r\n\t\t_offcanvasObject = new KTOffcanvas(_offcanvasElement, {\r\n\t\t\toverlay: true,\r\n\t\t\tbaseClass: 'header-menu-wrapper',\r\n\t\t\tcloseBy: 'kt_header_menu_mobile_close_btn',\r\n\t\t\ttoggleBy: {\r\n\t\t\t\ttarget: 'kt_header_mobile_toggle',\r\n\t\t\t\tstate: 'mobile-toggle-active'\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\t_menuObject = new KTMenu(_menuElement, {\r\n\t\t\tsubmenu: {\r\n\t\t\t\tdesktop: 'dropdown',\r\n\t\t\t\ttablet: 'accordion',\r\n\t\t\t\tmobile: 'accordion'\r\n\t\t\t},\r\n\t\t\taccordion: {\r\n\t\t\t\tslideSpeed: 200, // accordion toggle slide speed in milliseconds\r\n\t\t\t\texpandAll: false // allow having multiple expanded accordions in the menu\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Close aside offcanvas panel before page reload On tablet and mobile\r\n _menuObject.on('linkClick', function(menu) {\r\n if (KTUtil.isBreakpointDown('lg')) { // Tablet and mobile mode\r\n _offcanvasObject.hide(); // Hide offcanvas after general link click\r\n }\r\n });\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n init: function(menuId, offcanvasId) {\r\n _menuElement = KTUtil.getById(menuId);\r\n _offcanvasElement = KTUtil.getById(offcanvasId);\r\n\r\n if (!_menuElement) {\r\n return;\r\n }\r\n\r\n // Initialize menu\r\n _init();\r\n\t\t},\r\n\r\n\t\tgetMenuElement: function() {\r\n\t\t\treturn _menuElement;\r\n\t\t},\r\n\r\n getOffcanvasElement: function() {\r\n\t\t\treturn _offcanvasElement;\r\n\t\t},\r\n\r\n getMenu: function() {\r\n\t\t\treturn _menuObject;\r\n\t\t},\r\n\r\n\t\tpauseDropdownHover: function(time) {\r\n\t\t\tif (_menuObject) {\r\n\t\t\t\t_menuObject.pauseDropdownHover(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n getOffcanvas: function() {\r\n\t\t\treturn _offcanvasObject;\r\n\t\t},\r\n\r\n\t\tcloseMobileOffcanvas: function() {\r\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\r\n\t\t\t\t_offcanvasObject.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutHeaderMenu;","\"use strict\";\r\n\r\nvar KTLayoutAside = function() {\r\n // Private properties\r\n var _body;\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\tvar offcanvasClass = KTUtil.hasClass(_element, 'aside-offcanvas-default') ? 'aside-offcanvas-default' : 'aside';\r\n\r\n // Initialize mobile aside offcanvas\r\n\t\t_offcanvasObject = new KTOffcanvas(_element, {\r\n\t\t\tbaseClass: offcanvasClass,\r\n\t\t\toverlay: true,\r\n\t\t\tcloseBy: 'kt_aside_close_btn',\r\n\t\t\ttoggleBy: {\r\n\t\t\t\ttarget: 'kt_aside_mobile_toggle',\r\n\t\t\t\tstate: 'mobile-toggle-active'\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Handle Minimized Aside Hover\r\n\t\tif (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize-hoverable')) {\r\n\t\t\tvar insideTm;\r\n\t\t\tvar outsideTm;\r\n\r\n // Handle Aside Hover Mode\r\n\t\t\tKTUtil.addEvent(_element, 'mouseenter', function(e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif (KTUtil.isBreakpointUp('lg') === false) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (outsideTm) {\r\n\t\t\t\t\tclearTimeout(outsideTm);\r\n\t\t\t\t\toutsideTm = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinsideTm = setTimeout(function() {\r\n\t\t\t\t\tif (KTUtil.hasClass(_body, 'aside-minimize') && KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\tKTUtil.removeClass(_body, 'aside-minimize');\r\n\r\n\t\t\t\t\t\t// Hover class\r\n\t\t\t\t\t\tKTUtil.addClass(_body, 'aside-minimize-hover');\r\n\r\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollUpdate();\r\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollTop();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 50);\r\n\t\t\t});\r\n\r\n\t\t\tKTUtil.addEvent(_element, 'mouseleave', function(e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif (KTUtil.isBreakpointUp('lg') === false) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (insideTm) {\r\n\t\t\t\t\tclearTimeout(insideTm);\r\n\t\t\t\t\tinsideTm = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toutsideTm = setTimeout(function() {\r\n\t\t\t\t if (KTUtil.hasClass(_body, 'aside-minimize-hover') && KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t KTUtil.removeClass(_body, 'aside-minimize-hover');\r\n\t\t\t\t\t KTUtil.addClass(_body, 'aside-minimize');\r\n\r\n\t\t\t\t\t\t// Hover class\r\n KTLayoutAsideMenu.getMenu().scrollUpdate();\r\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollTop();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 100);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n _body = KTUtil.getBody();\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getOffcanvas: function() {\r\n return _offcanvasObject;\r\n },\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(_body, 'aside-fixed');\r\n },\r\n\r\n isMinimized: function() {\r\n return (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize'));\r\n },\r\n\r\n isHoverable: function() {\r\n return (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize-hoverable'));\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutAside;"],"sourceRoot":""}