{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/core/services/store/breadcrumbs.module.js","webpack:///./src/assets/js/components/image-input.js","webpack:///./src/App.vue?93f9","webpack:///src/App.vue","webpack:///./src/App.vue?3359","webpack:///./src/App.vue?2667","webpack:///./src/router.js","webpack:///./src/core/plugins/vuetify.js","webpack:///./src/core/plugins/portal-vue.js","webpack:///./src/core/plugins/bootstrap-vue.js","webpack:///./src/core/plugins/perfect-scrollbar.js","webpack:///./src/core/plugins/highlight-js.js","webpack:///./src/core/plugins/inline-svg.js","webpack:///./src/core/plugins/apexcharts.js","webpack:///./src/assets/js/layout/base/aside-toggle.js","webpack:///./src/assets/js/layout/base/content.js","webpack:///./src/assets/js/layout/base/footer.js","webpack:///./src/assets/js/layout/base/sticky-card.js","webpack:///./src/assets/js/layout/base/stretched-card.js","webpack:///./src/assets/js/layout/base/subheader.js","webpack:///./src/assets/js/layout/extended/chat.js","webpack:///./src/assets/js/layout/extended/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/quick-user.js","webpack:///./src/assets/js/layout/extended/search.js","webpack:///./src/core/plugins/metronic.js","webpack:///./src/main.js","webpack:///./src/core/services/store/config.module.js","webpack:///./src/App.vue?30f2","webpack:///./src/assets/js/components/header.js","webpack:///./src/assets/js/layout/extended/scrolltop.js","webpack:///./src/core/services/store/builder.module.js","webpack:///./src/core/services/store/index.js","webpack:///./src/assets/js/components/menu.js","webpack:///./src/core/services/store/htmlclass.module.js","webpack:///./src/core/services/bbapi.service.js","webpack:///./src/core/services/store/auth.module.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/assets/js/components/toggle.js","webpack:///./src/assets/js/layout/base/header-topbar.js","webpack:///./src/assets/js/layout/base/aside-menu.js","webpack:///./src/assets/js/components/card.js","webpack:///./src/assets/js/layout/base/header.js","webpack:///./src/assets/js/components/cookie.js","webpack:///./src/assets/js/layout/base/header-menu.js","webpack:///./src/assets/js/layout/base/aside.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","APPEND_BREADCRUM","SET_BREADCRUMB","ADD_BREADCRUMB","state","breadcrumbs","getters","pageTitle","last","title","actions","payload","commit","forEach","item","mutations","KTImageInput","elementId","options","the","this","element","KTUtil","getById","getBody","defaultOptions","editMode","Plugin","construct","has","init","build","set","events","input","find","wrapper","cancel","remove","css","hidden","deepExtend","addEvent","preventDefault","files","reader","FileReader","readAsDataURL","addClass","removeClass","eventTrigger","one","handler","fired","setDefaults","on","_vm","_h","$createElement","_c","_self","staticRenderFns","component","Vue","use","Router","base","routes","path","redirect","children","meta","props","requiresAuth","beforeEnter","fullUrl","location","origin","returnUrl","encodeURI","replace","Vuetify","theme","customProperties","themes","light","primary","secondary","accent","info","success","warning","PortalVue","BootstrapVue","IconsPlugin","PerfectScrollbar","VueHighlightJS","languages","scss","javascript","json","vue","InlineSvgPlugin","VueApexCharts","KTLayoutAsideToggle","_body","_element","_toggleObject","_init","KTToggle","targetState","toggleState","toggle","KTLayoutStickyCard","update","KTLayoutHeaderMenu","pauseDropdownHover","KTLayoutAsideMenu","KTCookie","setCookie","getState","hasClass","id","getElement","getToggle","onToggle","KTLayoutContent","_getHeight","height","getViewPort","parseInt","KTLayoutHeader","getHeight","KTLayoutSubheader","KTLayoutFooter","actualHeight","_object","offset","KTCard","sticky","zIndex","position","top","pos","isBreakpointUp","isFixed","isFixedForMobile","getHeightForMobile","left","card","right","body","cardWidth","bodyWidth","cardOffsetLeft","initSticky","addResizeHandler","updateSticky","KTLayoutStretchedCard","scroll","cardBody","cardHeader","KTLayoutChat","scrollEl","cardBodyEl","cardHeaderEl","cardFooterEl","scrollInit","windowScroll","mobileNativeScroll","desktopNativeScroll","resetHeightOnDestroy","handleWindowResize","rememberPosition","isBreakpointDown","hasAttr","attr","keyCode","_handeMessaging","messagesEl","textarea","node","ps","html","setHTML","scrollTop","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","content","KTOffcanvas","overlay","baseClass","placement","closeBy","toggleBy","disableForMobile","KTLayoutQuickCartPanel","footer","KTLayoutQuickNotifications","KTLayoutQuickPanel","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","_initNotifications","_initLogs","_initSettings","KTLayoutQuickSearch","form","results","KTLayoutQuickUser","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","url","HOST_URL","query","dataType","res","_handleCancel","_handleSearch","onkeypress","charCode","KTDialog","KTHeader","KTMenu","KTScrolltop","KTWizard","KTLayoutAside","KTLayoutBrand","KTLayoutHeaderTopbar","KTLayoutScrolltop","config","productionTip","teloptions","defaultCountry","disabledFetchingCountry","disabled","disabledFormatting","placeholder","required","enabledCountryCode","enabledFlags","preferredCountries","onlyCountries","ignoredCountries","autocomplete","maxLen","wrapperClasses","inputClasses","dropdownOptions","disabledDialCode","inputOptions","showDialCode","VueTelInput","eventsHub","IdleVue","eventEmitter","store","idleTime","startAtIdle","ApiService","router","beforeEach","to","from","next","matched","some","record","dispatch","VERIFY_AUTH","isAuthenticated","RESET_LAYOUT_CONFIG","scrollTo","Vuelidate","eventbus","vm","vuetify","render","h","App","$mount","isProduction","process","isEnabled","logLevel","stringifyArguments","showLogLevel","showMethodName","separator","showConsoleColors","VueLogger","SET_LAYOUT_CONFIG","OVERRIDE_LAYOUT_CONFIG","OVERRIDE_PAGE_LAYOUT_CONFIG","initial","layoutConfig","defaultValue","objectPath","assign","JSON","parse","localStorage","getItem","merge","desktop","tabletAndMobile","releseOnReverse","eventTriggerState","lastScrollTop","addEventListener","st","getScrollTop","hasAttribute","removeAttribute","args","speed","SET_BUILDER","builder","builderPrefs","Vuex","Store","auth","htmlClass","accordion","slideSpeed","autoScroll","autoScrollSpeed","expandAll","reset","eventHandlers","pauseDropdownHoverTime","uid","getUniqueID","reload","resetSubmenuProps","handleSubmenuAccordion","getSubmenuMode","isConditionalSubmenuDropdown","handleSubmenuDrodownHoverEnter","handleSubmenuDrodownHoverExit","handleSubmenuDropdownClick","handleSubmenuDropdownTabClick","handleLinkClick","off","scrollDestroy","isset","submenu","hasClasses","default","tablet","mobile","submenus","findAll","len","resumeDropdownHover","showSubmenuDropdown","time","hideSubmenuDropdown","hideSubmenuDropdowns","handleSubmenuDropdownClose","shown","li","child","scrollToItem","classAlso","items","cnt","list","contains","isOffscreen","createSubmenuDropdownClickDropoff","dropoff","stopPropagation","date","resetActiveItem","parents","i_","len_","el_","setActiveItem","getBreadcrumbs","link","text","innerHTML","submenuLink","reverse","getPageTitle","removeEvent","scrollReInit","hideDropdown","hideDropdowns","getByTagName","ADD_BODY_CLASSNAME","REMOVE_BODY_CLASSNAME","ADD_CLASSNAME","SET_CLASSNAME_BY_POSITION","classes","getClasses","context","className","classList","add","VueAxios","axios","defaults","baseURL","setHeader","resource","params","catch","slug","post","put","delete","LOGIN","LOGOUT","REGISTER","UPDATE_USER","PURGE_AUTH","SET_AUTH","SET_ERROR","errors","user","currentUser","credentials","response","email","username","password","image","bio","environment","Environment","startStep","clickableSteps","steps","btnNext","btnPrev","btnSubmit","lastStep","currentStep","newStep","stopped","totalSteps","goTo","updateUI","setNewStep","getNextStep","getPrevStep","index","number","stop","resume","isLastStep","isFirstStep","isBetweenStep","stepType","stepsInfo","removeAttr","stepsContent","getNewStep","step","nested","goNext","goPrev","goLast","getLastStep","goFirst","getFirstStep","getStep","Element","matches","msMatchesSelector","webkitMatchesSelector","ancestor","documentElement","parentElement","elem","lastTime","vendors","x","requestAnimationFrame","cancelAnimationFrame","callback","currTime","timeToCall","Math","max","arr","configurable","writable","argArr","Array","arguments","docFrag","createDocumentFragment","argItem","isNode","Node","createTextNode","String","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","split","unescape","isMobileDevice","test","width","getBreakpoint","navigator","userAgent","match","isDesktopDevice","a","isInResponsiveRange","breakpoint","prefix","floor","random","obj","keys","stone","indexOf","getHighestZindex","isNaN","hasFixedPositionedParent","sleep","milliseconds","start","getRandomInt","min","isAngularVersion","Zone","out","extend","getElementById","getByTag","getByClass","getElementsByClassName","classesArr","trim","RegExp","classNames","triggerCustomEvent","eventName","CustomEvent","detail","initCustomEvent","triggerEvent","doc","ownerDocument","nodeType","eventClass","bubbles","initEvent","synthetic","fireEvent","createEventObject","string","eventTriggered","currentTarget","dataset","triggered","parent","querySelector","insertAfter","referenceNode","nextSibling","selector","matchesSelector","mozMatchesSelector","oMatchesSelector","log","childNodes","f","tagName","customDataTag","outerWidth","margin","parseFloat","offsetWidth","rect","win","getClientRects","getBoundingClientRect","defaultView","pageYOffset","pageXOffset","outerHeight","withMargin","style","offsetHeight","getComputedStyle","marginTop","marginBottom","visible","animate","duration","easing","done","easings","linear","b","rAF","change","performance","now","loop","timestamp","actualCss","prop","cache","HTMLElement","cssText","actualWidth","getScroll","method","self","browserSupportsBoxModel","styleProp","toLowerCase","getPropertyValue","currentStyle","str","letter","toUpperCase","oldLeft","oldRsLeft","runtimeStyle","pixelLeft","slide","dir","recalcMaxHeight","calcHeight","calcPaddingTop","calcPaddingBottom","paddingTop","paddingBottom","display","overflow","removeEventListener","eventId","targets","callee","hash","chr","charCodeAt","animateClass","animationName","animation","animations","OAnimation","MozAnimation","WebkitAnimation","msAnimation","transitionEnd","transition","transitions","OTransition","MozTransition","WebkitTransition","msTransition","animationEnd","animateDelay","animateDuration","targetPos","scrollPos","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","changeColor","col","amt","usePound","num","g","toString","func","delay","debounce","btnWait","cls","disable","caption","btnRelease","direction","windowWidth","windowHeight","KTAppSettings","attrCustom","classBase","classShown","classOverlay","isShown","toggleClass","classCustom","handle","toggleElement","targetElement","targetToggleMode","toggleOn","toggleOff","_toggleElement","getToggleElement","_menuObject","menuDesktopMode","menu","isMinimized","isHoverable","_initHover","insideTm","outsideTm","getMenu","closeMobileOffcanvas","toggleSpeed","onScrollSticky","resetSticky","setContent","getSelf","expand","collapse","destroySticky","_elementForMobile","_getHeightForMobile","idForMobile","getElementForMobile","getHeader","cookie","decodeURIComponent","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","deleteCookie","_menuElement","_offcanvasElement","_offcanvasObject","menuId","offcanvasId","getMenuElement","getOffcanvasElement","getOffcanvas","offcanvasClass"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,CAAC,MAAQ,QAAQ,KAAO,OAAO,QAAU,WAAW9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,MAAQ,WAAW,KAAO,WAAW,QAAU,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,MAI30H,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,GACtkBR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,CAAC,MAAQ,QAAQ,KAAO,OAAO,QAAU,WAAWxC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,MAAQ,WAAW,KAAO,WAAW,QAAU,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,i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","file":"js/app.3df9f994.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/\" + ({\"canvg\":\"canvg\",\"xlsx\":\"xlsx\",\"pdfmake\":\"pdfmake\"}[chunkId]||chunkId) + \".\" + {\"chunk-08e7e459\":\"be4b3f82\",\"chunk-2d207974\":\"84c46df9\",\"chunk-2d21766b\":\"8ab596fb\",\"chunk-20b5f596\":\"4a5603e6\",\"chunk-1548d307\":\"1764fed9\",\"chunk-2d212fb1\":\"2037c73e\",\"chunk-2d0b68bc\":\"8dbf4267\",\"chunk-2d0b8e94\":\"b8f00ec4\",\"chunk-2d0c0c06\":\"b5c8da24\",\"chunk-2d0d9f23\":\"836cc892\",\"chunk-2d209136\":\"1b2bff60\",\"chunk-2d2178b6\":\"65f27b88\",\"chunk-2d225fe1\":\"ea57bc1f\",\"chunk-2d226377\":\"814f7966\",\"chunk-2d22d9c4\":\"bbddc90c\",\"chunk-2d238015\":\"718462db\",\"chunk-3c9739b4\":\"9896fcb7\",\"chunk-2d0ddff2\":\"bd5afce9\",\"chunk-3e135443\":\"1d627f84\",\"chunk-abdd608e\":\"8e067f13\",\"chunk-611bd8c2\":\"f3acd98f\",\"chunk-3e6c652e\":\"f71e213d\",\"chunk-2d0b6586\":\"f9b42461\",\"chunk-2d22bd50\":\"3b98d0ed\",\"chunk-64a0fdf8\":\"96618164\",\"chunk-9e9c9b90\":\"5c5cdf13\",\"chunk-e09f1994\":\"356a2fc5\",\"chunk-3022d8de\":\"687ab3e9\",\"chunk-9dad82e8\":\"642a1970\",\"chunk-515fac89\":\"3a7cab34\",\"chunk-66680c83\":\"b1e80a4a\",\"chunk-7458996b\":\"a2dc2eb9\",\"chunk-7f8af03a\":\"ef99c4da\",\"chunk-95b1b1b6\":\"2ae7f98a\",\"chunk-14506f62\":\"dfd05fd4\",\"chunk-018b3f33\":\"c1615626\",\"chunk-43a6e368\":\"f8b00174\",\"chunk-1409c4b0\":\"90cbaaeb\",\"chunk-5aec3f89\":\"5b41a4c3\",\"chunk-5abee060\":\"ce00d325\",\"chunk-034f79de\":\"8c2d394a\",\"chunk-2d22d049\":\"bbbf9e53\",\"chunk-74f8aab6\":\"25417147\",\"chunk-2802cb48\":\"83c8d1d6\",\"chunk-f0bf64f4\":\"5f8ef5e4\",\"chunk-648c589b\":\"ad37d684\",\"chunk-374afab4\":\"92cb8bba\",\"chunk-7188adb8\":\"75a9aa93\",\"canvg\":\"8b3aa1f7\",\"xlsx\":\"1a7e9c0d\",\"pdfmake\":\"b17ba0e4\",\"chunk-0b65ffb6\":\"a62a7de0\",\"chunk-1e2736cd\":\"3e89d3bc\",\"chunk-2d0a3196\":\"ac76455f\",\"chunk-2d0a3577\":\"e4c7d745\",\"chunk-2d0a40c8\":\"b90f6f16\",\"chunk-2d0a43df\":\"7b924189\",\"chunk-2d0a4bbf\":\"95cf74d1\",\"chunk-2d0aa90c\":\"97db0a26\",\"chunk-2d0aab07\":\"feb5e6c1\",\"chunk-2d0abc00\":\"d8f6f342\",\"chunk-2d0ae937\":\"add2e024\",\"chunk-2d0aeb45\":\"366f3359\",\"chunk-2d0af08c\":\"8409d7ec\",\"chunk-2d0afa49\":\"1b4847d6\",\"chunk-2d0b1fd5\":\"d9dc1954\",\"chunk-2d0b21d7\":\"0e2a2c5a\",\"chunk-2d0b2762\":\"1205fa2b\",\"chunk-2d0b6187\":\"eb214702\",\"chunk-2d0ba136\":\"f59a8616\",\"chunk-2d0bb267\":\"2bdef667\",\"chunk-2d0bcec1\":\"1c097dde\",\"chunk-2d0bdf38\":\"aa152536\",\"chunk-2d0bff92\":\"eb4c4f52\",\"chunk-2d0c0494\":\"db11ad0a\",\"chunk-2d0c0a09\":\"d7242e7c\",\"chunk-2d0c4313\":\"9ca5d428\",\"chunk-2d0c46d1\":\"e2d4550d\",\"chunk-2d0c4a95\":\"cad79adc\",\"chunk-2d0c512b\":\"8453089f\",\"chunk-2d0c86e3\":\"0f2f2cf9\",\"chunk-2d0c8f4c\":\"c86a97dc\",\"chunk-2d0cf16e\":\"e0070075\",\"chunk-2d0d056d\":\"4d1875b4\",\"chunk-2d0d0645\":\"939c2e66\",\"chunk-2d0d2f22\":\"a4a27759\",\"chunk-2d0d61fd\":\"e52db53a\",\"chunk-2d0d7e63\":\"98f20c0f\",\"chunk-2d0dda4e\":\"a170cd4e\",\"chunk-2d0de971\":\"60292295\",\"chunk-2d0e1b57\":\"f50ae005\",\"chunk-2d0e1fbe\":\"33abc889\",\"chunk-2d0e22d6\":\"49ee75e2\",\"chunk-2d0e542a\":\"d1b57c51\",\"chunk-2d0e57ec\":\"eb7e1a23\",\"chunk-2d0e5b34\":\"93000a04\",\"chunk-2d0e6553\":\"db36a34b\",\"chunk-2d0e6c86\":\"5fa4e53e\",\"chunk-2d0ea098\":\"d79c9fb5\",\"chunk-2d0f0a11\":\"04bb5267\",\"chunk-2d208ac5\":\"195bead0\",\"chunk-2d209408\":\"5577515e\",\"chunk-2d20f745\":\"6dc24828\",\"chunk-2d20ff23\":\"5006d70b\",\"chunk-2d2138c7\":\"16c7b1b1\",\"chunk-2d216f3b\":\"af552ea1\",\"chunk-2d217e5b\":\"9a0a59f0\",\"chunk-2d21ab79\":\"e9b149b9\",\"chunk-2d21b84a\":\"d37c8080\",\"chunk-2d21dcd2\":\"eab8c801\",\"chunk-2d21f327\":\"82f7c028\",\"chunk-2d2214b3\":\"ac7ce9af\",\"chunk-2d221799\":\"31949d6c\",\"chunk-2d221814\":\"8d7d7f0a\",\"chunk-2d221a34\":\"124247c1\",\"chunk-2d22502a\":\"23072886\",\"chunk-2d226775\":\"fbae0f09\",\"chunk-2d229411\":\"f1e4a3fc\",\"chunk-2d2295e9\":\"dc0fe339\",\"chunk-2d22c171\":\"59a6641e\",\"chunk-2d22c2b8\":\"89b2c07d\",\"chunk-2d22ca58\":\"1901c861\",\"chunk-2d2311f7\":\"c2bf8fcd\",\"chunk-2d237ee7\":\"b5906293\",\"chunk-2d238465\":\"974d64fb\",\"chunk-74bbacef\":\"fb3d60a0\",\"chunk-7532b3ea\":\"378020bb\",\"chunk-e13e4362\":\"27d2ccb5\",\"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-1548d307\":1,\"chunk-3c9739b4\":1,\"chunk-3e135443\":1,\"chunk-abdd608e\":1,\"chunk-611bd8c2\":1,\"chunk-e09f1994\":1,\"chunk-3022d8de\":1,\"chunk-9dad82e8\":1,\"chunk-66680c83\":1,\"chunk-7f8af03a\":1,\"chunk-14506f62\":1,\"chunk-018b3f33\":1,\"chunk-1409c4b0\":1,\"chunk-5aec3f89\":1,\"chunk-5abee060\":1,\"chunk-034f79de\":1,\"chunk-74f8aab6\":1,\"chunk-2802cb48\":1,\"chunk-f0bf64f4\":1,\"chunk-648c589b\":1,\"chunk-374afab4\":1,\"chunk-7188adb8\":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/\" + ({\"canvg\":\"canvg\",\"xlsx\":\"xlsx\",\"pdfmake\":\"pdfmake\"}[chunkId]||chunkId) + \".\" + {\"chunk-08e7e459\":\"31d6cfe0\",\"chunk-2d207974\":\"31d6cfe0\",\"chunk-2d21766b\":\"31d6cfe0\",\"chunk-20b5f596\":\"31d6cfe0\",\"chunk-1548d307\":\"b75de21c\",\"chunk-2d212fb1\":\"31d6cfe0\",\"chunk-2d0b68bc\":\"31d6cfe0\",\"chunk-2d0b8e94\":\"31d6cfe0\",\"chunk-2d0c0c06\":\"31d6cfe0\",\"chunk-2d0d9f23\":\"31d6cfe0\",\"chunk-2d209136\":\"31d6cfe0\",\"chunk-2d2178b6\":\"31d6cfe0\",\"chunk-2d225fe1\":\"31d6cfe0\",\"chunk-2d226377\":\"31d6cfe0\",\"chunk-2d22d9c4\":\"31d6cfe0\",\"chunk-2d238015\":\"31d6cfe0\",\"chunk-3c9739b4\":\"96a655cf\",\"chunk-2d0ddff2\":\"31d6cfe0\",\"chunk-3e135443\":\"a74f4356\",\"chunk-abdd608e\":\"34787129\",\"chunk-611bd8c2\":\"1e449cd8\",\"chunk-3e6c652e\":\"31d6cfe0\",\"chunk-2d0b6586\":\"31d6cfe0\",\"chunk-2d22bd50\":\"31d6cfe0\",\"chunk-64a0fdf8\":\"31d6cfe0\",\"chunk-9e9c9b90\":\"31d6cfe0\",\"chunk-e09f1994\":\"3e720d07\",\"chunk-3022d8de\":\"868a6db1\",\"chunk-9dad82e8\":\"1c9eb8fc\",\"chunk-515fac89\":\"31d6cfe0\",\"chunk-66680c83\":\"adb71d46\",\"chunk-7458996b\":\"31d6cfe0\",\"chunk-7f8af03a\":\"1067ede5\",\"chunk-95b1b1b6\":\"31d6cfe0\",\"chunk-14506f62\":\"3d8fb376\",\"chunk-018b3f33\":\"76bf8fd7\",\"chunk-43a6e368\":\"31d6cfe0\",\"chunk-1409c4b0\":\"d5e5513e\",\"chunk-5aec3f89\":\"f7d7b909\",\"chunk-5abee060\":\"b75de21c\",\"chunk-034f79de\":\"7ec3dd30\",\"chunk-2d22d049\":\"31d6cfe0\",\"chunk-74f8aab6\":\"d4e98f53\",\"chunk-2802cb48\":\"3b3fcb93\",\"chunk-f0bf64f4\":\"3b3fcb93\",\"chunk-648c589b\":\"b9af751a\",\"chunk-374afab4\":\"ec250466\",\"chunk-7188adb8\":\"d2c0a917\",\"canvg\":\"31d6cfe0\",\"xlsx\":\"31d6cfe0\",\"pdfmake\":\"31d6cfe0\",\"chunk-0b65ffb6\":\"31d6cfe0\",\"chunk-1e2736cd\":\"31d6cfe0\",\"chunk-2d0a3196\":\"31d6cfe0\",\"chunk-2d0a3577\":\"31d6cfe0\",\"chunk-2d0a40c8\":\"31d6cfe0\",\"chunk-2d0a43df\":\"31d6cfe0\",\"chunk-2d0a4bbf\":\"31d6cfe0\",\"chunk-2d0aa90c\":\"31d6cfe0\",\"chunk-2d0aab07\":\"31d6cfe0\",\"chunk-2d0abc00\":\"31d6cfe0\",\"chunk-2d0ae937\":\"31d6cfe0\",\"chunk-2d0aeb45\":\"31d6cfe0\",\"chunk-2d0af08c\":\"31d6cfe0\",\"chunk-2d0afa49\":\"31d6cfe0\",\"chunk-2d0b1fd5\":\"31d6cfe0\",\"chunk-2d0b21d7\":\"31d6cfe0\",\"chunk-2d0b2762\":\"31d6cfe0\",\"chunk-2d0b6187\":\"31d6cfe0\",\"chunk-2d0ba136\":\"31d6cfe0\",\"chunk-2d0bb267\":\"31d6cfe0\",\"chunk-2d0bcec1\":\"31d6cfe0\",\"chunk-2d0bdf38\":\"31d6cfe0\",\"chunk-2d0bff92\":\"31d6cfe0\",\"chunk-2d0c0494\":\"31d6cfe0\",\"chunk-2d0c0a09\":\"31d6cfe0\",\"chunk-2d0c4313\":\"31d6cfe0\",\"chunk-2d0c46d1\":\"31d6cfe0\",\"chunk-2d0c4a95\":\"31d6cfe0\",\"chunk-2d0c512b\":\"31d6cfe0\",\"chunk-2d0c86e3\":\"31d6cfe0\",\"chunk-2d0c8f4c\":\"31d6cfe0\",\"chunk-2d0cf16e\":\"31d6cfe0\",\"chunk-2d0d056d\":\"31d6cfe0\",\"chunk-2d0d0645\":\"31d6cfe0\",\"chunk-2d0d2f22\":\"31d6cfe0\",\"chunk-2d0d61fd\":\"31d6cfe0\",\"chunk-2d0d7e63\":\"31d6cfe0\",\"chunk-2d0dda4e\":\"31d6cfe0\",\"chunk-2d0de971\":\"31d6cfe0\",\"chunk-2d0e1b57\":\"31d6cfe0\",\"chunk-2d0e1fbe\":\"31d6cfe0\",\"chunk-2d0e22d6\":\"31d6cfe0\",\"chunk-2d0e542a\":\"31d6cfe0\",\"chunk-2d0e57ec\":\"31d6cfe0\",\"chunk-2d0e5b34\":\"31d6cfe0\",\"chunk-2d0e6553\":\"31d6cfe0\",\"chunk-2d0e6c86\":\"31d6cfe0\",\"chunk-2d0ea098\":\"31d6cfe0\",\"chunk-2d0f0a11\":\"31d6cfe0\",\"chunk-2d208ac5\":\"31d6cfe0\",\"chunk-2d209408\":\"31d6cfe0\",\"chunk-2d20f745\":\"31d6cfe0\",\"chunk-2d20ff23\":\"31d6cfe0\",\"chunk-2d2138c7\":\"31d6cfe0\",\"chunk-2d216f3b\":\"31d6cfe0\",\"chunk-2d217e5b\":\"31d6cfe0\",\"chunk-2d21ab79\":\"31d6cfe0\",\"chunk-2d21b84a\":\"31d6cfe0\",\"chunk-2d21dcd2\":\"31d6cfe0\",\"chunk-2d21f327\":\"31d6cfe0\",\"chunk-2d2214b3\":\"31d6cfe0\",\"chunk-2d221799\":\"31d6cfe0\",\"chunk-2d221814\":\"31d6cfe0\",\"chunk-2d221a34\":\"31d6cfe0\",\"chunk-2d22502a\":\"31d6cfe0\",\"chunk-2d226775\":\"31d6cfe0\",\"chunk-2d229411\":\"31d6cfe0\",\"chunk-2d2295e9\":\"31d6cfe0\",\"chunk-2d22c171\":\"31d6cfe0\",\"chunk-2d22c2b8\":\"31d6cfe0\",\"chunk-2d22ca58\":\"31d6cfe0\",\"chunk-2d2311f7\":\"31d6cfe0\",\"chunk-2d237ee7\":\"31d6cfe0\",\"chunk-2d238465\":\"31d6cfe0\",\"chunk-74bbacef\":\"31d6cfe0\",\"chunk-7532b3ea\":\"31d6cfe0\",\"chunk-e13e4362\":\"31d6cfe0\",\"chunk-743e4b25\":\"dc6eda16\",\"chunk-74524b79\":\"aaee7847\",\"chunk-746154ec\":\"1c2fabcd\",\"chunk-7498e9ec\":\"eb873fd7\",\"chunk-74a82e1a\":\"8a297ad8\",\"chunk-74b6aca8\":\"bbe87d98\",\"chunk-76f08193\":\"24774c0c\",\"chunk-771a7e38\":\"242dda35\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// action types\r\nexport const APPEND_BREADCRUM = \"appendBreadcrumb\";\r\n\r\n// mutation types\r\nexport const SET_BREADCRUMB = \"setBreadcrumb\";\r\nexport const ADD_BREADCRUMB = \"addBreadcrumb\";\r\n\r\nexport default {\r\n state: {\r\n breadcrumbs: []\r\n },\r\n getters: {\r\n /**\r\n * Get list of breadcrumbs for current page\r\n * @param state\r\n * @returns {*}\r\n */\r\n breadcrumbs(state) {\r\n return state.breadcrumbs;\r\n },\r\n\r\n /**\r\n * Get the page title\r\n * @param state\r\n * @returns {*}\r\n */\r\n pageTitle(state) {\r\n let last = state.breadcrumbs[state.breadcrumbs.length - 1];\r\n if (last && last.title) {\r\n return last.title;\r\n }\r\n }\r\n },\r\n actions: {\r\n /**\r\n * Set the breadcrumbs list\r\n * @param state\r\n * @param payload\r\n */\r\n [SET_BREADCRUMB](state, payload) {\r\n state.commit(SET_BREADCRUMB, payload);\r\n },\r\n\r\n /**\r\n * Add breadcrumb\r\n * @param state\r\n * @param payload\r\n */\r\n [ADD_BREADCRUMB](state, payload) {\r\n if (typeof payload === \"object\") {\r\n payload.forEach(item => state.commit(APPEND_BREADCRUM, item));\r\n } else {\r\n state.commit(APPEND_BREADCRUM, payload);\r\n }\r\n }\r\n },\r\n mutations: {\r\n [APPEND_BREADCRUM](state, payload) {\r\n state.breadcrumbs = [...state.breadcrumbs, payload];\r\n },\r\n [SET_BREADCRUMB](state, payload) {\r\n state.breadcrumbs = payload;\r\n }\r\n }\r\n};\r\n","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition \r\nvar KTImageInput = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n editMode: false\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('imageinput')) {\r\n the = KTUtil.data(element).get('imageinput');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('imageinput', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Init avatar\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n the.input = KTUtil.find(element, 'input[type=\"file\"]');\r\n the.wrapper = KTUtil.find(element, '.image-input-wrapper');\r\n the.cancel = KTUtil.find(element, '[data-action=\"cancel\"]');\r\n the.remove = KTUtil.find(element, '[data-action=\"remove\"]');\r\n the.src = KTUtil.css(the.wrapper, 'backgroundImage');\r\n the.hidden = KTUtil.find(element, 'input[type=\"hidden\"]');\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n },\r\n\r\n /**\r\n * Build\r\n */\r\n build: function() {\r\n // Handle change\r\n KTUtil.addEvent(the.input, 'change', function(e) {\r\n e.preventDefault();\r\n\r\n\t if (the.input && the.input.files && the.input.files[0]) {\r\n\t var reader = new FileReader();\r\n\t reader.onload = function(e) {\r\n\t KTUtil.css(the.wrapper, 'background-image', 'url('+e.target.result +')');\r\n\t }\r\n\t reader.readAsDataURL(the.input.files[0]);\r\n\r\n\t KTUtil.addClass(the.element, 'image-input-changed');\r\n KTUtil.removeClass(the.element, 'image-input-empty');\r\n\r\n // Fire change event\r\n Plugin.eventTrigger('change');\r\n\t }\r\n });\r\n\r\n // Handle cancel\r\n KTUtil.addEvent(the.cancel, 'click', function(e) {\r\n e.preventDefault();\r\n\r\n // Fire cancel event\r\n Plugin.eventTrigger('cancel');\r\n\r\n\t KTUtil.removeClass(the.element, 'image-input-changed');\r\n KTUtil.removeClass(the.element, 'image-input-empty');\r\n\t KTUtil.css(the.wrapper, 'background-image', the.src);\r\n\t the.input.value = \"\";\r\n\r\n if (the.hidden) {\r\n the.hidden.value = \"0\";\r\n }\r\n });\r\n\r\n // Handle remove\r\n KTUtil.addEvent(the.remove, 'click', function(e) {\r\n e.preventDefault();\r\n\r\n // Fire cancel event\r\n Plugin.eventTrigger('remove');\r\n\r\n\t KTUtil.removeClass(the.element, 'image-input-changed');\r\n KTUtil.addClass(the.element, 'image-input-empty');\r\n\t KTUtil.css(the.wrapper, 'background-image', \"none\");\r\n\t the.input.value = \"\";\r\n\r\n if (the.hidden) {\r\n the.hidden.value = \"1\";\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n //KTUtil.triggerCustomEvent(name);\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Attach event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTImageInput;\r\n}\r\n\nexport default KTImageInput;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","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=ebf42ff6&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport Router from \"vue-router\";\r\n\r\nVue.use(Router);\r\n\r\nexport default new Router({\r\n mode: 'history',\r\n base: '/v2',\r\n routes: [\r\n {\r\n path: \"/\",\r\n redirect: \"/dashboard\",\r\n component: () => import(\"@/view/layout/Layout\"),\r\n children: [\r\n {\r\n path: \"/dashboard:section?\",\r\n name: \"dashboard\",\r\n\r\n component: () => import(\"@/view/pages/Dashboard/Dashboard.vue\"),\r\n meta: { title: \"Dashboard\" },\r\n },\r\n {\r\n path: \"/builder/:workflowid?\",\r\n name: \"builder\",\r\n component: () => import(\"@/view/pages/Builder/Builder.vue\"),\r\n meta: { title: \"Builder\" },\r\n }, \r\n {\r\n path: \"/mydatasources\",\r\n name: \"mydatasources\",\r\n component: () => import(\"@/view/pages/Datasources/MyDataSources.vue\"),\r\n meta: { title: \"My DataSources\" },\r\n },\r\n {\r\n path: '/systemalerts/:systemalertid?',\r\n name: \"systemalerts\",\r\n component: () => import(\"@/view/pages/SystemAlerts/SystemAlerts.vue\"),\r\n meta: { title: 'System Alerts' }\r\n },\r\n {\r\n path: '/usercredits',\r\n name: \"usercredits\",\r\n component: () => import(\"@/view/pages/User/UserCredits.vue\"),\r\n meta: { title: 'Credit Management' }\r\n },\r\n {\r\n path: '/audithistory',\r\n name: \"audithistory\",\r\n component: () => import(\"@/view/pages/Audit/ViewAuditHistory.vue\"),\r\n meta: { title: 'Audit History' }\r\n },\r\n {\r\n path: '/compareaudithistory',\r\n name: \"compareaudithistory\",\r\n component: () => import(\"@/view/pages/Audit/CompareAuditHistory.vue\"),\r\n meta: { title: 'Compare Audit History' }\r\n },\r\n {\r\n path: '/batchrefresh',\r\n name: \"batchrefresh\",\r\n component: () => import(\"@/view/pages/BatchRefresh/ViewBatchRefresh.vue\"),\r\n meta: { title: 'Batch Refresh' }\r\n },\r\n {\r\n path: \"/admindash\",\r\n name: \"admindash\",\r\n component: () => import(\"@/view/pages/AdminDash/AdminDash.vue\"),\r\n meta: { title: 'Admin Dashboard' }\r\n },\r\n {\r\n path: \"/oauth/concur/:id?:requestToken?:userId?:appIdentifier?\",\r\n name: \"oauthconcur\",\r\n component: () => import(\"@/view/pages/OAuth/Concur/Accept.vue\"),\r\n meta: { title: \"Oauth Concur\" }\r\n },\r\n {\r\n path: \"/toolbox/services/:id?\",\r\n name: \"toolboxservices\",\r\n component: () => import(\"@/view/pages/Toolbox/Services/Services.vue\"),\r\n meta: { title: \"Toolbox Services\" }\r\n },\r\n {\r\n path: \"/toolbox/transformers\",\r\n name: \"transformers\",\r\n component: () => import(\"@/view/pages/Toolbox/Transformers.vue\"),\r\n meta: { title: \"Transformers\" }\r\n },\r\n {\r\n path: \"/toolbox/jstransforms/:workflowId?/:serviceId?/:workflowTransactionId?\",\r\n name: \"jstransforms\",\r\n component: () => import(\"@/view/pages/Toolbox/JSTransforms.vue\"),\r\n meta: { title: \"Javascript & Liquid Transformation Playground\" }\r\n }, \r\n {\r\n path: \"/toolbox/mappingdoc/:workflowId?/:itemName?/:isProduct?\",\r\n name: \"mappingdoc\",\r\n component: () => import(\"@/view/pages/Toolbox/MapDocEditor.vue\"),\r\n meta: { title: \"Mapping Document Editor\" },\r\n props: true\r\n },\r\n {\r\n path: \"/guide\",\r\n name: \"guide\",\r\n component: () => import(\"@/view/pages/Guide/StyleGuide.vue\"),\r\n meta: { title: \"Component and Style Guide\" }\r\n },\r\n {\r\n path: \"/wip\",\r\n name: \"wip\",\r\n component: () => import(\"@/view/pages/WIP/WIP.vue\"),\r\n meta: { title: 'WIP' }\r\n },\r\n {\r\n path: \"/buttertest\",\r\n name: \"buttertest\",\r\n component: () => import(\"@/view/pages/WIP/ButterTest.vue\"),\r\n meta: { title: 'Butter Test' }\r\n },\r\n {\r\n path: \"/convertdatasources\",\r\n name: \"convertdatasources\",\r\n component: () => import(\"@/view/pages/WIP/ConvertDatasources.vue\"),\r\n meta: { title: 'Convert Datasources' }\r\n },\r\n {\r\n path: \"/importexporttool\",\r\n name: \"importexporttool\",\r\n component: () => import(\"@/view/pages/Tools/ImportExportTool.vue\"),\r\n meta: { title: 'Import Export Tool' }\r\n },\r\n {\r\n path: \"/concurauthmigrate\",\r\n name: \"concurauthmigrate\",\r\n component: () => import(\"@/view/pages/Tools/ConcurAuthMigrate.vue\"),\r\n meta: { title: 'Concur Auth Migration' }\r\n },\r\n {\r\n path: \"/instanceadmin\",\r\n name: \"instanceadmin\",\r\n component: () => import(\"@/view/pages/Tools/InstanceAdmin.vue\"),\r\n meta: { title: 'Instance Admin' }\r\n },\r\n {\r\n path: \"/renameproduct/:productId\",\r\n name: \"renameproduct\",\r\n component: () => import(\"@/view/pages/Tools/RenameProduct.vue\"),\r\n meta: { title: 'Rename Product' }\r\n },\r\n {\r\n path: \"/dbadmin\",\r\n name: \"dbadmin\",\r\n component: () => import(\"@/view/pages/Tools/DBAdmin.vue\"),\r\n meta: { title: 'DB Admin' }\r\n },\r\n {\r\n path: \"/workflowreport\",\r\n name: \"workflowreport\",\r\n component: () => import(\"@/view/pages/Tools/WorkflowCallValidatorReport.vue\"),\r\n meta: { title: 'Workflow Report' }\r\n },\r\n {\r\n path: \"/FileToBase64StringToBlob\",\r\n name: \"FileToBase64StringToBlob\",\r\n component: () => import(\"@/view/pages/WIP/FileToBase64StringToBlob.vue\"),\r\n meta: { title: 'File To Base64 String To Blob Storage' }\r\n },\r\n {\r\n path: \"/documentsync/:productid?/:docid?\",\r\n name: \"documentsync\",\r\n component: () => import(\"@/view/pages/Tools/DocumentSync.vue\"),\r\n meta: { title: 'Document Sync' }\r\n },\r\n {\r\n path: \"/scheduler\",\r\n name: \"scheduler\",\r\n component: () => import(\"@/view/pages/Scheduler/Scheduler.vue\"),\r\n meta: { title: 'Scheduler' }\r\n },\r\n {\r\n path: \"/workflowjobsbyuser/:userid?\",\r\n name: \"workflowjobsbyuser\",\r\n component: () => import(\"@/view/pages/Scheduler/WorkflowJobsByUser.vue\"),\r\n meta: { title: 'Workflow Jobs by User' }\r\n },\r\n {\r\n path: \"/workflowjob/:workflowid\",\r\n name: \"workflowjob\",\r\n component: () => import(\"@/view/pages/Scheduler/WorkflowJob.vue\"),\r\n meta: { title: 'Workflow Job' }\r\n },\r\n {\r\n path: \"/dynamicdocuments\",\r\n name: \"dynamicdocuments\",\r\n component: () => import(\"@/view/pages/WIP/DynamicDocuments.vue\"),\r\n meta: { title: 'Dynamic Documents' }\r\n },\r\n {\r\n path: \"/webhooks/:webhookid?\",\r\n name: \"webhooks\",\r\n component: () => import(\"@/view/pages/Webhooks/Webhooks.vue\"),\r\n meta: { title: 'Webhooks' }\r\n },\r\n {\r\n path: \"/allwebhooklogs\",\r\n name: \"allwebhooklogs\",\r\n component: () => import(\"@/view/pages/Webhooks/AllWebhookLogs.vue\"),\r\n meta: { title: 'All webhook logs' }\r\n },\r\n //{\r\n // path: \"/documentsyncdiff/:docid\",\r\n // name: \"documentsyncdiff\",\r\n // component: () => import(\"@/view/pages/Tools/DocumentSyncDiff.vue\"),\r\n // meta: { title: 'Document Sync Diff' }\r\n //},\r\n {\r\n path: \"/pages/:slug\",\r\n name: \"cmspage\",\r\n component: () => import(\"@/view/pages/Pages/CMS.vue\"),\r\n //meta: { title: 'Pages' }\r\n },\r\n //path: \"/builder\",\r\n //{\r\n // path: \"/vue-bootstrap\",\r\n // name: \"vue-bootstrap\",\r\n // component: () =>\r\n // import(\"@/view/pages/vue-bootstrap/VueBootstrap.vue\"),\r\n // children: [\r\n // {\r\n // path: \"alert\",\r\n // name: \"vue-bootstrap-alert\",\r\n // component: () => import(\"@/view/pages/vue-bootstrap/Alert.vue\")\r\n // },\r\n // {\r\n // path: \"badge\",\r\n // name: \"vue-bootstrap-badge\",\r\n // component: () => import(\"@/view/pages/vue-bootstrap/Badge.vue\")\r\n // } \r\n // ]\r\n //} \r\n ],\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/login\",\r\n name: \"login\",\r\n beforeEnter() {\r\n var fullUrl = window.location.href;\r\n var origin = window.location.origin;\r\n //https://stackoverflow.com/questions/373599/how-to-pass-special-characters-so-asp-net-mvc-can-handle-correctly-query-string\r\n let returnUrl = \"/User/Login?fromVue=true&ReturnUrl=\" + encodeURI(fullUrl.replace(origin, \"\").replace(\"#\", \"VueHash\"));\r\n window.location.href = returnUrl;\r\n }\r\n },\r\n {\r\n path: \"/logoff\",\r\n name: \"logoff\",\r\n beforeEnter() {\r\n window.location.href = \"/User/LogOff\";\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 meta: { title: 'NotFound' },\r\n component: () => import(\"@/view/pages/error/Error-1.vue\")\r\n }\r\n ] \r\n});\r\n","import Vue from \"vue\";\r\nimport Vuetify from \"vuetify/lib/framework\";\r\n\r\nVue.use(Vuetify);\r\n\r\nexport default new Vuetify({\r\n theme: {\r\n options: {\r\n customProperties: true\r\n },\r\n themes: {\r\n light: {\r\n primary: \"#5867dd\",\r\n secondary: \"#e8ecfa\",\r\n accent: \"#5d78ff\",\r\n error: \"#fd397a\",\r\n info: \"#5578eb\",\r\n success: \"#0abb87\",\r\n warning: \"#ffb822\"\r\n }\r\n }\r\n }\r\n});\r\n","import Vue from \"vue\";\r\nimport PortalVue from \"portal-vue\";\r\n\r\nVue.use(PortalVue);\r\n\r\nexport default PortalVue;\r\n","import Vue from \"vue\";\r\nimport { BootstrapVue, IconsPlugin } from \"bootstrap-vue\";\r\n\r\n// Install BootstrapVue\r\nVue.use(BootstrapVue);\r\n// Optionally install the BootstrapVue icon components plugin\r\nVue.use(IconsPlugin);\r\n","import Vue from \"vue\";\r\nimport PerfectScrollbar from \"vue2-perfect-scrollbar\";\r\n\r\n// Perfect scrollbar\r\nVue.use(PerfectScrollbar);\r\n","import Vue from \"vue\";\r\n// Highlight js\r\nimport VueHighlightJS from \"vue-highlight.js\";\r\n// Highlight.js languages (Only required languages)\r\nimport scss from \"highlight.js/lib/languages/scss\";\r\nimport javascript from \"highlight.js/lib/languages/javascript\";\r\nimport json from \"highlight.js/lib/languages/json\";\r\nimport vue from \"vue-highlight.js/lib/languages/vue\";\r\nimport \"highlight.js/styles/github-gist.css\";\r\n\r\n// highlight js\r\nVue.use(VueHighlightJS, {\r\n // Register only languages that you want\r\n languages: {\r\n scss,\r\n javascript,\r\n json,\r\n vue\r\n }\r\n});\r\n","import Vue from \"vue\";\r\nimport { InlineSvgPlugin } from \"vue-inline-svg\";\r\n\r\nVue.use(InlineSvgPlugin);\r\n","import Vue from \"vue\";\r\nimport VueApexCharts from \"vue-apexcharts\";\r\n\r\nVue.use(VueApexCharts);\r\n\r\nVue.component(\"apexchart\", VueApexCharts);\r\n","\"use strict\";\r\n\r\nvar 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, _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;","\"use strict\";\r\n\r\nvar KTLayoutContent = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height;\r\n\r\n\t\theight = KTUtil.getViewPort().height;\r\n\r\n if (_element) {\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n }\r\n\r\n height = height - KTLayoutHeader.getHeight();\r\n height = height - KTLayoutSubheader.getHeight();\r\n height = height - KTLayoutFooter.getHeight();\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutContent;","\"use strict\";\r\n\r\nvar KTLayoutFooter = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutFooter;","\"use strict\";\r\n\r\nvar KTLayoutStickyCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n var _object;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar offset = 300;\r\n\r\n\t\tif (typeof KTLayoutHeader !== 'undefined') {\r\n\t\t\toffset = KTLayoutHeader.getHeight();\r\n\t\t}\r\n\r\n _object = new KTCard(_element, {\r\n\t\t\tsticky: {\r\n\t\t\t\toffset: offset,\r\n\t\t\t\tzIndex: 90,\r\n\t\t\t\tposition: {\r\n\t\t\t\t\ttop: function() {\r\n\t\t\t\t\t\tvar pos = 0;\r\n var body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (typeof KTLayoutSubheader !== 'undefined' && KTLayoutSubheader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutSubheader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixedForMobile()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeightForMobile();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tpos = pos - 1; // remove header border width\r\n\r\n\t\t\t\t\t\treturn pos;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tleft: function(card) {\r\n\t\t\t\t\t\treturn KTUtil.offset(_element).left;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tright: function(card) {\r\n\t\t\t\t\t\tvar body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tvar cardWidth = parseInt(KTUtil.css(_element, 'width'));\r\n\t\t\t\t\t\tvar bodyWidth = parseInt(KTUtil.css(body, 'width'));\r\n\t\t\t\t\t\tvar cardOffsetLeft = KTUtil.offset(_element).left;\r\n\r\n\t\t\t\t\t\treturn bodyWidth - cardWidth - cardOffsetLeft;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_object.initSticky();\r\n\r\n\t\tKTUtil.addResizeHandler(function() {\r\n\t\t\t_object.updateSticky();\r\n\t\t});\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\tif (_object) {\r\n\t\t\t\t_object.updateSticky();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutStickyCard;","\"use strict\";\r\n\r\nvar KTLayoutStretchedCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar scroll = KTUtil.find(_element, '.card-scroll');\r\n\t\tvar cardBody = KTUtil.find(_element, '.card-body');\r\n\t\tvar cardHeader = KTUtil.find(_element, '.card-header');\r\n\r\n\t\tvar height = KTLayoutContent.getHeight();\r\n\r\n\t\theight = height - parseInt(KTUtil.actualHeight(cardHeader));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'marginTop')) - parseInt(KTUtil.css(_element, 'marginBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'paddingTop')) - parseInt(KTUtil.css(cardBody, 'paddingBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'marginTop')) - parseInt(KTUtil.css(cardBody, 'marginBottom'));\r\n\r\n\t\theight = height - 3;\r\n\r\n\t\tKTUtil.css(scroll, 'height', height + 'px');\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\r\n // Re-calculate on window resize\r\n KTUtil.addResizeHandler(function() {\r\n\t\t\t\t_init();\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\t_init();\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutStretchedCard;","\"use strict\";\r\n\r\nvar KTLayoutSubheader = function() {\r\n // Private properties\r\n var _element;\r\n\r\n // Private functions\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'subheader-fixed');\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutSubheader;","\"use strict\";\r\n\r\n// Class definition\r\nvar KTLayoutChat = function () {\r\n\t// Private functions\r\n\tvar _init = function (element) {\r\n\t\tvar scrollEl = KTUtil.find(element, '.scroll');\r\n\t\tvar cardBodyEl = KTUtil.find(element, '.card-body');\r\n\t\tvar cardHeaderEl = KTUtil.find(element, '.card-header');\r\n\t\tvar cardFooterEl = KTUtil.find(element, '.card-footer');\r\n\r\n\t\tif (!scrollEl) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// initialize perfect scrollbar(see: https://github.com/utatti/perfect-scrollbar)\r\n\t\tKTUtil.scrollInit(scrollEl, {\r\n\t\t\twindowScroll: false, // allow browser scroll when the scroll reaches the end of the side\r\n\t\t\tmobileNativeScroll: true, // enable native scroll for mobile\r\n\t\t\tdesktopNativeScroll: false, // disable native scroll and use custom scroll for desktop\r\n\t\t\tresetHeightOnDestroy: true, // reset css height on scroll feature destroyed\r\n\t\t\thandleWindowResize: true, // recalculate hight on window resize\r\n\t\t\trememberPosition: true, // remember scroll position in cookie\r\n\t\t\theight: function() { // calculate height\r\n\t\t\t\tvar height;\r\n\r\n\t\t\t\tif (KTUtil.isBreakpointDown('lg')) { // Mobile mode\r\n\t\t\t\t\treturn KTUtil.hasAttr(scrollEl, 'data-mobile-height') ? parseInt(KTUtil.attr(scrollEl, 'data-mobile-height')) : 400;\r\n\t\t\t\t} else if (KTUtil.isBreakpointUp('lg') && KTUtil.hasAttr(scrollEl, 'data-height')) { // Desktop Mode\r\n\t\t\t\t\treturn parseInt(KTUtil.attr(scrollEl, 'data-height'));\r\n\t\t\t\t} else {\r\n\t\t\t\t\theight = KTLayoutContent.getHeight();\r\n\r\n\t\t\t\t\tif (scrollEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(scrollEl, 'margin-top')) - parseInt(KTUtil.css(scrollEl, 'margin-bottom'));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cardHeaderEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardHeaderEl, 'height'));\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardHeaderEl, 'margin-top')) - parseInt(KTUtil.css(cardHeaderEl, 'margin-bottom'));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cardBodyEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardBodyEl, 'padding-top')) - parseInt(KTUtil.css(cardBodyEl, 'padding-bottom'));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cardFooterEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardFooterEl, 'height'));\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardFooterEl, 'margin-top')) - parseInt(KTUtil.css(cardFooterEl, 'margin-bottom'));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Remove additional space\r\n\t\t\t\theight = height - 2;\r\n\r\n\t\t\t\treturn height;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// attach events\r\n\t\tKTUtil.on(element, '.card-footer textarea', 'keydown', function(e) {\r\n\t\t\tif (e.keyCode == 13) {\r\n\t\t\t\t_handeMessaging(element);\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tKTUtil.on(element, '.card-footer .chat-send', 'click', function(e) {\r\n\t\t\t_handeMessaging(element);\r\n\t\t});\r\n\t}\r\n\r\n\tvar _handeMessaging = function(element) {\r\n\t\tvar messagesEl = KTUtil.find(element, '.messages');\r\n\t\tvar scrollEl = KTUtil.find(element, '.scroll');\r\n var textarea = KTUtil.find(element, 'textarea');\r\n\r\n if (textarea.value.length === 0 ) {\r\n return;\r\n }\r\n\r\n\t\tvar node = document.createElement(\"DIV\");\r\n\t\tKTUtil.addClass(node, 'd-flex flex-column mb-5 align-items-end');\r\n\r\n\t\tvar html = '';\r\n\t\thtml += '
';\r\n\t\thtml += '\t
';\r\n\t\thtml += '\t\t2 Hours';\r\n\t\thtml += '\t\tYou';\r\n\t\thtml += '\t
';\r\n\t\thtml += '\t
';\r\n\t\thtml += '\t\t\"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(id) {\r\n\t\t\t// Init modal chat example\r\n\t\t\t_init(KTUtil.getById(id));\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\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\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 IdleVue from 'idle-vue';\r\nimport App from \"./App.vue\";\r\nimport router from \"./router\";\r\nimport store from \"@/core/services/store\";\r\n//import ApiService from \"@/core/services/api.service\";\r\nimport ApiService from \"@/core/services/bbapi.service\";\r\n//import MockService from \"@/core/mock/mock.service\";\r\nimport Vuelidate from \"vuelidate\";\r\nimport { VERIFY_AUTH } from \"@/core/services/store/auth.module\";\r\nimport { RESET_LAYOUT_CONFIG } from \"@/core/services/store/config.module\";\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 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/apexcharts\";\r\nimport \"@/core/plugins/metronic\";\r\nimport \"@mdi/font/css/materialdesignicons.css\";\r\n\r\nimport VueTelInput from 'vue-tel-input'\r\nimport 'vue-tel-input/dist/vue-tel-input.css'\r\n\r\nvar teloptions = {\r\n mode: \"international\",\r\n defaultCountry: \"US\",\r\n disabledFetchingCountry: false,\r\n disabled: false,\r\n disabledFormatting: false,\r\n placeholder: \"Enter a phone number\",\r\n required: true,\r\n enabledCountryCode: false,\r\n enabledFlags: true,\r\n preferredCountries: [], //[\"AU\", \"BR\"]\r\n onlyCountries: [],\r\n ignoredCountries: [],\r\n autocomplete: \"off\",\r\n name: \"telephone\",\r\n maxLen: 25,\r\n wrapperClasses: \"\",\r\n inputClasses: \"\",\r\n dropdownOptions: {\r\n disabledDialCode: false\r\n },\r\n inputOptions: {\r\n showDialCode: false,\r\n //required: true,\r\n }\r\n }\r\n Vue.use(VueTelInput, teloptions);\r\n\r\n//Vue.use(VueTelInput);\r\n\r\n\r\n//https://github.com/soixantecircuits/idle-vue#readme\r\n//https://medium.com/js-dojo/how-to-set-timer-idle-in-vue-1f4b57beb886\r\n//Idle Timeout\r\nconst eventsHub = new Vue();\r\n\r\nVue.use(IdleVue, {\r\n eventEmitter: eventsHub,\r\n store,\r\n idleTime: 24 * 60 * 60 * 1000,\r\n startAtIdle: false,\r\n events: [\"mousedown\"]\r\n});\r\n\r\n\r\n// API service init\r\nApiService.init();\r\n\r\n// Remove this to disable mock API\r\n//MockService.init();\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n\r\n if (to.matched.some(record => record.meta.requiresAuth)) {\r\n Promise.all([store.dispatch(VERIFY_AUTH)])\r\n .then(\r\n function () {\r\n if (store.getters.isAuthenticated) {\r\n next();\r\n }\r\n else {\r\n next('/login');\r\n }\r\n }\r\n );\r\n }\r\n else {\r\n next();\r\n }\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\n\r\nVue.use(Vuelidate);\r\n\r\nexport const eventbus = new Vue();\r\n\r\nvar vm = new Vue({\r\n router,\r\n store,\r\n vuetify,\r\n render: h => h(App)\r\n}).$mount(\"#app\");\r\n\r\n//Vue logger\r\nimport VueLogger from 'vuejs-logger';\r\nconst isProduction = process.env.NODE_ENV === 'production';\r\n\r\nconst options = {\r\n isEnabled: true,\r\n logLevel: isProduction ? 'error' : 'debug',\r\n stringifyArguments: false,\r\n showLogLevel: true,\r\n showMethodName: true,\r\n separator: '|',\r\n showConsoleColors: true\r\n};\r\n\r\nVue.use(VueLogger, options);\r\n\r\nwindow.vm = vm;\r\n\r\n","import objectPath from \"object-path\";\r\nimport merge from \"deepmerge\";\r\nimport config from \"@/core/config/layout.config.json\";\r\n\r\n// action types\r\nexport const SET_LAYOUT_CONFIG = \"setLayoutConfig\";\r\nexport const RESET_LAYOUT_CONFIG = \"resetLayoutConfig\";\r\nexport const OVERRIDE_LAYOUT_CONFIG = \"overrideLayoutConfig\";\r\nexport const OVERRIDE_PAGE_LAYOUT_CONFIG = \"overridePageLayoutConfig\";\r\n\r\n// mutation types\r\n\r\nexport default {\r\n state: {\r\n config: config,\r\n initial: config\r\n },\r\n getters: {\r\n /**\r\n * Get config from layout config\r\n * @param state\r\n * @returns {function(path, defaultValue): *}\r\n */\r\n layoutConfig: state => (path, defaultValue) => {\r\n return objectPath.get(state.config, path, defaultValue);\r\n }\r\n },\r\n actions: {\r\n /**\r\n * Set and replace the whole config\r\n * @param state\r\n * @param payload\r\n */\r\n [SET_LAYOUT_CONFIG](state, payload) {\r\n state.commit(SET_LAYOUT_CONFIG, payload);\r\n },\r\n\r\n /**\r\n * Reset the config at the initial state\r\n * @param state\r\n */\r\n [RESET_LAYOUT_CONFIG](state) {\r\n state.commit(RESET_LAYOUT_CONFIG);\r\n },\r\n\r\n /**\r\n * Reset the config using saved config in the cache by the layout builder\r\n * @param state\r\n */\r\n [OVERRIDE_LAYOUT_CONFIG](state) {\r\n state.commit(OVERRIDE_LAYOUT_CONFIG);\r\n },\r\n\r\n /**\r\n * Override config by page level\r\n * @param state\r\n * @param payload\r\n */\r\n [OVERRIDE_PAGE_LAYOUT_CONFIG](state, payload) {\r\n state.commit(OVERRIDE_PAGE_LAYOUT_CONFIG, payload);\r\n }\r\n },\r\n mutations: {\r\n [SET_LAYOUT_CONFIG](state, payload) {\r\n state.config = payload;\r\n },\r\n [RESET_LAYOUT_CONFIG](state) {\r\n state.config = Object.assign({}, state.initial);\r\n },\r\n [OVERRIDE_LAYOUT_CONFIG](state) {\r\n state.config = state.initial = Object.assign(\r\n {},\r\n state.initial,\r\n JSON.parse(localStorage.getItem(\"config\"))\r\n );\r\n },\r\n [OVERRIDE_PAGE_LAYOUT_CONFIG](state, payload) {\r\n state.config = merge(state.config, payload);\r\n }\r\n }\r\n};\r\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/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;","\"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;","// mutation types\r\nexport const SET_BUILDER = \"setBuilder\";\r\n\r\nexport default {\r\n state: {\r\n builder: {}\r\n },\r\n getters: {\r\n builderPrefs(state) {\r\n return state.builder;\r\n }\r\n },\r\n actions: {\r\n [SET_BUILDER](state, payload) {\r\n state.commit(SET_BUILDER, payload);\r\n }\r\n },\r\n mutations: {\r\n [SET_BUILDER](state, payload) {\r\n state.builder = payload;\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 htmlClass from \"./htmlclass.module\";\r\nimport config from \"./config.module\";\r\nimport breadcrumbs from \"./breadcrumbs.module\";\r\nimport builder from \"./builder.module\";\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n modules: {\r\n auth,\r\n htmlClass,\r\n config,\r\n breadcrumbs,\r\n builder\r\n }\r\n});\r\n","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTMenu = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n // scrollable area with Perfect Scroll\r\n scroll: {\r\n rememberPosition: false\r\n },\r\n\r\n // accordion submenu mode\r\n accordion: {\r\n slideSpeed: 200, // accordion toggle slide speed in milliseconds\r\n autoScroll: false, // enable auto scrolling(focus) to the clicked menu item\r\n autoScrollSpeed: 1200,\r\n expandAll: true // allow having multiple expanded accordions in the menu\r\n },\r\n\r\n // dropdown submenu mode\r\n dropdown: {\r\n timeout: 500 // timeout in milliseconds to show and hide the hoverable submenu dropdown\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {KTMenu}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('menu')) {\r\n the = KTUtil.data(element).get('menu');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n the.eventHandlers = {};\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n the.uid = KTUtil.getUniqueID();\r\n },\r\n\r\n update: function(options) {\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n the.eventHandlers = {};\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n },\r\n\r\n reload: function() {\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n // reset submenu props\r\n Plugin.resetSubmenuProps();\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n build: function() {\r\n // General accordion submenu toggle\r\n the.eventHandlers['event_1'] = KTUtil.on( element, '.menu-toggle', 'click', Plugin.handleSubmenuAccordion);\r\n\r\n // Dropdown mode(hoverable)\r\n if (Plugin.getSubmenuMode() === 'dropdown' || Plugin.isConditionalSubmenuDropdown()) {\r\n // dropdown submenu - hover toggle\r\n the.eventHandlers['event_2'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseover', Plugin.handleSubmenuDrodownHoverEnter);\r\n the.eventHandlers['event_3'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseout', Plugin.handleSubmenuDrodownHoverExit);\r\n\r\n // dropdown submenu - click toggle\r\n the.eventHandlers['event_4'] = KTUtil.on( element, '[data-menu-toggle=\"click\"] > .menu-toggle, [data-menu-toggle=\"click\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownClick);\r\n the.eventHandlers['event_5'] = KTUtil.on( element, '[data-menu-toggle=\"tab\"] > .menu-toggle, [data-menu-toggle=\"tab\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownTabClick);\r\n }\r\n\r\n // Handle general link click\r\n the.eventHandlers['event_6'] = KTUtil.on(element, '.menu-item > .menu-link:not(.menu-toggle):not(.menu-link-toggle-skip)', 'click', Plugin.handleLinkClick);\r\n\r\n // Init scrollable menu\r\n if (the.options.scroll && the.options.scroll.height) {\r\n Plugin.scrollInit();\r\n }\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n reset: function() {\r\n KTUtil.off( element, 'click', the.eventHandlers['event_1']);\r\n\r\n // dropdown submenu - hover toggle\r\n KTUtil.off( element, 'mouseover', the.eventHandlers['event_2']);\r\n KTUtil.off( element, 'mouseout', the.eventHandlers['event_3']);\r\n\r\n // dropdown submenu - click toggle\r\n KTUtil.off( element, 'click', the.eventHandlers['event_4']);\r\n KTUtil.off( element, 'click', the.eventHandlers['event_5']);\r\n\r\n // handle link click\r\n KTUtil.off(element, 'click', the.eventHandlers['event_6']);\r\n },\r\n\r\n /**\r\n * Init scroll menu\r\n *\r\n */\r\n scrollInit: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollDestroy(element, true);\r\n KTUtil.scrollInit(element, {mobileNativeScroll: true, windowScroll: false, resetHeightOnDestroy: true, handleWindowResize: true, height: the.options.scroll.height, rememberPosition: the.options.scroll.rememberPosition});\r\n } else {\r\n KTUtil.scrollDestroy(element, true);\r\n }\r\n },\r\n\r\n /**\r\n * Update scroll menu\r\n */\r\n scrollUpdate: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollUpdate(element);\r\n }\r\n },\r\n\r\n /**\r\n * Scroll top\r\n */\r\n scrollTop: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollTop(element);\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n getSubmenuMode: function(el) {\r\n if ( KTUtil.isBreakpointUp('lg') ) {\r\n if (el && KTUtil.hasAttr(el, 'data-menu-toggle') && KTUtil.attr(el, 'data-menu-toggle') == 'hover') {\r\n return 'dropdown';\r\n }\r\n\r\n if ( KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n if ( KTUtil.hasClasses(body, the.options.submenu.desktop.state.body) ) {\r\n return the.options.submenu.desktop.state.mode;\r\n } else {\r\n return the.options.submenu.desktop.default;\r\n }\r\n } else if ( KTUtil.isset(the.options.submenu, 'desktop') ) {\r\n return the.options.submenu.desktop;\r\n }\r\n } else if ( KTUtil.isBreakpointUp('md') && KTUtil.isBreakpointDown('lg') && KTUtil.isset(the.options.submenu, 'tablet') ) {\r\n return the.options.submenu.tablet;\r\n } else if ( KTUtil.isBreakpointDown('md') && KTUtil.isset(the.options.submenu, 'mobile') ) {\r\n return the.options.submenu.mobile;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n isConditionalSubmenuDropdown: function() {\r\n if ( KTUtil.isBreakpointUp('lg') && KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n\r\n /**\r\n * Reset submenu attributes\r\n * @returns {KTMenu}\r\n */\r\n resetSubmenuProps: function(e) {\r\n var submenus = KTUtil.findAll(element, '.menu-submenu');\r\n if ( submenus ) {\r\n for (var i = 0, len = submenus.length; i < len; i++) {\r\n var submenu = submenus[0];\r\n\r\n KTUtil.css(submenu, 'display', '');\r\n KTUtil.css(submenu, 'overflow', '');\r\n\r\n if (submenu.hasAttribute('data-hor-direction')) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-left');\r\n KTUtil.removeClass(submenu, 'menu-submenu-right');\r\n KTUtil.addClass(submenu, submenu.getAttribute('data-hor-direction'));\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverEnter: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n item.removeAttribute('data-hover');\r\n clearTimeout( item.getAttribute('data-timeout') );\r\n item.removeAttribute('data-timeout');\r\n }\r\n\r\n Plugin.showSubmenuDropdown(item);\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverExit: function(e) {\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n var time = the.options.dropdown.timeout;\r\n\r\n var timeout = setTimeout(function() {\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n }, time);\r\n\r\n item.setAttribute('data-hover', '1');\r\n item.setAttribute('data-timeout', timeout);\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClick: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( item.getAttribute('data-menu-submenu-mode') == 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( KTUtil.hasClass(item, 'menu-item-hover') === false ) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n } else {\r\n KTUtil.removeClass(item, 'menu-item-open-dropdown' );\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles tab click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownTabClick: function(e) {\r\n if (Plugin.getSubmenuMode(this) === 'accordion') {\r\n return;\r\n }\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if (item.getAttribute('data-menu-submenu-mode') == 'accordion') {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(item, 'menu-item-hover') == false) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles link click\r\n * @returns {KTMenu}\r\n */\r\n handleLinkClick: function(e) {\r\n var submenu = this.closest('.menu-item.menu-item-submenu');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('linkClick', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( submenu && Plugin.getSubmenuMode(submenu) === 'dropdown' ) {\r\n Plugin.hideSubmenuDropdowns();\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu dropdown close on link click\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClose: function(e, el) {\r\n // exit if its not submenu dropdown mode\r\n if (Plugin.getSubmenuMode(el) === 'accordion') {\r\n return;\r\n }\r\n\r\n var shown = element.querySelectorAll('.menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)');\r\n\r\n // check if currently clicked link's parent item ha\r\n if (shown.length > 0 && KTUtil.hasClass(el, 'menu-toggle') === false && el.querySelectorAll('.menu-toggle').length === 0) {\r\n // close opened dropdown menus\r\n for (var i = 0, len = shown.length; i < len; i++) {\r\n Plugin.hideSubmenuDropdown(shown[0], true);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * helper functions\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuAccordion: function(e, el) {\r\n var query;\r\n var item = el ? el : this;\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(el) === 'dropdown' && (query = item.closest('.menu-item') ) ) {\r\n if (query.getAttribute('data-menu-submenu-mode') != 'accordion' ) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n var li = item.closest('.menu-item');\r\n var submenu = KTUtil.child(li, '.menu-submenu, .menu-inner');\r\n\r\n if (KTUtil.hasClass(item.closest('.menu-item'), 'menu-item-open-always')) {\r\n return;\r\n }\r\n\r\n if ( li && submenu ) {\r\n e.preventDefault();\r\n var speed = the.options.accordion.slideSpeed;\r\n var hasClosables = false;\r\n\r\n if ( KTUtil.hasClass(li, 'menu-item-open') === false ) {\r\n // Removing this for now so the behaviour is the same as the previous razor / cshtml version...\r\n\r\n // hide other accordions\r\n //if ( the.options.accordion.expandAll === false ) {\r\n // var subnav = item.closest('.menu-nav, .menu-subnav');\r\n // var closables = KTUtil.children(subnav, '.menu-item.menu-item-open.menu-item-submenu:not(.menu-item-here):not(.menu-item-open-always)');\r\n\r\n // if ( subnav && closables ) {\r\n // for (var i = 0, len = closables.length; i < len; i++) {\r\n // var el_ = closables[0];\r\n // var submenu_ = KTUtil.child(el_, '.menu-submenu');\r\n // if ( submenu_ ) {\r\n // KTUtil.slideUp(submenu_, speed, function() {\r\n // Plugin.scrollUpdate();\r\n // KTUtil.removeClass(el_, 'menu-item-open');\r\n // });\r\n // }\r\n // }\r\n // }\r\n //}\r\n\r\n KTUtil.slideDown(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.scrollUpdate();\r\n\r\n Plugin.eventTrigger('submenuToggle', submenu, e);\r\n });\r\n\r\n KTUtil.addClass(li, 'menu-item-open');\r\n\r\n } else {\r\n KTUtil.slideUp(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.eventTrigger('submenuToggle', submenu, e);\r\n });\r\n\r\n KTUtil.removeClass(li, 'menu-item-open');\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * scroll to item function\r\n * @returns {KTMenu}\r\n */\r\n scrollToItem: function(item) {\r\n // handle auto scroll for accordion submenus\r\n if ( KTUtil.isBreakpointUp('lg') && the.options.accordion.autoScroll && element.getAttribute('data-menu-scroll') !== '1' ) {\r\n KTUtil.scrollTo(item, the.options.accordion.autoScrollSpeed);\r\n }\r\n },\r\n\r\n /**\r\n * Hide submenu dropdown\r\n * @returns {KTMenu}\r\n */\r\n hideSubmenuDropdown: function(item, classAlso) {\r\n // remove submenu activation class\r\n if ( classAlso ) {\r\n KTUtil.removeClass(item, 'menu-item-hover');\r\n KTUtil.removeClass(item, 'menu-item-active-tab');\r\n }\r\n\r\n // clear timeout\r\n item.removeAttribute('data-hover');\r\n\r\n if ( item.getAttribute('data-menu-toggle-class') ) {\r\n KTUtil.removeClass(body, item.getAttribute('data-menu-toggle-class'));\r\n }\r\n\r\n var timeout = item.getAttribute('data-timeout');\r\n item.removeAttribute('data-timeout');\r\n clearTimeout(timeout);\r\n },\r\n\r\n /**\r\n * Hide submenu dropdowns\r\n * @returns {KTMenu}\r\n */\r\n hideSubmenuDropdowns: function() {\r\n var items;\r\n if ( items = element.querySelectorAll('.menu-item-submenu.menu-item-hover:not(.menu-item-tabs):not([data-menu-toggle=\"tab\"])') ) {\r\n for (var j = 0, cnt = items.length; j < cnt; j++) {\r\n Plugin.hideSubmenuDropdown(items[j], true);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * helper functions\r\n * @returns {KTMenu}\r\n */\r\n showSubmenuDropdown: function(item) {\r\n // close active submenus\r\n var list = element.querySelectorAll('.menu-item-submenu.menu-item-hover, .menu-item-submenu.menu-item-active-tab');\r\n\r\n if ( list ) {\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n var el = list[i];\r\n if ( item !== el && el.contains(item) === false && item.contains(el) === false ) {\r\n Plugin.hideSubmenuDropdown(el, true);\r\n }\r\n }\r\n }\r\n\r\n // add submenu activation class\r\n KTUtil.addClass(item, 'menu-item-hover');\r\n\r\n // Change the alignment of submenu is offscreen.\r\n var submenu = KTUtil.find(item, '.menu-submenu');\r\n\r\n if (submenu && submenu.hasAttribute('data-hor-direction') === false) {\r\n if (KTUtil.hasClass(submenu, 'menu-submenu-left')) {\r\n submenu.setAttribute('data-hor-direction', 'menu-submenu-left');\r\n } else if (KTUtil.hasClass(submenu, 'menu-submenu-right')) {\r\n submenu.setAttribute('data-hor-direction', 'menu-submenu-right');\r\n }\r\n }\r\n\r\n if ( submenu && KTUtil.isOffscreen(submenu, 'left', 15) === true ) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-left');\r\n KTUtil.addClass(submenu, 'menu-submenu-right');\r\n } else if ( submenu && KTUtil.isOffscreen(submenu, 'right', 15) === true ) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-right');\r\n KTUtil.addClass(submenu, 'menu-submenu-left');\r\n }\r\n\r\n if ( item.getAttribute('data-menu-toggle-class') ) {\r\n KTUtil.addClass(body, item.getAttribute('data-menu-toggle-class'));\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu slide toggle\r\n * @returns {KTMenu}\r\n */\r\n createSubmenuDropdownClickDropoff: function(el) {\r\n var query;\r\n var zIndex = (query = KTUtil.child(el, '.menu-submenu') ? KTUtil.css(query, 'z-index') : 0) - 1;\r\n\r\n var dropoff = document.createElement('
');\r\n\r\n body.appendChild(dropoff);\r\n\r\n KTUtil.addEvent(dropoff, 'click', function(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n KTUtil.remove(this);\r\n Plugin.hideSubmenuDropdown(el, true);\r\n });\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n pauseDropdownHover: function(time) {\r\n var date = new Date();\r\n\r\n the.pauseDropdownHoverTime = date.getTime() + time;\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n resumeDropdownHover: function() {\r\n var date = new Date();\r\n\r\n return (date.getTime() > the.pauseDropdownHoverTime ? true : false);\r\n },\r\n\r\n /**\r\n * Reset menu's current active item\r\n * @returns {KTMenu}\r\n */\r\n resetActiveItem: function(item) {\r\n var list;\r\n var parents;\r\n\r\n list = element.querySelectorAll('.menu-item-active');\r\n\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n var el = list[0];\r\n KTUtil.removeClass(el, 'menu-item-active');\r\n KTUtil.hide( KTUtil.child(el, '.menu-submenu') );\r\n parents = KTUtil.parents(el, '.menu-item-submenu') || [];\r\n\r\n for (var i_ = 0, len_ = parents.length; i_ < len_; i_++) {\r\n var el_ = parents[i];\r\n KTUtil.removeClass(el_, 'menu-item-open');\r\n KTUtil.hide( KTUtil.child(el_, '.menu-submenu') );\r\n }\r\n }\r\n\r\n // close open submenus\r\n if ( the.options.accordion.expandAll === false ) {\r\n if ( list = element.querySelectorAll('.menu-item-open') ) {\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n KTUtil.removeClass(parents[0], 'menu-item-open');\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Sets menu's active item\r\n * @returns {KTMenu}\r\n */\r\n setActiveItem: function(item) {\r\n // reset current active item\r\n Plugin.resetActiveItem();\r\n\r\n var parents = KTUtil.parents(item, '.menu-item-submenu') || [];\r\n for (var i = 0, len = parents.length; i < len; i++) {\r\n KTUtil.addClass(parents[i], 'menu-item-open');\r\n }\r\n\r\n KTUtil.addClass(item, 'menu-item-active');\r\n },\r\n\r\n /**\r\n * Returns page breadcrumbs for the menu's active item\r\n * @returns {KTMenu}\r\n */\r\n getBreadcrumbs: function(item) {\r\n var query;\r\n var breadcrumbs = [];\r\n var link = KTUtil.child(item, '.menu-link');\r\n\r\n breadcrumbs.push({\r\n text: (query = KTUtil.child(link, '.menu-text') ? query.innerHTML : ''),\r\n title: link.getAttribute('title'),\r\n href: link.getAttribute('href')\r\n });\r\n\r\n var parents = KTUtil.parents(item, '.menu-item-submenu');\r\n for (var i = 0, len = parents.length; i < len; i++) {\r\n var submenuLink = KTUtil.child(parents[i], '.menu-link');\r\n\r\n breadcrumbs.push({\r\n text: (query = KTUtil.child(submenuLink, '.menu-text') ? query.innerHTML : ''),\r\n title: submenuLink.getAttribute('title'),\r\n href: submenuLink.getAttribute('href')\r\n });\r\n }\r\n\r\n return breadcrumbs.reverse();\r\n },\r\n\r\n /**\r\n * Returns page title for the menu's active item\r\n * @returns {KTMenu}\r\n */\r\n getPageTitle: function(item) {\r\n var query;\r\n\r\n return (query = KTUtil.child(item, '.menu-text') ? query.innerHTML : '');\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, target, e) {\r\n for (var i = 0; i < the.events.length; i++ ) {\r\n var event = the.events[i];\r\n if ( event.name == name ) {\r\n if ( event.one == true ) {\r\n if ( event.fired == false ) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, target, e);\r\n }\r\n } else {\r\n return event.handler.call(this, target, e);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n },\r\n\r\n removeEvent: function(name) {\r\n if (the.events[name]) {\r\n delete the.events[name];\r\n }\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Update scroll\r\n */\r\n the.scrollUpdate = function() {\r\n return Plugin.scrollUpdate();\r\n };\r\n\r\n /**\r\n * Re-init scroll\r\n */\r\n the.scrollReInit = function() {\r\n return Plugin.scrollInit();\r\n };\r\n\r\n /**\r\n * Scroll top\r\n */\r\n the.scrollTop = function() {\r\n return Plugin.scrollTop();\r\n };\r\n\r\n /**\r\n * Set active menu item\r\n */\r\n the.setActiveItem = function(item) {\r\n return Plugin.setActiveItem(item);\r\n };\r\n\r\n the.reload = function() {\r\n return Plugin.reload();\r\n };\r\n\r\n the.update = function(options) {\r\n return Plugin.update(options);\r\n };\r\n\r\n /**\r\n * Set breadcrumb for menu item\r\n */\r\n the.getBreadcrumbs = function(item) {\r\n return Plugin.getBreadcrumbs(item);\r\n };\r\n\r\n /**\r\n * Set page title for menu item\r\n */\r\n the.getPageTitle = function(item) {\r\n return Plugin.getPageTitle(item);\r\n };\r\n\r\n /**\r\n * Get submenu mode\r\n */\r\n the.getSubmenuMode = function(el) {\r\n return Plugin.getSubmenuMode(el);\r\n };\r\n\r\n /**\r\n * Hide dropdown\r\n * @returns {Object}\r\n */\r\n the.hideDropdown = function(item) {\r\n Plugin.hideSubmenuDropdown(item, true);\r\n };\r\n\r\n /**\r\n * Hide dropdowns\r\n * @returns {Object}\r\n */\r\n the.hideDropdowns = function() {\r\n Plugin.hideSubmenuDropdowns();\r\n };\r\n\r\n /**\r\n * Disable menu for given time\r\n * @returns {Object}\r\n */\r\n the.pauseDropdownHover = function(time) {\r\n Plugin.pauseDropdownHover(time);\r\n };\r\n\r\n /**\r\n * Disable menu for given time\r\n * @returns {Object}\r\n */\r\n the.resumeDropdownHover = function() {\r\n return Plugin.resumeDropdownHover();\r\n };\r\n\r\n /**\r\n * Register event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n the.off = function(name) {\r\n return Plugin.removeEvent(name);\r\n };\r\n\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Handle plugin on window resize\r\n KTUtil.addResizeHandler(function() {\r\n if (init) {\r\n the.reload();\r\n }\r\n });\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTMenu;\r\n}\r\n\r\n// Plugin global lazy initialization\r\ndocument.addEventListener(\"click\", function (e) {\r\n var body = KTUtil.getByTagName('body')[0];\r\n var query;\r\n if ( query = body.querySelectorAll('.menu-nav .menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)[data-menu-toggle=\"click\"]') ) {\r\n for (var i = 0, len = query.length; i < len; i++) {\r\n var element = query[i].closest('.menu-nav').parentNode;\r\n\r\n if ( element ) {\r\n var the = KTUtil.data(element).get('menu');\r\n\r\n if ( !the ) {\r\n break;\r\n }\r\n\r\n if ( !the || the.getSubmenuMode() !== 'dropdown' ) {\r\n break;\r\n }\r\n\r\n if ( e.target !== element && element.contains(e.target) === false ) {\r\n the.hideDropdowns();\r\n }\r\n }\r\n }\r\n }\r\n});\r\n\nexport default KTMenu;","// action types\r\nexport const ADD_BODY_CLASSNAME = \"addBodyClassName\";\r\nexport const REMOVE_BODY_CLASSNAME = \"removeBodyClassName\";\r\nexport const ADD_CLASSNAME = \"addClassName\";\r\n// mutation types\r\nexport const SET_CLASSNAME_BY_POSITION = \"setClassNameByPosition\";\r\n\r\nexport default {\r\n state: {\r\n classes: {}\r\n },\r\n getters: {\r\n getClasses: state => position => {\r\n if (typeof position !== \"undefined\") {\r\n return state.classes[position];\r\n }\r\n return state.classes;\r\n }\r\n },\r\n actions: {\r\n [ADD_BODY_CLASSNAME](context, className) {\r\n document.body.classList.add(className);\r\n },\r\n [REMOVE_BODY_CLASSNAME](context, className) {\r\n document.body.classList.remove(className);\r\n },\r\n [ADD_CLASSNAME](context, payload) {\r\n context.commit(SET_CLASSNAME_BY_POSITION, payload);\r\n }\r\n },\r\n mutations: {\r\n [SET_CLASSNAME_BY_POSITION](state, payload) {\r\n const { position, className } = payload;\r\n if (!state.classes[position]) {\r\n state.classes[position] = [];\r\n }\r\n state.classes[position].push(className);\r\n }\r\n }\r\n};\r\n","import Vue from \"vue\";\r\nimport axios from \"axios\";\r\nimport VueAxios from \"vue-axios\";\r\nimport JwtService from \"@/core/services/jwt.service\";\r\n\r\n/**\r\n * Service to call HTTP request via Axios\r\n */\r\nconst ApiService = {\r\n init() {\r\n Vue.use(VueAxios, axios);\r\n //use current domain OR override during DEV on devServer overrides ( see vueconfig.js)\r\n Vue.axios.defaults.baseURL = window.origin;\r\n },\r\n\r\n /**\r\n * Set the default HTTP request headers\r\n */\r\n\r\n setHeader() {\r\n // Vue.axios.defaults.headers.common[\r\n // \"Authorization\"\r\n // ] = `Token ${JwtService.getToken()}`;\r\n },\r\n\r\n query(resource, params) {\r\n return Vue.axios.get(resource, params).catch(error => {\r\n // console.log(error);\r\n throw new Error(`[KT] ApiService ${error}`);\r\n });\r\n },\r\n\r\n /**\r\n * Send the GET HTTP request\r\n * @param resource\r\n * @param slug\r\n * @returns {*}\r\n */\r\n get(resource, slug = \"\") {\r\n return Vue.axios.get(`${resource}/${slug}`).catch(error => {\r\n //console.log(error);\r\n throw new Error(`[KT] ApiService ${error}`);\r\n });\r\n },\r\n\r\n /**\r\n * Set the POST HTTP request\r\n * @param resource\r\n * @param params\r\n * @returns {*}\r\n */\r\n post(resource, params) {\r\n return Vue.axios.post(`${resource}`, params);\r\n },\r\n\r\n /**\r\n * Send the UPDATE HTTP request\r\n * @param resource\r\n * @param slug\r\n * @param params\r\n * @returns {IDBRequest | Promise}\r\n */\r\n update(resource, slug, params) {\r\n return Vue.axios.put(`${resource}/${slug}`, params);\r\n },\r\n\r\n /**\r\n * Send the PUT HTTP request\r\n * @param resource\r\n * @param params\r\n * @returns {IDBRequest | Promise}\r\n */\r\n put(resource, params) {\r\n return Vue.axios.put(`${resource}`, params);\r\n },\r\n\r\n /**\r\n * Send the DELETE HTTP request\r\n * @param resource\r\n * @returns {*}\r\n */\r\n delete(resource) {\r\n return Vue.axios.delete(resource).catch(error => {\r\n // console.log(error);\r\n throw new Error(`[RWV] ApiService ${error}`);\r\n });\r\n }\r\n};\r\n\r\nexport default ApiService;\r\n","//import ApiService from \"@/core/services/api.service\";\r\nimport ApiService from \"@/core/services/bbapi.service\";\r\nimport JwtService from \"@/core/services/jwt.service\";\r\n\r\n// action types\r\nexport const VERIFY_AUTH = \"verifyAuth\";\r\nexport const LOGIN = \"login\";\r\nexport const LOGOUT = \"logout\";\r\nexport const REGISTER = \"register\";\r\nexport const UPDATE_USER = \"updateUser\";\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\nconst state = {\r\n errors: null,\r\n user: {},\r\n isAuthenticated: false\r\n};\r\n//!! isAuthenticated: JwtService.getToken()\r\n\r\nconst getters = {\r\n currentUser(state) {\r\n return state.user;\r\n },\r\n isAuthenticated(state) {\r\n return state.isAuthenticated;\r\n }\r\n};\r\n\r\nconst actions = {\r\n [LOGIN](context, credentials) {\r\n return new Promise(resolve => {\r\n ApiService.post(\"login\", credentials)\r\n .then(({ data }) => {\r\n context.commit(SET_AUTH, data);\r\n resolve(data);\r\n })\r\n .catch(({ response }) => {\r\n context.commit(SET_ERROR, response.data.errors);\r\n });\r\n });\r\n },\r\n [LOGOUT](context) {\r\n context.commit(PURGE_AUTH);\r\n },\r\n [REGISTER](context, credentials) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(\"users\", { user: credentials })\r\n .then(({ data }) => {\r\n context.commit(SET_AUTH, data);\r\n resolve(data);\r\n })\r\n .catch(({ response }) => {\r\n context.commit(SET_ERROR, response.data.errors);\r\n reject(response);\r\n });\r\n });\r\n },\r\n [VERIFY_AUTH](context) {\r\n\r\n return new Promise((resolve, reject) => {\r\n ApiService.get(\"/User/VerifyAuth\")\r\n .then(({ data }) => {\r\n context.commit(SET_AUTH, data);\r\n resolve(data);\r\n })\r\n .catch(({ response }) => {\r\n context.commit(SET_ERROR, response.data.errors);\r\n reject(response);\r\n });\r\n });\r\n\r\n ////set dummy user data - must be used in layout pages somewhere?otherwise throws error\r\n //var user = JSON.parse(localStorage.getItem(\"UserPermissions\"));\r\n //context.commit(SET_AUTH, user);\r\n\r\n\r\n //if (JwtService.getToken()) {\r\n // ApiService.setHeader();\r\n // ApiService.get(\"verify\")\r\n // .then(({ data }) => {\r\n // context.commit(SET_AUTH, data);\r\n // })\r\n // .catch(({ response }) => {\r\n // context.commit(SET_ERROR, response.data.errors);\r\n // });\r\n //} else {\r\n // context.commit(PURGE_AUTH);\r\n //}\r\n },\r\n [UPDATE_USER](context, payload) {\r\n const { email, username, password, image, bio } = payload;\r\n const user = { email, username, bio, image };\r\n if (password) {\r\n user.password = password;\r\n }\r\n\r\n return ApiService.put(\"user\", user).then(({ data }) => {\r\n context.commit(SET_AUTH, data);\r\n return data;\r\n });\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [SET_ERROR](state, error) {\r\n state.errors = error;\r\n },\r\n [SET_AUTH](state, user) {\r\n state.isAuthenticated = user.isAuthenticated;\r\n state.environment = user.Environment;\r\n state.user = user;\r\n state.errors = {};\r\n //JwtService.saveToken(state.user);\r\n },\r\n [PURGE_AUTH](state) {\r\n state.isAuthenticated = false;\r\n state.user = {};\r\n state.errors = {};\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 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.btnNext = KTUtil.find(element, '[data-wizard-type=\"action-next\"]');\r\n the.btnPrev = KTUtil.find(element, '[data-wizard-type=\"action-prev\"]');\r\n the.btnSubmit = KTUtil.find(element, '[data-wizard-type=\"action-submit\"]');\r\n\r\n // Variables\r\n the.events = [];\r\n the.lastStep = 0;\r\n the.currentStep = 1;\r\n the.newStep = 0;\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\r\n // Set new step number\r\n Plugin.setNewStep(Plugin.getNextStep());\r\n\r\n // Trigger change event\r\n if (Plugin.eventTrigger('change') !== false) {\r\n Plugin.goTo(Plugin.getNextStep());\r\n }\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\r\n // Set new step number\r\n Plugin.setNewStep(Plugin.getPrevStep());\r\n\r\n // Trigger change event\r\n if (Plugin.eventTrigger('change') !== false) {\r\n Plugin.goTo(Plugin.getPrevStep());\r\n }\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\r\n if (index !== the.currentStep) {\r\n Plugin.setNewStep(index);\r\n\r\n // Trigger change event\r\n if (Plugin.eventTrigger('change') !== false) {\r\n Plugin.goTo(index);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // Submit button event handler\r\n KTUtil.addEvent(the.btnSubmit, 'click', function(e) {\r\n e.preventDefault();\r\n\r\n Plugin.eventTrigger('submit');\r\n });\r\n },\r\n\r\n /**\r\n * Handles wizard click wizard\r\n */\r\n goTo: function(number) {\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 // 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 number = parseInt(number);\r\n\r\n // Set current step\r\n the.lastStep = the.currentStep;\r\n the.currentStep = number;\r\n the.newStep = 0;\r\n\r\n Plugin.updateUI();\r\n\r\n Plugin.eventTrigger('changed');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Stop wizard\r\n */\r\n stop: function() {\r\n the.stopped = true;\r\n },\r\n\r\n /**\r\n * Resume wizard\r\n */\r\n resume: 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 * Update wizard UI after step change\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 number\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 number\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 * Get new step number\r\n */\r\n getNewStep: function() {\r\n return the.newStep;\r\n },\r\n\r\n /**\r\n * Set new step\r\n */\r\n setNewStep: function(step) {\r\n the.newStep = step;\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() {\r\n return Plugin.goTo(Plugin.getNextStep());\r\n };\r\n\r\n /**\r\n * Go to the prev step\r\n */\r\n the.goPrev = function() {\r\n return Plugin.goTo(Plugin.getPrevStep());\r\n };\r\n\r\n /**\r\n * Go to the last step\r\n */\r\n the.goLast = function() {\r\n return Plugin.goTo(Plugin.getLastStep());\r\n };\r\n\r\n /**\r\n * Go to the first step\r\n */\r\n the.goFirst = function() {\r\n return Plugin.goTo(Plugin.getFirstStep());\r\n };\r\n\r\n /**\r\n * Go to a step\r\n */\r\n the.goTo = function(number) {\r\n return Plugin.goTo(number);\r\n };\r\n\r\n /**\r\n * Stop wizard\r\n */\r\n the.stop = function() {\r\n return Plugin.stop();\r\n };\r\n\r\n /**\r\n * Resume wizard\r\n */\r\n the.resume = function() {\r\n return Plugin.resume();\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 * Get new step number\r\n */\r\n the.getNewStep = function() {\r\n return Plugin.getNewStep();\r\n };\r\n\r\n /**\r\n * Set new step number\r\n */\r\n the.setNewStep = function(number) {\r\n Plugin.setNewStep(number);\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(\"change\", \"changed\", \"submit\")\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, withMargin) {\r\n var height = el.offsetHeight;\r\n var style;\r\n\r\n if (typeof withMargin !== 'undefined' && withMargin === true) {\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 if (options.height) {\r\n height = parseInt(options.height);\r\n } else {\r\n height = parseInt(KTUtil.css(element, '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\r\n // Todo:Consider using Localstorage\r\n if (options.rememberPosition === true && KTCookie && 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 changeColor: function(col, amt) {\r\n\r\n var usePound = false;\r\n\r\n if (col[0] == \"#\") {\r\n col = col.slice(1);\r\n usePound = true;\r\n }\r\n\r\n var num = parseInt(col,16);\r\n\r\n var r = (num >> 16) + amt;\r\n\r\n if (r > 255) r = 255;\r\n else if (r < 0) r = 0;\r\n\r\n var b = ((num >> 8) & 0x00FF) + amt;\r\n\r\n if (b > 255) b = 255;\r\n else if (b < 0) b = 0;\r\n\r\n var g = (num & 0x0000FF) + amt;\r\n\r\n if (g > 255) g = 255;\r\n else if (g < 0) g = 0;\r\n\r\n return (usePound?\"#\":\"\") + (g | (b << 8) | (r << 16)).toString(16);\r\n\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) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (typeof disable !== 'undefined' && disable === true) {\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) {\r\n offset = offset || 0;\r\n\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;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTToggle = function(toggleElement, targetElement, 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 = toggleElement;\r\n var target = targetElement;\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 = target;\r\n\r\n the.targetState = the.options.targetState;\r\n the.toggleState = the.options.toggleState;\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n the.state = KTUtil.hasClasses(the.target, the.targetState) ? 'on' : 'off';\r\n } else {\r\n the.state = KTUtil.hasAttr(the.target, 'data-' + the.targetState) ? KTUtil.attr(the.target, 'data-' + the.targetState) : 'off';\r\n }\r\n },\r\n\r\n /**\r\n * Setup toggle\r\n */\r\n build: function() {\r\n KTUtil.addEvent(element, 'mouseup', Plugin.toggle);\r\n },\r\n\r\n /**\r\n * Handles offcanvas click toggle\r\n */\r\n toggle: function(e) {\r\n Plugin.eventTrigger('beforeToggle');\r\n\r\n if (the.state == 'off') {\r\n Plugin.toggleOn();\r\n } else {\r\n Plugin.toggleOff();\r\n }\r\n\r\n Plugin.eventTrigger('afterToggle');\r\n\r\n e.preventDefault();\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles toggle click toggle\r\n */\r\n toggleOn: function() {\r\n Plugin.eventTrigger('beforeOn');\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n KTUtil.addClass(the.target, the.targetState);\r\n } else {\r\n KTUtil.attr(the.target, 'data-' + the.targetState, 'on');\r\n }\r\n\r\n if (the.toggleState) {\r\n KTUtil.addClass(element, the.toggleState);\r\n }\r\n\r\n the.state = 'on';\r\n\r\n Plugin.eventTrigger('afterOn');\r\n\r\n Plugin.eventTrigger('toggle');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles toggle click toggle\r\n */\r\n toggleOff: function() {\r\n Plugin.eventTrigger('beforeOff');\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n KTUtil.removeClass(the.target, the.targetState);\r\n } else {\r\n KTUtil.removeAttr(the.target, 'data-' + the.targetState);\r\n }\r\n\r\n if (the.toggleState) {\r\n KTUtil.removeClass(element, the.toggleState);\r\n }\r\n\r\n the.state = 'off';\r\n\r\n Plugin.eventTrigger('afterOff');\r\n\r\n Plugin.eventTrigger('toggle');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Get toggle state\r\n */\r\n the.getState = function() {\r\n return the.state;\r\n };\r\n\r\n /**\r\n * Toggle\r\n */\r\n the.toggle = function() {\r\n return Plugin.toggle();\r\n };\r\n\r\n /**\r\n * Toggle on\r\n */\r\n the.toggleOn = function() {\r\n return Plugin.toggleOn();\r\n };\r\n\r\n /**\r\n * Toggle off\r\n */\r\n the.toggleOff = function() {\r\n return Plugin.toggleOff();\r\n };\r\n\r\n /**\r\n * Attach event\r\n * @returns {KTToggle}\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n * @returns {KTToggle}\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTToggle;\r\n}\r\n\nexport default KTToggle;","\"use strict\";\r\n\r\nvar KTLayoutHeaderTopbar = function() {\r\n // Private properties\r\n\tvar _toggleElement;\r\n var _toggleObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n\t\t\t_toggleObject = new KTToggle(_toggleElement, KTUtil.getBody(), {\r\n\t\t\t\ttargetState: 'topbar-mobile-on',\r\n\t\t\t\ttoggleState: 'active',\r\n\t\t\t});\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _toggleElement = KTUtil.getById(id);\r\n\r\n\t\t\tif (!_toggleElement) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getToggleElement: function() {\r\n return _toggleElement;\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutHeaderTopbar;","\"use strict\";\r\n\r\nvar KTLayoutAsideMenu = function() {\r\n // Private properties\r\n var _body;\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\t}\r\n\r\n var _initHover = function() {\r\n // 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 if (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\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\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(KTLayoutAside.getElement(), '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 if (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\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\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 _body = KTUtil.getBody();\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 _initHover();\r\n\t\t},\r\n\r\n\t\tgetElement: function() {\r\n\t\t\treturn _element;\r\n\t\t},\r\n\r\n getMenu: function() {\r\n\t\t\treturn _menuObject;\r\n\t\t},\r\n\r\n pauseDropdownHover: function(time) {\r\n\t\t\tif (_menuObject) {\r\n\t\t\t\t_menuObject.pauseDropdownHover(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcloseMobileOffcanvas: function() {\r\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\r\n\t\t\t\t_menuObject.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutAsideMenu;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTCard = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n toggleSpeed: 400,\r\n sticky: {\r\n releseOnReverse: false,\r\n offset: 300,\r\n zIndex: 101\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('card')) {\r\n the = KTUtil.data(element).get('card');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('card', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Init card\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n the.header = KTUtil.child(element, '.card-header');\r\n the.footer = KTUtil.child(element, '.card-footer');\r\n\r\n if (KTUtil.child(element, '.card-body')) {\r\n the.body = KTUtil.child(element, '.card-body');\r\n } else if (KTUtil.child(element, '.form')) {\r\n the.body = KTUtil.child(element, '.form');\r\n }\r\n },\r\n\r\n /**\r\n * Build Form Wizard\r\n */\r\n build: function() {\r\n // Remove\r\n var remove = KTUtil.find(the.header, '[data-card-tool=remove]');\r\n if (remove) {\r\n KTUtil.addEvent(remove, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.remove();\r\n });\r\n }\r\n\r\n // Reload\r\n var reload = KTUtil.find(the.header, '[data-card-tool=reload]');\r\n if (reload) {\r\n KTUtil.addEvent(reload, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.reload();\r\n });\r\n }\r\n\r\n // Toggle\r\n var toggle = KTUtil.find(the.header, '[data-card-tool=toggle]');\r\n if (toggle) {\r\n KTUtil.addEvent(toggle, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.toggle();\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Enable stickt mode\r\n */\r\n initSticky: function() {\r\n var lastScrollTop = 0;\r\n var offset = the.options.sticky.offset;\r\n\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n\t window.addEventListener('scroll', Plugin.onScrollSticky);\r\n },\r\n\r\n\t /**\r\n\t * Window scroll handle event for sticky card\r\n\t */\r\n\t onScrollSticky: function(e) {\r\n\t\t var offset = the.options.sticky.offset;\r\n\r\n\t\t if(isNaN(offset)) return;\r\n\r\n\t\t var st = KTUtil.getScrollTop();\r\n\r\n\t\t if (st >= offset && KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n\t\t\t Plugin.eventTrigger('stickyOn');\r\n\r\n\t\t\t KTUtil.addClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.updateSticky();\r\n\r\n\t\t } else if ((st*1.5) <= offset && KTUtil.hasClass(body, 'card-sticky-on')) {\r\n\t\t\t // Back scroll mode\r\n\t\t\t Plugin.eventTrigger('stickyOff');\r\n\r\n\t\t\t KTUtil.removeClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.resetSticky();\r\n\t\t }\r\n\t },\r\n\r\n updateSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n var top;\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on')) {\r\n if (the.options.sticky.position.top instanceof Function) {\r\n top = parseInt(the.options.sticky.position.top.call(this, the));\r\n } else {\r\n top = parseInt(the.options.sticky.position.top);\r\n }\r\n\r\n var left;\r\n if (the.options.sticky.position.left instanceof Function) {\r\n left = parseInt(the.options.sticky.position.left.call(this, the));\r\n } else {\r\n left = parseInt(the.options.sticky.position.left);\r\n }\r\n\r\n var right;\r\n if (the.options.sticky.position.right instanceof Function) {\r\n right = parseInt(the.options.sticky.position.right.call(this, the));\r\n } else {\r\n right = parseInt(the.options.sticky.position.right);\r\n }\r\n\r\n KTUtil.css(the.header, 'z-index', the.options.sticky.zIndex);\r\n KTUtil.css(the.header, 'top', top + 'px');\r\n KTUtil.css(the.header, 'left', left + 'px');\r\n KTUtil.css(the.header, 'right', right + 'px');\r\n }\r\n },\r\n\r\n resetSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n KTUtil.css(the.header, 'z-index', '');\r\n KTUtil.css(the.header, 'top', '');\r\n KTUtil.css(the.header, 'left', '');\r\n KTUtil.css(the.header, 'right', '');\r\n }\r\n },\r\n\r\n /**\r\n * Remove card\r\n */\r\n remove: function() {\r\n if (Plugin.eventTrigger('beforeRemove') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.remove(element);\r\n\r\n Plugin.eventTrigger('afterRemove');\r\n },\r\n\r\n /**\r\n * Set content\r\n */\r\n setContent: function(html) {\r\n if (html) {\r\n the.body.innerHTML = html;\r\n }\r\n },\r\n\r\n /**\r\n * Get body\r\n */\r\n getBody: function() {\r\n return the.body;\r\n },\r\n\r\n /**\r\n * Get self\r\n */\r\n getSelf: function() {\r\n return element;\r\n },\r\n\r\n /**\r\n * Reload\r\n */\r\n reload: function() {\r\n Plugin.eventTrigger('reload');\r\n },\r\n\r\n /**\r\n * Toggle\r\n */\r\n toggle: function() {\r\n if (KTUtil.hasClass(element, 'card-collapse') || KTUtil.hasClass(element, 'card-collapsed')) {\r\n Plugin.expand();\r\n } else {\r\n Plugin.collapse();\r\n }\r\n },\r\n\r\n /**\r\n * Collapse\r\n */\r\n collapse: function() {\r\n if (Plugin.eventTrigger('beforeCollapse') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.slideUp(the.body, the.options.toggleSpeed, function() {\r\n Plugin.eventTrigger('afterCollapse');\r\n });\r\n\r\n KTUtil.addClass(element, 'card-collapse');\r\n },\r\n\r\n /**\r\n * Expand\r\n */\r\n expand: function() {\r\n if (Plugin.eventTrigger('beforeExpand') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.slideDown(the.body, the.options.toggleSpeed, function() {\r\n Plugin.eventTrigger('afterExpand');\r\n });\r\n\r\n KTUtil.removeClass(element, 'card-collapse');\r\n KTUtil.removeClass(element, 'card-collapsed');\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n //KTUtil.triggerCustomEvent(name);\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Remove card\r\n */\r\n the.remove = function() {\r\n return Plugin.remove(html);\r\n };\r\n\r\n /**\r\n * Init sticky card\r\n */\r\n the.initSticky = function() {\r\n return Plugin.initSticky();\r\n };\r\n\r\n /**\r\n * Rerender sticky layout\r\n */\r\n the.updateSticky = function() {\r\n return Plugin.updateSticky();\r\n };\r\n\r\n /**\r\n * Reset the sticky\r\n */\r\n the.resetSticky = function() {\r\n return Plugin.resetSticky();\r\n };\r\n\r\n\t/**\r\n\t * Destroy sticky card\r\n\t */\r\n\tthe.destroySticky = function() {\r\n\t\tPlugin.resetSticky();\r\n\t\twindow.removeEventListener('scroll', Plugin.onScrollSticky);\r\n\t};\r\n\r\n /**\r\n * Reload card\r\n */\r\n the.reload = function() {\r\n return Plugin.reload();\r\n };\r\n\r\n /**\r\n * Set card content\r\n */\r\n the.setContent = function(html) {\r\n return Plugin.setContent(html);\r\n };\r\n\r\n /**\r\n * Toggle card\r\n */\r\n the.toggle = function() {\r\n return Plugin.toggle();\r\n };\r\n\r\n /**\r\n * Collapse card\r\n */\r\n the.collapse = function() {\r\n return Plugin.collapse();\r\n };\r\n\r\n /**\r\n * Expand card\r\n */\r\n the.expand = function() {\r\n return Plugin.expand();\r\n };\r\n\r\n /**\r\n * Get cardbody\r\n * @returns {jQuery}\r\n */\r\n the.getBody = function() {\r\n return Plugin.getBody();\r\n };\r\n\r\n /**\r\n * Get cardbody\r\n * @returns {jQuery}\r\n */\r\n the.getSelf = function() {\r\n return Plugin.getSelf();\r\n };\r\n\r\n /**\r\n * Attach event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTCard;\r\n}\r\n\nexport default KTCard;","\"use strict\";\r\n\r\nvar KTLayoutHeader = function() {\r\n // Private properties\r\n var _element;\r\n var _elementForMobile;\r\n var _object;\r\n\r\n\t// Private functions\r\n // Get Height\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element) + 1;\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Get Height\r\n var _getHeightForMobile = function() {\r\n var height;\r\n\r\n height = KTUtil.actualHeight(_elementForMobile);\r\n\r\n return height;\r\n }\r\n\r\n // Public Methods\r\n\treturn {\r\n\t\tinit: function(id, idForMobile) {\r\n _element = KTUtil.getById(id);\r\n _elementForMobile = KTUtil.getById(idForMobile);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'header-fixed')\r\n },\r\n\r\n isFixedForMobile: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'header-mobile-fixed')\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getElementForMobile: function() {\r\n return _elementForMobile;\r\n },\r\n\r\n getHeader: function() {\r\n return _object;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n },\r\n\r\n getHeightForMobile: function() {\r\n return _getHeightForMobile();\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutHeader;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n// DOCS: https://javascript.info/cookie\r\n\r\n// Component Definition\r\nvar KTCookie = function() {\r\n return {\r\n // returns the cookie with the given name,\r\n // or undefined if not found\r\n getCookie: function(name) {\r\n var matches = document.cookie.match(new RegExp(\r\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\r\n ));\r\n return matches ? decodeURIComponent(matches[1]) : undefined;\r\n },\r\n // Please note that a cookie value is encoded,\r\n // so getCookie uses a built-in decodeURIComponent function to decode it.\r\n setCookie: function(name, value, options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n\r\n options = Object.assign({}, {path: '/'}, options);\r\n\r\n if (options.expires instanceof Date) {\r\n options.expires = options.expires.toUTCString();\r\n }\r\n\r\n var updatedCookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\r\n\r\n for (var optionKey in options) {\r\n if (!options.hasOwnProperty(optionKey)) {\r\n continue;\r\n }\r\n updatedCookie += \"; \" + optionKey;\r\n var optionValue = options[optionKey];\r\n if (optionValue !== true) {\r\n updatedCookie += \"=\" + optionValue;\r\n }\r\n }\r\n\r\n document.cookie = updatedCookie;\r\n },\r\n // To delete a cookie, we can call it with a negative expiration date:\r\n deleteCookie: function(name) {\r\n setCookie(name, \"\", {\r\n 'max-age': -1\r\n })\r\n }\r\n }\r\n}();\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTCookie;\r\n}\r\n\nexport default KTCookie;","\"use strict\";\r\n\r\nvar KTLayoutHeaderMenu = function() {\r\n // Private properties\r\n\tvar _menuElement;\r\n var _menuObject;\r\n var _offcanvasElement;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n\tvar _init = function() {\r\n\t\t_offcanvasObject = new KTOffcanvas(_offcanvasElement, {\r\n\t\t\toverlay: true,\r\n\t\t\tbaseClass: 'header-menu-wrapper',\r\n\t\t\tcloseBy: 'kt_header_menu_mobile_close_btn',\r\n\t\t\ttoggleBy: {\r\n\t\t\t\ttarget: 'kt_header_mobile_toggle',\r\n\t\t\t\tstate: 'mobile-toggle-active'\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\t_menuObject = new KTMenu(_menuElement, {\r\n\t\t\tsubmenu: {\r\n\t\t\t\tdesktop: 'dropdown',\r\n\t\t\t\ttablet: 'accordion',\r\n\t\t\t\tmobile: 'accordion'\r\n\t\t\t},\r\n\t\t\taccordion: {\r\n\t\t\t\tslideSpeed: 200, // accordion toggle slide speed in milliseconds\r\n\t\t\t\texpandAll: false // allow having multiple expanded accordions in the menu\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Close aside offcanvas panel before page reload On tablet and mobile\r\n _menuObject.on('linkClick', function(menu) {\r\n if (KTUtil.isBreakpointDown('lg')) { // Tablet and mobile mode\r\n _offcanvasObject.hide(); // Hide offcanvas after general link click\r\n }\r\n });\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n init: function(menuId, offcanvasId) {\r\n _menuElement = KTUtil.getById(menuId);\r\n _offcanvasElement = KTUtil.getById(offcanvasId);\r\n\r\n if (!_menuElement) {\r\n return;\r\n }\r\n\r\n // Initialize menu\r\n _init();\r\n\t\t},\r\n\r\n\t\tgetMenuElement: function() {\r\n\t\t\treturn _menuElement;\r\n\t\t},\r\n\r\n getOffcanvasElement: function() {\r\n\t\t\treturn _offcanvasElement;\r\n\t\t},\r\n\r\n getMenu: function() {\r\n\t\t\treturn _menuObject;\r\n\t\t},\r\n\r\n\t\tpauseDropdownHover: function(time) {\r\n\t\t\tif (_menuObject) {\r\n\t\t\t\t_menuObject.pauseDropdownHover(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n getOffcanvas: function() {\r\n\t\t\treturn _offcanvasObject;\r\n\t\t},\r\n\r\n\t\tcloseMobileOffcanvas: function() {\r\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\r\n\t\t\t\t_offcanvasObject.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutHeaderMenu;","\"use strict\";\r\n\r\nvar KTLayoutAside = function() {\r\n // Private properties\r\n var _body;\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\tvar offcanvasClass = KTUtil.hasClass(_element, 'aside-offcanvas-default') ? 'aside-offcanvas-default' : 'aside';\r\n\r\n // Initialize mobile aside offcanvas\r\n\t\t_offcanvasObject = new KTOffcanvas(_element, {\r\n\t\t\tbaseClass: offcanvasClass,\r\n\t\t\toverlay: true,\r\n\t\t\tcloseBy: 'kt_aside_close_btn',\r\n\t\t\ttoggleBy: {\r\n\t\t\t\ttarget: 'kt_aside_mobile_toggle',\r\n\t\t\t\tstate: 'mobile-toggle-active'\r\n\t\t\t}\r\n\t\t});\r\n\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":""}