{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/core/services/store/breadcrumbs.module.js","webpack:///./src/core/services/jwt.service.js","webpack:///./src/assets/js/components/image-input.js","webpack:///./src/App.vue?4ef5","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/router.js","webpack:///./src/core/config/i18n/en.js","webpack:///./src/core/config/i18n/ch.js","webpack:///./src/core/config/i18n/es.js","webpack:///./src/core/config/i18n/jp.js","webpack:///./src/core/config/i18n/de.js","webpack:///./src/core/config/i18n/fr.js","webpack:///./src/core/plugins/vue-i18n.js","webpack:///./src/core/plugins/vuetify.js","webpack:///./src/core/plugins/portal-vue.js","webpack:///./src/core/plugins/bootstrap-vue.js","webpack:///./src/core/plugins/perfect-scrollbar.js","webpack:///./src/core/plugins/highlight-js.js","webpack:///./src/core/plugins/inline-svg.js","webpack:///./src/core/plugins/apexcharts.js","webpack:///./src/core/plugins/treeselect.js","webpack:///./src/assets/js/layout/base/content.js","webpack:///./src/assets/js/layout/base/footer.js","webpack:///./src/assets/js/layout/base/sticky-card.js","webpack:///./src/assets/js/layout/base/stretched-card.js","webpack:///./src/assets/js/layout/base/subheader.js","webpack:///./src/assets/js/layout/extended/chat.js","webpack:///./src/assets/js/layout/extended/quick-actions.js","webpack:///./src/assets/js/layout/extended/quick-cart.js","webpack:///./src/assets/js/layout/extended/quick-notifications.js","webpack:///./src/assets/js/layout/extended/quick-panel.js","webpack:///./src/assets/js/layout/extended/quick-search.js","webpack:///./src/assets/js/layout/extended/search.js","webpack:///./src/core/plugins/metronic.js","webpack:///./src/main.js","webpack:///./src/core/services/store/config.module.js","webpack:///./src/App.vue?c650","webpack:///./src/assets/js/components/header.js","webpack:///./src/assets/js/layout/extended/scrolltop.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/api.service.js","webpack:///./src/core/services/store/auth.module.js","webpack:///./src/assets/js/layout/extended/quick-user.js","webpack:///./src/assets/js/components/dialog.js","webpack:///./src/assets/js/components/wizard.js","webpack:///./src/core/services/store/profile.module.js","webpack:///./src/assets/js/components/util.js","webpack:///./src/assets/js/layout/extended/examples.js","webpack:///./src/assets/js/components/offcanvas.js","webpack:///./src/assets/js/components/scrolltop.js","webpack:///./src/assets/js/components/toggle.js","webpack:///./src/assets/js/layout/base/header-topbar.js","webpack:///./src/assets/js/layout/base/aside-menu.js","webpack:///./src/assets/js/components/card.js","webpack:///./src/assets/js/layout/base/header.js","webpack:///./src/assets/js/components/cookie.js","webpack:///./src/assets/js/layout/base/header-menu.js","webpack:///./src/assets/js/layout/base/aside.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","APPEND_BREADCRUM","SET_BREADCRUMB","ADD_BREADCRUMB","state","breadcrumbs","getters","pageTitle","last","title","actions","payload","commit","forEach","item","mutations","ID_TOKEN_KEY","getToken","localStorage","getItem","authorizeToken","token","user","jwt_decode","Date","now","exp","saveToken","setItem","destroyToken","removeItem","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","location","hostname","mounted","$store","dispatch","component","Vue","use","Router","routes","path","redirect","children","locale","TRANSLATOR","HOME","LINES","LINE","LINEID","OVERVIEWLINE","LASTCHECK","LAST_INSPECTED","VIEW_ALL","CLEAR","EDIT","SAVE","JUST_CHANGED","BE_CAREFULL","MUST_CHANGE","CHANGE_STATUS_FOR_ENTIRE","NOW_ITS","UNCHANGED","SEARCH","GETQUOTE","HIDEQUOTE","GETQUOTETOOLTIP","INSPECT_BUTTON","STATUS","AMOUNT","TOTAL_LENGTH","NOTES","STOCK_LOCATION","TRACKS","SERIES","WIDTH","HIGH","DIAMETER","OUTSIDE_DIAMETER","COLOR","RED","ORANGE","GREEN","TOTAL","LENGTH","CONVEYOR","SECTION","NAME","NUMBEROFTRACKS","CATEGORIES","ADD_EXTRA_NOTE_HERE","CHOOSEFILEDROP","OPEN","OPEN_PDF","MORE_PDF","UPLOAD_PDF","UPLOAD","MAINTENANCE_HISTORY","MAINTENANCE","TERMSANDCONDITIONS","TERMSANDCONDITIONS_URL","TECHNICALPARTS","SEEDETAILS","PREV","NEXT","SELECT","PARTS","Motor","DriveBearing","IdlerBearing","ChainBelt","DriveSprocket","IdlerSprocket","Curve","Wearstrip","Roller","Components","FORM","TO","FROM","SUBJECT","SELECT_PARTS","MESSAGE","MENU","NEW","ACTIONS","CREATE_POST","PAGES","FEATURES","APPS","DASHBOARD","AUTH","GENERAL","OR","SUBMIT_BUTTON","NO_ACCOUNT","SIGNUP_BUTTON","FORGOT_BUTTON","BACK_BUTTON","PRIVACY","LEGAL","CONTACT","LOGIN","TITLE","BUTTON","FORGOT","DESC","SUCCESS","REGISTER","INPUT","EMAIL","FULLNAME","PASSWORD","CONFIRM_PASSWORD","USERNAME","VALIDATION","INVALID","REQUIRED","MIN_LENGTH","AGREEMENT_REQUIRED","NOT_FOUND","INVALID_LOGIN","REQUIRED_FIELD","MIN_LENGTH_FIELD","MAX_LENGTH_FIELD","INVALID_FIELD","ECOMMERCE","SHOP","CATALOG","SHOP_NOW","WELCOME","ADDTOCART","VIEW_PRODUCT","VIEW","MINIMUM_QUANTITIY","PRICE","PRODUCT_ADDED","ORDER","ORDERS","ORDERS_STATUS","CART","USER","TOTAL_PRICE","ORDER_OVERVIEW","CART_OVERVIEW","DATE","IN_PROGRESS","APPROVED","COMPLETED","CANCELED","OPEN_ORDER_DETAILS","PRODUCTS","QTY","SU","DELETE","PU","SUBTOTAL","TOTAL_EX_VAT","CHECKOUT","YOUR_NOTE","ADD_ORDER_NOTE","PLACE_ORDER_NOW","EX_VAT_DELIVERY_MSG","MY_CART","CART_IS_EMPTY","PRODUCT_ADDED_TO_CART","REFRESH","CLOSE","PRINT_PDF","NO_ORDERS_FOUND_PLACE_FIRST_ORDER","COMMON","SELECTED_RECORDS_COUNT","ALL","SUSPENDED","ACTIVE","FILTER","BY_STATUS","BY_TYPE","BUSINESS","INDIVIDUAL","IN_ALL_FIELDS","CUSTOMERS","CUSTOMERS_LIST","NEW_CUSTOMER","DELETE_CUSTOMER_SIMPLE","DESCRIPTION","WAIT_DESCRIPTION","DELETE_CUSTOMER_MULTY","UPDATE_STATUS","UPDATE_MESSAGE","ADD_MESSAGE","VueI18n","messages","en","ch","es","jp","de","fr","lang","i18n","Vuetify","theme","customProperties","themes","light","primary","secondary","accent","info","success","warning","PortalVue","BootstrapVue","IconsPlugin","PerfectScrollbar","VueHighlightJS","languages","scss","javascript","json","vue","InlineSvgPlugin","VueApexCharts","Treeselect","KTLayoutContent","_element","_getHeight","height","getViewPort","parseInt","KTLayoutHeader","getHeight","KTLayoutSubheader","KTLayoutFooter","id","getElement","actualHeight","KTLayoutStickyCard","_object","_init","offset","KTCard","sticky","zIndex","position","top","pos","isBreakpointUp","isFixed","isFixedForMobile","getHeightForMobile","left","card","right","body","cardWidth","bodyWidth","cardOffsetLeft","initSticky","addResizeHandler","updateSticky","update","KTLayoutStretchedCard","scroll","cardBody","cardHeader","hasClass","KTLayoutChat","scrollEl","cardBodyEl","cardHeaderEl","cardFooterEl","scrollInit","windowScroll","mobileNativeScroll","desktopNativeScroll","resetHeightOnDestroy","handleWindowResize","rememberPosition","isBreakpointDown","hasAttr","attr","keyCode","_handeMessaging","messagesEl","textarea","node","ps","html","setHTML","scrollTop","encodeURI","KTCookie","getCookie","expires","getTime","setCookie","click","setup","KTLayoutQuickActions","header","content","KTOffcanvas","overlay","baseClass","placement","closeBy","toggleBy","disableForMobile","KTLayoutQuickCartPanel","footer","KTLayoutQuickNotifications","KTLayoutQuickPanel","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","_initNotifications","_initLogs","_initSettings","KTLayoutQuickSearch","form","results","KTLayoutSearch","_target","_form","_input","_closeIcon","_resultWrapper","_resultDropdown","_resultDropdownToggle","_closeIconContainer","_query","_hasResult","_timeout","_isProcessing","_requestTimeout","_spinnerClass","_resultClass","_minLength","_showProgress","hide","_hideProgress","show","_showDropdown","$","dropdown","_hideDropdown","_processSearch","scrollUpdate","ajax","url","HOST_URL","query","dataType","res","_handleCancel","_handleSearch","onkeypress","charCode","KTDialog","KTHeader","KTMenu","KTScrolltop","KTToggle","KTWizard","KTLayoutAside","KTLayoutAsideMenu","KTLayoutHeaderMenu","KTLayoutHeaderTopbar","KTLayoutExamples","KTLayoutQuickUser","KTLayoutScrolltop","config","productionTip","ClipboardJS","axios","defaults","baseURL","interceptors","headers","Authorization","router","beforeEach","to","from","next","store","VERIFY_AUTH","RESET_LAYOUT_CONFIG","scrollTo","vuetify","render","h","App","$mount","SET_LAYOUT_CONFIG","OVERRIDE_LAYOUT_CONFIG","OVERRIDE_PAGE_LAYOUT_CONFIG","initial","layoutConfig","defaultValue","objectPath","assign","JSON","parse","merge","desktop","tabletAndMobile","releseOnReverse","eventTriggerState","lastScrollTop","addEventListener","st","getScrollTop","hasAttribute","removeAttribute","args","speed","Vuex","Store","auth","htmlClass","profile","accordion","slideSpeed","autoScroll","autoScrollSpeed","expandAll","reset","eventHandlers","pauseDropdownHoverTime","uid","getUniqueID","reload","resetSubmenuProps","handleSubmenuAccordion","getSubmenuMode","isConditionalSubmenuDropdown","handleSubmenuDrodownHoverEnter","handleSubmenuDrodownHoverExit","handleSubmenuDropdownClick","handleSubmenuDropdownTabClick","handleLinkClick","off","scrollDestroy","el","isset","submenu","hasClasses","default","tablet","mobile","submenus","findAll","len","resumeDropdownHover","showSubmenuDropdown","time","hideSubmenuDropdown","closest","hideSubmenuDropdowns","handleSubmenuDropdownClose","shown","querySelectorAll","li","child","subnav","closables","el_","submenu_","slideUp","slideDown","scrollToItem","classAlso","items","cnt","list","contains","isOffscreen","createSubmenuDropdownClickDropoff","dropoff","stopPropagation","pauseDropdownHover","date","resetActiveItem","parents","i_","len_","setActiveItem","getBreadcrumbs","link","text","innerHTML","submenuLink","reverse","getPageTitle","removeEvent","scrollReInit","hideDropdown","hideDropdowns","getByTagName","ADD_BODY_CLASSNAME","REMOVE_BODY_CLASSNAME","ADD_CLASSNAME","SET_CLASSNAME_BY_POSITION","classes","getClasses","context","className","classList","add","ApiService","VueAxios","setHeader","common","JwtService","resource","params","catch","slug","post","put","delete","LOGOUT","UPDATE_PASSWORD","PURGE_AUTH","SET_AUTH","SET_PASSWORD","SET_ERROR","errors","isAuthenticated","currentUser","credentials","accessToken","email","password","response","userObject","emailaddress","startStep","clickableSteps","navigation","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","UPDATE_PERSONAL_INFO","UPDATE_ACCOUNT_INFO","SET_PERSONAL_INFO","SET_ACCOUNT_INFO","user_personal_info","photo","surname","company_name","job","phone","company_site","user_account_info","username","language","time_zone","communication","sms","verification","currentUserPersonalInfo","currentUserAccountInfo","currentUserPhoto","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","toString","extend","getElementById","getByTag","getByClass","getElementsByClassName","classesArr","trim","RegExp","classNames","replace","triggerCustomEvent","eventName","CustomEvent","detail","initCustomEvent","triggerEvent","doc","ownerDocument","nodeType","eventClass","bubbles","initEvent","synthetic","fireEvent","createEventObject","string","eventTriggered","currentTarget","dataset","triggered","parent","querySelector","insertAfter","referenceNode","nextSibling","selector","matchesSelector","mozMatchesSelector","oMatchesSelector","log","childNodes","f","tagName","customDataTag","outerWidth","margin","parseFloat","offsetWidth","rect","win","getClientRects","getBoundingClientRect","defaultView","pageYOffset","pageXOffset","outerHeight","withMargin","style","offsetHeight","getComputedStyle","marginTop","marginBottom","visible","animate","duration","easing","done","easings","linear","b","rAF","change","performance","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","func","delay","debounce","btnWait","cls","disable","caption","btnRelease","direction","windowWidth","windowHeight","KTAppSettings","initDefaultMode","elements","example","copy","clipboard","trigger","clearSelection","initCompactMode","toggle","attrCustom","classBase","classShown","classOverlay","isShown","toggleClass","classCustom","handle","toggleElement","targetElement","targetToggleMode","targetState","toggleState","toggleOn","toggleOff","getState","_toggleElement","getToggleElement","_menuObject","menuDesktopMode","menu","getOffcanvas","getMenu","closeMobileOffcanvas","toggleSpeed","onScrollSticky","resetSticky","tooltips","tooltip","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","offcanvasClass"],"mappings":"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","file":"js/app.ae9d5605.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-02cb6c96\":\"52cabd7c\",\"chunk-089ac46e\":\"70d2b107\",\"chunk-1de72a52\":\"763e4b31\",\"chunk-0180a0a4\":\"a6b848d2\",\"chunk-2d0df0b5\":\"c6997e13\",\"chunk-4bd0e170\":\"35347eca\",\"chunk-0cf53844\":\"660b3b49\",\"chunk-2d22c0c2\":\"ca02823c\",\"chunk-2d0ac01b\":\"af6601a0\",\"chunk-2d0b2158\":\"2617ea0a\",\"chunk-2d0bd189\":\"bd81e018\",\"chunk-2d0c0c06\":\"51804d6b\",\"chunk-2d0c4d85\":\"0a3fa195\",\"chunk-0c50f90c\":\"e4a945b6\",\"chunk-48030104\":\"ff6bea32\",\"chunk-4f68eef8\":\"820ca8fa\",\"chunk-2941ede8\":\"d851b4e5\",\"chunk-2d0e6525\":\"1e8aa1c1\",\"chunk-2d21ef28\":\"830220da\",\"chunk-579f41a7\":\"32a94edb\",\"chunk-9cbb2af0\":\"4588e984\",\"chunk-f79c329a\":\"bae5afe1\",\"chunk-2d0c5046\":\"bb5a49ae\",\"chunk-2d0d67a1\":\"93948202\",\"chunk-2d0e1b9e\":\"e480913b\",\"chunk-2d0e64e1\":\"2883e69e\",\"chunk-2d209ae3\":\"0ebc4a0e\",\"chunk-2d216256\":\"653f889c\",\"chunk-2d2163d4\":\"638015a6\",\"chunk-2d221823\":\"4cbb0344\",\"chunk-2d230496\":\"b74dcd24\",\"chunk-33b05686\":\"49bab2da\",\"chunk-148cf456\":\"23b6179a\",\"chunk-1cc13c07\":\"738020fa\",\"chunk-6228ece4\":\"26e0ce2c\",\"chunk-4955ec18\":\"6bf18902\",\"chunk-b9a3d93c\":\"92a539f2\",\"chunk-19b69e78\":\"744675ec\",\"chunk-f72e6366\":\"7f76b52f\",\"chunk-02bf832e\":\"6f6175f1\",\"chunk-6ce0b9d2\":\"c28ccb6e\",\"chunk-a89ee32c\":\"975012fc\",\"chunk-c5432228\":\"b7f05401\",\"chunk-9a7e273c\":\"8e4e6f33\",\"chunk-1f8cfe3e\":\"6dce6db1\",\"chunk-301ad9bb\":\"6d0d15af\",\"chunk-35d9e508\":\"752e71f7\",\"chunk-44f01adc\":\"0f87ae7f\",\"chunk-5491dfb1\":\"d6ad3a5e\",\"chunk-6ad396a1\":\"6e2f41f2\",\"chunk-6d586c84\":\"1886f586\",\"chunk-774fa88e\":\"96111599\",\"chunk-9715ca26\":\"62f672d8\",\"chunk-5a8420da\":\"2cdeaa66\",\"chunk-2d225e02\":\"bf62787b\",\"chunk-0ee2f0bc\":\"ed0a6c96\",\"chunk-5b94e4ca\":\"b911ffbf\",\"chunk-533f365f\":\"8c6fd38d\",\"chunk-2884a302\":\"c9e461f8\",\"chunk-26c98ebf\":\"423c4857\",\"chunk-4bf9bea6\":\"964b719d\",\"chunk-6ddf8913\":\"3371b4cf\",\"chunk-895d74f4\":\"ceab4c8d\",\"chunk-376884b6\":\"a27863a3\",\"chunk-3768c625\":\"88b4ab91\",\"chunk-3768c647\":\"9ee5ae5e\",\"chunk-3768f920\":\"642e0adb\",\"chunk-3768f94e\":\"3258d2e2\",\"chunk-376900b2\":\"67b20b11\",\"chunk-37697ca5\":\"8f1fbdf3\",\"chunk-376a6cff\":\"a2487eef\",\"chunk-376a941d\":\"8b2cb3bb\",\"chunk-376acc6c\":\"17e01407\",\"chunk-376acc7e\":\"a24e8cc2\",\"chunk-376acca9\":\"3c66bb6f\",\"chunk-376b809c\":\"c37bfb15\",\"chunk-376bfecc\":\"c393622d\",\"chunk-376c3eab\":\"977a9800\",\"chunk-376c6d21\":\"93c373bd\",\"chunk-376c708f\":\"5ec26257\",\"chunk-376cef0f\":\"4c8f067a\",\"chunk-377e5862\":\"38cb5f06\",\"chunk-377e7527\":\"dd038666\",\"chunk-377ed9f8\":\"8331ab8f\",\"chunk-377f12a5\":\"a4d95069\",\"chunk-377f14a2\":\"0bebaa15\",\"chunk-377f5235\":\"0906ebe7\",\"chunk-377f9005\":\"cbf164f1\",\"chunk-377fada0\":\"c5bb4e00\",\"chunk-377fbbbf\":\"dc772c63\",\"chunk-3780970d\":\"035a0f8a\",\"chunk-3780a904\":\"7b7ff24e\",\"chunk-3780ad51\":\"aafab2bd\",\"chunk-3780b720\":\"810a622e\",\"chunk-3780de1e\":\"306c3cf3\",\"chunk-3780e609\":\"89e9db48\",\"chunk-3780ed6d\":\"9b48935b\",\"chunk-3781564e\":\"5e9d3f2d\",\"chunk-558578a4\":\"df2b0b17\",\"chunk-57adf09a\":\"8c8d4b29\",\"chunk-669d961e\":\"9324dab8\",\"chunk-6b75e686\":\"297b5180\",\"chunk-6c37b64a\":\"d269126a\",\"chunk-6c985d88\":\"71119d2e\",\"chunk-74b5d671\":\"ea4ecdc1\",\"chunk-77d5e372\":\"85fd9b89\",\"chunk-a061067a\":\"e3e4888b\",\"chunk-cd7ac142\":\"3be75a18\",\"chunk-cf09472e\":\"c782e5a2\",\"chunk-dcf6e014\":\"eda89eb0\",\"chunk-f4b02d80\":\"4d126a63\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-02cb6c96\":1,\"chunk-089ac46e\":1,\"chunk-0180a0a4\":1,\"chunk-0cf53844\":1,\"chunk-0c50f90c\":1,\"chunk-48030104\":1,\"chunk-2941ede8\":1,\"chunk-579f41a7\":1,\"chunk-9cbb2af0\":1,\"chunk-f79c329a\":1,\"chunk-33b05686\":1,\"chunk-148cf456\":1,\"chunk-1cc13c07\":1,\"chunk-6228ece4\":1,\"chunk-4955ec18\":1,\"chunk-b9a3d93c\":1,\"chunk-19b69e78\":1,\"chunk-f72e6366\":1,\"chunk-02bf832e\":1,\"chunk-6ce0b9d2\":1,\"chunk-a89ee32c\":1,\"chunk-c5432228\":1,\"chunk-9a7e273c\":1,\"chunk-1f8cfe3e\":1,\"chunk-301ad9bb\":1,\"chunk-35d9e508\":1,\"chunk-44f01adc\":1,\"chunk-5491dfb1\":1,\"chunk-6ad396a1\":1,\"chunk-6d586c84\":1,\"chunk-774fa88e\":1,\"chunk-9715ca26\":1,\"chunk-5a8420da\":1,\"chunk-0ee2f0bc\":1,\"chunk-5b94e4ca\":1,\"chunk-533f365f\":1,\"chunk-2884a302\":1,\"chunk-26c98ebf\":1,\"chunk-4bf9bea6\":1,\"chunk-6ddf8913\":1,\"chunk-895d74f4\":1,\"chunk-558578a4\":1,\"chunk-669d961e\":1,\"chunk-6b75e686\":1,\"chunk-6c37b64a\":1,\"chunk-6c985d88\":1,\"chunk-74b5d671\":1,\"chunk-77d5e372\":1,\"chunk-a061067a\":1,\"chunk-cd7ac142\":1,\"chunk-cf09472e\":1,\"chunk-dcf6e014\":1,\"chunk-f4b02d80\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-02cb6c96\":\"19a658d4\",\"chunk-089ac46e\":\"5d3d7f00\",\"chunk-1de72a52\":\"31d6cfe0\",\"chunk-0180a0a4\":\"e935173d\",\"chunk-2d0df0b5\":\"31d6cfe0\",\"chunk-4bd0e170\":\"31d6cfe0\",\"chunk-0cf53844\":\"bf08febf\",\"chunk-2d22c0c2\":\"31d6cfe0\",\"chunk-2d0ac01b\":\"31d6cfe0\",\"chunk-2d0b2158\":\"31d6cfe0\",\"chunk-2d0bd189\":\"31d6cfe0\",\"chunk-2d0c0c06\":\"31d6cfe0\",\"chunk-2d0c4d85\":\"31d6cfe0\",\"chunk-0c50f90c\":\"25def222\",\"chunk-48030104\":\"c1491ae5\",\"chunk-4f68eef8\":\"31d6cfe0\",\"chunk-2941ede8\":\"42fa56c2\",\"chunk-2d0e6525\":\"31d6cfe0\",\"chunk-2d21ef28\":\"31d6cfe0\",\"chunk-579f41a7\":\"263cc7c8\",\"chunk-9cbb2af0\":\"166644a5\",\"chunk-f79c329a\":\"8b00ca31\",\"chunk-2d0c5046\":\"31d6cfe0\",\"chunk-2d0d67a1\":\"31d6cfe0\",\"chunk-2d0e1b9e\":\"31d6cfe0\",\"chunk-2d0e64e1\":\"31d6cfe0\",\"chunk-2d209ae3\":\"31d6cfe0\",\"chunk-2d216256\":\"31d6cfe0\",\"chunk-2d2163d4\":\"31d6cfe0\",\"chunk-2d221823\":\"31d6cfe0\",\"chunk-2d230496\":\"31d6cfe0\",\"chunk-33b05686\":\"a772a34b\",\"chunk-148cf456\":\"ba1d52f1\",\"chunk-1cc13c07\":\"1af5344b\",\"chunk-6228ece4\":\"1e1ed9d0\",\"chunk-4955ec18\":\"90f50eec\",\"chunk-b9a3d93c\":\"83366afc\",\"chunk-19b69e78\":\"b177379c\",\"chunk-f72e6366\":\"cef783da\",\"chunk-02bf832e\":\"844a8e0a\",\"chunk-6ce0b9d2\":\"f9d6fdfa\",\"chunk-a89ee32c\":\"bdd2ee45\",\"chunk-c5432228\":\"1d4711ed\",\"chunk-9a7e273c\":\"36390b54\",\"chunk-1f8cfe3e\":\"6dfeae75\",\"chunk-301ad9bb\":\"e9a4a0b4\",\"chunk-35d9e508\":\"3f47e871\",\"chunk-44f01adc\":\"163b92f6\",\"chunk-5491dfb1\":\"be4cef15\",\"chunk-6ad396a1\":\"4ae73215\",\"chunk-6d586c84\":\"8fe6a0eb\",\"chunk-774fa88e\":\"4eb412be\",\"chunk-9715ca26\":\"5b60fa4c\",\"chunk-5a8420da\":\"59a659e0\",\"chunk-2d225e02\":\"31d6cfe0\",\"chunk-0ee2f0bc\":\"4f235329\",\"chunk-5b94e4ca\":\"787fa100\",\"chunk-533f365f\":\"2305e449\",\"chunk-2884a302\":\"e3bbdfb2\",\"chunk-26c98ebf\":\"cca1da69\",\"chunk-4bf9bea6\":\"cca1da69\",\"chunk-6ddf8913\":\"536ad13c\",\"chunk-895d74f4\":\"536ad13c\",\"chunk-376884b6\":\"31d6cfe0\",\"chunk-3768c625\":\"31d6cfe0\",\"chunk-3768c647\":\"31d6cfe0\",\"chunk-3768f920\":\"31d6cfe0\",\"chunk-3768f94e\":\"31d6cfe0\",\"chunk-376900b2\":\"31d6cfe0\",\"chunk-37697ca5\":\"31d6cfe0\",\"chunk-376a6cff\":\"31d6cfe0\",\"chunk-376a941d\":\"31d6cfe0\",\"chunk-376acc6c\":\"31d6cfe0\",\"chunk-376acc7e\":\"31d6cfe0\",\"chunk-376acca9\":\"31d6cfe0\",\"chunk-376b809c\":\"31d6cfe0\",\"chunk-376bfecc\":\"31d6cfe0\",\"chunk-376c3eab\":\"31d6cfe0\",\"chunk-376c6d21\":\"31d6cfe0\",\"chunk-376c708f\":\"31d6cfe0\",\"chunk-376cef0f\":\"31d6cfe0\",\"chunk-377e5862\":\"31d6cfe0\",\"chunk-377e7527\":\"31d6cfe0\",\"chunk-377ed9f8\":\"31d6cfe0\",\"chunk-377f12a5\":\"31d6cfe0\",\"chunk-377f14a2\":\"31d6cfe0\",\"chunk-377f5235\":\"31d6cfe0\",\"chunk-377f9005\":\"31d6cfe0\",\"chunk-377fada0\":\"31d6cfe0\",\"chunk-377fbbbf\":\"31d6cfe0\",\"chunk-3780970d\":\"31d6cfe0\",\"chunk-3780a904\":\"31d6cfe0\",\"chunk-3780ad51\":\"31d6cfe0\",\"chunk-3780b720\":\"31d6cfe0\",\"chunk-3780de1e\":\"31d6cfe0\",\"chunk-3780e609\":\"31d6cfe0\",\"chunk-3780ed6d\":\"31d6cfe0\",\"chunk-3781564e\":\"31d6cfe0\",\"chunk-558578a4\":\"5093f554\",\"chunk-57adf09a\":\"31d6cfe0\",\"chunk-669d961e\":\"bf08febf\",\"chunk-6b75e686\":\"bf08febf\",\"chunk-6c37b64a\":\"81994c43\",\"chunk-6c985d88\":\"874bd46b\",\"chunk-74b5d671\":\"c6c3c634\",\"chunk-77d5e372\":\"0e443c0e\",\"chunk-a061067a\":\"10b0501c\",\"chunk-cd7ac142\":\"73bb66d7\",\"chunk-cf09472e\":\"84f98409\",\"chunk-dcf6e014\":\"b810e9f8\",\"chunk-f4b02d80\":\"b5f32203\"}[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","import jwt_decode from \"jwt-decode\";\r\nconst ID_TOKEN_KEY = \"access_token\";\r\n\r\nexport const getToken = () => {\r\n return window.localStorage.getItem(ID_TOKEN_KEY);\r\n};\r\n\r\nexport const authorizeToken = () => { \r\n const token = getToken();\r\n if (token) {\r\n const user = jwt_decode(token);\r\n // console.log(user);\r\n if(user) {\r\n if (Date.now() <= user.exp * 1000) {\r\n // console.log(user);\r\n return user;\r\n }\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nexport const saveToken = token => {\r\n window.localStorage.setItem(ID_TOKEN_KEY, token);\r\n};\r\n\r\nexport const destroyToken = () => {\r\n window.localStorage.removeItem(ID_TOKEN_KEY);\r\n};\r\n\r\nexport default { getToken, saveToken, destroyToken, authorizeToken };\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=db7224ba&\"\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 routes: [\r\n {\r\n path: \"/\",\r\n redirect: \"/home\",\r\n component: () => import(\"@/view/layout/Layout\"),\r\n children: [\r\n {\r\n path: \"/home\",\r\n name: \"home\",\r\n component: () => import(\"@/view/pages/Home.vue\")\r\n },\r\n {\r\n path: \"/line/:id\",\r\n name: \"line\",\r\n component: () => import(\"@/view/pages/Line.vue\")\r\n },\r\n {\r\n path: \"/line/:id/conveyor/:conveyorId\",\r\n name: \"conveyor\",\r\n component: () => import(\"@/view/pages/Conveyor.vue\")\r\n },\r\n {\r\n path: \"/line/:id/conveyor/:conveyorId/maintenance/:Id\",\r\n name: \"maintenance\",\r\n component: () => import(\"@/view/pages/Maintenance.vue\")\r\n },\r\n {\r\n path: \"/maintenance\",\r\n name: \"maintenanceoverview\",\r\n component: () => import(\"@/view/pages/MaintenanceOverview.vue\")\r\n },\r\n {\r\n path: \"/techinical-parts\",\r\n name: \"techinicalpartsoverview\",\r\n component: () => import(\"@/view/pages/TechnicalPartsOverview.vue\")\r\n },\r\n {\r\n path: \"/admin/import\",\r\n name: \"import\",\r\n component: () => import(\"@/view/pages/Import.vue\")\r\n },\r\n {\r\n path: \"/shop\",\r\n name: \"shop\",\r\n component: () => import(\"@/view/shop/Home.vue\")\r\n },\r\n {\r\n path: \"/shop/:category\",\r\n name: \"products\",\r\n component: () => import(\"@/view/shop/Products.vue\")\r\n },\r\n {\r\n path: \"/shop/:category/:productId\",\r\n name: \"product-detail\",\r\n component: () => import(\"@/view/shop/ProductsDetail.vue\")\r\n },\r\n {\r\n path: \"/checkout\",\r\n name: \"checkout\",\r\n component: () => import(\"@/view/shop/Checkout.vue\")\r\n },\r\n {\r\n path: \"/orders\",\r\n name: \"orders\",\r\n component: () => import(\"@/view/shop/Orders.vue\")\r\n },\r\n {\r\n path: \"/builder\",\r\n name: \"builder\",\r\n component: () => import(\"@/view/pages/Builder.vue\")\r\n },\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 path: \"button\",\r\n name: \"vue-bootstrap-button\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Button.vue\")\r\n },\r\n {\r\n path: \"button-group\",\r\n name: \"vue-bootstrap-button-group\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/ButtonGroup.vue\")\r\n },\r\n {\r\n path: \"button-toolbar\",\r\n name: \"vue-bootstrap-button-toolbar\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/ButtonToolbar.vue\")\r\n },\r\n {\r\n path: \"card\",\r\n name: \"vue-bootstrap-card\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Card.vue\")\r\n },\r\n {\r\n path: \"carousel\",\r\n name: \"vue-bootstrap-carousel\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Carousel.vue\")\r\n },\r\n\r\n {\r\n path: \"collapse\",\r\n name: \"vue-bootstrap-collapse\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Collapse.vue\")\r\n },\r\n {\r\n path: \"dropdown\",\r\n name: \"vue-bootstrap-dropdown\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Dropdown.vue\")\r\n },\r\n {\r\n path: \"embed\",\r\n name: \"vue-bootstrap-embed\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Embed.vue\")\r\n },\r\n {\r\n path: \"form\",\r\n name: \"vue-bootstrap-form\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Form.vue\")\r\n },\r\n {\r\n path: \"form-checkbox\",\r\n name: \"vue-bootstrap-form-checkbox\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/FormCheckbox.vue\")\r\n },\r\n {\r\n path: \"form-file\",\r\n name: \"vue-bootstrap-form-file\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/FormFile.vue\")\r\n },\r\n {\r\n path: \"form-group\",\r\n name: \"vue-bootstrap-form-group\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/FormGroup.vue\")\r\n },\r\n {\r\n path: \"form-input\",\r\n name: \"vue-bootstrap-form-input\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/FormInput.vue\")\r\n },\r\n {\r\n path: \"form-radio\",\r\n name: \"vue-bootstrap-form-radio\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/FormRadio.vue\")\r\n },\r\n {\r\n path: \"form-select\",\r\n name: \"vue-bootstrap-form-select\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/FormSelect.vue\")\r\n },\r\n {\r\n path: \"form-textarea\",\r\n name: \"vue-bootstrap-form-textarea\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/FormTextarea.vue\")\r\n },\r\n {\r\n path: \"image\",\r\n name: \"vue-bootstrap-image\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Image.vue\")\r\n },\r\n {\r\n path: \"input-group\",\r\n name: \"vue-bootstrap-input-group\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/InputGroup.vue\")\r\n },\r\n {\r\n path: \"jumbotron\",\r\n name: \"vue-bootstrap-jumbotron\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/Jumbotron.vue\")\r\n },\r\n {\r\n path: \"layout-grid-system\",\r\n name: \"vue-bootstrap-layout-grid-system\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/LayoutGridSystem.vue\")\r\n },\r\n {\r\n path: \"link\",\r\n name: \"vue-bootstrap-link\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Link.vue\")\r\n },\r\n {\r\n path: \"list-group\",\r\n name: \"vue-bootstrap-list-group\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/ListGroup.vue\")\r\n },\r\n {\r\n path: \"media\",\r\n name: \"vue-bootstrap-media\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Media.vue\")\r\n },\r\n {\r\n path: \"modal\",\r\n name: \"vue-bootstrap-modal\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Modal.vue\")\r\n },\r\n {\r\n path: \"nav\",\r\n name: \"vue-bootstrap-nav\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Nav.vue\")\r\n },\r\n {\r\n path: \"navbar\",\r\n name: \"vue-bootstrap-navbar\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Navbar.vue\")\r\n },\r\n {\r\n path: \"pagination\",\r\n name: \"vue-bootstrap-pagination\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/Pagination.vue\")\r\n },\r\n {\r\n path: \"pagination-nav\",\r\n name: \"vue-bootstrap-pagination-nav\",\r\n component: () =>\r\n import(\"@/view/pages/vue-bootstrap/PaginationNav.vue\")\r\n },\r\n {\r\n path: \"notify-popover\",\r\n name: \"vue-bootstrap-popover\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Popover.vue\")\r\n },\r\n {\r\n path: \"notify-toasts\",\r\n name: \"vue-bootstrap-toasts\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Toasts.vue\")\r\n },\r\n {\r\n path: \"notify-tooltip\",\r\n name: \"vue-bootstrap-tooltip\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Tooltip.vue\")\r\n },\r\n {\r\n path: \"progress\",\r\n name: \"vue-bootstrap-progress\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Progress.vue\")\r\n },\r\n {\r\n path: \"progress-spinner\",\r\n name: \"vue-bootstrap-spinner\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Spinner.vue\")\r\n },\r\n {\r\n path: \"table\",\r\n name: \"vue-bootstrap-table\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Table.vue\")\r\n },\r\n {\r\n path: \"tabs\",\r\n name: \"vue-bootstrap-tabs\",\r\n component: () => import(\"@/view/pages/vue-bootstrap/Tabs.vue\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/vuetify\",\r\n name: \"vuetify\",\r\n component: () => import(\"@/view/pages/vuetify/Vuetify.vue\"),\r\n children: [\r\n {\r\n path: \"alerts\",\r\n name: \"vuetify-alerts\",\r\n component: () => import(\"@/view/pages/vuetify/Alerts.vue\")\r\n },\r\n {\r\n path: \"avatars\",\r\n name: \"vuetify-avatars\",\r\n component: () => import(\"@/view/pages/vuetify/Avatars.vue\")\r\n },\r\n {\r\n path: \"badges\",\r\n name: \"vuetify-badges\",\r\n component: () => import(\"@/view/pages/vuetify/Badges.vue\")\r\n },\r\n {\r\n path: \"buttons\",\r\n name: \"vuetify-buttons\",\r\n component: () => import(\"@/view/pages/vuetify/Buttons.vue\")\r\n },\r\n {\r\n path: \"calendars\",\r\n name: \"vuetify-calendars\",\r\n component: () => import(\"@/view/pages/vuetify/Calendars.vue\")\r\n },\r\n {\r\n path: \"cards\",\r\n name: \"vuetify-cards\",\r\n component: () => import(\"@/view/pages/vuetify/Cards.vue\")\r\n },\r\n {\r\n path: \"chips\",\r\n name: \"vuetify-chips\",\r\n component: () => import(\"@/view/pages/vuetify/Chips.vue\")\r\n },\r\n {\r\n path: \"dialog\",\r\n name: \"vuetify-dialog\",\r\n component: () => import(\"@/view/pages/vuetify/Dialog.vue\")\r\n },\r\n {\r\n path: \"forms-autocompletes\",\r\n name: \"vuetify-autocompletes\",\r\n component: () =>\r\n import(\"@/view/pages/vuetify/forms/Autocompletes.vue\")\r\n },\r\n {\r\n path: \"forms-file-inputs\",\r\n name: \"vuetify-file-inputs\",\r\n component: () =>\r\n import(\"@/view/pages/vuetify/forms/FileInputs.vue\")\r\n },\r\n {\r\n path: \"forms\",\r\n name: \"vuetify-forms\",\r\n component: () => import(\"@/view/pages/vuetify/forms/Forms.vue\")\r\n },\r\n {\r\n path: \"forms-selection-controls\",\r\n name: \"vuetify-selection-controls\",\r\n component: () =>\r\n import(\"@/view/pages/vuetify/forms/SelectionControls.vue\")\r\n },\r\n {\r\n path: \"forms-selects\",\r\n name: \"vuetify-selects\",\r\n component: () => import(\"@/view/pages/vuetify/forms/Selects.vue\")\r\n },\r\n {\r\n path: \"forms-textareas\",\r\n name: \"vuetify-textareas\",\r\n component: () =>\r\n import(\"@/view/pages/vuetify/forms/Textareas.vue\")\r\n },\r\n {\r\n path: \"forms-text-fields\",\r\n name: \"vuetify-text-fields\",\r\n component: () =>\r\n import(\"@/view/pages/vuetify/forms/TextFields.vue\")\r\n },\r\n {\r\n path: \"tables-simple-tables\",\r\n name: \"vuetify-simple-tables\",\r\n component: () =>\r\n import(\"@/view/pages/vuetify/tables/SimpleTables.vue\")\r\n },\r\n {\r\n path: \"tables-data-tables\",\r\n name: \"vuetify-data-tables\",\r\n component: () =>\r\n import(\"@/view/pages/vuetify/tables/DataTables.vue\")\r\n },\r\n {\r\n path: \"tabs\",\r\n name: \"vuetify-tabs\",\r\n component: () => import(\"@/view/pages/vuetify/Tabs.vue\")\r\n },\r\n {\r\n path: \"timelines\",\r\n name: \"vuetify-timelines\",\r\n component: () => import(\"@/view/pages/vuetify/Timelines.vue\")\r\n },\r\n {\r\n path: \"tooltips\",\r\n name: \"vuetify-tooltips\",\r\n component: () => import(\"@/view/pages/vuetify/Tooltips.vue\")\r\n },\r\n {\r\n path: \"treeview\",\r\n name: \"vuetify-treeview\",\r\n component: () => import(\"@/view/pages/vuetify/Treeview.vue\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/custom-wizard\",\r\n name: \"wizard\",\r\n component: () => import(\"@/view/pages/wizard/Wizard.vue\"),\r\n children: [\r\n {\r\n path: \"wizard-1\",\r\n name: \"wizard-1\",\r\n component: () => import(\"@/view/pages/wizard/Wizard-1.vue\")\r\n },\r\n {\r\n path: \"wizard-2\",\r\n name: \"wizard-2\",\r\n component: () => import(\"@/view/pages/wizard/Wizard-2.vue\")\r\n },\r\n {\r\n path: \"wizard-3\",\r\n name: \"wizard-3\",\r\n component: () => import(\"@/view/pages/wizard/Wizard-3.vue\")\r\n },\r\n {\r\n path: \"wizard-4\",\r\n name: \"wizard-4\",\r\n component: () => import(\"@/view/pages/wizard/Wizard-4.vue\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/custom-plugins\",\r\n name: \"plugins\",\r\n component: () => import(\"@/view/pages/plugins/Plugins.vue\"),\r\n children: [\r\n {\r\n path: \"cropper\",\r\n name: \"cropper\",\r\n component: () => import(\"@/view/pages/plugins/Cropper.vue\")\r\n },\r\n {\r\n path: \"treeselect\",\r\n name: \"treeselect\",\r\n component: () => import(\"@/view/pages/plugins/Treeselect.vue\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/profile\",\r\n name: \"profile\",\r\n component: () => import(\"@/view/pages/profile/Profile.vue\"),\r\n children: [\r\n {\r\n path: \"profile-1\",\r\n name: \"profile-1\",\r\n component: () => import(\"@/view/pages/profile/Profile-1.vue\")\r\n },\r\n {\r\n path: \"profile-2\",\r\n name: \"profile-2\",\r\n component: () => import(\"@/view/pages/profile/Profile-2.vue\")\r\n },\r\n {\r\n path: \"profile-3\",\r\n name: \"profile-3\",\r\n component: () => import(\"@/view/pages/profile/Profile-3.vue\")\r\n },\r\n {\r\n path: \"profile-4\",\r\n name: \"profile-4\",\r\n component: () => import(\"@/view/pages/profile/Profile-4.vue\")\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/custom-error\",\r\n name: \"error\",\r\n component: () => import(\"@/view/pages/error/Error.vue\"),\r\n children: [\r\n {\r\n path: \"error-1\",\r\n name: \"error-1\",\r\n component: () => import(\"@/view/pages/error/Error-1.vue\")\r\n },\r\n {\r\n path: \"error-2\",\r\n name: \"error-2\",\r\n component: () => import(\"@/view/pages/error/Error-2.vue\")\r\n },\r\n {\r\n path: \"error-3\",\r\n name: \"error-3\",\r\n component: () => import(\"@/view/pages/error/Error-3.vue\")\r\n },\r\n {\r\n path: \"error-4\",\r\n name: \"error-4\",\r\n component: () => import(\"@/view/pages/error/Error-4.vue\")\r\n },\r\n {\r\n path: \"error-5\",\r\n name: \"error-5\",\r\n component: () => import(\"@/view/pages/error/Error-5.vue\")\r\n },\r\n {\r\n path: \"error-6\",\r\n name: \"error-6\",\r\n component: () => import(\"@/view/pages/error/Error-6.vue\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/\",\r\n component: () => import(\"@/view/pages/auth/login_pages/Login-1\"),\r\n children: [\r\n {\r\n name: \"login\",\r\n path: \"/login\",\r\n component: () => import(\"@/view/pages/auth/login_pages/Login-1\")\r\n },\r\n {\r\n name: \"register\",\r\n path: \"/register\",\r\n component: () => import(\"@/view/pages/auth/login_pages/Login-1\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"*\",\r\n redirect: \"/404\"\r\n },\r\n {\r\n // the 404 route, when none of the above matches\r\n path: \"/404\",\r\n name: \"404\",\r\n component: () => import(\"@/view/pages/error/Error-1.vue\")\r\n }\r\n ]\r\n});\r\n","// USA\r\nexport const locale = {\r\n TRANSLATOR: {\r\n HOME: \"Home\",\r\n LINES: \"Production lines\",\r\n LINE: \"Production line\",\r\n LINEID: \"Production line ID\",\r\n OVERVIEWLINE: \"Production line overview\",\r\n LASTCHECK: \"Last check\",\r\n LAST_INSPECTED: \"Last inspection\",\r\n VIEW_ALL: \"View all\",\r\n CLEAR: \"Clear\",\r\n EDIT: \"Edit\",\r\n SAVE: \"Save\",\r\n JUST_CHANGED: \"All good\",\r\n BE_CAREFULL: \"Be carefull\",\r\n MUST_CHANGE: \"Must change\",\r\n CHANGE_STATUS_FOR_ENTIRE: \"Change status for entire\",\r\n NOW_ITS: \"now it's\",\r\n UNCHANGED: \"unchanged\",\r\n SEARCH: \"Search...\",\r\n GETQUOTE: \"Get quote\",\r\n HIDEQUOTE: \"Hide quote\",\r\n GETQUOTETOOLTIP: \"Receive quote to replace used spare parts\",\r\n INSPECT_BUTTON: \"Inspect button\",\r\n STATUS: \"Status\",\r\n AMOUNT: \"Amount\",\r\n TOTAL_LENGTH: \"Total length (mm)\",\r\n NOTES: \"Notes\",\r\n STOCK_LOCATION: \"Stock location\",\r\n TRACKS: \"Tracks\",\r\n SERIES: \"Series\",\r\n WIDTH: \"Width\",\r\n HIGH: \"High\",\r\n DIAMETER: \"Diameter\",\r\n OUTSIDE_DIAMETER: \"Outside diameter\",\r\n COLOR: \"Color\",\r\n RED: \"Red\",\r\n ORANGE: \"Orange\",\r\n GREEN: \"Green\",\r\n TOTAL: \"Total\",\r\n LENGTH: \"Length\",\r\n CONVEYOR: \"Conveyor\",\r\n SECTION: \"Section\",\r\n NAME: \"Name\",\r\n NUMBEROFTRACKS: \"number of tracks\",\r\n CATEGORIES: \"Categories\",\r\n ADD_EXTRA_NOTE_HERE: \"Add extra note here...\",\r\n CHOOSEFILEDROP: \"Choose a file or drop it here...\",\r\n OPEN: \"Open\",\r\n OPEN_PDF: \"Open .pdf\",\r\n MORE_PDF: \"Zoom, rotate & download PDF\",\r\n UPLOAD_PDF: \"Upload .pdf\",\r\n UPLOAD: \"Upload\",\r\n MAINTENANCE_HISTORY: \"Maintenance history\",\r\n MAINTENANCE: \"Maintenance log\",\r\n TERMSANDCONDITIONS: \"Terms and Conditions\",\r\n TERMSANDCONDITIONS_URL: \"https://app.max-lineconnected.com/media/Algemene%20voorwaarden%20241218%20v1%20Max-Line%20Maintenance%20and%20Trading%20BV-EN.pdf\",\r\n TECHNICALPARTS: \"Technical parts\",\r\n SEEDETAILS: \"See details\",\r\n PREV: \"Previous\",\r\n NEXT: \"Next\",\r\n SELECT: \"Select your language\"\r\n },\r\n PARTS: {\r\n PARTS: \"Parts\",\r\n Motor: \"Motor\",\r\n DriveBearing: \"Bearing(s)\",\r\n IdlerBearing: \"Idler Bearing\",\r\n ChainBelt: \"Chain & Belt\",\r\n DriveSprocket: \"Sprocket(s)\",\r\n IdlerSprocket: \"Idler Sprocket\",\r\n Curve: \"Curve\",\r\n Wearstrip: \"Wearstrip\",\r\n Roller: \"Roller\",\r\n Components: \"Components\"\r\n },\r\n FORM: {\r\n TO: \"To\",\r\n FROM: \"From\",\r\n SUBJECT: \"Subject\",\r\n SELECT_PARTS: \"Select parts\",\r\n MESSAGE: \"Message\"\r\n },\r\n MENU: {\r\n NEW: \"new\",\r\n ACTIONS: \"Actions\",\r\n CREATE_POST: \"Create New Post\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"Features\",\r\n APPS: \"Apps\",\r\n DASHBOARD: \"Dashboard\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"Or\",\r\n SUBMIT_BUTTON: \"Submit\",\r\n NO_ACCOUNT: \"Don't have an account?\",\r\n SIGNUP_BUTTON: \"Sign Up\",\r\n FORGOT_BUTTON: \"Forgot Password\",\r\n BACK_BUTTON: \"Back\",\r\n PRIVACY: \"Privacy\",\r\n LEGAL: \"Legal\",\r\n CONTACT: \"Contact\"\r\n },\r\n LOGIN: {\r\n TITLE: \"Login Account\",\r\n BUTTON: \"Sign In\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Forgot Password?\",\r\n DESC: \"Enter your email to reset your password\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Password\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"Username\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} is not valid\",\r\n REQUIRED: \"{{name}} is required\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n SHOP: \"Shop\",\r\n CATALOG: \"Your catalog\",\r\n SHOP_NOW: \"shop now\",\r\n WELCOME: \"Welcome\",\r\n ADDTOCART: \"Add to cart\",\r\n VIEW_PRODUCT: \"View product\",\r\n VIEW: \"View\",\r\n VIEW_ALL: \"View all\",\r\n MINIMUM_QUANTITIY: \"Minimum quantity to buy\",\r\n PRICE: \"Price\",\r\n PRODUCT_ADDED: \"Product added to cart\",\r\n ORDER: \"Order\",\r\n ORDERS: \"Orders\",\r\n ORDERS_STATUS: \"Orders status\",\r\n CART: \"Cart\",\r\n USER: \"User\",\r\n TOTAL_PRICE: \"Total price\",\r\n ORDER_OVERVIEW: \"Order overview\",\r\n CART_OVERVIEW: \"Your cart\",\r\n DATE: \"Date\",\r\n IN_PROGRESS: \"In progress\",\r\n APPROVED: \"Approved\",\r\n COMPLETED: \"Completed\",\r\n CANCELED: \"Canceled\",\r\n OPEN_ORDER_DETAILS: \"Open order details #\",\r\n PRODUCTS: \"Products\",\r\n QTY: \"Qty\",\r\n SU: \"SU\",\r\n DELETE: \"Delete\",\r\n PU: \"PU\",\r\n TOTAL: \"Totaal\",\r\n SUBTOTAL: \"Subtotaal\",\r\n TOTAL_EX_VAT: \"Totaal EX BTW\",\r\n CHECKOUT: \"Checkout\",\r\n YOUR_NOTE: \"Your note\",\r\n\t ADD_ORDER_NOTE: \"Add an order note here...\",\r\n\t PLACE_ORDER_NOW: \"Place order now\",\r\n\t EX_VAT_DELIVERY_MSG: \"Excludes VAT and delivery if applicable\",\r\n\t MY_CART: \"My cart\",\r\n\t CART_IS_EMPTY: \"Cart is empty\",\r\n\t PRODUCT_ADDED_TO_CART: \"Product added to cart\",\r\n\t REFRESH: \"Refresh\",\r\n\t CLOSE: \"Close\",\r\n\t PRINT_PDF: \"Print PDF\",\r\n\t NO_ORDERS_FOUND_PLACE_FIRST_ORDER: \"No orders were found, place your first order\",\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n CUSTOMERS: {\r\n CUSTOMERS: \"Customers\",\r\n CUSTOMERS_LIST: \"Customers list\",\r\n NEW_CUSTOMER: \"New Customer\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Customer Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\r\n WAIT_DESCRIPTION: \"Customer is deleting...\",\r\n MESSAGE: \"Customer has been deleted\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Customers Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\r\n WAIT_DESCRIPTION: \"Customers are deleting...\",\r\n MESSAGE: \"Selected customers have been deleted\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Status has been updated for selected customers\",\r\n MESSAGE: \"Selected customers status have successfully been updated\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Customer has been updated\",\r\n ADD_MESSAGE: \"Customer has been created\"\r\n }\r\n }\r\n }\r\n};\r\n","// China\r\nexport const locale = {\r\n TRANSLATOR: {\r\n SELECT: \"选择你的语言\"\r\n },\r\n MENU: {\r\n NEW: \"新\",\r\n ACTIONS: \"行动\",\r\n CREATE_POST: \"创建新帖子\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"特征\",\r\n APPS: \"应用\",\r\n DASHBOARD: \"仪表板\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"要么\",\r\n SUBMIT_BUTTON: \"提交\",\r\n NO_ACCOUNT: \"没有账号?\",\r\n SIGNUP_BUTTON: \"注册\",\r\n FORGOT_BUTTON: \"忘记密码\",\r\n BACK_BUTTON: \"背部\",\r\n PRIVACY: \"隐私\",\r\n LEGAL: \"法律\",\r\n CONTACT: \"联系\"\r\n },\r\n LOGIN: {\r\n TITLE: \"创建帐号\",\r\n BUTTON: \"签到\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Forgot Password?\",\r\n DESC: \"Enter your email to reset your password\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Password\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"用戶名\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} is not valid\",\r\n REQUIRED: \"{{name}} is required\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n ECOMMERCE: \"eCommerce\",\r\n CUSTOMERS: {\r\n CUSTOMERS: \"顾客\",\r\n CUSTOMERS_LIST: \"客户名单\",\r\n NEW_CUSTOMER: \"New Customer\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Customer Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\r\n WAIT_DESCRIPTION: \"Customer is deleting...\",\r\n MESSAGE: \"Customer has been deleted\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Customers Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\r\n WAIT_DESCRIPTION: \"Customers are deleting...\",\r\n MESSAGE: \"Selected customers have been deleted\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Status has been updated for selected customers\",\r\n MESSAGE: \"Selected customers status have successfully been updated\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Customer has been updated\",\r\n ADD_MESSAGE: \"Customer has been created\"\r\n }\r\n }\r\n }\r\n};\r\n","// Spain\r\nexport const locale = {\r\n TRANSLATOR: {\r\n SELECT: \"Elige tu idioma\"\r\n },\r\n MENU: {\r\n NEW: \"nuevo\",\r\n ACTIONS: \"Comportamiento\",\r\n CREATE_POST: \"Crear nueva publicación\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"Caracteristicas\",\r\n APPS: \"Aplicaciones\",\r\n DASHBOARD: \"Tablero\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"O\",\r\n SUBMIT_BUTTON: \"Enviar\",\r\n NO_ACCOUNT: \"No tienes una cuenta?\",\r\n SIGNUP_BUTTON: \"Regístrate\",\r\n FORGOT_BUTTON: \"Se te olvidó tu contraseña\",\r\n BACK_BUTTON: \"Espalda\",\r\n PRIVACY: \"Intimidad\",\r\n LEGAL: \"Legal\",\r\n CONTACT: \"Contacto\"\r\n },\r\n LOGIN: {\r\n TITLE: \"Crear una cuenta\",\r\n BUTTON: \"Registrarse\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Contraseña olvidada?\",\r\n DESC: \"Ingrese su correo electrónico para restablecer su contraseña\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Password\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"Usuario\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} is not valid\",\r\n REQUIRED: \"{{name}} is required\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n ECOMMERCE: \"eCommerce\",\r\n CUSTOMERS: {\r\n CUSTOMERS: \"Customers\",\r\n CUSTOMERS_LIST: \"Customers list\",\r\n NEW_CUSTOMER: \"New Customer\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Customer Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\r\n WAIT_DESCRIPTION: \"Customer is deleting...\",\r\n MESSAGE: \"Customer has been deleted\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Customers Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\r\n WAIT_DESCRIPTION: \"Customers are deleting...\",\r\n MESSAGE: \"Selected customers have been deleted\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Status has been updated for selected customers\",\r\n MESSAGE: \"Selected customers status have successfully been updated\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Customer has been updated\",\r\n ADD_MESSAGE: \"Customer has been created\"\r\n }\r\n }\r\n }\r\n};\r\n","// Japan\r\nexport const locale = {\r\n TRANSLATOR: {\r\n SELECT: \"あなたが使う言語を選んでください\"\r\n },\r\n MENU: {\r\n NEW: \"新しい\",\r\n ACTIONS: \"行動\",\r\n CREATE_POST: \"新しい投稿を作成\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"特徴\",\r\n APPS: \"アプリ\",\r\n DASHBOARD: \"ダッシュボード\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"または\",\r\n SUBMIT_BUTTON: \"提出する\",\r\n NO_ACCOUNT: \"アカウントを持っていない?\",\r\n SIGNUP_BUTTON: \"サインアップ\",\r\n FORGOT_BUTTON: \"パスワードをお忘れですか\",\r\n BACK_BUTTON: \"バック\",\r\n PRIVACY: \"プライバシー\",\r\n LEGAL: \"法的\",\r\n CONTACT: \"接触\"\r\n },\r\n LOGIN: {\r\n TITLE: \"Create Account\",\r\n BUTTON: \"Sign In\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Forgot Password?\",\r\n DESC: \"Enter your email to reset your password\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Password\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"ユーザー名\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} is not valid\",\r\n REQUIRED: \"{{name}} is required\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n ECOMMERCE: \"eCommerce\",\r\n CUSTOMERS: {\r\n CUSTOMERS: \"Customers\",\r\n CUSTOMERS_LIST: \"Customers list\",\r\n NEW_CUSTOMER: \"New Customer\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Customer Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\r\n WAIT_DESCRIPTION: \"Customer is deleting...\",\r\n MESSAGE: \"Customer has been deleted\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Customers Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\r\n WAIT_DESCRIPTION: \"Customers are deleting...\",\r\n MESSAGE: \"Selected customers have been deleted\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Status has been updated for selected customers\",\r\n MESSAGE: \"Selected customers status have successfully been updated\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Customer has been updated\",\r\n ADD_MESSAGE: \"Customer has been created\"\r\n }\r\n }\r\n }\r\n};\r\n","// Germany\r\nexport const locale = {\r\n TRANSLATOR: {\r\n SELECT: \"Wähle deine Sprache\"\r\n },\r\n MENU: {\r\n NEW: \"Neu\",\r\n ACTIONS: \"Aktionen\",\r\n CREATE_POST: \"Erstellen Sie einen neuen Beitrag\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"Eigenschaften\",\r\n APPS: \"Apps\",\r\n DASHBOARD: \"Instrumententafel\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"Oder\",\r\n SUBMIT_BUTTON: \"einreichen\",\r\n NO_ACCOUNT: \"Hast du kein Konto?\",\r\n SIGNUP_BUTTON: \"Anmelden\",\r\n FORGOT_BUTTON: \"Passwort vergessen\",\r\n BACK_BUTTON: \"Zurück\",\r\n PRIVACY: \"Privatsphäre\",\r\n LEGAL: \"Legal\",\r\n CONTACT: \"Kontakt\"\r\n },\r\n LOGIN: {\r\n TITLE: \"Create Account\",\r\n BUTTON: \"Sign In\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Forgot Password?\",\r\n DESC: \"Enter your email to reset your password\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Password\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"Nutzername\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} is not valid\",\r\n REQUIRED: \"{{name}} is required\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n ECOMMERCE: \"eCommerce\",\r\n CUSTOMERS: {\r\n CUSTOMERS: \"Customers\",\r\n CUSTOMERS_LIST: \"Customers list\",\r\n NEW_CUSTOMER: \"New Customer\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Customer Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\r\n WAIT_DESCRIPTION: \"Customer is deleting...\",\r\n MESSAGE: \"Customer has been deleted\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Customers Delete\",\r\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\r\n WAIT_DESCRIPTION: \"Customers are deleting...\",\r\n MESSAGE: \"Selected customers have been deleted\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Status has been updated for selected customers\",\r\n MESSAGE: \"Selected customers status have successfully been updated\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Customer has been updated\",\r\n ADD_MESSAGE: \"Customer has been created\"\r\n }\r\n }\r\n }\r\n};\r\n","// France\r\nexport const locale = {\r\n TRANSLATOR: {\r\n HOME: \"Accueil\",\r\n LINES: \"Lignes de production\",\r\n LINE: \"Ligne de production\",\r\n LINEID: \"Lijn ID\",\r\n OVERVIEWLINE: \"Ligne overview\",\r\n LASTCHECK: \"Dernier check\",\r\n LAST_INSPECTED: \"Dernière inspection\",\r\n VIEW_ALL: \"Voir tous\",\r\n CLEAR: \"Reset\",\r\n EDIT: \"Modifier\",\r\n SAVE: \"Enregistrer\",\r\n JUST_CHANGED: \"All good\",\r\n BE_CAREFULL: \"A Prévoir\",\r\n MUST_CHANGE: \"A changer\",\r\n CHANGE_STATUS_FOR_ENTIRE: \"Changer le statut complet du\",\r\n NOW_ITS: \"maintenant c'est\",\r\n UNCHANGED: \"inchangé\",\r\n SEARCH: \"Rechercher...\",\r\n GETQUOTE: \"Demander devis\",\r\n HIDEQUOTE: \"Masquer devis\",\r\n GETQUOTETOOLTIP: \"Recevez un devis pour remplacer vos pièces\",\r\n INSPECT_BUTTON: \"Inspecter\",\r\n STATUS: \"Statut\",\r\n AMOUNT: \"Nombre\",\r\n TOTAL_LENGTH: \"Longueur total (mm)\",\r\n NOTES: \"Commentaire\",\r\n STOCK_LOCATION: \"Point de stockage\",\r\n TRACKS: \"Piste(s)\",\r\n SERIES: \"Série\",\r\n WIDTH: \"Largeur\",\r\n HIGH: \"Hauteur\",\r\n DIAMETER: \"Diamètre\",\r\n OUTSIDE_DIAMETER: \"Diamètre ext\",\r\n COLOR: \"Couleur\",\r\n RED: \"Rouge\",\r\n ORANGE: \"Orange\",\r\n GREEN: \"Vert\",\r\n TOTAL: \"Total\",\r\n LENGTH: \"Longueur\",\r\n CONVEYOR: \"Conveyor\",\r\n SECTION: \"Section\",\r\n NAME: \"Nom\",\r\n NUMBEROFTRACKS: \"Nombre(s) de lignee(s)\",\r\n CATEGORIES: \"Catégories\",\r\n ADD_EXTRA_NOTE_HERE: \"Ajoutez un commentaire ici...\",\r\n CHOOSEFILEDROP: \"Déposez votre fichier ici...\",\r\n OPEN: \"Ouvrir\",\r\n OPEN_PDF: \"Open .pdf\",\r\n UPLOAD_PDF: \"Upload .pdf\",\r\n UPLOAD: \"Envoyer\",\r\n MAINTENANCE_HISTORY: \"Historique des maintenances\",\r\n MAINTENANCE: \"Maintenance\",\r\n TERMSANDCONDITIONS: \"Terms and Conditions\",\r\n TERMSANDCONDITIONS_URL: \"https://app.max-lineconnected.com/media/Algemene%20voorwaarden%20241218%20v1%20Max-Line%20Maintenance%20and%20Trading%20BV-EN.pdf\",\r\n TECHNICALPARTS: \"Technical parts\",\r\n SEEDETAILS: \"Plus d'info\",\r\n PREV: \"Précédent\",\r\n NEXT: \"Suivant\",\r\n SELECT: \"choisissez votre langue\"\r\n },\r\n PARTS: {\r\n PARTS: \"Parts\",\r\n Motor: \"Moteur\",\r\n DriveBearing: \"DriveBearing fr \",\r\n IdlerBearing: \"IdlerBearingfr \",\r\n ChainBelt: \"ChainBelt fr\",\r\n DriveSprocket: \"DriveSprocket fr\",\r\n IdlerSprocket: \"IdlerSprocket fr\",\r\n Curve: \"Curve fr\",\r\n Wearstrip: \"Wearstrip fr\",\r\n Roller: \"Roller fr\",\r\n Components: \"Components fr\"\r\n },\r\n FORM: {\r\n TO: \"De\",\r\n FROM: \"A\",\r\n SUBJECT: \"Objet\",\r\n SELECT_PARTS: \"Sélectionnez pièce(e)s\",\r\n MESSAGE: \"Message\"\r\n },\r\n MENU: {\r\n NEW: \"Nouveau\",\r\n ACTIONS: \"Actes\",\r\n CREATE_POST: \"Créer un nouveau Post\",\r\n PAGES: \"Pages\",\r\n FEATURES: \"Fonctionnalités\",\r\n APPS: \"Applications\",\r\n DASHBOARD: \"Tableau de Bord\"\r\n },\r\n AUTH: {\r\n GENERAL: {\r\n OR: \"Ou\",\r\n SUBMIT_BUTTON: \"Soumettre\",\r\n NO_ACCOUNT: \"Ne pas avoir de compte?\",\r\n SIGNUP_BUTTON: \"Registre\",\r\n FORGOT_BUTTON: \"Mot de passe oublié\",\r\n BACK_BUTTON: \"Back\",\r\n PRIVACY: \"Privacy\",\r\n LEGAL: \"Legal\",\r\n CONTACT: \"Contact\"\r\n },\r\n LOGIN: {\r\n TITLE: \"Créer un compte\",\r\n BUTTON: \"Sign In\"\r\n },\r\n FORGOT: {\r\n TITLE: \"Forgot Password?\",\r\n DESC: \"Enter your email to reset your password\",\r\n SUCCESS: \"Your account has been successfully reset.\"\r\n },\r\n REGISTER: {\r\n TITLE: \"Sign Up\",\r\n DESC: \"Enter your details to create your account\",\r\n SUCCESS: \"Your account has been successfuly registered.\"\r\n },\r\n INPUT: {\r\n EMAIL: \"Email\",\r\n FULLNAME: \"Fullname\",\r\n PASSWORD: \"Mot de passe\",\r\n CONFIRM_PASSWORD: \"Confirm Password\",\r\n USERNAME: \"Nom d'utilisateur\"\r\n },\r\n VALIDATION: {\r\n INVALID: \"{{name}} n'est pas valide\",\r\n REQUIRED: \"{{name}} est requis\",\r\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\r\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\r\n NOT_FOUND: \"The requested {{name}} is not found\",\r\n INVALID_LOGIN: \"The login detail is incorrect\",\r\n REQUIRED_FIELD: \"Required field\",\r\n MIN_LENGTH_FIELD: \"Minimum field length:\",\r\n MAX_LENGTH_FIELD: \"Maximum field length:\",\r\n INVALID_FIELD: \"Field is not valid\"\r\n }\r\n },\r\n ECOMMERCE: {\r\n SHOP: \"Shop\",\r\n CATALOG: \"Votre catalogue\",\r\n SHOP_NOW: \"visitez notre boutique\",\r\n WELCOME: \"Bienvenue\",\r\n ADDTOCART: \"ajouter au panier\",\r\n VIEW_PRODUCT: \"Voir produit\",\r\n VIEW: \"Voir\",\r\n VIEW_ALL: \"Voir tous\",\r\n MINIMUM_QUANTITIY: \"Quantités d'achat minimum\",\r\n PRICE: \"Prix\",\r\n PRODUCT_ADDED: \"Produit ajouté au panier\",\r\n ORDER: \"Commande\",\r\n ORDERS: \"Commandes\",\r\n ORDERS_STATUS: \"Vos commandes\",\r\n CART: \"Panier\",\r\n USER: \"Utilisateur\",\r\n TOTAL_PRICE: \"Prix total\",\r\n ORDER_OVERVIEW: \"Vos commandes\",\r\n CART_OVERVIEW: \"Votre panier\",\r\n DATE: \"Date\",\r\n IN_PROGRESS: \"En cours\",\r\n APPROVED: \"Approuvé\",\r\n COMPLETED: \"Terminé\",\r\n CANCELED: \"Annulé\",\r\n OPEN_ORDER_DETAILS: \"Afficher la commande #\",\r\n PRODUCTS: \"Produits\",\r\n QTY: \"Qte\",\r\n SU: \"UV\",\r\n DELETE: \"Suppr.\",\r\n PU: \"PU\",\r\n TOTAL: \"Total\",\r\n SUBTOTAL: \"Sous-total\",\r\n TOTAL_EX_VAT: \"Total HT\",\r\n CHECKOUT: \"Poursuivre\",\r\n\t YOUR_NOTE: \"Votre note\",\r\n\t ADD_ORDER_NOTE: \"Ajoutez une note pour votre commande...\",\r\n\t EX_VAT_DELIVERY_MSG: \"Prix HT et hors frais de livraison\",\r\n\t PLACE_ORDER_NOW: \"Passez commande\",\r\n\t MY_CART: \"Mon panier\",\r\n\t CART_IS_EMPTY: \"Votre panier est vide\",\r\n\t PRODUCT_ADDED_TO_CART: \"Produit ajouté au panier\",\r\n\t REFRESH: \"Actualiser\",\r\n\t CLOSE: \"Fermer\",\r\n\t PRINT_PDF: \"Imprimer PDF\",\r\n\t NO_ORDERS_FOUND_PLACE_FIRST_ORDER: \"Vous n'avez encore passé aucune commande\",\r\n COMMON: {\r\n SELECTED_RECORDS_COUNT: \"Nombre d'enregistrements sélectionnés: \",\r\n ALL: \"All\",\r\n SUSPENDED: \"Suspended\",\r\n ACTIVE: \"Active\",\r\n FILTER: \"Filter\",\r\n BY_STATUS: \"by Status\",\r\n BY_TYPE: \"by Type\",\r\n BUSINESS: \"Business\",\r\n INDIVIDUAL: \"Individual\",\r\n SEARCH: \"Search\",\r\n IN_ALL_FIELDS: \"in all fields\"\r\n },\r\n CUSTOMERS: {\r\n CUSTOMERS: \"Les clients\",\r\n CUSTOMERS_LIST: \"Liste des clients\",\r\n DELETE_CUSTOMER_SIMPLE: {\r\n TITLE: \"Suppression du client\",\r\n DESCRIPTION: \"Êtes-vous sûr de supprimer définitivement ce client?\",\r\n WAIT_DESCRIPTION: \"Le client est en train de supprimer ...\",\r\n MESSAGE: \"Le client a été supprimé\"\r\n },\r\n DELETE_CUSTOMER_MULTY: {\r\n TITLE: \"Supprimer les clients\",\r\n DESCRIPTION:\r\n \"Êtes-vous sûr de supprimer définitivement les clients sélectionnés?\",\r\n WAIT_DESCRIPTION: \"Les clients suppriment ...\",\r\n MESSAGE: \"Les clients sélectionnés ont été supprimés\"\r\n },\r\n UPDATE_STATUS: {\r\n TITLE: \"Le statut a été mis à jour pour les clients sélectionnés\",\r\n MESSAGE:\r\n \"Le statut des clients sélectionnés a été mis à jour avec succès\"\r\n },\r\n EDIT: {\r\n UPDATE_MESSAGE: \"Le client a été mis à jour\",\r\n ADD_MESSAGE: \"Le client a été créé\"\r\n }\r\n }\r\n }\r\n};\r\n","import Vue from \"vue\";\r\nimport VueI18n from \"vue-i18n\";\r\n\r\n// Localisation language list\r\nimport { locale as en } from \"@/core/config/i18n/en\";\r\nimport { locale as ch } from \"@/core/config/i18n/ch\";\r\nimport { locale as es } from \"@/core/config/i18n/es\";\r\nimport { locale as jp } from \"@/core/config/i18n/jp\";\r\nimport { locale as de } from \"@/core/config/i18n/de\";\r\nimport { locale as fr } from \"@/core/config/i18n/fr\";\r\n\r\nVue.use(VueI18n);\r\n\r\nlet messages = {};\r\nmessages = { ...messages, en, ch, es, jp, de, fr };\r\n\r\n// get current selected language\r\nconst lang = localStorage.getItem(\"language\") || \"en\";\r\n\r\n// Create VueI18n instance with options\r\nconst i18n = new VueI18n({\r\n locale: lang, // set locale\r\n messages // set locale messages\r\n});\r\n\r\nexport default i18n;\r\n","import Vue from \"vue\";\r\nimport Vuetify from \"vuetify/lib/framework\";\r\n\r\nVue.use(Vuetify);\r\n\r\nexport default new Vuetify({\r\n theme: {\r\n options: {\r\n customProperties: true\r\n },\r\n themes: {\r\n light: {\r\n primary: \"#5867dd\",\r\n secondary: \"#e8ecfa\",\r\n accent: \"#5d78ff\",\r\n error: \"#fd397a\",\r\n info: \"#5578eb\",\r\n success: \"#0abb87\",\r\n warning: \"#ffb822\"\r\n }\r\n }\r\n }\r\n});\r\n","import Vue from \"vue\";\r\nimport PortalVue from \"portal-vue\";\r\n\r\nVue.use(PortalVue);\r\n\r\nexport default PortalVue;\r\n","import Vue from \"vue\";\r\nimport { BootstrapVue, IconsPlugin } from \"bootstrap-vue\";\r\n\r\n// Install BootstrapVue\r\nVue.use(BootstrapVue);\r\n// Optionally install the BootstrapVue icon components plugin\r\nVue.use(IconsPlugin);\r\n","import Vue from \"vue\";\r\nimport PerfectScrollbar from \"vue2-perfect-scrollbar\";\r\n\r\n// Perfect scrollbar\r\nVue.use(PerfectScrollbar);\r\n","import Vue from \"vue\";\r\n// Highlight js\r\nimport VueHighlightJS from \"vue-highlight.js\";\r\n// Highlight.js languages (Only required languages)\r\nimport scss from \"highlight.js/lib/languages/scss\";\r\nimport javascript from \"highlight.js/lib/languages/javascript\";\r\nimport json from \"highlight.js/lib/languages/json\";\r\nimport vue from \"vue-highlight.js/lib/languages/vue\";\r\nimport \"highlight.js/styles/github-gist.css\";\r\n\r\n// highlight js\r\nVue.use(VueHighlightJS, {\r\n // Register only languages that you want\r\n languages: {\r\n scss,\r\n javascript,\r\n json,\r\n vue\r\n }\r\n});\r\n","import Vue from \"vue\";\r\nimport { InlineSvgPlugin } from \"vue-inline-svg\";\r\n\r\nVue.use(InlineSvgPlugin);\r\n","import Vue from \"vue\";\r\nimport VueApexCharts from \"vue-apexcharts\";\r\n\r\nVue.use(VueApexCharts);\r\n\r\nVue.component(\"apexchart\", VueApexCharts);\r\n","import Vue from \"vue\";\r\nimport Treeselect from \"@riophae/vue-treeselect\";\r\n\r\nVue.use(Treeselect);\r\n\r\nVue.component(\"treeselect\", Treeselect);\r\n","\"use strict\";\r\n\r\nvar KTLayoutContent = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height;\r\n\r\n\t\theight = KTUtil.getViewPort().height;\r\n\r\n if (_element) {\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n } \r\n\r\n height = height - KTLayoutHeader.getHeight();\r\n height = height - KTLayoutSubheader.getHeight();\r\n height = height - KTLayoutFooter.getHeight();\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutContent;","\"use strict\";\r\n\r\nvar KTLayoutFooter = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutFooter;","\"use strict\";\r\n\r\nvar KTLayoutStickyCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n var _object;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar offset = 300;\r\n\r\n\t\tif (typeof KTLayoutHeader !== 'undefined') {\r\n\t\t\toffset = KTLayoutHeader.getHeight();\r\n\t\t}\r\n\r\n _object = new KTCard(_element, {\r\n\t\t\tsticky: {\r\n\t\t\t\toffset: offset,\r\n\t\t\t\tzIndex: 90,\r\n\t\t\t\tposition: {\r\n\t\t\t\t\ttop: function() {\r\n\t\t\t\t\t\tvar pos = 0;\r\n var body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (typeof KTLayoutSubheader !== 'undefined' && KTLayoutSubheader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutSubheader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixedForMobile()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeightForMobile();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tpos = pos - 1; // remove header border width\r\n\r\n\t\t\t\t\t\treturn pos;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tleft: function(card) {\r\n\t\t\t\t\t\treturn KTUtil.offset(_element).left;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tright: function(card) {\r\n\t\t\t\t\t\tvar body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tvar cardWidth = parseInt(KTUtil.css(_element, 'width'));\r\n\t\t\t\t\t\tvar bodyWidth = parseInt(KTUtil.css(body, 'width'));\r\n\t\t\t\t\t\tvar cardOffsetLeft = KTUtil.offset(_element).left;\r\n\r\n\t\t\t\t\t\treturn bodyWidth - cardWidth - cardOffsetLeft;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_object.initSticky();\r\n\r\n\t\tKTUtil.addResizeHandler(function() {\r\n\t\t\t_object.updateSticky();\r\n\t\t});\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\tif (_object) {\r\n\t\t\t\t_object.updateSticky();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutStickyCard;","\"use strict\";\r\n\r\nvar KTLayoutStretchedCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar scroll = KTUtil.find(_element, '.card-scroll');\r\n\t\tvar cardBody = KTUtil.find(_element, '.card-body');\r\n\t\tvar cardHeader = KTUtil.find(_element, '.card-header');\r\n\r\n\t\tvar height = KTLayoutContent.getHeight();\r\n\r\n\t\theight = height - parseInt(KTUtil.actualHeight(cardHeader));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'marginTop')) - parseInt(KTUtil.css(_element, 'marginBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'paddingTop')) - parseInt(KTUtil.css(cardBody, 'paddingBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'marginTop')) - parseInt(KTUtil.css(cardBody, 'marginBottom'));\r\n\r\n\t\theight = height - 3;\r\n\r\n\t\tKTUtil.css(scroll, 'height', height + 'px');\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\r\n // Re-calculate on window resize\r\n KTUtil.addResizeHandler(function() {\r\n\t\t\t\t_init();\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\t_init();\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutStretchedCard;","\"use strict\";\r\n\r\nvar KTLayoutSubheader = function() {\r\n // Private properties\r\n var _element;\r\n\r\n // Private functions\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'subheader-fixed');\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutSubheader;","\"use strict\";\r\n\r\n// Class definition\r\nvar KTLayoutChat = function () {\r\n\t// Private functions\r\n\tvar _init = function (element) {\r\n\t\tvar scrollEl = KTUtil.find(element, '.scroll');\r\n\t\tvar cardBodyEl = KTUtil.find(element, '.card-body');\r\n\t\tvar cardHeaderEl = KTUtil.find(element, '.card-header');\r\n\t\tvar cardFooterEl = KTUtil.find(element, '.card-footer');\r\n\r\n\t\tif (!scrollEl) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// initialize perfect scrollbar(see: https://github.com/utatti/perfect-scrollbar)\r\n\t\tKTUtil.scrollInit(scrollEl, {\r\n\t\t\twindowScroll: false, // allow browser scroll when the scroll reaches the end of the side\r\n\t\t\tmobileNativeScroll: true, // enable native scroll for mobile\r\n\t\t\tdesktopNativeScroll: false, // disable native scroll and use custom scroll for desktop\r\n\t\t\tresetHeightOnDestroy: true, // reset css height on scroll feature destroyed\r\n\t\t\thandleWindowResize: true, // recalculate hight on window resize\r\n\t\t\trememberPosition: true, // remember scroll position in cookie\r\n\t\t\theight: function() { // calculate height\r\n\t\t\t\tvar height;\r\n\r\n\t\t\t\tif (KTUtil.isBreakpointDown('lg')) { // Mobile mode\r\n\t\t\t\t\treturn KTUtil.hasAttr(scrollEl, 'data-mobile-height') ? parseInt(KTUtil.attr(scrollEl, 'data-mobile-height')) : 400;\r\n\t\t\t\t} else if (KTUtil.isBreakpointUp('lg') && KTUtil.hasAttr(scrollEl, 'data-height')) { // Desktop Mode\r\n\t\t\t\t\treturn parseInt(KTUtil.attr(scrollEl, 'data-height'));\r\n\t\t\t\t} else {\r\n\t\t\t\t\theight = KTLayoutContent.getHeight();\r\n\r\n\t\t\t\t\tif (scrollEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(scrollEl, 'margin-top')) - parseInt(KTUtil.css(scrollEl, 'margin-bottom'));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cardHeaderEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardHeaderEl, 'height'));\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardHeaderEl, 'margin-top')) - parseInt(KTUtil.css(cardHeaderEl, 'margin-bottom'));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cardBodyEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardBodyEl, 'padding-top')) - parseInt(KTUtil.css(cardBodyEl, 'padding-bottom'));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cardFooterEl) {\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardFooterEl, 'height'));\r\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardFooterEl, 'margin-top')) - parseInt(KTUtil.css(cardFooterEl, 'margin-bottom'));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Remove additional space\r\n\t\t\t\theight = height - 2;\r\n\r\n\t\t\t\treturn height;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// attach events\r\n\t\tKTUtil.on(element, '.card-footer textarea', 'keydown', function(e) {\r\n\t\t\tif (e.keyCode == 13) {\r\n\t\t\t\t_handeMessaging(element);\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tKTUtil.on(element, '.card-footer .chat-send', 'click', function(e) {\r\n\t\t\t_handeMessaging(element);\r\n\t\t});\r\n\t}\r\n\r\n\tvar _handeMessaging = function(element) {\r\n\t\tvar messagesEl = KTUtil.find(element, '.messages');\r\n\t\tvar scrollEl = KTUtil.find(element, '.scroll');\r\n var textarea = KTUtil.find(element, 'textarea');\r\n\r\n if (textarea.value.length === 0 ) {\r\n return;\r\n }\r\n\r\n\t\tvar node = document.createElement(\"DIV\");\r\n\t\tKTUtil.addClass(node, 'd-flex flex-column mb-5 align-items-end');\r\n\r\n\t\tvar html = '';\r\n\t\thtml += '
';\r\n\t\thtml += '\t
';\r\n\t\thtml += '\t\t2 Hours';\r\n\t\thtml += '\t\tYou';\r\n\t\thtml += '\t
';\r\n\t\thtml += '\t
';\r\n\t\thtml += '\t\t\"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 KTLayoutQuickActions = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_actions_close',\r\n toggleBy: 'kt_quick_actions_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(content, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutQuickActions;","\"use strict\";\r\n\r\nvar KTLayoutQuickCartPanel = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_cart_close',\r\n toggleBy: 'kt_quick_cart_toggle'\r\n });\r\n\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n var wrapper = KTUtil.find(_element, '.offcanvas-wrapper');\r\n var footer = KTUtil.find(_element, '.offcanvas-footer');\r\n\r\n KTUtil.scrollInit(wrapper, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n if (wrapper) {\r\n height = height - parseInt(KTUtil.css(wrapper, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(wrapper, 'marginBottom'));\r\n }\r\n\r\n if (footer) {\r\n height = height - parseInt(KTUtil.actualHeight(footer));\r\n height = height - parseInt(KTUtil.css(footer, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(footer, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutQuickCartPanel;","\"use strict\";\r\n\r\nvar KTLayoutQuickNotifications = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_notifications_close',\r\n toggleBy: 'kt_quick_notifications_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(content, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutQuickNotifications;","\"use strict\";\r\n\r\nvar KTLayoutQuickPanel = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n var _notificationsElement;\r\n var _logsElement;\r\n var _settingsElement;\r\n\r\n // Private functions\r\n var _getContentHeight = function() {\r\n var height;\r\n\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n\r\n var _init = function() {\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_panel_close',\r\n toggleBy: 'kt_quick_panel_toggle'\r\n });\r\n }\r\n\r\n var _initNotifications = function() {\r\n KTUtil.scrollInit(_notificationsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _initLogs = function() {\r\n KTUtil.scrollInit(_logsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _initSettings = function() {\r\n KTUtil.scrollInit(_settingsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _updateScrollbars = function() {\r\n $(_element).find('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\r\n KTUtil.scrollUpdate(_notificationsElement);\r\n KTUtil.scrollUpdate(_logsElement);\r\n KTUtil.scrollUpdate(_settingsElement);\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n _notificationsElement = KTUtil.getById('kt_quick_panel_notifications');\r\n _logsElement = KTUtil.getById('kt_quick_panel_logs');\r\n _settingsElement = KTUtil.getById('kt_quick_panel_settings');\r\n\r\n _init();\r\n _initNotifications();\r\n _initLogs();\r\n _initSettings();\r\n\r\n \r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutQuickPanel;","\"use strict\";\r\n\r\nvar KTLayoutQuickSearch = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n var form = KTUtil.find(_element, '.quick-search-form');\r\n var results = KTUtil.find(_element, '.quick-search-wrapper');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_search_close',\r\n toggleBy: 'kt_quick_search_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(results, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n if (results) {\r\n height = height - parseInt(KTUtil.actualHeight(form));\r\n height = height - parseInt(KTUtil.css(form, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(form, 'marginBottom'));\r\n\r\n height = height - parseInt(KTUtil.css(results, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(results, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutQuickSearch;","\"use strict\";\r\n//\r\n// Handle User Quick Search For Dropdown, Inline and Offcanvas Search Panels\r\n//\r\n\r\nvar KTLayoutSearch = function() {\r\n // Private properties\r\n var _target;\r\n var _form;\r\n var _input;\r\n var _closeIcon;\r\n var _resultWrapper;\r\n var _resultDropdown;\r\n var _resultDropdownToggle;\r\n var _closeIconContainer;\r\n var _inputGroup;\r\n var _query = '';\r\n\r\n var _hasResult = false;\r\n var _timeout = false;\r\n var _isProcessing = false;\r\n var _requestTimeout = 200; // ajax request fire timeout in milliseconds\r\n var _spinnerClass = 'spinner spinner-sm spinner-primary';\r\n var _resultClass = 'quick-search-has-result';\r\n var _minLength = 2;\r\n\r\n // Private functions\r\n var _showProgress = function() {\r\n _isProcessing = true;\r\n KTUtil.addClass(_closeIconContainer, _spinnerClass);\r\n\r\n if (_closeIcon) {\r\n KTUtil.hide(_closeIcon);\r\n }\r\n }\r\n\r\n var _hideProgress = function() {\r\n _isProcessing = false;\r\n KTUtil.removeClass(_closeIconContainer, _spinnerClass);\r\n\r\n if (_closeIcon) {\r\n if (_input.value.length < _minLength) {\r\n KTUtil.hide(_closeIcon);\r\n } else {\r\n KTUtil.show(_closeIcon, 'flex');\r\n }\r\n }\r\n }\r\n\r\n var _showDropdown = function() {\r\n if (_resultDropdownToggle && !KTUtil.hasClass(_resultDropdown, 'show')) {\r\n $(_resultDropdownToggle).dropdown('toggle');\r\n $(_resultDropdownToggle).dropdown('update');\r\n }\r\n }\r\n\r\n var _hideDropdown = function() {\r\n if (_resultDropdownToggle && KTUtil.hasClass(_resultDropdown, 'show')) {\r\n $(_resultDropdownToggle).dropdown('toggle');\r\n }\r\n }\r\n\r\n var _processSearch = function() {\r\n if (_hasResult && _query === _input.value) {\r\n _hideProgress();\r\n KTUtil.addClass(_target, _resultClass);\r\n _showDropdown();\r\n KTUtil.scrollUpdate(_resultWrapper);\r\n\r\n return;\r\n }\r\n\r\n _query = _input.value;\r\n\r\n KTUtil.removeClass(_target, _resultClass);\r\n _showProgress();\r\n _hideDropdown();\r\n\r\n setTimeout(function() {\r\n $.ajax({\r\n url: HOST_URL + '/api/quick_search.php',\r\n data: {\r\n query: _query\r\n },\r\n dataType: 'html',\r\n success: function(res) {\r\n _hasResult = true;\r\n _hideProgress();\r\n KTUtil.addClass(_target, _resultClass);\r\n KTUtil.setHTML(_resultWrapper, res);\r\n _showDropdown();\r\n KTUtil.scrollUpdate(_resultWrapper);\r\n },\r\n error: function(res) {\r\n _hasResult = false;\r\n _hideProgress();\r\n KTUtil.addClass(_target, _resultClass);\r\n KTUtil.setHTML(_resultWrapper, 'Connection error. Please try again later..');\r\n _showDropdown();\r\n KTUtil.scrollUpdate(_resultWrapper);\r\n }\r\n });\r\n }, 1000);\r\n }\r\n\r\n var _handleCancel = function(e) {\r\n _input.value = '';\r\n _query = '';\r\n _hasResult = false;\r\n KTUtil.hide(_closeIcon);\r\n KTUtil.removeClass(_target, _resultClass);\r\n _hideDropdown();\r\n }\r\n\r\n var _handleSearch = function() {\r\n if (_input.value.length < _minLength) {\r\n _hideProgress();\r\n _hideDropdown();\r\n\r\n return;\r\n }\r\n\r\n if (_isProcessing == true) {\r\n return;\r\n }\r\n\r\n if (_timeout) {\r\n clearTimeout(_timeout);\r\n }\r\n\r\n _timeout = setTimeout(function() {\r\n _processSearch();\r\n }, _requestTimeout);\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _target = KTUtil.getById(id);\r\n\r\n if (!_target) {\r\n return;\r\n }\r\n\r\n _form = KTUtil.find(_target, '.quick-search-form');\r\n _input = KTUtil.find(_target, '.form-control');\r\n _closeIcon = KTUtil.find(_target, '.quick-search-close');\r\n _resultWrapper = KTUtil.find(_target, '.quick-search-wrapper');\r\n _resultDropdown = KTUtil.find(_target, '.dropdown-menu');\r\n _resultDropdownToggle = KTUtil.find(_target, '[data-toggle=\"dropdown\"]');\r\n _inputGroup = KTUtil.find(_target, '.input-group');\r\n _closeIconContainer = KTUtil.find(_target, '.input-group .input-group-append');\r\n\r\n // Attach input keyup handler\r\n KTUtil.addEvent(_input, 'keyup', _handleSearch);\r\n KTUtil.addEvent(_input, 'focus', _handleSearch);\r\n\r\n // Prevent enter click\r\n _form.onkeypress = function(e) {\r\n var key = e.charCode || e.keyCode || 0;\r\n if (key == 13) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n KTUtil.addEvent(_closeIcon, 'click', _handleCancel);\r\n }\r\n };\r\n};\r\n\r\n\r\n\r\nvar KTLayoutSearchInline = KTLayoutSearch;\r\nvar KTLayoutSearchOffcanvas = KTLayoutSearch;\r\n\nexport default KTLayoutSearch;","// Keenthemes plugins\r\nimport KTUtil from \"@/assets/js/components/util.js\";\r\nwindow.KTUtil = KTUtil;\r\n\r\nimport KTCard from \"@/assets/js/components/card.js\";\r\nwindow.KTCard = KTCard;\r\n\r\nimport KTCookie from \"@/assets/js/components/cookie.js\";\r\nwindow.KTCookie = KTCookie;\r\n\r\nimport KTDialog from \"@/assets/js/components/dialog.js\";\r\nwindow.KTDialog = KTDialog;\r\n\r\nimport KTHeader from \"@/assets/js/components/header.js\";\r\nwindow.KTHeader = KTHeader;\r\n\r\nimport KTImageInput from \"@/assets/js/components/image-input.js\";\r\nwindow.KTImageInput = KTImageInput;\r\n\r\nimport KTMenu from \"@/assets/js/components/menu.js\";\r\nwindow.KTMenu = KTMenu;\r\n\r\nimport KTOffcanvas from \"@/assets/js/components/offcanvas.js\";\r\nwindow.KTOffcanvas = KTOffcanvas;\r\n\r\nimport KTScrolltop from \"@/assets/js/components/scrolltop.js\";\r\nwindow.KTScrolltop = KTScrolltop;\r\n\r\nimport KTToggle from \"@/assets/js/components/toggle.js\";\r\nwindow.KTToggle = KTToggle;\r\n\r\nimport KTWizard from \"@/assets/js/components/wizard.js\";\r\nwindow.KTWizard = KTWizard;\r\n\r\n// Metronic layout base js\r\nimport KTLayoutAside from \"@/assets/js/layout/base/aside.js\";\r\nwindow.KTLayoutAside = KTLayoutAside;\r\n\r\nimport KTLayoutAsideMenu from \"@/assets/js/layout/base/aside-menu.js\";\r\nwindow.KTLayoutAsideMenu = KTLayoutAsideMenu;\r\n\r\nimport KTLayoutContent from \"@/assets/js/layout/base/content.js\";\r\nwindow.KTLayoutContent = KTLayoutContent;\r\n\r\nimport KTLayoutFooter from \"@/assets/js/layout/base/footer.js\";\r\nwindow.KTLayoutFooter = KTLayoutFooter;\r\n\r\nimport KTLayoutHeader from \"@/assets/js/layout/base/header.js\";\r\nwindow.KTLayoutHeader = KTLayoutHeader;\r\n\r\nimport KTLayoutHeaderMenu from \"@/assets/js/layout/base/header-menu.js\";\r\nwindow.KTLayoutHeaderMenu = KTLayoutHeaderMenu;\r\n\r\nimport KTLayoutHeaderTopbar from \"@/assets/js/layout/base/header-topbar.js\";\r\nwindow.KTLayoutHeaderTopbar = KTLayoutHeaderTopbar;\r\n\r\nimport KTLayoutStickyCard from \"@/assets/js/layout/base/sticky-card.js\";\r\nwindow.KTLayoutStickyCard = KTLayoutStickyCard;\r\n\r\nimport KTLayoutStretchedCard from \"@/assets/js/layout/base/stretched-card.js\";\r\nwindow.KTLayoutStretchedCard = KTLayoutStretchedCard;\r\n\r\nimport KTLayoutSubheader from \"@/assets/js/layout/base/subheader.js\";\r\nwindow.KTLayoutSubheader = KTLayoutSubheader;\r\n\r\n// Metronic layout extended js\r\nimport KTLayoutChat from \"@/assets/js/layout/extended/chat.js\";\r\nwindow.KTLayoutChat = KTLayoutChat;\r\n\r\nimport KTLayoutExamples from \"@/assets/js/layout/extended/examples.js\";\r\nwindow.KTLayoutExamples = KTLayoutExamples;\r\n\r\nimport KTLayoutQuickActions from \"@/assets/js/layout/extended/quick-actions.js\";\r\nwindow.KTLayoutQuickActions = KTLayoutQuickActions;\r\n\r\nimport KTLayoutQuickCartPanel from \"@/assets/js/layout/extended/quick-cart.js\";\r\nwindow.KTLayoutQuickCartPanel = KTLayoutQuickCartPanel;\r\n\r\nimport KTLayoutQuickNotifications from \"@/assets/js/layout/extended/quick-notifications.js\";\r\nwindow.KTLayoutQuickNotifications = KTLayoutQuickNotifications;\r\n\r\nimport KTLayoutQuickPanel from \"@/assets/js/layout/extended/quick-panel.js\";\r\nwindow.KTLayoutQuickPanel = KTLayoutQuickPanel;\r\n\r\nimport KTLayoutQuickSearch from \"@/assets/js/layout/extended/quick-search.js\";\r\nwindow.KTLayoutQuickSearch = KTLayoutQuickSearch;\r\n\r\nimport KTLayoutQuickUser from \"@/assets/js/layout/extended/quick-user.js\";\r\nwindow.KTLayoutQuickUser = KTLayoutQuickUser;\r\n\r\nimport KTLayoutScrolltop from \"@/assets/js/layout/extended/scrolltop.js\";\r\nwindow.KTLayoutScrolltop = KTLayoutScrolltop;\r\n\r\nimport KTLayoutSearch from \"@/assets/js/layout/extended/search.js\";\r\nwindow.KTLayoutSearch = KTLayoutSearch;\r\n","import Vue from \"vue\";\r\nimport App from \"./App.vue\";\r\nimport router from \"./router\";\r\nimport store from \"@/core/services/store\";\r\n// import ApiService from \"@/core/services/api.service\";\r\n// import MockService from \"@/core/mock/mock.service\";\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 i18n from \"@/core/plugins/vue-i18n\";\r\nimport vuetify from \"@/core/plugins/vuetify\";\r\nimport \"@/core/plugins/portal-vue\";\r\nimport \"@/core/plugins/bootstrap-vue\";\r\nimport \"@/core/plugins/perfect-scrollbar\";\r\nimport \"@/core/plugins/highlight-js\";\r\nimport \"@/core/plugins/inline-svg\";\r\nimport \"@/core/plugins/apexcharts\";\r\nimport \"@/core/plugins/treeselect\";\r\nimport \"@/core/plugins/metronic\";\r\nimport \"@mdi/font/css/materialdesignicons.css\";\r\nimport axios from 'axios';\r\n\r\nif (window.location.hostname === \"localhost\") {\r\n // axios.defaults.baseURL = 'http://localhost:5000/api';\r\n // axios.defaults.baseURL = 'http://localhost:63303/api';\r\n axios.defaults.baseURL = 'https://api.maxline.z-solutions.nl/api';\r\n}\r\nelse {\r\n axios.defaults.baseURL = 'https://api.maxline.z-solutions.nl/api';\r\n}\r\n\r\naxios.interceptors.request.use(function (config) {\r\n const token = localStorage.getItem('access_token');\r\n if (token) {\r\n config.headers.Authorization = `Bearer ${token}`;\r\n }\r\n return config;\r\n}, function (err) {\r\n return Promise.reject(err);\r\n});\r\n\r\n// API service init\r\n// ApiService.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 // Ensure we checked auth before each page load.\r\n Promise.all([store.dispatch(VERIFY_AUTH)]).then(next);\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\nnew Vue({\r\n router,\r\n store,\r\n i18n,\r\n vuetify,\r\n render: h => h(App)\r\n}).$mount(\"#app\");\r\n","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","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;","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 profile from \"./profile.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 profile\r\n }\r\n});\r\n","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTMenu = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n // scrollable area with Perfect Scroll\r\n scroll: {\r\n rememberPosition: false\r\n },\r\n\r\n // accordion submenu mode\r\n accordion: {\r\n slideSpeed: 200, // accordion toggle slide speed in milliseconds\r\n autoScroll: false, // enable auto scrolling(focus) to the clicked menu item\r\n autoScrollSpeed: 1200,\r\n expandAll: true // allow having multiple expanded accordions in the menu\r\n },\r\n\r\n // dropdown submenu mode\r\n dropdown: {\r\n timeout: 500 // timeout in milliseconds to show and hide the hoverable submenu dropdown\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {KTMenu}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('menu')) {\r\n the = KTUtil.data(element).get('menu');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n the.eventHandlers = {};\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n the.uid = KTUtil.getUniqueID();\r\n },\r\n\r\n update: function(options) {\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n the.eventHandlers = {};\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n },\r\n\r\n reload: function() {\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n // reset submenu props\r\n Plugin.resetSubmenuProps();\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n build: function() {\r\n // General accordion submenu toggle\r\n the.eventHandlers['event_1'] = KTUtil.on( element, '.menu-toggle', 'click', Plugin.handleSubmenuAccordion);\r\n\r\n // Dropdown mode(hoverable)\r\n if (Plugin.getSubmenuMode() === 'dropdown' || Plugin.isConditionalSubmenuDropdown()) {\r\n // dropdown submenu - hover toggle\r\n the.eventHandlers['event_2'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseover', Plugin.handleSubmenuDrodownHoverEnter);\r\n the.eventHandlers['event_3'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseout', Plugin.handleSubmenuDrodownHoverExit);\r\n\r\n // dropdown submenu - click toggle\r\n the.eventHandlers['event_4'] = KTUtil.on( element, '[data-menu-toggle=\"click\"] > .menu-toggle, [data-menu-toggle=\"click\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownClick);\r\n the.eventHandlers['event_5'] = KTUtil.on( element, '[data-menu-toggle=\"tab\"] > .menu-toggle, [data-menu-toggle=\"tab\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownTabClick);\r\n }\r\n\r\n // Handle general link click\r\n the.eventHandlers['event_6'] = KTUtil.on(element, '.menu-item > .menu-link:not(.menu-toggle):not(.menu-link-toggle-skip)', 'click', Plugin.handleLinkClick);\r\n\r\n // Init scrollable menu\r\n if (the.options.scroll && the.options.scroll.height) {\r\n Plugin.scrollInit();\r\n }\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n reset: function() {\r\n KTUtil.off( element, 'click', the.eventHandlers['event_1']);\r\n\r\n // dropdown submenu - hover toggle\r\n KTUtil.off( element, 'mouseover', the.eventHandlers['event_2']);\r\n KTUtil.off( element, 'mouseout', the.eventHandlers['event_3']);\r\n\r\n // dropdown submenu - click toggle\r\n KTUtil.off( element, 'click', the.eventHandlers['event_4']);\r\n KTUtil.off( element, 'click', the.eventHandlers['event_5']);\r\n\r\n // handle link click\r\n KTUtil.off(element, 'click', the.eventHandlers['event_6']);\r\n },\r\n\r\n /**\r\n * Init scroll menu\r\n *\r\n */\r\n scrollInit: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollDestroy(element, true);\r\n KTUtil.scrollInit(element, {mobileNativeScroll: true, windowScroll: false, resetHeightOnDestroy: true, handleWindowResize: true, height: the.options.scroll.height, rememberPosition: the.options.scroll.rememberPosition});\r\n } else {\r\n KTUtil.scrollDestroy(element, true);\r\n }\r\n },\r\n\r\n /**\r\n * Update scroll menu\r\n */\r\n scrollUpdate: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollUpdate(element);\r\n }\r\n },\r\n\r\n /**\r\n * Scroll top\r\n */\r\n scrollTop: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollTop(element);\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n getSubmenuMode: function(el) {\r\n if ( KTUtil.isBreakpointUp('lg') ) {\r\n if (el && KTUtil.hasAttr(el, 'data-menu-toggle') && KTUtil.attr(el, 'data-menu-toggle') == 'hover') {\r\n return 'dropdown';\r\n }\r\n\r\n if ( KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n if ( KTUtil.hasClasses(body, the.options.submenu.desktop.state.body) ) {\r\n return the.options.submenu.desktop.state.mode;\r\n } else {\r\n return the.options.submenu.desktop.default;\r\n }\r\n } else if ( KTUtil.isset(the.options.submenu, 'desktop') ) {\r\n return the.options.submenu.desktop;\r\n }\r\n } else if ( KTUtil.isBreakpointUp('md') && KTUtil.isBreakpointDown('lg') && KTUtil.isset(the.options.submenu, 'tablet') ) {\r\n return the.options.submenu.tablet;\r\n } else if ( KTUtil.isBreakpointDown('md') && KTUtil.isset(the.options.submenu, 'mobile') ) {\r\n return the.options.submenu.mobile;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n isConditionalSubmenuDropdown: function() {\r\n if ( KTUtil.isBreakpointUp('lg') && KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n\r\n /**\r\n * Reset submenu attributes\r\n * @returns {KTMenu}\r\n */\r\n resetSubmenuProps: function(e) {\r\n var submenus = KTUtil.findAll(element, '.menu-submenu');\r\n if ( submenus ) {\r\n for (var i = 0, len = submenus.length; i < len; i++) {\r\n var submenu = submenus[0];\r\n\r\n KTUtil.css(submenu, 'display', '');\r\n KTUtil.css(submenu, 'overflow', '');\r\n\r\n if (submenu.hasAttribute('data-hor-direction')) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-left');\r\n KTUtil.removeClass(submenu, 'menu-submenu-right');\r\n KTUtil.addClass(submenu, submenu.getAttribute('data-hor-direction'));\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverEnter: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n item.removeAttribute('data-hover');\r\n clearTimeout( item.getAttribute('data-timeout') );\r\n item.removeAttribute('data-timeout');\r\n }\r\n\r\n Plugin.showSubmenuDropdown(item);\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverExit: function(e) {\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n var time = the.options.dropdown.timeout;\r\n\r\n var timeout = setTimeout(function() {\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n }, time);\r\n\r\n item.setAttribute('data-hover', '1');\r\n item.setAttribute('data-timeout', timeout);\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClick: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( item.getAttribute('data-menu-submenu-mode') == 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( KTUtil.hasClass(item, 'menu-item-hover') === false ) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n } else {\r\n KTUtil.removeClass(item, 'menu-item-open-dropdown' );\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles tab click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownTabClick: function(e) {\r\n if (Plugin.getSubmenuMode(this) === 'accordion') {\r\n return;\r\n }\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if (item.getAttribute('data-menu-submenu-mode') == 'accordion') {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(item, 'menu-item-hover') == false) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles link click\r\n * @returns {KTMenu}\r\n */\r\n handleLinkClick: function(e) {\r\n var submenu = this.closest('.menu-item.menu-item-submenu');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('linkClick', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( submenu && Plugin.getSubmenuMode(submenu) === 'dropdown' ) {\r\n Plugin.hideSubmenuDropdowns();\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu dropdown close on link click\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClose: function(e, el) {\r\n // exit if its not submenu dropdown mode\r\n if (Plugin.getSubmenuMode(el) === 'accordion') {\r\n return;\r\n }\r\n\r\n var shown = element.querySelectorAll('.menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)');\r\n\r\n // check if currently clicked link's parent item ha\r\n if (shown.length > 0 && KTUtil.hasClass(el, 'menu-toggle') === false && el.querySelectorAll('.menu-toggle').length === 0) {\r\n // close opened dropdown menus\r\n for (var i = 0, len = shown.length; i < len; i++) {\r\n Plugin.hideSubmenuDropdown(shown[0], true);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * helper functions\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuAccordion: function(e, el) {\r\n var query;\r\n var item = el ? el : this;\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(el) === 'dropdown' && (query = item.closest('.menu-item') ) ) {\r\n if (query.getAttribute('data-menu-submenu-mode') != 'accordion' ) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n var li = item.closest('.menu-item');\r\n var submenu = KTUtil.child(li, '.menu-submenu, .menu-inner');\r\n\r\n if (KTUtil.hasClass(item.closest('.menu-item'), 'menu-item-open-always')) {\r\n return;\r\n }\r\n\r\n if ( li && submenu ) {\r\n e.preventDefault();\r\n var speed = the.options.accordion.slideSpeed;\r\n var hasClosables = false;\r\n\r\n if ( KTUtil.hasClass(li, 'menu-item-open') === false ) {\r\n // hide other accordions\r\n if ( the.options.accordion.expandAll === false ) {\r\n var subnav = item.closest('.menu-nav, .menu-subnav');\r\n var closables = KTUtil.children(subnav, '.menu-item.menu-item-open.menu-item-submenu:not(.menu-item-here):not(.menu-item-open-always)');\r\n\r\n if ( subnav && closables ) {\r\n for (var i = 0, len = closables.length; i < len; i++) {\r\n var el_ = closables[0];\r\n var submenu_ = KTUtil.child(el_, '.menu-submenu');\r\n if ( submenu_ ) {\r\n KTUtil.slideUp(submenu_, speed, function() {\r\n Plugin.scrollUpdate();\r\n KTUtil.removeClass(el_, 'menu-item-open');\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n KTUtil.slideDown(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.scrollUpdate();\r\n\r\n Plugin.eventTrigger('submenuToggle', submenu, e);\r\n });\r\n\r\n KTUtil.addClass(li, 'menu-item-open');\r\n\r\n } else {\r\n KTUtil.slideUp(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.scrollUpdate();\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 Vue.axios.defaults.baseURL = \"http://localhost\";\r\n },\r\n\r\n /**\r\n * Set the default HTTP request headers\r\n */\r\n setHeader() {\r\n Vue.axios.defaults.headers.common[\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 JwtService from \"@/core/services/jwt.service\";\r\nimport axios from 'axios';\r\nimport jwt_decode from \"jwt-decode\";\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_PASSWORD = \"updateUser\";\r\n\r\n// mutation types\r\nexport const PURGE_AUTH = \"logOut\";\r\nexport const SET_AUTH = \"setUser\";\r\nexport const SET_PASSWORD = \"setPassword\";\r\nexport const SET_ERROR = \"setError\";\r\n\r\nconst state = {\r\n errors: null,\r\n user: {},\r\n isAuthenticated: !!JwtService.getToken()\r\n};\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 axios.post('/user/login', credentials)\r\n .then(({data}) => {\r\n // console.log()\r\n localStorage.setItem('access_token', data.accessToken)\r\n const user = {\r\n email: data.user.email,\r\n password: data.user.password,\r\n token: data.accessToken\r\n };\r\n context.commit(SET_AUTH, user);\r\n resolve(user);\r\n })\r\n .catch(({ response }) => {\r\n context.commit(SET_ERROR, response.data.errors);\r\n });\r\n // ApiService.post(\"login\", credentials)\r\n // .then(({ data }) => {\r\n // // console.log(\"Here what post returns\", 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 => {\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 [VERIFY_AUTH](context) {\r\n const token = JwtService.getToken();\r\n if (token) {\r\n const user = jwt_decode(token);\r\n if(user) {\r\n const userObject = {\r\n email: user.emailaddress,\r\n token: token\r\n };\r\n context.commit(SET_AUTH, userObject);\r\n } else {\r\n context.commit(SET_ERROR, \"Geen token\");\r\n }\r\n\r\n // ApiService.setHeader();\r\n // ApiService.get(\"verify\")\r\n // .then(({ data }) => {\r\n // console.log(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_PASSWORD](context, payload) {\r\n const password = payload;\r\n\r\n return ApiService.put(\"password\", password).then(({ data }) => {\r\n context.commit(SET_PASSWORD, 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 = true;\r\n state.user = user;\r\n state.errors = {};\r\n JwtService.saveToken(state.user.token);\r\n },\r\n [SET_PASSWORD](state, password) {\r\n state.user.password = password;\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 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\";\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 navigation: true\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 if (the.options.navigation) {\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 // 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 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\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;","// action types\r\nexport const UPDATE_PERSONAL_INFO = \"updateUserPersonalInfo\";\r\nexport const UPDATE_ACCOUNT_INFO = \"updateUserAccountInfo\";\r\n\r\n// mutation types\r\nexport const SET_PERSONAL_INFO = \"setPersonalInfo\";\r\nexport const SET_ACCOUNT_INFO = \"setAccountInfo\";\r\n\r\nconst state = {\r\n user_personal_info: {\r\n photo: \"media/users/300_21.jpg\",\r\n name: \"James\",\r\n surname: \"Jones\",\r\n company_name: \"Fifestudios\",\r\n job: \"Application Developer\",\r\n email: \"matt@fifestudios.com\",\r\n phone: \"44(76)34254578\",\r\n company_site: \"fifestudios\"\r\n },\r\n user_account_info: {\r\n username: \"nick84\",\r\n email: \"nick.watson@loop.com\",\r\n language: \"English\",\r\n time_zone: \"(GMT-11:00) Midway Island\",\r\n communication: {\r\n email: true,\r\n sms: true,\r\n phone: false\r\n },\r\n verification: true\r\n }\r\n};\r\n\r\nconst getters = {\r\n currentUserPersonalInfo(state) {\r\n return state.user_personal_info;\r\n },\r\n\r\n currentUserAccountInfo(state) {\r\n return state.user_account_info;\r\n },\r\n\r\n currentUserPhoto(state) {\r\n return state.user_personal_info.photo;\r\n }\r\n};\r\n\r\nconst actions = {\r\n [UPDATE_PERSONAL_INFO](context, payload) {\r\n context.commit(SET_PERSONAL_INFO, payload);\r\n },\r\n [UPDATE_ACCOUNT_INFO](context, payload) {\r\n context.commit(SET_ACCOUNT_INFO, payload);\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [SET_PERSONAL_INFO](state, user_personal_info) {\r\n state.user_personal_info = user_personal_info;\r\n },\r\n [SET_ACCOUNT_INFO](state, user_account_info) {\r\n state.user_account_info = user_account_info;\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\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 // 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 if (!obj) continue;\r\n\r\n for (var key in obj) {\r\n if (!obj.hasOwnProperty(key)) {\r\n continue;\r\n }\r\n\r\n // based on https://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/\r\n if ( Object.prototype.toString.call(obj[key]) === '[object Object]' ) {\r\n out[key] = KTUtil.deepExtend(out[key], obj[key]);\r\n continue;\r\n }\r\n\r\n out[key] = obj[key];\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\nexport default KTUtil;","\"use strict\";\r\n\r\nvar KTLayoutExamples = function() {\r\n\r\n var initDefaultMode = function(element) {\r\n var elements = element;\r\n if (typeof elements === 'undefined') {\r\n elements = document.querySelectorAll('.example:not(.example-compact):not(.example-hover):not(.example-basic)');\r\n }\r\n\r\n if (elements && elements.length > 0 ) {\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 if (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 }\r\n\r\n var initCompactMode = function(element) {\r\n var example,code,toggle,copy, clipboard;\r\n\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 if (elements && elements.length > 0 ) {\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 if (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 }\r\n\r\n return {\r\n init: function(element, options) {\r\n initDefaultMode(element);\r\n initCompactMode(element);\r\n }\r\n };\r\n}();\r\n\r\n\r\n\nexport default KTLayoutExamples;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTOffcanvas = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n attrCustom: ''\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('offcanvas')) {\r\n the = KTUtil.data(element).get('offcanvas');\r\n } else {\r\n // Reset offcanvas\r\n Plugin.init(options);\r\n\r\n // Build offcanvas\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('offcanvas', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n the.classBase = the.options.baseClass;\r\n the.attrCustom = the.options.attrCustom;\r\n the.classShown = the.classBase + '-on';\r\n the.classOverlay = the.classBase + '-overlay';\r\n the.target;\r\n\r\n the.state = KTUtil.hasClass(element, the.classShown) ? 'shown' : 'hidden';\r\n },\r\n\r\n build: function() {\r\n // offcanvas toggle\r\n if (the.options.toggleBy) {\r\n if (typeof the.options.toggleBy === 'string') {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n } else if (the.options.toggleBy && the.options.toggleBy[0]) {\r\n if (the.options.toggleBy[0].target) {\r\n for (var i in the.options.toggleBy) {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i].target), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n } else {\r\n for (var i in the.options.toggleBy) {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i]), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n }\r\n\r\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\r\n KTUtil.addEvent( KTUtil.getById(the.options.toggleBy.target), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n }\r\n\r\n // offcanvas close\r\n var closeBy = KTUtil.getById(the.options.closeBy);\r\n if (closeBy) {\r\n KTUtil.addEvent(closeBy, 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.hide();\r\n });\r\n }\r\n },\r\n\r\n isShown: function() {\r\n return (the.state == 'shown' ? true : false);\r\n },\r\n\r\n toggle: function() {\r\n Plugin.eventTrigger('toggle');\r\n\r\n if (the.state == 'shown') {\r\n Plugin.hide();\r\n } else {\r\n Plugin.show();\r\n }\r\n },\r\n\r\n show: function() {\r\n if (the.state == 'shown') {\r\n return;\r\n }\r\n\r\n Plugin.eventTrigger('beforeShow');\r\n\r\n Plugin.toggleClass('show');\r\n\r\n // Offcanvas panel\r\n KTUtil.attr(body, 'data-offcanvas-' + the.classBase, 'on');\r\n KTUtil.addClass(element, the.classShown);\r\n\r\n if (the.attrCustom.length > 0) {\r\n KTUtil.attr(body, 'data-offcanvas-' + the.classCustom, 'on');\r\n //KTUtil.addClass(body, the.classCustom);\r\n }\r\n\r\n the.state = 'shown';\r\n\r\n if (the.options.overlay) {\r\n the.overlay = KTUtil.insertAfter(document.createElement('DIV') , element );\r\n KTUtil.addClass(the.overlay, the.classOverlay);\r\n\r\n KTUtil.addEvent(the.overlay, 'click', function(e) {\r\n //e.stopPropagation();\r\n e.preventDefault();\r\n Plugin.hide(the.target);\r\n });\r\n }\r\n\r\n Plugin.eventTrigger('afterShow');\r\n },\r\n\r\n hide: function() {\r\n if (the.state == 'hidden') {\r\n return;\r\n }\r\n\r\n Plugin.eventTrigger('beforeHide');\r\n\r\n Plugin.toggleClass('hide');\r\n\r\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.classBase);\r\n KTUtil.removeClass(element, the.classShown);\r\n\r\n if (the.attrCustom.length > 0) {\r\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.attrCustom);\r\n }\r\n\r\n the.state = 'hidden';\r\n\r\n if (the.options.overlay && the.overlay) {\r\n KTUtil.remove(the.overlay);\r\n }\r\n\r\n Plugin.eventTrigger('afterHide');\r\n },\r\n\r\n toggleClass: function(mode) {\r\n var id = KTUtil.attr(the.target, 'id');\r\n var toggleBy;\r\n\r\n if (the.options.toggleBy && the.options.toggleBy[0] && the.options.toggleBy[0].target) {\r\n for (var i in the.options.toggleBy) {\r\n if (the.options.toggleBy[i].target === id) {\r\n toggleBy = the.options.toggleBy[i];\r\n }\r\n }\r\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\r\n toggleBy = the.options.toggleBy;\r\n }\r\n\r\n if (toggleBy) {\r\n var el = KTUtil.getById(toggleBy.target);\r\n\r\n if (mode === 'show') {\r\n KTUtil.addClass(el, toggleBy.state);\r\n }\r\n\r\n if (mode === 'hide') {\r\n KTUtil.removeClass(el, toggleBy.state);\r\n }\r\n }\r\n },\r\n\r\n eventTrigger: function(name, args) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the, args);\r\n }\r\n } else {\r\n return event.handler.call(this, the, args);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n * @param options\r\n */\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Check if canvas is shown\r\n * @returns {boolean}\r\n */\r\n the.isShown = function() {\r\n return Plugin.isShown();\r\n };\r\n\r\n /**\r\n * Set to hide the canvas\r\n */\r\n the.hide = function() {\r\n return Plugin.hide();\r\n };\r\n\r\n /**\r\n * Set to show the canvas\r\n */\r\n the.show = function() {\r\n return Plugin.show();\r\n };\r\n\r\n /**\r\n * Attach event\r\n * @param name\r\n * @param handler\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n * @param name\r\n * @param handler\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTOffcanvas;\r\n}\r\n\nexport default KTOffcanvas;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTScrolltop = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n offset: 300,\r\n speed: 6000\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {mscrolltop}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('scrolltop')) {\r\n the = KTUtil.data(element).get('scrolltop');\r\n } else {\r\n // reset scrolltop\r\n Plugin.init(options);\r\n\r\n // build scrolltop\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('scrolltop', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles subscrolltop click toggle\r\n * @returns {mscrolltop}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n },\r\n\r\n build: function() {\r\n var timer;\r\n\r\n window.addEventListener('scroll', function() {\r\n KTUtil.throttle(timer, function() {\r\n Plugin.handle();\r\n }, 200);\r\n });\r\n\r\n // handle button click\r\n KTUtil.addEvent(element, 'click', Plugin.scroll);\r\n },\r\n\r\n /**\r\n * Handles scrolltop click scrollTop\r\n */\r\n handle: function() {\r\n var pos = KTUtil.getScrollTop(); // current vertical position\r\n\r\n if (pos > the.options.offset) {\r\n if (body.hasAttribute('data-scrolltop') === false) {\r\n body.setAttribute('data-scrolltop', 'on');\r\n }\r\n } else {\r\n if (body.hasAttribute('data-scrolltop') === true) {\r\n body.removeAttribute('data-scrolltop');\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Handles scrolltop click scrollTop\r\n */\r\n scroll: function(e) {\r\n e.preventDefault();\r\n\r\n KTUtil.scrollTop(0, the.options.speed);\r\n },\r\n\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, args) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the, args);\r\n }\r\n } else {\r\n return event.handler.call(this, the, args);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Get subscrolltop mode\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Set scrolltop content\r\n * @returns {mscrolltop}\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = KTScrolltop;\r\n}\r\n\nexport default KTScrolltop;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTToggle = function(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_toggleObject = new KTToggle(_toggleElement, KTUtil.getBody(), {\r\n\t\t\ttargetState: 'topbar-mobile-on',\r\n\t\t\ttoggleState: 'active'\r\n\t\t});\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _toggleElement = KTUtil.getById(id);\r\n\r\n\t\t\tif (!_toggleElement) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getToggleElement: function() {\r\n return _toggleElement;\r\n }\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutHeaderTopbar;","\"use strict\";\r\n\r\nvar KTLayoutAsideMenu = function() {\r\n // Private properties\r\n var _element;\r\n var _menuObject;\r\n\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\tvar menuDesktopMode = (KTUtil.attr(_element, 'data-menu-dropdown') === '1' ? 'dropdown' : 'accordion');\r\n var scroll;\r\n\r\n\t\tif (KTUtil.isBreakpointDown('lg') && 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\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\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 KTLayoutAside.getOffcanvas().hide(); // Hide offcanvas after general link click\r\n }\r\n });\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize menu\r\n _init();\r\n\t\t},\r\n\r\n\t\tgetElement: function() {\r\n\t\t\treturn _element;\r\n\t\t},\r\n\r\n getMenu: function() {\r\n\t\t\treturn _menuObject;\r\n\t\t},\r\n\r\n pauseDropdownHover: function(time) {\r\n\t\t\tif (_menuObject) {\r\n\t\t\t\t_menuObject.pauseDropdownHover(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcloseMobileOffcanvas: function() {\r\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\r\n\t\t\t\t_menuObject.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutAsideMenu;","\"use strict\";\n\nimport KTUtil from \"./util\";\r\n\r\n// Component Definition\r\nvar KTCard = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n toggleSpeed: 400,\r\n sticky: {\r\n releseOnReverse: false,\r\n offset: 300,\r\n zIndex: 101\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('card')) {\r\n the = KTUtil.data(element).get('card');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('card', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Init card\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n the.header = KTUtil.child(element, '.card-header');\r\n the.footer = KTUtil.child(element, '.card-footer');\r\n\r\n if (KTUtil.child(element, '.card-body')) {\r\n the.body = KTUtil.child(element, '.card-body');\r\n } else if (KTUtil.child(element, '.form')) {\r\n the.body = KTUtil.child(element, '.form');\r\n }\r\n },\r\n\r\n /**\r\n * Build Form Wizard\r\n */\r\n build: function() {\r\n // Remove\r\n var remove = KTUtil.find(the.header, '[data-card-tool=remove]');\r\n if (remove) {\r\n KTUtil.addEvent(remove, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.remove();\r\n });\r\n }\r\n\r\n // Reload\r\n var reload = KTUtil.find(the.header, '[data-card-tool=reload]');\r\n if (reload) {\r\n KTUtil.addEvent(reload, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.reload();\r\n });\r\n }\r\n\r\n // Toggle\r\n var toggle = KTUtil.find(the.header, '[data-card-tool=toggle]');\r\n if (toggle) {\r\n KTUtil.addEvent(toggle, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.toggle();\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Enable stickt mode\r\n */\r\n initSticky: function() {\r\n var lastScrollTop = 0;\r\n var offset = the.options.sticky.offset;\r\n\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n\t window.addEventListener('scroll', Plugin.onScrollSticky);\r\n },\r\n\r\n\t /**\r\n\t * Window scroll handle event for sticky card\r\n\t */\r\n\t onScrollSticky: function(e) {\r\n\t\t var offset = the.options.sticky.offset;\r\n\r\n\t\t if(isNaN(offset)) return;\r\n\r\n\t\t var st = KTUtil.getScrollTop();\r\n\r\n\t\t if (st >= offset && KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n\t\t\t Plugin.eventTrigger('stickyOn');\r\n\r\n\t\t\t KTUtil.addClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.updateSticky();\r\n\r\n\t\t } else if ((st*1.5) <= offset && KTUtil.hasClass(body, 'card-sticky-on')) {\r\n\t\t\t // Back scroll mode\r\n\t\t\t Plugin.eventTrigger('stickyOff');\r\n\r\n\t\t\t KTUtil.removeClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.resetSticky();\r\n\t\t }\r\n\t },\r\n\r\n updateSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n var top;\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on')) {\r\n if (the.options.sticky.position.top instanceof Function) {\r\n top = parseInt(the.options.sticky.position.top.call(this, the));\r\n } else {\r\n top = parseInt(the.options.sticky.position.top);\r\n }\r\n\r\n var left;\r\n if (the.options.sticky.position.left instanceof Function) {\r\n left = parseInt(the.options.sticky.position.left.call(this, the));\r\n } else {\r\n left = parseInt(the.options.sticky.position.left);\r\n }\r\n\r\n var right;\r\n if (the.options.sticky.position.right instanceof Function) {\r\n right = parseInt(the.options.sticky.position.right.call(this, the));\r\n } else {\r\n right = parseInt(the.options.sticky.position.right);\r\n }\r\n\r\n KTUtil.css(the.header, 'z-index', the.options.sticky.zIndex);\r\n KTUtil.css(the.header, 'top', top + 'px');\r\n KTUtil.css(the.header, 'left', left + 'px');\r\n KTUtil.css(the.header, 'right', right + 'px');\r\n }\r\n },\r\n\r\n resetSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n KTUtil.css(the.header, 'z-index', '');\r\n KTUtil.css(the.header, 'top', '');\r\n KTUtil.css(the.header, 'left', '');\r\n KTUtil.css(the.header, 'right', '');\r\n }\r\n },\r\n\r\n /**\r\n * Remove card\r\n */\r\n remove: function() {\r\n if (Plugin.eventTrigger('beforeRemove') === false) {\r\n return;\r\n }\r\n\r\n // Remove tooltips\r\n var tooltips;\r\n if ( tooltips = document.querySelectorAll('.tooltip.show') ) {\r\n $(tooltips).tooltip('dispose');\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\tvar _init = function() {\r\n\t\tvar options = {\r\n offset: {\r\n desktop: 300,\r\n tabletAndMobile: false\r\n }\r\n\t\t};\r\n\r\n\t\t_object = new KTHeader(_element, options);\r\n\t}\r\n\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\r\n // Initialize\r\n _init();\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: 'burger-icon-active'\r\n\t\t\t}\r\n\t\t});\r\n\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\t};\r\n}();\r\n\r\n\r\n\nexport default KTLayoutAside;"],"sourceRoot":""}