{"remainingRequest":"/Users/admin/projects/dms/src/dealer_admin/node_modules/babel-loader/lib/index.js!/Users/admin/projects/dms/src/dealer_admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!/Users/admin/projects/dms/src/dealer_admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/admin/projects/dms/src/dealer_admin/src/components/ThemePicker/index.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/admin/projects/dms/src/dealer_admin/src/components/ThemePicker/index.vue","mtime":1713161556000},{"path":"/Users/admin/projects/dms/src/dealer_admin/babel.config.js","mtime":1713161556000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":["\"use strict\";\n\nvar _interopRequireDefault = require(\"/Users/admin/projects/dms/src/dealer_admin/node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nrequire(\"core-js/modules/es6.number.constructor\");\nrequire(\"core-js/modules/es6.regexp.to-string\");\nvar _regeneratorRuntime2 = _interopRequireDefault(require(\"/Users/admin/projects/dms/src/dealer_admin/node_modules/@babel/runtime-corejs2/helpers/regeneratorRuntime.js\"));\nrequire(\"core-js/modules/web.dom.iterable\");\nrequire(\"core-js/modules/es6.regexp.constructor\");\nrequire(\"core-js/modules/es6.regexp.replace\");\nrequire(\"regenerator-runtime/runtime\");\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"/Users/admin/projects/dms/src/dealer_admin/node_modules/@babel/runtime-corejs2/helpers/asyncToGenerator.js\"));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar version = require('element-ui/package.json').version; // element-ui version from node_modules\nvar ORIGINAL_THEME = '#409EFF'; // default color\nvar _default = exports.default = {\n  data: function data() {\n    return {\n      chalk: '',\n      // content of theme-chalk css\n      theme: ''\n    };\n  },\n  computed: {\n    defaultTheme: function defaultTheme() {\n      return this.$store.state.settings.theme;\n    }\n  },\n  watch: {\n    defaultTheme: {\n      handler: function handler(val, oldVal) {\n        this.theme = val;\n      },\n      immediate: true\n    },\n    theme: function () {\n      var _theme = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(val) {\n        var _this = this;\n        var oldVal, themeCluster, originalCluster, $message, getHandler, url, chalkHandler, styles;\n        return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              oldVal = this.chalk ? this.theme : ORIGINAL_THEME;\n              if (!(typeof val !== 'string')) {\n                _context.next = 3;\n                break;\n              }\n              return _context.abrupt(\"return\");\n            case 3:\n              themeCluster = this.getThemeCluster(val.replace('#', ''));\n              originalCluster = this.getThemeCluster(oldVal.replace('#', ''));\n              $message = this.$message({\n                message: '  Compiling the theme',\n                customClass: 'theme-message',\n                type: 'success',\n                duration: 0,\n                iconClass: 'el-icon-loading'\n              });\n              getHandler = function getHandler(variable, id) {\n                return function () {\n                  var originalCluster = _this.getThemeCluster(ORIGINAL_THEME.replace('#', ''));\n                  var newStyle = _this.updateStyle(_this[variable], originalCluster, themeCluster);\n                  var styleTag = document.getElementById(id);\n                  if (!styleTag) {\n                    styleTag = document.createElement('style');\n                    styleTag.setAttribute('id', id);\n                    document.head.appendChild(styleTag);\n                  }\n                  styleTag.innerText = newStyle;\n                };\n              };\n              if (this.chalk) {\n                _context.next = 11;\n                break;\n              }\n              url = \"https://unpkg.com/element-ui@\".concat(version, \"/lib/theme-chalk/index.css\");\n              _context.next = 11;\n              return this.getCSSString(url, 'chalk');\n            case 11:\n              chalkHandler = getHandler('chalk', 'chalk-style');\n              chalkHandler();\n              styles = [].slice.call(document.querySelectorAll('style')).filter(function (style) {\n                var text = style.innerText;\n                return new RegExp(oldVal, 'i').test(text) && !/Chalk Variables/.test(text);\n              });\n              styles.forEach(function (style) {\n                var innerText = style.innerText;\n                if (typeof innerText !== 'string') return;\n                style.innerText = _this.updateStyle(innerText, originalCluster, themeCluster);\n              });\n              this.$emit('change', val);\n              $message.close();\n            case 17:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee, this);\n      }));\n      function theme(_x) {\n        return _theme.apply(this, arguments);\n      }\n      return theme;\n    }()\n  },\n  methods: {\n    updateStyle: function updateStyle(style, oldCluster, newCluster) {\n      var newStyle = style;\n      oldCluster.forEach(function (color, index) {\n        newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index]);\n      });\n      return newStyle;\n    },\n    getCSSString: function getCSSString(url, variable) {\n      var _this2 = this;\n      return new Promise(function (resolve) {\n        var xhr = new XMLHttpRequest();\n        xhr.onreadystatechange = function () {\n          if (xhr.readyState === 4 && xhr.status === 200) {\n            _this2[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '');\n            resolve();\n          }\n        };\n        xhr.open('GET', url);\n        xhr.send();\n      });\n    },\n    getThemeCluster: function getThemeCluster(theme) {\n      var tintColor = function tintColor(color, tint) {\n        var red = parseInt(color.slice(0, 2), 16);\n        var green = parseInt(color.slice(2, 4), 16);\n        var blue = parseInt(color.slice(4, 6), 16);\n        if (tint === 0) {\n          // when primary color is in its rgb space\n          return [red, green, blue].join(',');\n        } else {\n          red += Math.round(tint * (255 - red));\n          green += Math.round(tint * (255 - green));\n          blue += Math.round(tint * (255 - blue));\n          red = red.toString(16);\n          green = green.toString(16);\n          blue = blue.toString(16);\n          return \"#\".concat(red).concat(green).concat(blue);\n        }\n      };\n      var shadeColor = function shadeColor(color, shade) {\n        var red = parseInt(color.slice(0, 2), 16);\n        var green = parseInt(color.slice(2, 4), 16);\n        var blue = parseInt(color.slice(4, 6), 16);\n        red = Math.round((1 - shade) * red);\n        green = Math.round((1 - shade) * green);\n        blue = Math.round((1 - shade) * blue);\n        red = red.toString(16);\n        green = green.toString(16);\n        blue = blue.toString(16);\n        return \"#\".concat(red).concat(green).concat(blue);\n      };\n      var clusters = [theme];\n      for (var i = 0; i <= 9; i++) {\n        clusters.push(tintColor(theme, Number((i / 10).toFixed(2))));\n      }\n      clusters.push(shadeColor(theme, 0.1));\n      return clusters;\n    }\n  }\n};",null]}