{"version":3,"file":"js/theme-99308950c27f2a1592c5.js","sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/theme.js","webpack:///./node_modules/bootstrap/js/dist/modal.js","webpack:///./node_modules/bootstrap/js/dist/popover.js","webpack:///./node_modules/bootstrap/js/dist/tab.js","webpack:///./node_modules/bootstrap/js/dist/toast.js","webpack:///./node_modules/bootstrap/js/dist/tooltip.js","webpack:///./node_modules/bootstrap/js/dist/util.js","webpack:///./node_modules/datatables.net-bs4/js/dataTables.bootstrap4.js","webpack:///./node_modules/datatables.net-responsive-bs4/js/responsive.bootstrap4.js","webpack:///./node_modules/datatables.net-responsive/js/dataTables.responsive.js","webpack:///./node_modules/datatables.net/js/jquery.dataTables.js","webpack:///./node_modules/is_js/is.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/jquery/external/sizzle/dist/sizzle.js","webpack:///./node_modules/jquery/src/ajax.js","webpack:///./node_modules/jquery/src/ajax/jsonp.js","webpack:///./node_modules/jquery/src/ajax/load.js","webpack:///./node_modules/jquery/src/ajax/script.js","webpack:///./node_modules/jquery/src/ajax/var/location.js","webpack:///./node_modules/jquery/src/ajax/var/nonce.js","webpack:///./node_modules/jquery/src/ajax/var/rquery.js","webpack:///./node_modules/jquery/src/ajax/xhr.js","webpack:///./node_modules/jquery/src/attributes.js","webpack:///./node_modules/jquery/src/attributes/attr.js","webpack:///./node_modules/jquery/src/attributes/classes.js","webpack:///./node_modules/jquery/src/attributes/prop.js","webpack:///./node_modules/jquery/src/attributes/support.js","webpack:///./node_modules/jquery/src/attributes/val.js","webpack:///./node_modules/jquery/src/callbacks.js","webpack:///./node_modules/jquery/src/core.js","webpack:///./node_modules/jquery/src/core/DOMEval.js","webpack:///./node_modules/jquery/src/core/access.js","webpack:///./node_modules/jquery/src/core/camelCase.js","webpack:///./node_modules/jquery/src/core/init.js","webpack:///./node_modules/jquery/src/core/isAttached.js","webpack:///./node_modules/jquery/src/core/nodeName.js","webpack:///./node_modules/jquery/src/core/parseHTML.js","webpack:///./node_modules/jquery/src/core/parseXML.js","webpack:///./node_modules/jquery/src/core/ready.js","webpack:///./node_modules/jquery/src/core/readyException.js","webpack:///./node_modules/jquery/src/core/stripAndCollapse.js","webpack:///./node_modules/jquery/src/core/support.js","webpack:///./node_modules/jquery/src/core/toType.js","webpack:///./node_modules/jquery/src/core/var/rsingleTag.js","webpack:///./node_modules/jquery/src/css.js","webpack:///./node_modules/jquery/src/css/addGetHookIf.js","webpack:///./node_modules/jquery/src/css/adjustCSS.js","webpack:///./node_modules/jquery/src/css/curCSS.js","webpack:///./node_modules/jquery/src/css/finalPropName.js","webpack:///./node_modules/jquery/src/css/hiddenVisibleSelectors.js","webpack:///./node_modules/jquery/src/css/showHide.js","webpack:///./node_modules/jquery/src/css/support.js","webpack:///./node_modules/jquery/src/css/var/cssExpand.js","webpack:///./node_modules/jquery/src/css/var/getStyles.js","webpack:///./node_modules/jquery/src/css/var/isHiddenWithinTree.js","webpack:///./node_modules/jquery/src/css/var/rboxStyle.js","webpack:///./node_modules/jquery/src/css/var/rnumnonpx.js","webpack:///./node_modules/jquery/src/css/var/swap.js","webpack:///./node_modules/jquery/src/data.js","webpack:///./node_modules/jquery/src/data/Data.js","webpack:///./node_modules/jquery/src/data/var/acceptData.js","webpack:///./node_modules/jquery/src/data/var/dataPriv.js","webpack:///./node_modules/jquery/src/data/var/dataUser.js","webpack:///./node_modules/jquery/src/deferred.js","webpack:///./node_modules/jquery/src/deferred/exceptionHook.js","webpack:///./node_modules/jquery/src/deprecated.js","webpack:///./node_modules/jquery/src/deprecated/ajax-event-alias.js","webpack:///./node_modules/jquery/src/deprecated/event.js","webpack:///./node_modules/jquery/src/dimensions.js","webpack:///./node_modules/jquery/src/effects.js","webpack:///./node_modules/jquery/src/effects/Tween.js","webpack:///./node_modules/jquery/src/effects/animatedSelector.js","webpack:///./node_modules/jquery/src/event.js","webpack:///./node_modules/jquery/src/event/focusin.js","webpack:///./node_modules/jquery/src/event/support.js","webpack:///./node_modules/jquery/src/event/trigger.js","webpack:///./node_modules/jquery/src/exports/amd.js","webpack:///./node_modules/jquery/src/exports/global.js","webpack:///./node_modules/jquery/src/jquery.js","webpack:///./node_modules/jquery/src/manipulation.js","webpack:///./node_modules/jquery/src/manipulation/_evalUrl.js","webpack:///./node_modules/jquery/src/manipulation/buildFragment.js","webpack:///./node_modules/jquery/src/manipulation/getAll.js","webpack:///./node_modules/jquery/src/manipulation/setGlobalEval.js","webpack:///./node_modules/jquery/src/manipulation/support.js","webpack:///./node_modules/jquery/src/manipulation/var/rscriptType.js","webpack:///./node_modules/jquery/src/manipulation/var/rtagName.js","webpack:///./node_modules/jquery/src/manipulation/wrapMap.js","webpack:///./node_modules/jquery/src/offset.js","webpack:///./node_modules/jquery/src/queue.js","webpack:///./node_modules/jquery/src/queue/delay.js","webpack:///./node_modules/jquery/src/selector-sizzle.js","webpack:///./node_modules/jquery/src/selector.js","webpack:///./node_modules/jquery/src/serialize.js","webpack:///./node_modules/jquery/src/traversing.js","webpack:///./node_modules/jquery/src/traversing/findFilter.js","webpack:///./node_modules/jquery/src/traversing/var/dir.js","webpack:///./node_modules/jquery/src/traversing/var/rneedsContext.js","webpack:///./node_modules/jquery/src/traversing/var/siblings.js","webpack:///./node_modules/jquery/src/var/ObjectFunctionString.js","webpack:///./node_modules/jquery/src/var/arr.js","webpack:///./node_modules/jquery/src/var/class2type.js","webpack:///./node_modules/jquery/src/var/document.js","webpack:///./node_modules/jquery/src/var/documentElement.js","webpack:///./node_modules/jquery/src/var/flat.js","webpack:///./node_modules/jquery/src/var/fnToString.js","webpack:///./node_modules/jquery/src/var/getProto.js","webpack:///./node_modules/jquery/src/var/hasOwn.js","webpack:///./node_modules/jquery/src/var/indexOf.js","webpack:///./node_modules/jquery/src/var/isFunction.js","webpack:///./node_modules/jquery/src/var/isWindow.js","webpack:///./node_modules/jquery/src/var/pnum.js","webpack:///./node_modules/jquery/src/var/push.js","webpack:///./node_modules/jquery/src/var/rcheckableType.js","webpack:///./node_modules/jquery/src/var/rcssNum.js","webpack:///./node_modules/jquery/src/var/rnothtmlwhite.js","webpack:///./node_modules/jquery/src/var/slice.js","webpack:///./node_modules/jquery/src/var/support.js","webpack:///./node_modules/jquery/src/var/toString.js","webpack:///./node_modules/jquery/src/wrap.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/select2/dist/js/select2.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.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/theme.js\");\n","\"use strict\";\n\nimport 'bootstrap/js/dist/tooltip';\nimport 'bootstrap/js/dist/popover';\nimport 'bootstrap/js/dist/toast';\nimport 'bootstrap/js/dist/modal';\nimport 'bootstrap/js/dist/tab';\nrequire(\"select2\");\nrequire(\"datatables.net\")\nrequire('datatables.net-bs4')\nrequire(\"datatables.net-responsive\")\nrequire(\"datatables.net-responsive-bs4\")\nwindow.is = require(\"is_js\")\n\n// require('twitter-bootstrap-wizard')\nimport moment from \"moment\"\n\n\nvar _this = this;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*-----------------------------------------------\n| Theme Configuration\n-----------------------------------------------*/\nvar storage = {\n isDark: false\n};\n/*-----------------------------------------------\n| Utilities\n-----------------------------------------------*/\n\nvar utils = function ($) {\n var grays = function grays() {\n var colors = {\n white: '#fff',\n 100: '#f9fafd',\n 200: '#edf2f9',\n 300: '#d8e2ef',\n 400: '#b6c1d2',\n 500: '#9da9bb',\n 600: '#748194',\n 700: '#5e6e82',\n 800: '#4d5969',\n 900: '#344050',\n 1000: '#232e3c',\n 1100: '#0b1727',\n black: '#000'\n };\n\n if (storage.isDark) {\n colors = {\n white: '#0e1c2f',\n 100: '#132238',\n 200: '#061325',\n 300: '#344050',\n 400: '#4d5969',\n 500: '#5e6e82',\n 600: '#748194',\n 700: '#9da9bb',\n 800: '#b6c1d2',\n 900: '#d8e2ef',\n 1000: '#edf2f9',\n 1100: '#f9fafd',\n black: '#fff'\n };\n }\n\n return colors;\n };\n\n var themeColors = function themeColors() {\n var colors = {\n primary: '#2c7be5',\n secondary: '#748194',\n success: '#00d27a',\n info: '#27bcfd',\n warning: '#f5803e',\n danger: '#e63757',\n light: '#f9fafd',\n dark: '#0b1727'\n };\n\n if (storage.isDark) {\n colors.light = grays()['100'];\n colors.dark = grays()['1100'];\n }\n\n return colors;\n };\n\n var pluginSettings = function pluginSettings() {\n var settings = {\n tinymce: {\n theme: 'oxide'\n },\n chart: {\n borderColor: 'rgba(255, 255, 255, 0.8)'\n }\n };\n\n if (storage.isDark) {\n settings.tinymce.theme = 'oxide-dark';\n settings.chart.borderColor = themeColors().primary;\n }\n\n return settings;\n };\n\n var Utils = {\n $window: $(window),\n $document: $(document),\n $html: $('html'),\n $body: $('body'),\n $main: $('main'),\n isRTL: function isRTL() {\n return this.$html.attr('dir') === 'rtl';\n },\n location: window.location,\n nua: navigator.userAgent,\n breakpoints: {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1540\n },\n colors: themeColors(),\n grays: grays(),\n offset: function offset(element) {\n var rect = element.getBoundingClientRect();\n var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n return {\n top: rect.top + scrollTop,\n left: rect.left + scrollLeft\n };\n },\n isScrolledIntoViewJS: function isScrolledIntoViewJS(element) {\n var windowHeight = window.innerHeight;\n var elemTop = this.offset(element).top;\n var elemHeight = element.offsetHeight;\n var windowScrollTop = window.scrollY;\n return elemTop <= windowScrollTop + windowHeight && windowScrollTop <= elemTop + elemHeight;\n },\n isScrolledIntoView: function isScrolledIntoView(el) {\n var $el = $(el);\n var windowHeight = this.$window.height();\n var elemTop = $el.offset().top;\n var elemHeight = $el.height();\n var windowScrollTop = this.$window.scrollTop();\n return elemTop <= windowScrollTop + windowHeight && windowScrollTop <= elemTop + elemHeight;\n },\n getCurrentScreanBreakpoint: function getCurrentScreanBreakpoint() {\n var _this2 = this;\n\n var currentScrean = '';\n var windowWidth = this.$window.width();\n $.each(this.breakpoints, function (index, value) {\n if (windowWidth >= value) {\n currentScrean = index;\n } else if (windowWidth >= _this2.breakpoints.xl) {\n currentScrean = 'xl';\n }\n });\n return {\n currentScrean: currentScrean,\n currentBreakpoint: this.breakpoints[currentScrean]\n };\n },\n hexToRgb: function hexToRgb(hexValue) {\n var hex;\n hexValue.indexOf('#') === 0 ? hex = hexValue.substring(1) : hex = hexValue; // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex.replace(shorthandRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n }));\n return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : null;\n },\n rgbColor: function rgbColor(color) {\n if (color === void 0) {\n color = '#fff';\n }\n\n return \"rgb(\" + this.hexToRgb(color) + \")\";\n },\n rgbaColor: function rgbaColor(color, alpha) {\n if (color === void 0) {\n color = '#fff';\n }\n\n if (alpha === void 0) {\n alpha = 0.5;\n }\n\n return \"rgba(\" + this.hexToRgb(color) + \", \" + alpha + \")\";\n },\n rgbColors: function rgbColors() {\n var _this3 = this;\n\n return Object.keys(this.colors).map(function (color) {\n return _this3.rgbColor(_this3.colors[color]);\n });\n },\n rgbaColors: function rgbaColors() {\n var _this4 = this;\n\n return Object.keys(this.colors).map(function (color) {\n return _this4.rgbaColor(_this4.colors[color]);\n });\n },\n settings: pluginSettings(_this),\n isIterableArray: function isIterableArray(array) {\n return Array.isArray(array) && !!array.length;\n },\n setCookie: function setCookie(name, value, expire) {\n var expires = new Date();\n expires.setTime(expires.getTime() + expire);\n document.cookie = name + \"=\" + value + \";expires=\" + expires.toUTCString();\n },\n getCookie: function getCookie(name) {\n var keyValue = document.cookie.match(\"(^|;) ?\" + name + \"=([^;]*)(;|$)\");\n return keyValue ? keyValue[2] : keyValue;\n },\n getBreakpoint: function getBreakpoint($element) {\n var classes = $element.attr('class');\n var breakpoint;\n\n if (classes) {\n breakpoint = this.breakpoints[classes.split(' ').filter(function (cls) {\n return cls.indexOf('navbar-expand-') === 0;\n }).pop().split('-').pop()];\n }\n\n return breakpoint;\n }\n };\n return Utils;\n}(jQuery);\n/*-----------------------------------------------\n| Detector\n-----------------------------------------------*/\n\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n if (window.is.opera()) utils.$html.addClass('opera');\n if (window.is.mobile()) utils.$html.addClass('mobile');\n if (window.is.firefox()) utils.$html.addClass('firefox');\n if (window.is.safari()) utils.$html.addClass('safari');\n if (window.is.ios()) utils.$html.addClass('ios');\n if (window.is.iphone()) utils.$html.addClass('iphone');\n if (window.is.ipad()) utils.$html.addClass('ipad');\n if (window.is.ie()) utils.$html.addClass('ie');\n if (window.is.edge()) utils.$html.addClass('edge');\n if (window.is.chrome()) utils.$html.addClass('chrome');\n if (utils.nua.match(/puppeteer/i)) utils.$html.addClass('puppeteer');\n if (window.is.mac()) utils.$html.addClass('osx');\n if (window.is.windows()) utils.$html.addClass('windows');\n if (navigator.userAgent.match('CriOS')) utils.$html.addClass('chrome');\n});\n/*-----------------------------------------------\n| Emoji Picker\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var Event = {\n FOCUS: 'focus'\n };\n var Selector = {\n EMOJIAREA: '.emojiarea'\n };\n var DATA_KEY = {\n OPTIONS: 'options'\n };\n var emojioneareas = $(Selector.EMOJIAREA); // Place the Blinking Text Cursor at the end of the editor text\n\n var placeCaretAtEnd = function placeCaretAtEnd(el) {\n if (!!window.getSelection && !!document.createRange) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (document.body.createTextRange) {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }; // EmojioneArea plugin call\n\n\n if (emojioneareas.length) {\n emojioneareas.each(function (item, value) {\n var $this = $(value);\n var options = $.extend({}, $this.data(DATA_KEY.OPTIONS));\n $this.emojioneArea(options); // // Call the caret position function on focus\n\n emojioneareas[item].emojioneArea.on(Event.FOCUS, function ($editor) {\n placeCaretAtEnd($editor.get(0));\n });\n });\n }\n});\n/*-----------------------------------------------\n| Animated progressbar\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var toggle = $('#progress-toggle-animation');\n toggle.on('click', function () {\n return $('#progress-toggle').toggleClass('progress-bar-animated');\n });\n});\n/*-----------------------------------------------\n| Top navigation opacity on scroll\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var $navbar = $('.navbar-theme');\n\n if ($navbar.length) {\n var windowHeight = utils.$window.height();\n utils.$window.scroll(function () {\n var scrollTop = utils.$window.scrollTop();\n var alpha = scrollTop / windowHeight * 2;\n alpha >= 1 && (alpha = 1);\n $navbar.css({\n 'background-color': \"rgba(255, 255, 255, \" + alpha + \")\"\n });\n }); // Fix navbar background color [after and before expand]\n\n var classList = $navbar.attr('class').split(' ');\n var breakpoint = classList.filter(function (c) {\n return c.indexOf('navbar-expand-') >= 0;\n })[0].split('navbar-expand-')[1];\n utils.$window.resize(function () {\n if (utils.$window.width() > utils.breakpoints[breakpoint]) {\n return $navbar.removeClass('bg-dark');\n }\n\n if (!$navbar.find('.navbar-toggler').hasClass('collapsed')) {\n return $navbar.addClass('bg-dark');\n }\n\n return null;\n }); // Top navigation background toggle on mobile\n\n $navbar.on('show.bs.collapse hide.bs.collapse', function (e) {\n $(e.currentTarget).toggleClass('bg-dark');\n });\n }\n});\n/*-----------------------------------------------\n| Select menu [bootstrap 4]\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n // https://getbootstrap.com/docs/4.0/getting-started/browsers-devices/#select-menu\n // https://github.com/twbs/bootstrap/issues/26183\n window.is.android() && $('select.form-control').removeClass('form-control').css('width', '100%');\n});\n// /*-----------------------------------------------\n// | Bootstrap Wizard\n// -----------------------------------------------*/\n\n// document.addEventListener(\"turbolinks:load\", function() {\n// var Selector = {\n// DATA_WIZARD: '[data-wizard]',\n// PREVIOUS_BUTTON: '.previous .btn',\n// TAB_PANE: '.tab-pane',\n// FORM_VALIDATION: '.form-validation',\n// NAV_ITEM_CIRCLE: '.nav-item-circle',\n// NAV_ITEM: '.nav-item',\n// NAV_LINK: '.nav-link',\n// WIZARD_LOTTIE: '.wizard-lottie'\n// };\n// var ClassName = {\n// ACTIVE: 'active',\n// DONE: 'done',\n// NAV: 'nav'\n// };\n// var DATA_KEY = {\n// OPTIONS: 'options',\n// WIZARD_STATE: 'wizard-state',\n// CONTROLLER: 'controller',\n// ERROR_MODAL: 'error-modal'\n// };\n// var wizards = $(Selector.DATA_WIZARD);\n\n// var isFormValidate = function isFormValidate($currentTab) {\n// var $currentTabForms = $currentTab.find(Selector.FORM_VALIDATION);\n// var isValidate = true;\n// $currentTabForms.each(function (i, v) {\n// isValidate = $(v).valid();\n// return isValidate;\n// });\n// return isValidate;\n// };\n\n// !!wizards.length && wizards.each(function (index, value) {\n// var $this = $(value);\n// var controller = $this.data(DATA_KEY.CONTROLLER);\n// var $controller = $(controller);\n// var $buttonPrev = $controller.find(Selector.PREVIOUS_BUTTON);\n// var $modal = $($this.data(DATA_KEY.ERROR_MODAL));\n// var $lottie = $(value).find(Selector.WIZARD_LOTTIE);\n// var options = $.extend({\n// container: value.querySelector(Selector.WIZARD_LOTTIE),\n// renderer: 'svg',\n// loop: true,\n// autoplay: false,\n// name: 'Hello World'\n// }, $lottie.data(DATA_KEY.OPTIONS));\n// var animation = window.bodymovin.loadAnimation(options);\n// $this.bootstrapWizard({\n// tabClass: ClassName.NAV,\n// onNext: function onNext(tab, navigation, idx) {\n// var $currentTab = $this.find(Selector.TAB_PANE).eq(idx - 1);\n// return isFormValidate($currentTab);\n// },\n// onTabClick: function onTabClick(tab, navigation, idx, clickedIndex) {\n// var stepDone = $this.find(\".nav-item:nth-child(\" + (clickedIndex + 1) + \") .nav-link\").data(DATA_KEY.WIZARD_STATE);\n// // for testing\n// return true\n// if (stepDone === 'done') {\n// $modal.modal('show');\n// return false;\n// }\n\n// if (clickedIndex <= idx) {\n// return true;\n// }\n\n// var isValid = true;\n// $this.find(Selector.TAB_PANE).each(function (tabIndex, tabValue) {\n// if (tabIndex < clickedIndex) {\n// $this.bootstrapWizard('show', tabIndex);\n// isValid = isFormValidate($(tabValue));\n// }\n\n// return isValid;\n// });\n// return isValid;\n// },\n// onTabShow: function onTabShow(tab, navigation, idx) {\n// var length = navigation.find('li').length - 1;\n// idx === 0 ? $buttonPrev.hide() : $buttonPrev.show();\n// idx === length && setTimeout(function () {\n// return animation.play();\n// }, 300);\n// $this.find(Selector.NAV_LINK).removeClass(ClassName.DONE);\n// $this.find(Selector.NAV_ITEM).each(function (i, v) {\n// var link = $(v).find(Selector.NAV_LINK);\n\n// // Application Review Page\n// if (idx === length && !link.hasClass(ClassName.ACTIVE)) {\n// link.attr('data-wizard-state', 'done');\n// formreviewdata()\n \n// }\n\n// if (!link.hasClass(ClassName.ACTIVE)) {\n// link.addClass(ClassName.DONE);\n// return true;\n// }\n\n// if (idx === length) {\n// link.addClass(ClassName.DONE);\n// $controller.hide();\n// }\n\n\n// return false;\n// });\n// }\n// });\n// });\n// });\n/*-----------------------------------------------\n| Bulk Actions\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var checkboxBulkSelects = $('.checkbox-bulk-select');\n\n if (checkboxBulkSelects.length) {\n var Event = {\n CLICK: 'click'\n };\n var Selector = {\n CHECKBOX_BULK_SELECT_CHECKBOX: '.checkbox-bulk-select-target'\n };\n var ClassName = {\n D_NONE: 'd-none'\n };\n var DATA_KEY = {\n CHECKBOX_BODY: 'checkbox-body',\n CHECKBOX_ACTIONS: 'checkbox-actions',\n CHECKBOX_REPLACED_ELEMENT: 'checkbox-replaced-element'\n };\n var Attribute = {\n CHECKED: 'checked',\n INDETERMINATE: 'indeterminate'\n };\n checkboxBulkSelects.each(function (index, value) {\n var checkboxBulkAction = $(value);\n var bulkActions = $(checkboxBulkAction.data(DATA_KEY.CHECKBOX_ACTIONS));\n var replacedElement = $(checkboxBulkAction.data(DATA_KEY.CHECKBOX_REPLACED_ELEMENT));\n var rowCheckboxes = $(checkboxBulkAction.data(DATA_KEY.CHECKBOX_BODY)).find(Selector.CHECKBOX_BULK_SELECT_CHECKBOX);\n checkboxBulkAction.on(Event.CLICK, function () {\n if (checkboxBulkAction.attr(Attribute.INDETERMINATE) === Attribute.INDETERMINATE) {\n bulkActions.addClass(ClassName.D_NONE);\n replacedElement.removeClass(ClassName.D_NONE);\n checkboxBulkAction.prop(Attribute.INDETERMINATE, false).attr(Attribute.INDETERMINATE, false);\n checkboxBulkAction.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\n rowCheckboxes.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\n } else {\n bulkActions.toggleClass(ClassName.D_NONE);\n replacedElement.toggleClass(ClassName.D_NONE);\n\n if (checkboxBulkAction.attr(Attribute.CHECKED)) {\n checkboxBulkAction.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\n } else {\n checkboxBulkAction.prop(Attribute.CHECKED, true).attr(Attribute.CHECKED, true);\n }\n\n rowCheckboxes.each(function (i, v) {\n var $this = $(v);\n\n if ($this.attr(Attribute.CHECKED)) {\n $this.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\n } else {\n $this.prop(Attribute.CHECKED, true).attr(Attribute.CHECKED, true);\n }\n });\n }\n });\n rowCheckboxes.on(Event.CLICK, function (e) {\n var $this = $(e.target);\n\n if ($this.attr(Attribute.CHECKED)) {\n $this.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\n } else {\n $this.prop(Attribute.CHECKED, true).attr(Attribute.CHECKED, true);\n }\n\n rowCheckboxes.each(function (i, v) {\n var $elem = $(v);\n\n if ($elem.attr(Attribute.CHECKED)) {\n checkboxBulkAction.prop(Attribute.INDETERMINATE, true).attr(Attribute.INDETERMINATE, Attribute.INDETERMINATE);\n bulkActions.removeClass(ClassName.D_NONE);\n replacedElement.addClass(ClassName.D_NONE);\n return false;\n }\n\n if (i === checkboxBulkAction.length) {\n checkboxBulkAction.prop(Attribute.INDETERMINATE, false).attr(Attribute.INDETERMINATE, false);\n checkboxBulkAction.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\n bulkActions.addClass(ClassName.D_NONE);\n replacedElement.removeClass(ClassName.D_NONE);\n }\n\n return true;\n });\n });\n });\n }\n});\n/*-----------------------------------------------\n| Chart\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n /*-----------------------------------------------\n | Helper functions and Data\n -----------------------------------------------*/\n var _window = window,\n utils = _window.utils;\n var chartData = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6, 4, 3, 3, 8, 3, 2, 7, 9, 5, 0, 2, 8, 8, 4, 1, 9, 7];\n var labels = ['9:00 AM', '10:00 AM', '11:00 AM', '12:00 PM', '1:00 PM', '2:00 PM', '3:00 PM', '4:00 PM', '5:00 PM', '6:00 PM', '7:00 PM', '8:00 PM'];\n /*-----------------------------------------------\n | Chart Initialization\n -----------------------------------------------*/\n\n var newChart = function newChart(chart, config) {\n var ctx = chart.getContext('2d');\n return new window.Chart(ctx, config);\n };\n /*-----------------------------------------------\n | Line Chart\n -----------------------------------------------*/\n\n\n var chartLine = document.getElementById('chart-line');\n\n if (chartLine) {\n var getChartBackground = function getChartBackground(chart) {\n var ctx = chart.getContext('2d');\n\n if (storage.isDark) {\n var _gradientFill = ctx.createLinearGradient(0, 0, 0, ctx.canvas.height);\n\n _gradientFill.addColorStop(0, utils.rgbaColor(utils.colors.primary, 0.5));\n\n _gradientFill.addColorStop(1, 'transparent');\n\n return _gradientFill;\n }\n\n var gradientFill = ctx.createLinearGradient(0, 0, 0, 250);\n gradientFill.addColorStop(0, 'rgba(255, 255, 255, 0.3)');\n gradientFill.addColorStop(1, 'rgba(255, 255, 255, 0)');\n return gradientFill;\n };\n\n var dashboardLineChart = newChart(chartLine, {\n type: 'line',\n data: {\n labels: labels.map(function (label) {\n return label.substring(0, label.length - 3);\n }),\n datasets: [{\n borderWidth: 2,\n data: chartData.map(function (d) {\n return (d * 3.14).toFixed(2);\n }),\n borderColor: utils.settings.chart.borderColor,\n backgroundColor: getChartBackground(chartLine)\n }]\n },\n options: {\n legend: {\n display: false\n },\n tooltips: {\n mode: 'x-axis',\n xPadding: 20,\n yPadding: 10,\n displayColors: false,\n callbacks: {\n label: function label(tooltipItem) {\n return labels[tooltipItem.index] + \" - \" + tooltipItem.yLabel + \" USD\";\n },\n title: function title() {\n return null;\n }\n }\n },\n hover: {\n mode: 'label'\n },\n scales: {\n xAxes: [{\n scaleLabel: {\n show: true,\n labelString: 'Month'\n },\n ticks: {\n fontColor: utils.rgbaColor('#fff', 0.7),\n fontStyle: 600\n },\n gridLines: {\n color: utils.rgbaColor('#fff', 0.1),\n zeroLineColor: utils.rgbaColor('#fff', 0.1),\n lineWidth: 1\n }\n }],\n yAxes: [{\n display: false\n }]\n }\n }\n });\n $('#dashboard-chart-select').on('change', function (e) {\n var LineDB = {\n all: [4, 1, 6, 2, 7, 12, 4, 6, 5, 4, 5, 10].map(function (d) {\n return (d * 3.14).toFixed(2);\n }),\n successful: [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8].map(function (d) {\n return (d * 3.14).toFixed(2);\n }),\n failed: [1, 0, 2, 1, 2, 1, 1, 0, 0, 1, 0, 2].map(function (d) {\n return (d * 3.14).toFixed(2);\n })\n };\n dashboardLineChart.data.datasets[0].data = LineDB[e.target.value];\n dashboardLineChart.update();\n });\n }\n /*-----------------------------------------------\n | Bar Chart\n -----------------------------------------------*/\n\n\n var chartBar = document.getElementById('chart-bar');\n\n if (chartBar) {\n newChart(chartBar, {\n type: 'bar',\n data: {\n labels: labels.slice(0, 2),\n datasets: [{\n label: 'First dataset',\n backgroundColor: [utils.rgbaColor(utils.colors.info), utils.rgbaColor(utils.colors.warning)],\n borderColor: [utils.rgbColor(utils.colors.info), utils.rgbColor(utils.colors.warning)],\n borderWidth: 2,\n data: [6, 10]\n }, {\n label: 'Second dataset',\n backgroundColor: [utils.rgbaColor(utils.colors.success), utils.rgbaColor(utils.colors.danger)],\n borderColor: [utils.rgbColor(utils.colors.success), utils.rgbColor(utils.colors.danger)],\n borderWidth: 2,\n data: [3, 7]\n }]\n },\n options: {\n scales: {\n yAxes: [{\n ticks: {\n beginAtZero: true\n }\n }]\n }\n }\n });\n }\n /*-----------------------------------------------\n | Radar Chart\n -----------------------------------------------*/\n\n\n var chartRadar = document.getElementById('chart-radar');\n\n if (chartRadar) {\n newChart(chartRadar, {\n type: 'radar',\n data: {\n labels: labels,\n datasets: [{\n label: 'First dataset',\n backgroundColor: utils.rgbaColor(utils.colors.warning),\n borderColor: utils.rgbColor(utils.colors.warning),\n borderWidth: 2,\n data: chartData.slice(0, 12),\n fill: 1\n }, {\n label: 'Second dataset',\n backgroundColor: utils.rgbaColor(utils.colors.danger),\n borderColor: utils.rgbColor(utils.colors.danger),\n borderWidth: 2,\n data: chartData.slice(12, 24),\n fill: 1\n }]\n },\n options: {\n maintainAspectRatio: true,\n spanGaps: false,\n elements: {\n line: {\n tension: 0.000001\n }\n }\n }\n });\n }\n /*-----------------------------------------------\n | Pie Chart\n -----------------------------------------------*/\n\n\n var chartPie = document.getElementById('chart-pie');\n\n if (chartPie) {\n newChart(chartPie, {\n type: 'pie',\n data: {\n labels: labels.slice(0, 3),\n datasets: [{\n backgroundColor: utils.rgbaColors(),\n borderColor: utils.rgbColors(),\n data: chartData.slice(0, 3)\n }]\n },\n options: {\n responsive: true\n }\n });\n }\n /*-----------------------------------------------\n | Doughnut Chart\n -----------------------------------------------*/\n\n\n var chartDoughnut = document.getElementById('chart-doughnut');\n\n if (chartDoughnut) {\n newChart(chartDoughnut, {\n type: 'doughnut',\n data: {\n labels: labels.slice(0, 3),\n datasets: [{\n backgroundColor: utils.rgbColors(),\n borderColor: utils.rgbColors(),\n data: chartData.slice(0, 3)\n }]\n },\n options: {\n responsive: true\n }\n });\n }\n /*-----------------------------------------------\n | Polar Area Chart\n -----------------------------------------------*/\n\n\n var chartPolarArea = document.getElementById('chart-polar-area');\n\n if (chartPolarArea) {\n newChart(chartPolarArea, {\n type: 'polarArea',\n data: {\n labels: labels.slice(0, 3),\n datasets: [{\n backgroundColor: utils.rgbaColors(),\n borderColor: utils.rgbaColors(),\n data: chartData.slice(0, 3)\n }]\n },\n options: {\n responsive: true\n }\n });\n }\n /* eslint-disable */\n\n /*-----------------------------------------------\n | Polar Bubble\n -----------------------------------------------*/\n\n\n var colorize = function colorize(opaque, context) {\n var value = context.dataset.data[context.dataIndex];\n var x = value.x / 100;\n var y = value.y / 100;\n var r = x < 0 && y < 0 ? 250 : x < 0 ? 150 : y < 0 ? 50 : 0;\n var g = x < 0 && y < 0 ? 0 : x < 0 ? 50 : y < 0 ? 150 : 250;\n var b = x < 0 && y < 0 ? 0 : x > 0 && y > 0 ? 250 : 150;\n var a = opaque ? 1 : 0.5 * value.v / 1000;\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n };\n\n var rand = function rand(min, max) {\n var seed = _this._seed;\n min = min === undefined ? 0 : min;\n max = max === undefined ? 1 : max;\n _this._seed = (seed * 9301 + 49297) % 233280;\n return min + _this._seed / 233280 * (max - min);\n };\n\n var generateData = function generateData() {\n var data = [];\n var DATA_COUNT = 16;\n var MIN_XY = -150;\n var MAX_XY = 100;\n\n for (var i = 0; i < DATA_COUNT; i += 1) {\n data.push({\n x: rand(MIN_XY, MAX_XY),\n y: rand(MIN_XY, MAX_XY),\n v: rand(0, 1000)\n });\n }\n\n return data;\n };\n\n var chartBubble = document.getElementById(\"chart-bubble\");\n\n if (chartBubble) {\n newChart(chartBubble, {\n type: \"bubble\",\n data: {\n datasets: [{\n label: [\"Deer Population\"],\n data: [{\n x: -10,\n y: -20,\n r: 20\n }, {\n x: 100,\n y: 0,\n r: 10\n }, {\n x: 60,\n y: 30,\n r: 20\n }, {\n x: 40,\n y: 60,\n r: 25\n }, {\n x: 80,\n y: 80,\n r: 30\n }, {\n x: 20,\n y: 30,\n r: 25\n }, {\n x: 0,\n y: 100,\n r: 5\n }],\n backgroundColor: \"#2C7BE5\"\n }]\n }\n });\n }\n /*-----------------------------------------------\n | Component Line Chart\n -----------------------------------------------*/\n\n\n var componentChartLine = document.getElementById(\"component-chart-line\");\n\n if (componentChartLine) {\n newChart(componentChartLine, {\n type: \"line\",\n data: {\n labels: labels,\n datasets: [{\n borderWidth: 2,\n data: chartData.slice(2, 14).map(function (d) {\n return (d * 3.14).toFixed(2);\n }),\n borderColor: utils.rgbaColor(utils.colors.primary, 0.4),\n backgroundColor: utils.rgbaColor(utils.colors.primary)\n }, {\n borderWidth: 2,\n borderColor: \"#fff\",\n data: chartData.slice(3, 15).map(function (d) {\n return (d * 3.14).toFixed(2);\n }),\n backgroundColor: utils.rgbaColor(utils.colors.primary)\n }]\n },\n options: {\n legend: {\n display: false\n },\n tooltips: {\n mode: \"x-axis\",\n xPadding: 20,\n yPadding: 10,\n displayColors: false,\n callbacks: {\n label: function label(tooltipItem) {\n return labels[tooltipItem.index] + \" - \" + tooltipItem.yLabel + \" USD\";\n },\n title: function title() {\n return null;\n }\n }\n },\n hover: {\n mode: \"label\"\n },\n scales: {\n xAxes: [{\n scaleLabel: {\n show: true,\n labelString: \"Month\"\n },\n ticks: {\n fontColor: utils.rgbaColor(\"#000\", 0.7),\n fontStyle: 600\n },\n gridLines: {\n // color: utils.rgbaColor('#000', 0.1),\n color: utils.rgbaColor(\"#000\", 0.1),\n zeroLineColor: utils.rgbaColor(\"#000\", 0.1),\n lineWidth: 1\n }\n }],\n yAxes: [{\n display: false\n }]\n }\n }\n });\n }\n /*-----------------------------------------------\n | Real time user\n -----------------------------------------------*/\n\n /*-----------------------------------------------\n | Bar Chart\n -----------------------------------------------*/\n\n\n var realTimeUser = document.getElementById(\"real-time-user\");\n\n if (realTimeUser) {\n var realTimeUserChart = newChart(realTimeUser, {\n type: \"bar\",\n data: {\n labels: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25],\n datasets: [{\n label: \"Users\",\n backgroundColor: utils.rgbaColor(\"#fff\", 0.3),\n data: [183, 163, 176, 172, 166, 161, 164, 159, 172, 173, 184, 163, 99, 173, 183, 167, 160, 183, 163, 176, 172, 166, 173, 188, 175],\n barPercentage: 0.9,\n categoryPercentage: 1.0\n }]\n },\n options: {\n legend: {\n display: false\n },\n scales: {\n yAxes: [{\n display: false,\n stacked: true\n }],\n xAxes: [{\n stacked: false,\n ticks: {\n display: false\n },\n gridLines: {\n color: utils.rgbaColor(\"#fff\", 0.1),\n display: false\n }\n }]\n }\n }\n });\n var userCounterDom = $(\".real-time-user\");\n setInterval(function () {\n var userCounter = Math.floor(Math.random() * (120 - 60) + 60);\n /*-----------------------------------------------\n | Remove data\n -----------------------------------------------*/\n\n realTimeUserChart.data.datasets.forEach(function (dataset) {\n dataset.data.shift();\n });\n realTimeUserChart.update();\n /*-----------------------------------------------\n | Add data\n -----------------------------------------------*/\n\n setTimeout(function () {\n realTimeUserChart.data.datasets.forEach(function (dataset) {\n dataset.data.push(userCounter);\n });\n realTimeUserChart.update();\n userCounterDom.text(userCounter);\n }, 500);\n }, 2000);\n }\n});\n\n/*-----------------------------------------------\n| Count Up\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var $counters = $('[data-countup]');\n\n if ($counters.length) {\n $counters.each(function (index, value) {\n var $counter = $(value);\n var counter = $counter.data('countup');\n\n var toAlphanumeric = function toAlphanumeric(num) {\n var number = num;\n var abbreviations = {\n k: 1000,\n m: 1000000,\n b: 1000000000,\n t: 1000000000000\n };\n\n if (num < abbreviations.m) {\n number = (num / abbreviations.k).toFixed(2) + \"k\";\n } else if (num < abbreviations.b) {\n number = (num / abbreviations.m).toFixed(2) + \"m\";\n } else if (num < abbreviations.t) {\n number = (num / abbreviations.b).toFixed(2) + \"b\";\n } else {\n number = (num / abbreviations.t).toFixed(2) + \"t\";\n }\n\n return number;\n };\n\n var toComma = function toComma(num) {\n return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n };\n\n var toSpace = function toSpace(num) {\n return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n };\n\n var playCountUpTriggered = false;\n\n var countUP = function countUP() {\n if (utils.isScrolledIntoView(value) && !playCountUpTriggered) {\n if (!playCountUpTriggered) {\n $({\n countNum: 0\n }).animate({\n countNum: counter.count\n }, {\n duration: counter.duration || 1000,\n easing: 'linear',\n step: function step() {\n $counter.text((counter.prefix ? counter.prefix : '') + Math.floor(this.countNum));\n },\n complete: function complete() {\n switch (counter.format) {\n case 'comma':\n $counter.text((counter.prefix ? counter.prefix : '') + toComma(this.countNum));\n break;\n\n case 'space':\n $counter.text((counter.prefix ? counter.prefix : '') + toSpace(this.countNum));\n break;\n\n case 'alphanumeric':\n $counter.text((counter.prefix ? counter.prefix : '') + toAlphanumeric(this.countNum));\n break;\n\n default:\n $counter.text((counter.prefix ? counter.prefix : '') + this.countNum);\n }\n }\n });\n playCountUpTriggered = true;\n }\n }\n\n return playCountUpTriggered;\n };\n\n countUP();\n utils.$window.scroll(function () {\n countUP();\n });\n });\n }\n});\n/*-----------------------------------------------\n| Countdown\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var $dataCountdowns = $('[data-countdown]');\n var DATA_KEY = {\n FALLBACK: 'countdown-fallback',\n COUNTDOWN: 'countdown'\n };\n\n if ($dataCountdowns.length) {\n $dataCountdowns.each(function (index, value) {\n var $dateCountdown = $(value);\n var date = $dateCountdown.data(DATA_KEY.COUNTDOWN);\n var fallback;\n\n if (typeof $dateCountdown.data(DATA_KEY.FALLBACK) !== typeof undefined) {\n fallback = $dateCountdown.data(DATA_KEY.FALLBACK);\n }\n\n $dateCountdown.countdown(date, function (event) {\n if (event.elapsed) {\n $dateCountdown.text(fallback);\n } else {\n $dateCountdown.text(event.strftime('%D days %H:%M:%S'));\n }\n });\n });\n }\n});\n/*-----------------------------------------------\n| Demo mode\n-----------------------------------------------*/\n\n// document.addEventListener(\"turbolinks:load\", function() {\n// var _window2 = window,\n// utils = _window2.utils,\n// location = _window2.location;\n// var Event = {\n// CHANGE: 'change'\n// };\n// var Selector = {\n// RTL: '#mode-rtl',\n// FLUID: '#mode-fluid',\n// INPUT_NAVBAR: \"input[name='navbar']\",\n// INPUT_COLOR_SCHEME: \"input[name='colorScheme']\",\n// NAVBAR_STYLE_TRANSPARENT: '#navbar-style-transparent',\n// NAVBAR_STYLE_INVERTED: '#navbar-style-inverted',\n// NAVBAR_STYLE_VIBRANT: '#navbar-style-vibrant',\n// NAVBAR_STYLE_WHITE: '#navbar-style-card'\n// };\n// var DATA_KEY = {\n// URL: 'url',\n// HOME_URL: 'home-url',\n// PAGE_URL: 'page-url'\n// }; // Redirect on Checkbox change\n\n// var handleChange = function handleChange(selector) {\n// utils.$document.on(Event.CHANGE, selector, function (e) {\n// var $this = $(e.currentTarget);\n// var isChecked = $this.prop('checked');\n\n// if (isChecked) {\n// var url = $this.data(DATA_KEY.URL);\n// location.replace(url);\n// } else {\n// var homeUrl = $this.data(DATA_KEY.HOME_URL);\n// location.replace(homeUrl);\n// }\n// });\n// };\n\n// var handleInputChange = function handleInputChange(selector) {\n// utils.$document.on(Event.CHANGE, selector, function (e) {\n// var $this = $(e.currentTarget);\n// var pageUrl = $this.data(DATA_KEY.PAGE_URL);\n// location.replace(pageUrl);\n// });\n// }; // Mode checkbox handler\n\n\n// handleChange(Selector.RTL);\n// handleChange(Selector.FLUID);\n// handleInputChange(Selector.INPUT_NAVBAR);\n// handleInputChange(Selector.INPUT_COLOR_SCHEME);\n// handleInputChange(Selector.NAVBAR_STYLE_TRANSPARENT);\n// handleInputChange(Selector.NAVBAR_STYLE_INVERTED);\n// handleInputChange(Selector.NAVBAR_STYLE_VIBRANT);\n// handleInputChange(Selector.NAVBAR_STYLE_WHITE);\n// });\n/*-----------------------------------------------\n| Documentation and Component Navigation\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var $componentNav = $('#components-nav');\n\n if ($componentNav.length) {\n var loc = window.location.href;\n\n var _loc$split = loc.split('#');\n\n loc = _loc$split[0];\n var location = loc.split('/');\n var url = location[location.length - 2] + \"/\" + location.pop();\n var urls = $componentNav.children('li').children('a');\n\n for (var i = 0, max = urls.length; i < max; i += 1) {\n var dom = urls[i].href.split('/');\n var domURL = dom[dom.length - 2] + \"/\" + dom.pop();\n\n if (domURL === url) {\n var $targetedElement = $(urls[i]);\n $targetedElement.removeClass('text-800');\n $targetedElement.addClass('font-weight-medium');\n break;\n }\n }\n }\n});\n/*-----------------------------------------------\n| Draggable\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var Selectors = {\n BODY: 'body',\n KANBAN_CONTAINER: '.kanban-container',\n KANBAN_ITEMS_CONTAINER: '.kanban-items-container',\n KANBAN_ITEM: '.kanban-item',\n KANBAN_COLLAPSE: \"[data-collapse='kanban']\",\n PS_RAILS: '.ps__rail-x, .ps__rail-y' // Perfect scrollbar rails in IE\n\n };\n var Events = {\n DRAG_START: 'drag:start',\n DRAG_STOP: 'drag:stop'\n };\n var columns = document.querySelectorAll(Selectors.KANBAN_ITEMS_CONTAINER);\n var container = document.querySelector(Selectors.KANBAN_CONTAINER);\n var scrollItems = $(Selectors.KANBAN_ITEMS_CONTAINER);\n var scrollableElements = [];\n scrollItems.each(function (index, item) {\n scrollableElements[index] = item;\n });\n\n if (columns.length) {\n // Initialize Sortable\n var sortable = new window.Draggable.Sortable(columns, {\n draggable: Selectors.KANBAN_ITEM,\n delay: 200,\n mirror: {\n appendTo: Selectors.BODY,\n constrainDimensions: true\n },\n scrollable: {\n draggable: Selectors.KANBAN_ITEM,\n scrollableElements: [].concat(scrollableElements, [container])\n }\n }); // Hide form when drag start\n\n sortable.on(Events.DRAG_START, function () {\n $(Selectors.KANBAN_COLLAPSE).collapse('hide');\n }); // Place forms and other contents bottom of the sortable container\n\n sortable.on(Events.DRAG_STOP, function (e) {\n var $this = $(e.data.source);\n var $itemContainer = $this.closest(Selectors.KANBAN_ITEMS_CONTAINER);\n var $collapse = $this.closest(Selectors.KANBAN_ITEMS_CONTAINER).find(Selectors.KANBAN_COLLAPSE);\n $this.is(':last-child') && $itemContainer.append($collapse); // For IE\n\n if (window.is.ie()) {\n var $rails = $itemContainer.find(Selectors.PS_RAILS);\n $itemContainer.append($rails);\n }\n });\n }\n});\n/*-----------------------------------------------\n| Dashboard Table dropdown\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n // Only for ios\n if (window.is.ios()) {\n var Event = {\n SHOWN_BS_DROPDOWN: 'shown.bs.dropdown',\n HIDDEN_BS_DROPDOWN: 'hidden.bs.dropdown'\n };\n var Selector = {\n TABLE_RESPONSIVE: '.table-responsive',\n DROPDOWN_MENU: '.dropdown-menu'\n };\n $(Selector.TABLE_RESPONSIVE).on(Event.SHOWN_BS_DROPDOWN, function dashboardTableDropdown(e) {\n var t = $(this);\n var m = $(e.target).find(Selector.DROPDOWN_MENU);\n var tb = t.offset().top + t.height();\n var mb = m.offset().top + m.outerHeight(true);\n var d = 20; // Space for shadow + scrollbar.\n\n if (t[0].scrollWidth > t.innerWidth()) {\n if (mb + d > tb) {\n t.css('padding-bottom', mb + d - tb);\n }\n } else {\n t.css('overflow', 'visible');\n }\n }).on(Event.HIDDEN_BS_DROPDOWN, function (e) {\n var $this = $(e.currentTarget);\n $this.css({\n 'padding-bottom': '',\n overflow: ''\n });\n });\n }\n}); // Reference\n// https://github.com/twbs/bootstrap/issues/11037#issuecomment-274870381\n\n/*-----------------------------------------------\n| Documentation and Component Navigation\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var Selector = {\n NAVBAR_THEME_DROPDOWN: '.navbar-theme .dropdown',\n DROPDOWN_ON_HOVER: '.dropdown-on-hover',\n DROPDOWN_MENU: '.dropdown-menu',\n DATA_TOGGLE_DROPDOWN: '[data-toggle=\"dropdown\"]',\n BODY: 'body',\n DROPDOWN_MENU_ANCHOR: '.dropdown-menu a'\n };\n var ClassName = {\n DROPDOWN_ON_HOVER: 'dropdown-on-hover',\n SHOW: 'show'\n };\n var Event = {\n CLICK: 'click',\n MOUSE_LEAVE: 'mouseleave',\n MOUSE_EVENT: 'mouseenter mouseleave'\n };\n var Attribute = {\n ARIA_EXPANDED: 'aria-expanded'\n };\n var $navbarDropdown = $(Selector.NAVBAR_THEME_DROPDOWN);\n\n if (!window.is.mobile()) {\n $navbarDropdown.addClass(ClassName.DROPDOWN_ON_HOVER);\n } else {\n $navbarDropdown.removeClass(ClassName.DROPDOWN_ON_HOVER);\n }\n\n var toggleDropdown = function toggleDropdown(e) {\n var $el = $(e.target);\n var dropdown = $el.closest(Selector.DROPDOWN_ON_HOVER);\n var dropdownMenu = $(Selector.DROPDOWN_MENU, dropdown);\n setTimeout(function () {\n var shouldOpen = e.type !== Event.CLICK && dropdown.is(':hover');\n dropdownMenu.toggleClass(ClassName.SHOW, shouldOpen);\n dropdown.toggleClass(ClassName.SHOW, shouldOpen);\n $(Selector.DATA_TOGGLE_DROPDOWN, dropdown).attr(Attribute.ARIA_EXPANDED, shouldOpen);\n }, e.type === Event.MOUSE_LEAVE ? 100 : 0);\n };\n\n $(Selector.BODY).on(Event.MOUSE_EVENT, Selector.DROPDOWN_ON_HOVER, toggleDropdown).on(Event.CLICK, Selector.DROPDOWN_MENU_ANCHOR, toggleDropdown);\n});\n\n/*-----------------------------------------------\n| On page scroll for #id targets\n-----------------------------------------------*/\n\n$(function ($) {\n $('a[data-fancyscroll]').click(function scrollTo(e) {\n // const $this = $(e.currentTarget);\n var $this = $(this);\n\n if (utils.location.pathname === $this[0].pathname && utils.location.pathname.replace(/^\\//, '') === this.pathname.replace(/^\\//, '') && utils.location.hostname === this.hostname) {\n e.preventDefault();\n var target = $(this.hash);\n target = target.length ? target : $(\"[name=\" + this.hash.slice(1) + \"]\");\n\n if (target.length) {\n $('html,body').animate({\n scrollTop: target.offset().top - ($this.data('offset') || 0)\n }, 400, 'swing', function () {\n var hash = $this.attr('href');\n window.history.pushState ? window.history.pushState(null, null, hash) : window.location.hash = hash;\n });\n return false;\n }\n }\n\n return true;\n });\n var hash = window.location.hash;\n\n if (hash && document.getElementById(hash.slice(1))) {\n var $this = $(hash);\n $('html,body').animate({\n scrollTop: $this.offset().top - $(\"a[href='\" + hash + \"']\").data('offset')\n }, 400, 'swing', function () {\n window.history.pushState ? window.history.pushState(null, null, hash) : window.location.hash = hash;\n });\n }\n});\n\n/*-----------------------------------------------\n| Bootstrap validation\n-----------------------------------------------*/\n\n(function () {\n window.addEventListener('load', function () {\n // Fetch all the forms we want to apply theme Bootstrap validation styles to\n var forms = document.getElementsByClassName('needs-validation'); // Loop over them and prevent submission\n\n Array.prototype.filter.call(forms, function (form) {\n form.addEventListener('submit', function (event) {\n if (form.checkValidity() === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n form.classList.add('was-validated');\n }, false);\n });\n }, false);\n})();\n/*-----------------------------------------------\n| Gooogle Map\n-----------------------------------------------*/\n\n/*\n global google\n*/\n\n\nfunction initMap() {\n var $googlemaps = $('.googlemap');\n var isDark = storage.isDark;\n\n if ($googlemaps.length) {\n // Visit https://snazzymaps.com/ for more themes\n var mapStyles = {\n Default: [{\n featureType: 'water',\n elementType: 'geometry',\n stylers: [{\n color: '#e9e9e9'\n }, {\n lightness: 17\n }]\n }, {\n featureType: 'landscape',\n elementType: 'geometry',\n stylers: [{\n color: '#f5f5f5'\n }, {\n lightness: 20\n }]\n }, {\n featureType: 'road.highway',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#ffffff'\n }, {\n lightness: 17\n }]\n }, {\n featureType: 'road.highway',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#ffffff'\n }, {\n lightness: 29\n }, {\n weight: 0.2\n }]\n }, {\n featureType: 'road.arterial',\n elementType: 'geometry',\n stylers: [{\n color: '#ffffff'\n }, {\n lightness: 18\n }]\n }, {\n featureType: 'road.local',\n elementType: 'geometry',\n stylers: [{\n color: '#ffffff'\n }, {\n lightness: 16\n }]\n }, {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [{\n color: '#f5f5f5'\n }, {\n lightness: 21\n }]\n }, {\n featureType: 'poi.park',\n elementType: 'geometry',\n stylers: [{\n color: '#dedede'\n }, {\n lightness: 21\n }]\n }, {\n elementType: 'labels.text.stroke',\n stylers: [{\n visibility: 'on'\n }, {\n color: '#ffffff'\n }, {\n lightness: 16\n }]\n }, {\n elementType: 'labels.text.fill',\n stylers: [{\n saturation: 36\n }, {\n color: '#333333'\n }, {\n lightness: 40\n }]\n }, {\n elementType: 'labels.icon',\n stylers: [{\n visibility: 'off'\n }]\n }, {\n featureType: 'transit',\n elementType: 'geometry',\n stylers: [{\n color: '#f2f2f2'\n }, {\n lightness: 19\n }]\n }, {\n featureType: 'administrative',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#fefefe'\n }, {\n lightness: 20\n }]\n }, {\n featureType: 'administrative',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#fefefe'\n }, {\n lightness: 17\n }, {\n weight: 1.2\n }]\n }],\n Gray: [{\n featureType: 'all',\n elementType: 'labels.text.fill',\n stylers: [{\n saturation: 36\n }, {\n color: '#000000'\n }, {\n lightness: 40\n }]\n }, {\n featureType: 'all',\n elementType: 'labels.text.stroke',\n stylers: [{\n visibility: 'on'\n }, {\n color: '#000000'\n }, {\n lightness: 16\n }]\n }, {\n featureType: 'all',\n elementType: 'labels.icon',\n stylers: [{\n visibility: 'off'\n }]\n }, {\n featureType: 'administrative',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 20\n }]\n }, {\n featureType: 'administrative',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 17\n }, {\n weight: 1.2\n }]\n }, {\n featureType: 'landscape',\n elementType: 'geometry',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 20\n }]\n }, {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 21\n }]\n }, {\n featureType: 'road.highway',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 17\n }]\n }, {\n featureType: 'road.highway',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 29\n }, {\n weight: 0.2\n }]\n }, {\n featureType: 'road.arterial',\n elementType: 'geometry',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 18\n }]\n }, {\n featureType: 'road.local',\n elementType: 'geometry',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 16\n }]\n }, {\n featureType: 'transit',\n elementType: 'geometry',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 19\n }]\n }, {\n featureType: 'water',\n elementType: 'geometry',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 17\n }]\n }],\n Midnight: [{\n featureType: 'all',\n elementType: 'labels.text.fill',\n stylers: [{\n color: '#ffffff'\n }]\n }, {\n featureType: 'all',\n elementType: 'labels.text.stroke',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 13\n }]\n }, {\n featureType: 'administrative',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#000000'\n }]\n }, {\n featureType: 'administrative',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#144b53'\n }, {\n lightness: 14\n }, {\n weight: 1.4\n }]\n }, {\n featureType: 'landscape',\n elementType: 'all',\n stylers: [{\n color: '#08304b'\n }]\n }, {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [{\n color: '#0c4152'\n }, {\n lightness: 5\n }]\n }, {\n featureType: 'road.highway',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#000000'\n }]\n }, {\n featureType: 'road.highway',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#0b434f'\n }, {\n lightness: 25\n }]\n }, {\n featureType: 'road.arterial',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#000000'\n }]\n }, {\n featureType: 'road.arterial',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#0b3d51'\n }, {\n lightness: 16\n }]\n }, {\n featureType: 'road.local',\n elementType: 'geometry',\n stylers: [{\n color: '#000000'\n }]\n }, {\n featureType: 'transit',\n elementType: 'all',\n stylers: [{\n color: '#146474'\n }]\n }, {\n featureType: 'water',\n elementType: 'all',\n stylers: [{\n color: '#021019'\n }]\n }],\n Hopper: [{\n featureType: 'water',\n elementType: 'geometry',\n stylers: [{\n hue: '#165c64'\n }, {\n saturation: 34\n }, {\n lightness: -69\n }, {\n visibility: 'on'\n }]\n }, {\n featureType: 'landscape',\n elementType: 'geometry',\n stylers: [{\n hue: '#b7caaa'\n }, {\n saturation: -14\n }, {\n lightness: -18\n }, {\n visibility: 'on'\n }]\n }, {\n featureType: 'landscape.man_made',\n elementType: 'all',\n stylers: [{\n hue: '#cbdac1'\n }, {\n saturation: -6\n }, {\n lightness: -9\n }, {\n visibility: 'on'\n }]\n }, {\n featureType: 'road',\n elementType: 'geometry',\n stylers: [{\n hue: '#8d9b83'\n }, {\n saturation: -89\n }, {\n lightness: -12\n }, {\n visibility: 'on'\n }]\n }, {\n featureType: 'road.highway',\n elementType: 'geometry',\n stylers: [{\n hue: '#d4dad0'\n }, {\n saturation: -88\n }, {\n lightness: 54\n }, {\n visibility: 'simplified'\n }]\n }, {\n featureType: 'road.arterial',\n elementType: 'geometry',\n stylers: [{\n hue: '#bdc5b6'\n }, {\n saturation: -89\n }, {\n lightness: -3\n }, {\n visibility: 'simplified'\n }]\n }, {\n featureType: 'road.local',\n elementType: 'geometry',\n stylers: [{\n hue: '#bdc5b6'\n }, {\n saturation: -89\n }, {\n lightness: -26\n }, {\n visibility: 'on'\n }]\n }, {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [{\n hue: '#c17118'\n }, {\n saturation: 61\n }, {\n lightness: -45\n }, {\n visibility: 'on'\n }]\n }, {\n featureType: 'poi.park',\n elementType: 'all',\n stylers: [{\n hue: '#8ba975'\n }, {\n saturation: -46\n }, {\n lightness: -28\n }, {\n visibility: 'on'\n }]\n }, {\n featureType: 'transit',\n elementType: 'geometry',\n stylers: [{\n hue: '#a43218'\n }, {\n saturation: 74\n }, {\n lightness: -51\n }, {\n visibility: 'simplified'\n }]\n }, {\n featureType: 'administrative.province',\n elementType: 'all',\n stylers: [{\n hue: '#ffffff'\n }, {\n saturation: 0\n }, {\n lightness: 100\n }, {\n visibility: 'simplified'\n }]\n }, {\n featureType: 'administrative.neighborhood',\n elementType: 'all',\n stylers: [{\n hue: '#ffffff'\n }, {\n saturation: 0\n }, {\n lightness: 100\n }, {\n visibility: 'off'\n }]\n }, {\n featureType: 'administrative.locality',\n elementType: 'labels',\n stylers: [{\n hue: '#ffffff'\n }, {\n saturation: 0\n }, {\n lightness: 100\n }, {\n visibility: 'off'\n }]\n }, {\n featureType: 'administrative.land_parcel',\n elementType: 'all',\n stylers: [{\n hue: '#ffffff'\n }, {\n saturation: 0\n }, {\n lightness: 100\n }, {\n visibility: 'off'\n }]\n }, {\n featureType: 'administrative',\n elementType: 'all',\n stylers: [{\n hue: '#3a3935'\n }, {\n saturation: 5\n }, {\n lightness: -57\n }, {\n visibility: 'off'\n }]\n }, {\n featureType: 'poi.medical',\n elementType: 'geometry',\n stylers: [{\n hue: '#cba923'\n }, {\n saturation: 50\n }, {\n lightness: -46\n }, {\n visibility: 'on'\n }]\n }],\n Beard: [{\n featureType: 'poi.business',\n elementType: 'labels.text',\n stylers: [{\n visibility: 'on'\n }, {\n color: '#333333'\n }]\n }],\n AssassianCreed: [{\n featureType: 'all',\n elementType: 'all',\n stylers: [{\n visibility: 'on'\n }]\n }, {\n featureType: 'all',\n elementType: 'labels',\n stylers: [{\n visibility: 'off'\n }, {\n saturation: '-100'\n }]\n }, {\n featureType: 'all',\n elementType: 'labels.text.fill',\n stylers: [{\n saturation: 36\n }, {\n color: '#000000'\n }, {\n lightness: 40\n }, {\n visibility: 'off'\n }]\n }, {\n featureType: 'all',\n elementType: 'labels.text.stroke',\n stylers: [{\n visibility: 'off'\n }, {\n color: '#000000'\n }, {\n lightness: 16\n }]\n }, {\n featureType: 'all',\n elementType: 'labels.icon',\n stylers: [{\n visibility: 'off'\n }]\n }, {\n featureType: 'administrative',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 20\n }]\n }, {\n featureType: 'administrative',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 17\n }, {\n weight: 1.2\n }]\n }, {\n featureType: 'landscape',\n elementType: 'geometry',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 20\n }]\n }, {\n featureType: 'landscape',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#4d6059'\n }]\n }, {\n featureType: 'landscape',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#4d6059'\n }]\n }, {\n featureType: 'landscape.natural',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#4d6059'\n }]\n }, {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [{\n lightness: 21\n }]\n }, {\n featureType: 'poi',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#4d6059'\n }]\n }, {\n featureType: 'poi',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#4d6059'\n }]\n }, {\n featureType: 'road',\n elementType: 'geometry',\n stylers: [{\n visibility: 'on'\n }, {\n color: '#7f8d89'\n }]\n }, {\n featureType: 'road',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#7f8d89'\n }]\n }, {\n featureType: 'road.highway',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#7f8d89'\n }, {\n lightness: 17\n }]\n }, {\n featureType: 'road.highway',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#7f8d89'\n }, {\n lightness: 29\n }, {\n weight: 0.2\n }]\n }, {\n featureType: 'road.arterial',\n elementType: 'geometry',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 18\n }]\n }, {\n featureType: 'road.arterial',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#7f8d89'\n }]\n }, {\n featureType: 'road.arterial',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#7f8d89'\n }]\n }, {\n featureType: 'road.local',\n elementType: 'geometry',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 16\n }]\n }, {\n featureType: 'road.local',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#7f8d89'\n }]\n }, {\n featureType: 'road.local',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#7f8d89'\n }]\n }, {\n featureType: 'transit',\n elementType: 'geometry',\n stylers: [{\n color: '#000000'\n }, {\n lightness: 19\n }]\n }, {\n featureType: 'water',\n elementType: 'all',\n stylers: [{\n color: '#2b3638'\n }, {\n visibility: 'on'\n }]\n }, {\n featureType: 'water',\n elementType: 'geometry',\n stylers: [{\n color: '#2b3638'\n }, {\n lightness: 17\n }]\n }, {\n featureType: 'water',\n elementType: 'geometry.fill',\n stylers: [{\n color: '#24282b'\n }]\n }, {\n featureType: 'water',\n elementType: 'geometry.stroke',\n stylers: [{\n color: '#24282b'\n }]\n }, {\n featureType: 'water',\n elementType: 'labels',\n stylers: [{\n visibility: 'off'\n }]\n }, {\n featureType: 'water',\n elementType: 'labels.text',\n stylers: [{\n visibility: 'off '\n }]\n }, {\n featureType: 'water',\n elementType: 'labels.text.fill',\n stylers: [{\n visibility: 'off'\n }]\n }, {\n featureType: 'water',\n elementType: 'labels.text.stroke',\n stylers: [{\n visibility: 'off'\n }]\n }, {\n featureType: 'water',\n elementType: 'labels.icon',\n stylers: [{\n visibility: 'off'\n }]\n }],\n SubtleGray: [{\n featureType: 'administrative',\n elementType: 'all',\n stylers: [{\n saturation: '-100'\n }]\n }, {\n featureType: 'administrative.province',\n elementType: 'all',\n stylers: [{\n visibility: 'off'\n }]\n }, {\n featureType: 'landscape',\n elementType: 'all',\n stylers: [{\n saturation: -100\n }, {\n lightness: 65\n }, {\n visibility: 'on'\n }]\n }, {\n featureType: 'poi',\n elementType: 'all',\n stylers: [{\n saturation: -100\n }, {\n lightness: '50'\n }, {\n visibility: 'simplified'\n }]\n }, {\n featureType: 'road',\n elementType: 'all',\n stylers: [{\n saturation: -100\n }]\n }, {\n featureType: 'road.highway',\n elementType: 'all',\n stylers: [{\n visibility: 'simplified'\n }]\n }, {\n featureType: 'road.arterial',\n elementType: 'all',\n stylers: [{\n lightness: '30'\n }]\n }, {\n featureType: 'road.local',\n elementType: 'all',\n stylers: [{\n lightness: '40'\n }]\n }, {\n featureType: 'transit',\n elementType: 'all',\n stylers: [{\n saturation: -100\n }, {\n visibility: 'simplified'\n }]\n }, {\n featureType: 'water',\n elementType: 'geometry',\n stylers: [{\n hue: '#ffff00'\n }, {\n lightness: -25\n }, {\n saturation: -97\n }]\n }, {\n featureType: 'water',\n elementType: 'labels',\n stylers: [{\n lightness: -25\n }, {\n saturation: -100\n }]\n }],\n Tripitty: [{\n featureType: 'all',\n elementType: 'labels',\n stylers: [{\n visibility: 'off'\n }]\n }, {\n featureType: 'administrative',\n elementType: 'all',\n stylers: [{\n visibility: 'off'\n }]\n }, {\n featureType: 'landscape',\n elementType: 'all',\n stylers: [{\n color: '#2c5ca5'\n }]\n }, {\n featureType: 'poi',\n elementType: 'all',\n stylers: [{\n color: '#2c5ca5'\n }]\n }, {\n featureType: 'road',\n elementType: 'all',\n stylers: [{\n visibility: 'off'\n }]\n }, {\n featureType: 'transit',\n elementType: 'all',\n stylers: [{\n visibility: 'off'\n }]\n }, {\n featureType: 'water',\n elementType: 'all',\n stylers: [{\n color: '#193a70'\n }, {\n visibility: 'on'\n }]\n }]\n };\n $googlemaps.each(function (index, value) {\n var $googlemap = $(value);\n var latLng = $googlemap.data('latlng').split(',');\n var markerPopup = $googlemap.html();\n var icon = $googlemap.data('icon') ? $googlemap.data('icon') : 'https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi.png';\n var zoom = $googlemap.data('zoom');\n var mapStyle = isDark ? 'Midnight' : $googlemap.data('theme');\n var mapElement = value;\n\n if ($googlemap.data('theme') === 'streetview') {\n var pov = $googlemap.data('pov');\n var _mapOptions = {\n position: {\n lat: Number(latLng[0]),\n lng: Number(latLng[1])\n },\n pov: pov,\n zoom: zoom,\n gestureHandling: 'none',\n scrollwheel: false\n };\n return new google.maps.StreetViewPanorama(mapElement, _mapOptions);\n }\n\n var mapOptions = {\n zoom: zoom,\n scrollwheel: $googlemap.data('scrollwheel'),\n center: new google.maps.LatLng(latLng[0], latLng[1]),\n styles: mapStyles[mapStyle]\n };\n var map = new google.maps.Map(mapElement, mapOptions);\n var infowindow = new google.maps.InfoWindow({\n content: markerPopup\n });\n var marker = new google.maps.Marker({\n position: new google.maps.LatLng(latLng[0], latLng[1]),\n icon: icon,\n map: map\n });\n marker.addListener('click', function () {\n infowindow.open(map, marker);\n });\n return null;\n });\n }\n}\n/*-----------------------------------------------\n| Incrment/Decrement Input Fields\n-----------------------------------------------*/\n\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var Selector = {\n DATA_FIELD: '[data-field]',\n INPUT_GROUP: '.input-group'\n };\n var DATA_KEY = {\n FIELD: 'field',\n TYPE: 'type'\n };\n var Events = {\n CLICK: 'click'\n };\n var Attributes = {\n MIN: 'min'\n };\n utils.$document.on(Events.CLICK, Selector.DATA_FIELD, function (e) {\n var $this = $(e.target);\n var inputField = $this.data(DATA_KEY.FIELD);\n var $inputField = $this.parents(Selector.INPUT_GROUP).children(\".\" + inputField);\n var $btnType = $this.data(DATA_KEY.TYPE);\n var value = parseInt($inputField.val(), 10);\n var min = $inputField.attr(Attributes.MIN);\n\n if (min) {\n min = parseInt(min, 10);\n } else {\n min = 0;\n }\n\n if ($btnType === 'plus') {\n value += 1;\n } else if (value > min) {\n value -= 1;\n }\n\n $inputField.val(value);\n });\n});\n\n/*-----------------------------------------------\n| Draggable\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var Selectors = {\n ADD_LIST_FORM: '#add-list-form',\n KANBAN_COLUMN: '.kanban-column',\n BTN_ADD_CARD: '.btn-add-card',\n KANBAN_ITEMS_CONTAINER: '.kanban-items-container',\n COLLAPSE: '.collapse',\n COLLAPSE_CLOSE: \"[data-dismiss='collapse']\",\n ADD_CARD: '.add-card',\n ADD_LIST: '.add-list',\n MODAL_ANCHOR: \"[data-toggle='modal'] a\",\n HIDE_ADD_CARD_FORM: '.hide-add-card-form'\n };\n var Events = {\n TOGGLE_BS_COLLAPSE: 'show.bs.collapse hide.bs.collapse',\n SHOWN_BS_COLLAPSE: 'shown.bs.collapse',\n CLICK: 'click'\n };\n var ClassNames = {\n FORM_ADDED: 'form-added',\n D_NONE: 'd-none'\n }; // Hide button when Add list form is shown\n\n $(Selectors.ADD_LIST_FORM).on(Events.TOGGLE_BS_COLLAPSE, function (e) {\n var $this = $(e.currentTarget);\n $this.next().toggleClass(ClassNames.D_NONE);\n }); // Show card add form and scroll to the bottom\n\n $(document).on(Events.CLICK, Selectors.BTN_ADD_CARD, function (e) {\n var $this = $(e.currentTarget);\n var $column = $this.closest(Selectors.KANBAN_COLUMN);\n var $container = $column.find(Selectors.KANBAN_ITEMS_CONTAINER);\n var scrollHeight = $container[0].scrollHeight;\n $column.addClass(ClassNames.FORM_ADDED);\n $container.scrollTop(scrollHeight);\n $container.find(Selectors.ADD_CARD).focus();\n }); // Hide card add form\n\n $(document).on(Events.CLICK, Selectors.HIDE_ADD_CARD_FORM, function (e) {\n var $this = $(e.currentTarget);\n var $column = $this.closest(Selectors.KANBAN_COLUMN);\n $column.removeClass(ClassNames.FORM_ADDED);\n }); // Focus add list form on form shown\n\n $(Selectors.ADD_LIST_FORM).on(Events.SHOWN_BS_COLLAPSE, function (e) {\n var $this = $(e.currentTarget);\n $this.find(Selectors.ADD_LIST).focus();\n });\n utils.$document.on(Events.CLICK, Selectors.MODAL_ANCHOR, function (e) {\n e.stopPropagation();\n }); // Close collapse when corresponding close button is clicked\n\n utils.$document.on(Events.CLICK, Selectors.COLLAPSE_CLOSE, function (e) {\n var $this = $(e.currentTarget);\n $this.closest(Selectors.COLLAPSE).collapse('hide');\n });\n});\n\n/*-----------------------------------------------\n| Lightbox\n-----------------------------------------------*/\n\n/*\n global lightbox\n*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n if ($('[data-lightbox]').length) {\n lightbox.option({\n resizeDuration: 400,\n wrapAround: true,\n fadeDuration: 300,\n imageFadeDuration: 300\n });\n }\n});\n/*-----------------------------------------------\n| Lottie\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var lotties = $('.lottie');\n\n if (lotties.length) {\n lotties.each(function (index, value) {\n var $this = $(value);\n var options = $.extend({\n container: value,\n path: '../asset/images/warning-light.json',\n renderer: 'svg',\n loop: true,\n autoplay: true,\n name: 'Hello World'\n }, $this.data('options'));\n window.bodymovin.loadAnimation(options);\n });\n }\n});\n/*-----------------------------------------------\n| Modal\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var Selector = {\n MODAL_THEME: '.modal-theme'\n };\n var DataKey = {\n OPTIONS: 'options'\n };\n var Events = {\n HIDDEN_BS_MODAL: 'hidden.bs.modal'\n };\n var modals = $(Selector.MODAL_THEME);\n var showModal = true;\n\n if (modals.length) {\n modals.each(function (index, value) {\n var $this = $(value);\n var userOptions = $this.data(DataKey.OPTIONS);\n var options = $.extend({\n autoShow: false,\n autoShowDelay: 0,\n showOnce: false\n }, userOptions);\n\n if (options.showOnce) {\n var modal = utils.getCookie('modal-'+$this.attr('id'));\n showModal = modal === null;\n }\n\n if (options.autoShow && showModal) {\n setTimeout(function () {\n $this.modal('show');\n }, options.autoShowDelay);\n }\n });\n }\n\n $(Selector.MODAL_THEME).on(Events.HIDDEN_BS_MODAL, function (e) {\n var $this = $(e.currentTarget);\n var userOptions = $this.data(DataKey.OPTIONS);\n var options = $.extend({\n cookieExpireTime: 7200000,\n showOnce: false\n }, userOptions);\n options.showOnce && utils.setCookie('modal-'+$this.attr('id'), false, options.cookieExpireTime);\n });\n});\n/*-----------------------------------------------\n| Navbar Top\n-----------------------------------------------*/\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n var Selectors = {\n COLLAPSE: '.collapse',\n NAVBAR_NAV: '.navbar-nav',\n NAVBAR_TOP_COMBO: '.navbar-top-combo',\n NAVBAR_VERTICAL: '.navbar-vertical',\n NAVBAR_VERTICAL_DIVIDER: '.navbar-vertical-divider',\n NAVBAR_TOP_COMBO_COLLAPSE: '.navbar-top-combo .collapse',\n MOVEABLE_CONTENT: '[data-move-container]'\n };\n var CLASS_NAME = {\n FLEX_COLUMN: 'flex-column'\n };\n var DATA_KEYS = {\n MOVE_TARGET: 'move-target'\n };\n var $navbarTop = $(Selectors.NAVBAR_TOP_COMBO);\n var $navbarVertical = $(Selectors.NAVBAR_VERTICAL);\n var navbarTopBreakpoint = utils.getBreakpoint($navbarTop);\n var navbarVertcicalBreakpoint = utils.getBreakpoint($navbarVertical);\n\n var moveNavContent = function moveNavContent(width) {\n if (width < navbarTopBreakpoint) {\n var $navbarTopCollapse = $navbarTop.find(Selectors.COLLAPSE);\n var navbarTopContent = $navbarTopCollapse.html();\n\n if (navbarTopContent) {\n // $navbarTopCollapse.html('');\n var divider = \"
\";\n navbarTopContent = \"