{"version":3,"file":"js/app.3a5634ec.js","mappings":"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","sources":["webpack://orca.web/./src/assets/ts/_utils/_ElementStyleUtil.ts","webpack://orca.web/./src/assets/ts/_utils/_DataUtil.ts","webpack://orca.web/./src/assets/ts/_utils/_TypesHelpers.ts","webpack://orca.web/./src/assets/ts/_utils/_DOMEventHandlerUtil.ts","webpack://orca.web/./src/assets/ts/_utils/ElementAnimateUtil.ts","webpack://orca.web/./src/assets/ts/_utils/DomHelpers.ts","webpack://orca.web/./src/assets/ts/_utils/EventHandlerUtil.ts","webpack://orca.web/./src/assets/ts/components/_ScrollTopComponent.ts","webpack://orca.web/./src/assets/ts/components/_CookieComponent.ts","webpack://orca.web/./src/assets/ts/components/_DrawerComponent.ts","webpack://orca.web/./src/assets/ts/components/_ImageInputComponent.ts","webpack://orca.web/./src/assets/ts/components/_ScrollComponent.ts","webpack://orca.web/./src/assets/ts/components/_StepperComponent.ts","webpack://orca.web/./src/assets/ts/components/_StickyComponent.ts","webpack://orca.web/./src/assets/ts/components/_ToggleComponent.ts","webpack://orca.web/./src/assets/ts/components/_PasswordMeterComponent.ts","webpack://orca.web/./src/assets/ts/components/_SwapperComponent.ts","webpack://orca.web/./src/assets/ts/components/MenuComponent.ts","webpack://orca.web/./src/assets/ts/components/SearchComponent.ts","webpack://orca.web/./src/core/plugins/keenthemes.ts","webpack://orca.web/./src/core/services/ApiService.ts","webpack://orca.web/./src/core/services/JwtService.ts","webpack://orca.web/./node_modules/vue-loader/dist/templateLoader.js","webpack://orca.web/./node_modules/vue-loader/dist/index.js","webpack://orca.web/./src/App.vue","webpack://orca.web/./src/router/index.ts","webpack://orca.web/./src/core/plugins/i18n.ts","webpack://orca.web/./src/core/plugins/apexcharts.ts","webpack://orca.web/./src/core/plugins/inline-svg.ts","webpack://orca.web/./src/core/plugins/vee-validate.ts","webpack://orca.web/./src/main.ts","webpack://orca.web/./src/store/enums/StoreEnums.ts","webpack://orca.web/./src/core/helpers/permission.ts","webpack://orca.web/./src/core/helpers/util.ts","webpack://orca.web/./src/store/modules/AuthModule.ts","webpack://orca.web/./src/store/modules/BodyModule.ts","webpack://orca.web/./src/store/modules/BreadcrumbsModule.ts","webpack://orca.web/./src/core/config/DefaultLayoutConfig.ts","webpack://orca.web/./src/store/modules/ConfigModule.ts","webpack://orca.web/./src/store/modules/ResellerModule.ts","webpack://orca.web/./src/store/modules/UserModule.ts","webpack://orca.web/./src/store/modules/ClientModule.ts","webpack://orca.web/./src/store/modules/LocationModule.ts","webpack://orca.web/./src/store/modules/DeviceModule.ts","webpack://orca.web/./src/store/modules/DevicePoolModule.ts","webpack://orca.web/./src/store/modules/DeviceReadingModule.ts","webpack://orca.web/./src/store/modules/PinCodeModule.ts","webpack://orca.web/./src/store/modules/KpiModule.ts","webpack://orca.web/./src/store/modules/FileModule.ts","webpack://orca.web/./src/store/modules/EmailModule.ts","webpack://orca.web/./src/store/modules/ModelSizeModule.ts","webpack://orca.web/./src/store/modules/IndustryModule.ts","webpack://orca.web/./src/store/modules/PinCodeTypeModule.ts","webpack://orca.web/./src/store/modules/ChartModule.ts","webpack://orca.web/./src/store/modules/DocumentModule.ts","webpack://orca.web/./src/store/modules/DeviceStatusModule.ts","webpack://orca.web/./src/store/modules/TimeZoneModule.ts","webpack://orca.web/./src/store/modules/MeasurementStandardModule.ts","webpack://orca.web/./src/store/modules/CountryProvinceModule.ts","webpack://orca.web/./src/store/modules/LanguageStringModule.ts","webpack://orca.web/./src/store/index.ts","webpack://orca.web/webpack/bootstrap","webpack://orca.web/webpack/runtime/amd options","webpack://orca.web/webpack/runtime/chunk loaded","webpack://orca.web/webpack/runtime/compat get default export","webpack://orca.web/webpack/runtime/define property getters","webpack://orca.web/webpack/runtime/ensure chunk","webpack://orca.web/webpack/runtime/get javascript chunk filename","webpack://orca.web/webpack/runtime/get mini-css chunk filename","webpack://orca.web/webpack/runtime/global","webpack://orca.web/webpack/runtime/harmony module decorator","webpack://orca.web/webpack/runtime/hasOwnProperty shorthand","webpack://orca.web/webpack/runtime/load script","webpack://orca.web/webpack/runtime/make namespace object","webpack://orca.web/webpack/runtime/node module decorator","webpack://orca.web/webpack/runtime/publicPath","webpack://orca.web/webpack/runtime/jsonp chunk loading","webpack://orca.web/webpack/startup"],"sourcesContent":["export class ElementStyleUtil {\r\n public static set(element: HTMLElement, property: string, value?: any, important?: boolean) {\r\n if (important) {\r\n element.style.setProperty(property, value, 'important')\r\n } else {\r\n element.style.setProperty(property, value)\r\n }\r\n }\r\n\r\n public static get(element: HTMLElement, attributeName: string) {\r\n return element.style.getPropertyValue(attributeName)\r\n }\r\n\r\n public static remove(element: HTMLElement, attibuteName: string) {\r\n element.style.removeProperty(attibuteName)\r\n }\r\n}\r\n","export class DataUtil {\r\n static store: Map> = new Map()\r\n\r\n public static set(instance: HTMLElement | undefined, key: string, data: any): void {\r\n if (!instance) {\r\n return\r\n }\r\n\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n const newMap = new Map().set(key, data)\r\n DataUtil.store.set(instance, newMap)\r\n return\r\n }\r\n\r\n instanceData.set(key, data)\r\n }\r\n\r\n public static get(instance: HTMLElement, key: string): any | undefined {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n return\r\n }\r\n\r\n return instanceData.get(key)\r\n }\r\n\r\n public static remove(instance: HTMLElement, key: string): void {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (!instanceData) {\r\n return\r\n }\r\n\r\n instanceData.delete(key)\r\n }\r\n\r\n public static has(instance: HTMLElement, key: string): boolean {\r\n const instanceData = DataUtil.store.get(instance)\r\n if (instanceData) {\r\n return instanceData.has(key)\r\n }\r\n\r\n return false\r\n }\r\n\r\n public static getAllInstancesByKey(key: string) {\r\n const result: any[] = []\r\n DataUtil.store.forEach((val) => {\r\n val.forEach((v, k) => {\r\n if (k === key) {\r\n result.push(v)\r\n }\r\n })\r\n })\r\n return result\r\n }\r\n}\r\n","function getObjectPropertyValueByKey(obj: any, key: string): any | undefined {\r\n const map = new Map(Object.entries(obj))\r\n if (obj.hasOwnProperty(key) && map) {\r\n return map.get(key)\r\n }\r\n}\r\n\r\n/**\r\n * Generates unique ID for give prefix.\r\n * @param {string} prefix Prefix for generated ID\r\n * @returns {boolean}\r\n */\r\nfunction getUniqueIdWithPrefix(prefix: string | undefined): string {\r\n const result = Math.floor(Math.random() * new Date().getTime()).toString()\r\n if (!prefix) {\r\n return result\r\n }\r\n\r\n return `${prefix}${result}`\r\n}\r\n\r\n/* eslint-disable no-useless-escape */\r\nfunction stringSnakeToCamel(str: string): string {\r\n return str.replace(/(\\-\\w)/g, function (m) {\r\n return m[1].toUpperCase()\r\n })\r\n}\r\n\r\nfunction toJSON(value: string | JSON): JSON | undefined {\r\n if (typeof value !== 'string') {\r\n return value\r\n }\r\n\r\n if (!value) {\r\n return undefined\r\n }\r\n\r\n // (\"'\" => \"\\\"\");\r\n const result = value\r\n .toString()\r\n .split('')\r\n .map((el) => (el !== \"'\" ? el : '\"'))\r\n .join('')\r\n var jsonStr = result.replace(/(\\w+:)|(\\w+ :)/g, function (matched) {\r\n return '\"' + matched.substring(0, matched.length - 1) + '\":'\r\n })\r\n try {\r\n return JSON.parse(jsonStr)\r\n } catch {\r\n return undefined\r\n }\r\n}\r\n\r\nexport {getObjectPropertyValueByKey, getUniqueIdWithPrefix, stringSnakeToCamel, toJSON}\r\n","import {getUniqueIdWithPrefix} from './_TypesHelpers'\r\n\r\nexport class DOMEventHandlerUtil {\r\n public static store = new Map()\r\n\r\n public static on(\r\n element: HTMLElement,\r\n selector: string,\r\n eventName: string,\r\n callBack: any\r\n ): string {\r\n const eventId = getUniqueIdWithPrefix('DOMEvent')\r\n DOMEventHandlerUtil.store.set(eventId, (e: Event) => {\r\n const targets = element.querySelectorAll(selector)\r\n let target: HTMLElement | null = e.target as HTMLElement\r\n while (target && target !== element) {\r\n for (let i = 0; i < targets.length; i++) {\r\n if (target === targets[i]) {\r\n callBack.call(target, e)\r\n }\r\n }\r\n\r\n if (target.parentElement) {\r\n target = target.parentElement\r\n } else {\r\n target = null\r\n }\r\n }\r\n })\r\n element.addEventListener(eventName, DOMEventHandlerUtil.store.get(eventId))\r\n return eventId\r\n }\r\n\r\n public static off(element: HTMLElement, eventName: string, eventId: string): void {\r\n const funcFromStore = DOMEventHandlerUtil.store.get(eventId)\r\n if (!funcFromStore) {\r\n return\r\n }\r\n\r\n element.removeEventListener(eventName, funcFromStore)\r\n DOMEventHandlerUtil.store.delete(eventId)\r\n }\r\n\r\n public static one(element: HTMLElement, eventName: string, callBack: Function): void {\r\n element.addEventListener(eventName, function calee(e) {\r\n // remove event\r\n if (e.target && e.target.removeEventListener) {\r\n e.target.removeEventListener(e.type, calee)\r\n }\r\n\r\n if (element && e && e.currentTarget) {\r\n // if (element && element.removeEventListener && e && e.currentTarget) {\r\n e.currentTarget.removeEventListener(e.type, calee)\r\n }\r\n\r\n // call hander\r\n return callBack(e)\r\n })\r\n }\r\n}\r\n","import {DOMEventHandlerUtil} from './_DOMEventHandlerUtil'\r\nimport {ElementStyleUtil} from './_ElementStyleUtil'\r\nimport {getElementOffset} from './DomHelpers'\r\n\r\nexport class ElementAnimateUtil {\r\n public static animate(\r\n from: number,\r\n to: number,\r\n duration: number,\r\n update: Function,\r\n complete?: Function\r\n ) {\r\n /**\r\n * TinyAnimate.easings\r\n * Adapted from jQuery Easing\r\n */\r\n const easings = {\r\n linear: function (t: number, b: number, c: number, d: number) {\r\n return (c * t) / d + b\r\n },\r\n }\r\n\r\n // Create mock done() function if necessary\r\n if (!complete) {\r\n complete = function () {}\r\n }\r\n\r\n // Animation loop\r\n // let canceled = false;\r\n const change = to - from\r\n\r\n function loop(timestamp: number) {\r\n var time = (timestamp || +new Date()) - start\r\n\r\n if (time >= 0) {\r\n update(easings.linear(time, from, change, duration))\r\n }\r\n if (time >= 0 && time >= duration) {\r\n update(to)\r\n if (complete) {\r\n complete()\r\n }\r\n } else {\r\n window.requestAnimationFrame(loop)\r\n }\r\n }\r\n\r\n update(from)\r\n\r\n // Start animation loop\r\n const start =\r\n window.performance && window.performance.now ? window.performance.now() : +new Date()\r\n\r\n window.requestAnimationFrame(loop)\r\n }\r\n\r\n public static animateClass(\r\n element: HTMLElement,\r\n animationName: string,\r\n callBack?: Function\r\n ): void {\r\n const animateClasses = animationName.split(' ')\r\n animateClasses.forEach((cssClass) => element.classList.add(cssClass))\r\n DOMEventHandlerUtil.one(element, 'animationend', function () {\r\n animateClasses.forEach((cssClass) => element.classList.remove(cssClass))\r\n })\r\n\r\n if (callBack) {\r\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\r\n }\r\n }\r\n\r\n public static transitionEnd(element: HTMLElement, callBack: Function) {\r\n DOMEventHandlerUtil.one(element, 'transitionend', callBack)\r\n }\r\n\r\n public static animationEnd(element: HTMLElement, callBack: Function) {\r\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\r\n }\r\n\r\n public static animationDelay(element: HTMLElement, value: string) {\r\n ElementStyleUtil.set(element, 'animation-delay', value)\r\n }\r\n\r\n public static animationDuration(element: HTMLElement, value: string) {\r\n ElementStyleUtil.set(element, 'animation-duration', value)\r\n }\r\n\r\n public static scrollTo(element: HTMLElement | null, offset: number, duration: number = 500) {\r\n let targetPos = element ? getElementOffset(element).top : 0\r\n let scrollPos =\r\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\r\n\r\n if (offset) {\r\n scrollPos += offset\r\n targetPos = targetPos - offset\r\n }\r\n\r\n const from = scrollPos\r\n const to = targetPos\r\n\r\n ElementAnimateUtil.animate(from, to, duration, function (value: number) {\r\n document.documentElement.scrollTop = value\r\n // document.body.parentNode.scrollTop = value;\r\n document.body.scrollTop = value\r\n }) //, easing, done\r\n }\r\n public static scrollTop(offset: number, duration: number) {\r\n ElementAnimateUtil.scrollTo(null, offset, duration)\r\n }\r\n}\r\n","import {OffsetModel} from './models/OffsetModel'\r\nimport {ViewPortModel} from './models/ViewPortModel'\r\nimport {ElementStyleUtil} from './_ElementStyleUtil'\r\nimport {DataUtil} from './_DataUtil'\r\nimport {ElementAnimateUtil} from './ElementAnimateUtil'\r\nimport {getObjectPropertyValueByKey, toJSON} from './_TypesHelpers'\r\n\r\nfunction getCSS(el: HTMLElement, styleProp: string) {\r\n const defaultView = (el.ownerDocument || document).defaultView\r\n\r\n if (!defaultView) {\r\n return ''\r\n }\r\n\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\r\n}\r\n\r\nfunction getCSSVariableValue(variableName: string) {\r\n let hex = getComputedStyle(document.documentElement).getPropertyValue(variableName)\r\n if (hex && hex.length > 0) {\r\n hex = hex.trim()\r\n }\r\n\r\n return hex\r\n}\r\n\r\nfunction getElementActualCss(el: HTMLElement, prop: any, cache: boolean) {\r\n let css = ''\r\n\r\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\r\n let value\r\n\r\n // the element is hidden so:\r\n // making the el block so we can meassure its height but still be hidden\r\n css = el.style.cssText\r\n el.style.cssText = 'position: absolute; visibility: hidden; display: block;'\r\n\r\n if (prop === 'width') {\r\n value = el.offsetWidth\r\n } else if (prop === 'height') {\r\n value = el.offsetHeight\r\n }\r\n\r\n el.style.cssText = css\r\n\r\n // store it in cache\r\n if (value !== undefined) {\r\n el.setAttribute('kt-hidden-' + prop, value.toString())\r\n return parseFloat(value.toString())\r\n }\r\n return 0\r\n } else {\r\n // store it in cache\r\n const attributeValue = el.getAttribute('kt-hidden-' + prop)\r\n if (attributeValue || attributeValue === '0') {\r\n return parseFloat(attributeValue)\r\n }\r\n }\r\n}\r\n\r\nfunction getElementActualHeight(el: HTMLElement) {\r\n return getElementActualCss(el, 'height', false)\r\n}\r\n\r\nfunction getElementActualWidth(el: HTMLElement, cache?: boolean) {\r\n return getElementActualCss(el, 'width', false)\r\n}\r\n\r\nfunction getElementIndex(element: HTMLElement) {\r\n if (element.parentNode) {\r\n const c = element.parentNode.children\r\n for (let i = 0; i < c.length; i++) {\r\n if (c[i] === element) return i\r\n }\r\n }\r\n return -1\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\r\nfunction getElementMatches(element: HTMLElement, selector: string) {\r\n const p = Element.prototype\r\n const f = p.matches || p.webkitMatchesSelector\r\n\r\n if (element && element.tagName) {\r\n return f.call(element, selector)\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nfunction getElementOffset(el: HTMLElement): OffsetModel {\r\n // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\r\n // Support: IE <=11 only\r\n // Running getBoundingClientRect on a\r\n // disconnected node in IE throws an error\r\n if (!el.getClientRects().length) {\r\n return {top: 0, left: 0}\r\n }\r\n\r\n // Get document-relative position by adding viewport scroll to viewport-relative gBCR\r\n const rect = el.getBoundingClientRect()\r\n const win = el.ownerDocument.defaultView\r\n if (win) {\r\n return {\r\n top: rect.top + win.pageYOffset,\r\n left: rect.left + win.pageXOffset,\r\n }\r\n }\r\n\r\n return rect\r\n}\r\n\r\nfunction getElementParents(element: Element, selector: string) {\r\n // Element.matches() polyfill\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches = function (s) {\r\n const matches = (document || this.ownerDocument).querySelectorAll(s)\r\n let i = matches.length\r\n while (--i >= 0 && matches.item(i) !== this) {}\r\n return i > -1\r\n }\r\n }\r\n\r\n // Set up a parent array\r\n const parents:Array = []\r\n\r\n let el: Element | null = element\r\n\r\n // Push each parent element to the array\r\n for (; el && el !== document.body; el = el.parentElement) {\r\n if (selector) {\r\n if (el.matches(selector)) {\r\n parents.push(el)\r\n }\r\n continue\r\n }\r\n parents.push(el)\r\n }\r\n\r\n // Return our parent array\r\n return parents\r\n}\r\n\r\nfunction getHighestZindex(el: HTMLElement) {\r\n let bufferNode: Node | null = el as Node\r\n let buffer = el\r\n while (bufferNode && bufferNode !== document) {\r\n // Ignore z-index if position is set to a value where z-index is ignored by the browser\r\n // This makes behavior of this function consistent across browsers\r\n // WebKit always returns auto if the element is positioned\r\n const position = buffer.style.getPropertyValue('position')\r\n if (position === 'absolute' || position === 'relative' || position === 'fixed') {\r\n // IE returns 0 when zIndex is not specified\r\n // other browsers return a string\r\n // we ignore the case of nested elements with an explicit value of 0\r\n //
\r\n const value = parseInt(buffer.style.getPropertyValue('z-index'))\r\n if (!isNaN(value) && value !== 0) {\r\n return value\r\n }\r\n }\r\n\r\n bufferNode = bufferNode.parentNode\r\n buffer = bufferNode as HTMLElement\r\n }\r\n return null\r\n}\r\n\r\nfunction getScrollTop(): number {\r\n return (document.scrollingElement || document.documentElement).scrollTop\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth\r\nfunction getViewPort(): ViewPortModel {\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n }\r\n}\r\n\r\nfunction insertAfterElement(el: HTMLElement, referenceNode: HTMLElement) {\r\n return referenceNode.parentNode?.insertBefore(el, referenceNode.nextSibling)\r\n}\r\n\r\nfunction isElementHasClasses(element: HTMLElement, classesStr: string): boolean {\r\n const classes = classesStr.split(' ')\r\n for (let i = 0; i < classes.length; i++) {\r\n if (!element.classList.contains(classes[i])) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n}\r\n\r\nfunction isVisibleElement(element: HTMLElement): boolean {\r\n return !(element.offsetWidth === 0 && element.offsetHeight === 0)\r\n}\r\n\r\n// Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds\r\nfunction throttle(timer: number | undefined, func: Function, delay?: number) {\r\n // If setTimeout is already scheduled, no need to do anything\r\n if (timer) {\r\n return\r\n }\r\n\r\n // Schedule a setTimeout after delay seconds\r\n timer = window.setTimeout(function () {\r\n func()\r\n\r\n // Once setTimeout function execution is finished, timerId = undefined so that in
\r\n // the next scroll event function execution can be scheduled by the setTimeout\r\n timer = undefined\r\n }, delay)\r\n}\r\n\r\nfunction getElementChildren(element: HTMLElement, selector: string): Array | null {\r\n if (!element || !element.childNodes) {\r\n return null\r\n }\r\n\r\n const result: Array = []\r\n for (let i = 0; i < element.childNodes.length; i++) {\r\n const child = element.childNodes[i]\r\n // child.nodeType == 1 => Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference\r\n if (child.nodeType === 1 && getElementMatches(child as HTMLElement, selector)) {\r\n result.push(child as HTMLElement)\r\n }\r\n }\r\n\r\n return result\r\n}\r\n\r\nfunction getElementChild(element: HTMLElement, selector: string): HTMLElement | null {\r\n const children = getElementChildren(element, selector)\r\n return children ? children[0] : null\r\n}\r\n\r\nfunction isMobileDevice(): boolean {\r\n let test = getViewPort().width < +getBreakpoint('lg') ? true : false\r\n\r\n if (test === false) {\r\n // For use within normal web clients\r\n test = navigator.userAgent.match(/iPad/i) != null\r\n }\r\n\r\n return test\r\n}\r\n\r\nfunction slide(el: HTMLElement, dir: string, speed: number, callback: any) {\r\n if (\r\n !el ||\r\n (dir === 'up' && isVisibleElement(el) === false) ||\r\n (dir === 'down' && isVisibleElement(el) === true)\r\n ) {\r\n return\r\n }\r\n\r\n speed = speed ? speed : 600\r\n let calcHeight = getElementActualHeight(el)\r\n let calcPaddingTop: number = 0\r\n let calcPaddingBottom: number = 0\r\n\r\n if (ElementStyleUtil.get(el, 'padding-top') && DataUtil.get(el, 'slide-padding-top') !== true) {\r\n DataUtil.set(el, 'slide-padding-top', ElementStyleUtil.get(el, 'padding-top'))\r\n }\r\n\r\n if (\r\n ElementStyleUtil.get(el, 'padding-bottom') &&\r\n DataUtil.has(el, 'slide-padding-bottom') !== true\r\n ) {\r\n DataUtil.set(el, 'slide-padding-bottom', ElementStyleUtil.get(el, 'padding-bottom'))\r\n }\r\n\r\n if (DataUtil.has(el, 'slide-padding-top')) {\r\n calcPaddingTop = parseInt(DataUtil.get(el, 'slide-padding-top'))\r\n }\r\n\r\n if (DataUtil.has(el, 'slide-padding-bottom')) {\r\n calcPaddingBottom = parseInt(DataUtil.get(el, 'slide-padding-bottom'))\r\n }\r\n\r\n if (dir === 'up') {\r\n // up\r\n el.style.cssText = 'display: block; overflow: hidden;'\r\n\r\n if (calcPaddingTop) {\r\n ElementAnimateUtil.animate(0, calcPaddingTop, speed, function (value: number) {\r\n el.style.paddingTop = calcPaddingTop - value + 'px'\r\n })\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n ElementAnimateUtil.animate(0, calcPaddingBottom, speed, function (value: number) {\r\n el.style.paddingBottom = calcPaddingBottom - value + 'px'\r\n })\r\n }\r\n\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcHeight || 0,\r\n speed,\r\n function (value: number) {\r\n el.style.height = (calcHeight || 0) - value + 'px'\r\n },\r\n function () {\r\n el.style.height = ''\r\n el.style.display = 'none'\r\n\r\n if (typeof callback === 'function') {\r\n callback()\r\n }\r\n }\r\n )\r\n } else if (dir === 'down') {\r\n // down\r\n el.style.cssText = 'display: block; overflow: hidden;'\r\n\r\n if (calcPaddingTop) {\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcPaddingTop,\r\n speed,\r\n function (value: number) {\r\n //\r\n el.style.paddingTop = value + 'px'\r\n },\r\n function () {\r\n el.style.paddingTop = ''\r\n }\r\n )\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcPaddingBottom,\r\n speed,\r\n function (value: number) {\r\n el.style.paddingBottom = value + 'px'\r\n },\r\n function () {\r\n el.style.paddingBottom = ''\r\n }\r\n )\r\n }\r\n\r\n ElementAnimateUtil.animate(\r\n 0,\r\n calcHeight || 0,\r\n speed,\r\n function (value: number) {\r\n el.style.height = value + 'px'\r\n },\r\n function () {\r\n el.style.height = ''\r\n el.style.display = ''\r\n el.style.overflow = ''\r\n\r\n if (typeof callback === 'function') {\r\n callback()\r\n }\r\n }\r\n )\r\n }\r\n}\r\n\r\nfunction slideUp(el: HTMLElement, speed: number, callback: any) {\r\n slide(el, 'up', speed, callback)\r\n}\r\n\r\nfunction slideDown(el: HTMLElement, speed: number, callback: any) {\r\n slide(el, 'down', speed, callback)\r\n}\r\n\r\nfunction getBreakpoint(breakpoint: string) {\r\n let value: number | string = getCSSVariableValue('--bs-' + breakpoint)\r\n if (value) {\r\n value = parseInt(value.trim())\r\n }\r\n\r\n return value\r\n}\r\n\r\nfunction getAttributeValueByBreakpoint(incomingAttr: string): string | JSON {\r\n let value = toJSON(incomingAttr)\r\n if (typeof value !== 'object') {\r\n return incomingAttr\r\n }\r\n\r\n const width = getViewPort().width\r\n let resultKey\r\n let resultBreakpoint = -1\r\n let breakpoint\r\n\r\n for (let key in value) {\r\n if (key === 'default') {\r\n breakpoint = 0\r\n } else {\r\n breakpoint = getBreakpoint(key) ? +getBreakpoint(key) : parseInt(key)\r\n }\r\n\r\n if (breakpoint <= width && breakpoint > resultBreakpoint) {\r\n resultKey = key\r\n resultBreakpoint = breakpoint\r\n }\r\n }\r\n\r\n return resultKey ? getObjectPropertyValueByKey(value, resultKey) : value\r\n}\r\n\r\nfunction colorLighten(color: string, amount: number) {\r\n const addLight = (_color: string, _amount: number) => {\r\n const cc = parseInt(_color, 16) + _amount\r\n const cNum = cc > 255 ? 255 : cc\r\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\r\n return c\r\n }\r\n\r\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\r\n amount = parseInt(((255 * amount) / 100).toString())\r\n return (color = `#${addLight(color.substring(0, 2), amount)}${addLight(\r\n color.substring(2, 4),\r\n amount\r\n )}${addLight(color.substring(4, 6), amount)}`)\r\n}\r\n\r\nfunction colorDarken(color: string, amount: number) {\r\n const subtractLight = (_color: string, _amount: number) => {\r\n const cc = parseInt(color, 16) - amount\r\n const cNum = cc < 0 ? 0 : cc\r\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\r\n return c\r\n }\r\n\r\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\r\n amount = parseInt(((255 * amount) / 100).toString())\r\n\r\n return (color = `#${subtractLight(color.substring(0, 2), amount)}${subtractLight(\r\n color.substring(2, 4),\r\n amount\r\n )}${subtractLight(color.substring(4, 6), amount)}`)\r\n}\r\n\r\nexport {\r\n getBreakpoint,\r\n getCSS,\r\n getCSSVariableValue,\r\n getElementActualCss,\r\n getElementActualHeight,\r\n getElementActualWidth,\r\n getElementIndex,\r\n getElementMatches,\r\n getElementOffset,\r\n getElementParents,\r\n getHighestZindex,\r\n getScrollTop,\r\n getViewPort,\r\n insertAfterElement,\r\n isElementHasClasses,\r\n isVisibleElement,\r\n throttle,\r\n getElementChildren,\r\n getElementChild,\r\n isMobileDevice,\r\n slide,\r\n slideUp,\r\n slideDown,\r\n getAttributeValueByBreakpoint,\r\n colorLighten,\r\n colorDarken,\r\n}\r\n","import {DataUtil} from './_DataUtil'\r\nimport {getUniqueIdWithPrefix} from './_TypesHelpers'\r\n\r\nexport interface EventMeta {\r\n name: string\r\n callback: Function\r\n one: boolean\r\n fired: boolean\r\n}\r\n\r\nexport class EventHandlerUtil {\r\n static store: Map> = new Map()\r\n\r\n private static setEventMetasByName(name: string, metas: Map): void {\r\n EventHandlerUtil.store.set(name, metas)\r\n }\r\n\r\n private static getEventMetasByName(name: string): Map | undefined {\r\n return EventHandlerUtil.store.get(name)\r\n }\r\n\r\n private static setEventMetaByNameAndHandlerId(\r\n name: string,\r\n handlerId: string,\r\n meta: EventMeta\r\n ): void {\r\n let metas = EventHandlerUtil.getEventMetasByName(name)\r\n if (!metas) {\r\n metas = new Map()\r\n }\r\n\r\n metas.set(handlerId, meta)\r\n EventHandlerUtil.setEventMetasByName(name, metas)\r\n }\r\n\r\n private static getEventsMetaByHandlerId(name: string, handlerId: string): EventMeta | undefined {\r\n const metas = EventHandlerUtil.store.get(name)\r\n if (!metas) {\r\n return\r\n }\r\n\r\n return metas.get(handlerId)\r\n }\r\n\r\n private static setFiredByNameAndHandlerId(name: string, handerId: string, fired: boolean): void {\r\n const meta = EventHandlerUtil.getEventsMetaByHandlerId(name, handerId)\r\n if (!meta) {\r\n return\r\n }\r\n\r\n meta.fired = fired\r\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handerId, meta)\r\n }\r\n\r\n private static addEvent(\r\n element: HTMLElement,\r\n name: string,\r\n callback: Function,\r\n one: boolean = false\r\n ) {\r\n const handlerId = getUniqueIdWithPrefix('event')\r\n DataUtil.set(element, name, handlerId)\r\n const meta: EventMeta = {\r\n name: name,\r\n callback: callback,\r\n one: one,\r\n fired: false,\r\n }\r\n\r\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handlerId, meta)\r\n }\r\n\r\n private static removeEvent(element: HTMLElement, name: string) {\r\n const handlerId = DataUtil.get(element, name)\r\n if (!handlerId) {\r\n return\r\n }\r\n\r\n const metas = EventHandlerUtil.getEventMetasByName(name)\r\n if (!metas) {\r\n return\r\n }\r\n\r\n metas.delete(handlerId)\r\n EventHandlerUtil.setEventMetasByName(name, metas)\r\n }\r\n\r\n public static trigger(element: HTMLElement, name: string, e?: Event) {\r\n if (DataUtil.has(element, name)) {\r\n const handlerId = DataUtil.get(element, name)\r\n if (!handlerId) {\r\n return undefined\r\n }\r\n\r\n const handler = EventHandlerUtil.getEventsMetaByHandlerId(name, handlerId)\r\n if (handler) {\r\n if (handler.name === name) {\r\n if (handler.one === true) {\r\n if (handler.fired === false) {\r\n EventHandlerUtil.setFiredByNameAndHandlerId(name, handlerId, true)\r\n return handler.callback.call(this, e)\r\n }\r\n } else {\r\n return handler.callback.call(this, e)\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static on = function (element: HTMLElement, name: string, callBack: Function): void {\r\n EventHandlerUtil.addEvent(element, name, callBack, false)\r\n }\r\n\r\n public static one(element: HTMLElement, name: string, callBack: Function): void {\r\n EventHandlerUtil.addEvent(element, name, callBack, true)\r\n }\r\n\r\n public static off(element: HTMLElement, name: string): void {\r\n EventHandlerUtil.removeEvent(element, name)\r\n }\r\n}\r\n","import {\r\n getScrollTop,\r\n getAttributeValueByBreakpoint,\r\n throttle,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getUniqueIdWithPrefix,\r\n DataUtil,\r\n ElementAnimateUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface IScrollTopOptions {\r\n offset: number\r\n speed: number\r\n}\r\n\r\nconst defaultScrollTopOptions: IScrollTopOptions = {\r\n offset: 200,\r\n speed: 600,\r\n}\r\n\r\nclass ScrollTopComponent {\r\n element: HTMLElement\r\n options: IScrollTopOptions\r\n instanceUid: string\r\n\r\n constructor(_element: HTMLElement, options: IScrollTopOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultScrollTopOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('scrolltop')\r\n\r\n // Event Handlers\r\n this._handlers()\r\n\r\n // Bind Instance\r\n DataUtil.set(this.element, 'scrolltop', this)\r\n }\r\n\r\n private _handlers = () => {\r\n let timer: number\r\n window.addEventListener('scroll', () => {\r\n throttle(timer, () => {\r\n this._scroll()\r\n })\r\n })\r\n\r\n this.element.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n this._go()\r\n })\r\n }\r\n\r\n private _scroll = () => {\r\n const offset = parseInt(this._getOption('offset') as string)\r\n const pos = getScrollTop() // current vertical position\r\n if (pos > offset) {\r\n if (!document.body.hasAttribute('data-kt-scrolltop')) {\r\n document.body.setAttribute('data-kt-scrolltop', 'on')\r\n }\r\n } else {\r\n if (document.body.hasAttribute('data-kt-scrolltop')) {\r\n document.body.removeAttribute('data-kt-scrolltop')\r\n }\r\n }\r\n }\r\n\r\n private _go = () => {\r\n const speed = parseInt(this._getOption('speed') as string)\r\n ElementAnimateUtil.scrollTop(0, speed)\r\n }\r\n\r\n private _getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`data-kt-scrolltop-${name}`)\r\n if (attr) {\r\n const value = getAttributeValueByBreakpoint(attr)\r\n return value !== null && String(value) === 'true'\r\n }\r\n\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n }\r\n\r\n return null\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n\r\n // Plugin API\r\n public go = () => {\r\n return this._go()\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (el: HTMLElement) => {\r\n const scrollTop = DataUtil.get(el, 'scrolltop')\r\n if (scrollTop) {\r\n return scrollTop\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (selector: string) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let scrollTop = ScrollTopComponent.getInstance(item)\r\n if (!scrollTop) {\r\n scrollTop = new ScrollTopComponent(item, defaultScrollTopOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: IScrollTopOptions = defaultScrollTopOptions\r\n ): ScrollTopComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let scrollTop = ScrollTopComponent.getInstance(item)\r\n if (!scrollTop) {\r\n scrollTop = new ScrollTopComponent(item, options)\r\n }\r\n return scrollTop\r\n }\r\n\r\n public static bootstrap = () => {\r\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\r\n }\r\n\r\n public static reinitialization = () => {\r\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\r\n }\r\n\r\n public static goTop = () => {\r\n ElementAnimateUtil.scrollTop(0, defaultScrollTopOptions.speed)\r\n }\r\n}\r\nexport {ScrollTopComponent, defaultScrollTopOptions}\r\n","/* eslint-disable no-useless-escape */\r\n// DOCS: https://javascript.info/cookie\r\nexport class CookieComponent {\r\n /**\r\n * Returns the cookie with the given name, or undefined if not found\r\n *\r\n * @param {string} name - cookie name\r\n * @returns string | null\r\n */\r\n public static get(name: string): string | undefined {\r\n let matches = document.cookie.match(\r\n new RegExp('(?:^|; )' + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + '=([^;]*)')\r\n )\r\n return matches ? decodeURIComponent(matches[1]) : undefined\r\n }\r\n\r\n /**\r\n * Please note that a cookie value is encoded,\r\n * so getCookie uses a built-in decodeURIComponent function to decode it.\r\n *\r\n * @param {string} name - cookie name\r\n * @param {string | number | boolean} value - cookie value\r\n * @param {any} cookieOptions - cookie options\r\n * @returns void\r\n */\r\n public static set(name: string, value: string | number | boolean, cookieOptions: any): void {\r\n const options = {\r\n path: '/',\r\n // add other defaults here if necessary\r\n ...cookieOptions,\r\n }\r\n\r\n if (options.expires instanceof Date) {\r\n options.expires = options.expires.toUTCString()\r\n }\r\n\r\n let updatedCookie = encodeURIComponent(name) + '=' + encodeURIComponent(value)\r\n\r\n for (let optionKey in options) {\r\n updatedCookie += '; ' + optionKey\r\n let optionValue = options[optionKey]\r\n if (optionValue !== true) {\r\n updatedCookie += '=' + optionValue\r\n }\r\n }\r\n\r\n document.cookie = updatedCookie\r\n }\r\n\r\n /**\r\n * To delete a cookie, we can call it with a negative expiration date\r\n *\r\n * @param {string} name\r\n */\r\n public static delete(name: string): void {\r\n CookieComponent.set(name, '', {\r\n 'max-age': -1,\r\n })\r\n }\r\n}\r\n","import {\r\n EventHandlerUtil,\r\n getUniqueIdWithPrefix,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getAttributeValueByBreakpoint,\r\n throttle,\r\n getCSS,\r\n DOMEventHandlerUtil,\r\n ElementStyleUtil,\r\n} from '../_utils/index'\r\n\r\nexport class DrawerStore {\r\n static store: Map = new Map()\r\n\r\n public static set(instanceId: string, drawerComponentObj: DrawerComponent): void {\r\n if (DrawerStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n DrawerStore.store.set(instanceId, drawerComponentObj);\r\n }\r\n\r\n public static get(instanceId: string): DrawerComponent | undefined {\r\n if (!DrawerStore.has(instanceId)) {\r\n return\r\n }\r\n return DrawerStore.store.get(instanceId);\r\n }\r\n\r\n public static remove(instanceId: string): void {\r\n if (!DrawerStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n DrawerStore.store.delete(instanceId)\r\n }\r\n\r\n public static has(instanceId: string): boolean {\r\n return DrawerStore.store.has(instanceId);\r\n }\r\n\r\n public static getAllInstances() {\r\n return DrawerStore.store;\r\n }\r\n}\r\n\r\nexport interface DrawerOptions {\r\n overlay: boolean\r\n baseClass: string\r\n overlayClass: string\r\n direction: string\r\n}\r\n\r\nconst defaultDrawerOptions: DrawerOptions = {\r\n overlay: true,\r\n baseClass: 'drawer',\r\n overlayClass: 'drawer-overlay',\r\n direction: 'end',\r\n}\r\n\r\nclass DrawerComponent {\r\n element: HTMLElement\r\n overlayElement: HTMLElement | null = null\r\n toggleElement: HTMLElement | null = null\r\n options: DrawerOptions\r\n instanceUid: string\r\n name: string = ''\r\n shown: boolean = false\r\n lastWidth: number = 0\r\n closeElement: HTMLElement | null = null\r\n\r\n constructor(_element: HTMLElement, options: DrawerOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultDrawerOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('drawer')\r\n this.overlayElement = null\r\n this.name = this.element.getAttribute('data-kt-drawer-name') || ''\r\n this.shown = false\r\n this.toggleElement = null\r\n // Event Handlers\r\n this._handlers()\r\n // Update Instance\r\n this._update()\r\n // Bind Instance\r\n DrawerStore.set(this.element.id, this)\r\n }\r\n\r\n private _handlers = () => {\r\n const togglers = this._getOption('toggle') as string\r\n const closers = this._getOption('close') as string\r\n\r\n if (togglers !== null && togglers.length > 0) {\r\n DOMEventHandlerUtil.on(document.body, togglers, 'click', (e: Event) => {\r\n e.preventDefault()\r\n this.toggleElement = document.getElementById(togglers)\r\n this._toggle()\r\n })\r\n }\r\n\r\n if (closers !== null && closers.length > 0) {\r\n DOMEventHandlerUtil.on(document.body, closers, 'click', (e: Event) => {\r\n e.preventDefault()\r\n this.closeElement = document.getElementById(closers)\r\n\r\n this._hide()\r\n })\r\n }\r\n }\r\n\r\n private _update = () => {\r\n const width = String(this._getOption('width'))\r\n const direction = String(this._getOption('direction'))\r\n\r\n // Reset state\r\n const hasBaseClass = this.element.classList.contains(`${this.options.baseClass}-on`)\r\n const bodyCanvasAttr = String(document.body.getAttribute(`data-kt-drawer-${this.name}-`))\r\n\r\n if (hasBaseClass === true && bodyCanvasAttr === 'on') {\r\n this.shown = true\r\n } else {\r\n this.shown = false\r\n }\r\n\r\n // Activate/deactivate\r\n if (this._getOption('activate') === true) {\r\n this.element.classList.add(this.options.baseClass)\r\n this.element.classList.add(`${this.options.baseClass}-${direction}`)\r\n ElementStyleUtil.set(this.element, 'width', width, true)\r\n\r\n this.lastWidth = parseInt(width)\r\n } else {\r\n ElementStyleUtil.set(this.element, 'width', '')\r\n this.element.classList.remove(this.options.baseClass)\r\n this.element.classList.remove(`${this.options.baseClass}-${direction}`)\r\n this._hide()\r\n }\r\n }\r\n\r\n private _getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`data-kt-drawer-${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n return true\r\n } else {\r\n if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n private _toggle = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.toggle') === false) {\r\n return\r\n }\r\n\r\n if (this.shown) {\r\n this._hide()\r\n } else {\r\n this._show()\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.toggled')\r\n }\r\n\r\n private _hide = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.hide') === false) {\r\n return\r\n }\r\n\r\n this.shown = false\r\n this._deleteOverlay()\r\n document.body.removeAttribute(`data-kt-drawer-${this.name}`)\r\n document.body.removeAttribute(`data-kt-drawer`)\r\n this.element.classList.remove(`${this.options.baseClass}-on`)\r\n if (this.toggleElement != null) {\r\n this.toggleElement.classList.remove('active')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.after.hidden')\r\n }\r\n\r\n private _show = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.show') === false) {\r\n return\r\n }\r\n\r\n this.shown = true\r\n this._createOverlay()\r\n document.body.setAttribute(`data-kt-drawer-${this.name}`, 'on')\r\n document.body.setAttribute('data-kt-drawer', 'on')\r\n this.element.classList.add(`${this.options.baseClass}-on`)\r\n if (this.toggleElement !== null) {\r\n this.toggleElement.classList.add('active')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.drawer.shown')\r\n }\r\n\r\n private _createOverlay = () => {\r\n if (this._getOption('overlay') === true) {\r\n this.overlayElement = document.createElement('DIV')\r\n const elementZIndex = getCSS(this.element, 'z-index')\r\n if (elementZIndex) {\r\n const overlayZindex = parseInt(elementZIndex) - 1\r\n ElementStyleUtil.set(this.overlayElement, 'z-index', overlayZindex) // update\r\n }\r\n document.body.append(this.overlayElement)\r\n const overlayClassOption = this._getOption('overlay-class')\r\n if (overlayClassOption) {\r\n this.overlayElement.classList.add(overlayClassOption.toString())\r\n }\r\n this.overlayElement.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n this._hide()\r\n })\r\n }\r\n }\r\n\r\n private _deleteOverlay = () => {\r\n if (this.overlayElement !== null && this.overlayElement.parentNode) {\r\n this.overlayElement.parentNode.removeChild(this.overlayElement)\r\n }\r\n }\r\n\r\n private _getDirection = () => {\r\n return String(this._getOption('direction')) === 'left' ? 'left' : 'right'\r\n }\r\n\r\n private _getWidth = () => {\r\n let width = this._getOption('width')\r\n if (width && width === 'auto') {\r\n width = getCSS(this.element, 'width')\r\n }\r\n\r\n return width\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public toggle = () => {\r\n this._toggle()\r\n }\r\n\r\n public show = () => {\r\n this._show()\r\n }\r\n\r\n public hide = () => {\r\n this._hide()\r\n }\r\n\r\n public isShown = () => {\r\n return this.shown\r\n }\r\n\r\n public update = () => {\r\n this._update()\r\n }\r\n\r\n public goElement = () => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace = (elementId: string): boolean => {\r\n return DrawerStore.has(elementId)\r\n }\r\n\r\n public static getInstance = (elementId: string) => {\r\n return DrawerStore.get(elementId)\r\n }\r\n\r\n public static hideAll = () => {\r\n const oldInstances = DrawerStore.getAllInstances()\r\n oldInstances.forEach((dr) => {\r\n dr.hide()\r\n })\r\n }\r\n\r\n public static updateAll = () => {\r\n const oldInstances = DrawerStore.getAllInstances()\r\n oldInstances.forEach((dr) => {\r\n dr.update()\r\n })\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string): void {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let drawer = DrawerComponent.getInstance(item.id)\r\n if (!drawer) {\r\n drawer = new DrawerComponent(item, defaultDrawerOptions)\r\n }\r\n drawer.element = item;\r\n drawer.hide()\r\n })\r\n }\r\n\r\n // Dismiss instances\r\n public static handleDismiss = () => {\r\n // External drawer toggle handler\r\n DOMEventHandlerUtil.on(document.body, '[data-kt-drawer-dismiss=\"true\"]', 'click', () => {\r\n /* @ts-ignore */\r\n const element = this.closest('[data-kt-drawer=\"true\"]')\r\n if (element) {\r\n const drawer = DrawerComponent.getInstance(element)\r\n if (drawer && drawer.isShown()) {\r\n drawer.hide()\r\n }\r\n }\r\n })\r\n }\r\n\r\n // Global Initialization\r\n public static initGlobalHandlers(): void {\r\n // Window Resize Handling\r\n window.addEventListener('resize', function () {\r\n let timer: number | undefined\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n const elements = document.body.querySelectorAll('[data-kt-drawer=\"true\"]')\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n const instance = DrawerComponent.getInstance(item.id)\r\n if (instance) {\r\n instance.element = item;\r\n instance.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n public static bootstrap = () => {\r\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\r\n DrawerComponent.initGlobalHandlers()\r\n DrawerComponent.handleDismiss()\r\n }\r\n\r\n public static reinitialization = () => {\r\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\r\n DrawerComponent.hideAll()\r\n DrawerComponent.updateAll()\r\n DrawerComponent.handleDismiss()\r\n }\r\n}\r\n\r\nexport {DrawerComponent, defaultDrawerOptions}\r\n","import {EventHandlerUtil, DataUtil, getUniqueIdWithPrefix, getCSS} from '../_utils/index'\r\n\r\nexport interface IImageInputOptions {}\r\n\r\nexport interface IImageInputQueries {\r\n componentName: string\r\n instanseQuery: string\r\n inputQuery: string\r\n wrapperQuery: string\r\n cancelQuery: string\r\n removeQuery: string\r\n hiddenQuery: string\r\n}\r\n\r\nconst defaultImageInputOptions = {}\r\n\r\nconst defaultImageInputQueires: IImageInputQueries = {\r\n componentName: 'image-input',\r\n instanseQuery: '[data-kt-image-input]',\r\n inputQuery: 'input[type=\"file\"]',\r\n wrapperQuery: '.image-input-wrapper',\r\n cancelQuery: '[data-kt-image-input-action=\"cancel\"]',\r\n removeQuery: '[data-kt-image-input-action=\"remove\"]',\r\n hiddenQuery: 'input[type=\"hidden\"]',\r\n}\r\n\r\nclass ImageInputComponent {\r\n element: HTMLElement\r\n inputElement: HTMLInputElement | null\r\n wrapperElement: HTMLElement | null\r\n cancelElement: HTMLElement | null\r\n removeElement: HTMLElement | null\r\n hiddenElement: HTMLInputElement | null\r\n src: string = ''\r\n options: IImageInputOptions\r\n queries: IImageInputQueries\r\n uid: string\r\n value: string = ''\r\n\r\n constructor(_element: HTMLElement, _options: IImageInputOptions, _queries: IImageInputQueries) {\r\n // Variables\r\n this.options = Object.assign(defaultImageInputOptions, _options)\r\n this.queries = _queries\r\n this.uid = getUniqueIdWithPrefix(this.queries.componentName)\r\n\r\n // Elements\r\n this.element = _element\r\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\r\n this.wrapperElement = this.element.querySelector(this.queries.wrapperQuery)\r\n this.cancelElement = this.element.querySelector(this.queries.cancelQuery)\r\n this.removeElement = this.element.querySelector(this.queries.removeQuery)\r\n this.hiddenElement = this.element.querySelector(this.queries.hiddenQuery)\r\n if (this.wrapperElement) {\r\n this.src = getCSS(this.wrapperElement, 'backgroundImage')\r\n }\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private handlers(): void {\r\n this.element.addEventListener('change', this._change)\r\n if (this.cancelElement) {\r\n this.cancelElement.addEventListener('click', this._cancel)\r\n }\r\n\r\n if (this.removeElement) {\r\n this.removeElement.addEventListener('click', this._cancel)\r\n }\r\n }\r\n\r\n // Event Handlers\r\n private _change = (e: Event) => {\r\n e.preventDefault()\r\n\r\n if (this.inputElement !== null && this.inputElement.files && this.inputElement.files[0]) {\r\n // Fire change event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.change', e) === false) {\r\n return\r\n }\r\n\r\n const reader = new FileReader()\r\n\r\n reader.onload = (e: ProgressEvent) => {\r\n if (this.wrapperElement && e.target) {\r\n this.wrapperElement.style.setProperty('background-image', `url('${e.target.result}')`)\r\n }\r\n }\r\n\r\n reader.readAsDataURL(this.inputElement.files[0])\r\n this.element.classList.add('image-input-changed')\r\n this.element.classList.remove('image-input-empty')\r\n\r\n // Fire removed event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.changed', e)\r\n }\r\n }\r\n\r\n private _cancel = (e: Event) => {\r\n e.preventDefault()\r\n\r\n // Fire cancel event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.cancel', e) === false) {\r\n return\r\n }\r\n\r\n this.element.classList.remove('image-input-changed')\r\n this.element.classList.remove('image-input-empty')\r\n this.element.style.setProperty('background-image', this.src)\r\n if (this.inputElement) {\r\n this.inputElement.value = ''\r\n }\r\n\r\n if (this.hiddenElement !== null) {\r\n this.hiddenElement.value = '0'\r\n }\r\n\r\n // Fire canceled event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.canceled', e)\r\n }\r\n\r\n private _remove = (e: Event) => {\r\n e.preventDefault()\r\n\r\n // Fire remove event\r\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.remove', e) === false) {\r\n return\r\n }\r\n\r\n this.element.classList.remove('image-input-changed')\r\n this.element.classList.add('image-input-empty')\r\n if (this.wrapperElement) {\r\n this.wrapperElement.style.setProperty('background-image', 'none')\r\n }\r\n\r\n if (this.inputElement) {\r\n this.inputElement.value = ''\r\n }\r\n\r\n if (this.hiddenElement !== null) {\r\n this.hiddenElement.value = '1'\r\n }\r\n\r\n // Fire removed event\r\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.removed', e)\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public getInputElement(): HTMLInputElement | null {\r\n return this.inputElement\r\n }\r\n\r\n public getElement(): HTMLElement {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultImageInputQueires.componentName\r\n ) => {\r\n const ImageInput = DataUtil.get(el, componentName)\r\n if (ImageInput) {\r\n return ImageInput\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultImageInputQueires.instanseQuery,\r\n options: IImageInputOptions = defaultImageInputOptions,\r\n queries: IImageInputQueries = defaultImageInputQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let ImageInput = ImageInputComponent.getInstance(item)\r\n if (!ImageInput) {\r\n ImageInput = new ImageInputComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultImageInputQueires.instanseQuery,\r\n options: IImageInputOptions = defaultImageInputOptions,\r\n queries: IImageInputQueries = defaultImageInputQueires\r\n ): ImageInputComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let ImageInput = ImageInputComponent.getInstance(item)\r\n if (!ImageInput) {\r\n ImageInput = new ImageInputComponent(item, options, queries)\r\n }\r\n return ImageInput\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultImageInputQueires.instanseQuery) => {\r\n ImageInputComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultImageInputQueires.instanseQuery) => {\r\n ImageInputComponent.createInstances(selector)\r\n }\r\n}\r\nexport {ImageInputComponent, defaultImageInputOptions, defaultImageInputQueires}\r\n","import {\r\n DataUtil,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getAttributeValueByBreakpoint,\r\n getViewPort,\r\n isVisibleElement,\r\n throttle,\r\n getCSS,\r\n ElementStyleUtil,\r\n} from '../_utils/index'\r\nimport {CookieComponent} from './_CookieComponent'\r\n\r\nexport interface ScrollOptions {\r\n saveState?: boolean\r\n}\r\n\r\nconst defaultScrollOptions: ScrollOptions = {\r\n saveState: true,\r\n}\r\n\r\nclass ScrollComponent {\r\n element: HTMLElement\r\n options: ScrollOptions\r\n id: string\r\n\r\n constructor(_element: HTMLElement, options: ScrollOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultScrollOptions, options)\r\n this.id = this.element.getAttribute('id') || ''\r\n this.update()\r\n // this.element.setAttribute('data-kt-scrolltop', 'true')\r\n DataUtil.set(this.element, 'scroll', this)\r\n }\r\n\r\n private getOption = (name: string) => {\r\n if (this.element.hasAttribute('data-kt-scroll-' + name) === true) {\r\n const attr = this.element.getAttribute('data-kt-scroll-' + name) || ''\r\n let value: string | JSON | boolean = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n value = true\r\n } else if (value !== null && String(value) === 'false') {\r\n value = false\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n private getHeightType = () => {\r\n if (this.getOption('height')) {\r\n return 'height'\r\n }\r\n if (this.getOption('min-height')) {\r\n return 'min-height'\r\n }\r\n if (this.getOption('max-height')) {\r\n return 'max-height'\r\n }\r\n }\r\n\r\n private getAutoHeight = () => {\r\n let height: number | string = getViewPort().height\r\n const dependencies = this.getOption('dependencies')\r\n const wrappers = this.getOption('wrappers')\r\n const offset = this.getOption('offset')\r\n\r\n // Height dependencies\r\n if (dependencies !== null) {\r\n const elements = document.querySelectorAll(dependencies as string)\r\n if (elements && elements.length > 0) {\r\n for (let i = 0, len = elements.length; i < len; i++) {\r\n const element = elements[i] as HTMLElement\r\n if (isVisibleElement(element) === false) {\r\n continue\r\n }\r\n\r\n height = height - parseInt(getCSS(element, 'height'))\r\n height = height - parseInt(getCSS(element, 'margin-top'))\r\n height = height - parseInt(getCSS(element, 'margin-bottom'))\r\n\r\n const borderTop = getCSS(element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Wrappers\r\n if (wrappers !== null) {\r\n var elements = document.querySelectorAll(wrappers as string)\r\n if (elements && elements.length > 0) {\r\n for (let i = 0, len = elements.length; i < len; i++) {\r\n const element = elements[i] as HTMLElement\r\n\r\n if (!isVisibleElement(element)) {\r\n continue\r\n }\r\n\r\n height = height - parseInt(getCSS(element, 'margin-top'))\r\n height = height - parseInt(getCSS(element, 'margin-bottom'))\r\n height = height - parseInt(getCSS(element, 'padding-top'))\r\n height = height - parseInt(getCSS(element, 'padding-bottom'))\r\n\r\n const borderTop = getCSS(element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Custom offset\r\n if (offset !== null) {\r\n height = height - parseInt(offset as string)\r\n }\r\n\r\n height = height - parseInt(getCSS(this.element, 'margin-top'))\r\n height = height - parseInt(getCSS(this.element, 'margin-bottom'))\r\n\r\n const borderTop = getCSS(this.element, 'border-top')\r\n if (borderTop) {\r\n height = height - parseInt(borderTop)\r\n }\r\n\r\n const borderBottom = getCSS(this.element, 'border-bottom')\r\n if (borderBottom) {\r\n height = height - parseInt(borderBottom)\r\n }\r\n\r\n height = String(height) + 'px'\r\n\r\n return height\r\n }\r\n\r\n private setupHeight = () => {\r\n let height = this.getHeight()\r\n let heightType = this.getHeightType() as string\r\n\r\n // Set height\r\n if (height !== null && height.length > 0) {\r\n ElementStyleUtil.set(this.element, heightType, height)\r\n } else {\r\n ElementStyleUtil.set(this.element, heightType, '')\r\n }\r\n }\r\n\r\n private setupState = () => {\r\n if (this.getOption('save-state') === true && this.id) {\r\n const cookie = CookieComponent.get(this.id + 'st')\r\n if (cookie) {\r\n var pos = parseInt(cookie)\r\n\r\n if (pos > 0) {\r\n this.element.scrollTop = pos\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setupScrollHandler = () => {\r\n if (this.getOption('save-state') === true && this.id) {\r\n this.element.addEventListener('scroll', this.scrollHandler)\r\n } else {\r\n this.element.removeEventListener('scroll', this.scrollHandler)\r\n }\r\n }\r\n\r\n private scrollHandler = () => {\r\n const cookieId = this.id + 'st'\r\n CookieComponent.set(cookieId, this.element.scrollTop, {})\r\n }\r\n\r\n private destroyScrollHandler = () => {\r\n this.element.removeEventListener('scroll', this.scrollHandler)\r\n }\r\n\r\n private resetHeight = () => {\r\n const heghtType = this.getHeightType()\r\n if (heghtType) {\r\n ElementStyleUtil.set(this.element, heghtType, '')\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public update = () => {\r\n // Activate/deactivate\r\n if (\r\n this.getOption('activate') === true ||\r\n !this.element.hasAttribute('data-kt-scroll-activate')\r\n ) {\r\n this.setupHeight()\r\n this.setupScrollHandler()\r\n this.setupState()\r\n } else {\r\n this.resetHeight()\r\n this.destroyScrollHandler()\r\n }\r\n }\r\n\r\n public getHeight = () => {\r\n const heightType = this.getHeightType()\r\n const height = this.getOption(heightType || '')\r\n if (height instanceof Function) {\r\n return height.call(height)\r\n } else if (height !== null && typeof height === 'string' && height.toLowerCase() === 'auto') {\r\n return this.getAutoHeight()\r\n } else {\r\n return height\r\n }\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement) {\r\n return DataUtil.has(element, 'scroll')\r\n }\r\n\r\n public static getInstance(element: HTMLElement) {\r\n if (element !== null && ScrollComponent.hasInstace(element)) {\r\n return DataUtil.get(element, 'scroll')\r\n }\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string) {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element: Element) => {\r\n const item = element as HTMLElement\r\n let scroll = ScrollComponent.getInstance(item)\r\n if (!scroll) {\r\n scroll = new ScrollComponent(item, defaultScrollOptions)\r\n }\r\n })\r\n }\r\n\r\n public static destroyAll(attr: string = '[data-kt-scroll=\"true\"]') {}\r\n\r\n public static bootstrap(attr: string = '[data-kt-scroll=\"true\"]') {\r\n ScrollComponent.createInstances(attr)\r\n ScrollComponent.resize()\r\n }\r\n\r\n public static createInstance = (\r\n element: HTMLElement,\r\n options: ScrollOptions = defaultScrollOptions\r\n ): ScrollComponent | undefined => {\r\n let scroll = ScrollComponent.getInstance(element)\r\n if (!scroll) {\r\n scroll = new ScrollComponent(element, options)\r\n }\r\n return scroll\r\n }\r\n\r\n public static reinitialization(attr: string = '[data-kt-scroll=\"true\"]') {\r\n ScrollComponent.createInstances(attr)\r\n }\r\n\r\n public static updateAll(){\r\n const elements = document.body.querySelectorAll('[data-kt-scroll=\"true\"]')\r\n elements.forEach((element: Element) => {\r\n const instance = ScrollComponent.getInstance(element as HTMLElement)\r\n if (instance) {\r\n instance.update()\r\n }\r\n })\r\n }\r\n\r\n public static resize() {\r\n // Window Resize Handling\r\n window.addEventListener('resize', function () {\r\n let timer\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n ScrollComponent.updateAll();\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport {ScrollComponent, defaultScrollOptions}\r\n","import {\r\n getElementIndex,\r\n getUniqueIdWithPrefix,\r\n ElementAnimateUtil,\r\n EventHandlerUtil,\r\n DataUtil,\r\n DOMEventHandlerUtil,\r\n ElementStyleUtil,\r\n} from '../_utils/index'\r\n\r\nexport interface IStepperOptions {\r\n startIndex: number\r\n animation: boolean\r\n animationSpeed: string\r\n animationNextClass: string\r\n animationPreviousClass: string\r\n}\r\n\r\nconst defaultStepperOptions: IStepperOptions = {\r\n startIndex: 1,\r\n animation: false,\r\n animationSpeed: '0.3s',\r\n animationNextClass: 'animate__animated animate__slideInRight animate__fast',\r\n animationPreviousClass: 'animate__animated animate__slideInLeft animate__fast',\r\n}\r\n\r\nclass StepperComponent {\r\n element: HTMLElement\r\n options: IStepperOptions\r\n instanceUid: string\r\n steps: NodeListOf\r\n btnNext: HTMLElement | null\r\n btnPrev: HTMLElement | null\r\n btnSubmit: HTMLElement | null\r\n totatStepsNumber: number = 0\r\n passedStepIndex: number = 0\r\n currentStepIndex: number = 1\r\n\r\n constructor(_element: HTMLElement, options: IStepperOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultStepperOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('stepper')\r\n\r\n // Elements\r\n this.steps = this.element.querySelectorAll('[data-kt-stepper-element=\"nav\"]')\r\n this.btnNext = this.element.querySelector('[data-kt-stepper-action=\"next\"]')\r\n this.btnPrev = this.element.querySelector('[data-kt-stepper-action=\"previous\"]')\r\n this.btnSubmit = this.element.querySelector('[data-kt-stepper-action=\"submit\"]')\r\n\r\n // Variables\r\n this.totatStepsNumber = this.steps?.length | 0\r\n this.passedStepIndex = 0\r\n this.currentStepIndex = 1\r\n\r\n // Set Current Step\r\n if (this.options.startIndex > 1) {\r\n this._goTo(this.options.startIndex)\r\n }\r\n\r\n // Event Handlers\r\n this.initHandlers()\r\n\r\n // Bind Instance\r\n DataUtil.set(this.element, 'stepper', this)\r\n }\r\n\r\n private _goTo = (index: number) => {\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.change')\r\n // Skip if this step is already shown\r\n if (index === this.currentStepIndex || index > this.totatStepsNumber || index < 0) {\r\n return\r\n }\r\n\r\n // Validate step number\r\n index = parseInt(index.toString())\r\n // Set current step\r\n this.passedStepIndex = this.currentStepIndex\r\n this.currentStepIndex = index\r\n\r\n // Refresh elements\r\n this.refreshUI()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.changed')\r\n }\r\n\r\n private initHandlers = () => {\r\n this.btnNext?.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.next', e)\r\n })\r\n\r\n this.btnPrev?.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.stepper.previous', e)\r\n })\r\n\r\n DOMEventHandlerUtil.on(this.element, '[data-kt-stepper-action=\"step\"]', 'click', (e: Event) => {\r\n e.preventDefault()\r\n\r\n if (this.steps && this.steps.length > 0) {\r\n for (let i = 0; i < this.steps.length; i++) {\r\n if ((this.steps[i] as HTMLElement) === this.element) {\r\n let index = i + 1\r\n\r\n const stepDirection = this._getStepDirection(index)\r\n EventHandlerUtil.trigger(this.element, `stepper.${stepDirection}`, e)\r\n return\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n private _getStepDirection = (index: number) => {\r\n return index > this.currentStepIndex ? 'next' : 'previous'\r\n }\r\n\r\n private getStepContent = (index: number) => {\r\n const content = this.element.querySelectorAll('[data-kt-stepper-element=\"content\"]')\r\n if (!content) {\r\n return false\r\n }\r\n\r\n if (content[index - 1]) {\r\n return content[index - 1]\r\n }\r\n\r\n return false\r\n }\r\n\r\n private getLastStepIndex = () => {\r\n return this.totatStepsNumber\r\n }\r\n\r\n private getTotalStepsNumber = () => {\r\n return this.totatStepsNumber\r\n }\r\n\r\n private refreshUI = () => {\r\n let state = ''\r\n\r\n if (this.isLastStep()) {\r\n state = 'last'\r\n } else if (this.isFirstStep()) {\r\n state = 'first'\r\n } else {\r\n state = 'between'\r\n }\r\n\r\n // Set state class\r\n this.element.classList.remove('last')\r\n this.element.classList.remove('first')\r\n this.element.classList.remove('between')\r\n\r\n this.element.classList.add(state)\r\n\r\n // Step Items\r\n const elements = this.element.querySelectorAll(\r\n '[data-kt-stepper-element=\"nav\"], [data-kt-stepper-element=\"content\"], [data-kt-stepper-element=\"info\"]'\r\n )\r\n\r\n if (!elements || elements.length <= 0) {\r\n return\r\n }\r\n\r\n for (var i = 0, len = elements.length; i < len; i++) {\r\n var element = elements[i] as HTMLElement\r\n var index = getElementIndex(element) + 1\r\n\r\n element.classList.remove('current')\r\n element.classList.remove('completed')\r\n element.classList.remove('pending')\r\n\r\n if (index === this.currentStepIndex) {\r\n element.classList.add('current')\r\n\r\n if (\r\n this.options.animation !== false &&\r\n element.getAttribute('data-kt-stepper-element') === 'content'\r\n ) {\r\n ElementStyleUtil.set(element, 'animationDuration', this.options.animationSpeed)\r\n\r\n const animation =\r\n this._getStepDirection(this.passedStepIndex) === 'previous'\r\n ? this.options.animationPreviousClass\r\n : this.options.animationNextClass\r\n ElementAnimateUtil.animateClass(element, animation)\r\n }\r\n } else {\r\n if (index < this.currentStepIndex) {\r\n element.classList.add('completed')\r\n } else {\r\n element.classList.add('pending')\r\n }\r\n }\r\n }\r\n }\r\n\r\n private isLastStep = () => {\r\n return this.currentStepIndex === this.totatStepsNumber\r\n }\r\n\r\n private isFirstStep = () => {\r\n return this.currentStepIndex === 1\r\n }\r\n\r\n private isBetweenStep = () => {\r\n return this.isLastStep() === false && this.isFirstStep() === false\r\n }\r\n\r\n // ///////////////////////\r\n // // ** Public API ** //\r\n // ///////////////////////\r\n\r\n // // Plugin API\r\n public goto = (index: number) => {\r\n return this._goTo(index)\r\n }\r\n\r\n public goNext = () => {\r\n return this.goto(this.getNextStepIndex())\r\n }\r\n\r\n public goPrev = () => {\r\n return this.goto(this.getPrevStepIndex())\r\n }\r\n\r\n public goFirst = () => {\r\n return this.goto(1)\r\n }\r\n\r\n public goLast = () => {\r\n return this.goto(this.getLastStepIndex())\r\n }\r\n\r\n public getCurrentStepIndex = () => {\r\n return this.currentStepIndex\r\n }\r\n\r\n public getNextStepIndex = () => {\r\n if (this.totatStepsNumber >= this.currentStepIndex + 1) {\r\n return this.currentStepIndex + 1\r\n } else {\r\n return this.totatStepsNumber\r\n }\r\n }\r\n\r\n public getPassedStepIndex = () => {\r\n return this.passedStepIndex\r\n }\r\n\r\n public getPrevStepIndex = () => {\r\n if (this.currentStepIndex - 1 > 1) {\r\n return this.currentStepIndex - 1\r\n } else {\r\n return 1\r\n }\r\n }\r\n\r\n public getElement = (index: number) => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public destroy = () => {\r\n console.log('destroy stepper')\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement): boolean {\r\n return DataUtil.has(element, 'stepper')\r\n }\r\n\r\n public static getInstance(element: HTMLElement): StepperComponent | null {\r\n if (element !== null && StepperComponent.hasInstace(element)) {\r\n return DataUtil.get(element, 'stepper')\r\n }\r\n return null\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string): void {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let stepper = StepperComponent.getInstance(item)\r\n if (!stepper) {\r\n stepper = new StepperComponent(item, defaultStepperOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n element: HTMLElement,\r\n options: IStepperOptions = defaultStepperOptions\r\n ): StepperComponent | null => {\r\n if (!element) {\r\n return null\r\n }\r\n let stepper = StepperComponent.getInstance(element)\r\n if (!stepper) {\r\n stepper = new StepperComponent(element, options)\r\n }\r\n return stepper\r\n }\r\n\r\n public static bootstrap(attr: string = '[data-kt-stepper]') {\r\n StepperComponent.createInstances(attr)\r\n }\r\n}\r\n\r\nexport {StepperComponent, defaultStepperOptions}\r\n","import {\r\n getElementOffset,\r\n getScrollTop,\r\n getAttributeValueByBreakpoint,\r\n getUniqueIdWithPrefix,\r\n getObjectPropertyValueByKey,\r\n stringSnakeToCamel,\r\n getCSS,\r\n ElementAnimateUtil,\r\n ElementStyleUtil,\r\n EventHandlerUtil,\r\n} from '../_utils/index';\r\n\r\nexport class StickyStore {\r\n static store: Map = new Map()\r\n\r\n public static set(instanceId: string, stickyComponentObj: StickyComponent): void {\r\n if (StickyStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n StickyStore.store.set(instanceId, stickyComponentObj);\r\n }\r\n\r\n public static get(instanceId: string): StickyComponent | undefined {\r\n if (!StickyStore.has(instanceId)) {\r\n return\r\n }\r\n return StickyStore.store.get(instanceId);\r\n }\r\n\r\n public static remove(instanceId: string): void {\r\n if (!StickyStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n StickyStore.store.delete(instanceId)\r\n }\r\n\r\n public static has(instanceId: string): boolean {\r\n return StickyStore.store.has(instanceId);\r\n }\r\n\r\n public static getAllInstances() {\r\n return StickyStore.store;\r\n }\r\n}\r\n\r\nexport interface StickyOptions {\r\n offset: number\r\n reverse: boolean\r\n animation: boolean\r\n animationSpeed: string\r\n animationClass: string\r\n}\r\n\r\nconst defaultStickyOptions: StickyOptions = {\r\n offset: 200,\r\n reverse: false,\r\n animation: true,\r\n animationSpeed: '0.3s',\r\n animationClass: 'animation-slide-in-down',\r\n}\r\n\r\nclass StickyComponent {\r\n element: HTMLElement\r\n options: StickyOptions\r\n instanceUid: string\r\n instanceName: string | null = ''\r\n attributeName: string\r\n eventTriggerState: boolean\r\n lastScrollTop: number\r\n\r\n constructor(_element: HTMLElement, options: StickyOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultStickyOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('sticky')\r\n this.instanceName = this.element.getAttribute('data-kt-sticky-name')\r\n this.attributeName = 'data-kt-sticky-' + this.instanceName\r\n this.eventTriggerState = true\r\n this.lastScrollTop = 0\r\n\r\n // Event Handlers\r\n window.addEventListener('scroll', this.scroll)\r\n\r\n // Initial Launch\r\n this.scroll()\r\n\r\n StickyStore.set(this.element.id, this)\r\n }\r\n\r\n private scroll = () => {\r\n let offset: any = this.getOption('offset');\r\n let releaseOffset: any = this.getOption('release-offset');\r\n let reverse: any = this.getOption('reverse');\r\n let st: any;\r\n let diff: any;\r\n\r\n // Exit if false\r\n if ( offset === false ) {\r\n return;\r\n }\r\n\r\n offset = parseInt(offset);\r\n releaseOffset = releaseOffset ? parseInt(releaseOffset) : 0;\r\n st = getScrollTop();\r\n diff = document.documentElement.scrollHeight - window.innerHeight - getScrollTop();\r\n\r\n if ( reverse === true ) { // Release on reverse scroll mode\r\n if ( st > offset && (releaseOffset === 0 || releaseOffset < diff)) {\r\n if (document.body.hasAttribute(this.attributeName) === false) {\r\n this.enable();\r\n document.body.setAttribute(this.attributeName, 'on');\r\n }\r\n\r\n if ( this.eventTriggerState === true ) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on');\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change');\r\n\r\n this.eventTriggerState = false;\r\n }\r\n } else { // Back scroll mode\r\n if (document.body.hasAttribute(this.attributeName) === true) {\r\n this.disable();\r\n document.body.removeAttribute(this.attributeName);\r\n }\r\n\r\n if ( this.eventTriggerState === false ) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off');\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change');\r\n this.eventTriggerState = true;\r\n }\r\n }\r\n\r\n this.lastScrollTop = st;\r\n } else { // Classic scroll mode\r\n if ( st>offset && (releaseOffset === 0 || releaseOffset < diff)) {\r\n if (document.body.hasAttribute(this.attributeName) === false) {\r\n this.enable();\r\n document.body.setAttribute(this.attributeName, 'on');\r\n }\r\n\r\n if ( this.eventTriggerState === true ) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on');\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change');\r\n this.eventTriggerState = false;\r\n }\r\n } else { // back scroll mode\r\n if (document.body.hasAttribute(this.attributeName) === true) {\r\n this.disable();\r\n document.body.removeAttribute(this.attributeName);\r\n }\r\n\r\n if ( this.eventTriggerState === false ) {\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off');\r\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change');\r\n this.eventTriggerState = true;\r\n }\r\n }\r\n }\r\n\r\n if (releaseOffset > 0) {\r\n if (diff {\r\n const dataStickyAttr = 'data-kt-sticky-' + name\r\n if (this.element.hasAttribute(dataStickyAttr) === true) {\r\n const attrValueInStr = this.element.getAttribute(dataStickyAttr)\r\n const attrValue = getAttributeValueByBreakpoint(attrValueInStr || '')\r\n if (attrValue !== null && String(attrValue) === 'true') {\r\n return true\r\n } else if (attrValue !== null && String(attrValue) === 'false') {\r\n return false\r\n }\r\n\r\n return attrValue\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n }\r\n }\r\n }\r\n\r\n private disable = () => {\r\n ElementStyleUtil.remove(this.element, 'top')\r\n ElementStyleUtil.remove(this.element, 'width')\r\n ElementStyleUtil.remove(this.element, 'left')\r\n ElementStyleUtil.remove(this.element, 'right')\r\n ElementStyleUtil.remove(this.element, 'z-index')\r\n ElementStyleUtil.remove(this.element, 'position')\r\n }\r\n\r\n private enable = (update: boolean = false) => {\r\n const top = this.getOption('top')\r\n const left = this.getOption('left')\r\n // const right = this.getOption(\"right\");\r\n let width = this.getOption('width')\r\n const zindex = this.getOption('zindex')\r\n\r\n if (update !== true && this.getOption('animation') === true) {\r\n ElementStyleUtil.set(this.element, 'animationDuration', this.getOption('animationSpeed'))\r\n ElementAnimateUtil.animateClass(this.element, 'animation ' + this.getOption('animationClass'))\r\n }\r\n\r\n if (zindex !== null) {\r\n ElementStyleUtil.set(this.element, 'z-index', zindex)\r\n ElementStyleUtil.set(this.element, 'position', 'fixed')\r\n }\r\n\r\n if (top !== null) {\r\n ElementStyleUtil.set(this.element, 'top', top)\r\n }\r\n\r\n if (width !== null && width !== undefined) {\r\n const widthTarget = getObjectPropertyValueByKey(width, 'target')\r\n if (widthTarget) {\r\n const targetElement = document.querySelector(widthTarget)\r\n if (targetElement) {\r\n width = getCSS(targetElement, 'width')\r\n }\r\n }\r\n ElementStyleUtil.set(this.element, 'width', width)\r\n }\r\n\r\n if (left !== null) {\r\n if (String(left).toLowerCase() === 'auto') {\r\n var offsetLeft = getElementOffset(this.element).left\r\n\r\n if (offsetLeft > 0) {\r\n ElementStyleUtil.set(this.element, 'left', String(offsetLeft) + 'px')\r\n }\r\n }\r\n }\r\n }\r\n\r\n public update = () => {\r\n if (document.body.hasAttribute(this.attributeName) === true) {\r\n this.disable()\r\n document.body.removeAttribute(this.attributeName)\r\n this.enable(true)\r\n document.body.setAttribute(this.attributeName, 'on')\r\n }\r\n }\r\n\r\n // Event API\r\n public on = (name: string, callBack: Function) => {\r\n return EventHandlerUtil.on(this.element, name, callBack)\r\n }\r\n\r\n public one = (name: string, callback: Function) => {\r\n return EventHandlerUtil.one(this.element, name, callback)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string) => {\r\n return EventHandlerUtil.trigger(this.element, name)\r\n }\r\n\r\n // Static methods\r\n public static hasInstace(element: HTMLElement) {\r\n return StickyStore.has(element.id)\r\n }\r\n\r\n public static getInstance(element: HTMLElement) {\r\n if (element !== null && StickyComponent.hasInstace(element)) {\r\n return StickyStore.get(element.id)\r\n }\r\n }\r\n\r\n // Create Instances\r\n public static createInstances(selector: string) {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((element) => {\r\n const item = element as HTMLElement\r\n let sticky = StickyComponent.getInstance(item)\r\n if (!sticky) {\r\n sticky = new StickyComponent(item, defaultStickyOptions)\r\n } else {\r\n sticky.element = item;\r\n sticky.update();\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: StickyOptions = defaultStickyOptions\r\n ): StickyComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let sticky = StickyComponent.getInstance(item)\r\n if (!sticky) {\r\n sticky = new StickyComponent(item, options)\r\n }\r\n return sticky\r\n }\r\n\r\n public static bootstrap(attr: string = '[data-kt-sticky=\"true\"]') {\r\n StickyComponent.createInstances(attr)\r\n }\r\n\r\n public static reInitialization(attr: string = '[data-kt-sticky=\"true\"]') {\r\n StickyComponent.createInstances(attr)\r\n }\r\n}\r\n\r\nexport {StickyComponent, defaultStickyOptions}\r\n","import {DataUtil, getUniqueIdWithPrefix, EventHandlerUtil} from '../_utils/index'\r\n// Helpers\r\nimport {CookieComponent} from './_CookieComponent'\r\n\r\nexport interface ToggleOptions {\r\n saveState: boolean\r\n targetState?: string\r\n toggleState?: string\r\n targetToggleMode?: string\r\n}\r\n\r\nconst defaultToggleOptions: ToggleOptions = {\r\n saveState: false,\r\n}\r\n\r\nclass ToggleComponent {\r\n element: HTMLElement\r\n instanceUid: string\r\n options: ToggleOptions\r\n state: string = ''\r\n target: HTMLElement | null = null\r\n attribute: string = ''\r\n\r\n constructor(_element: HTMLElement, options: ToggleOptions) {\r\n this.options = Object.assign(defaultToggleOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('toggle')\r\n this.element = _element\r\n\r\n const elementTargetAttr = this.element.getAttribute('data-kt-toggle-target')\r\n if (elementTargetAttr) {\r\n this.target = document.querySelector(elementTargetAttr)\r\n }\r\n const elementToggleAttr = this.element.getAttribute('data-kt-toggle-state')\r\n this.state = elementToggleAttr || ''\r\n this.attribute = 'data-kt-' + this.element.getAttribute('data-kt-toggle-name')\r\n\r\n // Event Handlers\r\n this._handlers()\r\n\r\n // Update Instance\r\n // Bind Instance\r\n DataUtil.set(this.element, 'toggle', this)\r\n }\r\n\r\n private _handlers = () => {\r\n this.element.addEventListener('click', (e: Event) => {\r\n e.preventDefault()\r\n this._toggle()\r\n })\r\n }\r\n\r\n // Event handlers\r\n private _toggle = () => {\r\n // Trigger \"after.toggle\" event\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.change')\r\n\r\n if (this._isEnabled()) {\r\n this._disable()\r\n } else {\r\n this._enable()\r\n }\r\n\r\n // Trigger \"before.toggle\" event\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.changed')\r\n return this\r\n }\r\n\r\n private _enable = () => {\r\n if (this._isEnabled()) {\r\n return\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enable')\r\n this.target?.setAttribute(this.attribute, 'on')\r\n if (this.state.length > 0) {\r\n this.element.classList.add(this.state)\r\n }\r\n\r\n if (this.options.saveState) {\r\n CookieComponent.set(this.attribute, 'on', {})\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enabled')\r\n return this\r\n }\r\n\r\n private _disable = () => {\r\n if (!this._isEnabled()) {\r\n return false\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disable')\r\n this.target?.removeAttribute(this.attribute)\r\n\r\n if (this.state.length > 0) {\r\n this.element.classList.remove(this.state)\r\n }\r\n\r\n if (this.options.saveState) {\r\n CookieComponent.delete(this.attribute)\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disabled')\r\n return this\r\n }\r\n\r\n private _isEnabled = () => {\r\n if (!this.target) {\r\n return false\r\n }\r\n\r\n return String(this.target.getAttribute(this.attribute)).toLowerCase() === 'on'\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n\r\n // Plugin API\r\n // Plugin API\r\n public toggle = () => {\r\n return this._toggle()\r\n }\r\n\r\n public enable = () => {\r\n return this._enable()\r\n }\r\n\r\n public disable = () => {\r\n return this._disable()\r\n }\r\n\r\n public isEnabled = () => {\r\n return this._isEnabled()\r\n }\r\n\r\n public goElement = () => {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event?: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (el: HTMLElement) => {\r\n const toggleElement = DataUtil.get(el, 'toggle')\r\n if (toggleElement) {\r\n return toggleElement\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (selector: string) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let toggleElement = ToggleComponent.getInstance(item)\r\n if (!toggleElement) {\r\n toggleElement = new ToggleComponent(item, defaultToggleOptions)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: ToggleOptions = defaultToggleOptions\r\n ): ToggleComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let toggle = ToggleComponent.getInstance(item)\r\n if (!toggle) {\r\n toggle = new ToggleComponent(item, options)\r\n }\r\n return toggle\r\n }\r\n\r\n public static reinitialization = () => {\r\n ToggleComponent.createInstances('[data-kt-toggle]')\r\n }\r\n\r\n public static bootstrap = () => {\r\n ToggleComponent.createInstances('[data-kt-toggle]')\r\n }\r\n}\r\n\r\nexport {ToggleComponent, defaultToggleOptions}\r\n","/* eslint-disable array-callback-return */\r\n/* eslint-disable no-useless-escape */\r\nimport {DataUtil} from '../_utils/index'\r\n\r\nexport interface IPasswordMeterOptions {\r\n minLength: number\r\n checkUppercase: boolean\r\n checkLowercase: boolean\r\n checkDigit: boolean\r\n checkChar: boolean\r\n scoreHighlightClass: string\r\n}\r\n\r\nexport interface IPasswordMeterQueries {\r\n componentName: string\r\n instanseQuery: string\r\n inputQuery: string\r\n visibilityQuery: string\r\n highlightQuery: string\r\n}\r\n\r\nconst defaultPasswordMeterOptions = {\r\n minLength: 8,\r\n checkUppercase: true,\r\n checkLowercase: true,\r\n checkDigit: true,\r\n checkChar: true,\r\n scoreHighlightClass: 'active',\r\n}\r\n\r\nconst defaultPasswordMeterQueires: IPasswordMeterQueries = {\r\n componentName: 'password-meter',\r\n instanseQuery: '[data-kt-password-meter]',\r\n inputQuery: 'input[type]',\r\n visibilityQuery: '[data-kt-password-meter-control=\"visibility\"]',\r\n highlightQuery: '[data-kt-password-meter-control=\"highlight\"]',\r\n}\r\n\r\nclass PasswordMeterComponent {\r\n element: HTMLElement\r\n inputElement: HTMLInputElement | null\r\n visibilityElement: HTMLElement | null\r\n highlightElement: HTMLElement | null\r\n options: IPasswordMeterOptions\r\n queries: IPasswordMeterQueries\r\n score: number\r\n checkSteps: number\r\n\r\n constructor(\r\n _element: HTMLElement,\r\n _options: IPasswordMeterOptions,\r\n _queries: IPasswordMeterQueries\r\n ) {\r\n this.element = _element\r\n this.options = Object.assign(defaultPasswordMeterOptions, _options)\r\n this.queries = _queries\r\n this.score = 0\r\n this.checkSteps = 5\r\n\r\n // Elements\r\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\r\n this.visibilityElement = this.element.querySelector(this.queries.visibilityQuery)\r\n this.highlightElement = this.element.querySelector(this.queries.highlightQuery)\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private handlers(): void {\r\n if (this.inputElement) {\r\n this.inputElement.addEventListener('input', () => {\r\n this.check()\r\n })\r\n }\r\n\r\n if (this.visibilityElement) {\r\n this.visibilityElement.addEventListener('click', () => {\r\n this.visitbility()\r\n })\r\n }\r\n }\r\n\r\n private visitbility() {\r\n if (this.visibilityElement && this.inputElement) {\r\n const visibleIcon = this.visibilityElement.querySelector(\r\n 'i:not(.d-none), .svg-icon:not(.d-none)'\r\n )\r\n\r\n const hiddenIcon = this.visibilityElement.querySelector('i.d-none, .svg-icon.d-none')\r\n\r\n const typeAttr = this.inputElement.getAttribute('type') || ''\r\n\r\n if (typeAttr === 'password') {\r\n this.inputElement.setAttribute('type', 'text')\r\n } else {\r\n this.inputElement.setAttribute('type', 'password')\r\n }\r\n\r\n visibleIcon?.classList.add('d-none')\r\n hiddenIcon?.classList.remove('d-none')\r\n\r\n this.inputElement.focus()\r\n }\r\n }\r\n\r\n private checkScore(): number {\r\n return 0\r\n }\r\n\r\n private checkLength(): boolean {\r\n if (this.inputElement) {\r\n return this.inputElement.value.length >= this.options.minLength // 20 score\r\n }\r\n\r\n return false\r\n }\r\n\r\n private checkLowerCase(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[a-z]/.test(val) // 20 score\r\n }\r\n\r\n private checkUppercase(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[A-Z]/.test(val) // 20 score\r\n }\r\n\r\n private checkDigit(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[0-9]/.test(val) // 20 score\r\n }\r\n\r\n private checkChar(): boolean {\r\n const val = this.inputElement ? this.inputElement.value : ''\r\n return /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g.test(val) // 20 score\r\n }\r\n\r\n private getCheckScore(): number {\r\n let count = 1\r\n if (this.options.checkUppercase) {\r\n count++\r\n }\r\n\r\n if (this.options.checkLowercase) {\r\n count++\r\n }\r\n\r\n if (this.options.checkDigit) {\r\n count++\r\n }\r\n\r\n if (this.options.checkChar) {\r\n count++\r\n }\r\n\r\n this.checkSteps = count\r\n return 100 / this.checkSteps\r\n }\r\n\r\n private highlight() {\r\n const items = this.highlightElement\r\n ? [].slice.call(this.highlightElement.querySelectorAll('div'))\r\n : []\r\n const total = items.length\r\n let index = 0\r\n const checkScore = this.getCheckScore()\r\n const score = this.getScore()\r\n\r\n items.map((item: HTMLElement) => {\r\n index++\r\n if (checkScore * index * (this.checkSteps / total) <= score) {\r\n item.classList.add('active')\r\n } else {\r\n item.classList.remove('active')\r\n }\r\n })\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public reset = () => {\r\n this.score = 0\r\n this.highlight()\r\n }\r\n\r\n public getScore() {\r\n return this.score\r\n }\r\n\r\n public check() {\r\n let score = 0\r\n const checkScore = this.getCheckScore()\r\n if (this.checkLength()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkUppercase && this.checkLowerCase()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkLowercase && this.checkUppercase()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkDigit && this.checkDigit()) {\r\n score = score + checkScore\r\n }\r\n\r\n if (this.options.checkChar && this.checkChar()) {\r\n score = score + checkScore\r\n }\r\n\r\n this.score = score\r\n this.highlight()\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultPasswordMeterQueires.componentName\r\n ) => {\r\n const passwordMeter = DataUtil.get(el, componentName)\r\n if (passwordMeter) {\r\n return passwordMeter\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery,\r\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\r\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let passwordMeter = PasswordMeterComponent.getInstance(item)\r\n if (!passwordMeter) {\r\n passwordMeter = new PasswordMeterComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery,\r\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\r\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\r\n ): PasswordMeterComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let passwordMeter = PasswordMeterComponent.getInstance(item)\r\n if (!passwordMeter) {\r\n passwordMeter = new PasswordMeterComponent(item, options, queries)\r\n }\r\n return passwordMeter\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultPasswordMeterQueires.instanseQuery) => {\r\n PasswordMeterComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (\r\n selector: string = defaultPasswordMeterQueires.instanseQuery\r\n ) => {\r\n PasswordMeterComponent.createInstances(selector)\r\n }\r\n}\r\nexport {PasswordMeterComponent, defaultPasswordMeterOptions, defaultPasswordMeterQueires}\r\n","import {\r\n getAttributeValueByBreakpoint,\r\n stringSnakeToCamel,\r\n getObjectPropertyValueByKey,\r\n EventHandlerUtil,\r\n throttle,\r\n} from '../_utils/index'\r\n\r\nexport class SwapperStore {\r\n static store: Map = new Map()\r\n\r\n public static set(instanceId: string, drawerComponentObj: SwapperComponent): void {\r\n if (SwapperStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n SwapperStore.store.set(instanceId, drawerComponentObj)\r\n }\r\n\r\n public static get(instanceId: string): SwapperComponent | undefined {\r\n if (!SwapperStore.has(instanceId)) {\r\n return\r\n }\r\n return SwapperStore.store.get(instanceId)\r\n }\r\n\r\n public static remove(instanceId: string): void {\r\n if (!SwapperStore.has(instanceId)) {\r\n return\r\n }\r\n\r\n SwapperStore.store.delete(instanceId)\r\n }\r\n\r\n public static has(instanceId: string): boolean {\r\n return SwapperStore.store.has(instanceId)\r\n }\r\n\r\n public static getAllInstances() {\r\n return SwapperStore.store\r\n }\r\n}\r\n\r\nexport interface ISwapperOptions {\r\n mode: string\r\n}\r\n\r\nexport interface ISwapperQueries {\r\n componentName: string\r\n instanseQuery: string\r\n attrQuery: string\r\n}\r\n\r\nconst defaultSwapperOptions: ISwapperOptions = {\r\n mode: 'append',\r\n}\r\n\r\nconst defaultSwapperQueires: ISwapperQueries = {\r\n componentName: 'swapper',\r\n instanseQuery: '[data-kt-swapper=\"true\"]',\r\n attrQuery: 'data-kt-swapper-',\r\n}\r\n\r\nclass SwapperComponent {\r\n element: HTMLElement\r\n options: ISwapperOptions\r\n queries: ISwapperQueries\r\n\r\n constructor(_element: HTMLElement, _options: ISwapperOptions, _queries: ISwapperQueries) {\r\n this.element = _element\r\n this.options = Object.assign(defaultSwapperOptions, _options)\r\n this.queries = _queries\r\n\r\n // Initial update\r\n this.update()\r\n\r\n SwapperStore.set(this.element.id, this)\r\n }\r\n\r\n private getOption(name: string) {\r\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n if (attr != null && String(value) === 'true') {\r\n return true\r\n } else if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public update = () => {\r\n const parentSelector = this.getOption('parent')?.toString()\r\n const mode = this.getOption('mode')\r\n const parentElement = parentSelector ? document.querySelector(parentSelector) : null\r\n\r\n if (parentElement && this.element.parentNode !== parentElement) {\r\n if (mode === 'prepend') {\r\n parentElement.prepend(this.element)\r\n } else if (mode === 'append') {\r\n parentElement.append(this.element)\r\n }\r\n }\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n public trigger = (name: string, event: Event) => {\r\n return EventHandlerUtil.trigger(this.element, name, event)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultSwapperQueires.componentName\r\n ): SwapperComponent | null => {\r\n const place = SwapperStore.get(el.id)\r\n if (place) {\r\n return place as SwapperComponent\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultSwapperQueires.instanseQuery,\r\n options: ISwapperOptions = defaultSwapperOptions,\r\n queries: ISwapperQueries = defaultSwapperQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let place = SwapperComponent.getInstance(item)\r\n if (!place) {\r\n place = new SwapperComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultSwapperQueires.instanseQuery,\r\n options: ISwapperOptions = defaultSwapperOptions,\r\n queries: ISwapperQueries = defaultSwapperQueires\r\n ): SwapperComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let place = SwapperComponent.getInstance(item)\r\n if (!place) {\r\n place = new SwapperComponent(item, options, queries)\r\n }\r\n return place\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultSwapperQueires.instanseQuery) => {\r\n SwapperComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultSwapperQueires.instanseQuery) => {\r\n SwapperComponent.createInstances(selector)\r\n }\r\n}\r\n\r\n// Window resize handler\r\nwindow.addEventListener('resize', function () {\r\n let timer\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Offcanvas instances on window resize\r\n const elements = document.querySelectorAll(defaultSwapperQueires.instanseQuery)\r\n elements.forEach((el) => {\r\n const place = SwapperComponent.getInstance(el as HTMLElement)\r\n if (place) {\r\n place.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n})\r\n\r\nexport {SwapperComponent, defaultSwapperOptions, defaultSwapperQueires}\r\n","import {createPopper, VirtualElement} from '@popperjs/core'\r\nimport {\r\n getElementChild,\r\n getElementParents,\r\n getAttributeValueByBreakpoint,\r\n getUniqueIdWithPrefix,\r\n DataUtil,\r\n ElementStyleUtil,\r\n EventHandlerUtil,\r\n insertAfterElement,\r\n slideUp,\r\n slideDown,\r\n DOMEventHandlerUtil,\r\n throttle,\r\n getHighestZindex,\r\n} from '../_utils/index'\r\n\r\nexport interface MenuOptions {\r\n dropdown: {\r\n hoverTimeout: number\r\n zindex: number\r\n }\r\n accordion: {\r\n slideSpeed: number\r\n expand: boolean\r\n }\r\n}\r\n\r\nconst defaultMenuOptions: MenuOptions = {\r\n dropdown: {\r\n hoverTimeout: 200,\r\n zindex: 115,\r\n },\r\n accordion: {\r\n slideSpeed: 250,\r\n expand: false,\r\n },\r\n}\r\n\r\ntype PopperPlacement =\r\n | 'right'\r\n | 'auto'\r\n | 'auto-start'\r\n | 'auto-end'\r\n | 'top'\r\n | 'bottom'\r\n | 'left'\r\n | 'top-start'\r\n | 'top-end'\r\n | 'bottom-start'\r\n | 'bottom-end'\r\n | 'right-start'\r\n | 'right-end'\r\n | 'left-start'\r\n | 'left-end'\r\n | undefined\r\n\r\nclass MenuComponent {\r\n element: HTMLElement\r\n options: MenuOptions\r\n instanceUid: string\r\n triggerElement: HTMLElement | null = null\r\n\r\n constructor(_element: HTMLElement, options: MenuOptions) {\r\n this.element = _element\r\n this.options = Object.assign(defaultMenuOptions, options)\r\n this.instanceUid = getUniqueIdWithPrefix('menu')\r\n // this.element.setAttribute('data-kt-menu', 'true')\r\n this._setTriggerElement()\r\n this._update()\r\n DataUtil.set(this.element, 'menu', this)\r\n return this\r\n }\r\n\r\n // Set external trigger element\r\n private _setTriggerElement = () => {\r\n const target = document.querySelector(\r\n `[data-kt-menu-target=\"#${this.element.getAttribute('id')}\"`\r\n )\r\n\r\n if (target) {\r\n this.triggerElement = target as HTMLElement\r\n } else if (this.element.closest('[data-kt-menu-trigger]')) {\r\n this.triggerElement = this.element.closest('[data-kt-menu-trigger]') as HTMLElement\r\n } else if (\r\n this.element.parentNode &&\r\n getElementChild(this.element.parentNode as HTMLElement, '[data-kt-menu-trigger]')\r\n ) {\r\n const child = getElementChild(\r\n this.element.parentNode as HTMLElement,\r\n '[data-kt-menu-trigger]'\r\n )\r\n if (child) {\r\n this.triggerElement = child\r\n }\r\n }\r\n\r\n if (this.triggerElement) {\r\n DataUtil.set(this.triggerElement, 'menu', this)\r\n }\r\n }\r\n\r\n // Test if menu has external trigger element\r\n private _isTriggerElement = (item: HTMLElement) => {\r\n return this.triggerElement === item\r\n }\r\n\r\n // Get item option(through html attributes)\r\n private _getItemOption = (item: HTMLElement, name: string) => {\r\n let value: string | JSON | null | boolean = null\r\n if (item && item.hasAttribute('data-kt-menu-' + name)) {\r\n const attr = item.getAttribute('data-kt-menu-' + name) || ''\r\n value = getAttributeValueByBreakpoint(attr)\r\n if (value !== null && String(value) === 'true') {\r\n value = true\r\n } else if (value !== null && String(value) === 'false') {\r\n value = false\r\n }\r\n }\r\n return value\r\n }\r\n\r\n // Get item element\r\n private _getItemElement = (_element: HTMLElement) => {\r\n // Element is the external trigger element\r\n if (this._isTriggerElement(_element)) {\r\n return _element\r\n }\r\n\r\n // Element has item toggler attribute\r\n if (_element.hasAttribute('data-kt-menu-trigger')) {\r\n return _element\r\n }\r\n\r\n // Element has item DOM reference in it's data storage\r\n const itemElement = DataUtil.get(_element, 'item')\r\n if (itemElement) {\r\n return itemElement\r\n }\r\n\r\n // Item is parent of element\r\n const item = _element.closest('.menu-item[data-kt-menu-trigger]')\r\n if (item) {\r\n return item\r\n }\r\n\r\n // Element's parent has item DOM reference in it's data storage\r\n const sub = _element.closest('.menu-sub')\r\n if (sub) {\r\n const subItem = DataUtil.get(sub as HTMLElement, 'item')\r\n if (subItem) {\r\n return subItem\r\n }\r\n }\r\n }\r\n\r\n // Get item parent element\r\n private _getItemParentElement = (item: HTMLElement) => {\r\n const sub = item.closest('.menu-sub')\r\n if (!sub) {\r\n return null\r\n }\r\n\r\n const subItem = DataUtil.get(sub as HTMLElement, 'item')\r\n if (subItem) {\r\n return subItem\r\n }\r\n\r\n const parentItem = sub.closest('.menu-item[data-kt-menu-trigger]')\r\n if (sub && parentItem) {\r\n return parentItem\r\n }\r\n\r\n return null\r\n }\r\n\r\n // Get item parent elements\r\n private _getItemParentElements = (item: HTMLElement) => {\r\n const parents:Array = []\r\n let parent:Element\r\n let i = 0\r\n let buffer:HTMLElement = item\r\n\r\n do {\r\n parent = this._getItemParentElement(buffer)\r\n if (parent) {\r\n parents.push(parent)\r\n buffer = parent as HTMLElement\r\n }\r\n\r\n i++\r\n } while (parent !== null && i < 20)\r\n\r\n if (this.triggerElement) {\r\n parents.unshift(this.triggerElement)\r\n }\r\n\r\n return parents\r\n }\r\n\r\n // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/)\r\n private _getDropdownPopperConfig = (item: HTMLElement) => {\r\n // Placement\r\n const placementOption = this._getItemOption(item, 'placement')\r\n let placement: PopperPlacement = 'right'\r\n if (placementOption) {\r\n placement = placementOption as PopperPlacement\r\n }\r\n\r\n // Flip\r\n // const flipValue = this._getItemOption(item, 'flip')\r\n // const flip = flipValue ? flipValue.toString().split(',') : []\r\n\r\n // Offset\r\n const offsetValue = this._getItemOption(item, 'offset')\r\n const offset = offsetValue ? offsetValue.toString().split(',') : []\r\n\r\n // Strategy\r\n const strategy: 'absolute' | 'fixed' | undefined =\r\n this._getItemOption(item, 'overflow') === true ? 'absolute' : 'fixed'\r\n\r\n return {\r\n placement: placement,\r\n strategy: strategy,\r\n modifiers: [\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: offset,\r\n },\r\n },\r\n {\r\n name: 'preventOverflow'\r\n },\r\n {\r\n name: 'flip',\r\n options: {\r\n // altBoundary: true,\r\n // fallbackPlacements: flip,\r\n flipVariations: false\r\n },\r\n },\r\n ],\r\n }\r\n }\r\n\r\n // Get item child element\r\n private _getItemChildElement = (item: HTMLElement) => {\r\n let selector = item\r\n\r\n const subItem = DataUtil.get(item, 'sub')\r\n if (subItem) {\r\n selector = subItem\r\n }\r\n\r\n if (selector) {\r\n //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]');\r\n const element = selector.querySelector('.menu-item[data-kt-menu-trigger]')\r\n if (element) {\r\n return element\r\n }\r\n }\r\n return null\r\n }\r\n\r\n // Get item child elements\r\n private _getItemChildElements = (item: HTMLElement) => {\r\n const children: Array = []\r\n let child:Element | null\r\n let i = 0\r\n let buffer = item\r\n do {\r\n child = this._getItemChildElement(buffer)\r\n if (child) {\r\n children.push(child)\r\n buffer = child as HTMLElement\r\n }\r\n\r\n i++\r\n } while (child !== null && i < 20)\r\n\r\n return children\r\n }\r\n\r\n // Get item sub element\r\n private _getItemSubElement = (item: HTMLElement) => {\r\n if (!item) {\r\n return null\r\n }\r\n\r\n if (this._isTriggerElement(item)) {\r\n return this.element\r\n }\r\n\r\n if (item.classList.contains('menu-sub')) {\r\n return item\r\n } else if (DataUtil.has(item, 'sub')) {\r\n return DataUtil.get(item, 'sub')\r\n } else {\r\n return getElementChild(item, '.menu-sub')\r\n }\r\n }\r\n\r\n private _getCss = (el: HTMLElement, styleProp: string) => {\r\n const defaultView = (el.ownerDocument || document).defaultView\r\n if (!defaultView) {\r\n return ''\r\n }\r\n\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\r\n }\r\n\r\n // Get item sub type\r\n private _getItemSubType = (element: HTMLElement) => {\r\n const sub = this._getItemSubElement(element)\r\n if (sub && parseInt(this._getCss(sub, 'z-index')) > 0) {\r\n return 'dropdown'\r\n } else {\r\n return 'accordion'\r\n }\r\n }\r\n\r\n // Test if item's sub is shown\r\n private _isItemSubShown = (item: HTMLElement) => {\r\n let sub = this._getItemSubElement(item)\r\n if (sub) {\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n return sub.classList.contains('show') && sub.hasAttribute('data-popper-placement')\r\n } else {\r\n return item.classList.contains('show')\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n // Test if item dropdown is permanent\r\n private _isItemDropdownPermanent = (item: HTMLElement) => {\r\n return this._getItemOption(item, 'permanent') === true\r\n }\r\n\r\n // Test if item's parent is shown\r\n private _isItemParentShown = (item: HTMLElement) => {\r\n return getElementParents(item, '.menu-item.show').length > 0\r\n }\r\n\r\n // Test of it is item sub element\r\n private _isItemSubElement = (item: HTMLElement) => {\r\n return item.classList.contains('menu-sub')\r\n }\r\n\r\n // Test if item has sub\r\n private _hasItemSub = (item: HTMLElement) => {\r\n return item.classList.contains('menu-item') && item.hasAttribute('data-kt-menu-trigger')\r\n }\r\n\r\n // Get link element\r\n private _getItemLinkElement = (item: HTMLElement) => {\r\n return getElementChild(item, '.menu-link')\r\n }\r\n\r\n // Get toggle element\r\n private _getItemToggleElement = (item: HTMLElement) => {\r\n if (this.triggerElement) {\r\n return this.triggerElement\r\n }\r\n\r\n return this._getItemLinkElement(item)\r\n }\r\n\r\n // Show item dropdown\r\n private _showDropdown = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.show') === false) {\r\n return\r\n }\r\n\r\n // Hide all currently shown dropdowns except current one\r\n MenuComponent.hideDropdowns(item)\r\n\r\n // const toggle = this._isTriggerElement(item) ? item : this._getItemLinkElement(item);\r\n const sub = this._getItemSubElement(item)\r\n const width = this._getItemOption(item, 'width')\r\n const height = this._getItemOption(item, 'height')\r\n\r\n let zindex = this.options.dropdown.zindex\r\n const parentZindex = getHighestZindex(item) // update\r\n // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update\r\n if (parentZindex !== null && parentZindex >= zindex) {\r\n zindex = parentZindex + 1\r\n }\r\n\r\n if (zindex) {\r\n ElementStyleUtil.set(sub, 'z-index', zindex)\r\n }\r\n\r\n if (width) {\r\n ElementStyleUtil.set(sub, 'width', width)\r\n }\r\n\r\n if (height) {\r\n ElementStyleUtil.set(sub, 'height', height)\r\n }\r\n\r\n this.initDropdownPopper(item, sub)\r\n\r\n item.classList.add('show')\r\n item.classList.add('menu-dropdown')\r\n sub.classList.add('show')\r\n\r\n // Append the sub the the root of the menu\r\n if (this._getItemOption(item, 'overflow') === true) {\r\n document.body.appendChild(sub)\r\n DataUtil.set(item, 'sub', sub)\r\n DataUtil.set(sub, 'item', item)\r\n DataUtil.set(sub, 'menu', this)\r\n } else {\r\n DataUtil.set(sub, 'item', item)\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.shown')\r\n }\r\n\r\n // Init dropdown popper(new)\r\n private initDropdownPopper = (item: HTMLElement, sub: HTMLElement) => {\r\n // Setup popper instance\r\n let reference\r\n const attach = this._getItemOption(item, 'attach') as string\r\n\r\n if (attach) {\r\n if (attach === 'parent') {\r\n reference = item.parentNode\r\n } else {\r\n reference = document.querySelector(attach)\r\n }\r\n } else {\r\n reference = item\r\n }\r\n\r\n if (reference) {\r\n const popper = createPopper(\r\n reference as Element | VirtualElement,\r\n sub,\r\n this._getDropdownPopperConfig(item)\r\n )\r\n DataUtil.set(item, 'popper', popper)\r\n }\r\n }\r\n\r\n // Hide item dropdown\r\n private _hideDropdown = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hide') === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n ElementStyleUtil.set(sub, 'z-index', '')\r\n ElementStyleUtil.set(sub, 'width', '')\r\n ElementStyleUtil.set(sub, 'height', '')\r\n item.classList.remove('show')\r\n item.classList.remove('menu-dropdown')\r\n sub.classList.remove('show')\r\n\r\n // Append the sub back to it's parent\r\n if (this._getItemOption(item, 'overflow') === true) {\r\n if (item.classList.contains('menu-item')) {\r\n item.appendChild(sub)\r\n } else {\r\n insertAfterElement(this.element, item)\r\n }\r\n\r\n DataUtil.remove(item, 'sub')\r\n DataUtil.remove(sub, 'item')\r\n DataUtil.remove(sub, 'menu')\r\n }\r\n\r\n if (DataUtil.has(item, 'popper') === true) {\r\n DataUtil.get(item, 'popper').destroy()\r\n DataUtil.remove(item, 'popper')\r\n }\r\n\r\n // Destroy popper(new)\r\n this.destroyDropdownPopper(item)\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\r\n }\r\n\r\n // Destroy dropdown popper(new)\r\n private destroyDropdownPopper = (item: HTMLElement) => {\r\n if (DataUtil.has(item, 'popper') === true) {\r\n DataUtil.get(item, 'popper').destroy()\r\n DataUtil.remove(item, 'popper')\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\r\n }\r\n\r\n private _showAccordion = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.show') === false) {\r\n return\r\n }\r\n\r\n if (this.options.accordion.expand === false) {\r\n this._hideAccordions(item)\r\n }\r\n\r\n if (DataUtil.has(item, 'popper') === true) {\r\n this._hideDropdown(item)\r\n }\r\n\r\n item.classList.add('hover') // updateWW\r\n item.classList.add('showing')\r\n\r\n const subElement = this._getItemSubElement(item)\r\n if (subElement) {\r\n const sub = subElement as HTMLElement\r\n slideDown(sub, this.options.accordion.slideSpeed, () => {\r\n item.classList.remove('showing')\r\n item.classList.add('show')\r\n sub.classList.add('show')\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.shown')\r\n })\r\n }\r\n }\r\n\r\n private _hideAccordion = (item: HTMLElement) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hide') === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n item.classList.add('hiding')\r\n\r\n if (sub) {\r\n slideUp(sub, this.options.accordion.slideSpeed, () => {\r\n item.classList.remove('hiding')\r\n item.classList.remove('show')\r\n sub.classList.remove('show')\r\n item.classList.remove('hover') // update\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hidden')\r\n })\r\n }\r\n }\r\n\r\n // Hide all shown accordions of item\r\n private _hideAccordions = (item: HTMLElement) => {\r\n const itemsToHide = this.element.querySelectorAll('.show[data-kt-menu-trigger]')\r\n if (itemsToHide && itemsToHide.length > 0) {\r\n for (var i = 0, len = itemsToHide.length; i < len; i++) {\r\n const itemToHide = itemsToHide[i] as HTMLElement\r\n\r\n if (\r\n this._getItemSubType(itemToHide) === 'accordion' &&\r\n itemToHide !== item &&\r\n item.contains(itemToHide) === false &&\r\n itemToHide.contains(item) === false\r\n ) {\r\n this._hideAccordion(itemToHide)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Event Handlers\r\n // Reset item state classes if item sub type changed\r\n private _reset = (item: HTMLElement) => {\r\n if (this._hasItemSub(item) === false) {\r\n return\r\n }\r\n\r\n const sub = this._getItemSubElement(item)\r\n\r\n // Reset sub state if sub type is changed during the window resize\r\n if (DataUtil.has(item, 'type') && DataUtil.get(item, 'type') !== this._getItemSubType(item)) {\r\n // updated\r\n item.classList.remove('hover')\r\n item.classList.remove('show')\r\n item.classList.remove('show')\r\n if (sub && sub.removeClass) {\r\n sub.removeClass(sub, 'show')\r\n }\r\n } // updated\r\n }\r\n\r\n // TODO: not done\r\n private _destroy = () => {}\r\n\r\n // Update all item state classes if item sub type changed\r\n private _update = () => {\r\n const items = this.element.querySelectorAll('.menu-item[data-kt-menu-trigger]')\r\n items.forEach((el) => this._reset(el as HTMLElement))\r\n }\r\n\r\n // Hide item sub\r\n private _hide = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === false) {\r\n return\r\n }\r\n\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n this._hideDropdown(item)\r\n } else if (this._getItemSubType(item) === 'accordion') {\r\n this._hideAccordion(item)\r\n }\r\n }\r\n\r\n // Show item sub\r\n private _show = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === true) {\r\n return\r\n }\r\n\r\n if (this._getItemSubType(item) === 'dropdown') {\r\n this._showDropdown(item) // // show current dropdown\r\n } else if (this._getItemSubType(item) === 'accordion') {\r\n this._showAccordion(item)\r\n }\r\n\r\n // Remember last submenu type\r\n\r\n DataUtil.set(item, 'type', this._getItemSubType(item)) // updated\r\n }\r\n\r\n // Toggle item sub\r\n private _toggle = (item: HTMLElement) => {\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._isItemSubShown(item) === true) {\r\n this._hide(item)\r\n } else {\r\n this._show(item)\r\n }\r\n }\r\n\r\n // Mouseout handle\r\n private _mouseout = (element: HTMLElement, e: MouseEvent) => {\r\n const item = this._getItemElement(element)\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'trigger') !== 'hover') {\r\n return\r\n }\r\n\r\n const timeout = setTimeout(() => {\r\n if (DataUtil.get(item, 'hover') === '1') {\r\n this._hide(item)\r\n }\r\n }, this.options.dropdown.hoverTimeout)\r\n\r\n DataUtil.set(item, 'hover', '1')\r\n DataUtil.set(item, 'timeout', timeout)\r\n }\r\n\r\n // Mouseover handle\r\n private _mouseover = (element: HTMLElement, e: MouseEvent) => {\r\n const item = this._getItemElement(element)\r\n if (!item) {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'trigger') !== 'hover') {\r\n return\r\n }\r\n\r\n if (DataUtil.get(item, 'hover') === '1') {\r\n clearTimeout(DataUtil.get(item, 'timeout'))\r\n DataUtil.remove(item, 'hover')\r\n DataUtil.remove(item, 'timeout')\r\n }\r\n\r\n this._show(item)\r\n }\r\n\r\n // Dismiss handler\r\n private _dismiss = (element: HTMLElement, e: Event) => {\r\n const item = this._getItemElement(element)\r\n const items = this._getItemChildElements(item)\r\n //if ( item !== null && _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\r\n const itemSubType = this._getItemSubType(item)\r\n if (item !== null && itemSubType === 'dropdown') {\r\n this._hide(item) // hide items dropdown\r\n\r\n // Hide all child elements as well\r\n if (items.length > 0) {\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n //if ( _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\r\n if (items[i] !== null && this._getItemSubType(items[i] as HTMLElement) === 'dropdown') {\r\n this._hide(items[i] as HTMLElement)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Link handler\r\n private _link = (element: HTMLElement, e: Event) => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.link.click') === false) {\r\n return\r\n }\r\n\r\n // Dismiss all shown dropdowns\r\n MenuComponent.hideDropdowns(undefined)\r\n EventHandlerUtil.trigger(this.element, 'kt.menu.link.clicked')\r\n }\r\n\r\n private _click = (element: HTMLElement, e: Event) => {\r\n e.preventDefault()\r\n const item = this._getItemElement(element)\r\n if (this._getItemOption(item, 'trigger') !== 'click') {\r\n return\r\n }\r\n\r\n if (this._getItemOption(item, 'toggle') === false) {\r\n this._show(item)\r\n } else {\r\n this._toggle(item)\r\n }\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n public click = (element: HTMLElement, e: Event) => {\r\n return this._click(element, e)\r\n }\r\n\r\n public link = (element: HTMLElement, e: Event) => {\r\n return this._link(element, e)\r\n }\r\n\r\n public dismiss = (element: HTMLElement, e: Event) => {\r\n return this._dismiss(element, e)\r\n }\r\n\r\n public mouseover = (element: HTMLElement, e: Event) => {\r\n return this._mouseover(element, e as MouseEvent)\r\n }\r\n\r\n public mouseout = (element: HTMLElement, e: Event) => {\r\n return this._mouseout(element, e as MouseEvent)\r\n }\r\n\r\n // General Methods\r\n public getItemTriggerType = (item: HTMLElement) => {\r\n return this._getItemOption(item, 'trigger')\r\n }\r\n\r\n public getItemSubType = (element: HTMLElement) => {\r\n return this._getItemSubType(element)\r\n }\r\n\r\n public show = (item: HTMLElement) => {\r\n return this._show(item)\r\n }\r\n\r\n public hide = (item: HTMLElement) => {\r\n return this._hide(item)\r\n }\r\n\r\n public reset = (item: HTMLElement) => {\r\n return this._reset(item)\r\n }\r\n\r\n public update = () => {\r\n return this._update()\r\n }\r\n\r\n public getElement = () => {\r\n return this.element\r\n }\r\n\r\n public getItemLinkElement = (item: HTMLElement) => {\r\n return this._getItemLinkElement(item)\r\n }\r\n\r\n public getItemToggleElement = (item: HTMLElement) => {\r\n return this._getItemToggleElement(item)\r\n }\r\n\r\n public getItemSubElement = (item: HTMLElement) => {\r\n return this._getItemSubElement(item)\r\n }\r\n\r\n public getItemParentElements = (item: HTMLElement) => {\r\n return this._getItemParentElements(item)\r\n }\r\n\r\n public isItemSubShown = (item: HTMLElement) => {\r\n return this._isItemSubShown(item)\r\n }\r\n\r\n public isItemParentShown = (item: HTMLElement) => {\r\n return this._isItemParentShown(item)\r\n }\r\n\r\n public getTriggerElement = () => {\r\n return this.triggerElement\r\n }\r\n\r\n public isItemDropdownPermanent = (item: HTMLElement) => {\r\n return this._isItemDropdownPermanent(item)\r\n }\r\n\r\n // Accordion Mode Methods\r\n public hideAccordions = (item: HTMLElement) => {\r\n return this._hideAccordions(item)\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: any) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: any) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n // public static methods\r\n // Get KTMenu instance by element\r\n public static getInstance = (element: HTMLElement) => {\r\n // Element has menu DOM reference in it's DATA storage\r\n const elementMenu = DataUtil.get(element, 'menu')\r\n if (elementMenu) {\r\n return elementMenu\r\n }\r\n\r\n // Element has .menu parent\r\n const menu = element.closest('.menu')\r\n if (menu) {\r\n const menuData = DataUtil.get(menu as HTMLElement, 'menu')\r\n if (menuData) {\r\n return menuData\r\n }\r\n }\r\n\r\n // Element has a parent with DOM reference to .menu in it's DATA storage\r\n if (element.classList.contains('menu-link')) {\r\n const sub = element.closest('.menu-sub')\r\n if (sub) {\r\n const subMenu = DataUtil.get(sub as HTMLElement, 'menu')\r\n if (subMenu) {\r\n return subMenu\r\n }\r\n }\r\n }\r\n\r\n return null\r\n }\r\n\r\n // Hide all dropdowns and skip one if provided\r\n public static hideDropdowns = (skip: HTMLElement | undefined) => {\r\n const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n\r\n if (items && items.length > 0) {\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n const item = items[i]\r\n const menu = MenuComponent.getInstance(item as HTMLElement)\r\n\r\n if (menu && menu.getItemSubType(item) === 'dropdown') {\r\n if (skip) {\r\n if (\r\n menu.getItemSubElement(item).contains(skip) === false &&\r\n item.contains(skip) === false &&\r\n item !== skip\r\n ) {\r\n menu.hide(item)\r\n }\r\n } else {\r\n menu.hide(item)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public static updateDropdowns = () => {\r\n const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n if (items && items.length > 0) {\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i]\r\n\r\n if (DataUtil.has(item as HTMLElement, 'popper')) {\r\n DataUtil.get(item as HTMLElement, 'popper').forceUpdate()\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Global handlers\r\n public static createInstances = (selector: string) => {\r\n // Initialize menus\r\n document.querySelectorAll(selector).forEach((el) => {\r\n const menuItem = el as HTMLElement\r\n let menuInstance = MenuComponent.getInstance(menuItem)\r\n if (!menuInstance) {\r\n menuInstance = new MenuComponent(el as HTMLElement, defaultMenuOptions)\r\n }\r\n })\r\n }\r\n\r\n public static initGlobalHandlers = () => {\r\n // Dropdown handler\r\n document.addEventListener('click', (e) => {\r\n const menuItems = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\r\n if (menuItems && menuItems.length > 0) {\r\n for (let i = 0; i < menuItems.length; i++) {\r\n const item = menuItems[i] as HTMLElement\r\n const menuObj = MenuComponent.getInstance(item) as MenuComponent\r\n if (menuObj && menuObj.getItemSubType(item) === 'dropdown') {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const menu = menuObj.getElement()\r\n const sub = menuObj.getItemSubElement(item) as HTMLElement\r\n if (item === e.target || item.contains(e.target as HTMLElement)) {\r\n continue\r\n }\r\n\r\n if (sub && (sub === e.target || sub.contains(e.target as HTMLElement))) {\r\n continue\r\n }\r\n menuObj.hide(item)\r\n }\r\n }\r\n }\r\n })\r\n\r\n // Sub toggle handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger=\"auto\"])',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu) {\r\n return menu.click(this, e)\r\n }\r\n }\r\n )\r\n\r\n // // Link handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '.menu-item:not([data-kt-menu-trigger]) > .menu-link',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n e.stopPropagation()\r\n const menu = MenuComponent.getInstance(this)\r\n if (menu && menu.link) {\r\n return menu.link(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Dismiss handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-dismiss=\"true\"]',\r\n 'click',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu) {\r\n return menu.dismiss(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Mouseover handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-trigger], .menu-sub',\r\n 'mouseover',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu && menu.getItemSubType(this) === 'dropdown') {\r\n return menu.mouseover(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Mouseout handler\r\n DOMEventHandlerUtil.on(\r\n document.body,\r\n '[data-kt-menu-trigger], .menu-sub',\r\n 'mouseout',\r\n function (this: HTMLElement, e: Event) {\r\n const menu = MenuComponent.getInstance(this) as MenuComponent\r\n if (menu && menu.getItemSubType(this) === 'dropdown') {\r\n return menu.mouseout(this, e)\r\n }\r\n }\r\n )\r\n\r\n // Resize handler\r\n window.addEventListener('resize', () => {\r\n let timer\r\n throttle(\r\n timer,\r\n () => {\r\n // Locate and update Drawer instances on window resize\r\n const elements = document.querySelectorAll('[data-kt-menu=\"true\"]')\r\n elements.forEach((el) => {\r\n const menu = MenuComponent.getInstance(el as HTMLElement)\r\n if (menu) {\r\n menu.update()\r\n }\r\n })\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n public static bootstrap = () => {\r\n MenuComponent.initGlobalHandlers()\r\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\r\n }\r\n\r\n public static reinitialization = () => {\r\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\r\n }\r\n\r\n public static createInsance = (\r\n selector: string,\r\n options: MenuOptions = defaultMenuOptions\r\n ): MenuComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let menu = MenuComponent.getInstance(item)\r\n if (!menu) {\r\n menu = new MenuComponent(item, options)\r\n }\r\n return menu\r\n }\r\n}\r\n\r\nexport {MenuComponent, defaultMenuOptions}\r\n","import {\r\n EventHandlerUtil,\r\n DataUtil,\r\n getBreakpoint,\r\n getAttributeValueByBreakpoint,\r\n stringSnakeToCamel,\r\n getObjectPropertyValueByKey,\r\n getViewPort,\r\n isVisibleElement,\r\n throttle,\r\n} from '../_utils/index'\r\n\r\nimport {MenuComponent, defaultMenuOptions} from './MenuComponent'\r\n\r\nexport interface ISearchOptions {\r\n minLength: number // Miniam text lenght to query search\r\n keypress: boolean // Enable search on keypress\r\n enter: boolean // Enable search on enter key press\r\n layout: 'menu' | 'inline' // Use 'menu' or 'inline' layout options to display search results\r\n responsive?: number // Pass integer value or bootstrap compatible breakpoint key(sm,md,lg,xl,xxl) to enable reponsive form mode for device width below the breakpoint value\r\n showOnFocus: boolean // Always show menu on input focus\r\n}\r\n\r\nexport interface ISearchQueries {\r\n componentName: string\r\n instanseQuery: string\r\n attrQuery: string\r\n}\r\n\r\nconst defaultSearchOptions: ISearchOptions = {\r\n minLength: 2, // Miniam text lenght to query search\r\n keypress: true, // Enable search on keypress\r\n enter: true, // Enable search on enter key press\r\n layout: 'menu', // Use 'menu' or 'inline' layout options to display search results\r\n showOnFocus: true, // Always show menu on input focus\r\n}\r\n\r\nconst defaultSearchQueires: ISearchQueries = {\r\n componentName: 'search',\r\n instanseQuery: '[data-kt-search]',\r\n attrQuery: 'data-kt-search-',\r\n}\r\n\r\nclass SearchComponent {\r\n element: HTMLElement\r\n contentElement: HTMLElement\r\n formElement: HTMLFormElement\r\n inputElement: HTMLInputElement\r\n spinnerElement: HTMLElement\r\n clearElement: HTMLElement\r\n toggleElement: HTMLElement\r\n submitElement: HTMLElement\r\n toolbarElement: HTMLElement\r\n resultsElement: HTMLElement\r\n suggestionElement: HTMLElement\r\n emptyElement: HTMLElement\r\n layout: any\r\n\r\n options: ISearchOptions\r\n queries: ISearchQueries\r\n\r\n processing: boolean = false\r\n menuObject: MenuComponent | undefined\r\n\r\n constructor(_element: HTMLElement, _options: ISearchOptions, _queries: ISearchQueries) {\r\n // Variables\r\n this.options = Object.assign(defaultSearchOptions, _options)\r\n this.queries = _queries\r\n\r\n // Elements\r\n this.element = _element\r\n this.contentElement = this._getElement('content') as HTMLElement\r\n this.formElement = this._getElement('form') as HTMLFormElement\r\n this.inputElement = this._getElement('input') as HTMLInputElement\r\n this.spinnerElement = this._getElement('spinner') as HTMLElement\r\n this.clearElement = this._getElement('clear') as HTMLElement\r\n this.toggleElement = this._getElement('toggle') as HTMLElement\r\n this.submitElement = this._getElement('submit') as HTMLElement\r\n this.toolbarElement = this._getElement('toolbar') as HTMLElement\r\n\r\n this.resultsElement = this._getElement('results') as HTMLElement\r\n this.suggestionElement = this._getElement('suggestion') as HTMLElement\r\n this.emptyElement = this._getElement('empty') as HTMLElement\r\n\r\n // Layout\r\n this.layout = this.getOption('layout')\r\n if (this.layout === 'menu') {\r\n this.menuObject = new MenuComponent(this.contentElement, defaultMenuOptions)\r\n }\r\n\r\n // Update\r\n this.update()\r\n\r\n // Event Handlers\r\n this.handlers()\r\n\r\n DataUtil.set(this.element, this.queries.componentName, this)\r\n }\r\n\r\n private _getElement = (name: string) => {\r\n return this.element.querySelector('[data-kt-search-element=\"' + name + '\"]')\r\n }\r\n\r\n // Get option\r\n private getOption = (name: string) => {\r\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\r\n if (attr) {\r\n let value = getAttributeValueByBreakpoint(attr)\r\n\r\n if (value !== null && String(value) === 'true') {\r\n return true\r\n } else if (value !== null && String(value) === 'false') {\r\n return false\r\n }\r\n\r\n return value\r\n } else {\r\n const optionName = stringSnakeToCamel(name)\r\n\r\n const option = getObjectPropertyValueByKey(this.options, optionName)\r\n if (option) {\r\n return getAttributeValueByBreakpoint(option)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n\r\n // Check if responsive form mode is enabled\r\n private getResponsiveFormMode = () => {\r\n const responsive = this.getOption('responsive') as string\r\n const width = getViewPort().width\r\n\r\n if (!responsive) {\r\n return null\r\n }\r\n\r\n const breakpoint = getBreakpoint(responsive)\r\n let breakPointNum = -1\r\n if (!breakpoint) {\r\n breakPointNum = parseInt(responsive)\r\n } else {\r\n breakPointNum = +breakpoint\r\n }\r\n\r\n if (width < breakPointNum) {\r\n return 'on'\r\n } else {\r\n return 'off'\r\n }\r\n }\r\n\r\n // Focus\r\n private focus = () => {\r\n this.element.classList.add('focus')\r\n\r\n if (\r\n this.getOption('show-on-focus') === true ||\r\n this.inputElement.value.length >= this.options.minLength\r\n ) {\r\n this.show()\r\n }\r\n }\r\n\r\n // Blur\r\n private blur = () => {\r\n this.element.classList.remove('focus')\r\n }\r\n\r\n // Enter\r\n private enter = (e: KeyboardEvent) => {\r\n const key = e.charCode || e.keyCode || 0\r\n\r\n if (key === 13) {\r\n e.preventDefault()\r\n\r\n this.search()\r\n }\r\n }\r\n\r\n // Input\r\n private input = () => {\r\n if (this.getOption('min-length')) {\r\n const minLength = parseInt(this.getOption('min-length') as string)\r\n\r\n if (this.inputElement.value.length >= minLength) {\r\n this.search()\r\n } else if (this.inputElement.value.length === 0) {\r\n this.clear()\r\n }\r\n }\r\n }\r\n\r\n private handlers(): void {\r\n // Focus\r\n this.inputElement.addEventListener('focus', this.focus)\r\n\r\n // Blur\r\n this.inputElement.addEventListener('blur', this.blur)\r\n\r\n // Keypress\r\n if (this.getOption('keypress') === true) {\r\n this.inputElement.addEventListener('input', this.input)\r\n }\r\n\r\n // Submit\r\n if (this.submitElement) {\r\n this.submitElement.addEventListener('click', this.search)\r\n }\r\n\r\n // Enter\r\n if (this.getOption('enter') === true) {\r\n this.inputElement.addEventListener('keypress', this.enter)\r\n }\r\n\r\n // Clear\r\n if (this.clearElement) {\r\n this.clearElement.addEventListener('click', this.clear)\r\n }\r\n\r\n // Menu\r\n if (this.menuObject) {\r\n // Toggle menu\r\n if (this.toggleElement) {\r\n this.toggleElement.addEventListener('click', this.show)\r\n\r\n this.menuObject.on('kt.menu.dropdown.show', function () {\r\n // @ts-ignore\r\n if (isVisibleElement(this.toggleElement)) {\r\n // @ts-ignore\r\n this.toggleElement.classList.add('active')\r\n // @ts-ignore\r\n this.toggleElement.classList.add('show')\r\n }\r\n })\r\n\r\n this.menuObject.on('kt.menu.dropdown.hide', function () {\r\n // @ts-ignore\r\n if (isVisibleElement(this.toggleElement)) {\r\n // @ts-ignore\r\n this.toggleElement.classList.remove('active')\r\n // @ts-ignore\r\n this.toggleElement.classList.remove('show')\r\n }\r\n })\r\n }\r\n\r\n this.menuObject.on('kt.menu.dropdown.shown', function () {\r\n // @ts-ignore\r\n this.inputElement.focus()\r\n })\r\n }\r\n\r\n // Window resize handling\r\n window.addEventListener('resize', () => {\r\n let timer\r\n\r\n throttle(\r\n timer,\r\n () => {\r\n this.update()\r\n },\r\n 200\r\n )\r\n })\r\n }\r\n\r\n ///////////////////////\r\n // ** Public API ** //\r\n ///////////////////////\r\n // Update\r\n public update = () => {\r\n // Handle responsive form\r\n if (this.layout === 'menu') {\r\n let responsiveFormMode = this.getResponsiveFormMode()\r\n\r\n if (responsiveFormMode === 'on' && this.contentElement.contains(this.formElement) === false) {\r\n this.contentElement.prepend(this.formElement)\r\n this.formElement.classList.remove('d-none')\r\n } else if (\r\n responsiveFormMode === 'off' &&\r\n this.contentElement.contains(this.formElement) === true\r\n ) {\r\n this.element.prepend(this.formElement)\r\n this.formElement.classList.add('d-none')\r\n }\r\n }\r\n }\r\n\r\n // Show menu\r\n public show = () => {\r\n if (this.menuObject) {\r\n this.update()\r\n\r\n this.menuObject.show(this.element)\r\n }\r\n }\r\n\r\n // Hide menu\r\n public hide = () => {\r\n if (this.menuObject) {\r\n this.update()\r\n\r\n this.menuObject.hide(this.element)\r\n }\r\n }\r\n\r\n // Search\r\n public search = () => {\r\n if (this.processing === false) {\r\n // Show search spinner\r\n if (this.spinnerElement) {\r\n this.spinnerElement.classList.remove('d-none')\r\n }\r\n\r\n // Hide search clear button\r\n if (this.clearElement) {\r\n this.clearElement.classList.add('d-none')\r\n }\r\n\r\n // Hide search toolbar\r\n if (this.toolbarElement) {\r\n this.toolbarElement.classList.add('d-none')\r\n }\r\n\r\n // Focus input\r\n this.inputElement.focus()\r\n\r\n this.processing = true\r\n EventHandlerUtil.trigger(this.element, 'kt.search.process')\r\n }\r\n }\r\n\r\n // Complete\r\n public complete = () => {\r\n if (this.spinnerElement) {\r\n this.spinnerElement.classList.add('d-none')\r\n }\r\n\r\n // Show search toolbar\r\n if (this.clearElement) {\r\n this.clearElement.classList.remove('d-none')\r\n }\r\n\r\n if (this.inputElement.value.length === 0) {\r\n this.clear()\r\n }\r\n\r\n // Focus input\r\n this.inputElement.focus()\r\n\r\n this.show()\r\n\r\n this.processing = false\r\n }\r\n\r\n // Clear\r\n public clear = () => {\r\n if (EventHandlerUtil.trigger(this.element, 'kt.search.clear') === false) {\r\n return\r\n }\r\n\r\n // Clear and focus input\r\n this.inputElement.value = ''\r\n this.inputElement.focus()\r\n\r\n // Hide clear icon\r\n if (this.clearElement) {\r\n this.clearElement.classList.add('d-none')\r\n }\r\n\r\n // Show search toolbar\r\n if (this.toolbarElement) {\r\n this.toolbarElement.classList.remove('d-none')\r\n }\r\n\r\n // Hide menu\r\n if (this.getOption('show-on-focus') === false) {\r\n this.hide()\r\n }\r\n\r\n EventHandlerUtil.trigger(this.element, 'kt.search.cleared')\r\n }\r\n\r\n public isProcessing = () => {\r\n return this.processing\r\n }\r\n\r\n public getQuery = () => {\r\n return this.inputElement.value\r\n }\r\n\r\n public getMenu = () => {\r\n return this.menuObject\r\n }\r\n\r\n public getFormElement = () => {\r\n return this.formElement\r\n }\r\n\r\n public getInputElement(): HTMLInputElement {\r\n return this.inputElement\r\n }\r\n\r\n public getContentElement(): HTMLElement {\r\n return this.contentElement\r\n }\r\n\r\n public getElement(): HTMLElement {\r\n return this.element\r\n }\r\n\r\n // Event API\r\n public on = (name: string, handler: Function) => {\r\n return EventHandlerUtil.on(this.element, name, handler)\r\n }\r\n\r\n public one = (name: string, handler: Function) => {\r\n return EventHandlerUtil.one(this.element, name, handler)\r\n }\r\n\r\n public off = (name: string) => {\r\n return EventHandlerUtil.off(this.element, name)\r\n }\r\n\r\n // Static methods\r\n public static getInstance = (\r\n el: HTMLElement,\r\n componentName: string = defaultSearchQueires.componentName\r\n ) => {\r\n const Search = DataUtil.get(el, componentName)\r\n if (Search) {\r\n return Search\r\n }\r\n\r\n return null\r\n }\r\n\r\n public static createInstances = (\r\n selector: string = defaultSearchQueires.instanseQuery,\r\n options: ISearchOptions = defaultSearchOptions,\r\n queries: ISearchQueries = defaultSearchQueires\r\n ) => {\r\n const elements = document.body.querySelectorAll(selector)\r\n elements.forEach((el) => {\r\n const item = el as HTMLElement\r\n let Search = SearchComponent.getInstance(item)\r\n if (!Search) {\r\n Search = new SearchComponent(item, options, queries)\r\n }\r\n })\r\n }\r\n\r\n public static createInsance = (\r\n selector: string = defaultSearchQueires.instanseQuery,\r\n options: ISearchOptions = defaultSearchOptions,\r\n queries: ISearchQueries = defaultSearchQueires\r\n ): SearchComponent | undefined => {\r\n const element = document.body.querySelector(selector)\r\n if (!element) {\r\n return\r\n }\r\n const item = element as HTMLElement\r\n let Search = SearchComponent.getInstance(item)\r\n if (!Search) {\r\n Search = new SearchComponent(item, options, queries)\r\n }\r\n return Search\r\n }\r\n\r\n public static bootstrap = (selector: string = defaultSearchQueires.instanseQuery) => {\r\n SearchComponent.createInstances(selector)\r\n }\r\n\r\n public static reinitialization = (selector: string = defaultSearchQueires.instanseQuery) => {\r\n SearchComponent.createInstances(selector)\r\n }\r\n}\r\nexport {SearchComponent, defaultSearchOptions, defaultSearchQueires}\r\n","import {\r\n MenuComponent,\r\n ScrollComponent,\r\n StickyComponent,\r\n ToggleComponent,\r\n DrawerComponent,\r\n SwapperComponent,\r\n} from \"@/assets/ts/components\";\r\n\r\n/**\r\n * @description Initialize KeenThemes custom components\r\n */\r\nconst initializeComponents = () => {\r\n setTimeout(() => {\r\n ToggleComponent.bootstrap();\r\n StickyComponent.bootstrap();\r\n MenuComponent.bootstrap();\r\n ScrollComponent.bootstrap();\r\n DrawerComponent.bootstrap();\r\n SwapperComponent.bootstrap();\r\n }, 0);\r\n};\r\n\r\n/**\r\n * @description Reinitialize KeenThemes custom components\r\n */\r\nconst reinitializeComponents = () => {\r\n setTimeout(() => {\r\n ToggleComponent.reinitialization();\r\n StickyComponent.reInitialization();\r\n MenuComponent.reinitialization();\r\n reinitializeScrollComponent().then(() => {\r\n ScrollComponent.updateAll();\r\n });\r\n DrawerComponent.reinitialization();\r\n SwapperComponent.reinitialization();\r\n }, 0);\r\n};\r\n\r\nconst reinitializeScrollComponent = async () => {\r\n await ScrollComponent.reinitialization();\r\n};\r\n\r\nexport {\r\n initializeComponents,\r\n reinitializeComponents,\r\n reinitializeScrollComponent,\r\n};\r\n","import { App } from \"vue\";\r\nimport axios from \"axios\";\r\nimport store from \"@/store\";\r\nimport VueAxios from \"vue-axios\";\r\nimport JwtService from \"@/core/services/JwtService\";\r\nimport { AxiosResponse, AxiosRequestConfig } from \"axios\";\r\n\r\n/**\r\n * @description service to call HTTP request via Axios\r\n */\r\nclass ApiService {\r\n /**\r\n * @description property to share vue instance\r\n */\r\n public static vueInstance: App;\r\n\r\n /**\r\n * @description initialize vue axios\r\n */\r\n public static init(app: App) {\r\n ApiService.vueInstance = app;\r\n ApiService.vueInstance.use(VueAxios, axios);\r\n ApiService.vueInstance.axios.defaults.baseURL = process.env.VUE_APP_API_URL;\r\n\r\n ApiService.vueInstance.axios.interceptors.response.use(\r\n (response) => response,\r\n (error) => {\r\n //Check both session expired and endpoint 401 to redirect to the login page.\r\n const token = store.getters.getLoginToken;\r\n if (\r\n error.response.status === 401 &&\r\n Date.now() > (token.exp as unknown as number) * 1000\r\n ) {\r\n JwtService.destroyTokens();\r\n window.location.href = \"/\";\r\n }\r\n\r\n // Retry the get request only once for non-401 errors\r\n if (error.response && error.response.status !== 401 && error.config.method == 'get' && !error.config.isRetry) {\r\n error.config.isRetry = true;\r\n new Promise((resolve) => setTimeout((resolve), 500));\r\n\r\n try {\r\n const response = ApiService.vueInstance.axios(error.config);\r\n return Promise.resolve(response);\r\n } \r\n catch (retryError) {\r\n return Promise.reject(retryError);\r\n }\r\n }\r\n \r\n return Promise.reject(error);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * @description set the default HTTP request headers\r\n */\r\n public static setHeader(): void {\r\n ApiService.vueInstance.axios.defaults.headers.common[\r\n \"Authorization\"\r\n ] = `Token ${JwtService.getToken()}`;\r\n ApiService.vueInstance.axios.defaults.headers.common[\"Accept\"] =\r\n \"application/json\";\r\n }\r\n\r\n /**\r\n * @description send the GET HTTP request\r\n * @param resource: string\r\n * @param params: AxiosRequestConfig\r\n * @returns Promise\r\n */\r\n public static query(\r\n resource: string,\r\n params: AxiosRequestConfig\r\n ): Promise {\r\n return ApiService.vueInstance.axios.get(resource, params);\r\n }\r\n\r\n /**\r\n * @description send the GET HTTP request\r\n * @param resource: string\r\n * @param slug: string\r\n * @returns Promise\r\n */\r\n public static get(\r\n resource: string,\r\n slug = \"\" as string\r\n ): Promise {\r\n return ApiService.vueInstance.axios.get(`${resource}/${slug}`);\r\n }\r\n\r\n /**\r\n * @description send the HEAD HTTP request\r\n * @param resource: string\r\n * @param slug: string\r\n * @returns Promise\r\n */\r\n public static head(\r\n resource: string,\r\n slug = \"\" as string\r\n ): Promise {\r\n return ApiService.vueInstance.axios.head(`${resource}/${slug}`);\r\n }\r\n\r\n /**\r\n * @description set the POST HTTP request\r\n * @param resource: string\r\n * @param params: AxiosRequestConfig\r\n * @returns Promise\r\n */\r\n public static post(\r\n resource: string,\r\n params: AxiosRequestConfig\r\n ): Promise {\r\n return ApiService.vueInstance.axios.post(`${resource}`, params);\r\n }\r\n\r\n /**\r\n * @description send the UPDATE HTTP request\r\n * @param resource: string\r\n * @param slug: string\r\n * @param params: AxiosRequestConfig\r\n * @returns Promise\r\n */\r\n public static update(\r\n resource: string,\r\n slug: string,\r\n params: AxiosRequestConfig\r\n ): Promise {\r\n return ApiService.vueInstance.axios.put(`${resource}/${slug}`, params);\r\n }\r\n\r\n /**\r\n * @description Send the PUT HTTP request\r\n * @param resource: string\r\n * @param params: AxiosRequestConfig\r\n * @returns Promise\r\n */\r\n public static put(\r\n resource: string,\r\n params: AxiosRequestConfig\r\n ): Promise {\r\n return ApiService.vueInstance.axios.put(`${resource}`, params);\r\n }\r\n\r\n /**\r\n * @description Send the DELETE HTTP request\r\n * @param resource: string\r\n * @param slug: string\r\n * @returns Promise\r\n */\r\n public static delete(\r\n resource: string,\r\n slug = \"\" as string\r\n ): Promise {\r\n return ApiService.vueInstance.axios.delete(`${resource}/${slug}`);\r\n }\r\n\r\n /**\r\n * @description set the PATCH HTTP request\r\n * @param resource: string\r\n * @param params: AxiosRequestConfig\r\n * @returns Promise\r\n */\r\n public static patch(\r\n resource: string,\r\n params: AxiosRequestConfig\r\n ): Promise {\r\n return ApiService.vueInstance.axios.patch(`${resource}`, params);\r\n }\r\n}\r\n\r\nexport default ApiService;\r\n","const ID_TOKEN_KEY = \"orca_mriACiGwOt_token\" as string;\r\nconst ID_REFRESH_TOKEN_KEY = \"orca_mriACiGwOt_refresh_token\" as string;\r\nconst ID_ROLE_KEY = \"orca_mriACiGwOt_STR\" as string;\r\n\r\n/**\r\n * @description get token form localStorage\r\n */\r\nexport const getToken = (): string | null => {\r\n return window.localStorage.getItem(ID_TOKEN_KEY);\r\n};\r\n\r\n/**\r\n * @description save tokens into localStorage\r\n * @param token: string\r\n * @param refreshToken: string\r\n */\r\nexport const saveTokens = (token: string, refreshToken: string): void => {\r\n window.localStorage.setItem(ID_TOKEN_KEY, token);\r\n window.localStorage.setItem(ID_REFRESH_TOKEN_KEY, refreshToken);\r\n};\r\n\r\n/**\r\n * @description remove tokens form localStorage\r\n */\r\nexport const destroyTokens = (): void => {\r\n window.localStorage.removeItem(ID_TOKEN_KEY);\r\n window.localStorage.removeItem(ID_REFRESH_TOKEN_KEY);\r\n window.localStorage.removeItem(ID_ROLE_KEY);\r\n};\r\n\r\n/**\r\n * @description decode JWT token to token object\r\n * @param token: string\r\n */\r\nexport const parseJWT = (token): JSON => {\r\n const base64Url = token.split(\".\")[1];\r\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n const jsonPayload = decodeURIComponent(\r\n atob(base64)\r\n .split(\"\")\r\n .map(function (c) {\r\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\r\n })\r\n .join(\"\")\r\n );\r\n\r\n return JSON.parse(jsonPayload);\r\n};\r\n\r\n/**\r\n * @description get refresh token form localStorage\r\n */\r\nexport const getRefreshToken = (): string | null => {\r\n return window.localStorage.getItem(ID_REFRESH_TOKEN_KEY);\r\n};\r\n\r\n/**\r\n * @description get role form localStorage\r\n */\r\n export const getRoleStr = (): string | null => {\r\n return window.localStorage.getItem(ID_ROLE_KEY);\r\n};\r\n\r\n/**\r\n * @description save role into localStorage\r\n * @param role: string\r\n */\r\nexport const saveRoleStr = (role : string): void => {\r\n window.localStorage.setItem(ID_ROLE_KEY, role);\r\n};\r\n\r\nexport default {\r\n getToken,\r\n getRefreshToken,\r\n getRoleStr,\r\n saveTokens,\r\n saveRoleStr,\r\n destroyTokens,\r\n parseJWT,\r\n};\r\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createBlock(_component_router_view))\n}","\r\nimport { defineComponent, nextTick, onMounted } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { initializeComponents } from \"@/core/plugins/keenthemes\";\r\n\r\nexport default defineComponent({\r\n name: \"app\",\r\n setup() {\r\n const store = useStore(); \r\n\r\n onMounted(() => {\r\n /**\r\n * this is to override the layout config using saved data from localStorage\r\n * remove this to use config only from static config (@/core/config/DefaultLayoutConfig.ts)\r\n */\r\n store.commit(Mutations.OVERRIDE_LAYOUT_CONFIG);\r\n\r\n nextTick(() => {\r\n initializeComponents();\r\n });\r\n });\r\n },\r\n});\r\n","import { render } from \"./App.vue?vue&type=template&id=67198804&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=67198804&lang=scss\"\n\nimport exportComponent from \"C:\\\\source\\\\Orca\\\\Orca.Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {\r\n createRouter,\r\n createWebHashHistory,\r\n RouteRecordRaw,\r\n RouterView,\r\n} from \"vue-router\";\r\nimport store from \"@/store\";\r\nimport { Mutations, Actions } from \"@/store/enums/StoreEnums\";\r\nimport JwtService from \"@/core/services/JwtService\";\r\nimport { IPermission } from \"@/store/common/Types\";\r\nimport { h } from \"vue\";\r\n\r\nconst routes: Array = [\r\n {\r\n path: \"/\",\r\n redirect: \"/dashboard\",\r\n component: () => import(\"@/layout/Layout.vue\"),\r\n children: [\r\n {\r\n path: \"/dashboard\",\r\n name: \"dashboard\",\r\n component: () => import(\"@/views/Dashboard.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/partners\",\r\n component: { render: () => h(RouterView) },\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"partners\",\r\n component: () => import(\"@/views/admin/Resellers.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"ResellerView\"],\r\n },\r\n },\r\n {\r\n path: \"detail\",\r\n name: \"partnerdetail\",\r\n component: () => import(\"@/views/admin/ResellerDetail.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"ResellerCreate\", \"ResellerEdit\"],\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"/admin/users\",\r\n component: { render: () => h(RouterView) },\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"users\",\r\n component: () => import(\"@/views/admin/Users.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"ClientUserView\"],\r\n },\r\n },\r\n {\r\n path: \"detail\",\r\n name: \"userdetail\",\r\n component: () => import(\"@/views/admin/UserDetail.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"/admin/locations\",\r\n component: { render: () => h(RouterView) },\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"locations\",\r\n component: () => import(\"@/views/admin/Locations.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"LocationView\"],\r\n },\r\n },\r\n {\r\n path: \"detail\",\r\n name: \"locationdetail\",\r\n component: () => import(\"@/views/admin/LocationDetail.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"LocationView\", \"LocationEdit\"],\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"/admin/digesters\",\r\n component: { render: () => h(RouterView) },\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"digesters\",\r\n component: () => import(\"@/views/admin/Devices.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"DeviceView\"],\r\n },\r\n },\r\n {\r\n path: \"detail\",\r\n name: \"devicedetail\",\r\n component: () => import(\"@/views/admin/DeviceDetail.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"DeviceView\", \"DeviceEdit\"],\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"/admin/clients\",\r\n component: { render: () => h(RouterView) },\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"clients\",\r\n component: () => import(\"@/views/admin/Clients.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"ClientView\"],\r\n },\r\n },\r\n {\r\n path: \"detail\",\r\n name: \"clientdetail\",\r\n component: () => import(\"@/views/admin/ClientDetail.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"ClientEdit\"],\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"/admin/pincodes\",\r\n name: \"pincodes\",\r\n component: () => import(\"@/views/admin/PinCodes.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"DevicePinCreate\", \"DevicePinEdit\"],\r\n },\r\n },\r\n {\r\n path: \"/admin/kpis\",\r\n name: \"kpis\",\r\n component: () => import(\"@/views/admin/KPIs.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"KpiCreate\", \"KpiEdit\"],\r\n },\r\n },\r\n {\r\n path: \"/admin/manualupload\",\r\n name: \"manualupload\",\r\n component: () => import(\"@/views/admin/ManualUpload.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/toolsanddocuments\",\r\n name: \"toolsanddocuments\",\r\n component: () => import(\"@/views/ToolsAndDocuments.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/faqs\",\r\n name: \"faqs\",\r\n component: () => import(\"@/views/Faqs.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/support\",\r\n name: \"support\",\r\n component: () => import(\"@/views/Support.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/modelsizes\",\r\n name: \"modelsizes\",\r\n component: () => import(\"@/views/admin/ModelSizes.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/industries\",\r\n name: \"industries\",\r\n component: () => import(\"@/views/admin/Industries.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/pincodetypes\",\r\n name: \"pincodetypes\",\r\n component: () => import(\"@/views/admin/PinCodeTypes.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/countries\",\r\n name: \"countries\",\r\n component: () => import(\"@/views/admin/Countries.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"CanEditGeography\"],\r\n },\r\n },\r\n {\r\n path: \"/admin/provinces\",\r\n name: \"provinces\",\r\n component: () => import(\"@/views/admin/Provinces.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"CanEditGeography\"],\r\n },\r\n },\r\n {\r\n path: \"/admin/languageStrings\",\r\n name: \"languageStrings\",\r\n component: () => import(\"@/views/admin/LanguageStrings.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n permissions: [\"CanEditLanguageStrings\"],\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"/\",\r\n component: () => import(\"@/components/page-layouts/Auth.vue\"),\r\n children: [\r\n {\r\n path: \"/sign-in\",\r\n name: \"sign-in\",\r\n component: () =>\r\n import(\"@/views/crafted/authentication/basic-flow/SignIn.vue\"),\r\n },\r\n {\r\n path: \"/password-forget\",\r\n name: \"password-forget\",\r\n component: () =>\r\n import(\r\n \"@/views/crafted/authentication/basic-flow/ForgetPassword.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/resetpassword\",\r\n name: \"resetpassword\",\r\n component: () =>\r\n import(\"@/views/crafted/authentication/basic-flow/PasswordReset.vue\"),\r\n },\r\n ],\r\n },\r\n {\r\n // the 404 route, when none of the above matches\r\n path: \"/404\",\r\n name: \"404\",\r\n component: () => import(\"@/views/crafted/authentication/Error404.vue\"),\r\n },\r\n {\r\n // the 404 route, when none of the above matches\r\n path: \"/500\",\r\n name: \"500\",\r\n component: () => import(\"@/views/crafted/authentication/Error500.vue\"),\r\n },\r\n {\r\n path: \"/:pathMatch(.*)*\",\r\n redirect: \"/404\",\r\n },\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHashHistory(),\r\n routes,\r\n});\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n // reset config to initial state\r\n store.commit(Mutations.RESET_LAYOUT_CONFIG);\r\n\r\n store.dispatch(Actions.VERIFY_AUTH, {\r\n api_token: JwtService.getToken(),\r\n refresh_token: JwtService.getRefreshToken(),\r\n });\r\n\r\n if (to.matched.some((record) => record.meta.requiresAuth)) {\r\n if (!store.getters.isUserAuthenticated) {\r\n next(\"/sign-in\");\r\n } \r\n else if(store.getters.isUserAuthenticated &&\r\n Object.keys(store.getters.currentUser).length === 0){\r\n store.dispatch(Actions.LOGOUT).then(() => next(\"/sign-in\"));\r\n }else {\r\n if (\r\n to.meta.permissions &&\r\n (to.meta.permissions as Array).length > 0\r\n ) {\r\n const permission = store.getters.getPermission as IPermission;\r\n if (\r\n Object.keys(permission).length === 0 ||\r\n !permission.Permissions.some((p) =>\r\n (to.meta.permissions as Array).includes(p)\r\n )\r\n ) {\r\n return next(\"/dashboard\");\r\n }\r\n }\r\n next();\r\n }\r\n } else {\r\n next();\r\n }\r\n\r\n // Scroll page to top on every route change\r\n setTimeout(() => {\r\n window.scrollTo(0, 0);\r\n }, 100);\r\n});\r\n\r\nexport default router;\r\n","import { createI18n } from \"vue-i18n/index\";\r\n\r\nconst messages = {\r\n en: {\r\n dashboard: \"Dashboard\",\r\n layoutBuilder: \"Layout builder\",\r\n craft: \"Crafted\",\r\n pages: \"Pages\",\r\n profile: \"Profile\",\r\n profileOverview: \"Overview\",\r\n projects: \"Projects\",\r\n campaigns: \"Campaigns\",\r\n documents: \"Documents\",\r\n connections: \"Connections\",\r\n wizards: \"Wizards\",\r\n horizontal: \"Horizontal\",\r\n vertical: \"Vertical\",\r\n account: \"Account\",\r\n accountOverview: \"Overview\",\r\n settings: \"Settings\",\r\n authentication: \"Authentication\",\r\n basicFlow: \"Basic Flow\",\r\n signIn: \"Sign-in\",\r\n signUp: \"Sign-up\",\r\n passwordReset: \"Password Reset\",\r\n multiStepSignUp: \"Multi-steps Sign up\",\r\n error404: \"Error 404\",\r\n error500: \"Error 500\",\r\n apps: \"Apps\",\r\n chat: \"Chat\",\r\n privateChat: \"Private Chat\",\r\n groupChat: \"Group Chat\",\r\n drawerChat: \"Drawer Chat\",\r\n widgets: \"Widgets\",\r\n widgetsLists: \"Lists\",\r\n widgetsStatistics: \"Statistics\",\r\n widgetsCharts: \"Charts\",\r\n widgetsMixed: \"Mixed\",\r\n widgetsTables: \"Tables\",\r\n widgetsFeeds: \"Feeds\",\r\n changelog: \"Changelog\",\r\n docsAndComponents: \"Docs & Components\",\r\n megaMenu: \"Mega Menu\",\r\n exampleLink: \"Example link\",\r\n modals: \"Modals\",\r\n general: \"General\",\r\n inviteFriends: \"Invite Friends\",\r\n viewUsers: \"View Users\",\r\n upgradePlan: \"Upgrade Plan\",\r\n shareAndEarn: \"Share & Earn\",\r\n forms: \"Forms\",\r\n newTarget: \"New Target\",\r\n newCard: \"New Card\",\r\n newAddress: \"New Address\",\r\n createAPIKey: \"Create API Key\",\r\n twoFactorAuth: \"Two Factor Auth\",\r\n createApp: \"Create App\",\r\n createAccount: \"Create Account\",\r\n documentation: \"Documentation\",\r\n components: \"Components\",\r\n resources: \"Resources\",\r\n activity: \"Activity\",\r\n customers: \"Customers\",\r\n gettingStarted: \"Getting Started\",\r\n customersListing: \"Customers Listing\",\r\n customerDetails: \"Customers Details\",\r\n calendarApp: \"Calendar\",\r\n subscriptions: \"Subscriptions\",\r\n getStarted: \"Getting Started\",\r\n subscriptionList: \"Subscription List\",\r\n addSubscription: \"Add Subscription\",\r\n viewSubscription: \"View Subscription\",\r\n partners: \"Partners\",\r\n users: \"Users\",\r\n accountmanagers: \"Account Managers\",\r\n administrators: \"Administrators\",\r\n clients: \"Clients\",\r\n locations: \"Locations\",\r\n digesters: \"Digesters\",\r\n pincodes: \"Pin Codes\",\r\n manualupload: \"Manual Data Upload\",\r\n toolsanddocuments: \"Tools and Documents\",\r\n faqs: \"FAQs\",\r\n support: \"Support\",\r\n configuration: \"Configuration\",\r\n modelsizes: \"Model Sizes\",\r\n industries: \"Industries\",\r\n pincodetypes: \"Pin Code Types\",\r\n kpis: \"KPIs\",\r\n countries: \"Countries\",\r\n provinces: \"Regions\",\r\n languageStrings: \"Language Strings\",\r\n },\r\n es: {\r\n dashboard: \"Tablero\",\r\n layoutBuilder: \"Constructor de maquetación\",\r\n craft: \"Elaborado\",\r\n pages: \"Paginas\",\r\n profile: \"Perfil\",\r\n profileOverview: \"Descripción general\",\r\n projects: \"Proyectos\",\r\n campaigns: \"Campañas\",\r\n documents: \"Documentos\",\r\n connections: \"Conexiones\",\r\n wizards: \"Magos\",\r\n horizontal: \"Horizontal\",\r\n vertical: \"Vertical\",\r\n account: \"Cuenta\",\r\n accountOverview: \"Descripción general\",\r\n settings: \"Ajustes\",\r\n authentication: \"Autenticación\",\r\n basicFlow: \"Flujo básico\",\r\n signIn: \"Registrarse\",\r\n signUp: \"Inscribirse\",\r\n passwordReset: \"Restablecimiento de contraseña\",\r\n multiStepSignUp: \"Regístrese Multi-Pasos\",\r\n error404: \"Error 404\",\r\n error500: \"Error 500\",\r\n apps: \"Aplicaciones\",\r\n chat: \"Chat\",\r\n privateChat: \"Chat privado\",\r\n groupChat: \"Grupo de chat\",\r\n drawerChat: \"Chat del cajón\",\r\n widgets: \"Widgets\",\r\n widgetsLists: \"Liza\",\r\n widgetsStatistics: \"Estadísticas\",\r\n widgetsCharts: \"Gráficos\",\r\n widgetsMixed: \"Mezclada\",\r\n widgetsTables: \"Mesas\",\r\n widgetsFeeds: \"Alimenta\",\r\n changelog: \"Registro de cambios\",\r\n docsAndComponents: \"Documentos & Componentes\",\r\n megaMenu: \"Mega menú\",\r\n exampleLink: \"Enlace de ejemplo\",\r\n modals: \"Modales\",\r\n general: \"General\",\r\n inviteFriends: \"Invitar A Amigos\",\r\n viewUsers: \"Ver Usuarios\",\r\n upgradePlan: \"Plan De Actualización\",\r\n shareAndEarn: \"Compartir Y Ganar\",\r\n forms: \"Formas\",\r\n newTarget: \"Nuevo Objetivo\",\r\n newCard: \"Nueva Tarjeta\",\r\n newAddress: \"Nueva Direccion\",\r\n createAPIKey: \"Crea Clave De Api\",\r\n twoFactorAuth: \"Dos Factores\",\r\n createApp: \"Crear Aplicacion\",\r\n createAccount: \"Crear Una Cuenta\",\r\n activity: \"Actividad\",\r\n documentation: \"Documentación\",\r\n components: \"Componentes\",\r\n resources: \"Recursos\",\r\n customers: \"Clientes\",\r\n gettingStarted: \"Empezando\",\r\n customersListing: \"Listado De Clientes\",\r\n customerDetails: \"Detalles De Los Clientes\",\r\n calendarApp: \"Calendario\",\r\n subscriptions: \"Suscripciones\",\r\n getStarted: \"Empezando\",\r\n subscriptionList: \"Lista De Suscripción\",\r\n addSubscription: \"Añadir Suscripción\",\r\n viewSubscription: \"Suscripción\",\r\n },\r\n de: {\r\n dashboard: \"Instrumententafel\",\r\n layoutBuilder: \"Layout-Builder\",\r\n craft: \"Hergestellt\",\r\n pages: \"Seiten\",\r\n profile: \"Profil\",\r\n profileOverview: \"Überblick\",\r\n projects: \"Projekte\",\r\n campaigns: \"Kampagnen\",\r\n documents: \"Unterlagen\",\r\n connections: \"Anschlüsse\",\r\n wizards: \"Zauberer\",\r\n horizontal: \"Horizontal\",\r\n vertical: \"Vertikal\",\r\n account: \"Konto\",\r\n accountOverview: \"Überblick\",\r\n settings: \"Die Einstellungen\",\r\n authentication: \"Authentifizierung\",\r\n basicFlow: \"Grundfluss\",\r\n signIn: \"Einloggen\",\r\n signUp: \"Anmelden\",\r\n passwordReset: \"Passwort zurücksetzen\",\r\n multiStepSignUp: \"Multi-Steps-Anmeldung\",\r\n error404: \"Fehler 404\",\r\n error500: \"Fehler 500\",\r\n apps: \"Apps\",\r\n chat: \"Plaudern\",\r\n privateChat: \"Private Chat\",\r\n groupChat: \"Privater Chat\",\r\n drawerChat: \"Gruppenchat Schubladen-Chat\",\r\n widgets: \"Widgets\",\r\n widgetsLists: \"Listen\",\r\n widgetsStatistics: \"Statistiken\",\r\n widgetsCharts: \"Diagramme\",\r\n widgetsMixed: \"Gemischt\",\r\n widgetsTables: \"Tabellen\",\r\n widgetsFeeds: \"Einspeisungen\",\r\n changelog: \"Änderungsprotokoll\",\r\n docsAndComponents: \"Dokumente & Komponenten\",\r\n megaMenu: \"Mega-Menü\",\r\n exampleLink: \"Beispiellink\",\r\n modals: \"Modale\",\r\n general: \"Allgemeines\",\r\n inviteFriends: \"Freunde Einladen\",\r\n viewUsers: \"Benutzer Anzeigen.\",\r\n upgradePlan: \"Upgrade-Plan\",\r\n shareAndEarn: \"Teilen & Verdienen\",\r\n forms: \"Formen\",\r\n newTarget: \"Neues Ziel\",\r\n newCard: \"Neue Karte\",\r\n newAddress: \"Neue Adresse\",\r\n createAPIKey: \"Api-Key Erstellen\",\r\n twoFactorAuth: \"Zwei Faktor Auth.\",\r\n createApp: \"App Erstellen\",\r\n createAccount: \"Benutzerkonto Erstellen\",\r\n activity: \"Aktivität\",\r\n documentation: \"Dokumentation\",\r\n components: \"Bauteile\",\r\n resources: \"Ressourcen\",\r\n customers: \"Kunden\",\r\n gettingStarted: \"Einstieg\",\r\n customersListing: \"Kundenauflistung\",\r\n customerDetails: \"Kundenangaben\",\r\n calendarApp: \"Kalender\",\r\n subscriptions: \"Abonnements\",\r\n getStarted: \"Einstieg\",\r\n subscriptionList: \"Abonnementliste\",\r\n addSubscription: \"Subskription Hinzufügen.\",\r\n viewSubscription: \"Abonnement Anzeigen.\",\r\n },\r\n ja: {\r\n dashboard: \"ダッシュボード\",\r\n layoutBuilder: \"レイアウトビルダー\",\r\n craft: \"作成された\",\r\n pages: \"ページ\",\r\n profile: \"プロフィール\",\r\n profileOverview: \"概要\",\r\n projects: \"プロジェクト\",\r\n campaigns: \"キャンペーン\",\r\n documents: \"書類\",\r\n connections: \"接続\",\r\n wizards: \"ウィザード\",\r\n horizontal: \"横\",\r\n vertical: \"垂直\",\r\n account: \"アカウント\",\r\n accountOverview: \"概要\",\r\n settings: \"設定\",\r\n authentication: \"認証\",\r\n basicFlow: \"基本的な流れ\",\r\n signIn: \"サインイン\",\r\n signUp: \"サインアップ\",\r\n passwordReset: \"パスワードのリセット\",\r\n multiStepSignUp: \"マルチステップサインアップ\",\r\n error404: \"エラー404\",\r\n error500: \"エラー 500\",\r\n apps: \"アプリ\",\r\n chat: \"チャット\",\r\n privateChat: \"プライベートチャット\",\r\n groupChat: \"グループチャット\",\r\n drawerChat: \"ドロワーチャット\",\r\n widgets: \"ウィジェット\",\r\n widgetsLists: \"リスト\",\r\n widgetsStatistics: \"統計\",\r\n widgetsCharts: \"チャート\",\r\n widgetsMixed: \"混合\",\r\n widgetsTables: \"テーブル\",\r\n widgetsFeeds: \"フィード\",\r\n changelog: \"変更ログ\",\r\n docsAndComponents: \"ドキュメントとコンポーネント\",\r\n megaMenu: \"メガメニュー\",\r\n exampleLink: \"リンク例\",\r\n modals: \"モーダルズ\",\r\n general: \"一般\",\r\n inviteFriends: \"友達を招待\",\r\n viewUsers: \"ユーザーを表示します\",\r\n upgradePlan: \"アップグレードプラン\",\r\n shareAndEarn: \"シェア&稼働\",\r\n forms: \"フォーム\",\r\n newTarget: \"新しいターゲット\",\r\n newCard: \"新しいカード\",\r\n newAddress: \"新しいアドレス\",\r\n createAPIKey: \"Apiキーを作成します\",\r\n twoFactorAuth: \"2つの要因Auth\",\r\n createApp: \"アプリを作成します\",\r\n createAccount: \"アカウントを作成する\",\r\n activity: \"アクティビティ\",\r\n documentation: \"ドキュメンテーション\",\r\n components: \"コンポーネント\",\r\n resources: \"資力\",\r\n customers: \"お客様のお客様\",\r\n gettingStarted: \"入門\",\r\n customersListing: \"顧客のリスト\",\r\n customerDetails: \"お客様の詳細\",\r\n calendarApp: \"カレンダー\",\r\n subscriptions: \"購読\",\r\n getStarted: \"入門\",\r\n subscriptionList: \"サブスクリプションリスト\",\r\n addSubscription: \"サブスクリプションを追加します\",\r\n viewSubscription: \"購読を見る\",\r\n },\r\n fr: {\r\n dashboard: \"Générateur de mise\",\r\n layoutBuilder: \"En page\",\r\n craft: \"Fabriqué\",\r\n pages: \"Pages\",\r\n profile: \"Profil\",\r\n profileOverview: \"Aperçu\",\r\n projects: \"Projets\",\r\n campaigns: \"Campagnes\",\r\n documents: \"Documents\",\r\n connections: \"Connexions\",\r\n wizards: \"Sorciers\",\r\n horizontal: \"Horizontal\",\r\n vertical: \"Verticale\",\r\n account: \"Compte\",\r\n accountOverview: \"Aperçu\",\r\n settings: \"Paramètres\",\r\n authentication: \"Authentification\",\r\n basicFlow: \"Flux de base\",\r\n signIn: \"SS'identifier\",\r\n signUp: \"Inscrivez-vous\",\r\n passwordReset: \"Réinitialisation du mot de passe\",\r\n multiStepSignUp: \"S'Inscrire Multi-Étapes\",\r\n error404: \"Erreur 404\",\r\n error500: \"Erreur 500\",\r\n apps: \"Applications\",\r\n chat: \"Discuter\",\r\n privateChat: \"Discussion privée\",\r\n groupChat: \"Discussion de groupe\",\r\n drawerChat: \"Chat de tiroir\",\r\n widgets: \"Widgets\",\r\n widgetsLists: \"Listes\",\r\n widgetsStatistics: \"Statistiques\",\r\n widgetsCharts: \"Graphiques\",\r\n widgetsMixed: \"Mixte\",\r\n widgetsTables: \"Les tables\",\r\n widgetsFeeds: \"Flux\",\r\n changelog: \"Journal des modifications\",\r\n docsAndComponents: \"Documents & composants\",\r\n megaMenu: \"Méga Menu\",\r\n exampleLink: \"Exemple de lien\",\r\n modals: \"Modals\",\r\n general: \"Général\",\r\n inviteFriends: \"Inviter Des Amis\",\r\n viewUsers: \"Voir Les Utilisateurs\",\r\n upgradePlan: \"Plan De Mise À Niveau\",\r\n shareAndEarn: \"Partager Et Gagner\",\r\n forms: \"Formes\",\r\n newTarget: \"Nouvelle Cible\",\r\n newCard: \"Nouvelle Carte\",\r\n newAddress: \"Nouvelle Adresse\",\r\n createAPIKey: \"Créer Une Touche Api\",\r\n twoFactorAuth: \"Deux Facteurs D'Authentification\",\r\n createApp: \"Créer Une Application\",\r\n createAccount: \"Créer Un Compte\",\r\n activity: \"Activité\",\r\n documentation: \"Documentation\",\r\n components: \"Composants\",\r\n resources: \"Ressources\",\r\n customers: \"Les Clients\",\r\n gettingStarted: \"Commencer\",\r\n customersListing: \"Liste Des Clients\",\r\n customerDetails: \"Détails Des Clients\",\r\n calendarApp: \"Calendrier\",\r\n subscriptions: \"Abonnements\",\r\n getStarted: \"Commencer\",\r\n subscriptionList: \"Liste D'Abonnement\",\r\n addSubscription: \"Ajouter Un Abonnement\",\r\n viewSubscription: \"Voir L'Abonnement\",\r\n },\r\n};\r\n\r\nconst i18n = createI18n({\r\n legacy: false,\r\n locale: \"en\",\r\n globalInjection: true,\r\n messages,\r\n});\r\n\r\nexport default i18n;\r\n","import { App } from \"vue\";\r\nimport VueApexCharts from \"vue3-apexcharts\";\r\n\r\n/**\r\n * Initialize VueApexChart component\r\n * @param app vue instance\r\n */\r\nexport function initApexCharts(app: App) {\r\n app.use(VueApexCharts);\r\n}\r\n","import { App } from \"vue\";\r\nimport InlineSvg from \"vue-inline-svg\";\r\n\r\n/**\r\n * Initialize Inline-Svg component\r\n * @param app vue instance\r\n */\r\nexport function initInlineSvg(app: App) {\r\n app.component(\"inline-svg\", InlineSvg);\r\n}\r\n","import { configure } from \"vee-validate\";\r\n\r\nexport function initVeeValidate() {\r\n // Updating default vee-validate configuration\r\n configure({\r\n validateOnBlur: true,\r\n validateOnChange: true,\r\n validateOnInput: true,\r\n validateOnModelUpdate: true,\r\n });\r\n}\r\n","import { createApp } from \"vue\";\r\nimport App from \"./App.vue\";\r\n\r\nimport router from \"./router\";\r\nimport store from \"./store\";\r\nimport ElementPlus from \"element-plus\";\r\nimport i18n from \"@/core/plugins/i18n\";\r\n\r\n//imports for app initialization\r\nimport ApiService from \"@/core/services/ApiService\";\r\nimport { initApexCharts } from \"@/core/plugins/apexcharts\";\r\nimport { initInlineSvg } from \"@/core/plugins/inline-svg\";\r\nimport { initVeeValidate } from \"@/core/plugins/vee-validate\";\r\n\r\nimport { vue3Debounce } from \"vue-debounce\";\r\nimport vSelect from \"vue-select\";\r\nimport \"vue-select/dist/vue-select.css\";\r\nimport \"ag-grid-community/styles/ag-grid.css\"; // Core grid CSS, always needed\r\nimport \"ag-grid-community/styles/ag-theme-alpine.css\"; // Optional theme CSS\r\nimport \"@vuepic/vue-datepicker/dist/main.css\";\r\nimport \"vue3-carousel/dist/carousel.css\";\r\nimport Notifications from \"@kyvg/vue3-notification\";\r\nimport \"@/assets/site.css\";\r\nimport CKEditor from \"@ckeditor/ckeditor5-vue\";\r\nimport VueDragscroll from \"vue-dragscroll\";\r\nimport Datepicker from \"@vuepic/vue-datepicker\";\r\nimport \"@/core/plugins/prismjs\";\r\nconst app = createApp(App);\r\n\r\napp.use(store);\r\napp.use(router);\r\napp.use(ElementPlus);\r\napp.use(Notifications);\r\napp.use(CKEditor);\r\napp.use(VueDragscroll);\r\napp.component(\"v-select\", vSelect);\r\napp.component(\"Datepicker\", Datepicker);\r\napp.directive(\"debounce\", vue3Debounce({ lock: true }));\r\n\r\nApiService.init(app);\r\ninitApexCharts(app);\r\ninitInlineSvg(app);\r\ninitVeeValidate();\r\n\r\napp.use(i18n);\r\n\r\napp.mount(\"#app\");\r\n","enum Actions {\r\n // action types\r\n ADD_BODY_CLASSNAME = \"addBodyClassName\",\r\n REMOVE_BODY_CLASSNAME = \"removeBodyClassName\",\r\n ADD_BODY_ATTRIBUTE = \"addBodyAttribute\",\r\n REMOVE_BODY_ATTRIBUTE = \"removeBodyAttribute\",\r\n ADD_CLASSNAME = \"addClassName\",\r\n VERIFY_AUTH = \"verifyAuth\",\r\n LOGIN = \"login\",\r\n LOGOUT = \"logout\",\r\n REGISTER = \"register\",\r\n FORGOT_PASSWORD = \"forgotPassword\",\r\n RESET_PASSWORD = \"resetPassword\",\r\n LOAD_PERMISSION = \"loadPermission\",\r\n SET_BREADCRUMB_ACTION = \"setBreadcrumbAction\",\r\n LOAD_LOGIN_USER = \"loadLoginUser\",\r\n LOAD_LOGIN_USER_AVATAR = \"loadLoginUserAvatar\",\r\n VALIDATE_KEY = \"ValidateKey\",\r\n //resellers\r\n SEARCH_RESELLERS = \"searchResellers\",\r\n LOAD_RESELLER = \"loadReseller\",\r\n UPDATE_RESELLER = \"updateReseller\",\r\n DELETE_RESELLER = \"deleteReseller\",\r\n LOAD_RESELLER_METADATA = \"loadResellerMeta\",\r\n CREATE_RESELLER = \"createReseller\",\r\n ADD_RESELLER_CLIENT = \"addResellerClient\",\r\n LOAD_RESELLERS_REPORT = \"loadResellersReport\",\r\n //users\r\n SEARCH_USERS = \"searchUsers\",\r\n SEARCH_USERS_SINGLE = \"searchUsersSingle\",\r\n LOAD_USER = \"loadUser\",\r\n LOAD_USER_AVATAR = \"loadUserAvatar\",\r\n CREATE_USER = \"createUser\",\r\n UPDATE_USER = \"updateUser\",\r\n ADD_RESELLER_USER = \"addResellerUser\",\r\n LOAD_ROLES = \"loadRoles\",\r\n EMAIL_RESET_PASSWORD = \"emailResetPassword\",\r\n UPDATE_USER_AVATAR = \"updateUserAvatar\",\r\n RESEND_INVITE = \"resendInvite\",\r\n DELETE_USER = \"deleteUser\",\r\n LOAD_USERS_REPORT = \"loadUsersReport\",\r\n LOAD_SUPPORT = \"loadSupport\",\r\n //clients\r\n SEARCH_CLIENTS = \"searchClients\",\r\n CREATE_CLIENT = \"createClient\",\r\n LOAD_CLIENT = \"loadClient\",\r\n UPDATE_CLIENT = \"updateClient\",\r\n DELETE_CLIENT = \"deleteClient\",\r\n GENERATE_CLIENT_KEY = \"generateClientKey\",\r\n CREATE_CLIENT_KPI = \"createClientKpi\",\r\n UPDATE_CLIENT_KPI = \"updateClientKpi\",\r\n DELETE_CLIENT_KPI = \"deleteClientKpi\",\r\n ENABLE_CLIENT_KPI = \"enableClientKpi\",\r\n DISABLE_CLIENT_KPI = \"disableClientKpi\",\r\n LOAD_CLIENTS_REPORT = \"loadClientsReport\",\r\n //locations\r\n SEARCH_LOCATIONS = \"searchLocations\",\r\n LOAD_LOCATION = \"loadLocation\",\r\n CREATE_LOCATION = \"createLocation\",\r\n LOAD_GEOLOCATION = \"loadGeolocation\",\r\n UPDATE_LOCATION = \"updateLocation\",\r\n ADD_USER_LOCATIONS = \"addUserLocations\",\r\n DELETE_USER_LOCATIONS = \"deleteUserLocations\",\r\n LOAD_LOCATIONS_REPORT = \"loadLocationsReport\",\r\n DELETE_LOCATION = \"deleteLocation\",\r\n //devices\r\n SEARCH_DEVICES = \"searchDevices\",\r\n LOAD_DEVICE = \"loadDevice\",\r\n CREATE_DEVICE = \"createDevice\",\r\n UPDATE_DEVICE = \"updateDevice\",\r\n DELETE_DEVICE = \"deleteDevice\",\r\n LOAD_RECENT_ADDED_DEVICES = \"loadRecentAddedDevices\",\r\n LOAD_DEVICES_REPORT = \"loadDevicesReport\",\r\n //devicereadings\r\n SEARCH_DEVICE_READINGS = \"searchDeviceReadings\",\r\n LOAD_DEVICE_READINGS_REPORT = \"loadDeviceReadingsReport\",\r\n //pincodes\r\n SEARCH_PINCODES = \"searchPinCodes\",\r\n CREATE_PINCODE = \"createPinCode\",\r\n UPDATE_PINCODE = \"updatePinCode\",\r\n DELETE_PINCODE = \"deletePinCode\",\r\n LOAD_RESELLER_PINCODES = \"loadResellerPinCodes\",\r\n LOAD_CLIENT_PINCODES = \"loadClientPinCodes\",\r\n LOAD_DEVICE_PINCODES = \"loadDevicePinCodes\",\r\n LOAD_PINCODES_REPORT = \"loadPinCodesReport\",\r\n //kpis\r\n LOAD_KPI_RESULT = \"loadKpiResult\",\r\n SEARCH_KPIS = \"searchKpis\",\r\n CREATE_KPI = \"createKpi\",\r\n UPDATE_KPI = \"updateKpi\",\r\n DELETE_KPI = \"deleteKpi\",\r\n LOAD_KPI = \"loadKpi\",\r\n LOAD_UNIT_OPTIONS = \"loadUnitOptions\",\r\n LOAD_CLIENT_KPIS = \"loadClientKpis\",\r\n LOAD_CLIENT_KPIS_METADATA = \"loadClientKpisMetadata\",\r\n LOAD_KPIS_REPORT = \"loadKpisReport\",\r\n //files\r\n UPLOAD_FILE = \"uploadFile\",\r\n SEND_FILE_QUEUE = \"sendFileQueue\",\r\n //email\r\n SEND_EMAIL = \"sendEmail\",\r\n //modelsize\r\n SEARCH_MODEL_SIZES = \"searchModelSizes\",\r\n CREATE_MODEL_SIZE = \"createModelSize\",\r\n UPDATE_MODEL_SIZE = \"updateModelSize\",\r\n DELETE_MODEL_SIZE = \"deleteModelSize\",\r\n LOAD_MODEL_SIZE = \"loadModelSize\",\r\n //industry\r\n SEARCH_INDUSTRIES = \"searchIndustries\",\r\n CREATE_INDUSTRY = \"createIndustry\",\r\n UPDATE_INDUSTRY = \"updateIndustry\",\r\n DELETE_INDUSTRY = \"deleteIndustry\",\r\n LOAD_INDUSTRY = \"loadIndustry\",\r\n //pin code type\r\n SEARCH_PIN_CODE_TYPES = \"searchPinCodeTypes\",\r\n CREATE_PIN_CODE_TYPE = \"createPinCodeType\",\r\n UPDATE_PIN_CODE_TYPE = \"updatePinCodeType\",\r\n DELETE_PIN_CODE_TYPE = \"deletePinCodeType\",\r\n LOAD_PIN_CODE_TYPE = \"loadPinCodeType\",\r\n //chart\r\n LOAD_MONTHLY_NET_WEIGHT_BY_PIN_CODE = \"loadMonthlyNetWeightByPinCode\",\r\n LOAD_MONTHLY_NET_WEIGHT_BY_LOCATION = \"loadMonthlyNetWeightByLocation\",\r\n LOAD_TOTAL_NET_WEIGHT_BY_PIN_CODE = \"loadTotalNetWeightByPinCode\",\r\n LOAD_TOTAL_NET_WEIGHT_BY_RESELLER = \"loadTotalNetWeightByReseller\",\r\n LOAD_TOTAL_NET_WEIGHT_BY_CLIENT = \"loadTotalNetWeightByClient\",\r\n LOAD_TOTAL_NET_WEIGHT_BY_LOCATION = \"loadTotalNetWeightByLocation\",\r\n LOAD_TOTAL_NET_WEIGHT_BY_DEVICE = \"loadTotalNetWeightByDevice\",\r\n LOAD_NET_WEIGHT_BY_DEVICE = \"loadNetWeightByDevice\",\r\n //docuement/tool\r\n DOWNLOAD_MANUAL = \"downloadManual\",\r\n //devicestatus\r\n LOAD_DEVICE_STATUSES = \"loadDeviceStatuses\",\r\n //timezone\r\n LOAD_TIME_ZONES = \"loadTimeZones\",\r\n //devicestatus\r\n LOAD_MEASUREMENT_STANDARDS = \"loadMeasurementStandard\",\r\n //country province\r\n SEARCH_COUNTRIES = \"searchCountries\",\r\n LOAD_COUNTRY = \"loadCountry\",\r\n CREATE_COUNTRY = \"createCountry\",\r\n UPDATE_COUNTRY = \"updateCountry\",\r\n DELETE_COUNTRY = \"deleteCountry\",\r\n SEARCH_PROVINCES = \"searchProvinces\",\r\n LOAD_PROVINCE = \"loadProvince\",\r\n CREATE_PROVINCE = \"createProvince\",\r\n UPDATE_PROVINCE = \"updateProvince\",\r\n DELETE_PROVINCE = \"deleteProvince\",\r\n //languagestrings\r\n SEARCH_LANGUAGE_STRINGS = \"searchLanguageStrings\",\r\n CREATE_LANGUAGE_STRING = \"createLanguageString\",\r\n UPDATE_LANGUAGE_STRING = \"updateLanguageString\",\r\n DELETE_LANGUAGE_STRING = \"deleteLanguageString\",\r\n LOAD_LANGUAGE_STRING = \"loadLanguageString\",\r\n}\r\n\r\nenum Mutations {\r\n // mutation types\r\n SET_CLASSNAME_BY_POSITION = \"appendBreadcrumb\",\r\n PURGE_AUTH = \"logOut\",\r\n SET_AUTH = \"setAuth\",\r\n SET_TOKEN = \"setToken\",\r\n SET_LOGIN_USER = \"setLoginUser\",\r\n SET_LOGIN_USER_AVATAR = \"setLoginUserAvatar\",\r\n SET_PASSWORD = \"setPassword\",\r\n SET_PERMISSION = \"setPermission\",\r\n SET_ERROR = \"setError\",\r\n SET_BREADCRUMB_MUTATION = \"setBreadcrumbMutation\",\r\n SET_LAYOUT_CONFIG = \"setLayoutConfig\",\r\n RESET_LAYOUT_CONFIG = \"resetLayoutConfig\",\r\n OVERRIDE_LAYOUT_CONFIG = \"overrideLayoutConfig\",\r\n OVERRIDE_PAGE_LAYOUT_CONFIG = \"overridePageLayoutConfig\",\r\n SET_KEY_VALID_FLAG = \"setKeyValidFlag\",\r\n //resellers\r\n SET_RESELLER = \"setReseller\",\r\n CLEAN_RESELLER = \"cleanReseller\",\r\n SET_RESELLERS = \"setResellers\",\r\n SET_RESELLER_ERROR = \"setResellerError\",\r\n SET_RESELLER_USERS = \"setResellerUsers\",\r\n SET_RESELLER_AVAILABLE_USERS = \"setResellerAvailableUsers\",\r\n SET_RESELLER_CLIENTS = \"setResellerClients\",\r\n SET_AVAILABLE_RESELLER_CLIENTS = \"setAvailableResellerClients\",\r\n SET_RESELLER_LOCATIONS = \"setResellerLocations\",\r\n SET_RESELLER_DEVICES = \"setResellerDevices\",\r\n SET_RESELLER_PINCODES = \"setResellerPinCodes\",\r\n SET_RESELLER_PINCODES_DETAIL = \"setResellerPinCodesDetail\",\r\n SET_LOCATION_COUNTRY_DETAIL = \"setLocationCountryDetail\",\r\n SET_RESELLER_USERS_ROLE_DETAIL = \"setResellerUsersRoleDetail\",\r\n SET_AVAILABLE_USER_ROLE_DETAIL = \"setAvailableUserRoleDetail\",\r\n SET_RESELLERS_REPORT = \"setResellersReport\",\r\n //users\r\n SET_USER = \"setUser\",\r\n SET_USER_ERROR = \"setUserError\",\r\n SET_SEARCH_USERS = \"setSearchUsers\",\r\n SET_ROLES = \"setRoles\",\r\n SET_USER_AVATAR = \"setUserAvatar\",\r\n SET_USERS_ROLE_DETAIL = \"setUsersRoleDetail\",\r\n SET_USERS_REPORT = \"setUsersReport\",\r\n SET_SUPPORT = \"setSupport\",\r\n SET_USER_ID = \"setUserId\",\r\n //clients\r\n SET_CLIENT = \"setClient\",\r\n SET_CLIENTS = \"setClients\",\r\n SET_CLIENT_LOCATIONS = \"setClientLocations\",\r\n SET_CLIENT_PINCODES = \"setClientPinCodes\",\r\n SET_CLIENT_USERS = \"setClientUsers\",\r\n SET_CLIENT_DEVICES = \"setClientDevices\",\r\n SET_CLIENT_ERROR = \"setClientError\",\r\n SET_CLIENT_ROLE_DETAIL = \"setClientRoleDetail\",\r\n SET_CLIENT_KPIS = \"setClientKpis\",\r\n SET_CLIENT_CUSTOM_KPIS = \"setClientCustomKpis\",\r\n SET_CLIENTS_REPORT = \"setClientsReport\",\r\n //locations\r\n SET_LOCATION = \"setLocation\",\r\n SET_LOCATIONS = \"setLocations\",\r\n SET_LIMIT_LOCATION_SET = \"setLimitLocationSet\",\r\n SET_LIMIT_LOCATIONS = \"setLimitLocations\",\r\n SET_GEOLOCATION = \"setGeolocation\",\r\n SET_LOCATION_ERROR = \"setLocationError\",\r\n SET_LOCATIONS_REPORT = \"setLocationsReport\",\r\n SET_LOCATION_DEVICES = \"setLocationDevices\",\r\n //devices\r\n SET_DEVICE = \"setDevice\",\r\n SET_DEVICES = \"setDevices\",\r\n SET_RECENT_DEVICES = \"setRecentDevices\",\r\n SET_DEVICE_ERROR = \"setDeviceError\",\r\n SET_DEVICE_PINCODES = \"setDevicePinCodes\",\r\n SET_DEVICE_DEVICEREADINGS = \"setDeviceDeviceReadings\",\r\n SET_DEVICES_REPORT = \"setDevicesReport\",\r\n SET_DEVICES_IDS_LIST = \"setDevicesIdsList\",\r\n SET_MANUAL_UPLOAD_DEVICE = \"setManualUploadDevice\",\r\n SET_HIDE_NEGATIVE_VALUES = \"setHideNegativeValues\",\r\n //devicereadings\r\n SET_DEVICE_READING_ERROR = \"setDeviceReadingError\",\r\n SET_DEVICE_READINGS = \"setDeviceReadings\",\r\n SET_DEVICE_READINGS_REPORT = \"setDeviceReadingsReport\",\r\n //pincodes\r\n SET_GLOBAL_PINCODES = \"setGlobalPinCodes\",\r\n SET_PINCODES = \"setPinCodes\",\r\n SET_PINCODES_DETAIL = \"setPinCodesDetail\",\r\n SET_PINCODE_ERROR = \"setPinCodeError\",\r\n SET_PINCODES_REPORT = \"setPinCodesReport\",\r\n //kpis\r\n SET_KPI_ERROR = \"setKpiError\",\r\n SET_KPI = \"setKpi\",\r\n SET_KPIS = \"setKpis\",\r\n SET_KPI_RESULT = \"setKpiResult\",\r\n SET_UNIT_OPTIONS = \"setUnitOptions\",\r\n SET_KPIS_REPORT = \"setKpisReport\",\r\n //files\r\n SET_FILE_ERROR = \"setFileError\",\r\n //model sizes\r\n SET_MODEL_SIZE = \"setModelSize\",\r\n SET_MODEL_SIZES = \"setModelSizes\",\r\n SET_MODEL_SIZE_ERROR = \"setModelSizeError\",\r\n //industries\r\n SET_INDUSTRY = \"setIndustry\",\r\n SET_INDUSTRIES = \"setIndustries\",\r\n SET_INDUSTRY_ERROR = \"setIndustryError\",\r\n //pin code types\r\n SET_PIN_CODE_TYPE = \"setPinCodeType\",\r\n SET_PIN_CODE_TYPES = \"setPinCodeTypes\",\r\n SET_PIN_CODE_TYPE_ERROR = \"setPinCodeTypeError\",\r\n //chart\r\n SET_CHART_ERROR = \"setChartError\",\r\n SET_MONTHLY_NET_WEIGHT_BY_PIN_CODE_RESULT = \"setMonthlyNetWeightByPinCodeResult\",\r\n SET_MONTHLY_NET_WEIGHT_BY_LOCATION_RESULT = \"setMonthlyNetWeightByLocationResult\",\r\n SET_TOTAL_NET_WEIGHT_BY_PIN_CODE_RESULT = \"setTotalNetWeightByPinCodeResult\",\r\n SET_TOTAL_NET_WEIGHT_BY_CLIENT_RESULT = \"setTotalNetWeightByClientResult\",\r\n SET_TOTAL_NET_WEIGHT_BY_RESELLER_RESULT = \"setTotalNetWeightByResellerResult\",\r\n SET_TOTAL_NET_WEIGHT_BY_LOCATION_RESULT = \"setTotalNetWeightByLocationResult\",\r\n SET_TOTAL_NET_WEIGHT_BY_DEVICE_RESULT = \"setTotalNetWeightByDeviceResult\",\r\n //device status\r\n SET_DEVICE_STATUS_ERROR = \"setDeviceStatusError\",\r\n SET_DEVICE_STATUSES = \"setDeviceStatuses\",\r\n //time zone\r\n SET_TIME_ZONE_ERROR = \"setTimeZoneError\",\r\n SET_TIME_ZONES = \"setTimeZones\",\r\n //measurement standard\r\n SET_MEASUREMENT_STANDARD_ERROR = \"setMeasurementStandardError\",\r\n SET_MEASUREMENT_STANDARDS = \"setMeasurementStandards\",\r\n //country province\r\n SET_COUNTRY_PROVINCE_ERROR = \"setCountryProvinceError\",\r\n SET_COUNTRIES = \"setCountries\",\r\n SET_COUNTRY = \"setCountry\",\r\n SET_ALL_PROVINCES = \"setAllProvinces\",\r\n SET_PROVINCES = \"setProvinces\",\r\n SET_PROVINCE = \"setProvince\",\r\n FILTER_PROVINCES = \"filterProvinces\",\r\n //model sizes\r\n SET_LANGUAGE_STRING = \"setLanguageString\",\r\n SET_LANGUAGE_STRINGS = \"setLanguageStrings\",\r\n SET_LANGUAGE_STRING_ERROR = \"setLanguageStringError\",\r\n}\r\n\r\nenum Endpoints {\r\n Token = \"token\",\r\n Resellers = \"resellers\",\r\n Users = \"users\",\r\n Clients = \"clients\",\r\n Locations = \"locations\",\r\n Geolocation = \"geolocation\",\r\n Devices = \"devices\",\r\n DevicePins = \"devicepins\",\r\n DeviceReadings = \"devicereadings\",\r\n KpiResult = \"devicereadings/computedkpi\",\r\n Kpis = \"kpis\",\r\n Roles = \"roles\",\r\n Files = \"files\",\r\n Queues = \"queues\",\r\n ModelSizes = \"modelsizes\",\r\n Industries = \"industries\",\r\n Email = \"emailqueue\",\r\n PinCodeTypes = \"devicepintypes\",\r\n Charts = \"charts\",\r\n DeviceStatuses = \"devicestatuses\",\r\n TimeZones = \"orcatimezones\",\r\n MeasurementStandards = \"measurementstandards\",\r\n Countries = \"countries\",\r\n Provinces = \"provinces\",\r\n Languages = \"languages\",\r\n}\r\n\r\nexport { Actions, Mutations, Endpoints };\r\n","import JwtService from \"@/core/services/JwtService\";\r\n\r\n/**\r\n * @description get all user roles\r\n */\r\n export const getRoles = (): Array => {\r\n const rolesStr = JwtService.getRoleStr();\r\n if (!rolesStr) {\r\n return [];\r\n }\r\n try {\r\n const roles = rolesStr.split(\",\");\r\n return roles\r\n } catch (err) {\r\n return [];\r\n }\r\n};\r\n\r\nexport default {\r\n getRoles,\r\n};","/**\r\n * @description get all user roles\r\n */\r\nexport const getErrorMessage = (response) => {\r\n if (response && response.data) {\r\n if (response.data.errors && response.data?.errors.length > 0) {\r\n return response.data?.errors[0]?.errorMessage;\r\n } else return response.statusText;\r\n } else return response.statusText;\r\n};\r\n\r\nexport default {\r\n getErrorMessage,\r\n};\r\n","import { getRoles } from \"@/core/helpers/permission\";\r\nimport ApiService from \"@/core/services/ApiService\";\r\nimport JwtService from \"@/core/services/JwtService\";\r\nimport {\r\n IUser,\r\n IUserAuthInfo,\r\n ILoginToken,\r\n IUserAvatar,\r\n IPermission,\r\n IChangePassword,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Mutations, Endpoints } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport store from \"..\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class AuthModule extends VuexModule implements IUserAuthInfo {\r\n errors = {};\r\n token = {} as ILoginToken;\r\n user = {} as IUser;\r\n userRole = \"\";\r\n avatar = {} as IUserAvatar;\r\n permission = {} as IPermission;\r\n isAuthenticated = !!JwtService.getToken();\r\n validKeyFlag = false;\r\n\r\n /**\r\n * Get current user object\r\n * @returns IUser\r\n */\r\n get currentUser(): IUser {\r\n return this.user;\r\n }\r\n\r\n /**\r\n * Get current user object\r\n * @returns IUserAvatar\r\n */\r\n get currentAvatar(): IUserAvatar {\r\n return this.avatar;\r\n }\r\n\r\n /**\r\n * Get current user object\r\n * @returns IUserAvatar\r\n */\r\n get currentUserRole(): string {\r\n return this.userRole;\r\n }\r\n\r\n /**\r\n * Verify user authentication\r\n * @returns boolean\r\n */\r\n get isUserAuthenticated(): boolean {\r\n return this.isAuthenticated;\r\n }\r\n\r\n /**\r\n * Get authentification errors\r\n * @returns array\r\n */\r\n get getLoginErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get authentification token\r\n * @returns ILoginToken\r\n */\r\n get getLoginToken(): ILoginToken {\r\n return this.token;\r\n }\r\n\r\n /**\r\n * Get valid key flag\r\n * @returns boolean\r\n */\r\n get getValidKeyFlag(): boolean {\r\n return this.validKeyFlag;\r\n }\r\n\r\n /**\r\n * Get permission\r\n * @returns IPermission\r\n */\r\n get getPermission(): IPermission {\r\n return this.permission;\r\n }\r\n\r\n /**\r\n * Get userCanViewResellers permission\r\n * @returns boolean\r\n */\r\n get userCanViewResellers(): boolean {\r\n return this.permission ? this.permission.ResellerView : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateResellers permission\r\n * @returns boolean\r\n */\r\n get userCanCreateResellers(): boolean {\r\n return this.permission ? this.permission.ResellerCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditResellers permission\r\n * @returns boolean\r\n */\r\n get userCanEditResellers(): boolean {\r\n return this.permission ? this.permission.ResellerEdit : false;\r\n }\r\n\r\n /**\r\n * Get userCanViewLocations permission\r\n * @returns boolean\r\n */\r\n get userCanViewLocations(): boolean {\r\n return this.permission ? this.permission.LocationView : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateLocations permission\r\n * @returns boolean\r\n */\r\n get userCanCreateLocations(): boolean {\r\n return this.permission ? this.permission.LocationCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditLocations permission\r\n * @returns boolean\r\n */\r\n get userCanEditLocations(): boolean {\r\n return this.permission ? this.permission.LocationEdit : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditLocationName permission\r\n * @returns boolean\r\n */\r\n get userCanEditLocationName(): boolean {\r\n return this.permission ? this.permission.LocationEditName : false;\r\n }\r\n\r\n /**\r\n * Get userCanViewDevices permission\r\n * @returns boolean\r\n */\r\n get userCanViewDevices(): boolean {\r\n return this.permission ? this.permission.DeviceView : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateDevices permission\r\n * @returns boolean\r\n */\r\n get userCanCreateDevices(): boolean {\r\n return this.permission ? this.permission.DeviceCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditDevices permission\r\n * @returns boolean\r\n */\r\n get userCanEditDevices(): boolean {\r\n return this.permission ? this.permission.DeviceEdit : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditDeviceName permission\r\n * @returns boolean\r\n */\r\n get userCanEditDeviceName(): boolean {\r\n return this.permission ? this.permission.DeviceEditName : false;\r\n }\r\n\r\n /**\r\n * Get userCanViewClients permission\r\n * @returns boolean\r\n */\r\n get userCanViewClients(): boolean {\r\n return this.permission ? this.permission.ClientView : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateClients permission\r\n * @returns boolean\r\n */\r\n get userCanCreateClients(): boolean {\r\n return this.permission ? this.permission.ClientCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditClients permission\r\n * @returns boolean\r\n */\r\n get userCanEditClients(): boolean {\r\n return this.permission ? this.permission.ClientEdit : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreatePinCodes permission\r\n * @returns boolean\r\n */\r\n get userCanCreatePinCodes(): boolean {\r\n return this.permission ? this.permission.PinCodeCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditPinCodes permission\r\n * @returns boolean\r\n */\r\n get userCanEditPinCodes(): boolean {\r\n return this.permission ? this.permission.PinCodeEdit : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateKpi permission\r\n * @returns boolean\r\n */\r\n get userCanCreateKpi(): boolean {\r\n return this.permission ? this.permission.KpiCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditKpi permission\r\n * @returns boolean\r\n */\r\n get userCanEditKpi(): boolean {\r\n return this.permission ? this.permission.KpiEdit : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateModelSizes permission\r\n * @returns boolean\r\n */\r\n get userCanCreateModelSizes(): boolean {\r\n return this.permission ? this.permission.ModelSizeCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditModelSizes permission\r\n * @returns boolean\r\n */\r\n get userCanEditModelSizes(): boolean {\r\n return this.permission ? this.permission.ModelSizeEdit : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateIndustries permission\r\n * @returns boolean\r\n */\r\n get userCanCreateIndustries(): boolean {\r\n return this.permission ? this.permission.IndustryCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditIndustries permission\r\n * @returns boolean\r\n */\r\n get userCanEditIndustries(): boolean {\r\n return this.permission ? this.permission.IndustryEdit : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateDevicePinTypes permission\r\n * @returns boolean\r\n */\r\n get userCanCreateDevicePinTypes(): boolean {\r\n return this.permission ? this.permission.DevicePinTypeCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditDevicePinTypes permission\r\n * @returns boolean\r\n */\r\n get userCanEditDevicePinTypes(): boolean {\r\n return this.permission ? this.permission.DevicePinTypeEdit : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateResellerAdmin permission\r\n * @returns boolean\r\n */\r\n get userCanCreateResellerAdmin(): boolean {\r\n return this.permission ? this.permission.ResellerAdminCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateClientUser permission\r\n * @returns boolean\r\n */\r\n get userCanCreateClientUser(): boolean {\r\n return this.permission ? this.permission.ClientUserCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateGlobalAdmin permission\r\n * @returns boolean\r\n */\r\n get userCanCreateGlobalAdmin(): boolean {\r\n return this.permission ? this.permission.GlobalAdminCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanCreateClientAdmin permission\r\n * @returns boolean\r\n */\r\n get userCanCreateClientAdmin(): boolean {\r\n return this.permission ? this.permission.ClientAdminCreate : false;\r\n }\r\n\r\n /**\r\n * Get userCanViewResellerDropdown permission\r\n * @returns boolean\r\n */\r\n get userCanViewResellerDropdown(): boolean {\r\n return this.permission ? this.permission.ViewResellerDropdown : false;\r\n }\r\n\r\n /**\r\n * Get userCanViewClientDropdown permission\r\n * @returns boolean\r\n */\r\n get userCanViewClientDropdown(): boolean {\r\n return this.permission ? this.permission.ViewClientDropdown : false;\r\n }\r\n\r\n /**\r\n * Get userCanUpdateUserIsActive permission\r\n * @returns boolean\r\n */\r\n get userCanUpdateUserIsActive(): boolean {\r\n return this.permission ? this.permission.UserIsActiveUpdate : false;\r\n }\r\n\r\n /**\r\n * Get userCanUpdateUserimitResellers permission\r\n * @returns boolean\r\n */\r\n get userCanUpdateUserimitResellers(): boolean {\r\n return this.permission ? this.permission.UserLimitResellersUpdate : false;\r\n }\r\n\r\n get userCanViewPinCodeGraphsUpdate(): boolean {\r\n return this.permission ? this.permission.UserCanViewPinCodeGraphsUpdate : false;\r\n }\r\n\r\n /**\r\n * Get userCanViewPinCode permission\r\n * @returns boolean\r\n */\r\n get userCanViewPinCode(): boolean {\r\n return this.permission ? this.permission.PinCodeView : false;\r\n }\r\n\r\n /**\r\n * Get userCanRestrictUserLocations permission\r\n * @returns boolean\r\n */\r\n get userCanRestrictUserLocations(): boolean {\r\n return this.permission ? this.permission.CanRestrictUserLocations : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditGeography permission\r\n * @returns boolean\r\n */\r\n get userCanEditGeography(): boolean {\r\n return this.permission ? this.permission.CanEditGeography : false;\r\n }\r\n\r\n /**\r\n * Get userCanEditLanguageStrings permission\r\n * @returns boolean\r\n */\r\n get userCanEditLanguageStrings(): boolean {\r\n return this.permission ? this.permission.CanEditLanguageStrings : false;\r\n }\r\n\r\n /**\r\n * Get userCanViewNetWeightByDigesterGraph permission\r\n * @returns boolean\r\n */\r\n get userCanViewNetWeightByDigesterGraph(): boolean {\r\n return this.permission\r\n ? this.permission.CanViewNetWeightByDigesterGraph\r\n : false;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_AUTH](payload) {\r\n this.isAuthenticated = true;\r\n this.errors = {};\r\n JwtService.saveTokens(payload?.token, payload?.refreshToken);\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_TOKEN](token) {\r\n const tokenObj = JwtService.parseJWT(token);\r\n this.token = tokenObj as unknown as ILoginToken;\r\n if (this.token && this.token.scope) {\r\n JwtService.saveRoleStr(this.token.scope.toString());\r\n }\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LOGIN_USER](user: IUser) {\r\n this.user = user;\r\n\r\n switch (this.user.roleId) {\r\n case store.getters.getGlobalAdministratorRoleId:\r\n this.userRole = \"Global Administrator\";\r\n break;\r\n\r\n case store.getters.getResellerAdministratorRoleId:\r\n this.userRole = \"Partner Administrator\";\r\n break;\r\n\r\n case store.getters.getClientAdministratorRoleId:\r\n this.userRole = \"Client Administrator\";\r\n break;\r\n\r\n case store.getters.getClientUserRoleId:\r\n this.userRole = \"Client User\";\r\n break;\r\n }\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LOGIN_USER_AVATAR](avatar: IUserAvatar) {\r\n this.avatar = avatar;\r\n }\r\n\r\n @Mutation\r\n [Mutations.PURGE_AUTH]() {\r\n this.isAuthenticated = false;\r\n this.user = {} as IUser;\r\n this.permission = {} as IPermission;\r\n this.errors = [];\r\n JwtService.destroyTokens();\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_PERMISSION](permission: IPermission) {\r\n this.permission = permission;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_KEY_VALID_FLAG](flag: boolean) {\r\n this.validKeyFlag = flag;\r\n }\r\n\r\n @Action\r\n [Actions.LOGIN](credentials) {\r\n this.context.commit(Mutations.SET_ERROR, []);\r\n return ApiService.post(Endpoints.Token, credentials)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_AUTH, data);\r\n this.context.commit(Mutations.SET_TOKEN, data.token);\r\n })\r\n .catch(({ response }) => {\r\n if (!response || response.status == 401) {\r\n this.context.commit(Mutations.SET_ERROR, [\r\n \"There was an error verifying your credentials\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_LOGIN_USER]() {\r\n this.context.commit(Mutations.SET_ERROR, []);\r\n if (!this.token || !this.token.userId) {\r\n this.context.commit(Mutations.SET_ERROR, [\r\n \"There was an error fetching login user. UserId not set.\",\r\n ]);\r\n return;\r\n }\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Users, this.token.userId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_LOGIN_USER, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_ERROR, [\r\n \"There was an error fetching login user.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_LOGIN_USER_AVATAR]() {\r\n this.context.commit(Mutations.SET_ERROR, []);\r\n if (!this.token || !this.token.userId) {\r\n this.context.commit(Mutations.SET_ERROR, [\r\n \"There was an error fetching login user avatar. UserId not set.\",\r\n ]);\r\n return;\r\n }\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Users, this.token.userId + \"/avatar\")\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_LOGIN_USER_AVATAR, data);\r\n })\r\n .catch(({ response }) => {\r\n this.context.commit(Mutations.SET_LOGIN_USER_AVATAR, null);\r\n if (!response) {\r\n this.context.commit(Mutations.SET_ERROR, [\r\n \"There was an error fetching login user.\",\r\n ]);\r\n return;\r\n } else if (response.status == 404) {\r\n return; //ignore if no avatar;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_PERMISSION]() {\r\n let permission = {} as IPermission;\r\n permission.Permissions = getRoles();\r\n permission.ResellerView = permission.Permissions.includes(\"ResellerView\");\r\n permission.LocationCreate =\r\n permission.Permissions.includes(\"LocationCreate\");\r\n permission.ClientEdit = permission.Permissions.includes(\"ClientEdit\");\r\n permission.ResellerEdit = permission.Permissions.includes(\"ResellerEdit\");\r\n permission.ResellerCreate =\r\n permission.Permissions.includes(\"ResellerCreate\");\r\n permission.DeviceView = permission.Permissions.includes(\"DeviceView\");\r\n permission.ClientCreate = permission.Permissions.includes(\"ClientCreate\");\r\n permission.ClientView = permission.Permissions.includes(\"ClientView\");\r\n permission.DeviceEdit = permission.Permissions.includes(\"DeviceEdit\");\r\n permission.DeviceReadingUpload = permission.Permissions.includes(\r\n \"DeviceReadingUpload\"\r\n );\r\n permission.DeviceCreate = permission.Permissions.includes(\"DeviceCreate\");\r\n permission.DeviceEditName =\r\n permission.Permissions.includes(\"DeviceEditName\");\r\n permission.LocationEdit = permission.Permissions.includes(\"LocationEdit\");\r\n permission.LocationEditName =\r\n permission.Permissions.includes(\"LocationEditName\");\r\n permission.LocationView = permission.Permissions.includes(\"LocationView\");\r\n permission.PinCodeCreate =\r\n permission.Permissions.includes(\"DevicePinCreate\");\r\n permission.PinCodeEdit = permission.Permissions.includes(\"DevicePinEdit\");\r\n permission.KpiCreate = permission.Permissions.includes(\"KpiCreate\");\r\n permission.KpiEdit = permission.Permissions.includes(\"KpiEdit\");\r\n permission.ModelSizeCreate =\r\n permission.Permissions.includes(\"ModelSizeCreate\");\r\n permission.ModelSizeEdit = permission.Permissions.includes(\"ModelSizeEdit\");\r\n permission.IndustryCreate =\r\n permission.Permissions.includes(\"IndustryCreate\");\r\n permission.IndustryEdit = permission.Permissions.includes(\"IndustryEdit\");\r\n permission.DevicePinTypeCreate = permission.Permissions.includes(\r\n \"DevicePinTypeCreate\"\r\n );\r\n permission.DevicePinTypeEdit =\r\n permission.Permissions.includes(\"DevicePinTypeEdit\");\r\n permission.ResellerAdminCreate = permission.Permissions.includes(\r\n \"CanCreateResellerAdministrator\"\r\n );\r\n permission.ClientUserCreate = permission.Permissions.includes(\r\n \"CanCreateClientUser\"\r\n );\r\n permission.GlobalAdminCreate = permission.Permissions.includes(\r\n \"CanCreateGlobalAdministrator\"\r\n );\r\n permission.ClientAdminCreate = permission.Permissions.includes(\r\n \"CanCreateClientAdministrator\"\r\n );\r\n permission.ViewResellerDropdown = permission.Permissions.includes(\r\n \"UICanViewResellerDropdown\"\r\n );\r\n permission.ViewClientDropdown = permission.Permissions.includes(\r\n \"UICanViewClientDropdown\"\r\n );\r\n permission.UserIsActiveUpdate = permission.Permissions.includes(\r\n \"CanChangeUserIsActive\"\r\n );\r\n permission.UserLimitResellersUpdate = permission.Permissions.includes(\r\n \"CanChangeUserLimitResellers \"\r\n );\r\n permission.UserCanViewPinCodeGraphsUpdate = permission.Permissions.includes(\r\n \"CanChangeUserViewPinCodeGraphs\"\r\n );\r\n permission.PinCodeView = permission.Permissions.includes(\"PinCodeView\");\r\n permission.CanRestrictUserLocations = permission.Permissions.includes(\r\n \"CanRestrictUserLocations\"\r\n );\r\n permission.CanEditGeography =\r\n permission.Permissions.includes(\"CanEditGeography\");\r\n permission.CanEditLanguageStrings = permission.Permissions.includes(\r\n \"CanEditLanguageStrings\"\r\n );\r\n permission.CanViewNetWeightByDigesterGraph =\r\n permission.Permissions.includes(\"CanViewNetWeightByDigesterGraph\");\r\n\r\n this.context.commit(Mutations.SET_PERMISSION, permission);\r\n }\r\n\r\n @Action\r\n [Actions.LOGOUT]() {\r\n this.context.commit(Mutations.PURGE_AUTH);\r\n }\r\n\r\n @Action\r\n [Actions.REGISTER](credentials) {\r\n return ApiService.post(\"register\", credentials)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_AUTH, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.FORGOT_PASSWORD](payload) {\r\n this.context.commit(Mutations.SET_ERROR, []);\r\n return ApiService.post(\r\n Endpoints.Users + \"/forgot?email=\" + payload.email,\r\n payload\r\n )\r\n .then(() => {\r\n this.context.commit(Mutations.SET_ERROR, {});\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_ERROR, [\r\n \"We were unable to find a user with that email address. Please confirm you are entering the correct address.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n async [Actions.VALIDATE_KEY](key: string) {\r\n this.context.commit(Mutations.SET_ERROR, []);\r\n try {\r\n const query = \"forgot/reset?key=\" + key;\r\n const meta = await ApiService.head(Endpoints.Users, query);\r\n if (meta.headers && meta.headers[\"x-reset-key-valid\"]) {\r\n const result = meta.headers[\"x-reset-key-valid\"] == \"True\";\r\n this.context.commit(Mutations.SET_KEY_VALID_FLAG, result);\r\n }\r\n } catch (err) {\r\n this.context.commit(Mutations.SET_ERROR, err);\r\n }\r\n }\r\n\r\n @Action\r\n [Actions.VERIFY_AUTH](payload) {\r\n const token = payload?.api_token;\r\n const refreshToken = payload?.refresh_token;\r\n\r\n if (!token) {\r\n this.context.commit(Mutations.PURGE_AUTH);\r\n return;\r\n }\r\n\r\n this.context.commit(Mutations.SET_TOKEN, token);\r\n if (!this.token) {\r\n this.context.commit(Mutations.PURGE_AUTH);\r\n return;\r\n }\r\n\r\n if (\r\n Date.now() >\r\n (this.token.exp as unknown as number) * 1000 //Expired.\r\n ) {\r\n this.context.commit(Mutations.PURGE_AUTH);\r\n return;\r\n }\r\n\r\n const refreshTokenMinutes = 30; //set 30 mins to refresh before expired.\r\n if (\r\n Date.now() + refreshTokenMinutes * 60000 >\r\n (this.token.exp as unknown as number) * 1000\r\n ) {\r\n ApiService.setHeader();\r\n const req = {\r\n refreshToken: refreshToken,\r\n } as any;\r\n return ApiService.post(Endpoints.Token + \"/refresh\", req)\r\n .then((data) => {\r\n this.context.commit(Mutations.SET_ERROR, {});\r\n this.context.commit(Mutations.SET_AUTH, data.data);\r\n this.context.commit(Mutations.SET_TOKEN, data.data.token);\r\n })\r\n .catch(({ response }) => {\r\n //We don't do anthing for natural expiration.\r\n });\r\n }\r\n }\r\n\r\n @Action\r\n [Actions.RESET_PASSWORD](user: IChangePassword) {\r\n this.context.commit(Mutations.SET_ERROR, []);\r\n // ApiService.setHeader();\r\n const req = {\r\n password: {\r\n op: \"Replace\",\r\n value: user.password,\r\n },\r\n } as any;\r\n\r\n return ApiService.post(\r\n Endpoints.Users + \"/forgot/reset?key=\" + user.key,\r\n req\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_ERROR, {});\r\n })\r\n .catch(({ response }) => {\r\n if (!response || response.status == 404) {\r\n this.context.commit(Mutations.SET_ERROR, [\r\n \"There was an error resetting the user password.\",\r\n ]);\r\n return;\r\n }\r\n if (response.data && response.data.errors) {\r\n this.context.commit(Mutations.SET_ERROR, response.data.errors);\r\n }\r\n });\r\n }\r\n}\r\n","import { Module, VuexModule, Mutation, Action } from \"vuex-module-decorators\";\r\nimport { Actions, Mutations } from \"@/store/enums/StoreEnums\";\r\n\r\nexport interface StoreInfo {\r\n classes: {\r\n header?: Array;\r\n headerContainer?: Array;\r\n headerMobile?: Array;\r\n headerMenu?: Array;\r\n aside?: Array;\r\n asideMenu?: Array;\r\n asideToggle?: Array;\r\n toolbar?: Array;\r\n toolbarContainer?: Array;\r\n content?: Array;\r\n contentContainer?: Array;\r\n footerContainer?: Array;\r\n sidebar?: Array;\r\n pageTitle?: Array;\r\n };\r\n}\r\n\r\n@Module\r\nexport default class BodyModule extends VuexModule implements StoreInfo {\r\n classes = {};\r\n\r\n /**\r\n * Get current page title\r\n * @returns string\r\n */\r\n get getClasses() {\r\n return (position) => {\r\n if (typeof position !== \"undefined\") {\r\n return this.classes[position];\r\n }\r\n return this.classes;\r\n };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLASSNAME_BY_POSITION](payload) {\r\n const { position, className } = payload;\r\n if (!this.classes[position]) {\r\n this.classes[position] = [];\r\n }\r\n this.classes[position].push(className);\r\n }\r\n\r\n @Action\r\n [Actions.ADD_BODY_CLASSNAME](className) {\r\n document.body.classList.add(className);\r\n }\r\n\r\n @Action\r\n [Actions.REMOVE_BODY_CLASSNAME](className) {\r\n document.body.classList.remove(className);\r\n }\r\n\r\n @Action\r\n [Actions.ADD_BODY_ATTRIBUTE](payload) {\r\n const { qulifiedName, value } = payload;\r\n document.body.setAttribute(qulifiedName, value);\r\n }\r\n\r\n @Action\r\n [Actions.REMOVE_BODY_ATTRIBUTE](payload) {\r\n const { qulifiedName } = payload;\r\n document.body.removeAttribute(qulifiedName);\r\n }\r\n\r\n @Action\r\n [Actions.ADD_CLASSNAME](payload) {\r\n this.context.commit(Mutations.SET_CLASSNAME_BY_POSITION, payload);\r\n }\r\n}\r\n","import { Action, Mutation, Module, VuexModule } from \"vuex-module-decorators\";\r\nimport { Actions, Mutations } from \"@/store/enums/StoreEnums\";\r\n\r\ninterface Breadcrumb {\r\n title: string;\r\n pageBreadcrumbPath: Array;\r\n isDetail: boolean | false;\r\n}\r\n\r\ninterface StoreInfo {\r\n breadcrumbs: Breadcrumb;\r\n}\r\n\r\n@Module\r\nexport default class BreadcrumbsModule extends VuexModule implements StoreInfo {\r\n breadcrumbs = {} as Breadcrumb;\r\n\r\n /**\r\n * Get breadcrumb object for current page\r\n * @returns object\r\n */\r\n get getBreadcrumbs(): Breadcrumb {\r\n return this.breadcrumbs;\r\n }\r\n\r\n /**\r\n * Get breadcrumb array for current page\r\n * @returns object\r\n */\r\n get pageBreadcrumbPath(): Array {\r\n return this.breadcrumbs.pageBreadcrumbPath;\r\n }\r\n\r\n /**\r\n * Get current page title\r\n * @returns string\r\n */\r\n get pageTitle(): string {\r\n return this.breadcrumbs.title;\r\n }\r\n\r\n /**\r\n * Get current page is detail page property\r\n * @returns boolean\r\n */\r\n get pageIsDetail(): boolean {\r\n return this.breadcrumbs.isDetail;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_BREADCRUMB_MUTATION](payload) {\r\n this.breadcrumbs = payload;\r\n }\r\n\r\n @Action\r\n [Actions.SET_BREADCRUMB_ACTION](payload) {\r\n this.context.commit(Mutations.SET_BREADCRUMB_MUTATION, payload);\r\n }\r\n}\r\n","import LayoutConfigTypes from \"@/core/config/LayoutConfigTypes\";\r\n\r\nconst config: LayoutConfigTypes = {\r\n themeName: \"Metronic\",\r\n themeVersion: \"8.0.38\",\r\n demo: \"demo1\",\r\n main: {\r\n type: \"default\",\r\n primaryColor: \"#009EF7\",\r\n logo: {\r\n dark: \"media/logos/logo-1-dark.svg\",\r\n light: \"media/logos/logo-wide.png\",\r\n },\r\n },\r\n illustrations: {\r\n set: \"sketchy-1\",\r\n },\r\n loader: {\r\n logo: \"media/logos/logo-wide.png\",\r\n display: true,\r\n type: \"default\",\r\n },\r\n scrollTop: {\r\n display: true,\r\n },\r\n header: {\r\n display: true,\r\n menuIcon: \"font\",\r\n width: \"fluid\",\r\n fixed: {\r\n desktop: true,\r\n tabletAndMobile: true,\r\n },\r\n },\r\n toolbar: {\r\n display: true,\r\n width: \"fluid\",\r\n fixed: {\r\n desktop: true,\r\n tabletAndMobile: true,\r\n },\r\n },\r\n aside: {\r\n display: true,\r\n theme: \"light\",\r\n fixed: true,\r\n menuIcon: \"font\",\r\n minimized: false,\r\n minimize: true,\r\n hoverable: true,\r\n },\r\n content: {\r\n width: \"fixed\",\r\n },\r\n footer: {\r\n width: \"fluid\",\r\n },\r\n};\r\n\r\nexport default config;\r\n","import objectPath from \"object-path\";\r\nimport merge from \"deepmerge\";\r\nimport layoutConfig from \"@/core/config/DefaultLayoutConfig\";\r\nimport { Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Mutation, Module, VuexModule } from \"vuex-module-decorators\";\r\nimport LayoutConfigTypes from \"@/core/config/LayoutConfigTypes\";\r\n\r\ninterface StoreInfo {\r\n config: LayoutConfigTypes;\r\n initial: LayoutConfigTypes;\r\n}\r\n\r\n@Module\r\nexport default class ConfigModule extends VuexModule implements StoreInfo {\r\n config = layoutConfig;\r\n initial = layoutConfig;\r\n\r\n /**\r\n * Get config from layout config\r\n * @returns {function(path, defaultValue): *}\r\n */\r\n get layoutConfig() {\r\n return (path, defaultValue) => {\r\n return objectPath.get(this.config, path, defaultValue);\r\n };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LAYOUT_CONFIG](payload): void {\r\n this.config = payload;\r\n }\r\n\r\n @Mutation\r\n [Mutations.RESET_LAYOUT_CONFIG]() {\r\n this.config = Object.assign({}, this.initial);\r\n }\r\n\r\n @Mutation\r\n [Mutations.OVERRIDE_LAYOUT_CONFIG](): void {\r\n this.config = this.initial = Object.assign(\r\n {},\r\n this.initial,\r\n JSON.parse(window.localStorage.getItem(\"config\") || \"{}\")\r\n );\r\n }\r\n\r\n @Mutation\r\n [Mutations.OVERRIDE_PAGE_LAYOUT_CONFIG](payload): void {\r\n this.config = merge(this.config, payload);\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n IReseller,\r\n IResellerModule,\r\n IUserExtension,\r\n IClient,\r\n ILocationExtension,\r\n IResellerSearchParam,\r\n ISearchResult,\r\n IRole,\r\n IDevice,\r\n IPinCodeExtension,\r\n IResellerReport,\r\n IProvince,\r\n ICountry,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class ResellerModule\r\n extends VuexModule\r\n implements IResellerModule\r\n{\r\n errors = {};\r\n reseller = {} as IReseller;\r\n resellers = {} as ISearchResult;\r\n resellerUsers = {} as ISearchResult;\r\n resellerAvailableUsers = {} as ISearchResult;\r\n resellerClients = {} as ISearchResult;\r\n resellerAvailableClients = {} as ISearchResult;\r\n resellerLocations = {} as ISearchResult;\r\n resellerDevices = {} as ISearchResult;\r\n resellerPinCodes = {} as Array;\r\n resellersReport = {} as ISearchResult;\r\n\r\n /**\r\n * Get reseller\r\n * @returns IReseller\r\n */\r\n get getReseller(): IReseller {\r\n return this.reseller;\r\n }\r\n\r\n /**\r\n * Get resellers\r\n * @returns ISearchResult\r\n */\r\n get getResellers(): ISearchResult {\r\n return this.resellers;\r\n }\r\n\r\n /**\r\n * Get authentification errors\r\n * @returns array\r\n */\r\n get getResellerErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get reseller users\r\n * @returns ISearchResult\r\n */\r\n get getResellerUsers(): ISearchResult {\r\n return this.resellerUsers;\r\n }\r\n\r\n /**\r\n * Get reseller available users\r\n * @returns ISearchResult\r\n */\r\n get getResellerAvailableUsers(): ISearchResult {\r\n return this.resellerAvailableUsers;\r\n }\r\n\r\n /**\r\n * Get reseller clients\r\n * @returns ISearchResult\r\n */\r\n get getResellerClients(): ISearchResult {\r\n return this.resellerClients;\r\n }\r\n\r\n /**\r\n * Get reseller available clients\r\n * @returns ISearchResult\r\n */\r\n get getResellerAvailableClients(): ISearchResult {\r\n return this.resellerAvailableClients;\r\n }\r\n\r\n /**\r\n * Get reseller locations\r\n * @returns ISearchResult\r\n */\r\n get getResellerLocations(): ISearchResult {\r\n return this.resellerLocations;\r\n }\r\n\r\n /**\r\n * Get reseller devices\r\n * @returns ISearchResult\r\n */\r\n get getResellerDevices(): ISearchResult {\r\n return this.resellerDevices;\r\n }\r\n\r\n /**\r\n * Get reseller pin codes\r\n * @returns ISearchResult\r\n */\r\n get getResellerPinCodes(): Array {\r\n return this.resellerPinCodes;\r\n }\r\n\r\n /**\r\n * Get resellers report\r\n * @returns ISearchResult\r\n */\r\n get getResellersReport(): ISearchResult {\r\n return this.resellersReport;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLER_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLER](reseller) {\r\n this.reseller = reseller;\r\n }\r\n\r\n @Mutation\r\n [Mutations.CLEAN_RESELLER]() {\r\n this.reseller = {} as IReseller;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLERS](resellers: ISearchResult) {\r\n this.resellers = resellers;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLER_USERS](users: ISearchResult) {\r\n this.resellerUsers = users;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLER_AVAILABLE_USERS](\r\n users: ISearchResult\r\n ) {\r\n this.resellerAvailableUsers = users;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLER_CLIENTS](clients: ISearchResult) {\r\n this.resellerClients = clients;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_AVAILABLE_RESELLER_CLIENTS](clients: ISearchResult) {\r\n this.resellerAvailableClients = clients;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLER_LOCATIONS](\r\n locations: ISearchResult\r\n ) {\r\n this.resellerLocations = locations;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLER_PINCODES](codes: Array) {\r\n this.resellerPinCodes = codes;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLER_PINCODES_DETAIL]() {\r\n if (!this.resellerDevices.items) {\r\n return;\r\n }\r\n for (var j = 0; j < this.resellerPinCodes.length; j++) {\r\n const devices: IDevice[] = this.resellerDevices.items.filter((dev) => {\r\n return (dev as IDevice).deviceId === this.resellerPinCodes[j].deviceId;\r\n });\r\n\r\n if (devices && devices.length > 0) {\r\n this.resellerPinCodes[j].deviceName = devices[0].name;\r\n this.resellerPinCodes[j].deviceSerialNumber = devices[0].serialNumber;\r\n }\r\n }\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LOCATION_COUNTRY_DETAIL](data) {\r\n if (\r\n !data ||\r\n !data.countries ||\r\n !data.provinces ||\r\n !this.resellerLocations ||\r\n !this.resellerLocations.items\r\n ) {\r\n return;\r\n }\r\n for (var j = 0; j < this.resellerLocations.items.length; j++) {\r\n var countries: ICountry[] = data.countries.items.filter((coun) => {\r\n return (\r\n (coun as ICountry).countryId ===\r\n this.resellerLocations.items[j].countryId\r\n );\r\n });\r\n\r\n if (countries && countries.length > 0) {\r\n this.resellerLocations.items[j].country = countries[0].value;\r\n }\r\n\r\n var provinces: IProvince[] = data.provinces.filter((prov) => {\r\n return (\r\n (prov as IProvince).provinceId ===\r\n this.resellerLocations.items[j].stateProvinceId\r\n );\r\n });\r\n\r\n if (provinces && provinces.length > 0) {\r\n this.resellerLocations.items[j].province = provinces[0].value;\r\n }\r\n }\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLER_USERS_ROLE_DETAIL](data: ISearchResult) {\r\n if (!data || !this.resellerUsers || !this.resellerUsers.items) {\r\n return;\r\n }\r\n for (var j = 0; j < this.resellerUsers.items.length; j++) {\r\n const roles: IRole[] = data.items.filter((role) => {\r\n return (role as IRole).roleId === this.resellerUsers.items[j].roleId;\r\n });\r\n\r\n if (roles && roles.length > 0) {\r\n this.resellerUsers.items[j].role = roles[0].description;\r\n }\r\n }\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_AVAILABLE_USER_ROLE_DETAIL](data: ISearchResult) {\r\n if (\r\n !data ||\r\n !this.resellerAvailableUsers ||\r\n !this.resellerAvailableUsers.items\r\n ) {\r\n return;\r\n }\r\n for (var j = 0; j < this.resellerAvailableUsers.items.length; j++) {\r\n const roles: IRole[] = data.items.filter((role) => {\r\n return (\r\n (role as IRole).roleId === this.resellerAvailableUsers.items[j].roleId\r\n );\r\n });\r\n\r\n if (roles && roles.length > 0) {\r\n this.resellerAvailableUsers.items[j].role = roles[0].description;\r\n }\r\n }\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLER_DEVICES](clients: ISearchResult) {\r\n this.resellerDevices = clients;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RESELLERS_REPORT](report: ISearchResult) {\r\n this.resellersReport = report;\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_RESELLERS](param: IResellerSearchParam) {\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.clientId) {\r\n query = \"clientId=\" + param.clientId;\r\n }\r\n\r\n if (param.name) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"name=\" + param.name;\r\n }\r\n\r\n if (param.email) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"email=\" + param.email;\r\n }\r\n\r\n if (param.phone) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"phoneNumber=\" + param.phone;\r\n }\r\n\r\n if (param.page > -1) { \r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n \r\n return ApiService.get(Endpoints.Resellers, query)\r\n .then(({ data }) => {\r\n switch (param.category.toLowerCase()) {\r\n case \"resellers\":\r\n default:\r\n this.context.commit(Mutations.SET_RESELLERS, data);\r\n break;\r\n }\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, [\r\n \"There was an error loading resellers.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n async [Actions.LOAD_RESELLER_METADATA]() {\r\n ApiService.setHeader();\r\n const resellers = this.resellers;\r\n if (!resellers) {\r\n return;\r\n }\r\n for (let i = 0; i < resellers.items.length; i++) {\r\n const meta = await ApiService.head(\r\n Endpoints.Resellers,\r\n resellers.items[i].resellerId\r\n );\r\n if (meta.data == \"\") {\r\n //resellers.items[i].clientCount = 82;\r\n //resellers.items[i].newestClientDate = new Date();\r\n }\r\n }\r\n this.context.commit(Mutations.SET_RESELLERS, resellers);\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_RESELLER](resellerId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Resellers, resellerId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_RESELLER, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_RESELLER](reseller: IReseller) {\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, []);\r\n ApiService.setHeader();\r\n const req = {\r\n name: {\r\n op: \"Replace\",\r\n value: reseller.name,\r\n },\r\n supportPhoneNumber: {\r\n op: \"Replace\",\r\n value: reseller.supportPhoneNumber,\r\n },\r\n supportEmail: {\r\n op: \"Replace\",\r\n value: reseller.supportEmail,\r\n },\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.patch(\r\n Endpoints.Resellers + \"/\" + reseller.resellerId,\r\n req\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, {});\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_RESELLER](reseller: IReseller) {\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.Resellers, reseller.resellerId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_RESELLER](param) {\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, []);\r\n const req = {\r\n name: param.name,\r\n supportPhoneNumber: param.supportPhoneNumber,\r\n isActive: true,\r\n supportEmail: param.supportEmail,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Resellers, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.ADD_RESELLER_CLIENT](payload) {\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, []);\r\n if (!payload || !payload.clientId || !payload.resellerId) {\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, [\r\n \"There was an error adding a client to reseller.\",\r\n ]);\r\n return;\r\n }\r\n ApiService.setHeader();\r\n return ApiService.post(\r\n Endpoints.Resellers +\r\n \"/\" +\r\n payload.resellerId +\r\n \"/client/\" +\r\n payload.clientId,\r\n payload\r\n )\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_RESELLERS_REPORT](param: IResellerSearchParam) {\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.clientId) {\r\n query = \"clientId=\" + param.clientId;\r\n }\r\n\r\n if (param.name) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"name=\" + param.name;\r\n }\r\n\r\n if (param.email) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"email=\" + param.email;\r\n }\r\n\r\n if (param.phone) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"phoneNumber=\" + param.phone;\r\n }\r\n\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n return ApiService.get(Endpoints.Resellers + \"/export\", query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_RESELLERS_REPORT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, [\r\n \"There was an error loading resellers export.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_RESELLER_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n ISearchResult,\r\n IUser,\r\n IBaseModule,\r\n IUserSearchParam,\r\n IUserExtension,\r\n IRole,\r\n IUserAvatar,\r\n IUserAvatarExtension,\r\n IUserReport,\r\n ISupport,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\nimport store from \"@/store\";\r\n\r\n@Module\r\nexport default class UserModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n users = {} as ISearchResult;\r\n userId = \"\";\r\n user = {} as IUser;\r\n roles = {} as ISearchResult;\r\n avatar = {} as IUserAvatar;\r\n roleIdGlobalAdministrator = \"\";\r\n roleIdResellerAdministrator = \"\";\r\n roleIdClientAdministrator = \"\";\r\n roleIdClientUser = \"\";\r\n globalAdminRoles = [] as IRole[];\r\n clientAdminRoles = [] as IRole[];\r\n managerRoles = [] as IRole[];\r\n userClientRoles = [] as IRole[];\r\n usersReport = {} as ISearchResult;\r\n userSupport = {} as ISupport;\r\n\r\n /**\r\n * Get user errors\r\n * @returns array\r\n */\r\n get getUserErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get users\r\n * @returns ISearchResult\r\n */\r\n get getUsers(): ISearchResult {\r\n return this.users;\r\n }\r\n\r\n /**\r\n * Get user\r\n * @returns IUser\r\n */\r\n get getUser(): IUser {\r\n return this.user;\r\n }\r\n\r\n /**\r\n * Get roles\r\n * @returns ISearchResult\r\n */\r\n get getRoles(): ISearchResult {\r\n return this.roles;\r\n }\r\n\r\n /**\r\n * Get avatar\r\n * @returns IUserAvatar\r\n */\r\n get getAvatar(): IUserAvatar {\r\n return this.avatar;\r\n }\r\n\r\n /**\r\n * Get global administrator role id\r\n * @returns string\r\n */\r\n get getGlobalAdministratorRoleId(): string {\r\n return this.roleIdGlobalAdministrator;\r\n }\r\n\r\n /**\r\n * Get reseller administrator role id\r\n * @returns string\r\n */\r\n get getResellerAdministratorRoleId(): string {\r\n return this.roleIdResellerAdministrator;\r\n }\r\n\r\n /**\r\n * Get client administrator role id\r\n * @returns string\r\n */\r\n get getClientAdministratorRoleId(): string {\r\n return this.roleIdClientAdministrator;\r\n }\r\n\r\n /**\r\n * Get client user role id\r\n * @returns string\r\n */\r\n get getClientUserRoleId(): string {\r\n return this.roleIdClientUser;\r\n }\r\n\r\n /**\r\n * Get user id\r\n * @returns string\r\n */\r\n get getUserId(): string {\r\n return this.userId;\r\n }\r\n\r\n\r\n /**\r\n * Get users report\r\n * @returns ISearchResult\r\n */\r\n get getUsersReport(): ISearchResult {\r\n return this.usersReport;\r\n }\r\n\r\n /**\r\n * Get global admin roles\r\n * @returns IRole[]\r\n */\r\n get getGlobalAdminRoles(): IRole[] {\r\n return this.globalAdminRoles;\r\n }\r\n\r\n /**\r\n * Get client admin roles\r\n * @returns IRole[]\r\n */\r\n get getClientAdminRoles(): IRole[] {\r\n return this.clientAdminRoles;\r\n }\r\n\r\n /**\r\n * Get manager roles\r\n * @returns IRole[]\r\n */\r\n get getManagerRoles(): IRole[] {\r\n return this.managerRoles;\r\n }\r\n\r\n /**\r\n * Get client user roles\r\n * @returns IRole[]\r\n */\r\n get getClientUserRoles(): IRole[] {\r\n return this.userClientRoles;\r\n }\r\n\r\n /**\r\n * Get user support\r\n * @returns ISupport\r\n */\r\n get getUserSupport(): ISupport {\r\n return this.userSupport;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_USER_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_USER](user: IUser) {\r\n this.user = user;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_SEARCH_USERS](users: ISearchResult) {\r\n this.users = users;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_USER_ID](userId: string) {\r\n this.userId = userId;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_ROLES](roles: ISearchResult) {\r\n this.roles = roles;\r\n\r\n if (!roles || roles.items.length <= 0) {\r\n return;\r\n }\r\n let filteredItem = roles.items.filter(function (pl) {\r\n return pl.name === \"Global Administrator\";\r\n });\r\n if (filteredItem.length != 0) {\r\n this.roleIdGlobalAdministrator = filteredItem[0].roleId;\r\n }\r\n\r\n filteredItem = roles.items.filter(function (pl) {\r\n return pl.name === \"Partner Administrator\";\r\n });\r\n if (filteredItem.length != 0) {\r\n this.roleIdResellerAdministrator = filteredItem[0].roleId;\r\n }\r\n\r\n filteredItem = roles.items.filter(function (pl) {\r\n return pl.name === \"Client Administrator\";\r\n });\r\n if (filteredItem.length != 0) {\r\n this.roleIdClientAdministrator = filteredItem[0].roleId;\r\n }\r\n\r\n filteredItem = roles.items.filter(function (pl) {\r\n return pl.name === \"Client User\";\r\n });\r\n if (filteredItem.length != 0) {\r\n this.roleIdClientUser = filteredItem[0].roleId;\r\n }\r\n\r\n this.globalAdminRoles = roles.items.filter(function (pl) {\r\n return pl.name === \"Global Administrator\";\r\n });\r\n\r\n this.clientAdminRoles = roles.items.filter(function (pl) {\r\n return pl.name === \"Client Administrator\";\r\n });\r\n\r\n this.managerRoles = roles.items.filter(function (pl) {\r\n return pl.name === \"Partner Administrator\";\r\n });\r\n\r\n this.userClientRoles = roles.items.filter(function (pl) {\r\n return pl.name === \"Client User\";\r\n });\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_USER_AVATAR](avatar: IUserAvatar) {\r\n this.avatar = avatar;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_USERS_ROLE_DETAIL]() {\r\n if (!this.roles || !this.roles.items || !this.users || !this.users.items) {\r\n return;\r\n }\r\n for (var j = 0; j < this.users.items.length; j++) {\r\n const roles: IRole[] = this.roles.items.filter((type) => {\r\n return (type as IRole).roleId === this.users.items[j].roleId;\r\n });\r\n\r\n if (roles && roles.length > 0) {\r\n this.users.items[j].role = roles[0].description;\r\n }\r\n }\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_USERS_REPORT](report: ISearchResult) {\r\n this.usersReport = report;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_SUPPORT](result: ISupport) {\r\n this.userSupport = result;\r\n }\r\n\r\n SET_SUPPORT;\r\n\r\n @Action\r\n [Actions.LOAD_USER](userId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Users, userId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_USER, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_USER_AVATAR](userId: string) {\r\n this.context.commit(Mutations.SET_USER_AVATAR, {});\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Users, userId + \"/avatar\")\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_USER_AVATAR, data);\r\n })\r\n .catch(({ response }) => {\r\n //do nothing\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_USER](param) {\r\n this.context.commit(Mutations.SET_USER_ERROR, []);\r\n const req = {\r\n firstName: param.firstName,\r\n lastName: param.lastName,\r\n isActive: true,\r\n emailAddress: param.emailAddress,\r\n timeZoneId: param.timeZoneId,\r\n measurementStandardId: param.measurementStandardId,\r\n clientId: param.clientId,\r\n userTypeId: param.userTypeId,\r\n roleId: param.roleId,\r\n limitResellers: param.limitResellers,\r\n LimitLocations: param.limitLocations,\r\n offlineDeviceNotify: param.offlineDeviceNotify,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Users, req)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_USER_ID, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_USERS](param: IUserSearchParam) {\r\n this.context.commit(Mutations.SET_USER_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.firstName) {\r\n query += \"firstName=\" + param.firstName;\r\n }\r\n if (param.lastName) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"lastName=\" + param.lastName;\r\n }\r\n if (param.emailAddress) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"emailAddress=\" + param.emailAddress;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.isAssignedToReseller != null) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"isAssignedToReseller=\" + param.isAssignedToReseller;\r\n }\r\n if (param.roleId) {\r\n for (let o = 0; o < param.roleId.length; o++) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"roleId=\" + param.roleId[o];\r\n }\r\n }\r\n if (param.either) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"either=\" + param.either;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n query += \"&isActive=true\";\r\n return ApiService.get(Endpoints.Users, query)\r\n .then(({ data }) => {\r\n switch (param.category.toLowerCase()) {\r\n case \"resellerusers\":\r\n this.context.commit(Mutations.SET_RESELLER_USERS, data);\r\n break;\r\n\r\n case \"reselleravailableusers\":\r\n this.context.commit(Mutations.SET_RESELLER_AVAILABLE_USERS, data);\r\n break;\r\n\r\n case \"clientusers\":\r\n this.context.commit(Mutations.SET_CLIENT_USERS, data);\r\n break;\r\n\r\n case \"users\":\r\n default:\r\n this.context.commit(Mutations.SET_SEARCH_USERS, data);\r\n break;\r\n }\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_USER_ERROR, [\r\n \"There was an error searching users.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_USERS_SINGLE](param: IUserSearchParam) {\r\n this.context.commit(Mutations.SET_USER_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.firstName) {\r\n query += \"firstName=\" + param.firstName;\r\n }\r\n if (param.lastName) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"lastName=\" + param.lastName;\r\n }\r\n if (param.emailAddress) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"emailAddress=\" + param.emailAddress;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (\r\n param.isAssignedToReseller === true ||\r\n param.isAssignedToReseller === false\r\n ) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"isAssignedToReseller=\" + param.isAssignedToReseller;\r\n }\r\n if (param.roleId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"roleId=\" + param.roleId;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n query += \"&isActive=true\";\r\n return ApiService.get(Endpoints.Users, query)\r\n .then(({ data }) => {\r\n switch (param.category.toLowerCase()) {\r\n case \"resellerusers\":\r\n this.context.commit(Mutations.SET_RESELLER_USERS, data);\r\n break;\r\n\r\n case \"reselleravailableusers\":\r\n this.context.commit(Mutations.SET_RESELLER_AVAILABLE_USERS, data);\r\n break;\r\n\r\n case \"clientusers\":\r\n this.context.commit(Mutations.SET_CLIENT_USERS, data);\r\n break;\r\n\r\n case \"users\":\r\n default:\r\n this.context.commit(Mutations.SET_SEARCH_USERS, data);\r\n break;\r\n }\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_USER_ERROR, [\r\n \"There was an error searching users.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.ADD_RESELLER_USER](payload) {\r\n this.context.commit(Mutations.SET_USER_ERROR, []);\r\n if (!payload || !payload.userId || !payload.resellerId) {\r\n this.context.commit(Mutations.SET_USER_ERROR, [\r\n \"There was an error updating user.\",\r\n ]);\r\n return;\r\n }\r\n const req = {\r\n resellerId: {\r\n op: \"Replace\",\r\n value: payload.resellerId,\r\n },\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.patch(Endpoints.Users + \"/\" + payload.userId, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_ROLES]() {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Roles)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_ROLES, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_USER_ERROR, [\r\n \"There was an error loading user roles.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_USER](user: IUser) {\r\n const userCanChangeRole =\r\n store.getters.userCanCreateGlobalAdmin ||\r\n store.getters.userCanCreateClientAdmin ||\r\n store.getters.userCanCreateResellerAdmin ||\r\n store.getters.userCanCreateClientUser;\r\n\r\n this.context.commit(Mutations.SET_USER_ERROR, []);\r\n ApiService.setHeader();\r\n const req = {\r\n firstName: {\r\n op: \"Replace\",\r\n value: user.firstName,\r\n },\r\n lastName: {\r\n op: \"Replace\",\r\n value: user.lastName,\r\n },\r\n emailAddress: {\r\n op: \"Replace\",\r\n value: user.emailAddress,\r\n },\r\n userTypeId: {\r\n op: \"Replace\",\r\n value: user.userTypeId,\r\n },\r\n measurementStandardId: {\r\n op: \"Replace\",\r\n value: user.measurementStandardId,\r\n },\r\n timeZoneId: {\r\n op: \"Replace\",\r\n value: user.timeZoneId,\r\n },\r\n isActive: {\r\n op: \"Replace\",\r\n value: user.isActive,\r\n },\r\n canViewPinCodeGraphs: {\r\n op: \"Replace\",\r\n value: user.canViewPinCodeGraphs,\r\n },\r\n offlineDeviceNotify: {\r\n op: \"Replace\",\r\n value: user.offlineDeviceNotify,\r\n },\r\n limitLocations: {\r\n op: \"Replace\",\r\n value: user.limitLocations,\r\n },\r\n } as any;\r\n if (userCanChangeRole && user.roleId) {\r\n req.roleId = {\r\n op: \"Replace\",\r\n value: user.roleId,\r\n };\r\n }\r\n if (user.clientId) {\r\n req.clientId = {\r\n op: \"Replace\",\r\n value: user.clientId,\r\n };\r\n }\r\n else {\r\n req.clientId = {\r\n op: \"Remove\",\r\n };\r\n }\r\n if (user.resellerId) {\r\n req.resellerId = {\r\n op: \"Replace\",\r\n value: user.resellerId,\r\n };\r\n }\r\n else {\r\n req.resellerId = {\r\n op: \"Remove\",\r\n }\r\n }\r\n if (user.limitResellers === true || user.limitResellers === false) {\r\n req.limitResellers = {\r\n op: \"Replace\",\r\n value: user.limitResellers,\r\n };\r\n }\r\n ApiService.setHeader();\r\n return ApiService.patch(Endpoints.Users + \"/\" + user.userId, req)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_USER_ERROR, {});\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.EMAIL_RESET_PASSWORD](user: IUser) {\r\n this.context.commit(Mutations.SET_USER_ERROR, []);\r\n ApiService.setHeader();\r\n const req = {\r\n data: user,\r\n } as any;\r\n return ApiService.post(\r\n Endpoints.Users + \"/forgot?email=\" + user.emailAddress,\r\n req\r\n )\r\n .then(() => {\r\n this.context.commit(Mutations.SET_USER_ERROR, {});\r\n })\r\n .catch(({ response }) => {\r\n if (!response || response.status == 500) {\r\n this.context.commit(Mutations.SET_USER_ERROR, [\r\n \"An error occurred when sending email to reset the password. Please try again later.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.RESEND_INVITE](user: IUser) {\r\n this.context.commit(Mutations.SET_USER_ERROR, []);\r\n ApiService.setHeader();\r\n const req = {\r\n data: user,\r\n } as any;\r\n return ApiService.post(\r\n Endpoints.Users + \"/\" + user.userId + \"/resendinvite\",\r\n req\r\n )\r\n .then(() => {\r\n this.context.commit(Mutations.SET_USER_ERROR, {});\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_USER_ERROR, [\r\n \"We were unable to find a user with that email address. Please confirm you are entering the correct address.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_USER_AVATAR](payload: IUserAvatarExtension) {\r\n this.context.commit(Mutations.SET_USER_ERROR, []);\r\n ApiService.setHeader();\r\n const req = {\r\n avatar: {\r\n op: payload.updateType == \"update\" ? \"Replace\" : \"Remove\",\r\n value: payload.avatar,\r\n },\r\n } as any;\r\n\r\n return ApiService.patch(Endpoints.Users + \"/\" + payload.userId, req)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_USER, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_USER](user: IUser) {\r\n this.context.commit(Mutations.SET_USER_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.Users, user.userId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_USERS_REPORT](param: IUserSearchParam) {\r\n this.context.commit(Mutations.SET_USER_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.firstName) {\r\n query += \"firstName=\" + param.firstName;\r\n }\r\n if (param.lastName) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"lastName=\" + param.lastName;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (\r\n param.isAssignedToReseller === true ||\r\n param.isAssignedToReseller === false\r\n ) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"isAssignedToReseller=\" + param.isAssignedToReseller;\r\n }\r\n if (param.roleId) {\r\n for (let o = 0; o < param.roleId.length; o++) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"roleId=\" + param.roleId[o];\r\n }\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n query += \"&isActive=true\";\r\n return ApiService.get(Endpoints.Users + \"/export\", query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_USERS_REPORT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_USER_ERROR, [\r\n \"There was an error loading users export.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_SUPPORT]() {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Users + \"/support\")\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_SUPPORT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_USER_ERROR, [\r\n \"There was an error loading user support info.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_USER_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n IClient,\r\n IBaseModule,\r\n IClientSearchParam,\r\n ISearchResult,\r\n IPinCodeExtension,\r\n ILocationExtension,\r\n IUserExtension,\r\n IRole,\r\n IDeviceExtension,\r\n IIndustry,\r\n IKpiSetting,\r\n IClientReport,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class ClientModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n client = {} as IClient;\r\n clients = {} as ISearchResult;\r\n clientLocations = {} as ISearchResult;\r\n clientUsers = {} as ISearchResult;\r\n clientDevices = {} as ISearchResult;\r\n clientPinCodes = {} as Array;\r\n clientKpis = {} as ISearchResult;\r\n clientCustomKpi = false;\r\n industries = {} as ISearchResult;\r\n clientsReport = {} as ISearchResult;\r\n\r\n /**\r\n * Get client errors\r\n * @returns array\r\n */\r\n get getClientErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get client\r\n * @returns IClient\r\n */\r\n get getClient(): IClient {\r\n return this.client;\r\n }\r\n\r\n /**\r\n * Get clients\r\n * @returns ISearchResult\r\n */\r\n get getClients(): ISearchResult {\r\n return this.clients;\r\n }\r\n\r\n /**\r\n * Get client pin codes\r\n * @returns Array\r\n */\r\n get getClientPinCodes(): Array {\r\n return this.clientPinCodes;\r\n }\r\n\r\n /**\r\n * Get client locations\r\n * @returns ISearchResult\r\n */\r\n get getClientLocations(): ISearchResult {\r\n return this.clientLocations;\r\n }\r\n\r\n /**\r\n * Get client users\r\n * @returns ISearchResult\r\n */\r\n get getClientUsers(): ISearchResult {\r\n return this.clientUsers;\r\n }\r\n\r\n /**\r\n * Get client users\r\n * @returns ISearchResult\r\n */\r\n get getClientDevices(): ISearchResult {\r\n return this.clientDevices;\r\n }\r\n\r\n /**\r\n * Get client kpis\r\n * @returns ISearchResult\r\n */\r\n get getClientKpis(): ISearchResult {\r\n return this.clientKpis;\r\n }\r\n\r\n /**\r\n * Get client custom kpi flag\r\n * @returns boolean\r\n */\r\n get getClientCustomKpi(): boolean {\r\n return this.clientCustomKpi;\r\n }\r\n\r\n /**\r\n * Get clients report\r\n * @returns ISearchResult\r\n */\r\n get getClientsReport(): ISearchResult {\r\n return this.clientsReport;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLIENT_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLIENT](client: IClient) {\r\n this.client = client;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLIENTS](clients: ISearchResult) {\r\n this.clients = clients;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLIENT_PINCODES](codes: Array) {\r\n this.clientPinCodes = codes;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLIENT_LOCATIONS](\r\n locations: ISearchResult\r\n ) {\r\n this.clientLocations = locations;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLIENT_USERS](users: ISearchResult) {\r\n this.clientUsers = users;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLIENT_ROLE_DETAIL](data: ISearchResult) {\r\n if (!data || !this.clientUsers || !this.clientUsers.items) {\r\n return;\r\n }\r\n for (var j = 0; j < this.clientUsers.items.length; j++) {\r\n const roles: IRole[] = data.items.filter((role) => {\r\n return (role as IRole).roleId === this.clientUsers.items[j].roleId;\r\n });\r\n\r\n if (roles && roles.length > 0) {\r\n this.clientUsers.items[j].role = roles[0].description;\r\n }\r\n }\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLIENT_DEVICES](devices: ISearchResult) {\r\n this.clientDevices = devices;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLIENT_KPIS](kpis: ISearchResult) {\r\n this.clientKpis = kpis;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLIENT_CUSTOM_KPIS](flag: boolean) {\r\n this.clientCustomKpi = flag;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CLIENTS_REPORT](report: ISearchResult) {\r\n this.clientsReport = report;\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_CLIENT](param) {\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, []);\r\n const req = {\r\n name: param.name,\r\n accountNumber: param.accountNumber,\r\n resellerId: param.resellerId,\r\n industryId: param.industryId,\r\n isActive: true,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Clients, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_CLIENT](clientId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Clients, clientId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_CLIENT, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_CLIENT](client: IClient) {\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, []);\r\n ApiService.setHeader();\r\n const req = {\r\n name: {\r\n op: \"Replace\",\r\n value: client.name,\r\n },\r\n accountNumber: {\r\n op: \"Replace\",\r\n value: client.accountNumber,\r\n },\r\n } as any;\r\n\r\n if (client.resellerId) {\r\n req.resellerId = {\r\n op: \"Replace\",\r\n value: client.resellerId,\r\n }\r\n }\r\n else {\r\n req.resellerId = {\r\n op: \"Remove\",\r\n }\r\n }\r\n\r\n if (client.industryId) {\r\n req.industryId = {\r\n op: \"Replace\",\r\n value: client.industryId,\r\n }\r\n }\r\n else {\r\n req.industryId = {\r\n op: \"Remove\",\r\n }\r\n }\r\n\r\n ApiService.setHeader();\r\n return ApiService.patch(Endpoints.Clients + \"/\" + client.clientId, req)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, {});\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_CLIENT](client: IClient) {\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.Clients, client.clientId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_CLIENTS](param: IClientSearchParam) {\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.name) {\r\n query += \"name=\" + param.name;\r\n }\r\n if (param.accountNumber) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"accountNumber=\" + param.accountNumber;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.hasReseller) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hasReseller=\" + param.hasReseller;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n query += \"&isActive=true\";\r\n return ApiService.get(Endpoints.Clients, query)\r\n .then(({ data }) => {\r\n switch (param.category.toLowerCase()) {\r\n case \"resellerclient\":\r\n this.context.commit(Mutations.SET_RESELLER_CLIENTS, data);\r\n break;\r\n\r\n case \"avlresellerclient\":\r\n this.context.commit(Mutations.SET_AVAILABLE_RESELLER_CLIENTS, data);\r\n break;\r\n\r\n case \"clients\":\r\n default:\r\n this.context.commit(Mutations.SET_CLIENTS, data);\r\n break;\r\n }\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [\r\n \"There was an error searching clients.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.GENERATE_CLIENT_KEY](clientId: string) {\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, []);\r\n const req = {\r\n clientId: clientId,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Clients + \"/\" + clientId + \"/apikey\", req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_CLIENT_KPI](param) {\r\n if (!param || !param.kpiId || param.sortOrder == undefined || !param.clientId) {\r\n return;\r\n }\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, []);\r\n const req = {\r\n kpiId: param.kpiId,\r\n order: param.sortOrder,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(\r\n Endpoints.Clients + \"/\" + param.clientId + \"/kpis\",\r\n req\r\n )\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [\r\n response.data?.errors[0]?.errorMessage,\r\n ]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_CLIENT_KPI](param) {\r\n if (!param || !param.kpiId || param.sortOrder == undefined || !param.clientId) {\r\n return;\r\n }\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, []);\r\n const req = {\r\n order: {\r\n op: \"Replace\",\r\n value: param.sortOrder,\r\n },\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.patch(\r\n Endpoints.Clients + \"/\" + param.clientId + \"/kpis/\" + param.kpiId,\r\n req\r\n )\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_CLIENT_KPI](param) {\r\n if (!param || !param.kpiId || !param.clientId) {\r\n return;\r\n }\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(\r\n Endpoints.Clients + \"/\" + param.clientId + \"/kpis/\" + param.kpiId\r\n )\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.ENABLE_CLIENT_KPI](param) {\r\n if (!param.clientId) {\r\n return;\r\n }\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, []);\r\n const req = {\r\n clientId: param.clientId,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(\r\n Endpoints.Clients + \"/\" + param.clientId + \"/kpis/enable\", req\r\n )\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DISABLE_CLIENT_KPI](param) {\r\n if (!param.clientId) {\r\n return;\r\n }\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, []);\r\n const req = {\r\n clientId: param.clientId,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(\r\n Endpoints.Clients + \"/\" + param.clientId + \"/kpis/disable\", req\r\n )\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [message]);\r\n });\r\n }\r\n \r\n @Action\r\n [Actions.LOAD_CLIENTS_REPORT](param: IClientSearchParam) {\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.name) {\r\n query += \"name=\" + param.name;\r\n }\r\n if (param.accountNumber) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"accountNumber=\" + param.accountNumber;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.hasReseller) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hasReseller=\" + param.hasReseller;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n query += \"&isActive=true\";\r\n return ApiService.get(Endpoints.Clients + \"/export\", query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_CLIENTS_REPORT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [\r\n \"There was an error loading clients export.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CLIENT_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n ILocation,\r\n IBaseModule,\r\n ILocationSearchParam,\r\n ISearchResult,\r\n ILocationExtension,\r\n IGeolocation,\r\n ILocationReport,\r\n IDeviceExtension,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class LocationModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n location = {} as ILocationExtension;\r\n locations = {} as ISearchResult;\r\n locationsReport = {} as ISearchResult;\r\n geolocation = {} as IGeolocation;\r\n limitLocationSet = {} as ISearchResult;\r\n limitLocations = {} as Array;\r\n locationDevices = {} as ISearchResult;\r\n\r\n /**\r\n * Get location errors\r\n * @returns array\r\n */\r\n get getLocationErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get locations\r\n * @returns ISearchResult\r\n */\r\n get getLocations(): ISearchResult {\r\n return this.locations;\r\n }\r\n\r\n /**\r\n * Get location\r\n * @returns ILocation\r\n */\r\n get getLocation(): ILocationExtension {\r\n return this.location;\r\n }\r\n\r\n /**\r\n * Get geolocation\r\n * @returns IGeolocation\r\n */\r\n get getGeolocation(): IGeolocation {\r\n return this.geolocation;\r\n }\r\n\r\n /**\r\n * Get limit location set\r\n * @returns ISearchResult\r\n */\r\n get getLimitLocationSet(): ISearchResult {\r\n return this.limitLocationSet;\r\n }\r\n\r\n /**\r\n * Get limit location set\r\n * @returns ISearchResult\r\n */\r\n get getLimitLocations(): Array {\r\n return this.limitLocations;\r\n }\r\n\r\n /**\r\n * Get locations report\r\n * @returns ISearchResult\r\n */\r\n get getLocationsReport(): ISearchResult {\r\n return this.locationsReport;\r\n }\r\n\r\n /**\r\n * Get location users\r\n * @returns ISearchResult\r\n */\r\n get getLocationDevices(): ISearchResult {\r\n return this.locationDevices;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LOCATION_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LOCATION](location: ILocation) {\r\n this.location = location as ILocationExtension;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LOCATIONS](locations: ISearchResult) {\r\n this.locations = locations as ISearchResult;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_GEOLOCATION](geoInfo: IGeolocation) {\r\n this.geolocation = geoInfo;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LIMIT_LOCATION_SET](locations: ISearchResult) {\r\n this.limitLocationSet = locations as ISearchResult;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LIMIT_LOCATIONS](locations: ISearchResult) {\r\n this.limitLocations = locations.items.map((a) => a.locationId);\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LOCATIONS_REPORT](report: ISearchResult) {\r\n this.locationsReport = report;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LOCATION_DEVICES](devices: ISearchResult) {\r\n this.locationDevices = devices;\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_LOCATION](locationId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Locations, locationId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_LOCATION, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_GEOLOCATION](param: ILocation) {\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.address1) {\r\n query += \"address=\" + param.address1;\r\n }\r\n if (param.city) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"city=\" + param.city;\r\n }\r\n if (param.stateProvinceId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"provinceId=\" + param.stateProvinceId;\r\n }\r\n if (param.zipPostalCode) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"postalCode=\" + param.zipPostalCode;\r\n }\r\n return ApiService.get(Endpoints.Geolocation, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_GEOLOCATION, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_LOCATION](param) {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, []);\r\n const req = {\r\n name: param.name,\r\n address1: param.address1,\r\n address2: param.address2,\r\n city: param.city,\r\n countryId: param.countryId,\r\n stateProvinceId: param.stateProvinceId,\r\n zipPostalCode: param.zipPostalCode,\r\n clientId: param.clientId,\r\n resellerId: param.resellerId,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Locations, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_LOCATION](location: ILocation) {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.Locations, location.locationId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_LOCATIONS](param: ILocationSearchParam) {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.name) {\r\n query += \"name=\" + param.name;\r\n }\r\n if (param.address1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"address1=\" + param.address1;\r\n }\r\n if (param.city) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"city=\" + param.city;\r\n }\r\n if (param.countryId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"countryId=\" + param.countryId;\r\n }\r\n if (param.stateProvinceId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"stateProvinceId=\" + param.stateProvinceId;\r\n }\r\n if (param.zipPostalCode) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"zipPostalCode=\" + param.zipPostalCode;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.userId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"userId=\" + param.userId;\r\n }\r\n if (param.deviceId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"deviceId=\" + param.deviceId;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n query += \"&isActive=true\";\r\n return ApiService.get(Endpoints.Locations, query)\r\n .then(({ data }) => {\r\n switch (param.category.toLowerCase()) {\r\n case \"resellerlocations\":\r\n this.context.commit(Mutations.SET_RESELLER_LOCATIONS, data);\r\n break;\r\n\r\n case \"clientlocations\":\r\n this.context.commit(Mutations.SET_CLIENT_LOCATIONS, data);\r\n break;\r\n\r\n case \"limitlocationset\":\r\n this.context.commit(Mutations.SET_LIMIT_LOCATION_SET, data);\r\n break;\r\n\r\n case \"limitlocations\":\r\n this.context.commit(Mutations.SET_LIMIT_LOCATIONS, data);\r\n break;\r\n\r\n case \"locations\":\r\n default:\r\n this.context.commit(Mutations.SET_LOCATIONS, data);\r\n break;\r\n }\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [\r\n \"There was an error searching locations.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_LOCATION](location: ILocation) {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, []);\r\n ApiService.setHeader();\r\n const req = {\r\n name: {\r\n op: \"Replace\",\r\n value: location.name,\r\n },\r\n address1: {\r\n op: \"Replace\",\r\n value: location.address1,\r\n },\r\n address2: {\r\n op: \"Replace\",\r\n value: location.address2,\r\n },\r\n city: {\r\n op: \"Replace\",\r\n value: location.city,\r\n },\r\n countryId: {\r\n op: \"Replace\",\r\n value: location.countryId,\r\n },\r\n stateProvinceId: {\r\n op: \"Replace\",\r\n value: location.stateProvinceId,\r\n },\r\n zipPostalCode: {\r\n op: \"Replace\",\r\n value: location.zipPostalCode,\r\n },\r\n clientId: {\r\n op: \"Replace\",\r\n value: location.clientId,\r\n },\r\n } as any;\r\n if (location.resellerId) {\r\n req.resellerId = {\r\n op: \"Replace\",\r\n value: location.resellerId,\r\n };\r\n }\r\n ApiService.setHeader();\r\n return ApiService.patch(\r\n Endpoints.Locations + \"/\" + location.locationId,\r\n req\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, {});\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.ADD_USER_LOCATIONS](payload) {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, []);\r\n if (!payload || !payload.userId || payload.locations.length == 0) {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [\r\n \"There was an error adding a location to an user.\",\r\n ]);\r\n return;\r\n }\r\n ApiService.setHeader();\r\n for (let index = 0; index < payload.locations.length; index++) {\r\n const locationId = payload.locations[index];\r\n ApiService.post(\r\n Endpoints.Locations + \"/\" + locationId + \"/user/\" + payload.userId,\r\n payload\r\n )\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [message]);\r\n });\r\n }\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_USER_LOCATIONS](payload) {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, []);\r\n if (!payload || !payload.userId || payload.locations.length == 0) {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [\r\n \"There was an error deleting a location from an user.\",\r\n ]);\r\n return;\r\n }\r\n ApiService.setHeader();\r\n for (let index = 0; index < payload.locations.length; index++) {\r\n const locationId = payload.locations[index];\r\n ApiService.delete(\r\n Endpoints.Locations + \"/\" + locationId + \"/user/\" + payload.userId\r\n )\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [message]);\r\n });\r\n }\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_LOCATIONS_REPORT](param: ILocationSearchParam) {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.name) {\r\n query += \"name=\" + param.name;\r\n }\r\n if (param.address1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"address1=\" + param.address1;\r\n }\r\n if (param.city) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"city=\" + param.city;\r\n }\r\n if (param.countryId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"countryId=\" + param.countryId;\r\n }\r\n if (param.stateProvinceId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"stateProvinceId=\" + param.stateProvinceId;\r\n }\r\n if (param.zipPostalCode) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"zipPostalCode=\" + param.zipPostalCode;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.userId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"userId=\" + param.userId;\r\n }\r\n if (param.deviceId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"deviceId=\" + param.deviceId;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n query += \"&isActive=true\";\r\n return ApiService.get(Endpoints.Locations + \"/export\", query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_LOCATIONS_REPORT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [\r\n \"There was an error loading locations export.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LOCATION_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n IDevice,\r\n IDeviceExtension,\r\n IBaseModule,\r\n IDeviceSearchParam,\r\n ISearchResult,\r\n IPinCodeExtension,\r\n IDeviceReading,\r\n IDeviceReport,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class DeviceModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n device = {} as IDevice;\r\n\r\n devicePinCodes = {} as Array;\r\n deviceReadings = {} as ISearchResult;\r\n recentDevices = {} as ISearchResult;\r\n devicesReport = {} as ISearchResult;\r\n manualUploadSerialNumber = \"\";\r\n hideNegativeValues = true as Boolean;\r\n\r\n /**\r\n * Get device errors\r\n * @returns array\r\n */\r\n get getDeviceErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get device\r\n * @returns IDevice\r\n */\r\n get getDevice(): IDevice {\r\n return this.device;\r\n }\r\n\r\n /**\r\n * Get device pin codes\r\n * @returns Array\r\n */\r\n get getDevicePinCodes(): Array {\r\n return this.devicePinCodes;\r\n }\r\n\r\n /**\r\n * Get device device readings\r\n * @returns ISearchResult\r\n */\r\n get getDeviceDeviceReadings(): ISearchResult {\r\n return this.deviceReadings;\r\n }\r\n\r\n /**\r\n * Get last device reading\r\n * @returns getDeviceReadings\r\n */\r\n get getLastDeviceReading(): IDeviceReading | null {\r\n if (\r\n !this.deviceReadings ||\r\n !this.deviceReadings.items ||\r\n (this.deviceReadings.items as Array).length <= 0\r\n ) {\r\n return null;\r\n }\r\n return this.deviceReadings.items[0];\r\n }\r\n\r\n /**\r\n * Get recent devices\r\n * @returns ISearchResult\r\n */\r\n get getRecentDevices(): ISearchResult {\r\n return this.recentDevices;\r\n }\r\n\r\n /**\r\n * Get devices report\r\n * @returns ISearchResult\r\n */\r\n get getDevicesReport(): ISearchResult {\r\n return this.devicesReport;\r\n }\r\n\r\n /**\r\n * Get Manual Upload Serial Number\r\n * @returns string\r\n */\r\n get getManualUploadSerialNumber(): string {\r\n return this.manualUploadSerialNumber;\r\n }\r\n\r\n /**\r\n * Get hide negative values flag\r\n * @returns Boolean\r\n */\r\n get getHideNegativeValues(): Boolean {\r\n return this.hideNegativeValues;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICE_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICE](device: IDevice) {\r\n this.device = device;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_RECENT_DEVICES](devices: ISearchResult) {\r\n this.recentDevices = devices;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICE_PINCODES](pinCodes: Array) {\r\n this.devicePinCodes = pinCodes;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICE_DEVICEREADINGS](\r\n readings: ISearchResult\r\n ) {\r\n this.deviceReadings = readings;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICES_REPORT](report: ISearchResult) {\r\n this.devicesReport = report;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_MANUAL_UPLOAD_DEVICE](serialNumber: string) {\r\n this.manualUploadSerialNumber = serialNumber;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_HIDE_NEGATIVE_VALUES](flag: Boolean) {\r\n this.hideNegativeValues = flag;\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_DEVICE](param) {\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, []);\r\n const req = {\r\n name: param.name,\r\n serialNumber: param.serialNumber,\r\n piSerialNumber: param.piSerialNumber,\r\n deviceStatusId: param.deviceStatusId,\r\n isManual: param.isManual,\r\n timeZoneId: param.timeZoneId,\r\n clientId: param.clientId,\r\n locationId: param.locationId,\r\n resellerId: param.resellerId,\r\n modelSizeId: param.modelSizeId,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Devices, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_DEVICE](deviceId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Devices, deviceId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_DEVICE, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_DEVICE](device: IDevice) {\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, []);\r\n ApiService.setHeader();\r\n const req = {\r\n name: {\r\n op: \"Replace\",\r\n value: device.name,\r\n },\r\n serialNumber: {\r\n op: \"Replace\",\r\n value: device.serialNumber,\r\n },\r\n piSerialNumber: {\r\n op: \"Replace\",\r\n value: device.piSerialNumber,\r\n },\r\n deviceStatusId: {\r\n op: \"Replace\",\r\n value: device.deviceStatusId,\r\n },\r\n isManual: {\r\n op: \"Replace\",\r\n value: device.isManual,\r\n },\r\n timeZoneId: {\r\n op: \"Replace\",\r\n value: device.timeZoneId,\r\n },\r\n modelSizeId: {\r\n op: \"Replace\",\r\n value: device.modelSizeId,\r\n },\r\n } as any;\r\n\r\n if (device.locationId) {\r\n req.locationId = {\r\n op: \"Replace\",\r\n value: device.locationId,\r\n }\r\n }\r\n else {\r\n req.locationId = {\r\n op: \"Remove\",\r\n }\r\n }\r\n\r\n if (device.clientId) {\r\n req.clientId = {\r\n op: \"Replace\",\r\n value: device.clientId,\r\n }\r\n }\r\n else {\r\n req.clientId = {\r\n op: \"Remove\",\r\n }\r\n }\r\n\r\n ApiService.setHeader();\r\n return ApiService.patch(Endpoints.Devices + \"/\" + device.deviceId, req)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, {});\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_DEVICE](device: IDevice) {\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.Devices, device.deviceId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_DEVICES](param: IDeviceSearchParam) {\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.name) {\r\n query += \"name=\" + param.name;\r\n }\r\n if (param.serialNumber) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"serialNumber=\" + param.serialNumber;\r\n }\r\n if (param.piSerialNumber) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"piSerialNumber=\" + param.piSerialNumber;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.locationId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationId;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.isManual != null) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"isManual=\" + param.isManual;\r\n }\r\n if (param.includeDivertedWeight != null) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"includeDivertedWeight=\" + param.includeDivertedWeight;\r\n }\r\n if (param.startDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"startDate=\" + param.startDate.toISOString().split(\"T\")[0];\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString().split(\"T\")[0];\r\n }\r\n if (param.hideNegativeValues != null) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=\" + param.hideNegativeValues;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.Devices, query)\r\n .then(({ data }) => {\r\n switch (param.category.toLowerCase()) {\r\n case \"resellerdevices\":\r\n this.context.commit(Mutations.SET_RESELLER_DEVICES, data);\r\n break;\r\n\r\n case \"clientdevices\":\r\n this.context.commit(Mutations.SET_CLIENT_DEVICES, data);\r\n break;\r\n\r\n case \"locationdevices\":\r\n this.context.commit(Mutations.SET_LOCATION_DEVICES, data);\r\n break;\r\n\r\n case \"idlist\":\r\n this.context.commit(Mutations.SET_DEVICES, data);\r\n this.context.commit(Mutations.SET_DEVICES_IDS_LIST, data);\r\n break;\r\n\r\n case \"devices\":\r\n default:\r\n this.context.commit(Mutations.SET_DEVICES, data);\r\n break;\r\n }\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, [\r\n \"There was an error searching digesters.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_RECENT_ADDED_DEVICES]() {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Devices + \"/recent\")\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_RECENT_DEVICES, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_DEVICES_REPORT](param: IDeviceSearchParam) {\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.name) {\r\n query += \"name=\" + param.name;\r\n }\r\n if (param.serialNumber) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"serialNumber=\" + param.serialNumber;\r\n }\r\n if (param.piSerialNumber) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"piSerialNumber=\" + param.piSerialNumber;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.locationId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationId;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.isManual) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"isManual=\" + param.isManual;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.Devices + \"/export\", query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_DEVICES_REPORT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, [\r\n \"There was an error loading digesters export.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_DEVICE_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import {\r\n IDeviceExtension,\r\n IBaseModule,\r\n ISearchResult,\r\n} from \"@/store/common/Types\";\r\nimport { Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\n@Module\r\nexport default class DevicePoolModule\r\n extends VuexModule\r\n implements IBaseModule\r\n{\r\n errors = {};\r\n deviceIds = [] as Array;\r\n devices = {} as ISearchResult;\r\n\r\n /**\r\n * Get device errors\r\n * @returns array\r\n */\r\n get getDevicePoolErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get device ids\r\n * @returns Array\r\n */\r\n get getDeviceIds(): Array {\r\n return this.deviceIds;\r\n }\r\n\r\n /**\r\n * Get devices\r\n * @returns ISearchResult\r\n */\r\n get getDevices(): ISearchResult {\r\n return this.devices;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICES_IDS_LIST](devices: ISearchResult) {\r\n if (devices && devices.items) {\r\n this.deviceIds = devices.items.map((x) => x.deviceId);\r\n }\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICES](devices: ISearchResult) {\r\n this.devices = devices;\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n IBaseModule,\r\n IDeviceReadingSearchParam,\r\n ISearchResult,\r\n IDeviceReading,\r\n IDeviceReadingReport,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class DeviceReadingModule\r\n extends VuexModule\r\n implements IBaseModule\r\n{\r\n errors = {};\r\n deviceReadings = {} as ISearchResult;\r\n deviceReadingsReport = {} as ISearchResult;\r\n\r\n /**\r\n * Get device reading errors\r\n * @returns array\r\n */\r\n get getDeviceReadingErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get device readings\r\n * @returns ISearchResult\r\n */\r\n get getDeviceReadings(): ISearchResult {\r\n return this.deviceReadings;\r\n }\r\n\r\n /**\r\n * Get device device readings\r\n * @returns ISearchResult\r\n */\r\n get getDeviceReadingsReport(): ISearchResult {\r\n return this.deviceReadingsReport;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICE_READING_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICE_READINGS](readings: ISearchResult) {\r\n this.deviceReadings = readings;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICE_READINGS_REPORT](\r\n report: ISearchResult\r\n ) {\r\n this.deviceReadingsReport = report;\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_DEVICE_READINGS](param: IDeviceReadingSearchParam) {\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.deviceId) {\r\n query += \"deviceId=\" + param.deviceId;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.locationId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationId;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.locationId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationId;\r\n }\r\n if (param.startDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"startDate=\" + param.startDate.toISOString();\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString();\r\n }\r\n if (param.hideNegativeValues != null) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=\" + param.hideNegativeValues;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.DeviceReadings, query)\r\n .then(({ data }) => {\r\n switch (param.category.toLowerCase()) {\r\n case \"devicedevicereadings\":\r\n this.context.commit(Mutations.SET_DEVICE_DEVICEREADINGS, data);\r\n break;\r\n\r\n case \"devicereadings\":\r\n default:\r\n this.context.commit(Mutations.SET_DEVICE_READINGS, data);\r\n break;\r\n }\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_DEVICE_READING_ERROR, [\r\n \"There was an error searching device readings.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_DEVICE_READING_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_DEVICE_READINGS_REPORT](param: IDeviceReadingSearchParam) {\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.deviceId) {\r\n query += \"deviceId=\" + param.deviceId;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.locationId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationId;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.locationId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationId;\r\n }\r\n if (param.startDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"startDate=\" + param.startDate.toISOString();\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString();\r\n }\r\n if (param.hideNegativeValues != null) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=\" + param.hideNegativeValues;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.direction) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"direction=\" + param.direction;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.DeviceReadings + \"/export\", query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_DEVICE_READINGS_REPORT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_DEVICE_READING_ERROR, [\r\n \"There was an error loading digester readings export.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_DEVICE_READING_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_NET_WEIGHT_BY_DEVICE](param: IDeviceReadingSearchParam) {\r\n ApiService.setHeader();\r\n let query = \"?utcOffsetMinutes=\" + new Date().getTimezoneOffset();\r\n if (param.deviceId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"deviceId=\" + param.deviceId;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.locationId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationId;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.locationId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationId;\r\n }\r\n if (param.startDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"startDate=\" + param.startDate.toISOString();\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString();\r\n }\r\n if (param.hideNegativeValues != null) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=\" + param.hideNegativeValues;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.direction) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"direction=\" + param.direction;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.Charts + \"/netweightbydevice\", query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_DEVICE_READINGS_REPORT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_DEVICE_READING_ERROR, [\r\n \"There was an error loading digester readings chart data.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_DEVICE_READING_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n IBaseModule,\r\n IPinCodeSearchParam,\r\n IPinCode,\r\n ISearchResult,\r\n IPinCodeExtension,\r\n IDevice,\r\n IReseller,\r\n IClient,\r\n IPinCodeReport,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class PinCodeModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n globalPinCodes = {} as ISearchResult;\r\n pinCodes = {} as ISearchResult;\r\n pinCodesReport = {} as ISearchResult;\r\n\r\n /**\r\n * Get pincode errors\r\n * @returns array\r\n */\r\n get getPincodeErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get pincode\r\n * @returns ISearchResult\r\n */\r\n get getPincodes(): ISearchResult {\r\n return this.pinCodes;\r\n }\r\n\r\n /**\r\n * Get pincodes report\r\n * @returns ISearchResult\r\n */\r\n get getPincodesReport(): ISearchResult {\r\n return this.pinCodesReport;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_PINCODE_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_PINCODES](codes: ISearchResult) {\r\n this.pinCodes = codes;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_PINCODES_REPORT](report: ISearchResult) {\r\n this.pinCodesReport = report;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_PINCODES_DETAIL](dataSet) {\r\n if (\r\n !dataSet ||\r\n !dataSet.devices ||\r\n !dataSet.devices.items ||\r\n !dataSet.clients ||\r\n !dataSet.clients.items ||\r\n !dataSet.resellers ||\r\n !dataSet.resellers.items\r\n ) {\r\n return;\r\n }\r\n for (var j = 0; j < this.pinCodes.items.length; j++) {\r\n const devices: IDevice[] = dataSet.devices.items.filter((dev) => {\r\n return (dev as IDevice).deviceId === this.pinCodes.items[j].deviceId;\r\n });\r\n\r\n if (devices && devices.length > 0) {\r\n this.pinCodes.items[j].deviceName = devices[0].name;\r\n }\r\n\r\n const resellers: IReseller[] = dataSet.resellers.items.filter((res) => {\r\n return (\r\n (res as IReseller).resellerId === this.pinCodes.items[j].resellerId\r\n );\r\n });\r\n\r\n if (resellers && resellers.length > 0) {\r\n this.pinCodes.items[j].resellerName = resellers[0].name;\r\n }\r\n\r\n const clients: IClient[] = dataSet.clients.items.filter((cli) => {\r\n return (cli as IClient).clientId === this.pinCodes.items[j].clientId;\r\n });\r\n\r\n if (clients && clients.length > 0) {\r\n this.pinCodes.items[j].clientName = clients[0].name;\r\n }\r\n }\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_PINCODES](param: IPinCodeSearchParam) {\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.resellerId) {\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.deviceId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"deviceId=\" + param.deviceId;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.isGlobal != null) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"isGlobal=\" + param.isGlobal;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.DevicePins, query)\r\n .then(({ data }) => {\r\n switch (param.category.toLowerCase()) {\r\n case \"globalpincodes\":\r\n this.context.commit(Mutations.SET_GLOBAL_PINCODES, data);\r\n break;\r\n\r\n case \"resellerpincodes\":\r\n this.context.commit(Mutations.SET_RESELLER_PINCODES, data);\r\n break;\r\n\r\n case \"devicepincodes\":\r\n this.context.commit(Mutations.SET_DEVICE_PINCODES, data);\r\n break;\r\n\r\n case \"pincodes\":\r\n default:\r\n this.context.commit(Mutations.SET_PINCODES, data);\r\n break;\r\n }\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [\r\n \"There was an error searching pin codes.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_PINCODE](param: IPinCode) {\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, []);\r\n const req = {\r\n resellerId: param.resellerId,\r\n deviceId: param.deviceId,\r\n clientId: param.clientId,\r\n pinCode: param.pinCode,\r\n devicePinTypeId: param.devicePinTypeId,\r\n friendlyName: param.friendlyName,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.DevicePins, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_PINCODE](param: IPinCode) {\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, []);\r\n const req = {\r\n pinCode: {\r\n op: \"Replace\",\r\n value: param.pinCode,\r\n },\r\n devicePinTypeId: {\r\n op: \"Replace\",\r\n value: param.devicePinTypeId,\r\n },\r\n } as any;\r\n if (param.resellerId) {\r\n req.resellerId = {\r\n op: \"Replace\",\r\n value: param.resellerId,\r\n };\r\n }\r\n else {\r\n req.resellerId = {\r\n op: \"Remove\",\r\n }\r\n }\r\n if (param.clientId) {\r\n req.clientId = {\r\n op: \"Replace\",\r\n value: param.clientId,\r\n };\r\n }\r\n else {\r\n req.clientId = {\r\n op: \"Remove\",\r\n }\r\n }\r\n if (param.deviceId) {\r\n req.deviceId = {\r\n op: \"Replace\",\r\n value: param.deviceId,\r\n };\r\n }\r\n else {\r\n req.deviceId = {\r\n op: \"Remove\",\r\n }\r\n }\r\n if (param.friendlyName) {\r\n req.friendlyName = {\r\n op: \"Replace\",\r\n value: param.friendlyName,\r\n };\r\n }\r\n else {\r\n req.friendlyName = {\r\n op: \"Remove\",\r\n }\r\n }\r\n ApiService.setHeader();\r\n return ApiService.patch(Endpoints.DevicePins + \"/\" + param.devicePinId, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_RESELLER_PINCODES](resellerId: string) {\r\n ApiService.setHeader();\r\n let query = \"reseller/\" + resellerId;\r\n return ApiService.get(Endpoints.DevicePins, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_RESELLER_PINCODES, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [\r\n \"There was an error loading reseller pin codes.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_CLIENT_PINCODES](clientId: string) {\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"client/\" + clientId;\r\n return ApiService.get(Endpoints.DevicePins, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_CLIENT_PINCODES, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [\r\n \"There was an error loading client pin codes.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_DEVICE_PINCODES](deviceId: string) {\r\n ApiService.setHeader();\r\n let query = \"device/\" + deviceId;\r\n return ApiService.get(Endpoints.DevicePins, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_DEVICE_PINCODES, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [\r\n \"There was an error loading digester pin codes.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_PINCODE](pinCode: IPinCode) {\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.DevicePins, pinCode.devicePinId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_PINCODES_REPORT](param: IPinCodeSearchParam) {\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.resellerId) {\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.deviceId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"deviceId=\" + param.deviceId;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.isGlobal != null) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"isGlobal=\" + param.isGlobal;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.DevicePins + \"/export\", query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_PINCODES_REPORT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [\r\n \"There was an error loading pin codes export.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PINCODE_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n ISearchResult,\r\n IBaseModule,\r\n IKpiResultSearchParam,\r\n IKpiSesult,\r\n IKpiSetting,\r\n IKpiSearchParam,\r\n IKpiSettingReport,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class KpiModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n kpiResult = {} as IKpiSesult;\r\n kpi = {} as IKpiSetting;\r\n kpis = {} as ISearchResult;\r\n unitOptions = [] as Array;\r\n kpisReport = {} as ISearchResult;\r\n\r\n /**\r\n * Get kpi errors\r\n * @returns array\r\n */\r\n get getKpiErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get kpi result\r\n * @returns IKpiSesult\r\n */\r\n get getKpiResult(): IKpiSesult {\r\n return this.kpiResult;\r\n }\r\n\r\n /**\r\n * Get kpi\r\n * @returns IKpiSetting\r\n */\r\n get getKpi(): IKpiSetting {\r\n return this.kpi;\r\n }\r\n\r\n /**\r\n * Get kpis\r\n * @returns ISearchResult\r\n */\r\n get getKpis(): ISearchResult {\r\n return this.kpis;\r\n }\r\n\r\n /**\r\n * Get unit options\r\n * @returns Array\r\n */\r\n get getUnitOptions(): Array {\r\n return this.unitOptions;\r\n }\r\n\r\n /**\r\n * Get kpis report\r\n * @returns ISearchResult\r\n */\r\n get getKpisReport(): ISearchResult {\r\n return this.kpisReport;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_KPI_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_KPI](result: IKpiSetting) {\r\n this.kpi = result;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_KPIS](result: ISearchResult) {\r\n this.kpis = result;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_KPI_RESULT](result: IKpiSesult) {\r\n this.kpiResult = result;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_UNIT_OPTIONS](result: Array) {\r\n this.unitOptions = result;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_KPIS_REPORT](result: ISearchResult) {\r\n this.kpisReport = result;\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_KPI_RESULT](param: IKpiResultSearchParam) {\r\n ApiService.setHeader();\r\n let query = \"?utcOffsetMinutes=\" + new Date().getTimezoneOffset();\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.startDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"startDate=\" + param.startDate.toISOString();\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString();\r\n }\r\n if (!param.hideNegativeValues) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=false\";\r\n }\r\n if (param.useMetric) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"useMetric=\" + param.useMetric;\r\n }\r\n if (param.locationId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationId;\r\n }\r\n if (param.deviceIds && param.deviceIds.length != 0) {\r\n return ApiService.post(\r\n Endpoints.KpiResult + query,\r\n param.deviceIds as any\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_KPI_RESULT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_KPI_ERROR, [\r\n \"There was an error loading KPI result.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_KPI_ERROR, [message]);\r\n });\r\n }\r\n\r\n return ApiService.get(Endpoints.KpiResult, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_KPI_RESULT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_KPI_ERROR, [\r\n \"There was an error loading KPI result.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_KPI_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_KPIS](param: IKpiSearchParam) {\r\n this.context.commit(Mutations.SET_KPI_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.name) {\r\n query += \"name=\" + param.name;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.Kpis, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_KPIS, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_KPI_ERROR, [\r\n \"There was an error loading kpis.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_KPI_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_KPI](kpiId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Kpis, kpiId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_KPI, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_KPI_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_KPI](param: IKpiSetting) {\r\n this.context.commit(Mutations.SET_KPI_ERROR, []);\r\n const req = {\r\n name: param.name,\r\n expressionMetric: param.expressionMetric,\r\n expressionImperial: param.expressionImperial,\r\n unitOfMeasurementMetric: param.unitOfMeasurementMetric,\r\n unitOfMeasurementImperial: param.unitOfMeasurementImperial,\r\n icon: param.icon,\r\n description: param.description,\r\n tooltip: param.tooltip,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Kpis, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_KPI_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_KPI](param: IKpiSetting) {\r\n this.context.commit(Mutations.SET_KPI_ERROR, []);\r\n const req = {\r\n name: {\r\n op: \"Replace\",\r\n value: param.name,\r\n },\r\n description: {\r\n op: \"Replace\",\r\n value: param.description,\r\n },\r\n expressionMetric: {\r\n op: \"Replace\",\r\n value: param.expressionMetric,\r\n },\r\n expressionImperial: {\r\n op: \"Replace\",\r\n value: param.expressionImperial,\r\n },\r\n unitOfMeasurementMetric: {\r\n op: \"Replace\",\r\n value: param.unitOfMeasurementMetric,\r\n },\r\n unitOfMeasurementImperial: {\r\n op: \"Replace\",\r\n value: param.unitOfMeasurementImperial,\r\n },\r\n } as any;\r\n if (param.icon) {\r\n req.icon = {\r\n op: \"Replace\",\r\n value: param.icon,\r\n };\r\n }\r\n if (param.tooltip) {\r\n req.tooltip = {\r\n op: \"Replace\",\r\n value: param.tooltip,\r\n };\r\n }\r\n ApiService.setHeader();\r\n return ApiService.patch(Endpoints.Kpis + \"/\" + param.kpiId, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_KPI_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_KPI](param: IKpiSetting) {\r\n this.context.commit(Mutations.SET_KPI_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.Kpis, param.kpiId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_KPI_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_UNIT_OPTIONS]() {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Kpis + \"/units\")\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_UNIT_OPTIONS, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_KPI_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_CLIENT_KPIS](clientId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Kpis + \"/client/\" + clientId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_CLIENT_KPIS, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_KPI_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n async [Actions.LOAD_CLIENT_KPIS_METADATA](clientId: string) {\r\n ApiService.setHeader();\r\n try {\r\n const meta = await ApiService.head(\r\n Endpoints.Kpis + \"/client/\" + clientId\r\n );\r\n if (meta.headers && meta.headers[\"x-custom-kpi-list\"]) {\r\n const result = meta.headers[\"x-custom-kpi-list\"] == \"True\";\r\n this.context.commit(Mutations.SET_CLIENT_CUSTOM_KPIS, result);\r\n }\r\n } catch (err) {\r\n this.context.commit(Mutations.SET_KPI_ERROR, err);\r\n }\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_KPIS_REPORT](param: IKpiSearchParam) {\r\n this.context.commit(Mutations.SET_KPI_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.name) {\r\n query += \"name=\" + param.name;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.Kpis + \"/export\", query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_KPIS_REPORT, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_KPI_ERROR, [\r\n \"There was an error loading kpis export.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_KPI_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { IBaseModule } from \"../common/Types\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class FileModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n\r\n /**\r\n * Get file errors\r\n * @returns array\r\n */\r\n get getFileErrors() {\r\n return this.errors;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_FILE_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Action\r\n [Actions.UPLOAD_FILE](param) {\r\n if (!param.serialNumber || !param.content || !param.share || !param.path) {\r\n this.context.commit(Mutations.SET_ERROR, [\r\n \"There was an error uploading this file. Param not set.\",\r\n ]);\r\n return;\r\n }\r\n this.context.commit(Mutations.SET_FILE_ERROR, []);\r\n const req = {\r\n path: param.path + param.serialNumber + \".csv\",\r\n share: param.share,\r\n content: param.content,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Files, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n\r\n if (!response || message === undefined || message === null || message === \"\") {\r\n this.context.commit(Mutations.SET_FILE_ERROR, [\r\n \"There was an error uploading this document\",\r\n ]);\r\n return;\r\n }\r\n this.context.commit(Mutations.SET_FILE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.SEND_FILE_QUEUE](param) {\r\n this.context.commit(Mutations.SET_FILE_ERROR, []);\r\n const req = {\r\n message: param.message,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Queues + \"/\" + param.queueName, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_FILE_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport { IEmail, IBaseModule } from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class EmailModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n\r\n /**\r\n * Get email errors\r\n * @returns array\r\n */\r\n get getEmailErrors() {\r\n return this.errors;\r\n }\r\n\r\n @Action\r\n [Actions.SEND_EMAIL](email: IEmail) {\r\n this.context.commit(Mutations.SET_ERROR, {});\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Email, email as any)\r\n .then(({ data }) => {})\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_ERROR, [\r\n \"There was an error sending an email.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n IModelSize,\r\n IBaseModule,\r\n IModelSizeSearchParam,\r\n ISearchResult,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class ModelSizeModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n modelSize = {} as IModelSize;\r\n modelSizes = {} as ISearchResult;\r\n\r\n /**\r\n * Get model size errors\r\n * @returns array\r\n */\r\n get getModelSizeErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get model size\r\n * @returns ISearchResult\r\n */\r\n get getModelSize(): IModelSize {\r\n return this.modelSize;\r\n }\r\n\r\n /**\r\n * Get model size options\r\n * @returns ISearchResult\r\n */\r\n get getModelSizes(): ISearchResult {\r\n return this.modelSizes;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_MODEL_SIZE_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_MODEL_SIZE](modelSize: IModelSize) {\r\n this.modelSize = modelSize;\r\n }\r\n @Mutation\r\n [Mutations.SET_MODEL_SIZES](modelSizes: ISearchResult) {\r\n this.modelSizes = modelSizes;\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_MODEL_SIZES](param: IModelSizeSearchParam) {\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.name) {\r\n query += \"name=\" + param.name;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.ModelSizes, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_MODEL_SIZES, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_MODEL_SIZE_ERROR, [\r\n \"There was an error loading model sizes.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_MODEL_SIZE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_MODEL_SIZE](modelSizeId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.ModelSizes, modelSizeId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_MODEL_SIZE, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_MODEL_SIZE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_MODEL_SIZE](param: IModelSize) {\r\n this.context.commit(Mutations.SET_MODEL_SIZE_ERROR, []);\r\n const req = {\r\n name: param.name,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.ModelSizes, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_MODEL_SIZE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_MODEL_SIZE](param: IModelSize) {\r\n this.context.commit(Mutations.SET_MODEL_SIZE_ERROR, []);\r\n const req = {\r\n name: {\r\n op: \"Replace\",\r\n value: param.name,\r\n },\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.patch(Endpoints.ModelSizes + \"/\" + param.modelSizeId, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_MODEL_SIZE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_MODEL_SIZE](param: IModelSize) {\r\n this.context.commit(Mutations.SET_MODEL_SIZE_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.ModelSizes, param.modelSizeId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_MODEL_SIZE_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n IIndustry,\r\n IBaseModule,\r\n IIndustrySearchParam,\r\n ISearchResult,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class IndustryModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n industry = {} as IIndustry;\r\n industries = {} as ISearchResult;\r\n\r\n /**\r\n * Get industry errors\r\n * @returns array\r\n */\r\n get getIndustryErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get industry\r\n * @returns ISearchResult\r\n */\r\n get getIndustry(): IIndustry {\r\n return this.industry;\r\n }\r\n\r\n /**\r\n * Get industry options\r\n * @returns ISearchResult\r\n */\r\n get getIndustries(): ISearchResult {\r\n return this.industries;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_INDUSTRY_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_INDUSTRY](industry: IIndustry) {\r\n this.industry = industry;\r\n }\r\n @Mutation\r\n [Mutations.SET_INDUSTRIES](industries: ISearchResult) {\r\n this.industries = industries;\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_INDUSTRIES](param: IIndustrySearchParam) {\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.name) {\r\n query += \"name=\" + param.name;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.Industries, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_INDUSTRIES, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_INDUSTRY_ERROR, [\r\n \"There was an error loading industries.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_INDUSTRY_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_INDUSTRY](industryId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Industries, industryId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_INDUSTRY, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_INDUSTRY_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_INDUSTRY](param: IIndustry) {\r\n this.context.commit(Mutations.SET_INDUSTRY_ERROR, []);\r\n const req = {\r\n name: param.name,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Industries, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_INDUSTRY_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_INDUSTRY](param: IIndustry) {\r\n this.context.commit(Mutations.SET_INDUSTRY_ERROR, []);\r\n const req = {\r\n name: {\r\n op: \"Replace\",\r\n value: param.name,\r\n },\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.patch(Endpoints.Industries + \"/\" + param.industryId, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_INDUSTRY_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_INDUSTRY](param: IIndustry) {\r\n this.context.commit(Mutations.SET_INDUSTRY_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.Industries, param.industryId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_INDUSTRY_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n IPinCodeType,\r\n IBaseModule,\r\n IPinCodeTypeSearchParam,\r\n ISearchResult,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class PinCodeTypeModule\r\n extends VuexModule\r\n implements IBaseModule\r\n{\r\n errors = {};\r\n pinCodeType = {} as IPinCodeType;\r\n pinCodeTypes = {} as ISearchResult;\r\n\r\n /**\r\n * Get pin code type errors\r\n * @returns array\r\n */\r\n get getPinCodeTypeErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get pin code type\r\n * @returns ISearchResult\r\n */\r\n get getPinCodeType(): IPinCodeType {\r\n return this.pinCodeType;\r\n }\r\n\r\n /**\r\n * Get pin code type options\r\n * @returns ISearchResult\r\n */\r\n get getPinCodeTypes(): ISearchResult {\r\n return this.pinCodeTypes;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_PIN_CODE_TYPE_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_PIN_CODE_TYPE](pinCodeType: IPinCodeType) {\r\n this.pinCodeType = pinCodeType;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_PIN_CODE_TYPES](pinCodeTypes: ISearchResult) {\r\n this.pinCodeTypes = pinCodeTypes;\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_PIN_CODE_TYPES](param: IPinCodeTypeSearchParam) {\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.description) {\r\n query += \"description=\" + param.description;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.PinCodeTypes, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_PIN_CODE_TYPES, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_PIN_CODE_TYPE_ERROR, [\r\n \"There was an error loading pin code type.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PIN_CODE_TYPE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_PIN_CODE_TYPE](pinCodeTypeId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.PinCodeTypes, pinCodeTypeId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_PIN_CODE_TYPE, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PIN_CODE_TYPE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_PIN_CODE_TYPE](param: IPinCodeType) {\r\n this.context.commit(Mutations.SET_PIN_CODE_TYPE_ERROR, []);\r\n const req = {\r\n description: param.description,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.PinCodeTypes, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PIN_CODE_TYPE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_PIN_CODE_TYPE](param: IPinCodeType) {\r\n this.context.commit(Mutations.SET_PIN_CODE_TYPE_ERROR, []);\r\n const req = {\r\n description: {\r\n op: \"Replace\",\r\n value: param.description,\r\n },\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.patch(\r\n Endpoints.PinCodeTypes + \"/\" + param.devicePinTypeId,\r\n req\r\n )\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PIN_CODE_TYPE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_PIN_CODE_TYPE](param: IPinCodeType) {\r\n this.context.commit(Mutations.SET_PIN_CODE_TYPE_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.PinCodeTypes, param.devicePinTypeId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_PIN_CODE_TYPE_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\nimport {\r\n IBaseModule,\r\n IChartResult,\r\n IChartSearchParam,\r\n ITotalNetWeightByPinCode,\r\n IChartResponseItem,\r\n ITotalNetWeightByEntity,\r\n IChartResponse,\r\n} from \"../common/Types\";\r\n\r\n@Module\r\nexport default class ChartModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n monthlyNetWeightByPinCodeResult =\r\n {} as IChartResult;\r\n monthlyNetWeightByLocationResult = {} as IChartResponse;\r\n totalNetWeightByPinCodeResult = {} as IChartResult;\r\n totalNetWeightByClientResult = {} as IChartResult;\r\n totalNetWeightByResellerResult = {} as IChartResult;\r\n totalNetWeightByLocationResult = {} as IChartResult;\r\n totalNetWeightByDeviceResult = {} as IChartResult;\r\n\r\n /**\r\n * Get chart errors\r\n * @returns array\r\n */\r\n get getChartErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get MonthlyNetWeightByPinCodeResult\r\n * @returns IChartResult\r\n */\r\n get getMonthlyNetWeightByPinCodeResult(): IChartResult {\r\n return this.monthlyNetWeightByPinCodeResult;\r\n }\r\n\r\n /**\r\n * Get LocationNetWeightByPinCodeResult\r\n * @returns IChartResponse\r\n */\r\n get getMonthlyNetWeightByLocationResult(): IChartResponse {\r\n return this.monthlyNetWeightByLocationResult;\r\n }\r\n /**\r\n * Get TotalNetWeightByPinCodeResult\r\n * @returns IChartResult\r\n */\r\n get getTotalNetWeightByPinCodeResult(): IChartResult {\r\n return this.totalNetWeightByPinCodeResult;\r\n }\r\n\r\n /**\r\n * Get TotalNetWeightByClientResult\r\n * @returns IChartResult\r\n */\r\n get getTotalNetWeightByClientResult(): IChartResult {\r\n return this.totalNetWeightByClientResult;\r\n }\r\n\r\n /**\r\n * Get TotalNetWeightByResellerResult\r\n * @returns IChartResult\r\n */\r\n get getTotalNetWeightByResellerResult(): IChartResult {\r\n return this.totalNetWeightByResellerResult;\r\n }\r\n\r\n /**\r\n * Get TotalNetWeightByLocationResult\r\n * @returns IChartResult\r\n */\r\n get getTotalNetWeightByLocationResult(): IChartResult {\r\n return this.totalNetWeightByLocationResult;\r\n }\r\n\r\n /**\r\n * Get TotalNetWeightByDeviceResult\r\n * @returns IChartResult\r\n */\r\n get getTotalNetWeightByDeviceResult(): IChartResult {\r\n return this.totalNetWeightByDeviceResult;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_CHART_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_MONTHLY_NET_WEIGHT_BY_PIN_CODE_RESULT](\r\n result: IChartResult\r\n ) {\r\n this.monthlyNetWeightByPinCodeResult = result;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_MONTHLY_NET_WEIGHT_BY_LOCATION_RESULT](\r\n result: IChartResponse\r\n ) {\r\n this.monthlyNetWeightByLocationResult = result;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_TOTAL_NET_WEIGHT_BY_PIN_CODE_RESULT](\r\n result: IChartResult\r\n ) {\r\n this.totalNetWeightByPinCodeResult = result;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_TOTAL_NET_WEIGHT_BY_CLIENT_RESULT](\r\n result: IChartResult\r\n ) {\r\n this.totalNetWeightByClientResult = result;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_TOTAL_NET_WEIGHT_BY_RESELLER_RESULT](\r\n result: IChartResult\r\n ) {\r\n this.totalNetWeightByResellerResult = result;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_TOTAL_NET_WEIGHT_BY_LOCATION_RESULT](\r\n result: IChartResult\r\n ) {\r\n this.totalNetWeightByLocationResult = result;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_TOTAL_NET_WEIGHT_BY_DEVICE_RESULT](\r\n result: IChartResult\r\n ) {\r\n this.totalNetWeightByDeviceResult = result;\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_MONTHLY_NET_WEIGHT_BY_PIN_CODE](param: IChartSearchParam) {\r\n this.context.commit(Mutations.SET_CHART_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?utcOffsetMinutes=\" + new Date().getTimezoneOffset();\r\n if (param.startDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"startDate=\" + param.startDate.toISOString();\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString();\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.locationIds && param.locationIds.length > 0) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationIds[0];\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (!param.hideNegativeValues) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=false\";\r\n }\r\n if (param.groupByFriendlyName) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"groupByFriendlyName=true\";\r\n }\r\n if (param.deviceIds && param.deviceIds.length != 0) {\r\n return ApiService.post(\r\n Endpoints.Charts + \"/netweightbypincode\" + query,\r\n param.deviceIds as any\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_MONTHLY_NET_WEIGHT_BY_PIN_CODE_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n return ApiService.get(\r\n Endpoints.Charts + \"/netweightbypincode\",\r\n query\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_MONTHLY_NET_WEIGHT_BY_PIN_CODE_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_MONTHLY_NET_WEIGHT_BY_LOCATION](param: IChartSearchParam) {\r\n this.context.commit(Mutations.SET_CHART_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?utcOffsetMinutes=\" + new Date().getTimezoneOffset();\r\n if (param.startDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"startDate=\" + param.startDate.toISOString();\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString();\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.locationIds && param.locationIds.length > 0) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationIds[0];\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (!param.hideNegativeValues) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=false\";\r\n }\r\n if (param.deviceIds && param.deviceIds.length != 0) {\r\n return ApiService.post(\r\n Endpoints.Charts + \"/netweightbylocation\" + query,\r\n param.deviceIds as any\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_MONTHLY_NET_WEIGHT_BY_LOCATION_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n return ApiService.get(\r\n Endpoints.Charts + \"/netweightbylocation\",\r\n query\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_MONTHLY_NET_WEIGHT_BY_LOCATION_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_TOTAL_NET_WEIGHT_BY_PIN_CODE](param: IChartSearchParam) {\r\n this.context.commit(Mutations.SET_CHART_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?utcOffsetMinutes=\" + new Date().getTimezoneOffset();\r\n if (param.startDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"startDate=\" + param.startDate.toISOString();\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString();\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.locationIds && param.locationIds.length > 0) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"locationId=\" + param.locationIds[0];\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (!param.hideNegativeValues) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=false\";\r\n }\r\n if (param.groupByFriendlyName) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"groupByFriendlyName=true\";\r\n }\r\n if (param.deviceIds && param.deviceIds.length != 0) {\r\n return ApiService.post(\r\n Endpoints.Charts + \"/totalnetweightbypincode\" + query,\r\n param.deviceIds as any\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_TOTAL_NET_WEIGHT_BY_PIN_CODE_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n return ApiService.get(Endpoints.Charts + \"/totalnetweightbypincode\", query)\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_TOTAL_NET_WEIGHT_BY_PIN_CODE_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_TOTAL_NET_WEIGHT_BY_CLIENT](param: IChartSearchParam) {\r\n this.context.commit(Mutations.SET_CHART_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?utcOffsetMinutes=\" + new Date().getTimezoneOffset();\r\n if (param.startDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"startDate=\" + param.startDate.toISOString();\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString();\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (!param.hideNegativeValues) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=false\";\r\n }\r\n if (param.deviceIds && param.deviceIds.length != 0) {\r\n return ApiService.post(\r\n Endpoints.Charts + \"/totalnetweightbyclient\" + query,\r\n param.deviceIds as any\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_TOTAL_NET_WEIGHT_BY_CLIENT_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n return ApiService.get(Endpoints.Charts + \"/totalnetweightbyclient\", query)\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_TOTAL_NET_WEIGHT_BY_CLIENT_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_TOTAL_NET_WEIGHT_BY_RESELLER](param: IChartSearchParam) {\r\n this.context.commit(Mutations.SET_CHART_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?utcOffsetMinutes=\" + new Date().getTimezoneOffset();\r\n if (param.startDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"startDate=\" + param.startDate.toISOString();\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString();\r\n }\r\n if (!param.hideNegativeValues) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=false\";\r\n }\r\n if (param.deviceIds && param.deviceIds.length != 0) {\r\n return ApiService.post(\r\n Endpoints.Charts + \"/totalnetweightbyreseller\" + query,\r\n param.deviceIds as any\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_TOTAL_NET_WEIGHT_BY_RESELLER_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n return ApiService.get(Endpoints.Charts + \"/totalnetweightbyreseller\", query)\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_TOTAL_NET_WEIGHT_BY_RESELLER_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_TOTAL_NET_WEIGHT_BY_LOCATION](param: IChartSearchParam) {\r\n this.context.commit(Mutations.SET_CHART_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.startDate) {\r\n query += \"startDate=\" + param.startDate.toISOString();\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString();\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (!param.hideNegativeValues) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=false\";\r\n }\r\n if (param.deviceIds && param.deviceIds.length != 0) {\r\n return ApiService.post(\r\n Endpoints.Charts + \"/totalnetweightbylocation\" + query,\r\n param.deviceIds as any\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_TOTAL_NET_WEIGHT_BY_LOCATION_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n return ApiService.get(Endpoints.Charts + \"/totalnetweightbylocation\", query)\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_TOTAL_NET_WEIGHT_BY_LOCATION_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_TOTAL_NET_WEIGHT_BY_DEVICE](param: IChartSearchParam) {\r\n this.context.commit(Mutations.SET_CHART_ERROR, []);\r\n ApiService.setHeader();\r\n let query = \"?utcOffsetMinutes=\" + new Date().getTimezoneOffset();\r\n if (param.startDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"startDate=\" + param.startDate.toISOString();\r\n }\r\n if (param.endDate) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"endDate=\" + param.endDate.toISOString();\r\n }\r\n if (param.clientId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"clientId=\" + param.clientId;\r\n }\r\n if (param.resellerId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"resellerId=\" + param.resellerId;\r\n }\r\n if (!param.hideNegativeValues) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"hideNegativeValues=false\";\r\n }\r\n\r\n if (param.deviceIds && param.deviceIds.length != 0) {\r\n return ApiService.post(\r\n Endpoints.Charts + \"/totalnetweightbydevice\" + query,\r\n param.deviceIds as any\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_TOTAL_NET_WEIGHT_BY_DEVICE_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n if (param.locationIds && param.locationIds.length != 0) {\r\n return ApiService.post(\r\n Endpoints.Charts + \"/totalnetweightbydevice\" + query,\r\n param.locationIds as any\r\n )\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_TOTAL_NET_WEIGHT_BY_DEVICE_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n\r\n return ApiService.get(Endpoints.Charts + \"/totalnetweightbydevice\", query)\r\n .then(({ data }) => {\r\n this.context.commit(\r\n Mutations.SET_TOTAL_NET_WEIGHT_BY_DEVICE_RESULT,\r\n data\r\n );\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_CHART_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport { IBaseModule } from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class DocumentModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n\r\n /**\r\n * Get document errors\r\n * @returns array\r\n */\r\n get getDocumentErrors() {\r\n return this.errors;\r\n }\r\n\r\n @Action\r\n [Actions.DOWNLOAD_MANUAL](manualName: string) {\r\n this.context.commit(Mutations.SET_ERROR, []);\r\n ApiService.setHeader();\r\n const query =\r\n process.env.VUE_APP_FILE_ENVIRONMENT + \"/troubleshooting/\" + manualName;\r\n return ApiService.get(Endpoints.Files, query)\r\n .then(({ data }) => {\r\n var atData = Uint8Array.from(atob(data[0].content), (c) =>\r\n c.charCodeAt(0)\r\n );\r\n var blob = new Blob([atData], { type: \"application/pdf\" });\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.setAttribute(\"download\", manualName);\r\n document.body.appendChild(link);\r\n link.click();\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_ERROR, [\r\n \"There was an error downloading the manual.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n IDeviceStatus,\r\n ISearchResult,\r\n IBaseModule,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, VuexModule, Mutation } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class DeviceStatusModule\r\n extends VuexModule\r\n implements IBaseModule\r\n{\r\n errors = {};\r\n deviceStatuses = {} as ISearchResult;\r\n\r\n /**\r\n * Get device status errors\r\n * @returns array\r\n */\r\n get getDeviceStatusErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get device statuses\r\n * @returns ISearchResult\r\n */\r\n get getDeviceStatuses(): ISearchResult {\r\n return this.deviceStatuses;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICE_STATUS_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_DEVICE_STATUSES](statuses) {\r\n this.deviceStatuses = statuses;\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_DEVICE_STATUSES]() {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.DeviceStatuses)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_DEVICE_STATUSES, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_DEVICE_STATUS_ERROR, [\r\n \"There was an error loading device statuses.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_DEVICE_STATUS_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport { ITimeZone, ISearchResult, IBaseModule } from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, VuexModule, Mutation } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class TimeZoneModule extends VuexModule implements IBaseModule {\r\n errors = {};\r\n timeZones = {} as ISearchResult;\r\n\r\n /**\r\n * Get time zone errors\r\n * @returns array\r\n */\r\n get getTimeZoneErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get time zones\r\n * @returns ISearchResult\r\n */\r\n get getTimeZones(): ISearchResult {\r\n return this.timeZones;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_TIME_ZONE_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_TIME_ZONES](timeZones) {\r\n this.timeZones = timeZones;\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_TIME_ZONES]() {\r\n ApiService.setHeader();\r\n const query = \"?page=0\";\r\n return ApiService.get(Endpoints.TimeZones, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_TIME_ZONES, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_TIME_ZONE_ERROR, [\r\n \"There was an error loading time zones.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_TIME_ZONE_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n IMeasurementStandard,\r\n ISearchResult,\r\n IBaseModule,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, VuexModule, Mutation } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class MeasurementStandardModule\r\n extends VuexModule\r\n implements IBaseModule\r\n{\r\n errors = {};\r\n measurementStandards = {} as ISearchResult;\r\n measurementMetricId = \"\";\r\n\r\n /**\r\n * Get measurement standard errors\r\n * @returns array\r\n */\r\n get getMeasurementStandardErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get device status\r\n * @returns ISearchResult\r\n */\r\n get getMeasurementStandards(): ISearchResult {\r\n return this.measurementStandards;\r\n }\r\n\r\n /**\r\n * Get measurement metric id\r\n * @returns string\r\n */\r\n get getMeasurementMetricId(): string {\r\n return this.measurementMetricId;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_MEASUREMENT_STANDARD_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_MEASUREMENT_STANDARDS](\r\n data: ISearchResult\r\n ) {\r\n this.measurementStandards = data;\r\n\r\n const filteredItem = data.items.filter(function (pl) {\r\n return pl.value === \"Metric\";\r\n });\r\n if (filteredItem.length != 0) {\r\n this.measurementMetricId = filteredItem[0].measurementStandardId;\r\n }\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_MEASUREMENT_STANDARDS]() {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.MeasurementStandards)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_MEASUREMENT_STANDARDS, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_MEASUREMENT_STANDARD_ERROR, [\r\n \"There was an error loading measurement standardS.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_MEASUREMENT_STANDARD_ERROR, [\r\n message,\r\n ]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport {\r\n ICountry,\r\n IProvince,\r\n ISearchResult,\r\n IBaseModule,\r\n ICountrySearchParam,\r\n IProvinceSearchParam,\r\n} from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, VuexModule, Mutation } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class CountryProvinceModule\r\n extends VuexModule\r\n implements IBaseModule\r\n{\r\n errors = {};\r\n countries = {} as ISearchResult;\r\n country = {} as ICountry;\r\n provinces = {} as ISearchResult;\r\n allProvinces = {} as Array;\r\n province = {} as IProvince;\r\n selectedCountry = \"\";\r\n filteredProvinces = {} as Array;\r\n\r\n /**\r\n * Get country province errors\r\n * @returns array\r\n */\r\n get getCountryProvinceErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get countries\r\n * @returns ISearchResult\r\n */\r\n get getCountries(): ISearchResult {\r\n return this.countries;\r\n }\r\n\r\n /**\r\n * Get country\r\n * @returns ICountry\r\n */\r\n get getCountry(): ICountry {\r\n return this.country;\r\n }\r\n\r\n /**\r\n * Get provinces\r\n * @returns ISearchResult;\r\n */\r\n get getProvinces(): ISearchResult {\r\n return this.provinces;\r\n }\r\n\r\n /**\r\n * Get all provinces\r\n * @returns Array;\r\n */\r\n get getAllProvinces(): Array {\r\n return this.allProvinces;\r\n }\r\n\r\n /**\r\n * Get province\r\n * @returns IProvince;\r\n */\r\n get getProvince(): IProvince {\r\n return this.province;\r\n }\r\n\r\n /**\r\n * Get filtered provinces\r\n * @returns Array\r\n */\r\n get getFilteredProvinces(): Array {\r\n return this.filteredProvinces;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_COUNTRY_PROVINCE_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_COUNTRIES](countries: ISearchResult) {\r\n this.countries = countries;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_COUNTRY](country: ICountry) {\r\n this.country = country;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_ALL_PROVINCES](provinces: ISearchResult) {\r\n this.allProvinces = provinces.items as Array;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_PROVINCES](provinces) {\r\n this.provinces = provinces;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_PROVINCE](pronvince) {\r\n this.province = pronvince;\r\n }\r\n\r\n @Mutation\r\n [Mutations.FILTER_PROVINCES](countryId) {\r\n if (countryId) {\r\n this.filteredProvinces = this.allProvinces.filter(function (pl) {\r\n return pl.parentKey === countryId;\r\n });\r\n } else {\r\n this.filteredProvinces = this.allProvinces;\r\n }\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_COUNTRIES](param: ICountrySearchParam) {\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.value) {\r\n query += \"value=\" + param.value;\r\n }\r\n if (param.lookupValue) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"lookupValue=\" + param.lookupValue;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.Countries, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_COUNTRIES, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [\r\n \"There was an error loading countries.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_COUNTRY](countryId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Countries, countryId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_COUNTRY, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_COUNTRY](param: ICountry) {\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, []);\r\n const req = {\r\n value: param.value,\r\n altValue: param.altValue,\r\n isActive: param.isActive,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Countries, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_COUNTRY](param: ICountry) {\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, []);\r\n const req = {\r\n value: {\r\n op: \"Replace\",\r\n value: param.value,\r\n },\r\n altValue: {\r\n op: \"Replace\",\r\n value: param.altValue,\r\n },\r\n isActive: {\r\n op: \"Replace\",\r\n value: param.isActive,\r\n },\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.patch(Endpoints.Countries + \"/\" + param.countryId, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_COUNTRY](param: ICountry) {\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.Countries, param.countryId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_PROVINCES](param: IProvinceSearchParam) {\r\n ApiService.setHeader();\r\n let query = \"?\";\r\n if (param.value) {\r\n query += \"value=\" + param.value;\r\n }\r\n if (param.countryId) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"countryId=\" + param.countryId;\r\n }\r\n if (param.lookupValue) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"lookupValue=\" + param.lookupValue;\r\n }\r\n if (param.page > -1) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"page=\" + param.page;\r\n }\r\n if (param.orderBy) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderBy=\" + param.orderBy;\r\n }\r\n if (param.orderByDirection) {\r\n if (query.slice(-1) !== \"?\") {\r\n query += \"&\";\r\n }\r\n query += \"orderByDirection=\" + param.orderByDirection;\r\n }\r\n query += \"&isDeleted=false\";\r\n return ApiService.get(Endpoints.Provinces, query)\r\n .then(({ data }) => {\r\n switch (param.category) {\r\n case \"allProvinces\":\r\n this.context.commit(Mutations.SET_ALL_PROVINCES, data);\r\n break;\r\n\r\n case \"provinces\":\r\n default:\r\n this.context.commit(Mutations.SET_PROVINCES, data);\r\n break;\r\n }\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [\r\n \"There was an error loading provinces.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_PROVINCE](provinceId: string) {\r\n ApiService.setHeader();\r\n return ApiService.get(Endpoints.Provinces, provinceId)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_PROVINCE, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_PROVINCE](param: IProvince) {\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, []);\r\n const req = {\r\n value: param.value,\r\n parentKey: param.parentKey,\r\n isActive: param.isActive,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Provinces, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_PROVINCE](param: IProvince) {\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, []);\r\n const req = {\r\n value: {\r\n op: \"Replace\",\r\n value: param.value,\r\n },\r\n isActive: {\r\n op: \"Replace\",\r\n value: param.isActive,\r\n },\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.patch(Endpoints.Provinces + \"/\" + param.provinceId, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_PROVINCE](param: IProvince) {\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, []);\r\n ApiService.setHeader();\r\n return ApiService.delete(Endpoints.Provinces, param.provinceId)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_COUNTRY_PROVINCE_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import ApiService from \"@/core/services/ApiService\";\r\nimport { IBaseModule, ILanguageString } from \"@/store/common/Types\";\r\nimport { Actions, Endpoints, Mutations } from \"@/store/enums/StoreEnums\";\r\nimport { Module, Action, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { getErrorMessage } from \"@/core/helpers/util\";\r\n\r\n@Module\r\nexport default class LanguageStringModule\r\n extends VuexModule\r\n implements IBaseModule\r\n{\r\n errors = {};\r\n languageString = {} as ILanguageString;\r\n languageStrings = {} as Array;\r\n languageStringMetricOptions = {} as Array;\r\n languageStringUnitOptions = {} as Array;\r\n\r\n /**\r\n * Get language string errors\r\n * @returns array\r\n */\r\n get getLanguageStringErrors() {\r\n return this.errors;\r\n }\r\n\r\n /**\r\n * Get language string\r\n * @returns Array\r\n */\r\n get getLanguageString(): ILanguageString {\r\n return this.languageString;\r\n }\r\n\r\n /**\r\n * Get language strings\r\n * @returns Array\r\n */\r\n get getLanguageStrings(): Array {\r\n return this.languageStrings;\r\n }\r\n\r\n /**\r\n * Get language string metric options\r\n * @returns Array\r\n */\r\n get getLanguageStringMetricOptions(): Array {\r\n return this.languageStringMetricOptions;\r\n }\r\n\r\n /**\r\n * Get language string unit options\r\n * @returns Array\r\n */\r\n get getLanguageStringUnitOptions(): Array {\r\n return this.languageStringUnitOptions;\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LANGUAGE_STRING_ERROR](error) {\r\n this.errors = { ...error };\r\n }\r\n\r\n @Mutation\r\n [Mutations.SET_LANGUAGE_STRING](languageString: ILanguageString) {\r\n this.languageString = languageString;\r\n }\r\n @Mutation\r\n [Mutations.SET_LANGUAGE_STRINGS](languageStrings: Array) {\r\n this.languageStrings = languageStrings;\r\n\r\n this.languageStringMetricOptions = languageStrings.filter(function (pl) {\r\n return pl.keyName.startsWith(\"Metric\");\r\n });\r\n\r\n this.languageStringUnitOptions = languageStrings.filter(function (pl) {\r\n return !pl.keyName.startsWith(\"Metric\");\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.SEARCH_LANGUAGE_STRINGS](param: ILanguageString) {\r\n ApiService.setHeader();\r\n const query = param.applicationName + \"/\" + param.language;\r\n return ApiService.get(Endpoints.Languages, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_LANGUAGE_STRINGS, data);\r\n })\r\n .catch(({ response }) => {\r\n if (!response) {\r\n this.context.commit(Mutations.SET_LANGUAGE_STRING_ERROR, [\r\n \"There was an error loading language strings.\",\r\n ]);\r\n return;\r\n }\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LANGUAGE_STRING_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.LOAD_LANGUAGE_STRING](param: ILanguageString) {\r\n ApiService.setHeader();\r\n const query =\r\n param.applicationName + \"/\" + param.language + \"/\" + param.keyName;\r\n return ApiService.get(Endpoints.Languages, query)\r\n .then(({ data }) => {\r\n this.context.commit(Mutations.SET_LANGUAGE_STRING, data);\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LANGUAGE_STRING_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.CREATE_LANGUAGE_STRING](param: ILanguageString) {\r\n this.context.commit(Mutations.SET_LANGUAGE_STRING_ERROR, []);\r\n const req = {\r\n applicationName: param.applicationName,\r\n keyName: param.keyName,\r\n language: param.language,\r\n content: param.content,\r\n } as any;\r\n ApiService.setHeader();\r\n return ApiService.post(Endpoints.Languages, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LANGUAGE_STRING_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.UPDATE_LANGUAGE_STRING](param: ILanguageString) {\r\n this.context.commit(Mutations.SET_LANGUAGE_STRING_ERROR, []);\r\n const req = {\r\n content: {\r\n op: \"Replace\",\r\n value: param.content,\r\n },\r\n } as any;\r\n ApiService.setHeader();\r\n const query =\r\n param.applicationName + \"/\" + param.language + \"/\" + param.keyName;\r\n return ApiService.patch(Endpoints.Languages + \"/\" + query, req)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LANGUAGE_STRING_ERROR, [message]);\r\n });\r\n }\r\n\r\n @Action\r\n [Actions.DELETE_LANGUAGE_STRING](param: ILanguageString) {\r\n this.context.commit(Mutations.SET_LANGUAGE_STRING_ERROR, []);\r\n ApiService.setHeader();\r\n const query =\r\n param.applicationName + \"/\" + param.language + \"/\" + param.keyName;\r\n return ApiService.delete(Endpoints.Languages, query)\r\n .then(({ data }) => {\r\n //Do nothing\r\n })\r\n .catch(({ response }) => {\r\n const message = getErrorMessage(response);\r\n this.context.commit(Mutations.SET_LANGUAGE_STRING_ERROR, [message]);\r\n });\r\n }\r\n}\r\n","import { createStore } from \"vuex\";\r\nimport { config } from \"vuex-module-decorators\";\r\nimport createPersistedState from \"vuex-persistedstate\";\r\n\r\nimport AuthModule from \"@/store/modules/AuthModule\";\r\nimport BodyModule from \"@/store/modules/BodyModule\";\r\nimport BreadcrumbsModule from \"@/store/modules/BreadcrumbsModule\";\r\nimport ConfigModule from \"@/store/modules/ConfigModule\";\r\nimport ResellerModule from \"@/store/modules/ResellerModule\";\r\nimport UserModule from \"@/store/modules/UserModule\";\r\nimport ClientModule from \"@/store/modules/ClientModule\";\r\nimport LocationModule from \"@/store/modules/LocationModule\";\r\nimport DeviceModule from \"@/store/modules/DeviceModule\";\r\nimport DevicePoolModule from \"@/store/modules/DevicePoolModule\";\r\nimport DeviceReadingModule from \"@/store/modules/DeviceReadingModule\";\r\nimport PinCodeModule from \"@/store/modules/PinCodeModule\";\r\nimport KpiModule from \"@/store/modules/KpiModule\";\r\nimport FileModule from \"@/store/modules/FileModule\";\r\nimport EmailModule from \"@/store/modules/EmailModule\";\r\nimport ModelSizeModule from \"@/store/modules/ModelSizeModule\";\r\nimport IndustryModule from \"@/store/modules/IndustryModule\";\r\nimport PinCodeTypeModule from \"@/store/modules/PinCodeTypeModule\";\r\nimport ChartModule from \"@/store/modules/ChartModule\";\r\nimport DocumentModule from \"@/store/modules/DocumentModule\";\r\nimport DeviceStatusModule from \"@/store/modules/DeviceStatusModule\";\r\nimport TimeZoneModule from \"@/store/modules/TimeZoneModule\";\r\nimport MeasurementStandardModule from \"@/store/modules/MeasurementStandardModule\";\r\nimport CountryProvinceModule from \"@/store/modules/CountryProvinceModule\";\r\nimport LanguageStringModule from \"@/store/modules/LanguageStringModule\";\r\nconfig.rawError = true;\r\n\r\nconst store = createStore({\r\n modules: {\r\n AuthModule,\r\n BodyModule,\r\n BreadcrumbsModule,\r\n ConfigModule,\r\n ResellerModule,\r\n UserModule,\r\n ClientModule,\r\n LocationModule,\r\n DeviceModule,\r\n DevicePoolModule,\r\n PinCodeModule,\r\n KpiModule,\r\n DeviceReadingModule,\r\n FileModule,\r\n EmailModule,\r\n ModelSizeModule,\r\n IndustryModule,\r\n PinCodeTypeModule,\r\n ChartModule,\r\n DocumentModule,\r\n DeviceStatusModule,\r\n TimeZoneModule,\r\n MeasurementStandardModule,\r\n CountryProvinceModule,\r\n LanguageStringModule,\r\n },\r\n plugins: [\r\n createPersistedState({\r\n key: \"ORCA\",\r\n storage: {\r\n getItem: (key) => window.sessionStorage.getItem(key),\r\n setItem: (key, value) => {\r\n if (value) {\r\n let obj = JSON.parse(value);\r\n delete (obj as any).DevicePoolModule; //Delete redundent module to prevent storage overflow.\r\n window.sessionStorage.setItem(key, JSON.stringify(obj));\r\n } else window.sessionStorage.setItem(key, value);\r\n },\r\n removeItem: (key) => window.sessionStorage.removeItem(key),\r\n },\r\n }),\r\n ],\r\n});\r\n\r\nexport default store;\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"57\":\"e334856d\",\"74\":\"4c36c44e\",\"236\":\"75a13d44\",\"240\":\"99a519e4\",\"249\":\"98b9222d\",\"268\":\"f885775a\",\"372\":\"770a3b5b\",\"374\":\"b5200f70\",\"379\":\"bac2121a\",\"416\":\"2ba294d7\",\"426\":\"64bc98e3\",\"429\":\"aefb88c3\",\"437\":\"376b189e\",\"448\":\"c90f795d\",\"492\":\"84baee51\",\"508\":\"0889bbe6\",\"514\":\"7d114283\",\"517\":\"59209997\",\"528\":\"77f0f88f\",\"539\":\"ec899313\",\"542\":\"259ee494\",\"599\":\"d6ab48df\",\"604\":\"f1ff64f5\",\"619\":\"872b51f8\",\"620\":\"a04148e9\",\"624\":\"8fe7cde0\",\"642\":\"88131b4d\",\"653\":\"5c6fc99b\",\"742\":\"94c62294\",\"745\":\"05c7485e\",\"797\":\"9b11b478\",\"804\":\"bef66386\",\"812\":\"898603ba\",\"821\":\"3d4f7cc3\",\"830\":\"66451fc1\",\"831\":\"9044588e\",\"856\":\"3cb0da2c\",\"947\":\"4adf590f\",\"960\":\"766da015\",\"992\":\"284878f6\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"orca.web:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\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\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkorca_web\"] = self[\"webpackChunkorca_web\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(90903); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["ElementStyleUtil","element","property","value","important","style","setProperty","attributeName","getPropertyValue","attibuteName","removeProperty","DataUtil","instance","key","data","instanceData","store","get","set","newMap","Map","delete","has","result","forEach","val","v","k","push","getObjectPropertyValueByKey","obj","map","Object","entries","hasOwnProperty","getUniqueIdWithPrefix","prefix","Math","floor","random","Date","getTime","toString","stringSnakeToCamel","str","replace","m","toUpperCase","toJSON","split","el","join","jsonStr","matched","substring","length","JSON","parse","DOMEventHandlerUtil","selector","eventName","callBack","eventId","e","targets","querySelectorAll","target","i","call","parentElement","addEventListener","funcFromStore","removeEventListener","calee","type","currentTarget","ElementAnimateUtil","from","to","duration","update","complete","easings","linear","t","b","c","d","change","loop","timestamp","time","start","window","requestAnimationFrame","performance","now","animationName","animateClasses","cssClass","classList","add","one","remove","offset","targetPos","getElementOffset","top","scrollPos","pageYOffset","document","documentElement","scrollTop","body","animate","scrollTo","getCSS","styleProp","defaultView","ownerDocument","toLowerCase","getComputedStyle","getCSSVariableValue","variableName","hex","trim","getElementActualCss","prop","cache","css","getAttribute","cssText","offsetWidth","offsetHeight","undefined","setAttribute","parseFloat","attributeValue","getElementActualHeight","getElementIndex","parentNode","children","getElementMatches","p","Element","prototype","f","matches","webkitMatchesSelector","tagName","getClientRects","left","rect","getBoundingClientRect","win","pageXOffset","getElementParents","s","this","item","parents","getHighestZindex","bufferNode","buffer","position","parseInt","isNaN","getScrollTop","scrollingElement","getViewPort","width","innerWidth","height","innerHeight","insertAfterElement","referenceNode","insertBefore","nextSibling","isVisibleElement","throttle","timer","func","delay","setTimeout","getElementChildren","childNodes","child","nodeType","getElementChild","slide","dir","speed","callback","calcHeight","calcPaddingTop","calcPaddingBottom","paddingTop","paddingBottom","display","overflow","slideUp","slideDown","getBreakpoint","breakpoint","getAttributeValueByBreakpoint","incomingAttr","resultKey","resultBreakpoint","EventHandlerUtil","name","metas","handlerId","meta","getEventMetasByName","setEventMetasByName","handerId","fired","getEventsMetaByHandlerId","setEventMetaByNameAndHandlerId","handler","setFiredByNameAndHandlerId","addEvent","removeEvent","defaultScrollTopOptions","ScrollTopComponent","constructor","_element","options","_scroll","preventDefault","_go","_getOption","pos","hasAttribute","removeAttribute","attr","String","optionName","option","assign","instanceUid","_handlers","elements","getInstance","querySelector","createInstances","CookieComponent","cookie","match","RegExp","decodeURIComponent","cookieOptions","path","expires","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","DrawerStore","instanceId","drawerComponentObj","defaultDrawerOptions","overlay","baseClass","overlayClass","direction","DrawerComponent","togglers","closers","toggleElement","getElementById","_toggle","closeElement","_hide","hasBaseClass","contains","bodyCanvasAttr","shown","lastWidth","_show","_deleteOverlay","_createOverlay","overlayElement","createElement","elementZIndex","overlayZindex","append","overlayClassOption","removeChild","_update","event","id","drawer","hide","elementId","oldInstances","getAllInstances","dr","closest","isShown","initGlobalHandlers","handleDismiss","hideAll","updateAll","defaultImageInputOptions","defaultImageInputQueires","componentName","instanseQuery","inputQuery","wrapperQuery","cancelQuery","removeQuery","hiddenQuery","ImageInputComponent","_options","_queries","inputElement","files","reader","FileReader","onload","wrapperElement","readAsDataURL","src","hiddenElement","queries","uid","cancelElement","removeElement","handlers","_change","_cancel","getInputElement","getElement","ImageInput","defaultScrollOptions","saveState","ScrollComponent","getOption","dependencies","wrappers","len","borderTop","borderBottom","getHeight","heightType","getHeightType","scrollHandler","cookieId","heghtType","resetHeight","destroyScrollHandler","setupHeight","setupScrollHandler","setupState","Function","getAutoHeight","hasInstace","scroll","resize","defaultStepperOptions","startIndex","animation","animationSpeed","animationNextClass","animationPreviousClass","StepperComponent","index","currentStepIndex","totatStepsNumber","passedStepIndex","refreshUI","btnNext","btnPrev","steps","stepDirection","_getStepDirection","content","state","isLastStep","isFirstStep","_goTo","goto","getNextStepIndex","getPrevStepIndex","getLastStepIndex","console","log","btnSubmit","initHandlers","stepper","StickyStore","stickyComponentObj","defaultStickyOptions","reverse","animationClass","StickyComponent","st","diff","releaseOffset","scrollHeight","enable","eventTriggerState","disable","lastScrollTop","dataStickyAttr","attrValueInStr","attrValue","zindex","widthTarget","targetElement","offsetLeft","instanceName","sticky","defaultToggleOptions","ToggleComponent","_isEnabled","_disable","_enable","attribute","elementTargetAttr","elementToggleAttr","toggle","defaultPasswordMeterOptions","minLength","checkUppercase","checkLowercase","checkDigit","checkChar","scoreHighlightClass","defaultPasswordMeterQueires","visibilityQuery","highlightQuery","PasswordMeterComponent","score","highlight","checkSteps","visibilityElement","highlightElement","check","visitbility","visibleIcon","hiddenIcon","typeAttr","focus","checkScore","checkLength","checkLowerCase","test","getCheckScore","count","items","slice","total","getScore","passwordMeter","SwapperStore","defaultSwapperOptions","mode","defaultSwapperQueires","attrQuery","SwapperComponent","parentSelector","prepend","place","defaultMenuOptions","dropdown","hoverTimeout","accordion","slideSpeed","expand","MenuComponent","triggerElement","_isTriggerElement","itemElement","sub","subItem","parentItem","parent","_getItemParentElement","unshift","placementOption","_getItemOption","placement","offsetValue","strategy","modifiers","flipVariations","_getItemChildElement","_getItemSubElement","_getCss","_getItemSubType","_getItemLinkElement","hideDropdowns","parentZindex","initDropdownPopper","appendChild","reference","attach","popper","createPopper","_getDropdownPopperConfig","destroy","destroyDropdownPopper","_hideAccordions","_hideDropdown","subElement","itemsToHide","itemToHide","_hideAccordion","_hasItemSub","removeClass","_reset","_isItemSubShown","_showDropdown","_showAccordion","_getItemElement","timeout","clearTimeout","_getItemChildElements","itemSubType","_click","_link","_dismiss","_mouseover","_mouseout","_getItemToggleElement","_getItemParentElements","_isItemParentShown","_isItemDropdownPermanent","_setTriggerElement","elementMenu","menu","menuData","subMenu","skip","getItemSubType","getItemSubElement","forceUpdate","menuItem","menuInstance","menuItems","menuObj","click","stopPropagation","link","dismiss","mouseover","mouseout","defaultSearchOptions","keypress","enter","layout","showOnFocus","defaultSearchQueires","SearchComponent","responsive","breakPointNum","show","charCode","keyCode","search","clear","responsiveFormMode","getResponsiveFormMode","contentElement","formElement","menuObject","processing","spinnerElement","clearElement","toolbarElement","_getElement","submitElement","resultsElement","suggestionElement","emptyElement","blur","input","on","getContentElement","Search","initializeComponents","reinitializeComponents","reinitializeScrollComponent","then","async","ApiService","app","vueInstance","use","VueAxios","axios","defaults","baseURL","process","interceptors","response","error","token","status","exp","JwtService","location","href","config","method","isRetry","Promise","resolve","retryError","reject","headers","common","resource","params","slug","head","post","put","patch","ID_TOKEN_KEY","ID_REFRESH_TOKEN_KEY","ID_ROLE_KEY","getToken","localStorage","getItem","saveTokens","refreshToken","setItem","destroyTokens","removeItem","parseJWT","base64Url","base64","jsonPayload","atob","charCodeAt","getRefreshToken","getRoleStr","saveRoleStr","role","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","_resolveComponent","_openBlock","_createBlock","defineComponent","setup","useStore","onMounted","commit","Mutations","nextTick","__exports__","routes","redirect","component","requiresAuth","h","RouterView","permissions","router","createRouter","history","createWebHashHistory","beforeEach","next","Actions","api_token","refresh_token","some","record","keys","permission","Permissions","includes","messages","en","dashboard","layoutBuilder","craft","pages","profile","profileOverview","projects","campaigns","documents","connections","wizards","horizontal","vertical","account","accountOverview","settings","authentication","basicFlow","signIn","signUp","passwordReset","multiStepSignUp","error404","error500","apps","chat","privateChat","groupChat","drawerChat","widgets","widgetsLists","widgetsStatistics","widgetsCharts","widgetsMixed","widgetsTables","widgetsFeeds","changelog","docsAndComponents","megaMenu","exampleLink","modals","general","inviteFriends","viewUsers","upgradePlan","shareAndEarn","forms","newTarget","newCard","newAddress","createAPIKey","twoFactorAuth","createApp","createAccount","documentation","components","resources","activity","customers","gettingStarted","customersListing","customerDetails","calendarApp","subscriptions","getStarted","subscriptionList","addSubscription","viewSubscription","partners","users","accountmanagers","administrators","clients","locations","digesters","pincodes","manualupload","toolsanddocuments","faqs","support","configuration","modelsizes","industries","pincodetypes","kpis","countries","provinces","languageStrings","es","de","ja","fr","i18n","createI18n","legacy","locale","globalInjection","initApexCharts","VueApexCharts","initInlineSvg","InlineSvg","initVeeValidate","configure","validateOnBlur","validateOnChange","validateOnInput","validateOnModelUpdate","App","ElementPlus","Notifications","CKEditor","VueDragscroll","vSelect","Datepicker","directive","vue3Debounce","lock","mount","Endpoints","getRoles","rolesStr","roles","err","getErrorMessage","errors","errorMessage","statusText","AuthModule","_a","_b","_c","_d","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","VuexModule","currentUser","user","currentAvatar","avatar","currentUserRole","userRole","isUserAuthenticated","isAuthenticated","getLoginErrors","getLoginToken","getValidKeyFlag","validKeyFlag","getPermission","userCanViewResellers","ResellerView","userCanCreateResellers","ResellerCreate","userCanEditResellers","ResellerEdit","userCanViewLocations","LocationView","userCanCreateLocations","LocationCreate","userCanEditLocations","LocationEdit","userCanEditLocationName","LocationEditName","userCanViewDevices","DeviceView","userCanCreateDevices","DeviceCreate","userCanEditDevices","DeviceEdit","userCanEditDeviceName","DeviceEditName","userCanViewClients","ClientView","userCanCreateClients","ClientCreate","userCanEditClients","ClientEdit","userCanCreatePinCodes","PinCodeCreate","userCanEditPinCodes","PinCodeEdit","userCanCreateKpi","KpiCreate","userCanEditKpi","KpiEdit","userCanCreateModelSizes","ModelSizeCreate","userCanEditModelSizes","ModelSizeEdit","userCanCreateIndustries","IndustryCreate","userCanEditIndustries","IndustryEdit","userCanCreateDevicePinTypes","DevicePinTypeCreate","userCanEditDevicePinTypes","DevicePinTypeEdit","userCanCreateResellerAdmin","ResellerAdminCreate","userCanCreateClientUser","ClientUserCreate","userCanCreateGlobalAdmin","GlobalAdminCreate","userCanCreateClientAdmin","ClientAdminCreate","userCanViewResellerDropdown","ViewResellerDropdown","userCanViewClientDropdown","ViewClientDropdown","userCanUpdateUserIsActive","UserIsActiveUpdate","userCanUpdateUserimitResellers","UserLimitResellersUpdate","userCanViewPinCodeGraphsUpdate","UserCanViewPinCodeGraphsUpdate","userCanViewPinCode","PinCodeView","userCanRestrictUserLocations","CanRestrictUserLocations","userCanEditGeography","CanEditGeography","userCanEditLanguageStrings","CanEditLanguageStrings","userCanViewNetWeightByDigesterGraph","CanViewNetWeightByDigesterGraph","payload","tokenObj","scope","roleId","flag","credentials","context","catch","message","userId","DeviceReadingUpload","email","query","refreshTokenMinutes","req","password","op","__decorate","Mutation","IUser","IUserAvatar","IPermission","Action","IChangePassword","Module","BodyModule","getClasses","classes","className","qulifiedName","BreadcrumbsModule","getBreadcrumbs","breadcrumbs","pageBreadcrumbPath","pageTitle","title","pageIsDetail","isDetail","themeName","themeVersion","demo","main","primaryColor","logo","dark","light","illustrations","loader","header","menuIcon","fixed","desktop","tabletAndMobile","toolbar","aside","theme","minimized","minimize","hoverable","footer","ConfigModule","layoutConfig","defaultValue","objectPath","initial","merge","ResellerModule","_u","_v","_w","_x","_y","_z","getReseller","reseller","getResellers","resellers","getResellerErrors","getResellerUsers","resellerUsers","getResellerAvailableUsers","resellerAvailableUsers","getResellerClients","resellerClients","getResellerAvailableClients","resellerAvailableClients","getResellerLocations","resellerLocations","getResellerDevices","resellerDevices","getResellerPinCodes","resellerPinCodes","getResellersReport","resellersReport","codes","j","devices","filter","dev","deviceId","deviceName","deviceSerialNumber","serialNumber","coun","countryId","country","prov","provinceId","stateProvinceId","province","description","report","param","clientId","phone","page","orderBy","orderByDirection","category","resellerId","supportPhoneNumber","supportEmail","isActive","ISearchResult","Array","IResellerSearchParam","IReseller","UserModule","getUserErrors","getUsers","getUser","getAvatar","getGlobalAdministratorRoleId","roleIdGlobalAdministrator","getResellerAdministratorRoleId","roleIdResellerAdministrator","getClientAdministratorRoleId","roleIdClientAdministrator","getClientUserRoleId","roleIdClientUser","getUserId","getUsersReport","usersReport","getGlobalAdminRoles","globalAdminRoles","getClientAdminRoles","clientAdminRoles","getManagerRoles","managerRoles","getClientUserRoles","userClientRoles","getUserSupport","userSupport","filteredItem","pl","firstName","lastName","emailAddress","timeZoneId","measurementStandardId","userTypeId","limitResellers","LimitLocations","limitLocations","offlineDeviceNotify","isAssignedToReseller","o","either","userCanChangeRole","canViewPinCodeGraphs","updateType","ISupport","IUserSearchParam","IUserAvatarExtension","ClientModule","getClientErrors","getClient","client","getClients","getClientPinCodes","clientPinCodes","getClientLocations","clientLocations","getClientUsers","clientUsers","getClientDevices","clientDevices","getClientKpis","clientKpis","getClientCustomKpi","clientCustomKpi","getClientsReport","clientsReport","accountNumber","industryId","hasReseller","kpiId","sortOrder","order","IClient","IClientSearchParam","LocationModule","getLocationErrors","getLocations","getLocation","getGeolocation","geolocation","getLimitLocationSet","limitLocationSet","getLimitLocations","getLocationsReport","locationsReport","getLocationDevices","locationDevices","geoInfo","a","locationId","address1","city","zipPostalCode","address2","ILocation","IGeolocation","ILocationSearchParam","DeviceModule","getDeviceErrors","getDevice","device","getDevicePinCodes","devicePinCodes","getDeviceDeviceReadings","deviceReadings","getLastDeviceReading","getRecentDevices","recentDevices","getDevicesReport","devicesReport","getManualUploadSerialNumber","manualUploadSerialNumber","getHideNegativeValues","hideNegativeValues","pinCodes","readings","piSerialNumber","deviceStatusId","isManual","modelSizeId","includeDivertedWeight","startDate","toISOString","endDate","IDevice","Boolean","IDeviceSearchParam","DevicePoolModule","getDevicePoolErrors","getDeviceIds","deviceIds","getDevices","x","DeviceReadingModule","getDeviceReadingErrors","getDeviceReadings","getDeviceReadingsReport","deviceReadingsReport","getTimezoneOffset","IDeviceReadingSearchParam","PinCodeModule","getPincodeErrors","getPincodes","getPincodesReport","pinCodesReport","dataSet","res","resellerName","cli","clientName","isGlobal","pinCode","devicePinTypeId","friendlyName","devicePinId","IPinCodeSearchParam","IPinCode","KpiModule","getKpiErrors","getKpiResult","kpiResult","getKpi","kpi","getKpis","getUnitOptions","unitOptions","getKpisReport","kpisReport","useMetric","expressionMetric","expressionImperial","unitOfMeasurementMetric","unitOfMeasurementImperial","icon","tooltip","IKpiSetting","IKpiSesult","IKpiResultSearchParam","IKpiSearchParam","FileModule","getFileErrors","share","queueName","EmailModule","getEmailErrors","IEmail","ModelSizeModule","getModelSizeErrors","getModelSize","modelSize","getModelSizes","modelSizes","IModelSize","IModelSizeSearchParam","IndustryModule","getIndustryErrors","getIndustry","industry","getIndustries","IIndustry","IIndustrySearchParam","PinCodeTypeModule","getPinCodeTypeErrors","getPinCodeType","pinCodeType","getPinCodeTypes","pinCodeTypes","pinCodeTypeId","IPinCodeType","IPinCodeTypeSearchParam","ChartModule","getChartErrors","getMonthlyNetWeightByPinCodeResult","monthlyNetWeightByPinCodeResult","getMonthlyNetWeightByLocationResult","monthlyNetWeightByLocationResult","getTotalNetWeightByPinCodeResult","totalNetWeightByPinCodeResult","getTotalNetWeightByClientResult","totalNetWeightByClientResult","getTotalNetWeightByResellerResult","totalNetWeightByResellerResult","getTotalNetWeightByLocationResult","totalNetWeightByLocationResult","getTotalNetWeightByDeviceResult","totalNetWeightByDeviceResult","locationIds","groupByFriendlyName","IChartResult","IChartResponse","IChartSearchParam","DocumentModule","getDocumentErrors","manualName","atData","Uint8Array","blob","Blob","url","URL","createObjectURL","DeviceStatusModule","getDeviceStatusErrors","getDeviceStatuses","deviceStatuses","statuses","TimeZoneModule","getTimeZoneErrors","getTimeZones","timeZones","MeasurementStandardModule","getMeasurementStandardErrors","getMeasurementStandards","measurementStandards","getMeasurementMetricId","measurementMetricId","CountryProvinceModule","getCountryProvinceErrors","getCountries","getCountry","getProvinces","getAllProvinces","allProvinces","getProvince","getFilteredProvinces","filteredProvinces","pronvince","parentKey","lookupValue","altValue","ICountry","ICountrySearchParam","IProvinceSearchParam","IProvince","LanguageStringModule","getLanguageStringErrors","getLanguageString","languageString","getLanguageStrings","getLanguageStringMetricOptions","languageStringMetricOptions","getLanguageStringUnitOptions","languageStringUnitOptions","keyName","startsWith","applicationName","language","ILanguageString","createStore","modules","plugins","createPersistedState","storage","sessionStorage","stringify","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","amdO","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","splice","r","n","getter","__esModule","definition","defineProperty","enumerable","chunkId","all","reduce","promises","u","miniCssF","g","globalThis","hmd","create","Error","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","charset","nc","onScriptComplete","prev","onerror","doneFns","bind","Symbol","toStringTag","nmd","paths","installedChunks","installedChunkData","promise","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}