{"remainingRequest":"D:\\源码\\vue-element-admin-master\\node_modules\\babel-loader\\lib\\index.js!D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\源码\\vue-element-admin-master\\src\\components\\ThemePicker\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\源码\\vue-element-admin-master\\src\\components\\ThemePicker\\index.vue","mtime":1649647926000},{"path":"D:\\源码\\vue-element-admin-master\\babel.config.js","mtime":1649647926000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkQ6L1x1NkU5MFx1NzgwMS92dWUtZWxlbWVudC1hZG1pbi1tYXN0ZXIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanMiOwppbXBvcnQgInJlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnJlcGxhY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudGVzdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5zdGlja3kuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmpvaW4uanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIudG8tZml4ZWQuanMiOwoKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KdmFyIHZlcnNpb24gPSByZXF1aXJlKCdlbGVtZW50LXVpL3BhY2thZ2UuanNvbicpLnZlcnNpb247IC8vIGVsZW1lbnQtdWkgdmVyc2lvbiBmcm9tIG5vZGVfbW9kdWxlcwoKCnZhciBPUklHSU5BTF9USEVNRSA9ICcjNDA5RUZGJzsgLy8gZGVmYXVsdCBjb2xvcgoKZXhwb3J0IGRlZmF1bHQgewogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBjaGFsazogJycsCiAgICAgIC8vIGNvbnRlbnQgb2YgdGhlbWUtY2hhbGsgY3NzCiAgICAgIHRoZW1lOiAnJwogICAgfTsKICB9LAogIGNvbXB1dGVkOiB7CiAgICBkZWZhdWx0VGhlbWU6IGZ1bmN0aW9uIGRlZmF1bHRUaGVtZSgpIHsKICAgICAgcmV0dXJuIHRoaXMuJHN0b3JlLnN0YXRlLnNldHRpbmdzLnRoZW1lOwogICAgfQogIH0sCiAgd2F0Y2g6IHsKICAgIGRlZmF1bHRUaGVtZTogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKHZhbCwgb2xkVmFsKSB7CiAgICAgICAgdGhpcy50aGVtZSA9IHZhbDsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgdGhlbWU6IGZ1bmN0aW9uIHRoZW1lKHZhbCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwoKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKCAvKiNfX1BVUkVfXyovcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHsKICAgICAgICB2YXIgb2xkVmFsLCB0aGVtZUNsdXN0ZXIsIG9yaWdpbmFsQ2x1c3RlciwgJG1lc3NhZ2UsIGdldEhhbmRsZXIsIHVybCwgY2hhbGtIYW5kbGVyLCBzdHlsZXM7CiAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgb2xkVmFsID0gX3RoaXMuY2hhbGsgPyBfdGhpcy50aGVtZSA6IE9SSUdJTkFMX1RIRU1FOwoKICAgICAgICAgICAgICAgIGlmICghKHR5cGVvZiB2YWwgIT09ICdzdHJpbmcnKSkgewogICAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMzsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmFicnVwdCgicmV0dXJuIik7CgogICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgIHRoZW1lQ2x1c3RlciA9IF90aGlzLmdldFRoZW1lQ2x1c3Rlcih2YWwucmVwbGFjZSgnIycsICcnKSk7CiAgICAgICAgICAgICAgICBvcmlnaW5hbENsdXN0ZXIgPSBfdGhpcy5nZXRUaGVtZUNsdXN0ZXIob2xkVmFsLnJlcGxhY2UoJyMnLCAnJykpOwogICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhlbWVDbHVzdGVyLCBvcmlnaW5hbENsdXN0ZXIpOwogICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSBfdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICcgIENvbXBpbGluZyB0aGUgdGhlbWUnLAogICAgICAgICAgICAgICAgICBjdXN0b21DbGFzczogJ3RoZW1lLW1lc3NhZ2UnLAogICAgICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsCiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAwLAogICAgICAgICAgICAgICAgICBpY29uQ2xhc3M6ICdlbC1pY29uLWxvYWRpbmcnCiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICBnZXRIYW5kbGVyID0gZnVuY3Rpb24gZ2V0SGFuZGxlcih2YXJpYWJsZSwgaWQpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgb3JpZ2luYWxDbHVzdGVyID0gX3RoaXMuZ2V0VGhlbWVDbHVzdGVyKE9SSUdJTkFMX1RIRU1FLnJlcGxhY2UoJyMnLCAnJykpOwoKICAgICAgICAgICAgICAgICAgICB2YXIgbmV3U3R5bGUgPSBfdGhpcy51cGRhdGVTdHlsZShfdGhpc1t2YXJpYWJsZV0sIG9yaWdpbmFsQ2x1c3RlciwgdGhlbWVDbHVzdGVyKTsKCiAgICAgICAgICAgICAgICAgICAgdmFyIHN0eWxlVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwoKICAgICAgICAgICAgICAgICAgICBpZiAoIXN0eWxlVGFnKSB7CiAgICAgICAgICAgICAgICAgICAgICBzdHlsZVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7CiAgICAgICAgICAgICAgICAgICAgICBzdHlsZVRhZy5zZXRBdHRyaWJ1dGUoJ2lkJywgaWQpOwogICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZVRhZyk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBzdHlsZVRhZy5pbm5lclRleHQgPSBuZXdTdHlsZTsKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgaWYgKF90aGlzLmNoYWxrKSB7CiAgICAgICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxMjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdXJsID0gImh0dHBzOi8vdW5wa2cuY29tL2VsZW1lbnQtdWlAIi5jb25jYXQodmVyc2lvbiwgIi9saWIvdGhlbWUtY2hhbGsvaW5kZXguY3NzIik7CiAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTI7CiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXMuZ2V0Q1NTU3RyaW5nKHVybCwgJ2NoYWxrJyk7CgogICAgICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgICAgICBjaGFsa0hhbmRsZXIgPSBnZXRIYW5kbGVyKCdjaGFsaycsICdjaGFsay1zdHlsZScpOwogICAgICAgICAgICAgICAgY2hhbGtIYW5kbGVyKCk7CiAgICAgICAgICAgICAgICBzdHlsZXMgPSBbXS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlJykpLmZpbHRlcihmdW5jdGlvbiAoc3R5bGUpIHsKICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBzdHlsZS5pbm5lclRleHQ7CiAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKG9sZFZhbCwgJ2knKS50ZXN0KHRleHQpICYmICEvQ2hhbGsgVmFyaWFibGVzLy50ZXN0KHRleHQpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBzdHlsZXMuZm9yRWFjaChmdW5jdGlvbiAoc3R5bGUpIHsKICAgICAgICAgICAgICAgICAgdmFyIGlubmVyVGV4dCA9IHN0eWxlLmlubmVyVGV4dDsKICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpbm5lclRleHQgIT09ICdzdHJpbmcnKSByZXR1cm47CiAgICAgICAgICAgICAgICAgIHN0eWxlLmlubmVyVGV4dCA9IF90aGlzLnVwZGF0ZVN0eWxlKGlubmVyVGV4dCwgb3JpZ2luYWxDbHVzdGVyLCB0aGVtZUNsdXN0ZXIpOwogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgX3RoaXMuJGVtaXQoJ2NoYW5nZScsIHZhbCk7CgogICAgICAgICAgICAgICAgJG1lc3NhZ2UuY2xvc2UoKTsKCiAgICAgICAgICAgICAgY2FzZSAxODoKICAgICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUpOwogICAgICB9KSkoKTsKICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIHVwZGF0ZVN0eWxlOiBmdW5jdGlvbiB1cGRhdGVTdHlsZShzdHlsZSwgb2xkQ2x1c3RlciwgbmV3Q2x1c3RlcikgewogICAgICB2YXIgbmV3U3R5bGUgPSBzdHlsZTsKICAgICAgb2xkQ2x1c3Rlci5mb3JFYWNoKGZ1bmN0aW9uIChjb2xvciwgaW5kZXgpIHsKICAgICAgICBuZXdTdHlsZSA9IG5ld1N0eWxlLnJlcGxhY2UobmV3IFJlZ0V4cChjb2xvciwgJ2lnJyksIG5ld0NsdXN0ZXJbaW5kZXhdKTsKICAgICAgfSk7CiAgICAgIHJldHVybiBuZXdTdHlsZTsKICAgIH0sCiAgICBnZXRDU1NTdHJpbmc6IGZ1bmN0aW9uIGdldENTU1N0cmluZyh1cmwsIHZhcmlhYmxlKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwoKICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7CiAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoKICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0ICYmIHhoci5zdGF0dXMgPT09IDIwMCkgewogICAgICAgICAgICBfdGhpczJbdmFyaWFibGVdID0geGhyLnJlc3BvbnNlVGV4dC5yZXBsYWNlKC9AZm9udC1mYWNle1tefV0rfS8sICcnKTsKICAgICAgICAgICAgcmVzb2x2ZSgpOwogICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwpOwogICAgICAgIHhoci5zZW5kKCk7CiAgICAgIH0pOwogICAgfSwKICAgIGdldFRoZW1lQ2x1c3RlcjogZnVuY3Rpb24gZ2V0VGhlbWVDbHVzdGVyKHRoZW1lKSB7CiAgICAgIHZhciB0aW50Q29sb3IgPSBmdW5jdGlvbiB0aW50Q29sb3IoY29sb3IsIHRpbnQpIHsKICAgICAgICB2YXIgcmVkID0gcGFyc2VJbnQoY29sb3Iuc2xpY2UoMCwgMiksIDE2KTsKICAgICAgICB2YXIgZ3JlZW4gPSBwYXJzZUludChjb2xvci5zbGljZSgyLCA0KSwgMTYpOwogICAgICAgIHZhciBibHVlID0gcGFyc2VJbnQoY29sb3Iuc2xpY2UoNCwgNiksIDE2KTsKCiAgICAgICAgaWYgKHRpbnQgPT09IDApIHsKICAgICAgICAgIC8vIHdoZW4gcHJpbWFyeSBjb2xvciBpcyBpbiBpdHMgcmdiIHNwYWNlCiAgICAgICAgICByZXR1cm4gW3JlZCwgZ3JlZW4sIGJsdWVdLmpvaW4oJywnKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmVkICs9IE1hdGgucm91bmQodGludCAqICgyNTUgLSByZWQpKTsKICAgICAgICAgIGdyZWVuICs9IE1hdGgucm91bmQodGludCAqICgyNTUgLSBncmVlbikpOwogICAgICAgICAgYmx1ZSArPSBNYXRoLnJvdW5kKHRpbnQgKiAoMjU1IC0gYmx1ZSkpOwogICAgICAgICAgcmVkID0gcmVkLnRvU3RyaW5nKDE2KTsKICAgICAgICAgIGdyZWVuID0gZ3JlZW4udG9TdHJpbmcoMTYpOwogICAgICAgICAgYmx1ZSA9IGJsdWUudG9TdHJpbmcoMTYpOwogICAgICAgICAgcmV0dXJuICIjIi5jb25jYXQocmVkKS5jb25jYXQoZ3JlZW4pLmNvbmNhdChibHVlKTsKICAgICAgICB9CiAgICAgIH07CgogICAgICB2YXIgc2hhZGVDb2xvciA9IGZ1bmN0aW9uIHNoYWRlQ29sb3IoY29sb3IsIHNoYWRlKSB7CiAgICAgICAgdmFyIHJlZCA9IHBhcnNlSW50KGNvbG9yLnNsaWNlKDAsIDIpLCAxNik7CiAgICAgICAgdmFyIGdyZWVuID0gcGFyc2VJbnQoY29sb3Iuc2xpY2UoMiwgNCksIDE2KTsKICAgICAgICB2YXIgYmx1ZSA9IHBhcnNlSW50KGNvbG9yLnNsaWNlKDQsIDYpLCAxNik7CiAgICAgICAgcmVkID0gTWF0aC5yb3VuZCgoMSAtIHNoYWRlKSAqIHJlZCk7CiAgICAgICAgZ3JlZW4gPSBNYXRoLnJvdW5kKCgxIC0gc2hhZGUpICogZ3JlZW4pOwogICAgICAgIGJsdWUgPSBNYXRoLnJvdW5kKCgxIC0gc2hhZGUpICogYmx1ZSk7CiAgICAgICAgcmVkID0gcmVkLnRvU3RyaW5nKDE2KTsKICAgICAgICBncmVlbiA9IGdyZWVuLnRvU3RyaW5nKDE2KTsKICAgICAgICBibHVlID0gYmx1ZS50b1N0cmluZygxNik7CiAgICAgICAgcmV0dXJuICIjIi5jb25jYXQocmVkKS5jb25jYXQoZ3JlZW4pLmNvbmNhdChibHVlKTsKICAgICAgfTsKCiAgICAgIHZhciBjbHVzdGVycyA9IFt0aGVtZV07CgogICAgICBmb3IgKHZhciBpID0gMDsgaSA8PSA5OyBpKyspIHsKICAgICAgICBjbHVzdGVycy5wdXNoKHRpbnRDb2xvcih0aGVtZSwgTnVtYmVyKChpIC8gMTApLnRvRml4ZWQoMikpKSk7CiAgICAgIH0KCiAgICAgIGNsdXN0ZXJzLnB1c2goc2hhZGVDb2xvcih0aGVtZSwgMC4xKSk7CiAgICAgIHJldHVybiBjbHVzdGVyczsKICAgIH0KICB9Cn07"},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,yD,CAAA;;;AACA,+B,CAAA;;AAEA;EACAA,IADA,kBACA;IACA;MACAC,SADA;MACA;MACAC;IAFA;EAIA,CANA;EAOAC;IACAC,YADA,0BACA;MACA;IACA;EAHA,CAPA;EAYAC;IACAD;MACAE;QACA;MACA,CAHA;MAIAC;IAJA,CADA;IAOAL,KAPA,iBAOAM,GAPA,EAOA;MAAA;;MAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBACAC,MADA,GACA,0CADA;;gBAAA,MAEA,uBAFA;kBAAA;kBAAA;gBAAA;;gBAAA;;cAAA;gBAGAC,YAHA,GAGA,2CAHA;gBAIAC,eAJA,GAIA,8CAJA;gBAKAC;gBAEAC,QAPA,GAOA;kBACAC,gCADA;kBAEAC,4BAFA;kBAGAC,eAHA;kBAIAC,WAJA;kBAKAC;gBALA,EAPA;;gBAeAC,UAfA,GAeA;kBACA;oBACA;;oBACA;;oBAEA;;oBACA;sBACAC;sBACAA;sBACAC;oBACA;;oBACAD;kBACA,CAXA;gBAYA,CA5BA;;gBAAA,IA8BA,WA9BA;kBAAA;kBAAA;gBAAA;;gBA+BAE,GA/BA,0CA+BAC,OA/BA;gBAAA;gBAAA,OAgCA,gCAhCA;;cAAA;gBAmCAC,YAnCA,GAmCAL,kCAnCA;gBAqCAK;gBAEAC,MAvCA,GAuCA,kDACAC,MADA,CACA;kBACA;kBACA;gBACA,CAJA,CAvCA;gBA4CAD;kBACA;kBACA;kBACAE;gBACA,CAJA;;gBAMA;;gBAEAd;;cApDA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA;IAqDA;EA5DA,CAZA;EA2EAe;IACAC,WADA,uBACAF,KADA,EACAG,UADA,EACAC,UADA,EACA;MACA;MACAD;QACAE;MACA,CAFA;MAGA;IACA,CAPA;IASAC,YATA,wBASAX,GATA,EASAY,QATA,EASA;MAAA;;MACA;QACA;;QACAC;UACA;YACA;YACAC;UACA;QACA,CALA;;QAMAD;QACAA;MACA,CAVA;IAWA,CArBA;IAuBAE,eAvBA,2BAuBAnC,KAvBA,EAuBA;MACA;QACA;QACA;QACA;;QAEA;UAAA;UACA;QACA,CAFA,MAEA;UACAoC;UACAC;UACAC;UAEAF;UACAC;UACAC;UAEA;QACA;MACA,CAlBA;;MAoBA;QACA;QACA;QACA;QAEAF;QACAC;QACAC;QAEAF;QACAC;QACAC;QAEA;MACA,CAdA;;MAgBA;;MACA;QACAC;MACA;;MACAA;MACA;IACA;EAlEA;AA3EA","names":["data","chalk","theme","computed","defaultTheme","watch","handler","immediate","val","oldVal","themeCluster","originalCluster","console","$message","message","customClass","type","duration","iconClass","getHandler","styleTag","document","url","version","chalkHandler","styles","filter","style","methods","updateStyle","oldCluster","newCluster","newStyle","getCSSString","variable","xhr","resolve","getThemeCluster","red","green","blue","clusters"],"sourceRoot":"src/components/ThemePicker","sources":["index.vue"],"sourcesContent":["<template>\n <el-color-picker\n v-model=\"theme\"\n :predefine=\"['#409EFF', '#1890ff', '#304156','#212121','#11a983', '#13c2c2', '#6959CD', '#f5222d', ]\"\n class=\"theme-picker\"\n popper-class=\"theme-picker-dropdown\"\n />\n</template>\n\n<script>\nconst version = require('element-ui/package.json').version // element-ui version from node_modules\nconst ORIGINAL_THEME = '#409EFF' // default color\n\nexport default {\n data() {\n return {\n chalk: '', // content of theme-chalk css\n theme: ''\n }\n },\n computed: {\n defaultTheme() {\n return this.$store.state.settings.theme\n }\n },\n watch: {\n defaultTheme: {\n handler: function(val, oldVal) {\n this.theme = val\n },\n immediate: true\n },\n async theme(val) {\n const oldVal = this.chalk ? this.theme : ORIGINAL_THEME\n if (typeof val !== 'string') return\n const themeCluster = this.getThemeCluster(val.replace('#', ''))\n const originalCluster = this.getThemeCluster(oldVal.replace('#', ''))\n console.log(themeCluster, originalCluster)\n\n const $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\n const getHandler = (variable, id) => {\n return () => {\n const originalCluster = this.getThemeCluster(ORIGINAL_THEME.replace('#', ''))\n const newStyle = this.updateStyle(this[variable], originalCluster, themeCluster)\n\n let 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\n if (!this.chalk) {\n const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`\n await this.getCSSString(url, 'chalk')\n }\n\n const chalkHandler = getHandler('chalk', 'chalk-style')\n\n chalkHandler()\n\n const styles = [].slice.call(document.querySelectorAll('style'))\n .filter(style => {\n const text = style.innerText\n return new RegExp(oldVal, 'i').test(text) && !/Chalk Variables/.test(text)\n })\n styles.forEach(style => {\n const { innerText } = style\n if (typeof innerText !== 'string') return\n style.innerText = this.updateStyle(innerText, originalCluster, themeCluster)\n })\n\n this.$emit('change', val)\n\n $message.close()\n }\n },\n\n methods: {\n updateStyle(style, oldCluster, newCluster) {\n let newStyle = style\n oldCluster.forEach((color, index) => {\n newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index])\n })\n return newStyle\n },\n\n getCSSString(url, variable) {\n return new Promise(resolve => {\n const xhr = new XMLHttpRequest()\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4 && xhr.status === 200) {\n this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '')\n resolve()\n }\n }\n xhr.open('GET', url)\n xhr.send()\n })\n },\n\n getThemeCluster(theme) {\n const tintColor = (color, tint) => {\n let red = parseInt(color.slice(0, 2), 16)\n let green = parseInt(color.slice(2, 4), 16)\n let blue = parseInt(color.slice(4, 6), 16)\n\n if (tint === 0) { // 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\n red = red.toString(16)\n green = green.toString(16)\n blue = blue.toString(16)\n\n return `#${red}${green}${blue}`\n }\n }\n\n const shadeColor = (color, shade) => {\n let red = parseInt(color.slice(0, 2), 16)\n let green = parseInt(color.slice(2, 4), 16)\n let blue = parseInt(color.slice(4, 6), 16)\n\n red = Math.round((1 - shade) * red)\n green = Math.round((1 - shade) * green)\n blue = Math.round((1 - shade) * blue)\n\n red = red.toString(16)\n green = green.toString(16)\n blue = blue.toString(16)\n\n return `#${red}${green}${blue}`\n }\n\n const clusters = [theme]\n for (let 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}\n</script>\n\n<style>\n.theme-message,\n.theme-picker-dropdown {\n z-index: 99999 !important;\n}\n\n.theme-picker .el-color-picker__trigger {\n height: 26px !important;\n width: 26px !important;\n padding: 2px;\n}\n\n.theme-picker-dropdown .el-color-dropdown__link-btn {\n display: none;\n}\n</style>\n"]}]}
|