{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/js/layout/base/aside-toggle.js","webpack:///./src/core/store/snackbar.module.js","webpack:///./src/core/store/index.js","webpack:///./src/core/services/jwt.service.js","webpack:///./src/core/store/forgotPassword.module.js","webpack:///./src/assets/js/components/image-input.js","webpack:///./src/core/store/crud.module.js","webpack:///./src/App.vue?422e","webpack:///src/App.vue","webpack:///./src/App.vue?3359","webpack:///./src/App.vue?2667","webpack:///./src/router.js","webpack:///./src/core/plugins/snackbar.js","webpack:///./src/core/helpers/httpInterceptors.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/tiptap-vuetify.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/header-topbar.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/examples.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/search.js","webpack:///./src/core/plugins/metronic.js","webpack:///./src/main.js","webpack:///./src/App.vue?30f2","webpack:///./src/assets/js/components/header.js","webpack:///./src/core/store/auth.module.js","webpack:///./src/assets/js/layout/extended/scrolltop.js","webpack:///./src/assets/js/components/menu.js","webpack:///./src/core/services/api.service.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/components/offcanvas.js","webpack:///./src/assets/js/components/scrolltop.js","webpack:///./src/core/store/breadcrumbs.module.js","webpack:///./src/assets/js/components/toggle.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/core/store/config.module.js","webpack:///./src/assets/js/components/cookie.js","webpack:///./src/assets/js/layout/base/header-menu.js","webpack:///./src/core/store/htmlclass.module.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","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","namespaced","state","content","color","mutations","showMessage","payload","Vue","use","Vuex","Store","auth","crud","htmlClass","config","breadcrumbs","snackbar","forgotPassword","ID_TOKEN_KEY","getToken","localStorage","getItem","saveToken","token","setItem","destroyToken","removeItem","API_GENERATE_RESET_PASSWORD_CODE","API_RESET_PASSWORD","FORGOT_PASSWORD","RESET_PASSWORD","getters","actions","context","email","ApiService","post","success","response","password","confirmPassword","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","GET_QUERY","GET_PAGED","POST_DATA","POST_DATA_2","PUT_DATA","DELETE","SET_QUERY_RESULT","SET_ERROR","SET_INVALID_RESPONSE","SET_DATA","API_USERS","API_CUSTOMERS","API_ORANGE_REPORT_SERVICES","API_ORANGE_REPORTS","API_EMPLOYEES","API_WEATHER","API_PHOTO_UPLOAD","API_FILE_UPLOAD","API_SERVICE_REQUESTS","API_SERVICE_REQUEST_TYPES","API_SERVICE_REQUEST_PRIORITIES","API_MESSAGES","API_KUDOS","API_CURRENT_USER_INFO","API_USER_INFO","API_NOTIFICATIONS","API_FOLDERS","API_QUARTERLY_PLAN_TEMPLATES","API_REPORTS","API_USER_EXISTS","errors","hasResponseErrors","responseErrors","objToProcess","text","String","keys","forEach","k","url","listName","query","qs","stringify","params","getQuery","commit","statePoint","catch","slug","trimEnd","postfix","validationErrors","put","delete","invalidResponse","_vm","_h","$createElement","_c","_self","staticRenderFns","mounted","component","VApp","Router","routes","path","redirect","children","meta","requiresAuth","role","props","snackbarPlugin","install","store","$snackbar","root","register","axios","interceptors","headers","common","Authorization","JwtService","ex","status","router","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","i18n","Vuetify","theme","customProperties","themes","light","primary","secondary","accent","info","warning","PortalVue","BootstrapVue","IconsPlugin","PerfectScrollbar","VueHighlightJS","languages","scss","javascript","json","vue","InlineSvgPlugin","vuetify","TiptapVuetifyPlugin","iconsGroup","VueApexCharts","KTLayoutContent","_getHeight","height","getViewPort","parseInt","KTLayoutHeader","getHeight","KTLayoutSubheader","KTLayoutFooter","actualHeight","KTLayoutHeaderTopbar","_toggleElement","getToggleElement","_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","KTLayoutExamples","initDefaultMode","elements","querySelectorAll","example","copy","clipboard","ClipboardJS","trigger","closest","el","clearSelection","initCompactMode","slideUp","hide","slideDown","show","KTLayoutQuickActions","header","KTOffcanvas","overlay","baseClass","placement","closeBy","toggleBy","disableForMobile","KTLayoutQuickCartPanel","footer","KTLayoutQuickNotifications","KTLayoutQuickPanel","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","_initNotifications","_initLogs","_initSettings","KTLayoutQuickSearch","form","results","KTLayoutSearch","_target","_form","_input","_closeIcon","_resultWrapper","_resultDropdown","_resultDropdownToggle","_closeIconContainer","_query","_hasResult","_timeout","_isProcessing","_requestTimeout","_spinnerClass","_resultClass","_minLength","_showProgress","_hideProgress","_showDropdown","$","dropdown","_hideDropdown","_processSearch","scrollUpdate","ajax","HOST_URL","dataType","res","_handleCancel","_handleSearch","onkeypress","charCode","KTDialog","KTHeader","KTMenu","KTScrolltop","KTWizard","KTLayoutAside","KTLayoutBrand","KTLayoutQuickUser","KTLayoutScrolltop","productionTip","beforeEach","to","from","next","rootStore","isAuthenticated","default","matched","some","record","needsRoleCheck","fullPath","user","userInfo","dispatch","REFRESH","userRole","isAuthorized","userRoles","split","indexOf","customerViewRoles","employeeViewRoles","RESET_LAYOUT_CONFIG","scrollTo","httpInterceptors","VueKonva","render","h","App","$mount","desktop","tabletAndMobile","releseOnReverse","eventTriggerState","lastScrollTop","addEventListener","st","getScrollTop","hasAttribute","removeAttribute","args","API_TOKEN","API_TOKEN_REFRESH","LOGOUT","PURGE_AUTH","SET_AUTH","roles","username","error_description","speed","accordion","slideSpeed","autoScroll","autoScrollSpeed","expandAll","reset","eventHandlers","pauseDropdownHoverTime","uid","getUniqueID","reload","resetSubmenuProps","handleSubmenuAccordion","getSubmenuMode","isConditionalSubmenuDropdown","handleSubmenuDrodownHoverEnter","handleSubmenuDrodownHoverExit","handleSubmenuDropdownClick","handleSubmenuDropdownTabClick","handleLinkClick","off","scrollDestroy","isset","submenu","hasClasses","tablet","mobile","submenus","findAll","len","resumeDropdownHover","item","showSubmenuDropdown","time","hideSubmenuDropdown","hideSubmenuDropdowns","handleSubmenuDropdownClose","shown","li","child","subnav","closables","el_","submenu_","scrollToItem","classAlso","items","cnt","list","contains","isOffscreen","createSubmenuDropdownClickDropoff","dropoff","stopPropagation","date","resetActiveItem","parents","i_","len_","setActiveItem","getBreadcrumbs","link","innerHTML","title","submenuLink","reverse","getPageTitle","removeEvent","scrollReInit","hideDropdown","hideDropdowns","getByTagName","baseUrl","process","VueAxios","defaults","baseURL","setHeader","resource","postFormData","base64toBlob","base64Data","contentType","sliceSize","byteCharacters","atob","bytesLength","slicesCount","Math","ceil","byteArrays","Array","sliceIndex","begin","end","min","bytes","charCodeAt","Uint8Array","Blob","startStep","clickableSteps","steps","btnSubmit","btnNext","btnPrev","btnLast","btnFirst","currentStep","stopped","totalSteps","goTo","updateUI","getNextStep","getPrevStep","getFirstStep","getLastStep","index","number","eventHandle","log","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","max","arr","configurable","writable","argArr","arguments","docFrag","createDocumentFragment","argItem","isNode","Node","createTextNode","insertBefore","firstChild","Document","DocumentFragment","getAttributeNames","attributes","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","unescape","isMobileDevice","test","width","getBreakpoint","navigator","userAgent","match","isDesktopDevice","a","isInResponsiveRange","breakpoint","prefix","floor","random","obj","stone","getHighestZindex","isNaN","hasFixedPositionedParent","sleep","milliseconds","getRandomInt","isAngularVersion","Zone","out","extend","getElementById","getByTag","getByClass","getElementsByClassName","classes","classesArr","trim","className","classList","RegExp","classNames","add","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","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","animateClass","animationName","animation","animations","OAnimation","MozAnimation","WebkitAnimation","msAnimation","transitionEnd","transition","transitions","OTransition","MozTransition","WebkitTransition","msTransition","animationEnd","animateDelay","animateDuration","targetPos","scrollPos","isArray","ready","attachEvent","readyState","isEmpty","numberString","nStr","x1","x2","rgx","detectIE","ua","msie","trident","rv","edge","isRTL","pluginDefOptions","wheelSpeed","swipeEasing","wheelPropagation","minScrollbarLength","maxScrollbarLength","suppressScrollX","attrs","attrName","includes","optionName","filterBoolean","Function","mobileHeight","destroy","scrollUpdateAll","scrollers","resetAll","setProperty","getHTML","getDocumentHeight","scrollHeight","clientHeight","scrollingElement","colorDarken","amount","subtractLight","cc","toString","colorLighten","addLight","func","delay","debounce","btnWait","cls","disable","caption","btnRelease","direction","windowWidth","windowHeight","KTAppSettings","attrCustom","classBase","classShown","classOverlay","isShown","toggleClass","classCustom","handle","APPEND_BREADCRUM","SET_BREADCRUMB","ADD_BREADCRUMB","pageTitle","last","targetToggleMode","toggleOn","toggleOff","_menuObject","menuDesktopMode","menu","isMinimized","isHoverable","getOffcanvas","getMenu","closeMobileOffcanvas","toggleSpeed","onScrollSticky","resetSticky","setContent","getSelf","expand","collapse","destroySticky","_elementForMobile","_getHeightForMobile","idForMobile","getElementForMobile","getHeader","SET_LAYOUT_CONFIG","OVERRIDE_LAYOUT_CONFIG","OVERRIDE_PAGE_LAYOUT_CONFIG","initial","layoutConfig","defaultValue","objectPath","assign","JSON","parse","merge","cookie","decodeURIComponent","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","deleteCookie","_menuElement","_offcanvasElement","_offcanvasObject","menuId","offcanvasId","getMenuElement","getOffcanvasElement","ADD_BODY_CLASSNAME","REMOVE_BODY_CLASSNAME","ADD_CLASSNAME","SET_CLASSNAME_BY_POSITION","getClasses","insideTm","outsideTm","offcanvasClass"],"mappings":"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AAW,kBAAM,kIACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,oBACN1M,KAAM,oBACNgN,OAAO,EACPV,UAAW,kBAAM,kIACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,oBACN1M,KAAM,kBACNsM,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,sCACN1M,KAAM,uBACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,kBACN1M,KAAM,gBACNsM,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,+BACN1M,KAAM,iBACNsM,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,2CACN1M,KAAM,cACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,WACN1M,KAAM,UACNsM,UAAW,kBAAM,4GACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,YACN1M,KAAM,WACNsM,UAAW,kBAAM,4GACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,0BACN1M,KAAM,uBACNsM,UAAW,kBAAM,sFACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,yBACN1M,KAAM,kBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACE/M,KAAM,qBACN0M,KAAM,4CACNM,OAAO,EACPV,UAAW,kBAAM,iDACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACE/M,KAAM,mBACN0M,KAAM,kCACNM,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,4CACN1M,KAAM,kBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,wBACN1M,KAAM,4BACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CAAC,iBAGX,CACEL,KAAM,uDACN1M,KAAM,mBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,uDACN1M,KAAM,mBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,gDACN1M,KAAM,+BACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,oCACN1M,KAAM,gBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,8CACN1M,KAAM,qBACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,sDACN1M,KAAM,4BACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,+DACN1M,KAAM,6BACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,0DACN1M,KAAM,gCACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAKN,CACEL,KAAM,+BACN1M,KAAM,iBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,4CACN1M,KAAM,gBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,mCACN1M,KAAM,mBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,4CACN1M,KAAM,oBACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAKN,CACEL,KAAM,uCACN1M,KAAM,iCACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,4DACN1M,KAAM,gCACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,2CACN1M,KAAM,mCACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,wDACN1M,KAAM,oCACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAMN,CACEL,KAAM,iBACN1M,KAAM,yBACNgN,OAAO,EACPV,UAAW,kBACT,sFAGFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,oBAIN,CACEL,KAAM,qBACN1M,KAAM,2BACNgN,OAAO,EACPV,UAAW,kBACT,sFAGFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,oBAIN,CACEL,KAAM,kCACN1M,KAAM,4BACNgN,OAAO,EACPV,UAAW,kBACT,4GAGFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,oBAMN,CACEL,KAAM,wCACN1M,KAAM,gBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,kCACN1M,KAAM,WACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,sCACN1M,KAAM,aACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,mCACN1M,KAAM,YACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,uCACN1M,KAAM,cACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,mCACN1M,KAAM,YACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,uCACN1M,KAAM,cACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,kCACN1M,KAAM,mBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,sCACN1M,KAAM,qBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,kDACN1M,KAAM,sBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,kCACN1M,KAAM,mBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,sCACN1M,KAAM,4BACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,0BAIN,CACEL,KAAM,oDACN1M,KAAM,+BACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,YACA,eACA,iBACA,oBACA,mBACA,iBACA,kBACA,cACA,4BAqBV,CACEL,KAAM,SACN1M,KAAM,QACNsM,UAAW,kBAAM,iDACjBM,SAAU,CACR,CACEF,KAAM,UACN1M,KAAM,UACNsM,UAAW,kBAAM,kDAEnB,CACEI,KAAM,UACN1M,KAAM,UACNsM,UAAW,kBAAM,kDAEnB,CACEI,KAAM,UACN1M,KAAM,UACNsM,UAAW,kBAAM,kDAEnB,CACEI,KAAM,UACN1M,KAAM,UACNsM,UAAW,kBAAM,kDAEnB,CACEI,KAAM,UACN1M,KAAM,UACNsM,UAAW,kBAAM,kDAEnB,CACEI,KAAM,UACN1M,KAAM,UACNsM,UAAW,kBAAM,oDAIvB,CACEI,KAAM,IACNJ,UAAW,kBAAM,iDACjBM,SAAU,CACR,CACE5M,KAAM,QACN0M,KAAM,SACNJ,UAAW,kBAAM,6GAEnB,CACEtM,KAAM,iBACN0M,KAAM,kBACNJ,UAAW,kBAAM,6GAEnB,CACEtM,KAAM,gBACN0M,KAAM,iBACNJ,UAAW,kBAAM,+GAIvB,CACEI,KAAM,IACNJ,UAAW,kBAAM,iDACjBM,SAAU,CACR,CACE5M,KAAM,uBACN0M,KAAM,4BACNJ,UAAW,kBAAM,qIAIvB,CACEI,KAAM,IACNJ,UAAW,kBAAM,4GACjBM,SAAU,CACR,CACE5M,KAAM,wBACN0M,KAAM,0BACNJ,UAAW,kBACT,iDACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACE/M,KAAM,uBACN0M,KAAM,qCACNM,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACE/M,KAAM,eACN0M,KAAM,4BACNM,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,iDACN1M,KAAM,iCACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,yDACN1M,KAAM,wCACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,kEACN1M,KAAM,yCACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,kCACN1M,KAAM,6BACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,+CACN1M,KAAM,4BACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,2CACN1M,KAAM,4BACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,0DACN1M,KAAM,+BACNgN,OAAO,EACPV,UAAW,kBACT,wJACFO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,qCACN1M,KAAM,uBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,sCACN1M,KAAM,wBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,0CACN1M,KAAM,0BACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,sCACN1M,KAAM,wBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,qCACN1M,KAAM,uBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,yCACN1M,KAAM,yBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,qDACN1M,KAAM,0BACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,sCACN1M,KAAM,wBACNgN,OAAO,EACPV,UAAW,kBAAM,wJACjBO,KAAM,CACJC,cAAc,EACdC,KAAM,CACJ,mBACA,eACA,WACA,kBACA,iCACA,yBAIN,CACEL,KAAM,qCACN1M,KAAM,uBACNgN,OAAO,EACPV,UAAW,kB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","file":"js/app.0eac5269.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-02cb6c96\":\"a5c47432\",\"chunk-0eec6ca6\":\"4692900d\",\"chunk-10eb160e\":\"accdca53\",\"chunk-212eccd8\":\"965b14c5\",\"chunk-5d501d84\":\"e1fc98f9\",\"chunk-06307e10\":\"0cca4cb2\",\"chunk-0d397f55\":\"5c06e783\",\"chunk-1570d51a\":\"046e2fa8\",\"chunk-15b7e522\":\"1d4a6159\",\"chunk-173a263e\":\"aeabb838\",\"chunk-1a03f250\":\"d0282f5b\",\"chunk-1cabcb74\":\"fc017bc1\",\"chunk-2aeb2059\":\"4f579e40\",\"chunk-2b00bb28\":\"bc87a3cf\",\"chunk-2b0f16c3\":\"ae9ff628\",\"chunk-2b5ee846\":\"5f7850cd\",\"chunk-2e0a0668\":\"9c86866e\",\"chunk-3cf1ec88\":\"a90c5ab5\",\"chunk-3fe81805\":\"6e1de1ba\",\"chunk-3ff0f3f8\":\"bb8ceb50\",\"chunk-4198b60f\":\"db8dd498\",\"chunk-46400760\":\"e12f31e1\",\"chunk-4cea12aa\":\"b5288e97\",\"chunk-54001697\":\"97101bd9\",\"chunk-5d8c0785\":\"51c87c52\",\"chunk-612fc41a\":\"b9b05f2d\",\"chunk-640f54d6\":\"2cb964fa\",\"chunk-67c4780e\":\"3c40bfba\",\"chunk-6dadc5e9\":\"bc45e530\",\"chunk-73912a52\":\"59175cdf\",\"chunk-74fc0675\":\"c1bdd784\",\"chunk-7ad466b2\":\"48907d66\",\"chunk-952eb9ba\":\"ad72f825\",\"chunk-99c7a0ca\":\"5b314d7a\",\"chunk-9f4e9ffa\":\"884d9997\",\"chunk-b0192892\":\"145c8210\",\"chunk-b16d92c6\":\"fd812f05\",\"chunk-d2d670b4\":\"b6fdc31f\",\"chunk-f422d394\":\"4d5a9667\",\"chunk-f4f086b0\":\"29c935ce\",\"chunk-fb446e9e\":\"11e7cd23\",\"chunk-fb52b3b8\":\"88c1c1e9\",\"chunk-0ac8f7ac\":\"6f6fdce9\",\"chunk-0c953ea8\":\"81471633\",\"chunk-160081ff\":\"225f78dd\",\"chunk-255fed39\":\"7bc403e3\",\"chunk-28e7fc65\":\"820d88d6\",\"chunk-365d1eee\":\"1e3b468b\",\"chunk-47fd02e1\":\"0d516d53\",\"chunk-61dc9819\":\"a5c0fc68\",\"chunk-668ff8c3\":\"61c01575\",\"chunk-765d5469\":\"826eb372\",\"chunk-7c1d29dd\":\"de5fb070\",\"chunk-ad56bb48\":\"54e40da8\",\"chunk-c29d55e8\":\"c262afa4\",\"chunk-dae2929c\":\"7ae11baf\",\"chunk-fe7f4d02\":\"62a47dc1\",\"chunk-231f6706\":\"edf1bfc1\",\"chunk-325b0ae7\":\"dfc1eaaf\",\"chunk-6a0e0de5\":\"c42c1ffd\",\"chunk-58b488f5\":\"e2f94b43\",\"chunk-8d106526\":\"715f3565\",\"chunk-6ac2a68e\":\"315f3f95\",\"chunk-54affbfc\":\"9610ab91\",\"chunk-2d0e59f0\":\"84e19b2e\",\"chunk-2284ad1e\":\"88e65203\",\"chunk-29d81439\":\"5d98cfde\",\"chunk-6ddde932\":\"0d75ce18\",\"chunk-5115f92c\":\"dfe93a12\",\"chunk-05a7ef7b\":\"31965d3a\",\"chunk-63c6a691\":\"06d3852e\",\"chunk-46f822c3\":\"e80788f4\",\"chunk-26b70a8d\":\"6f6216b0\",\"chunk-2d0dd662\":\"30c89592\",\"chunk-38b3aefa\":\"3251aa8b\",\"chunk-d88ca00a\":\"95cd426c\",\"chunk-21cb61f8\":\"99baa330\",\"chunk-4c3abdc0\":\"c0724639\",\"chunk-6d4fb574\":\"68f32454\",\"chunk-2e6b6d55\":\"9f06dfd8\",\"chunk-2d0ae938\":\"2f12460c\",\"chunk-38394660\":\"e6baf039\",\"chunk-243b0dd0\":\"68351115\",\"chunk-2d0c0c06\":\"8dcc6bf7\",\"chunk-2d0e1b9e\":\"95e60c2a\",\"chunk-2d216256\":\"c7ac2d03\",\"chunk-2d216f4c\":\"39162321\",\"chunk-2db99c84\":\"099f0b9b\",\"chunk-487ea62e\":\"6b46abea\",\"chunk-558578a4\":\"85b4202d\",\"chunk-72631787\":\"4be5f4f9\",\"chunk-77d5e372\":\"fec4d8d1\",\"chunk-87130516\":\"7a04b23d\",\"chunk-f4b02d80\":\"a269be4a\",\"chunk-743e4b25\":\"73613561\",\"chunk-74524b79\":\"aa149a39\",\"chunk-746154ec\":\"55c7829f\",\"chunk-7498e9ec\":\"e1fc1f55\",\"chunk-74a82e1a\":\"63f2aa9c\",\"chunk-74b6aca8\":\"1db3cf23\",\"chunk-76f08193\":\"8b34e8ec\",\"chunk-771a7e38\":\"a931713b\"}[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-02cb6c96\":1,\"chunk-10eb160e\":1,\"chunk-212eccd8\":1,\"chunk-06307e10\":1,\"chunk-0d397f55\":1,\"chunk-1570d51a\":1,\"chunk-15b7e522\":1,\"chunk-173a263e\":1,\"chunk-1a03f250\":1,\"chunk-1cabcb74\":1,\"chunk-2aeb2059\":1,\"chunk-2b00bb28\":1,\"chunk-2b0f16c3\":1,\"chunk-2b5ee846\":1,\"chunk-2e0a0668\":1,\"chunk-3cf1ec88\":1,\"chunk-3fe81805\":1,\"chunk-3ff0f3f8\":1,\"chunk-4198b60f\":1,\"chunk-46400760\":1,\"chunk-4cea12aa\":1,\"chunk-54001697\":1,\"chunk-5d8c0785\":1,\"chunk-612fc41a\":1,\"chunk-640f54d6\":1,\"chunk-67c4780e\":1,\"chunk-6dadc5e9\":1,\"chunk-73912a52\":1,\"chunk-74fc0675\":1,\"chunk-7ad466b2\":1,\"chunk-952eb9ba\":1,\"chunk-99c7a0ca\":1,\"chunk-9f4e9ffa\":1,\"chunk-b0192892\":1,\"chunk-b16d92c6\":1,\"chunk-d2d670b4\":1,\"chunk-f422d394\":1,\"chunk-f4f086b0\":1,\"chunk-fb446e9e\":1,\"chunk-0ac8f7ac\":1,\"chunk-0c953ea8\":1,\"chunk-160081ff\":1,\"chunk-255fed39\":1,\"chunk-28e7fc65\":1,\"chunk-365d1eee\":1,\"chunk-47fd02e1\":1,\"chunk-61dc9819\":1,\"chunk-668ff8c3\":1,\"chunk-765d5469\":1,\"chunk-7c1d29dd\":1,\"chunk-ad56bb48\":1,\"chunk-c29d55e8\":1,\"chunk-dae2929c\":1,\"chunk-fe7f4d02\":1,\"chunk-231f6706\":1,\"chunk-325b0ae7\":1,\"chunk-6a0e0de5\":1,\"chunk-58b488f5\":1,\"chunk-8d106526\":1,\"chunk-6ac2a68e\":1,\"chunk-54affbfc\":1,\"chunk-29d81439\":1,\"chunk-5115f92c\":1,\"chunk-05a7ef7b\":1,\"chunk-63c6a691\":1,\"chunk-46f822c3\":1,\"chunk-26b70a8d\":1,\"chunk-38b3aefa\":1,\"chunk-21cb61f8\":1,\"chunk-4c3abdc0\":1,\"chunk-6d4fb574\":1,\"chunk-2e6b6d55\":1,\"chunk-38394660\":1,\"chunk-243b0dd0\":1,\"chunk-2db99c84\":1,\"chunk-487ea62e\":1,\"chunk-558578a4\":1,\"chunk-72631787\":1,\"chunk-77d5e372\":1,\"chunk-87130516\":1,\"chunk-f4b02d80\":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};\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-02cb6c96\":\"19a658d4\",\"chunk-0eec6ca6\":\"31d6cfe0\",\"chunk-10eb160e\":\"5a266af8\",\"chunk-212eccd8\":\"4ab07def\",\"chunk-5d501d84\":\"31d6cfe0\",\"chunk-06307e10\":\"8ed669ca\",\"chunk-0d397f55\":\"a7efb474\",\"chunk-1570d51a\":\"ddce4649\",\"chunk-15b7e522\":\"d3f07e34\",\"chunk-173a263e\":\"a7efb474\",\"chunk-1a03f250\":\"40b52e33\",\"chunk-1cabcb74\":\"a7efb474\",\"chunk-2aeb2059\":\"43f9eefc\",\"chunk-2b00bb28\":\"c27333d6\",\"chunk-2b0f16c3\":\"21b28aca\",\"chunk-2b5ee846\":\"c27333d6\",\"chunk-2e0a0668\":\"8ed669ca\",\"chunk-3cf1ec88\":\"9e7a6666\",\"chunk-3fe81805\":\"11ad298c\",\"chunk-3ff0f3f8\":\"30bb4781\",\"chunk-4198b60f\":\"79eb48d6\",\"chunk-46400760\":\"2e752c8a\",\"chunk-4cea12aa\":\"8ed669ca\",\"chunk-54001697\":\"2e752c8a\",\"chunk-5d8c0785\":\"c27333d6\",\"chunk-612fc41a\":\"9e7a6666\",\"chunk-640f54d6\":\"40b52e33\",\"chunk-67c4780e\":\"f664fd26\",\"chunk-6dadc5e9\":\"40b52e33\",\"chunk-73912a52\":\"40b52e33\",\"chunk-74fc0675\":\"fe8fc033\",\"chunk-7ad466b2\":\"fe8fc033\",\"chunk-952eb9ba\":\"c27333d6\",\"chunk-99c7a0ca\":\"73875f44\",\"chunk-9f4e9ffa\":\"30bb4781\",\"chunk-b0192892\":\"a7efb474\",\"chunk-b16d92c6\":\"c27333d6\",\"chunk-d2d670b4\":\"4a9e3813\",\"chunk-f422d394\":\"3727f569\",\"chunk-f4f086b0\":\"30bb4781\",\"chunk-fb446e9e\":\"616bb0c5\",\"chunk-fb52b3b8\":\"31d6cfe0\",\"chunk-0ac8f7ac\":\"795bb6ee\",\"chunk-0c953ea8\":\"92d3d104\",\"chunk-160081ff\":\"d2df43cd\",\"chunk-255fed39\":\"70bb0a7d\",\"chunk-28e7fc65\":\"99227a21\",\"chunk-365d1eee\":\"9e7a6666\",\"chunk-47fd02e1\":\"77fd913f\",\"chunk-61dc9819\":\"70bb0a7d\",\"chunk-668ff8c3\":\"70bb0a7d\",\"chunk-765d5469\":\"9e7a6666\",\"chunk-7c1d29dd\":\"b968e132\",\"chunk-ad56bb48\":\"dae1a7d5\",\"chunk-c29d55e8\":\"616bb0c5\",\"chunk-dae2929c\":\"2566f23f\",\"chunk-fe7f4d02\":\"70bb0a7d\",\"chunk-231f6706\":\"6e2f53f4\",\"chunk-325b0ae7\":\"d5d4eb23\",\"chunk-6a0e0de5\":\"f639e260\",\"chunk-58b488f5\":\"35445b94\",\"chunk-8d106526\":\"c9349f16\",\"chunk-6ac2a68e\":\"f18719b4\",\"chunk-54affbfc\":\"ff628e2a\",\"chunk-2d0e59f0\":\"31d6cfe0\",\"chunk-2284ad1e\":\"31d6cfe0\",\"chunk-29d81439\":\"c0d782c7\",\"chunk-6ddde932\":\"31d6cfe0\",\"chunk-5115f92c\":\"1518606c\",\"chunk-05a7ef7b\":\"51dfe6f0\",\"chunk-63c6a691\":\"51dfe6f0\",\"chunk-46f822c3\":\"a6a65f4c\",\"chunk-26b70a8d\":\"c7315fda\",\"chunk-2d0dd662\":\"31d6cfe0\",\"chunk-38b3aefa\":\"c7315fda\",\"chunk-d88ca00a\":\"31d6cfe0\",\"chunk-21cb61f8\":\"945ad9a3\",\"chunk-4c3abdc0\":\"8eedd720\",\"chunk-6d4fb574\":\"14ff45ca\",\"chunk-2e6b6d55\":\"eb470614\",\"chunk-2d0ae938\":\"31d6cfe0\",\"chunk-38394660\":\"eb470614\",\"chunk-243b0dd0\":\"747dabfb\",\"chunk-2d0c0c06\":\"31d6cfe0\",\"chunk-2d0e1b9e\":\"31d6cfe0\",\"chunk-2d216256\":\"31d6cfe0\",\"chunk-2d216f4c\":\"31d6cfe0\",\"chunk-2db99c84\":\"19d88485\",\"chunk-487ea62e\":\"098a8e83\",\"chunk-558578a4\":\"5093f554\",\"chunk-72631787\":\"c4b2d177\",\"chunk-77d5e372\":\"0e443c0e\",\"chunk-87130516\":\"b56e6065\",\"chunk-f4b02d80\":\"b5f32203\",\"chunk-743e4b25\":\"b7e4a7f0\",\"chunk-74524b79\":\"6b0566c7\",\"chunk-746154ec\":\"1f430525\",\"chunk-7498e9ec\":\"fb0a442b\",\"chunk-74a82e1a\":\"f495ef64\",\"chunk-74b6aca8\":\"26aaed67\",\"chunk-76f08193\":\"4fb1d41d\",\"chunk-771a7e38\":\"78b53d71\"}[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 = \"/metronic/vue/demo1/\";\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","\"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;","export default {\r\n namespaced: true,\r\n state: {\r\n content: \"\",\r\n color: \"\"\r\n },\r\n mutations: {\r\n showMessage(state, payload) {\r\n state.content = payload.content;\r\n state.color = payload.color;\r\n }\r\n }\r\n};\r\n","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\nimport auth from \"./auth.module\";\r\nimport crud from \"./crud.module\";\r\nimport htmlClass from \"./htmlclass.module\";\r\nimport config from \"./config.module\";\r\nimport breadcrumbs from \"./breadcrumbs.module\";\r\nimport snackbar from \"./snackbar.module\";\r\nimport forgotPassword from \"@/core/store/forgotPassword.module\";\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n modules: {\r\n auth,\r\n crud,\r\n htmlClass,\r\n config,\r\n breadcrumbs,\r\n snackbar,\r\n forgotPassword\r\n }\r\n});\r\n","const ID_TOKEN_KEY = \"id_token\";\r\n\r\nexport const getToken = () => {\r\n return window.localStorage.getItem(ID_TOKEN_KEY);\r\n};\r\n\r\nexport const saveToken = token => {\r\n window.localStorage.setItem(ID_TOKEN_KEY, token);\r\n};\r\n\r\nexport const destroyToken = () => {\r\n window.localStorage.removeItem(ID_TOKEN_KEY);\r\n};\r\n\r\nexport default { getToken, saveToken, destroyToken };\r\n","import ApiService from \"@/core/services/api.service\";\r\n\r\n// endpoints\r\nexport const API_GENERATE_RESET_PASSWORD_CODE =\r\n \"/api/Users/GenerateResetPasswordCode\";\r\nexport const API_RESET_PASSWORD = \"/api/Users/ResetPassword\";\r\n\r\n// action types\r\nexport const FORGOT_PASSWORD = \"forgotPassword\";\r\nexport const RESET_PASSWORD = \"resetPassword\";\r\n\r\n// mutation types\r\n\r\nconst state = {};\r\n\r\nconst getters = {};\r\n\r\nconst actions = {\r\n async [FORGOT_PASSWORD](context, email) {\r\n try {\r\n await ApiService.post(API_GENERATE_RESET_PASSWORD_CODE, {\r\n email\r\n });\r\n return { success: true };\r\n } catch ({ response }) {\r\n return { success: false, error: response.data };\r\n }\r\n },\r\n async [RESET_PASSWORD](context, { email, password, confirmPassword, code }) {\r\n try {\r\n await ApiService.post(API_RESET_PASSWORD, {\r\n email,\r\n password,\r\n confirmPassword,\r\n code\r\n });\r\n return { success: true };\r\n } catch ({ response }) {\r\n return { success: false, error: response.data };\r\n }\r\n }\r\n};\r\n\r\nconst mutations = {};\r\n\r\nexport default {\r\n state,\r\n actions,\r\n mutations,\r\n getters\r\n};\r\n","\"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;","import ApiService from \"@/core/services/api.service\";\r\nimport qs from \"querystring\";\r\n\r\n// action types\r\nexport const GET_QUERY = \"getQuery\";\r\nexport const GET_PAGED = \"getPagedQuery\";\r\nexport const POST_DATA = \"postData\";\r\nexport const POST_DATA_2 = \"postData2\";\r\nexport const PUT_DATA = \"putData\";\r\nexport const DELETE = \"delete\";\r\n\r\n// mutation types\r\nexport const SET_QUERY_RESULT = \"setQueryResult\";\r\nexport const SET_ERROR = \"setCrudError\";\r\nexport const SET_INVALID_RESPONSE = \"setCrudInvalid\";\r\nexport const SET_DATA = \"setData\";\r\n\r\n//api links\r\nexport const API_USERS = \"/api/Users\";\r\nexport const API_CUSTOMERS = \"/api/Customers\";\r\nexport const API_ORANGE_REPORT_SERVICES = \"/api/OrangeReportServices\";\r\nexport const API_ORANGE_REPORTS = \"/api/OrangeReports\";\r\nexport const API_EMPLOYEES = \"/api/Employees\";\r\nexport const API_CONTACTS = \"/api/Contacts\";\r\nexport const API_WEATHER = \"/api/Weather\";\r\nexport const API_PHOTO_UPLOAD = \"/api/Files/uploadPhoto\";\r\nexport const API_FILE_UPLOAD = \"/api/Files/uploadFile\";\r\nexport const API_SERVICE_REQUESTS = \"/api/ServiceRequests\";\r\nexport const API_SERVICE_REQUEST_TYPES = \"/api/ServiceRequestTypes\";\r\nexport const API_SERVICE_REQUEST_PRIORITIES = \"/api/ServiceRequestPriorities\";\r\nexport const API_MESSAGES = \"/api/Messages\";\r\nexport const API_KUDOS = \"/api/Kudos\";\r\nexport const API_CURRENT_CONTACT_INFO = \"/api/Contacts/current\";\r\nexport const API_CURRENT_USER_INFO = \"/api/Users\";\r\nexport const API_USER_INFO = \"/api/Users\";\r\nexport const API_NOTIFICATIONS = \"/api/Notifications\";\r\nexport const API_FOLDERS = \"/api/folders\";\r\nexport const API_QUARTERLY_PLAN_TEMPLATES = \"/api/quarterlyPlanTemplates\";\r\nexport const API_REPORTS = \"/api/reports\";\r\nexport const API_USER_EXISTS = \"/api/Users/CheckUserExists\";\r\n\r\n// export const API_NINETY_DAY_PLAN = \"/api/Weather\";\r\n\r\nconst state = {\r\n errors: null\r\n};\r\n\r\nconst getters = {\r\n hasResponseErrors(state) {\r\n return state.errors !== null;\r\n },\r\n responseErrors(state) {\r\n const objToProcess = state.errors;\r\n var text = \"\";\r\n if (!objToProcess && objToProcess == null) return text;\r\n if (typeof objToProcess === \"string\" || objToProcess instanceof String)\r\n return objToProcess;\r\n Object.keys(objToProcess).forEach(function(k) {\r\n if (objToProcess[k].length && objToProcess[k].length > 0)\r\n text += `${objToProcess[k][0]} \\n`;\r\n });\r\n return text;\r\n }\r\n};\r\n\r\nconst actions = {\r\n [GET_PAGED](context, payload) {\r\n return new Promise(resolve => {\r\n const url = payload.listName;\r\n const query = qs.stringify(payload.params);\r\n\r\n ApiService.getQuery(url, query)\r\n .then(response => {\r\n context.commit(SET_QUERY_RESULT, {\r\n statePoint: payload.statePoint,\r\n data: response.data\r\n });\r\n resolve(response);\r\n })\r\n .catch(({ response }) => {\r\n if (response && response.data) {\r\n context.commit(\r\n SET_ERROR,\r\n response.data.errors ? response.data.errors : response.data\r\n );\r\n } else {\r\n context.commit(SET_ERROR, `${GET_QUERY} ${payload.listName} error`);\r\n }\r\n resolve(response);\r\n });\r\n });\r\n },\r\n [GET_QUERY](context, payload) {\r\n return new Promise(resolve => {\r\n var url = payload.listName;\r\n let slug = \"\";\r\n if (payload.id) url = `${url.trimEnd(\"/\")}/${payload.id}`;\r\n if (payload.slug) {\r\n slug = payload.slug;\r\n }\r\n\r\n url = url.trimEnd(\"/\");\r\n\r\n ApiService.get(url, slug)\r\n .then(response => {\r\n context.commit(SET_QUERY_RESULT, {\r\n statePoint: payload.statePoint,\r\n data: response.data\r\n });\r\n resolve(response);\r\n })\r\n .catch(response => {\r\n if (response && response.data) {\r\n context.commit(\r\n SET_ERROR,\r\n response.data.errors ? response.data.errors : response.data\r\n );\r\n } else {\r\n context.commit(SET_ERROR, `${GET_QUERY} ${payload.listName} error`);\r\n }\r\n resolve(response);\r\n });\r\n });\r\n },\r\n async [POST_DATA_2](context, payload) {\r\n let url =\r\n payload.id && payload.id > 0\r\n ? `${payload.listName}/${payload.id}`\r\n : payload.listName;\r\n if (payload.postfix) url += `/${payload.postfix}`;\r\n\r\n try {\r\n const { data } = await ApiService.post(url, payload.data);\r\n\r\n // console.log(\"Post data 2 - response data\", data);\r\n\r\n return { success: true, data };\r\n\r\n // context.commit(SET_DATA, {\r\n // statePoint: payload.statePoint,\r\n // data: data\r\n // });\r\n } catch ({ response }) {\r\n // console.log(\"Post data 2 - error response\", response);\r\n // console.log(\"Post data 2 - error response data\", response?.data);\r\n return {\r\n success: false,\r\n data: response?.data,\r\n validationErrors: response?.validationErrors\r\n };\r\n // if (response?.status >= 400) {\r\n // context.commit(\r\n // SET_ERROR,\r\n // response?.data ?? `${POST_DATA_2} ${payload.listName} error`\r\n // );\r\n // } else if (response?.data) {\r\n // context.commit(SET_ERROR, [response.data.error_description]);\r\n // }\r\n }\r\n },\r\n [POST_DATA](context, payload) {\r\n return new Promise(resolve => {\r\n let url =\r\n payload.id && payload.id > 0\r\n ? `${payload.listName}/${payload.id}`\r\n : payload.listName;\r\n if (payload.postfix) url += `/${payload.postfix}`;\r\n\r\n ApiService.post(url, payload.data)\r\n .then(response => {\r\n if (response.data) {\r\n context.commit(SET_DATA, {\r\n statePoint: payload.statePoint,\r\n data: response.data\r\n });\r\n }\r\n resolve(response);\r\n })\r\n .catch(response => {\r\n // console.log(\"Post data error\", response);\r\n if (response && response.data) {\r\n context.commit(SET_INVALID_RESPONSE, response.data);\r\n resolve(response);\r\n } else {\r\n context.commit(SET_ERROR, `${POST_DATA} ${payload.listName} error`);\r\n resolve();\r\n }\r\n });\r\n });\r\n },\r\n [PUT_DATA](context, payload) {\r\n return new Promise(resolve => {\r\n let url =\r\n payload.id && payload.id > 0\r\n ? `${payload.listName}/${payload.id}`\r\n : payload.listName;\r\n if (payload.postfix) url += `/${payload.postfix}`;\r\n ApiService.put(url, payload.data)\r\n .then(response => {\r\n if (response.data) {\r\n context.commit(SET_DATA, {\r\n statePoint: payload.statePoint,\r\n data: response.data\r\n });\r\n }\r\n resolve(response);\r\n })\r\n .catch(response => {\r\n if (response && response.data) {\r\n context.commit(SET_INVALID_RESPONSE, response.data);\r\n resolve(response.data);\r\n } else {\r\n context.commit(SET_ERROR, `${POST_DATA} ${payload.listName} error`);\r\n resolve();\r\n }\r\n });\r\n });\r\n },\r\n [DELETE](context, payload) {\r\n return new Promise(resolve => {\r\n const url = `${payload.listName.trimEnd(\"/\")}/${payload.id}`;\r\n ApiService.delete(url)\r\n .then(response => {\r\n resolve(response);\r\n })\r\n .catch(response => {\r\n if (response && response.data) {\r\n context.commit(SET_ERROR, response.data.errors);\r\n } else {\r\n context.commit(SET_ERROR, `${DELETE} ${payload.listName} error`);\r\n }\r\n });\r\n });\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [SET_ERROR](state, error) {\r\n state.errors = error;\r\n },\r\n [SET_INVALID_RESPONSE](state, error) {\r\n state.errors = error;\r\n },\r\n [SET_QUERY_RESULT](state, payload) {\r\n state.errors = {};\r\n state.invalidResponse = null;\r\n if (payload.statePoint && payload.statePoint.length)\r\n state[payload.statePoint] = payload.data.data\r\n ? payload.data.data\r\n : payload.data;\r\n },\r\n [SET_DATA](state, payload) {\r\n // console.log(\"set data payload\", payload);\r\n state.errors = {};\r\n state.invalidResponse = null;\r\n if (payload.statePoint && payload.statePoint.length)\r\n state[payload.statePoint] = payload.data.data\r\n ? payload.data.data\r\n : payload.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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/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/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=00d73456&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\ninstallComponents(component, {VApp})\n","import Vue from \"vue\";\r\nimport Router from \"vue-router\";\r\n\r\nVue.use(Router);\r\n\r\nexport default new Router({\r\n routes: [\r\n {\r\n path: \"/\",\r\n redirect: \"/customers\",\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 meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/performanceReport\",\r\n name: \"PerformanceReport\",\r\n component: () => import(\"@/view/pages/customer/PerformanceReport.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers\",\r\n name: \"Customers\",\r\n component: () => import(\"@/view/pages/customer/Customers.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/yn-team-directory\",\r\n name: \"YNTeamDirectory\",\r\n component: () => import(\"@/view/pages/YNTeamDirectory.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/file-library\",\r\n name: \"FileLibraryFolders\",\r\n component: () => import(\"@/view/pages/FileLibrary.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/file-library/:id\",\r\n name: \"FileLibraryFolder\",\r\n props: true,\r\n component: () => import(\"@/view/pages/FileLibrary.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/service-requests\",\r\n name: \"ServiceRequests\",\r\n component: () =>\r\n import(\"@/view/pages/serviceRequests/ServiceRequests.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/service-requests/:requestId/update\",\r\n name: \"UpdateServiceRequest\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/serviceRequests/ServiceRequestUpdate.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/message-center\",\r\n name: \"MessageCenter\",\r\n component: () => import(\"@/view/pages/messages/MessageCenter.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/message-center/messages/new\",\r\n name: \"SendNewMessage\",\r\n component: () => import(\"@/view/pages/messages/MessageNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/message-center/messages/:messageId/view\",\r\n name: \"ViewMessage\",\r\n props: true,\r\n component: () => import(\"@/view/pages/messages/MessageView.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/content\",\r\n name: \"Content\",\r\n component: () => import(\"@/view/pages/Content.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/settings\",\r\n name: \"Settings\",\r\n component: () => import(\"@/view/pages/Settings.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/orange-reports/pending\",\r\n name: \"PendingOrangeReports\",\r\n component: () => import(\"@/view/pages/OrangeReportsPending.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId\",\r\n name: \"CustomerDetails\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/CustomerDetails.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n name: \"RedirectToCustomer\",\r\n path: \"/customers/redirectToCustomer/:customerId\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/CustomerRedirect.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n name: \"CustomerSettings\",\r\n path: \"/customers/:customerId/settings\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/Settings.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/orange-reports/new\",\r\n name: \"NewOrangeReport\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/OrangeReportNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/create-orange-report\",\r\n name: \"CrewLeaderNewOrangeReport\",\r\n props: false,\r\n component: () =>\r\n import(\"@/view/pages/customer/crewLeader/OrangeReportNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\"Crew Leader\"]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/orange-reports/:reportId/edit\",\r\n name: \"EditOrangeReport\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/OrangeReportEdit.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/orange-reports/:reportId/view\",\r\n name: \"ViewOrangeReport\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/OrangeReportView.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/orange-reports/pending\",\r\n name: \"CustomerPendingOrangeReports\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customer/OrangeReportsPending.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/update-map\",\r\n name: \"ViewUpdateMap\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/UpdateMap.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/manage-portal-access\",\r\n name: \"ManagePortalAccess\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customer/ManagePortalAccess.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/manage-portal-access/newUser\",\r\n name: \"ManagePortalAccessNewUser\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customer/ManagePortalAccessNewUser.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/manage-portal-access/:userId/editUser\",\r\n name: \"ManagePortalAccessEditUser\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customer/ManagePortalAccessEditUser.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/manage-portal-access/addYnMember\",\r\n name: \"ManagePortalAccessAddYnMember\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customer/ManagePortalAccessAddYnMember.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n // Quarterly Plans\r\n {\r\n path: \"/customers/:customerId/plans\",\r\n name: \"NinetyDayPlans\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/NinetyDayPlans.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/plans/:planId/view\",\r\n name: \"NinetyDayPlan\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/NinetyDayPlan.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/plans/new\",\r\n name: \"NinetyDayPlanNew\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/NinetyDayPlanNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/plans/:planId/edit\",\r\n name: \"NinetyDayPlanEdit\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customer/NinetyDayPlanEdit.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n // Customer Quarterly Plan Templates\r\n {\r\n path: \"/customers/:customerId/planTemplates\",\r\n name: \"CustomerQuarterlyPlanTemplates\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customer/QuarterlyPlanTemplates.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/planTemplates/:planTemplateId/view\",\r\n name: \"CustomerQuarterlyPlanTemplate\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customer/QuarterlyPlanTemplate.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/planTemplates/new\",\r\n name: \"CustomerQuarterlyPlanTemplateNew\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customer/QuarterlyPlanTemplateNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/planTemplates/:templateId/edit\",\r\n name: \"CustomerQuarterlyPlanTemplateEdit\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customer/QuarterlyPlanTemplateEdit.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n\r\n // Global Quarterly Plan Templates\r\n {\r\n path: \"/planTemplates\",\r\n name: \"QuarterlyPlanTemplates\",\r\n props: true,\r\n component: () =>\r\n import(\r\n \"@/view/pages/quarterlyPlanTemplates/QuarterlyPlanTemplates.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/planTemplates/new\",\r\n name: \"QuarterlyPlanTemplateNew\",\r\n props: true,\r\n component: () =>\r\n import(\r\n \"@/view/pages/quarterlyPlanTemplates/QuarterlyPlanTemplateNew.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/planTemplates/:templateId/edit\",\r\n name: \"QuarterlyPlanTemplateEdit\",\r\n props: true,\r\n component: () =>\r\n import(\r\n \"@/view/pages/quarterlyPlanTemplates/QuarterlyPlanTemplateEdit.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\"\r\n ]\r\n }\r\n },\r\n\r\n // Orange Reports\r\n {\r\n path: \"/customers/:customerId/orange-reports\",\r\n name: \"OrangeReports\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/OrangeReports.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/invoices\",\r\n name: \"Invoices\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/Invoices.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/invoices/new\",\r\n name: \"InvoiceNew\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/InvoiceNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/proposals\",\r\n name: \"Proposals\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/Proposals.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/proposals/new\",\r\n name: \"ProposalNew\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/ProposalNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/documents\",\r\n name: \"Documents\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/Documents.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/documents/new\",\r\n name: \"DocumentNew\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/DocumentNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/messages\",\r\n name: \"CustomerMessages\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/Messages.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/messages/new\",\r\n name: \"CustomerMessageNew\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/MessageNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/messages/:messageId/view\",\r\n name: \"CustomerMessageView\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/MessageView.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/requests\",\r\n name: \"CustomerRequests\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/Requests.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/requests/new\",\r\n name: \"CustomerNewServiceRequest\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/RequestNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customers/:customerId/requests/:requestId/update\",\r\n name: \"CustomerUpdateServiceRequest\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customer/RequestUpdate.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Executive\",\r\n \"System Admin\",\r\n \"Executive Team\",\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\",\r\n \"Business Development\"\r\n ]\r\n }\r\n }\r\n // {\r\n // path: \"/edit-user/:userId\",\r\n // name: \"EditUser\",\r\n // component: () => import(\"@/view/pages/EditUser.vue\")\r\n // },\r\n // {\r\n // path: \"/user-events/:userId\",\r\n // name: \"UserEvents\",\r\n // component: () => import(\"@/view/pages/UserEvents.vue\")\r\n // },\r\n // {\r\n // path: \"/user-groups/:userId\",\r\n // name: \"UserGroups\",\r\n // component: () => import(\"@/view/pages/UserGroups.vue\")\r\n // }\r\n ]\r\n },\r\n {\r\n path: \"/error\",\r\n name: \"error\",\r\n component: () => import(\"@/view/pages/error/Error.vue\"),\r\n children: [\r\n {\r\n path: \"error-1\",\r\n name: \"error-1\",\r\n component: () => import(\"@/view/pages/error/Error-1.vue\")\r\n },\r\n {\r\n path: \"error-2\",\r\n name: \"error-2\",\r\n component: () => import(\"@/view/pages/error/Error-2.vue\")\r\n },\r\n {\r\n path: \"error-3\",\r\n name: \"error-3\",\r\n component: () => import(\"@/view/pages/error/Error-3.vue\")\r\n },\r\n {\r\n path: \"error-4\",\r\n name: \"error-4\",\r\n component: () => import(\"@/view/pages/error/Error-4.vue\")\r\n },\r\n {\r\n path: \"error-5\",\r\n name: \"error-5\",\r\n component: () => import(\"@/view/pages/error/Error-5.vue\")\r\n },\r\n {\r\n path: \"error-6\",\r\n name: \"error-6\",\r\n component: () => import(\"@/view/pages/error/Error-6.vue\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/\",\r\n component: () => import(\"@/view/pages/auth/Auth.vue\"),\r\n children: [\r\n {\r\n name: \"login\",\r\n path: \"/login\",\r\n component: () => import(\"@/view/pages/auth/Login.vue\")\r\n },\r\n {\r\n name: \"forgotPassword\",\r\n path: \"/forgotPassword\",\r\n component: () => import(\"@/view/pages/auth/ForgotPassword.vue\")\r\n },\r\n {\r\n name: \"resetPassword\",\r\n path: \"/resetPassword\",\r\n component: () => import(\"@/view/pages/auth/ResetPassword.vue\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/\",\r\n component: () => import(\"@/view/pages/ResidentRegistration/Layout.vue\"),\r\n children: [\r\n {\r\n name: \"ResidentRegistration\",\r\n path: \"/resident-user-validation\",\r\n component: () => import(\"@/view/pages/ResidentRegistration/Register.vue\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/\",\r\n component: () => import(\"@/view/layout/CustomerViewLayout\"),\r\n children: [\r\n {\r\n name: \"CustomerViewDashboard\",\r\n path: \"/customerView/dashboard\",\r\n component: () =>\r\n import(\"@/view/pages/customerView/CustomerViewDashboard.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n name: \"CustomerViewSettings\",\r\n path: \"/customerView/:customerId/settings\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/Settings.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n name: \"CustomerView\",\r\n path: \"/customerView/:customerId\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/CustomerView.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/manage-portal-access\",\r\n name: \"CustomerViewManagePortalAccess\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customerView/ManagePortalAccess.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/manage-portal-access/newUser\",\r\n name: \"CustomerViewManagePortalAccessNewUser\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customerView/ManagePortalAccessNewUser.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/manage-portal-access/:userId/editUser\",\r\n name: \"CustomerViewManagePortalAccessEditUser\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customer/ManagePortalAccessEditUser.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/plans\",\r\n name: \"CustomerViewNinetyDayPlans\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customerView/NinetyDayPlans.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/plans/:planId/view\",\r\n name: \"CustomerViewNinetyDayPlan\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customerView/NinetyDayPlan.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/orange-reports\",\r\n name: \"CustomerViewOrangeReports\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customerView/OrangeReports.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/orange-reports/:reportId/view\",\r\n name: \"CustomerViewOrangeReportView\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customerView/OrangeReportView.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/invoices\",\r\n name: \"CustomerViewInvoices\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/Invoices.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/documents\",\r\n name: \"CustomerViewDocuments\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/Documents.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/documents/new\",\r\n name: \"CustomerViewDocumentNew\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/DocumentNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/proposals\",\r\n name: \"CustomerViewProposals\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/Proposals.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/messages\",\r\n name: \"CustomerViewMessages\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/Messages.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/messages/new\",\r\n name: \"CustomerViewMessageNew\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/MessageNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/messages/:messageId/view\",\r\n name: \"CustomerViewMessageView\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/MessageView.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/sendKudos\",\r\n name: \"CustomerViewSendKudos\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/SendKudos.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/requests\",\r\n name: \"CustomerViewRequests\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/Requests.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/requests/new\",\r\n name: \"CustomerViewNewServiceRequest\",\r\n props: true,\r\n component: () => import(\"@/view/pages/customerView/RequestNew.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n },\r\n {\r\n path: \"/customerView/:customerId/requests/:requestId/update\",\r\n name: \"CustomerViewUpdateServiceRequest\",\r\n props: true,\r\n component: () =>\r\n import(\"@/view/pages/customerView/RequestUpdate.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n role: [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: \"*\",\r\n redirect: \"/404\"\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});\r\n","const snackbarPlugin = {\r\n install: (Vue, { store }) => {\r\n if (!store) {\r\n throw new Error(\"Please provide vuex store.\");\r\n }\r\n\r\n Vue.prototype.$snackbar = {\r\n showMessage: function({ content = \"\", color = \"\" }) {\r\n store.commit(\r\n \"snackbar/showMessage\",\r\n { content, color },\r\n { root: true }\r\n );\r\n }\r\n };\r\n }\r\n};\r\nexport default snackbarPlugin;\r\n","import axios from \"axios\";\r\nimport router from \"@/router\";\r\n// import store from \"@/core/store\";\r\n// import Mgr from \"@/core/services/security.service\";\r\nimport JwtService from \"@/core/services/jwt.service\";\r\n\r\nexport default {\r\n register() {\r\n axios.interceptors.request.use(\r\n request =>\r\n new Promise(resolve => {\r\n // let mgr = new Mgr();\r\n // let token = \"\";\r\n // mgr.getAcessToken().then(acessToken => {\r\n // request.headers.common.Authorization = `Bearer ${acessToken}`;\r\n // resolve(request);\r\n // });\r\n // console.log(token);\r\n // request.headers.common.Authorization = `Bearer ${store.state.auth.token}`;\r\n request.headers.common.Authorization = `Bearer ${JwtService.getToken()}`;\r\n resolve(request);\r\n })\r\n );\r\n axios.interceptors.response.use(\r\n response => response,\r\n ex => {\r\n // console.log(\"axios.interceptors.response ex\", ex);\r\n if (ex.response.status === 401) {\r\n router.push({ path: \"/login\" });\r\n return Promise.reject(ex);\r\n }\r\n return Promise.reject(ex);\r\n }\r\n );\r\n }\r\n};\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 Vuetify from \"vuetify\";\r\n// import plugin\r\nimport { TiptapVuetifyPlugin } from \"tiptap-vuetify\";\r\n// don't forget to import CSS styles\r\nimport \"tiptap-vuetify/dist/main.css\";\r\n// Vuetify's CSS styles\r\nimport \"vuetify/dist/vuetify.min.css\";\r\n\r\n// Vuetify Object (as described in the Vuetify 2 documentation)\r\nconst vuetify = new Vuetify();\r\n\r\n// use Vuetify's plugin\r\nVue.use(Vuetify);\r\n// use this package's plugin\r\nVue.use(TiptapVuetifyPlugin, {\r\n // the next line is important! You need to provide the Vuetify Object to this place.\r\n vuetify, // same as \"vuetify: vuetify\"\r\n // optional, default to 'md' (default vuetify icons before v2.0.0)\r\n iconsGroup: \"md\"\r\n});\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 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 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\"Pic\"';\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\"Pic\"';\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 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\";\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\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\";\r\nimport App from \"./App.vue\";\r\nimport router from \"./router\";\r\nimport store from \"@/core/store\";\r\nimport snackbarPlugin from \"@/core/plugins/snackbar\";\r\nimport ApiService from \"@/core/services/api.service\";\r\nimport { REFRESH } from \"@/core/store/auth.module\";\r\nimport { RESET_LAYOUT_CONFIG } from \"@/core/store/config.module\";\r\nimport httpInterceptors from \"@/core/helpers/httpInterceptors\";\r\n// import Mgr from \"@/core/services/security.service\";\r\nimport VueKonva from \"vue-konva\";\r\n\r\nVue.config.productionTip = false;\r\n\r\n// Global 3rd party plugins\r\nimport \"popper.js\";\r\nimport \"tooltip.js\";\r\nimport PerfectScrollbar from \"perfect-scrollbar\";\r\nwindow.PerfectScrollbar = PerfectScrollbar;\r\nimport ClipboardJS from \"clipboard\";\r\nwindow.ClipboardJS = ClipboardJS;\r\n\r\n// Vue 3rd party plugins\r\nimport i18n from \"@/core/plugins/vue-i18n\";\r\nimport vuetify from \"@/core/plugins/vuetify\";\r\nimport \"@/core/plugins/portal-vue\";\r\nimport \"@/core/plugins/bootstrap-vue\";\r\nimport \"@/core/plugins/perfect-scrollbar\";\r\nimport \"@/core/plugins/highlight-js\";\r\nimport \"@/core/plugins/inline-svg\";\r\nimport \"@/core/plugins/tiptap-vuetify\";\r\nimport \"@/core/plugins/apexcharts\";\r\nimport \"@/core/plugins/metronic\";\r\nimport \"@mdi/font/css/materialdesignicons.css\";\r\n//import { mdiRegex } from \"@mdi/js\";\r\n\r\n// API service init\r\nApiService.init();\r\n// let mgr = new Mgr();\r\n\r\nrouter.beforeEach(async (to, from, next) => {\r\n const rootStore = await import(\"@/core/store\");\r\n const isAuthenticated = rootStore.default.getters.isAuthenticated;\r\n\r\n // console.log(\"router.beforeEach isAuthenticated\", isAuthenticated);\r\n\r\n // window.confirm(\"TO\" + to.fullPath);\r\n if (to.matched.some(record => record?.meta?.requiresAuth)) {\r\n // const rootStore = await import(\"@/core/store\");\r\n let needsRoleCheck = to?.meta?.role;\r\n\r\n // window.confirm(\"user \" + user);\r\n // let signedIn = user != null;\r\n // if (user == null)\r\n if (!isAuthenticated) {\r\n // user is not signed in here - redirect to login\r\n next({\r\n name: \"login\",\r\n query: { redirect: to.fullPath }\r\n });\r\n } else {\r\n let user = rootStore.default.getters.userInfo;\r\n if (user == null || !user.role) {\r\n await store.dispatch(REFRESH);\r\n\r\n user = rootStore.default.getters.userInfo;\r\n }\r\n\r\n let userRole = user?.role;\r\n // console.log(\"router.beforeEach user and role\", user, userRole);\r\n\r\n // User is signed in here - check role if required\r\n if (needsRoleCheck) {\r\n if (userRole && userRole.length > 0) {\r\n let isAuthorized = false;\r\n if (typeof needsRoleCheck === \"string\") {\r\n isAuthorized = needsRoleCheck == userRole;\r\n } else if (typeof needsRoleCheck === \"object\") {\r\n let userRoles = userRole.split(\",\");\r\n\r\n isAuthorized = userRoles.some(el => {\r\n return needsRoleCheck.indexOf(el) > -1;\r\n });\r\n }\r\n if (isAuthorized) {\r\n next();\r\n } else {\r\n const customerViewRoles = [\r\n \"Property Manager\",\r\n \"Board Member\",\r\n \"Resident\",\r\n \"Tenant/Resident\",\r\n \"Tenant/Resident - Neighborhood\",\r\n \"Landscape Committee\"\r\n ];\r\n\r\n const employeeViewRoles = [\r\n \"Regional Director\",\r\n \"Regional Manager\",\r\n \"Executive\",\r\n \"Executive Team\",\r\n \"Branch Manager\",\r\n \"Account Manager\",\r\n \"Crew Leader\"\r\n ];\r\n\r\n const userRoles = userRole.split(\",\");\r\n\r\n if (\r\n userRoles.some(el => {\r\n return customerViewRoles.indexOf(el) > -1;\r\n })\r\n ) {\r\n next({ name: \"CustomerViewDashboard\" });\r\n } else if (\r\n userRoles.some(el => {\r\n return employeeViewRoles.indexOf(el) > -1;\r\n })\r\n ) {\r\n next({ name: \"Customers\" });\r\n } else {\r\n next(\"/404\");\r\n }\r\n }\r\n } else {\r\n next({\r\n name: \"login\",\r\n query: { redirect: to.fullPath }\r\n });\r\n }\r\n } else {\r\n next();\r\n }\r\n // if (!signedIn) {\r\n // next({\r\n // name: \"login\",\r\n // query: { redirect: to.fullPath }\r\n // });\r\n // } else {\r\n // next();\r\n // }\r\n }\r\n } else {\r\n next();\r\n }\r\n\r\n // reset config to initial state\r\n store.dispatch(RESET_LAYOUT_CONFIG);\r\n\r\n // Scroll page to top on every route change\r\n setTimeout(() => {\r\n window.scrollTo(0, 0);\r\n }, 100);\r\n});\r\n\r\nhttpInterceptors.register();\r\n\r\n// Global snackbar notifier\r\nVue.use(snackbarPlugin, { store });\r\nVue.use(VueKonva);\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n i18n,\r\n vuetify,\r\n render: h => h(App)\r\n}).$mount(\"#app\");\r\n","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/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 jwtDecode from 'jwt-decode'\r\nimport ApiService from \"@/core/services/api.service\";\r\nimport JwtService from \"@/core/services/jwt.service\";\r\n// import { OidcClient } from \"oidc-client\";\r\n// import \"babel-polyfill\";\r\n// endpoints\r\nexport const API_TOKEN = \"/api/token\";\r\n\r\nexport const API_TOKEN_REFRESH = \"/api/token/refresh\";\r\n\r\n// action types\r\nexport const LOGIN = \"login\";\r\nexport const LOGOUT = \"logout\";\r\nexport const REFRESH = \"refresh\";\r\nexport const REGISTER = \"register\";\r\n\r\n// mutation types\r\nexport const PURGE_AUTH = \"logOut\";\r\nexport const SET_AUTH = \"setUser\";\r\nexport const SET_ERROR = \"setError\";\r\n\r\n// ApiService.init();\r\n\r\nconst state = {\r\n errors: null,\r\n user: {},\r\n token: JwtService.getToken(),\r\n isAuthenticated: !!JwtService.getToken(),\r\n userInfo: {}\r\n};\r\n\r\nconst getters = {\r\n isAuthenticated(state) {\r\n return state.isAuthenticated;\r\n },\r\n userInfo(state) {\r\n return state.userInfo;\r\n },\r\n roles(state) {\r\n if (!state.token) {\r\n return \"\";\r\n }\r\n return state.userInfo.role;\r\n // eslint-disable-next-line no-unused-vars\r\n // const roleClaim =\r\n // 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role'\r\n // const decodedToken = jwtDecode(state.token)\r\n // const roles = decodedToken[roleClaim]\r\n // if (!roles) {\r\n // return []\r\n // }\r\n\r\n // if (typeof roles === 'string') {\r\n // const result = []\r\n // result.push(roles)\r\n // return result\r\n // }\r\n\r\n // return decodedToken[roleClaim] ?? []\r\n }\r\n};\r\n\r\nconst actions = {\r\n async [LOGIN](context, { username, password }) {\r\n try {\r\n const { data } = await ApiService.post(API_TOKEN, {\r\n username,\r\n password\r\n });\r\n\r\n context.commit(SET_AUTH, data);\r\n } catch ({ response }) {\r\n if (response?.status >= 400) {\r\n context.commit(\r\n SET_ERROR,\r\n response?.data ?? \"Login or password is not valid\"\r\n );\r\n } else if (response?.data) {\r\n context.commit(SET_ERROR, [response.data.error_description]);\r\n }\r\n }\r\n },\r\n async [REFRESH](context) {\r\n if (JwtService.getToken()) {\r\n try {\r\n const { data } = await ApiService.post(API_TOKEN_REFRESH);\r\n context.commit(SET_AUTH, data);\r\n return data;\r\n } catch ({ response }) {\r\n if (response?.status >= 400) {\r\n context.commit(SET_ERROR, \"Login or password is not valid\");\r\n return response;\r\n } else if (response?.data) {\r\n context.commit(SET_ERROR, [response.data.error_description]);\r\n return response.data;\r\n }\r\n }\r\n } else {\r\n context.commit(PURGE_AUTH);\r\n }\r\n },\r\n [LOGOUT](context) {\r\n return new Promise(resolve => {\r\n context.commit(PURGE_AUTH);\r\n resolve();\r\n });\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [SET_ERROR](state, error) {\r\n state.errors = error;\r\n },\r\n [SET_AUTH](state, user) {\r\n // console.log(\"SET_AUTH state \", state)\r\n // console.log(\"SET_AUTH user \", user)\r\n state.isAuthenticated = true;\r\n state.user = user;\r\n state.errors = {};\r\n state.token = state.user.token;\r\n JwtService.saveToken(state.token);\r\n state.userInfo = user.user;\r\n },\r\n [PURGE_AUTH](state) {\r\n state.isAuthenticated = false;\r\n state.user = {};\r\n state.errors = {};\r\n state.userInfo = {};\r\n state.token = null;\r\n JwtService.destroyToken();\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","\"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\";\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;","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\nconst baseUrl = `${process.env.VUE_APP_API_URL}`;\r\n\r\n/**\r\n * Service to call HTTP request via Axios\r\n */\r\nexport default {\r\n init() {\r\n Vue.use(VueAxios, axios);\r\n axios.defaults.baseURL = baseUrl;\r\n },\r\n\r\n /**\r\n * Set the default HTTP request headers\r\n */\r\n setHeader() {\r\n Vue.axios.defaults.headers.common.Authorization = `Bearer ${JwtService.getToken()}`;\r\n },\r\n\r\n query(resource, params) {\r\n return Vue.axios.get(`${baseUrl}${resource}`, params).catch(error => {\r\n // console.log(error);\r\n throw new Error(`[Dashboard] 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(`${baseUrl}${resource}/${slug}`).catch(error => {\r\n // console.log(error);\r\n throw new Error(`[Dashboard] ApiService ${error}`);\r\n });\r\n },\r\n /**\r\n * Send the GET HTTP request with paged query\r\n * @param resource\r\n * @param slug\r\n * @returns {*}\r\n */\r\n getQuery(resource, query = \"\") {\r\n return Vue.axios.get(\r\n `${baseUrl}${resource}?${query}`\r\n ); /*.catch(error => {\r\n // console.log(error);\r\n throw new Error(`[Dashboard] 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) {\r\n return Vue.axios.post(`${baseUrl}${resource}`, params);\r\n /*.catch(error => {\r\n console.log(error);\r\n throw new Error(`[Dashboard] 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 postFormData(resource, params) {\r\n return Vue.axios.post(`${baseUrl}${resource}`, params, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n });\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(`${baseUrl}${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(`${baseUrl}${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(`${baseUrl}${resource}`).catch(error => {\r\n // console.log(error);\r\n throw new Error(`[Dashboard] ApiService ${error}`);\r\n });\r\n },\r\n\r\n base64toBlob(base64Data, contentType) {\r\n contentType = contentType || \"\";\r\n const sliceSize = 1024;\r\n const byteCharacters = atob(base64Data);\r\n const bytesLength = byteCharacters.length;\r\n const slicesCount = Math.ceil(bytesLength / sliceSize);\r\n const byteArrays = new Array(slicesCount);\r\n\r\n for (let sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\r\n const begin = sliceIndex * sliceSize;\r\n const end = Math.min(begin + sliceSize, bytesLength);\r\n\r\n const bytes = new Array(end - begin);\r\n for (let offset = begin, i = 0; offset < end; ++i, ++offset) {\r\n bytes[i] = byteCharacters[offset].charCodeAt(0);\r\n }\r\n byteArrays[sliceIndex] = new Uint8Array(bytes);\r\n }\r\n return new Blob(byteArrays, { type: contentType });\r\n }\r\n};\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\";\n\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\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//\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// getAttributeNames\r\nif (Element.prototype.getAttributeNames == undefined) {\r\n Element.prototype.getAttributeNames = function () {\r\n var attributes = this.attributes;\r\n var length = attributes.length;\r\n var result = new Array(length);\r\n for (var i = 0; i < length; i++) {\r\n result[i] = attributes[i].name;\r\n }\r\n return result;\r\n };\r\n}\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 (KTUtil.isMobileDevice() === true && 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\";\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;","// 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\";\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 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;","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","\"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;","// 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","\"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":""}