{"version":3,"file":"js/script-53a54515c628630eaf81.js","sources":["webpack:///webpack/bootstrap","webpack:///extras.js","webpack:///script.js","webpack:///components/alerts.js","webpack:///components/backdrop.js","webpack:///components/cards.js","webpack:///components/collapse.js","webpack:///components/customizer.js","webpack:///components/dark-mode.js","webpack:///components/extras-charts.js","webpack:///components/file-input.js","webpack:///components/fullscreen.js","webpack:///components/menu.js","webpack:///components/modal.js","webpack:///components/rating-stars.js","webpack:///components/show-password.js","webpack:///components/sidebar.js","webpack:///components/tabs.js","webpack:///components/tippy.js","webpack:///components/toasts.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./app/javascript/packs/script.js\");\n","document.addEventListener(\"DOMContentLoaded\", () => {\n // Carousel\n const carousel = document.getElementById(\"carousel-style-1\");\n if (carousel) {\n const dir = () => {\n if (document.dir == \"rtl\") {\n return \"rtl\";\n } else {\n return \"ltr\";\n }\n };\n\n new Glide(carousel, {\n direction: dir(),\n type: \"carousel\",\n perView: 4,\n gap: 20,\n breakpoints: {\n 640: {\n perView: 1,\n },\n 768: {\n perView: 2,\n },\n },\n }).mount();\n }\n\n // Editors\n // CKEditor\n const editor = document.getElementById(\"ckeditor\");\n if (editor) {\n ClassicEditor.create(editor);\n }\n\n // Sortable\n let element = null;\n\n element = document.getElementById(\"sortable-style-1\");\n if (element) {\n const sortable = Sortable.create(element, {\n animation: 150,\n });\n }\n\n element = document.getElementById(\"sortable-style-2\");\n if (element) {\n const sortable = Sortable.create(element, {\n handle: \".handle\",\n animation: 150,\n });\n }\n\n element = document.getElementById(\"sortable-style-3\");\n if (element) {\n const sortable = Sortable.create(element, {\n animation: 150,\n });\n }\n});\n","// Event delegation\nconst on = (selector, eventType, childSelector, eventHandler) => {\n const elements = document.querySelectorAll(selector);\n for (element of elements) {\n element.addEventListener(eventType, (eventOnElement) => {\n if (eventOnElement.target.closest(childSelector)) {\n eventHandler(eventOnElement);\n }\n });\n }\n};\n\n// AnimateCSS\nconst animateCSS = (element, animation, prefix = \"animate__\") => {\n return new Promise((resolve, reject) => {\n const animationName = `${prefix}${animation}`;\n const node = element;\n\n node.classList.add(`${prefix}animated`, `${prefix}faster`, animationName);\n\n const handleAnimationEnd = (event) => {\n event.stopPropagation();\n node.classList.remove(\n `${prefix}animated`,\n `${prefix}faster`,\n animationName\n );\n resolve(\"Animation Ended.\");\n };\n\n node.addEventListener(\"animationend\", handleAnimationEnd, { once: true });\n });\n};\n\n// Open Collapse\nconst openCollapse = (collapse, callback) => {\n setTimeout(() => {\n collapse.style.height = collapse.scrollHeight + \"px\";\n collapse.style.opacity = 1;\n }, 200);\n\n collapse.addEventListener(\n \"transitionend\",\n () => {\n collapse.classList.add(\"open\");\n\n collapse.style.removeProperty(\"height\");\n collapse.style.removeProperty(\"opacity\");\n\n if (typeof callback === \"function\") callback();\n },\n { once: true }\n );\n};\n\n// Close Collapse\nconst closeCollapse = (collapse, callback) => {\n collapse.style.overflowY = \"hidden\";\n collapse.style.height = collapse.scrollHeight + \"px\";\n\n setTimeout(() => {\n collapse.style.height = 0;\n collapse.style.opacity = 0;\n }, 200);\n\n collapse.addEventListener(\n \"transitionend\",\n () => {\n collapse.classList.remove(\"open\");\n\n collapse.style.removeProperty(\"overflow-y\");\n collapse.style.removeProperty(\"height\");\n collapse.style.removeProperty(\"opacity\");\n\n if (typeof callback === \"function\") callback();\n },\n { once: true }\n );\n};\n","// Alerts\nconst alerts = () => {\n // Close\n const closeAlert = (alert) => {\n alert.style.overflowY = \"hidden\";\n alert.style.height = alert.offsetHeight + \"px\";\n\n animateCSS(alert, \"fadeOut\").then(() => {\n alert.style.opacity = 0;\n alert.style.height = 0;\n alert.style.marginTop = 0;\n alert.style.marginBottom = 0;\n alert.style.paddingTop = 0;\n alert.style.paddingBottom = 0;\n alert.style.border = 0;\n });\n\n alert.addEventListener(\n \"transitionend\",\n () => {\n alert.parentNode ? alert.parentNode.removeChild(alert) : false;\n },\n { once: true }\n );\n };\n\n on(\".alert\", \"click\", '[data-dismiss=\"alert\"]', (event) => {\n const alert = event.target.closest(\".alert\");\n closeAlert(alert);\n });\n};\n\nalerts();\n","// Backdrop\n// Show\nconst showBackdrop = (workspace) => {\n if (document.querySelector(\".backdrop\")) return;\n\n document.body.classList.add(\"backdrop-show\");\n\n const backdrop = document.createElement(\"div\");\n if (workspace) {\n backdrop.setAttribute(\"class\", \"backdrop backdrop_workspace\");\n } else {\n backdrop.setAttribute(\"class\", \"backdrop\");\n }\n\n document.body.appendChild(backdrop);\n backdrop.classList.add(\"active\");\n};\n\n// Hide\nconst hideBackdrop = () => {\n backdropToRemove = document.querySelector(\".backdrop\");\n\n if (!backdropToRemove) return;\n\n document.body.classList.remove(\"backdrop-show\");\n\n backdropToRemove.classList.remove(\"active\");\n document.body.removeChild(backdropToRemove);\n};\n","// Cards\nconst cards = () => {\n // Toggle Card Selection\n const toggleCardSelection = (event) => {\n const card = event.target.closest(\".card\");\n card.classList.toggle(\"card_selected\");\n };\n\n // Toggle Row Selection\n const toggleRowSelection = (event) => {\n const row = event.target.closest(\"tr\");\n row.classList.toggle(\"row_selected\");\n };\n\n on(\"body\", \"click\", '[data-toggle=\"cardSelection\"]', (event) => {\n toggleCardSelection(event);\n });\n\n on(\"body\", \"click\", '[data-toggle=\"rowSelection\"]', (event) => {\n toggleRowSelection(event);\n });\n};\n\ncards();\n","// Collapse\nconst collapse = () => {\n const selector = '[data-toggle=\"collapse\"]';\n\n // Toggle Collapse\n const toggleCollapse = (collapseTrigger) => {\n collapseTrigger.classList.toggle(\"active\");\n\n // Collapse\n const collapses = document.querySelectorAll(collapseTrigger.dataset.target);\n collapses.forEach((collapse) => {\n if (collapse.classList.contains(\"open\")) {\n closeCollapse(collapse);\n } else {\n openCollapse(collapse);\n }\n });\n\n // Accordion\n const accordion = collapseTrigger.closest(\".accordion\");\n if (accordion) {\n const accordionTriggers = accordion.querySelectorAll(selector);\n accordionTriggers.forEach((accordionTrigger) => {\n if (accordionTrigger !== collapseTrigger) {\n accordionTrigger.classList.remove(\"active\");\n }\n });\n\n const accordions = accordion.querySelectorAll(\".collapse\");\n accordions.forEach((accordion) => {\n if (accordion.classList.contains(\"open\")) {\n closeCollapse(accordion);\n }\n });\n }\n };\n\n on(\"body\", \"click\", selector, (event) => {\n const collapseTrigger = event.target.closest(selector);\n toggleCollapse(collapseTrigger);\n });\n};\n\ncollapse();\n","// Customizer\nconst customizer = () => {\n const root = document.documentElement;\n\n const customizer = document.getElementById(\"customizer\");\n const menuBar = document.querySelector(\".menu-bar\");\n const menuItems = document.querySelector(\".menu-items\");\n\n if (!customizer) return;\n\n // Menu Types Options\n const menuTypes = [\n {\n id: \"default\",\n label: \"Default\",\n },\n {\n id: \"hidden\",\n label: \"Hidden\",\n },\n {\n id: \"icon-only\",\n label: \"Icon Only\",\n },\n {\n id: \"wide\",\n label: \"Wide\",\n },\n ];\n\n let menuTypesHTML = \"\";\n\n menuTypes.forEach((item) => {\n menuTypesHTML += `\n `;\n });\n\n const menuTypesContainer = document.getElementById(\"customizerMenuTypes\");\n\n menuTypesContainer.innerHTML = menuTypesHTML;\n\n // Theme Options\n const themes = [\n {\n id: \"default\",\n label: \"Sky\",\n color: \"#0284C7\",\n },\n {\n id: \"red\",\n label: \"Red\",\n color: \"#DC2626\",\n },\n {\n id: \"orange\",\n label: \"Orange\",\n color: \"#EA580C\",\n },\n {\n id: \"amber\",\n label: \"Amber\",\n color: \"#D97706\",\n },\n {\n id: \"yellow\",\n label: \"Yellow\",\n color: \"#CA8A04\",\n },\n {\n id: \"lime\",\n label: \"Lime\",\n color: \"#65A30D\",\n },\n {\n id: \"green\",\n label: \"Green\",\n color: \"#65A30D\",\n },\n {\n id: \"emerald\",\n label: \"Emerald\",\n color: \"#059669\",\n },\n {\n id: \"teal\",\n label: \"Teal\",\n color: \"#0D9488\",\n },\n {\n id: \"cyan\",\n label: \"Cyan\",\n color: \"#0891B2\",\n },\n {\n id: \"blue\",\n label: \"Blue\",\n color: \"#2563EB\",\n },\n {\n id: \"indigo\",\n label: \"Indigo\",\n color: \"#4F46E5\",\n },\n {\n id: \"violet\",\n label: \"Violet\",\n color: \"#7C3AED\",\n },\n {\n id: \"purple\",\n label: \"Purple\",\n color: \"#9333EA\",\n },\n {\n id: \"fuchsia\",\n label: \"Fuchsia\",\n color: \"#C026D3\",\n },\n {\n id: \"pink\",\n label: \"Pink\",\n color: \"#DB2777\",\n },\n {\n id: \"rose\",\n label: \"Rose\",\n color: \"#E11D48\",\n },\n ];\n\n let themesHTML = \"\";\n\n themes.forEach((item) => {\n themesHTML += `\n `;\n });\n\n const themesContainer = document.getElementById(\"customizerThemes\");\n\n themesContainer.innerHTML = themesHTML;\n\n // Grays Options\n const grays = [\n {\n id: \"default\",\n label: \"Pure\",\n color: \"#4B5563\",\n },\n {\n id: \"slate\",\n label: \"Slate\",\n color: \"#475569\",\n },\n {\n id: \"zinc\",\n label: \"Zinc\",\n color: \"#52525B\",\n },\n {\n id: \"neutral\",\n label: \"Neutral\",\n color: \"#525252\",\n },\n {\n id: \"stone\",\n label: \"Stone\",\n color: \"#57534E\",\n },\n ];\n\n let graysHTML = \"\";\n\n grays.forEach((item) => {\n graysHTML += `\n `;\n });\n\n const graysContainer = document.getElementById(\"customizerGrays\");\n\n graysContainer.innerHTML = graysHTML;\n\n // Fonts Options\n const fontsList = [\n {\n id: \"default\",\n heading: \"Nunito\",\n headingLabel: \"Nunito\",\n body: \"Nunito_Sans\",\n bodyLabel: \"Nunito Sans\",\n },\n {\n id: \"montserrat\",\n heading: \"Montserrat\",\n headingLabel: \"Montserrat\",\n body: \"Montserrat\",\n bodyLabel: \"Montserrat\",\n },\n {\n id: \"raleway\",\n heading: \"Raleway\",\n headingLabel: \"Raleway\",\n body: \"Raleway\",\n bodyLabel: \"Raleway\",\n },\n {\n id: \"poppins\",\n heading: \"Poppins\",\n headingLabel: \"Poppins\",\n body: \"Poppins\",\n bodyLabel: \"Poppins\",\n },\n {\n id: \"oswald\",\n heading: \"Oswald\",\n headingLabel: \"Oswald\",\n body: \"Oswald\",\n bodyLabel: \"Oswald\",\n },\n {\n id: \"roboto-condensed-roboto\",\n heading: \"Roboto Condensed\",\n headingLabel: \"Roboto Condensed\",\n body: \"Roboto\",\n bodyLabel: \"Roboto\",\n },\n {\n id: \"inter\",\n heading: \"Inter\",\n headingLabel: \"Inter\",\n body: \"Inter\",\n bodyLabel: \"Inter\",\n },\n {\n id: \"yantramanav\",\n heading: \"Yantramanav\",\n headingLabel: \"Yantramanav\",\n body: \"Yantramanav\",\n bodyLabel: \"Yantramanav\",\n },\n ];\n\n let fontsHTML = \"\";\n\n fontsList.forEach((item) => {\n fontsHTML += `\n `;\n });\n\n const fontsContainer = document.getElementById(\"customizerFonts\");\n\n fontsContainer.innerHTML = fontsHTML;\n\n // Check Settings\n const checkSettings = () => {\n // Dark Mode\n const scheme = localStorage.getItem(\"scheme\");\n\n const darkModeToggler = customizer.querySelector(\n '[data-toggle=\"dark-mode\"]'\n );\n\n if (scheme) {\n darkModeToggler.checked = true;\n } else {\n darkModeToggler.checked = false;\n }\n\n // RTL\n const dir = localStorage.getItem(\"dir\");\n\n if (dir) {\n document.dir = dir;\n\n const rtl = customizer.querySelector('[data-toggle=\"rtl\"]');\n\n if (dir === \"rtl\") {\n rtl.checked = true;\n } else {\n rtl.checked = false;\n }\n }\n\n // Branded Menu\n let brandedMenu = localStorage.getItem(\"brandedMenu\");\n\n const brandedMenuToggler = customizer.querySelector(\n '[data-toggle=\"branded-menu\"]'\n );\n\n if (brandedMenu && menuBar) {\n root.classList.add(\"menu_branded\");\n menuBar.classList.add(\"menu_branded\");\n\n brandedMenuToggler.checked = true;\n } else {\n brandedMenuToggler.checked = false;\n }\n\n // Menu Type\n let menuType = localStorage.getItem(\"menuType\");\n\n if (menuType) {\n menuType = menuType.replace(\"menu-\", \"\");\n } else {\n menuType = \"default\";\n }\n\n const menuTypeInput = customizer.querySelector(\n \"[data-value='\" + menuType + \"']\"\n );\n\n menuTypeInput.checked = true;\n\n // Theme\n let theme = localStorage.getItem(\"theme\");\n\n let themeToggler;\n\n if (theme) {\n root.classList.add(\"theme-\" + theme);\n\n themeToggler = customizer.querySelector(\n \"[data-toggle='theme'][data-value='\" + theme + \"']\"\n );\n } else {\n themeToggler = customizer.querySelector(\n \"[data-toggle='theme'][data-value='default']\"\n );\n }\n\n if (themeToggler) {\n themeToggler.classList.add(\"active\");\n }\n\n // Gray\n let gray = localStorage.getItem(\"gray\");\n\n let grayToggler;\n\n if (gray) {\n root.classList.add(\"gray-\" + gray);\n\n grayToggler = customizer.querySelector(\n \"[data-toggle='gray'][data-value='\" + gray + \"']\"\n );\n } else {\n grayToggler = customizer.querySelector(\n \"[data-toggle='gray'][data-value='default']\"\n );\n }\n\n if (grayToggler) {\n grayToggler.classList.add(\"active\");\n }\n\n // Font\n let font = localStorage.getItem(\"font\");\n\n let fontToggler;\n\n if (font) {\n root.classList.add(\"font-\" + font);\n\n fontToggler = customizer.querySelector(\n \"[data-toggle='font'][data-value='\" + font + \"']\"\n );\n } else {\n fontToggler = customizer.querySelector(\n \"[data-toggle='font'][data-value='default']\"\n );\n }\n\n if (fontToggler) {\n fontToggler.classList.add(\"active\");\n }\n };\n\n // Toggle Customizer\n const toggleCustomizer = () => {\n if (customizer.classList.contains(\"open\")) {\n customizer.classList.remove(\"open\");\n } else {\n checkSettings();\n\n customizer.classList.add(\"open\");\n }\n };\n\n // Randomizer\n const randomItem = (items) => {\n return items[Math.floor(Math.random() * items.length)];\n };\n\n const randomize = () => {\n const randomBoolean = Math.random() < 0.25; // True 25%\n\n if (randomBoolean) {\n toggleDarkMode();\n }\n\n if (randomBoolean) {\n toggleBrandedMenu();\n }\n\n if (randomBoolean) {\n switchMenuType(randomItem(menuTypes).id);\n }\n\n switchTheme(randomItem(themes).id);\n switchGray(randomItem(grays).id);\n switchFonts(randomItem(fontsList).id);\n };\n\n // Toggle Dark Mode\n const toggleDarkMode = () => {\n const darkModeToggler = document.getElementById(\"darkModeToggler\");\n darkModeToggler.click();\n };\n\n // Toggle RTL\n const toggleRTL = () => {\n if (document.dir === \"ltr\") {\n document.dir = \"rtl\";\n localStorage.setItem(\"dir\", \"rtl\");\n } else {\n document.dir = \"ltr\";\n localStorage.setItem(\"dir\", \"ltr\");\n }\n };\n\n // Toggle Branded Menu\n const toggleBrandedMenu = () => {\n if (root.classList.contains(\"menu_branded\")) {\n root.classList.remove(\"menu_branded\");\n menuBar.classList.remove(\"menu_branded\");\n\n localStorage.removeItem(\"brandedMenu\");\n } else {\n root.classList.add(\"menu_branded\");\n menuBar.classList.add(\"menu_branded\");\n\n localStorage.setItem(\"brandedMenu\", \"menu_branded\");\n }\n };\n\n // Switch Menu Type\n const switchMenuType = (id) => {\n const openMenu = menuBar.querySelector(\".menu-detail.open\");\n\n root.classList.remove(\"menu-icon-only\");\n menuBar.classList.remove(\"menu-icon-only\");\n\n root.classList.remove(\"menu-wide\");\n menuBar.classList.remove(\"menu-wide\");\n deactivateWide();\n\n root.classList.remove(\"menu-hidden\");\n menuBar.classList.remove(\"menu-hidden\");\n\n switch (id) {\n case \"icon-only\":\n root.classList.add(\"menu-icon-only\");\n menuBar.classList.add(\"menu-icon-only\");\n localStorage.setItem(\"menuType\", \"menu-icon-only\");\n\n if (openMenu) {\n showBackdrop(true);\n }\n\n break;\n case \"wide\":\n root.classList.add(\"menu-wide\");\n menuBar.classList.add(\"menu-wide\");\n localStorage.setItem(\"menuType\", \"menu-wide\");\n\n activateWide();\n\n if (openMenu) {\n hideBackdrop();\n }\n\n break;\n case \"hidden\":\n root.classList.add(\"menu-hidden\");\n menuBar.classList.add(\"menu-hidden\");\n localStorage.setItem(\"menuType\", \"menu-hidden\");\n\n hideMenuDetail();\n\n break;\n default:\n localStorage.removeItem(\"menuType\");\n\n if (openMenu) {\n showBackdrop(true);\n }\n }\n };\n\n // Activate Wide\n const activateWide = () => {\n menuBar.querySelector(\".menu-header\").classList.remove(\"hidden\");\n\n menuBar.querySelectorAll(\".menu-items .link\").forEach((menuLink) => {\n const target = menuLink.dataset.target;\n\n const selectedMenu = menuBar.querySelector(\".menu-detail\" + target);\n if (selectedMenu) {\n selectedMenu.classList.add(\"collapse\");\n menuLink.setAttribute(\"data-toggle\", \"collapse\");\n menuLink.after(selectedMenu);\n }\n });\n };\n\n // Deactivate Wide\n const deactivateWide = () => {\n root.classList.remove(\"menu-wide\");\n menuBar.classList.remove(\"menu-wide\");\n\n menuBar.querySelector(\".menu-header\").classList.add(\"hidden\");\n\n menuBar.querySelectorAll(\".menu-items .link\").forEach((menuLink) => {\n const target = menuLink.dataset.target;\n\n const selectedMenu = menuBar.querySelector(\".menu-detail\" + target);\n if (selectedMenu) {\n selectedMenu.classList.remove(\"collapse\");\n menuLink.removeAttribute(\"data-toggle\", \"collapse\");\n menuItems.after(selectedMenu);\n }\n });\n };\n\n // Hide Menu Detail\n const hideMenuDetail = () => {\n menuBar.querySelectorAll(\".menu-detail.open\").forEach((menuDetail) => {\n hideBackdrop();\n\n if (!menuBar.classList.contains(\"menu-wide\")) {\n menuDetail.classList.remove(\"open\");\n }\n });\n };\n\n // Switch Theme\n const switchTheme = (id) => {\n customizer\n .querySelectorAll(\"[data-toggle='theme']\")\n .forEach((themeTogger) => {\n themeTogger.classList.remove(\"active\");\n });\n\n const themeToggler = customizer.querySelector(\n \"[data-toggle='theme'][data-value='\" + id + \"']\"\n );\n\n themeToggler.classList.add(\"active\");\n\n root.classList.forEach((value) => {\n if (value.startsWith(\"theme-\")) {\n root.classList.remove(value);\n }\n });\n\n if (id == \"default\") {\n localStorage.removeItem(\"theme\");\n } else {\n root.classList.add(\"theme-\" + id);\n localStorage.setItem(\"theme\", id);\n }\n\n const event = new Event(\"ThemeChanged\");\n document.dispatchEvent(event);\n };\n\n // Switch Gray\n const switchGray = (id) => {\n customizer\n .querySelectorAll(\"[data-toggle='gray']\")\n .forEach((grayTogger) => {\n grayTogger.classList.remove(\"active\");\n });\n\n const grayToggler = customizer.querySelector(\n \"[data-toggle='gray'][data-value='\" + id + \"']\"\n );\n\n grayToggler.classList.add(\"active\");\n\n root.classList.forEach((value) => {\n if (value.startsWith(\"gray-\")) {\n root.classList.remove(value);\n }\n });\n\n if (id == \"default\") {\n localStorage.removeItem(\"gray\");\n } else {\n root.classList.add(\"gray-\" + id);\n localStorage.setItem(\"gray\", id);\n }\n\n const event = new Event(\"ThemeChanged\");\n document.dispatchEvent(event);\n };\n\n // Switch Fonts\n const switchFonts = (id) => {\n customizer\n .querySelectorAll(\"[data-toggle='font']\")\n .forEach((fontTogger) => {\n fontTogger.classList.remove(\"active\");\n });\n\n const fontToggler = customizer.querySelector(\n \"[data-toggle='font'][data-value='\" + id + \"']\"\n );\n\n fontToggler.classList.add(\"active\");\n\n root.classList.forEach((value) => {\n if (value.startsWith(\"font-\")) {\n root.classList.remove(value);\n }\n });\n\n if (id == \"default\") {\n localStorage.removeItem(\"font\");\n } else {\n root.classList.add(\"font-\" + id);\n localStorage.setItem(\"font\", id);\n }\n\n const event = new Event(\"ThemeChanged\");\n document.dispatchEvent(event);\n\n location.reload();\n };\n\n on(\"#customizer\", \"click\", '[data-toggle=\"customizer\"]', () => {\n toggleCustomizer();\n });\n\n on(\"#customizer\", \"click\", '[data-toggle=\"randomizer\"]', () => {\n randomize();\n });\n\n on(\"#customizer\", \"click\", '[data-toggle=\"dark-mode\"]', () => {\n toggleDarkMode();\n });\n\n on(\"#customizer\", \"click\", '[data-toggle=\"rtl\"]', () => {\n toggleRTL();\n });\n\n on(\"#customizer\", \"click\", '[data-toggle=\"branded-menu\"]', () => {\n toggleBrandedMenu();\n });\n\n on(\"#customizer\", \"click\", \"[data-toggle='menu-type']\", (event) => {\n const menuTypeToggler = event.target.closest(\"[data-toggle='menu-type']\");\n const id = menuTypeToggler.dataset.value;\n switchMenuType(id);\n });\n\n on(\"#customizer\", \"click\", '[data-toggle=\"theme\"]', (event) => {\n const themeToggler = event.target.closest(\"[data-toggle='theme']\");\n const id = themeToggler.dataset.value;\n switchTheme(id);\n });\n\n on(\"#customizer\", \"click\", '[data-toggle=\"gray\"]', (event) => {\n const grayToggler = event.target.closest(\"[data-toggle='gray']\");\n const id = grayToggler.dataset.value;\n switchGray(id);\n });\n\n on(\"#customizer\", \"click\", '[data-toggle=\"font\"]', (event) => {\n const fontToggler = event.target.closest(\"[data-toggle='font']\");\n const id = fontToggler.dataset.value;\n switchFonts(id);\n });\n\n checkSettings();\n};\n\ncustomizer();\n","// Dark Mode\nconst darkMode = () => {\n const root = document.documentElement;\n\n const darkModeToggler = document.getElementById(\"darkModeToggler\");\n\n if (!darkModeToggler) return;\n\n const scheme = localStorage.getItem(\"scheme\");\n\n if (scheme) {\n root.classList.add(scheme);\n }\n\n if (scheme === \"dark\" && darkModeToggler) {\n darkModeToggler.checked = \"checked\";\n }\n\n // Enable Dark Mode\n const enableDarkMode = () => {\n root.classList.remove(\"light\");\n root.classList.add(\"dark\");\n localStorage.setItem(\"scheme\", \"dark\");\n };\n\n // Disable Dark Mode\n const disableDarkMode = () => {\n root.classList.remove(\"dark\");\n root.classList.add(\"light\");\n localStorage.removeItem(\"scheme\");\n };\n\n // Check Dark Mode\n const checkDarkMode = () => {\n if (root.classList.contains(\"dark\")) {\n return true;\n } else {\n return false;\n }\n };\n\n on(\"body\", \"change\", \"#darkModeToggler\", () => {\n if (checkDarkMode()) {\n disableDarkMode();\n } else {\n enableDarkMode();\n }\n });\n};\n\ndarkMode();\n","if (typeof Chart !== \"undefined\") {\n // Colors\n let colors = {};\n let fonts = {};\n\n const style = getComputedStyle(document.body);\n\n colors.primary = style.getPropertyValue(\"--color-primary\");\n colors.text = style.getPropertyValue(\"--color-text-normal\");\n fonts.body = style.getPropertyValue(\"--font-body\");\n\n // On Theme Change\n document.addEventListener(\"ThemeChanged\", () => {\n colors.primary = style.getPropertyValue(\"--color-primary\");\n });\n\n // Tooltips Options\n const tooltipOptions = {\n backgroundColor: \"white\",\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 0.5,\n bodyColor: \"rgb(\" + colors.text + \")\",\n bodySpacing: 8,\n cornerRadius: 4,\n padding: 16,\n titleColor: \"rgb(\" + colors.primary + \")\",\n };\n\n // Chart defaults\n Chart.defaults.color = \"rgb(\" + colors.text + \")\";\n Chart.defaults.font.family = fonts.body;\n\n // REGISTER CHART TYPES\n // Line with shadow element\n class LineWithShadowElement extends Chart.elements.LineElement {\n draw(ctx) {\n const originalStroke = ctx.stroke;\n\n ctx.stroke = function () {\n ctx.save();\n ctx.shadowColor = \"rgba(0, 0, 0, 0.25)\";\n ctx.shadowBlur = 8;\n ctx.shadowOffsetX = 0;\n ctx.shadowOffsetY = 4;\n originalStroke.apply(this, arguments);\n ctx.restore();\n };\n\n Chart.elements.LineElement.prototype.draw.apply(this, arguments);\n }\n }\n\n LineWithShadowElement.id = \"lineWithShadowElement\";\n\n Chart.register(LineWithShadowElement);\n\n // Line with shadow\n class LineWithShadow extends Chart.controllers.line {}\n\n LineWithShadow.id = \"lineWithShadow\";\n LineWithShadow.defaults = {\n datasetElementType: \"lineWithShadowElement\",\n };\n\n Chart.register(LineWithShadow);\n\n // Bar with shadow\n class BarWithShadow extends Chart.controllers.bar {\n draw(ease) {\n const ctx = this.chart.ctx;\n\n const originalStroke = ctx.stroke;\n\n ctx.stroke = function () {\n ctx.save();\n ctx.shadowColor = \"rgba(0, 0, 0, 0.25)\";\n ctx.shadowBlur = 8;\n ctx.shadowOffsetX = 0;\n ctx.shadowOffsetY = 4;\n originalStroke.apply(this, arguments);\n ctx.restore();\n };\n\n Chart.controllers.bar.prototype.draw.call(this, ease);\n ctx.save();\n ctx.shadowColor = \"rgba(0, 0, 0, 0.25)\";\n ctx.shadowBlur = 8;\n ctx.shadowOffsetX = 0;\n ctx.shadowOffsetY = 4;\n Chart.controllers.bar.prototype.draw.apply(this, arguments);\n ctx.restore();\n }\n }\n\n BarWithShadow.id = \"barWithShadow\";\n\n Chart.register(BarWithShadow);\n\n // Pie with shadow\n class PieWithShadow extends Chart.controllers.pie {}\n\n PieWithShadow.id = \"pieWithShadow\";\n PieWithShadow.defaults = {\n datasetElementType: \"lineWithShadowElement\",\n };\n\n Chart.register(PieWithShadow);\n\n // Doughnut with shadow\n class DoughnutWithShadow extends Chart.controllers.doughnut {}\n\n DoughnutWithShadow.id = \"doughnutWithShadow\";\n DoughnutWithShadow.defaults = {\n datasetElementType: \"lineWithShadowElement\",\n };\n\n Chart.register(DoughnutWithShadow);\n\n // Radar with shadow\n class RadarWithShadow extends Chart.controllers.radar {}\n\n RadarWithShadow.id = \"radarWithShadow\";\n RadarWithShadow.defaults = {\n datasetElementType: \"lineWithShadowElement\",\n };\n\n Chart.register(RadarWithShadow);\n\n // PolarArea with shadow\n class PolarAreaWithShadow extends Chart.controllers.polarArea {}\n\n PolarAreaWithShadow.id = \"polarAreaWithShadow\";\n PolarAreaWithShadow.defaults = {\n datasetElementType: \"lineWithShadowElement\",\n };\n\n Chart.register(PolarAreaWithShadow);\n\n // Line with annotation\n class LineWithAnnotation extends Chart.controllers.line {\n draw(ease) {\n const ctx = this.chart.ctx;\n\n Chart.controllers.line.prototype.draw.call(this, ease);\n\n if (this.chart.tooltip._active && this.chart.tooltip._active.length) {\n const activePoint = this.chart.tooltip._active[0];\n const x = activePoint.element.x;\n const topY = this.chart.scales[\"y\"].top;\n const bottomY = this.chart.scales[\"y\"].bottom;\n\n ctx.save();\n ctx.beginPath();\n ctx.moveTo(x, topY);\n ctx.lineTo(x, bottomY);\n ctx.lineWidth = 1;\n ctx.stroke();\n ctx.restore();\n }\n }\n }\n\n LineWithAnnotation.id = \"lineWithAnnotation\";\n\n Chart.register(LineWithAnnotation);\n\n // Line with annotation and shadow\n class LineWithAnnotationAndShadow extends Chart.controllers.line {\n draw(ease) {\n const ctx = this.chart.ctx;\n\n Chart.controllers.line.prototype.draw.call(this, ease);\n\n if (this.chart.tooltip._active && this.chart.tooltip._active.length) {\n const activePoint = this.chart.tooltip._active[0];\n const x = activePoint.element.x;\n const topY = this.chart.scales[\"y\"].top;\n const bottomY = this.chart.scales[\"y\"].bottom;\n\n ctx.save();\n ctx.beginPath();\n ctx.moveTo(x, topY);\n ctx.lineTo(x, bottomY);\n ctx.lineWidth = 1;\n ctx.stroke();\n ctx.restore();\n }\n }\n }\n\n LineWithAnnotationAndShadow.id = \"lineWithAnnotationAndShadow\";\n LineWithAnnotationAndShadow.defaults = {\n datasetElementType: \"lineWithShadowElement\",\n };\n\n Chart.register(LineWithAnnotationAndShadow);\n\n // CHARTS\n let ctx = \"\";\n\n // DASHBOARD\n // Visitors chart\n ctx = document.getElementById(\"visitorsChart\");\n\n if (ctx) {\n ctx = ctx.getContext(\"2d\");\n\n let gradientBackground = ctx.createLinearGradient(0, 0, 0, 450);\n gradientBackground.addColorStop(0, \"rgb(\" + colors.primary + \"/ .5)\");\n gradientBackground.addColorStop(0.75, \"rgb(\" + colors.primary + \"/ 0)\");\n\n var visitorsChart = new Chart(ctx, {\n type: \"lineWithShadow\",\n data: {\n labels: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n datasets: [\n {\n data: [6.25, 7.5, 10, 7.5, 10, 12.5, 10, 12.5, 10, 12.5, 15, 16.25],\n backgroundColor: \"rgb(\" + colors.primary + \"/ .1)\",\n // backgroundColor: gradientBackground,\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n fill: true,\n pointBackgroundColor: \"white\",\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 2,\n pointRadius: 4,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverBorderWidth: 2,\n pointHoverRadius: 6,\n tension: 0.5,\n },\n ],\n },\n options: {\n plugins: {\n legend: {\n display: false,\n },\n tooltip: tooltipOptions,\n },\n scales: {\n y: {\n grid: {\n display: true,\n drawBorder: false,\n },\n min: 0,\n max: 20,\n ticks: {\n stepSize: 5,\n },\n },\n x: {\n grid: {\n display: false,\n },\n },\n },\n },\n });\n }\n\n // On Theme Change\n document.addEventListener(\"ThemeChanged\", () => {\n if (visitorsChart) {\n const datasets = visitorsChart.data.datasets[0];\n\n datasets.backgroundColor = \"rgb(\" + colors.primary + \"/ .1)\";\n datasets.borderColor = \"rgb(\" + colors.primary + \")\";\n datasets.pointBorderColor = \"rgb(\" + colors.primary + \")\";\n datasets.pointHoverBackgroundColor = \"rgb(\" + colors.primary + \")\";\n\n visitorsChart.options.plugins.tooltip.borderColor =\n \"rgb(\" + colors.primary + \")\";\n visitorsChart.options.plugins.tooltip.titleColor =\n \"rgb(\" + colors.primary + \")\";\n\n visitorsChart.update();\n }\n });\n\n // Categories chart\n ctx = document.getElementById(\"categoriesChart\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n var categoriesChart = new Chart(ctx, {\n type: \"polarAreaWithShadow\",\n data: {\n labels: [\"Potatoes\", \"Tomatoes\", \"Onions\"],\n datasets: [\n {\n data: [25, 10, 15],\n backgroundColor: [\n \"rgb(\" + colors.primary + \"/ .1)\",\n \"rgb(\" + colors.primary + \"/ .5)\",\n \"rgb(\" + colors.primary + \"/ .25)\",\n ],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 20,\n },\n },\n tooltip: tooltipOptions,\n },\n scales: {\n r: {\n ticks: {\n display: false,\n },\n },\n },\n layout: {\n padding: 5,\n },\n },\n });\n }\n\n // On Theme Change\n document.addEventListener(\"ThemeChanged\", () => {\n if (categoriesChart) {\n const datasets = categoriesChart.data.datasets[0];\n\n datasets.backgroundColor = [\n \"rgb(\" + colors.primary + \"/ .1)\",\n \"rgb(\" + colors.primary + \"/ .5)\",\n \"rgb(\" + colors.primary + \"/ .25)\",\n ];\n datasets.borderColor = \"rgb(\" + colors.primary + \")\";\n\n categoriesChart.options.plugins.tooltip.borderColor =\n \"rgb(\" + colors.primary + \")\";\n categoriesChart.options.plugins.tooltip.titleColor =\n \"rgb(\" + colors.primary + \")\";\n\n categoriesChart.update();\n }\n });\n\n // CHARTS\n // Area chart\n ctx = document.getElementById(\"areaChart\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"line\",\n data: {\n labels: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\"],\n datasets: [\n {\n data: [5, 10, 15, 10, 15, 10],\n backgroundColor: \"rgb(\" + colors.primary + \"/ .1)\",\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n fill: true,\n pointBackgroundColor: \"white\",\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 2,\n pointRadius: 4,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverBorderWidth: 2,\n pointHoverRadius: 6,\n tension: 0.5,\n },\n ],\n },\n options: {\n plugins: {\n legend: {\n display: false,\n },\n tooltip: tooltipOptions,\n },\n scales: {\n y: {\n grid: {\n display: true,\n drawBorder: false,\n },\n min: 0,\n max: 20,\n ticks: {\n stepSize: 5,\n },\n },\n x: {\n grid: {\n display: false,\n },\n },\n },\n },\n });\n }\n\n // Area chart with shadow\n ctx = document.getElementById(\"areaChartWithShadow\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"lineWithShadow\",\n data: {\n labels: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\"],\n datasets: [\n {\n data: [5, 10, 15, 10, 15, 10],\n backgroundColor: \"rgb(\" + colors.primary + \"/ .1)\",\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n fill: true,\n pointBackgroundColor: \"white\",\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 2,\n pointRadius: 4,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverBorderWidth: 2,\n pointHoverRadius: 6,\n tension: 0.5,\n },\n ],\n },\n options: {\n plugins: {\n legend: {\n display: false,\n },\n tooltip: tooltipOptions,\n },\n scales: {\n y: {\n grid: {\n display: true,\n drawBorder: false,\n },\n min: 0,\n max: 20,\n ticks: {\n stepSize: 5,\n },\n },\n x: {\n grid: {\n display: false,\n },\n },\n },\n },\n });\n }\n\n // Bar chart\n ctx = document.getElementById(\"barChart\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"bar\",\n data: {\n labels: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\"],\n datasets: [\n {\n label: \"Potatoes\",\n data: [5, 10, 15, 10, 15, 10],\n backgroundColor: \"rgb(\" + colors.primary + \"/ .1)\",\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n },\n {\n label: \"Tomatoes\",\n data: [7.5, 10, 17.5, 15, 12.5, 5],\n backgroundColor: \"rgb(\" + colors.primary + \"/ .5)\",\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n },\n ],\n },\n options: {\n plugins: {\n legend: {\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 20,\n },\n },\n tooltip: tooltipOptions,\n },\n scales: {\n y: {\n grid: {\n display: true,\n drawBorder: false,\n },\n min: 0,\n max: 20,\n ticks: {\n stepSize: 5,\n },\n },\n x: {\n grid: {\n display: false,\n },\n },\n },\n },\n });\n }\n\n // Bar chart with shadow\n ctx = document.getElementById(\"barChartWithShadow\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"barWithShadow\",\n data: {\n labels: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\"],\n datasets: [\n {\n label: \"Potatoes\",\n data: [5, 10, 15, 10, 15, 10],\n backgroundColor: \"rgb(\" + colors.primary + \"/ .1)\",\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n },\n {\n label: \"Tomatoes\",\n data: [7.5, 10, 17.5, 15, 12.5, 5],\n backgroundColor: \"rgb(\" + colors.primary + \"/ .5)\",\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n },\n ],\n },\n options: {\n plugins: {\n legend: {\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 20,\n },\n },\n tooltip: tooltipOptions,\n },\n scales: {\n y: {\n grid: {\n display: true,\n drawBorder: false,\n },\n min: 0,\n max: 20,\n ticks: {\n stepSize: 5,\n },\n },\n x: {\n grid: {\n display: false,\n },\n },\n },\n },\n });\n }\n\n // Line chart\n ctx = document.getElementById(\"lineChart\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"line\",\n data: {\n labels: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\"],\n datasets: [\n {\n data: [5, 10, 15, 10, 15, 10],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n pointBackgroundColor: \"white\",\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 2,\n pointRadius: 6,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverRadius: 8,\n pointHoverBorderWidth: 2,\n tension: 0.5,\n },\n ],\n },\n options: {\n plugins: {\n legend: {\n display: false,\n },\n tooltip: tooltipOptions,\n },\n scales: {\n y: {\n grid: {\n display: true,\n drawBorder: false,\n },\n min: 0,\n max: 20,\n ticks: {\n stepSize: 5,\n },\n },\n x: {\n grid: {\n display: false,\n },\n },\n },\n },\n });\n }\n\n // Line chart with shadow\n ctx = document.getElementById(\"lineChartWithShadow\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"lineWithShadow\",\n data: {\n labels: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\"],\n datasets: [\n {\n data: [5, 10, 15, 10, 15, 10],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n pointBackgroundColor: \"white\",\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 2,\n pointRadius: 6,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverRadius: 8,\n pointHoverBorderWidth: 2,\n tension: 0.5,\n },\n ],\n },\n options: {\n plugins: {\n legend: {\n display: false,\n },\n tooltip: tooltipOptions,\n },\n scales: {\n y: {\n grid: {\n display: true,\n drawBorder: false,\n },\n min: 0,\n max: 20,\n ticks: {\n stepSize: 5,\n },\n },\n x: {\n grid: {\n display: false,\n },\n },\n },\n },\n });\n }\n\n // Pie chart\n ctx = document.getElementById(\"pieChart\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"pie\",\n data: {\n labels: [\"Potatoes\", \"Tomatoes\", \"Onions\"],\n datasets: [\n {\n data: [25, 10, 15],\n backgroundColor: [\n \"rgb(\" + colors.primary + \"/ .1)\",\n \"rgb(\" + colors.primary + \"/ .5)\",\n \"rgb(\" + colors.primary + \"/ .25)\",\n ],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 20,\n },\n },\n tooltip: tooltipOptions,\n },\n },\n });\n }\n\n // Pie chart with shadow\n ctx = document.getElementById(\"pieChartWithShadow\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"pieWithShadow\",\n data: {\n labels: [\"Potatoes\", \"Tomatoes\", \"Onions\"],\n datasets: [\n {\n data: [25, 10, 15],\n backgroundColor: [\n \"rgb(\" + colors.primary + \"/ .1)\",\n \"rgb(\" + colors.primary + \"/ .5)\",\n \"rgb(\" + colors.primary + \"/ .25)\",\n ],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 20,\n },\n },\n tooltip: tooltipOptions,\n },\n },\n });\n }\n\n // Doughnut chart\n ctx = document.getElementById(\"doughnutChart\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"doughnut\",\n data: {\n labels: [\"Potatoes\", \"Tomatoes\", \"Onions\"],\n datasets: [\n {\n data: [25, 10, 15],\n backgroundColor: [\n \"rgb(\" + colors.primary + \"/ .1)\",\n \"rgb(\" + colors.primary + \"/ .5)\",\n \"rgb(\" + colors.primary + \"/ .25)\",\n ],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n cutout: \"75%\",\n plugins: {\n legend: {\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 20,\n },\n },\n tooltip: tooltipOptions,\n },\n },\n });\n }\n\n // Doughnut chart with shadow\n ctx = document.getElementById(\"doughnutChartWithShadow\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"doughnutWithShadow\",\n data: {\n labels: [\"Potatoes\", \"Tomatoes\", \"Onions\"],\n datasets: [\n {\n data: [25, 10, 15],\n backgroundColor: [\n \"rgb(\" + colors.primary + \"/ .1)\",\n \"rgb(\" + colors.primary + \"/ .5)\",\n \"rgb(\" + colors.primary + \"/ .25)\",\n ],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n cutout: \"75%\",\n plugins: {\n legend: {\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 20,\n },\n },\n tooltip: tooltipOptions,\n },\n },\n });\n }\n\n // Radar chart\n ctx = document.getElementById(\"radarChart\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"radar\",\n data: {\n labels: [\"Drinks\", \"Snacks\", \"Lunch\", \"Dinner\"],\n datasets: [\n {\n label: \"Potatoes\",\n data: [25, 25, 25, 25],\n backgroundColor: \"rgb(\" + colors.primary + \"/ .1)\",\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n fill: true,\n pointBackgroundColor: \"white\",\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 2,\n pointRadius: 4,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverBorderWidth: 2,\n pointHoverRadius: 6,\n },\n {\n label: \"Tomatoes\",\n data: [15, 15, 0, 15],\n backgroundColor: \"rgb(\" + colors.primary + \"/ .25\",\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n fill: true,\n pointBackgroundColor: \"white\",\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 2,\n pointRadius: 4,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverBorderWidth: 2,\n pointHoverRadius: 6,\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 20,\n },\n },\n tooltip: tooltipOptions,\n },\n scales: {\n r: {\n max: 30,\n ticks: {\n display: false,\n },\n },\n },\n },\n });\n }\n\n // Radar chart with shadow\n ctx = document.getElementById(\"radarChartWithShadow\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"radarWithShadow\",\n data: {\n labels: [\"Drinks\", \"Snacks\", \"Lunch\", \"Dinner\"],\n datasets: [\n {\n label: \"Potatoes\",\n data: [25, 25, 25, 25],\n backgroundColor: \"rgb(\" + colors.primary + \"/ .1)\",\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n fill: true,\n pointBackgroundColor: \"white\",\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 2,\n pointRadius: 4,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverBorderWidth: 2,\n pointHoverRadius: 6,\n },\n {\n label: \"Tomatoes\",\n data: [15, 15, 0, 15],\n backgroundColor: \"rgb(\" + colors.primary + \"/ .25\",\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n fill: true,\n pointBackgroundColor: \"white\",\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 2,\n pointRadius: 4,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverBorderWidth: 2,\n pointHoverRadius: 6,\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 20,\n },\n },\n tooltip: tooltipOptions,\n },\n scales: {\n r: {\n max: 30,\n ticks: {\n display: false,\n },\n },\n },\n },\n });\n }\n\n // Polar chart\n ctx = document.getElementById(\"polarChart\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"polarArea\",\n data: {\n labels: [\"Potatoes\", \"Tomatoes\", \"Onions\"],\n datasets: [\n {\n data: [25, 10, 15],\n backgroundColor: [\n \"rgb(\" + colors.primary + \"/ .1)\",\n \"rgb(\" + colors.primary + \"/ .5)\",\n \"rgb(\" + colors.primary + \"/ .25)\",\n ],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 20,\n },\n },\n tooltip: tooltipOptions,\n },\n scales: {\n r: {\n ticks: {\n display: false,\n },\n },\n },\n layout: {\n padding: 5,\n },\n },\n });\n }\n\n // Polar chart with shadow\n ctx = document.getElementById(\"polarChartWithShadow\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"polarAreaWithShadow\",\n data: {\n labels: [\"Potatoes\", \"Tomatoes\", \"Onions\"],\n datasets: [\n {\n data: [25, 10, 15],\n backgroundColor: [\n \"rgb(\" + colors.primary + \"/ .1)\",\n \"rgb(\" + colors.primary + \"/ .5)\",\n \"rgb(\" + colors.primary + \"/ .25)\",\n ],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: \"bottom\",\n labels: {\n usePointStyle: true,\n padding: 20,\n },\n },\n tooltip: tooltipOptions,\n },\n scales: {\n r: {\n ticks: {\n display: false,\n },\n },\n },\n layout: {\n padding: 5,\n },\n },\n });\n }\n\n // Line with annotation plugin\n const lineWithAnnotationPlugin = {\n afterInit: (chart) => {\n const info = chart.canvas.parentNode;\n\n const value = chart.data.datasets[0].data[0];\n const heading = chart.data.datasets[0].label;\n const label = chart.data.labels[0];\n\n info.querySelector(\".chart-heading\").innerHTML = heading;\n info.querySelector(\".chart-value\").innerHTML = \"$\" + value;\n info.querySelector(\".chart-label\").innerHTML = label;\n },\n };\n\n // Line with annotation options\n const lineWithAnnotationOptions = {\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n intersect: false,\n external: (ctx) => {\n const info = ctx.chart.canvas.parentNode;\n\n const value = ctx.tooltip.dataPoints[0].formattedValue;\n const heading = ctx.tooltip.dataPoints[0].dataset.label;\n const label = ctx.tooltip.dataPoints[0].label;\n\n info.querySelector(\".chart-heading\").innerHTML = heading;\n info.querySelector(\".chart-value\").innerHTML = \"$\" + value;\n info.querySelector(\".chart-label\").innerHTML = label;\n },\n },\n },\n scales: {\n y: {\n display: false,\n },\n\n x: {\n display: false,\n },\n },\n layout: {\n padding: {\n left: 5,\n right: 5,\n top: 10,\n bottom: 10,\n },\n },\n };\n\n // Line with annotation chart 1\n ctx = document.getElementById(\"lineWithAnnotationChart1\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n var lineWithAnnotationChart1 = new Chart(ctx, {\n type: \"lineWithAnnotation\",\n plugins: [lineWithAnnotationPlugin],\n data: {\n labels: [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n ],\n datasets: [\n {\n label: \"Total Orders\",\n data: [1250, 1300, 1550, 900, 1800, 1100, 1600],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 4,\n pointRadius: 2,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverRadius: 2,\n tension: 0.5,\n },\n ],\n },\n options: lineWithAnnotationOptions,\n });\n }\n\n // On Theme Change\n document.addEventListener(\"ThemeChanged\", () => {\n if (lineWithAnnotationChart1) {\n const datasets = lineWithAnnotationChart1.data.datasets[0];\n\n datasets.borderColor = \"rgb(\" + colors.primary + \")\";\n datasets.pointBorderColor = \"rgb(\" + colors.primary + \")\";\n datasets.pointHoverBackgroundColor = \"rgb(\" + colors.primary + \")\";\n\n lineWithAnnotationChart1.update();\n }\n });\n\n // Line with annotation chart 2\n ctx = document.getElementById(\"lineWithAnnotationChart2\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n var lineWithAnnotationChart2 = new Chart(ctx, {\n type: \"lineWithAnnotation\",\n plugins: [lineWithAnnotationPlugin],\n data: {\n labels: [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n ],\n datasets: [\n {\n label: \"Active Orders\",\n data: [100, 125, 75, 125, 100, 75, 75],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 4,\n pointRadius: 2,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverRadius: 2,\n tension: 0.5,\n },\n ],\n },\n options: lineWithAnnotationOptions,\n });\n }\n // On Theme Change\n document.addEventListener(\"ThemeChanged\", () => {\n if (lineWithAnnotationChart2) {\n const datasets = lineWithAnnotationChart2.data.datasets[0];\n\n datasets.borderColor = \"rgb(\" + colors.primary + \")\";\n datasets.pointBorderColor = \"rgb(\" + colors.primary + \")\";\n datasets.pointHoverBackgroundColor = \"rgb(\" + colors.primary + \")\";\n\n lineWithAnnotationChart2.update();\n }\n });\n\n // Line with annotation chart 3\n ctx = document.getElementById(\"lineWithAnnotationChart3\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n var lineWithAnnotationChart3 = new Chart(ctx, {\n type: \"lineWithAnnotation\",\n plugins: [lineWithAnnotationPlugin],\n data: {\n labels: [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n ],\n datasets: [\n {\n label: \"Pending Orders\",\n data: [300, 300, 600, 700, 600, 300, 300],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 4,\n pointRadius: 2,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverRadius: 2,\n tension: 0.5,\n },\n ],\n },\n options: lineWithAnnotationOptions,\n });\n }\n\n // On Theme Change\n document.addEventListener(\"ThemeChanged\", () => {\n if (lineWithAnnotationChart3) {\n const datasets = lineWithAnnotationChart3.data.datasets[0];\n\n datasets.borderColor = \"rgb(\" + colors.primary + \")\";\n datasets.pointBorderColor = \"rgb(\" + colors.primary + \")\";\n datasets.pointHoverBackgroundColor = \"rgb(\" + colors.primary + \")\";\n\n lineWithAnnotationChart3.update();\n }\n });\n\n // Line with annotation chart 4\n ctx = document.getElementById(\"lineWithAnnotationChart4\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n var lineWithAnnotationChart4 = new Chart(ctx, {\n type: \"lineWithAnnotation\",\n plugins: [lineWithAnnotationPlugin],\n data: {\n labels: [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n ],\n datasets: [\n {\n label: \"Shipped Orders\",\n data: [200, 400, 200, 500, 100, 100, 400],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 4,\n pointRadius: 2,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverRadius: 2,\n tension: 0.5,\n },\n ],\n },\n options: lineWithAnnotationOptions,\n });\n }\n\n // On Theme Change\n document.addEventListener(\"ThemeChanged\", () => {\n if (lineWithAnnotationChart4) {\n const datasets = lineWithAnnotationChart4.data.datasets[0];\n\n datasets.borderColor = \"rgb(\" + colors.primary + \")\";\n datasets.pointBorderColor = \"rgb(\" + colors.primary + \")\";\n datasets.pointHoverBackgroundColor = \"rgb(\" + colors.primary + \")\";\n\n lineWithAnnotationChart4.update();\n }\n });\n\n // Line with annotation and shadow chart 1\n ctx = document.getElementById(\"lineWithAnnotationAndShadowChart1\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"lineWithAnnotationAndShadow\",\n plugins: [lineWithAnnotationPlugin],\n data: {\n labels: [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n ],\n datasets: [\n {\n label: \"Total Orders\",\n data: [1250, 1300, 1550, 900, 1800, 1100, 1600],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 4,\n pointRadius: 2,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverRadius: 2,\n tension: 0.5,\n },\n ],\n },\n options: lineWithAnnotationOptions,\n });\n }\n\n // Line with annotation and shadow chart 2\n ctx = document.getElementById(\"lineWithAnnotationAndShadowChart2\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"lineWithAnnotationAndShadow\",\n plugins: [lineWithAnnotationPlugin],\n data: {\n labels: [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n ],\n datasets: [\n {\n label: \"Active Orders\",\n data: [100, 125, 75, 125, 100, 75, 75],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 4,\n pointRadius: 2,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverRadius: 2,\n tension: 0.5,\n },\n ],\n },\n options: lineWithAnnotationOptions,\n });\n }\n\n // Line with annotation and shadow chart 3\n ctx = document.getElementById(\"lineWithAnnotationAndShadowChart3\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"lineWithAnnotationAndShadow\",\n plugins: [lineWithAnnotationPlugin],\n data: {\n labels: [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n ],\n datasets: [\n {\n label: \"Pending Orders\",\n data: [300, 300, 600, 700, 600, 300, 300],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 4,\n pointRadius: 2,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverRadius: 2,\n tension: 0.5,\n },\n ],\n },\n options: lineWithAnnotationOptions,\n });\n }\n\n // Line with annotation and shadow chart 4\n ctx = document.getElementById(\"lineWithAnnotationAndShadowChart4\");\n\n if (ctx) {\n ctx.getContext(\"2d\");\n\n new Chart(ctx, {\n type: \"lineWithAnnotationAndShadow\",\n plugins: [lineWithAnnotationPlugin],\n data: {\n labels: [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n ],\n datasets: [\n {\n label: \"Shipped Orders\",\n data: [200, 400, 200, 500, 100, 100, 400],\n borderColor: \"rgb(\" + colors.primary + \")\",\n borderWidth: 2,\n pointBorderColor: \"rgb(\" + colors.primary + \")\",\n pointBorderWidth: 4,\n pointRadius: 2,\n pointHoverBackgroundColor: \"rgb(\" + colors.primary + \")\",\n pointHoverBorderColor: \"white\",\n pointHoverRadius: 2,\n tension: 0.5,\n },\n ],\n },\n options: lineWithAnnotationOptions,\n });\n }\n}\n","// Custom File Input\nconst customFileInput = () => {\n on(\"body\", \"change\", 'input[type=\"file\"]', (event) => {\n const filename = event.target.value.split(\"\\\\\").pop();\n event.target.parentNode.querySelector(\".file-name\").innerHTML = filename;\n });\n};\n\ncustomFileInput();\n","// Fullscreen\nconst fullscreen = () => {\n const fullScreenToggler = document.getElementById(\"fullScreenToggler\");\n\n if (!fullScreenToggler) return;\n\n const element = document.documentElement;\n\n // Open fullscreen\n const openFullscreen = () => {\n if (element.requestFullscreen) {\n element.requestFullscreen();\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen();\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen();\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen();\n }\n };\n\n // Close fullscreen\n const closeFullscreen = () => {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n };\n\n // Check fullscreen\n const checkFullscreen = () => {\n if (\n document.fullscreenElement ||\n document.webkitFullscreenElement ||\n document.mozFullScreenElement ||\n document.msFullscreenElement\n ) {\n return true;\n }\n\n return false;\n };\n\n // Toggle Button Icon\n const togglerBtnIcon = () => {\n if (fullScreenToggler.classList.contains(\"la-expand-arrows-alt\")) {\n fullScreenToggler.classList.remove(\"la-expand-arrows-alt\");\n fullScreenToggler.classList.add(\"la-compress-arrows-alt\");\n } else {\n fullScreenToggler.classList.remove(\"la-compress-arrows-alt\");\n fullScreenToggler.classList.add(\"la-expand-arrows-alt\");\n }\n };\n\n on(\"body\", \"click\", \"#fullScreenToggler\", () => {\n if (checkFullscreen()) {\n closeFullscreen();\n } else {\n openFullscreen();\n }\n\n togglerBtnIcon();\n });\n};\n\nfullscreen();\n","// Menu\nconst menu = () => {\n const root = document.documentElement;\n\n const menuBar = document.querySelector(\".menu-bar\");\n const menuItems = document.querySelector(\".menu-items\");\n\n if (!menuBar && !menuItems) return;\n\n // Check Settings\n const menuType = localStorage.getItem(\"menuType\");\n\n if (menuType) {\n root.classList.add(menuType);\n menuBar.classList.add(menuType);\n }\n\n // Open Menu Detail\n const openMenuDetail = (event) => {\n const menuLink = event.target.closest(\".link\");\n const menu = menuLink.dataset.target;\n const selectedMenu = menuBar.querySelector(menu);\n\n if (selectedMenu && !menuBar.classList.contains(\"menu-wide\")) {\n const isSelectedMenuOpen = selectedMenu.classList.contains(\"open\");\n\n hideMenuDetail();\n\n if (selectedMenu && !isSelectedMenuOpen) {\n showBackdrop(true);\n selectedMenu.classList.add(\"open\");\n } else {\n hideBackdrop();\n }\n }\n };\n\n // Hide Menu Detail\n const hideMenuDetail = () => {\n menuBar.querySelectorAll(\".menu-detail.open\").forEach((menuDetail) => {\n hideBackdrop();\n\n if (!menuBar.classList.contains(\"menu-wide\")) {\n menuDetail.classList.remove(\"open\");\n }\n });\n };\n\n // Open Menu\n const openMenu = () => {\n root.classList.remove(\"menu-hidden\");\n menuBar.classList.remove(\"menu-hidden\");\n };\n\n // Close Menu\n const closeMenu = () => {\n root.classList.add(\"menu-hidden\");\n menuBar.classList.add(\"menu-hidden\");\n };\n\n // Toggle Menu\n const toggleMenu = () => {\n if (menuBar.classList.contains(\"menu-hidden\")) {\n openMenu();\n } else {\n closeMenu();\n }\n };\n\n // Switch Menu Type\n const switchMenuType = (id) => {\n const openMenu = menuBar.querySelector(\".menu-detail.open\");\n\n root.classList.remove(\"menu-icon-only\");\n menuBar.classList.remove(\"menu-icon-only\");\n\n root.classList.remove(\"menu-wide\");\n menuBar.classList.remove(\"menu-wide\");\n deactivateWide();\n\n root.classList.remove(\"menu-hidden\");\n menuBar.classList.remove(\"menu-hidden\");\n\n switch (id) {\n case \"icon-only\":\n root.classList.add(\"menu-icon-only\");\n menuBar.classList.add(\"menu-icon-only\");\n localStorage.setItem(\"menuType\", \"menu-icon-only\");\n\n if (openMenu) {\n showBackdrop(true);\n }\n\n break;\n case \"wide\":\n root.classList.add(\"menu-wide\");\n menuBar.classList.add(\"menu-wide\");\n localStorage.setItem(\"menuType\", \"menu-wide\");\n\n activateWide();\n\n if (openMenu) {\n hideBackdrop();\n }\n\n break;\n case \"hidden\":\n root.classList.add(\"menu-hidden\");\n menuBar.classList.add(\"menu-hidden\");\n localStorage.setItem(\"menuType\", \"menu-hidden\");\n\n hideMenuDetail();\n\n break;\n default:\n localStorage.removeItem(\"menuType\");\n\n if (openMenu) {\n showBackdrop(true);\n }\n }\n };\n\n // Activate Wide\n const activateWide = () => {\n menuBar.querySelector(\".menu-header\").classList.remove(\"hidden\");\n\n menuBar.querySelectorAll(\".menu-items .link\").forEach((menuLink) => {\n const target = menuLink.dataset.target;\n\n const selectedMenu = menuBar.querySelector(\".menu-detail\" + target);\n if (selectedMenu) {\n selectedMenu.classList.add(\"collapse\");\n menuLink.setAttribute(\"data-toggle\", \"collapse\");\n menuLink.after(selectedMenu);\n }\n });\n };\n\n // Deactivate Wide\n const deactivateWide = () => {\n root.classList.remove(\"menu-wide\");\n menuBar.classList.remove(\"menu-wide\");\n\n menuBar.querySelector(\".menu-header\").classList.add(\"hidden\");\n\n menuBar.querySelectorAll(\".menu-items .link\").forEach((menuLink) => {\n const target = menuLink.dataset.target;\n\n const selectedMenu = menuBar.querySelector(\".menu-detail\" + target);\n if (selectedMenu) {\n selectedMenu.classList.remove(\"collapse\");\n menuLink.removeAttribute(\"data-toggle\", \"collapse\");\n menuItems.after(selectedMenu);\n }\n });\n };\n\n // Watch the viewport width\n const watchWidth = () => {\n const sm = 640;\n const md = 768;\n const lg = 1024;\n const xl = 1280;\n\n const viewportWidth =\n window.innerWidth || document.documentElement.clientWidth;\n\n if (viewportWidth < sm) {\n const openMenu = menuBar.querySelector(\".menu-detail.open\");\n\n if (!openMenu) {\n closeMenu();\n }\n }\n\n if (viewportWidth > sm) {\n openMenu();\n }\n };\n\n // On resize events, recalculate\n window.addEventListener(\n \"resize\",\n () => {\n watchWidth();\n },\n false\n );\n\n // Auto-activate Wide\n if (menuBar.classList.contains(\"menu-wide\")) {\n activateWide();\n }\n\n // Hide Menu - When Clicked Elsewhere\n document.addEventListener(\"click\", (event) => {\n if (\n !event.target.closest(\".menu-bar\") &&\n !menuBar.classList.contains(\"menu-wide\")\n ) {\n hideMenuDetail();\n }\n });\n\n on(\".top-bar\", \"click\", \"[data-toggle='menu']\", (event) => {\n toggleMenu(event);\n });\n\n on(\".menu-items\", \"click\", \".link\", (event) => {\n openMenuDetail(event);\n });\n\n on(\".menu-bar\", \"click\", \"[data-toggle='menu-type']\", (event) => {\n const id = event.target.closest(\"[data-toggle='menu-type']\").dataset.value;\n switchMenuType(id);\n });\n};\n\nmenu();\n\n// Show Active Page\nconst showActivePage = () => {\n const pageUrl = window.location.href.split(/[?#]/)[0];\n\n const pageLinkSelector = \".menu-bar a\";\n\n const pageLinks = document.querySelectorAll(pageLinkSelector);\n\n if (!pageLinks) return;\n\n pageLinks.forEach((pageLink) => {\n if (pageLink.href === pageUrl) {\n pageLink.classList.add(\"active\");\n\n const mainMenuTrigger = pageLink.closest(\".menu-detail\");\n\n if (!mainMenuTrigger) return;\n\n const mainMenu = document.querySelector(\n '.menu-items .link[data-target=\"[data-menu=' +\n mainMenuTrigger.dataset.menu +\n ']\"]'\n );\n\n mainMenu.classList.add(\"active\");\n }\n });\n};\n\nshowActivePage();\n","// Modal\nconst modal = () => {\n const selector = '[data-toggle=\"modal\"]';\n\n // Show\n const showModal = (modal) => {\n showBackdrop();\n modal.classList.add(\"active\");\n const animation = modal.dataset.animations.split(\", \")[0];\n const modalContent = modal.querySelector(\".modal-content\");\n animateCSS(modalContent, animation);\n\n modal.addEventListener(\"click\", (event) => {\n if (modal.dataset.staticBackdrop !== undefined) return;\n if (modal !== event.target) return;\n closeModal(modal);\n });\n };\n\n // Close\n const closeModal = (modal) => {\n hideBackdrop();\n const animation = modal.dataset.animations.split(\", \")[1];\n const modalContent = modal.querySelector(\".modal-content\");\n animateCSS(modalContent, animation).then(() => {\n modal.classList.remove(\"active\");\n });\n };\n\n on(\"body\", \"click\", selector, (event) => {\n const modalTrigger = event.target.closest(selector);\n const modal = document.querySelector(modalTrigger.dataset.target);\n showModal(modal);\n });\n\n on(\".modal\", \"click\", '[data-dismiss=\"modal\"]', (event) => {\n const modal = event.target.closest(\".modal\");\n closeModal(modal);\n });\n};\n\nmodal();\n","// Rating Stars\nconst ratingStars = () => {\n rateStars = (event) => {\n const starsContainer = event.target.closest(\".rating-stars\");\n const stars = Array.from(starsContainer.children);\n const totalStars = stars.length;\n const index = stars.indexOf(event.target);\n let count = 0;\n count = totalStars - index;\n stars.forEach((star) => star.classList.remove(\"active\"));\n\n event.target.classList.add(\"active\");\n\n console.log(\"You have rated \" + count + \" stars.\");\n };\n\n on(\"body\", \"click\", \".rating-stars\", (event) => {\n rateStars(event);\n });\n};\n\nratingStars();\n","// Show Password\nconst showPassword = () => {\n // Toggle Show Password\n const toggleShowPassword = (showPasswordBtn) => {\n const password = showPasswordBtn\n .closest(\".form-control-addon-within\")\n .querySelector(\"input\");\n\n if (password.type === \"password\") {\n password.type = \"text\";\n showPasswordBtn.classList.remove(\"text-gray-600\", \"dark:text-gray-600\");\n showPasswordBtn.classList.add(\"text-primary\", \"dark:text-primary\");\n } else {\n password.type = \"password\";\n showPasswordBtn.classList.remove(\"text-primary\", \"dark:text-primary\");\n showPasswordBtn.classList.add(\"text-gray-600\", \"dark:text-gray-600\");\n }\n };\n\n on(\"body\", \"click\", '[data-toggle=\"password-visibility\"]', (event) => {\n const showPasswordBtn = event.target.closest(\n '[data-toggle=\"password-visibility\"]'\n );\n toggleShowPassword(showPasswordBtn);\n });\n};\n\nshowPassword();\n","// Sidebar\nconst sidebar = () => {\n const sidebar = document.querySelector(\".sidebar:not(.sidebar_customizer)\");\n\n if (!sidebar) return;\n\n // Show Sidebar\n const showSidebar = () => {\n showBackdrop(true);\n sidebar.classList.add(\"open\");\n };\n\n // Hide Sidebar\n const hideSidebar = () => {\n hideBackdrop();\n sidebar.classList.remove(\"open\");\n };\n\n // Toggle Sidebar\n const toggleSidebar = () => {\n if (sidebar.classList.contains(\"open\")) {\n hideSidebar();\n } else {\n showSidebar();\n }\n };\n\n // Watch the viewport width\n const watchWidth = () => {\n const sm = 640;\n const md = 768;\n const lg = 1024;\n const xl = 1280;\n\n const viewportWidth =\n window.innerWidth || document.documentElement.clientWidth;\n\n if (viewportWidth > lg) {\n hideSidebar();\n }\n };\n\n // On resize events, recalculate\n window.addEventListener(\n \"resize\",\n () => {\n watchWidth();\n },\n false\n );\n\n on(\"body\", \"click\", '[data-toggle=\"sidebar\"]', () => {\n toggleSidebar();\n });\n};\n\nsidebar();\n","// Tabs\nconst tabs = () => {\n let toggling = false;\n\n on(\"body\", \"click\", '[data-toggle=\"tab\"]', (event) => {\n const trigger = event.target.closest('[data-toggle=\"tab\"]');\n\n const tabs = trigger.closest(\".tabs\");\n const activeTabTrigger = tabs.querySelector(\".tab-nav .active\");\n const activeTab = tabs.querySelector(\".collapse.open\");\n const targetedTab = tabs.querySelector(trigger.dataset.target);\n\n if (toggling) return;\n if (activeTabTrigger === trigger) return;\n\n // Trigger\n activeTabTrigger.classList.remove(\"active\");\n trigger.classList.add(\"active\");\n\n // Tab\n // Close\n toggling = true;\n\n closeCollapse(activeTab, () => {\n openCollapse(targetedTab, () => {\n toggling = false;\n });\n });\n });\n\n // Wizard (Previous/Next)\n on(\"body\", \"click\", '[data-toggle=\"wizard\"]', (event) => {\n const wizard = event.target.closest(\".wizard\");\n const direction = event.target.dataset.direction;\n const tabLinks = wizard.querySelectorAll(\".nav-link\");\n const activeLink = wizard.querySelector(\".nav-link.active\");\n\n let activeIndex = 0;\n\n tabLinks.forEach((link, index) => {\n if (link === activeLink) {\n activeIndex = index;\n }\n });\n\n switch (direction) {\n case \"next\":\n if (tabLinks[activeIndex + 1]) {\n tabLinks[activeIndex + 1].click();\n }\n break;\n case \"previous\":\n if (tabLinks[activeIndex - 1]) {\n tabLinks[activeIndex - 1].click();\n }\n break;\n }\n });\n};\n\ntabs();\n","// Tippy\nconst customTippy = () => {\n // Menu tooltip\n tippy.delegate(\"body\", {\n target: '.menu-icon-only [data-toggle=\"tooltip-menu\"]',\n touch: [\"hold\", 500],\n theme: \"light-border tooltip\",\n offset: [0, 12],\n interactive: true,\n animation: \"scale\",\n placement: \"right\",\n appendTo: () => document.body,\n });\n\n // General tooltip\n tippy('[data-toggle=\"tooltip\"]', {\n theme: \"light-border tooltip\",\n touch: [\"hold\", 500],\n offset: [0, 12],\n interactive: true,\n animation: \"scale\",\n appendTo: () => document.body,\n });\n\n // Popover\n tippy('[data-toggle=\"popover\"]', {\n theme: \"light-border popover\",\n offset: [0, 12],\n interactive: true,\n allowHTML: true,\n trigger: \"click\",\n animation: \"shift-toward-extreme\",\n content: (reference) => {\n const title = reference.dataset.popoverTitle;\n const content = reference.dataset.popoverContent;\n const popover =\n \"
\" + title + \"
\" + '
' + content + \"
\";\n return popover;\n },\n appendTo: () => document.body,\n });\n\n // Dropdown\n tippy('[data-toggle=\"dropdown-menu\"]', {\n theme: \"light-border\",\n offset: [0, 8],\n arrow: false,\n placement: \"bottom-start\",\n interactive: true,\n allowHTML: true,\n animation: \"shift-toward-extreme\",\n content: (reference) => {\n let dropdownMenu = reference\n .closest(\".dropdown\")\n .querySelector(\".dropdown-menu\");\n dropdownMenu = dropdownMenu.outerHTML;\n return dropdownMenu;\n },\n appendTo: () => document.body,\n });\n\n // Custom Dropdown\n tippy('[data-toggle=\"custom-dropdown-menu\"]', {\n theme: \"light-border\",\n offset: [0, 8],\n arrow: false,\n placement: \"bottom-start\",\n interactive: true,\n allowHTML: true,\n animation: \"shift-toward-extreme\",\n content: (reference) => {\n let dropdownMenu = reference\n .closest(\".dropdown\")\n .querySelector(\".custom-dropdown-menu\");\n dropdownMenu = dropdownMenu.outerHTML;\n return dropdownMenu;\n },\n appendTo: () => document.body,\n });\n\n // Search & Select\n tippy('[data-toggle=\"search-select\"]', {\n theme: \"light-border\",\n offset: [0, 8],\n maxWidth: \"none\",\n arrow: false,\n placement: \"bottom-start\",\n trigger: \"click\",\n interactive: true,\n allowHTML: true,\n animation: \"shift-toward-extreme\",\n content: (reference) => {\n let dropdownMenu = reference\n .closest(\".search-select\")\n .querySelector(\".search-select-menu\");\n dropdownMenu = dropdownMenu.outerHTML;\n return dropdownMenu;\n },\n appendTo(reference) {\n return reference.closest(\".search-select\");\n },\n });\n};\n\ncustomTippy();\n","// Toasts\nconst toasts = () => {\n const toastsContainer = document.getElementById(\"toasts-container\");\n\n if (!toastsContainer) return;\n\n const toastCloseSelector = '[data-dismiss=\"toast\"]';\n\n // Toast\n const createToast = (toast) => {\n const title = toast.dataset.title;\n const content = toast.dataset.content;\n const time = toast.dataset.time;\n\n let newToast = `\n
\n
\n
${title}
${time}\n \n
\n
${content}
\n
`;\n\n newToast = new DOMParser().parseFromString(newToast, \"text/html\").body\n .firstChild;\n\n toastsContainer.appendChild(newToast);\n animateCSS(newToast, \"fadeInUp\");\n };\n\n // Close Toast\n const closeToast = (toast) => {\n toast.style.overflowY = \"hidden\";\n toast.style.height = toast.offsetHeight + \"px\";\n\n animateCSS(toast, \"fadeOutUp\").then(() => {\n toast.style.opacity = 0;\n toast.style.height = 0;\n toast.style.marginTop = 0;\n toast.style.marginBottom = 0;\n toast.style.paddingTop = 0;\n toast.style.paddingBottom = 0;\n toast.style.border = 0;\n });\n\n toast.addEventListener(\n \"transitionend\",\n () => {\n toast.parentNode ? toast.parentNode.removeChild(toast) : false;\n },\n { once: true }\n );\n };\n\n on(\"body\", \"click\", '[data-toggle=\"toast\"]', (event) => {\n const toast = event.target;\n createToast(toast);\n });\n\n on(\"body\", \"click\", toastCloseSelector, (event) => {\n const toast = event.target.closest(\".toast\");\n closeToast(toast);\n });\n};\n\ntoasts();\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClFA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AADA;AAJA;AALA;AAcA;AAGA;AACA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAAA;AACA;AACA;AADA;AAGA;AACA;AACA;AC3DA;AACA;AACA;AAFA;AAAA;AACA;AADA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAAA;AAAA;AAAA;AAAA;AASA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAGA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AC/EA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/BA;AACA;AAAA;AACA;AAEA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;ACvBA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3CA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AAFA;AAKA;AACA;AAFA;AAKA;AACA;AAFA;AAKA;AACA;AAFA;AAMA;AAEA;AACA;AAWA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAOA;AAEA;AACA;AAKA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAHA;AAOA;AAEA;AACA;AAKA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AALA;AASA;AAEA;AACA;AAKA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AArCA;AAsCA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AAIA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AAIA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AAIA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;ACjsBA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnDA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AACA;AAWA;AACA;AAGA;AACA;AAlCA;AAAA;AACA;AADA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AAAA;AAoCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjDA;AACA;AADA;AAAA;AACA;AAmDA;AAEA;AACA;AAvDA;AAAA;AACA;AADA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AA0DA;AACA;AACA;AADA;AAIA;AACA;AAjEA;AAAA;AACA;AADA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AAAA;AAqEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3FA;AACA;AADA;AAAA;AACA;AA6FA;AAEA;AACA;AAjGA;AAAA;AACA;AADA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AAoGA;AACA;AACA;AADA;AAIA;AACA;AA3GA;AAAA;AACA;AADA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AA8GA;AACA;AACA;AADA;AAIA;AACA;AArHA;AAAA;AACA;AADA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AAwHA;AACA;AACA;AADA;AAIA;AACA;AA/HA;AAAA;AACA;AADA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AAkIA;AACA;AACA;AADA;AAIA;AACA;AAzIA;AAAA;AACA;AADA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AAAA;AA6IA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA/JA;AACA;AADA;AAAA;AACA;AAiKA;AAEA;AACA;AArKA;AAAA;AACA;AADA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AAAA;AAyKA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3LA;AACA;AADA;AAAA;AACA;AA6LA;AACA;AACA;AADA;AAIA;AACA;AAEA;AAGA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAcA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AAhBA;AAmCA;AACA;AACA;AACA;AADA;AAGA;AAJA;AAMA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AADA;AAPA;AAWA;AACA;AACA;AADA;AADA;AAZA;AAPA;AArCA;AAgEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AARA;AAHA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AARA;AAUA;AACA;AACA;AACA;AADA;AADA;AADA;AAOA;AACA;AADA;AAnBA;AAjBA;AAyCA;AACA;AACA;AACA;AACA;AACA;AAEA;AAKA;AAEA;AAEA;AAGA;AACA;AACA;AAGA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AAHA;AAqBA;AACA;AACA;AACA;AADA;AAGA;AAJA;AAMA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AADA;AAPA;AAWA;AACA;AACA;AADA;AADA;AAZA;AAPA;AAvBA;AAkDA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AAHA;AAqBA;AACA;AACA;AACA;AADA;AAGA;AAJA;AAMA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AADA;AAPA;AAWA;AACA;AACA;AADA;AADA;AAZA;AAPA;AAvBA;AAkDA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AALA;AAVA;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AARA;AAUA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AADA;AAPA;AAWA;AACA;AACA;AADA;AADA;AAZA;AAXA;AArBA;AAoDA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AALA;AAVA;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AARA;AAUA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AADA;AAPA;AAWA;AACA;AACA;AADA;AADA;AAZA;AAXA;AArBA;AAoDA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AAHA;AAmBA;AACA;AACA;AACA;AADA;AAGA;AAJA;AAMA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AADA;AAPA;AAWA;AACA;AACA;AADA;AADA;AAZA;AAPA;AArBA;AAgDA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AAHA;AAmBA;AACA;AACA;AACA;AADA;AAGA;AAJA;AAMA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AADA;AAPA;AAWA;AACA;AACA;AADA;AADA;AAZA;AAPA;AArBA;AAgDA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AARA;AAHA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AARA;AAFA;AAjBA;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AARA;AAHA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AARA;AAFA;AAjBA;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AARA;AAHA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AARA;AAHA;AAjBA;AAgCA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AARA;AAHA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AARA;AAHA;AAjBA;AAgCA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AAnBA;AAqCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AARA;AAUA;AACA;AACA;AACA;AACA;AADA;AAFA;AADA;AAZA;AAvCA;AA6DA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AAnBA;AAqCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AARA;AAUA;AACA;AACA;AACA;AACA;AADA;AAFA;AADA;AAZA;AAvCA;AA6DA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AARA;AAHA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AARA;AAUA;AACA;AACA;AACA;AADA;AADA;AADA;AAOA;AACA;AADA;AAnBA;AAjBA;AAyCA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AARA;AAHA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AARA;AAUA;AACA;AACA;AACA;AADA;AADA;AADA;AAOA;AACA;AADA;AAnBA;AAjBA;AAyCA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAXA;AACA;AAcA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAbA;AAJA;AAoBA;AACA;AACA;AADA;AAIA;AACA;AADA;AALA;AASA;AACA;AACA;AACA;AACA;AACA;AAJA;AADA;AA9BA;AACA;AAwCA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AASA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAXA;AA0BA;AA7BA;AA+BA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AASA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAXA;AA0BA;AA7BA;AA+BA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AASA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAXA;AA0BA;AA7BA;AA+BA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AASA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAXA;AA0BA;AA7BA;AA+BA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AASA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAXA;AA0BA;AA7BA;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AASA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAXA;AA0BA;AA7BA;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AASA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAXA;AA0BA;AA7BA;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AASA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAXA;AA0BA;AA7BA;AA+BA;AACA;AACA;AACA;ACx/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AArCA;AAsCA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AC1PA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrBA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AC3BA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;ACxDA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAGA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAVA;AAYA;AACA;AACA;AACA;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;ACxGA;AACA;AAAA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AASA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;A","sourceRoot":""}