From edfa5bdb2fb291d764e98531f20fec9665fe0cca Mon Sep 17 00:00:00 2001 From: Prestasafe Date: Wed, 20 Sep 2023 16:40:19 +0200 Subject: [PATCH 01/11] fix multishop settings. --- _dev/src/components/PanelThemeSettings.vue | 35 +++++++-- classes/PrettyBlockCompiler.php | 75 +++++++++++++++++-- classes/PrettyBlocksModel.php | 49 +++++++++--- controllers/front/ajax.php | 4 + .../AdminThemeManagerController.php | 5 +- 5 files changed, 141 insertions(+), 27 deletions(-) diff --git a/_dev/src/components/PanelThemeSettings.vue b/_dev/src/components/PanelThemeSettings.vue index 059d964e..2a9feabe 100644 --- a/_dev/src/components/PanelThemeSettings.vue +++ b/_dev/src/components/PanelThemeSettings.vue @@ -6,6 +6,8 @@ import { defineComponent, onMounted, onUnmounted, ref } from 'vue' import emitter from 'tiny-emitter/instance' import { createToaster } from "@meforma/vue-toaster"; +import { contextShop } from "../store/currentBlock"; + const toaster = createToaster({ position: 'top', }); @@ -30,13 +32,23 @@ const canSave = ref(false) const settings = ref(false) const getInputs = () => { - HttpClient.get(ajax_urls.theme_settings) - .then((data) => { - console.log('data settings',data) - canSave.value = true - settings.value = data.settings - }) - .catch(error => console.error(error)); + emitter.on('initStates', async () => { + + let contextStore = contextShop(); + let context = await contextStore.getContext(); + const params = { + ajax: true, + ctx_id_lang: context.id_lang, + ctx_id_shop: context.id_shop, + }; + HttpClient.get(ajax_urls.theme_settings, params) + .then((data) => { + canSave.value = true + settings.value = data.settings + }) + .catch(error => console.error(error)); + }) + } @@ -46,16 +58,23 @@ function capitalizeFirstLetter(string) { return string.charAt(0).toUpperCase() + string.slice(1); } -const saveThemeSettings = () => { +const saveThemeSettings = async () => { + let contextStore = contextShop(); + let context = await contextStore.getContext(); + console.log('save context', context) + console.log('urls', ajax_urls.state) const params = { action: 'updateThemeSettings', ajax: true, + ctx_id_shop: context.id_shop, + ctx_id_lang: context.id_lang, stateRequest: settings.value, ajax_token: security_app.ajax_token } HttpClient.post(ajax_urls.state, params) .then((data) => { + console.log('data', data) if (data.message) { toaster.show(data.message) emitter.emit('reloadIframe') diff --git a/classes/PrettyBlockCompiler.php b/classes/PrettyBlockCompiler.php index d7de99bc..1c4dac16 100644 --- a/classes/PrettyBlockCompiler.php +++ b/classes/PrettyBlockCompiler.php @@ -27,11 +27,14 @@ class PrettyBlocksCompiler private $_sass = ''; private $_compiled = ''; private $outTarget = 'css'; + public $compiler = null; + private $filesToExtract = []; public function __construct($entries = [], $out = '') { $this->entries = $entries; $this->out = $out; + $this->compiler = new Compiler(); } /** @@ -53,6 +56,25 @@ public function setEntries($entries) return $this; } + /** + * Set files to extract + * @param $entries + * @return PrettyBlockCompiler + */ + public function setFilesToExtract($entries) + { + if (!is_array($entries)) { + $entries = [$entries]; + } + foreach ($entries as $entry) { + if (!in_array($entry, $this->filesToExtract)) { + $this->filesToExtract[] = $entry; + } + } + + return $this; + } + /** * Set Output path * @@ -128,10 +150,12 @@ public function compile() return false; } - $scss = new Compiler(); + $scss = $this->compiler; + // set import path if (count($this->import_path) > 0) { $scss->setImportPaths($this->import_path); } + // add entries foreach ($this->entries as $entry) { $path = HelperBuilder::pathFormattedFromString($entry); $path = rtrim($path, '/'); @@ -140,6 +164,10 @@ public function compile() } } $this->filterVars(); + + // add files to extract + $this->_sass .= $this->filterFile($this->filesToExtract); + $compile = $scss->compileString($this->_sass)->getCss(); if ($compile !== '' && $this->outTarget == 'css') { // compile sass to css @@ -161,18 +189,51 @@ protected function filterVars() { if ($this->_sass != '') { $to_filter = $this->_sass; - $re = '/.*(\$SETTINGS_.\S*);*\b/'; - preg_match_all($re, $this->_sass, $vars); - $content = str_replace('$SETTINGS_', '', $vars[1]); - foreach ($content as $var) { - $to_filter = str_replace('$SETTINGS_' . $var, TplSettings::getSettings($var, $var), $to_filter); - } + $to_filter = $this->filterContent($to_filter); $this->_sass = $to_filter; } return $this; } + /** + * Filter file and replace vars + * @param $files + * $files = [ + * '$/modules/your_module/views/css/vars.scss' + * ]; + * @return string + */ + public function filterFile($files) + { + if (!is_array($files)) { + $files = [$files]; + } + $to_filter = ''; + foreach($files as $file) { + $path = HelperBuilder::pathFormattedFromString($file); + $path = rtrim($path, '/'); + if (is_file($path)) { + $to_filter .= Tools::file_get_contents($path); + } + } + return $this->filterContent($to_filter); + } + /** + * Filter content and replace vars + * @param $scss + * @return string + */ + public function filterContent($scss) + { + $re = '/.*(\$SETTINGS_.\S*);*\b/'; + preg_match_all($re, $scss, $vars); + $content = str_replace('$SETTINGS_', '', $vars[1]); + foreach ($content as $var) { + $scss = str_replace('$SETTINGS_' . $var, TplSettings::getSettings($var, $var), $scss); + } + return $scss; + } /** * Write sass file if is compiled * diff --git a/classes/PrettyBlocksModel.php b/classes/PrettyBlocksModel.php index af276f14..1c1263b1 100644 --- a/classes/PrettyBlocksModel.php +++ b/classes/PrettyBlocksModel.php @@ -450,9 +450,9 @@ public function getDefaultParams() * * @return void */ - private static function _compileSass() + private static function _compileSass($params = null) { - $sass_hook = HelperBuilder::hookToArray('ActionQueueSassCompile'); + $sass_hook = HelperBuilder::hookToArray('ActionQueueSassCompile', $params); foreach ($sass_hook as $options) { $compiler = new PrettyBlocksCompiler(); if (isset($options['import_path'])) { @@ -461,6 +461,9 @@ private static function _compileSass() if (isset($options['entries'])) { $compiler->setEntries($options['entries']); } + if (isset($options['files_to_extract'])) { + $compiler->setFilesToExtract($options['files_to_extract']); + } if (isset($options['out'])) { $compiler->setOuput($options['out']); } @@ -468,6 +471,20 @@ private static function _compileSass() } } + /** + * get shop by id + * @param int $id + * @return array + */ + public static function getShopById($id) + { + return Db::getInstance()->getRow( + 'SELECT `id_shop`, `theme_name` + FROM `' . _DB_PREFIX_ . 'shop` + WHERE `id_shop` = ' . (int) $id + ); + } + /** * update theme settings * @@ -477,10 +494,13 @@ private static function _compileSass() */ public static function updateThemeSettings($stateRequest) { - // dump($stateRequest); - // die(); - $context = Context::getContext(); - $profile = \PrettyBlocksSettingsModel::getProfileByTheme($context->shop->theme_name, $context->shop->id); + $context = \Context::getContext(); + + $id_shop = (isset($stateRequest['context']['id_shop'])) ? (int)$stateRequest['context']['id_shop'] : $context->shop->id; + $id_lang = (isset($stateRequest['context']['id_lang'])) ? (int)$stateRequest['context']['id_shop'] : $context->language->id; + $shop = self::getShopById($id_shop); + + $profile = \PrettyBlocksSettingsModel::getProfileByTheme($shop['theme_name'], $id_shop); $res = []; foreach ($stateRequest as $tabs) { foreach ($tabs as $name => $field) { @@ -491,9 +511,17 @@ public static function updateThemeSettings($stateRequest) $res[$name] = $fieldCore->compile(); } } + if($profile->theme_name !== $shop['theme_name']){ + $profile->theme_name = pSQL($shop['theme_name']); + } $profile->settings = json_encode($res, true); $profile->save(); - self::_compileSass(); + self::_compileSass([ + 'id_shop' => $id_shop, + 'id_lang' => $id_lang, + 'theme_name' => $shop['theme_name'], + 'profile' => $profile + ]); } /** @@ -805,11 +833,12 @@ public function add($auto_date = true, $null_values = false) * * @return array */ - public static function getThemeSettings($with_tabs = true, $context = 'front') + public static function getThemeSettings($with_tabs = true, $context = 'front', $id_shop = null) { + $context = \Context::getContext(); + $id_shop = ($id_shop !== null) ? (int) $id_shop : $context->shop->id; $theme_settings = \HelperBuilder::hookToArray('ActionRegisterThemeSettings'); - $context = Context::getContext(); - $settingsDB = \PrettyBlocksSettingsModel::getSettings($context->shop->theme_name, $context->shop->id); + $settingsDB = \PrettyBlocksSettingsModel::getSettings($context->shop->theme_name, $id_shop); $res = []; $no_tabs = []; foreach ($theme_settings as $key => $settings) { diff --git a/controllers/front/ajax.php b/controllers/front/ajax.php index d92d3845..602a214f 100755 --- a/controllers/front/ajax.php +++ b/controllers/front/ajax.php @@ -258,6 +258,10 @@ public function displayAjaxupdateStateParentPosition() public function displayAjaxupdateThemeSettings() { $stateRequest = Tools::getValue('stateRequest'); + $stateRequest['context'] = [ + 'id_lang' => (int) Tools::getValue('ctx_id_lang'), + 'id_shop' => (int) Tools::getValue('ctx_id_shop'), + ]; PrettyBlocksModel::updateThemeSettings($stateRequest); exit(json_encode([ 'success' => true, diff --git a/src/Controller/AdminThemeManagerController.php b/src/Controller/AdminThemeManagerController.php index c0262c64..931ea3db 100644 --- a/src/Controller/AdminThemeManagerController.php +++ b/src/Controller/AdminThemeManagerController.php @@ -435,9 +435,10 @@ public function testAction(Request $request) return (new JsonResponse())->setData(['blocks' => $blocks]); } - public function getSettingsAction() + public function getSettingsAction(Request $request) { - $res = \PrettyBlocksModel::getThemeSettings(true, 'back'); + $id_shop = (int) $request->get('ctx_id_shop'); + $res = \PrettyBlocksModel::getThemeSettings(true, 'back', $id_shop); return (new JsonResponse())->setData([ 'settings' => $res, From a59a7bdc5ae3cb3c05b42c46d75719163fdd78e4 Mon Sep 17 00:00:00 2001 From: PrestaSafe Date: Tue, 3 Oct 2023 17:31:03 +0200 Subject: [PATCH 02/11] postmessage to iframes --- _dev/src/scripts/iframe.js | 118 +-- _dev/yarn.lock | 1964 +++++++++++++++++------------------- prettyblocks.php | 13 + views/js/prettyblocks.js | 80 ++ 4 files changed, 1086 insertions(+), 1089 deletions(-) create mode 100644 views/js/prettyblocks.js diff --git a/_dev/src/scripts/iframe.js b/_dev/src/scripts/iframe.js index 729ba72c..e981894f 100644 --- a/_dev/src/scripts/iframe.js +++ b/_dev/src/scripts/iframe.js @@ -18,6 +18,7 @@ export default class Iframe { preventDefaults = (e) => { e.preventDefault() } + constructor(current_url, id_lang, id_shop) { this.current_url.value = current_url @@ -138,16 +139,53 @@ async getZones(document) { return zones } +sendPrettyBlocksEvents(eventType, data = []) { + let message = { type: eventType, data: data }; + let iframe = document.getElementById('website-iframe') + iframe.contentWindow.postMessage(message, "*"); +} + async loadIframe () { // iframe + + // Définir l'eventHandler + let eventHandler = (event) => { + if(event.data.type == 'zones') + { + let zones = event.data.data + let piniazones = storedZones() + piniazones.$patch({ + zones: zones + }) + emitter.emit('loadZones', zones) + console.log('zonesLOADED', zones) + } + if(event.data.type == 'loadStateConfig') + { + let id_prettyblocks = event.data.data + emitter.emit('loadStateConfig', id_prettyblocks) + } + window.removeEventListener("message", eventHandler, false); + } + + window.addEventListener("message", eventHandler, false); + + this.loader.value = true let iframe = await document.getElementById('website-iframe') if (iframe) { await iframe.addEventListener('load', (e) => { + + + this.sendPrettyBlocksEvents('initIframe') + this.sendPrettyBlocksEvents('getZones') + // let message = { type: "getZones", data: [] }; + // iframe.contentWindow.postMessage(message, "*"); let doc = e.target.contentWindow.document let jQuery = e.target.contentWindow.$ let iwindow = e.target.contentWindow + let body = doc.body emitter.off('triggerLoadedEvents') emitter.on('triggerLoadedEvents', (dom) => { // trigger for init theme @@ -156,34 +194,17 @@ async loadIframe () { }) - let body = doc.body - this.events.forEach((eventName) => { - doc.body.addEventListener(eventName, this.preventDefaults) - }) - // getZones - this.getZones(doc).then((zones) => { - // emitter.off('loadZones') - emitter.emit('loadZones', zones) - }) - - // detect new url - iwindow.addEventListener('beforeunload', function(e) { - // this.currentUrl.value = e.target.URL - - // currentUrl.value = iwindow.location.href - // iframe.src = iwindow.location.href - }); - - + // this.events.forEach((eventName) => { + // doc.body.addEventListener(eventName, this.preventDefaults) + // }) + emitter.off('stateUpdated') emitter.on('stateUpdated', (id_prettyblocks) => { let currentBlock = useStore() let html = this.getBlockRender(id_prettyblocks) // update module in iFrame ! html.then((data) => { - let domBlock = body.querySelector('[data-id-prettyblocks="' + currentBlock.id_prettyblocks + '"]') - domBlock.innerHTML = data - + this.sendPrettyBlocksEvents('updateHTMLBlock', {id_prettyblocks: id_prettyblocks, html: data}) const tb = new toolbar( body.querySelectorAll('.ptb-title'), doc, iwindow); this.loadToolBar(tb) }) @@ -193,56 +214,19 @@ async loadIframe () { // when iframe loaded, get blocks emitter.off('scrollInIframe') emitter.on('scrollInIframe', (id_prettyblocks) => { - let el = doc.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') - if(doc.body.contains(el)) - { - el.scrollIntoView({ - alignToTop: false, - behavior: 'smooth', - block: 'center' - }) - let tr = doc.querySelectorAll('[data-block]') - tr.forEach(bl => { - bl.classList.remove('border-dotted') - }) - el.classList.add('border-dotted') - } + this.sendPrettyBlocksEvents('scrollInIframe', id_prettyblocks) }) // hover blocks - body.querySelectorAll('div[data-block]').forEach((div) => { - div.addEventListener('click', (el) => { - this.registerClick(el.target) - }) - // div.addEventListener('mouseover', (el) => { - // let block = el.target.closest('[data-block]') - // if(!block.classList.contains('border-dotted')) - // { - // block.classList.add('border-dotted') - // } - // }) - - // div.addEventListener('mouseleave', (el) => { - // let block = el.target.closest('[data-block]') - // if(block.classList.contains('border-dotted')) - // { - // block.classList.remove('border-dotted') - // } - // }) - }) + // body.querySelectorAll('div[data-block]').forEach((div) => { + // div.addEventListener('click', (el) => { + // this.registerClick(el.target) + // }) + // }) emitter.off('focusOnZone') emitter.on('focusOnZone', (zone_name) => { - body.querySelectorAll('.border-dotted').forEach((div) => { - div.classList.remove('border-dotted') - }) - let el = body.querySelector('[data-prettyblocks-zone="'+zone_name+'"]') - el.classList.add('border-dotted') - el.scrollIntoView({ - alignToTop: true, - behavior: 'smooth', - block: 'center' - }) - + this.sendPrettyBlocksEvents('focusOnZone', zone_name) + emitter.emit('initStates') }) diff --git a/_dev/yarn.lock b/_dev/yarn.lock index cec0438b..16d1f99f 100644 --- a/_dev/yarn.lock +++ b/_dev/yarn.lock @@ -3,142 +3,137 @@ "@alloc/quick-lru@^5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" - integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + "integrity" "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" + "resolved" "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" + "version" "5.2.0" "@babel/parser@^7.20.15", "@babel/parser@^7.21.3": - version "7.22.7" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== - -"@esbuild/linux-loong64@0.14.54": - version "0.14.54" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" - integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== + "integrity" "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz" + "version" "7.22.7" "@headlessui/vue@^1.7.16": - version "1.7.16" - resolved "https://registry.yarnpkg.com/@headlessui/vue/-/vue-1.7.16.tgz#bdc9d32d329248910325539b99e6abfce0c69f89" - integrity sha512-nKT+nf/q6x198SsyK54mSszaQl/z+QxtASmgMEJtpxSX2Q0OPJX0upS/9daDyiECpeAsvjkoOrm2O/6PyBQ+Qg== + "integrity" "sha512-nKT+nf/q6x198SsyK54mSszaQl/z+QxtASmgMEJtpxSX2Q0OPJX0upS/9daDyiECpeAsvjkoOrm2O/6PyBQ+Qg==" + "resolved" "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.16.tgz" + "version" "1.7.16" "@heroicons/vue@^2.0.18": - version "2.0.18" - resolved "https://registry.npmjs.org/@heroicons/vue/-/vue-2.0.18.tgz" - integrity sha512-BcTC9nq2TkwNSfQuqo96J7ehx4etezypc2YeTq7KsXWxrcrerhkgjLrxGRBnStN0wrXo0Gv4BInybqz5uBG6Cw== + "integrity" "sha512-BcTC9nq2TkwNSfQuqo96J7ehx4etezypc2YeTq7KsXWxrcrerhkgjLrxGRBnStN0wrXo0Gv4BInybqz5uBG6Cw==" + "resolved" "https://registry.npmjs.org/@heroicons/vue/-/vue-2.0.18.tgz" + "version" "2.0.18" "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + "integrity" "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==" + "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" + "version" "0.3.3" dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + "version" "3.1.0" "@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + "integrity" "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "resolved" "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + "version" "1.1.2" "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + "integrity" "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" + "version" "1.4.15" + +"@jridgewell/sourcemap-codec@1.4.14": + "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + "version" "1.4.14" "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + "integrity" "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==" + "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz" + "version" "0.3.18" dependencies: "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" "@meforma/vue-toaster@^1.3.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@meforma/vue-toaster/-/vue-toaster-1.3.0.tgz" - integrity sha512-jH0zOA/jTiT+UKHO9n5hjPTLkIfg7d66X4fnd7ssIbcXpZOoe+J8IY6Kf3nRW5iVD6/tkjeyp+tjVK8zk6zASg== + "integrity" "sha512-jH0zOA/jTiT+UKHO9n5hjPTLkIfg7d66X4fnd7ssIbcXpZOoe+J8IY6Kf3nRW5iVD6/tkjeyp+tjVK8zk6zASg==" + "resolved" "https://registry.npmjs.org/@meforma/vue-toaster/-/vue-toaster-1.3.0.tgz" + "version" "1.3.0" dependencies: - stylus "~0.54.8" - stylus-loader "~3.0.2" + "stylus" "~0.54.8" + "stylus-loader" "~3.0.2" "@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + "version" "2.1.5" dependencies: "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" + "run-parallel" "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + "version" "2.0.5" "@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + "version" "1.2.8" dependencies: "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" + "fastq" "^1.6.0" "@swc/helpers@^0.2.13": - version "0.2.14" - resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.2.14.tgz" - integrity sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA== + "integrity" "sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA==" + "resolved" "https://registry.npmjs.org/@swc/helpers/-/helpers-0.2.14.tgz" + "version" "0.2.14" "@tailwindcss/forms@^0.5.6": - version "0.5.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.6.tgz#29c6c2b032b363e0c5110efed1499867f6d7e868" - integrity sha512-Fw+2BJ0tmAwK/w01tEFL5TiaJBX1NLT1/YbWgvm7ws3Qcn11kiXxzNTEQDMs5V3mQemhB56l3u0i9dwdzSQldA== + "integrity" "sha512-Fw+2BJ0tmAwK/w01tEFL5TiaJBX1NLT1/YbWgvm7ws3Qcn11kiXxzNTEQDMs5V3mQemhB56l3u0i9dwdzSQldA==" + "resolved" "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.6.tgz" + "version" "0.5.6" dependencies: - mini-svg-data-uri "^1.2.3" + "mini-svg-data-uri" "^1.2.3" "@tinymce/tinymce-vue@^5.1.1": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@tinymce/tinymce-vue/-/tinymce-vue-5.1.1.tgz#0879787e07833a4316b2eaf0417c7c6a2abce86b" - integrity sha512-iO57HOWesFOhsaqjA5Ea6sDvQBmJJH3/dq00Uvg7metlct2kLF+ctRgoDsetLt6gmeZ7COPftr814/XzqnJ/dg== + "integrity" "sha512-iO57HOWesFOhsaqjA5Ea6sDvQBmJJH3/dq00Uvg7metlct2kLF+ctRgoDsetLt6gmeZ7COPftr814/XzqnJ/dg==" + "resolved" "https://registry.npmjs.org/@tinymce/tinymce-vue/-/tinymce-vue-5.1.1.tgz" + "version" "5.1.1" dependencies: - tinymce "^6.0.0 || ^5.5.1" + "tinymce" "^6.0.0 || ^5.5.1" "@vitejs/plugin-vue@^2.3.4": - version "2.3.4" - resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.4.tgz" - integrity sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg== + "integrity" "sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==" + "resolved" "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.4.tgz" + "version" "2.3.4" "@vue/compiler-core@3.3.4": - version "3.3.4" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz" - integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== + "integrity" "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==" + "resolved" "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz" + "version" "3.3.4" dependencies: "@babel/parser" "^7.21.3" "@vue/shared" "3.3.4" - estree-walker "^2.0.2" - source-map-js "^1.0.2" + "estree-walker" "^2.0.2" + "source-map-js" "^1.0.2" "@vue/compiler-dom@3.3.4": - version "3.3.4" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz" - integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== + "integrity" "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==" + "resolved" "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz" + "version" "3.3.4" dependencies: "@vue/compiler-core" "3.3.4" "@vue/shared" "3.3.4" "@vue/compiler-sfc@3.3.4": - version "3.3.4" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz" - integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== + "integrity" "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==" + "resolved" "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz" + "version" "3.3.4" dependencies: "@babel/parser" "^7.20.15" "@vue/compiler-core" "3.3.4" @@ -146,1024 +141,949 @@ "@vue/compiler-ssr" "3.3.4" "@vue/reactivity-transform" "3.3.4" "@vue/shared" "3.3.4" - estree-walker "^2.0.2" - magic-string "^0.30.0" - postcss "^8.1.10" - source-map-js "^1.0.2" + "estree-walker" "^2.0.2" + "magic-string" "^0.30.0" + "postcss" "^8.1.10" + "source-map-js" "^1.0.2" "@vue/compiler-ssr@3.3.4": - version "3.3.4" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz" - integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== + "integrity" "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==" + "resolved" "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz" + "version" "3.3.4" dependencies: "@vue/compiler-dom" "3.3.4" "@vue/shared" "3.3.4" "@vue/devtools-api@^6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz" - integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== + "integrity" "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + "resolved" "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz" + "version" "6.5.0" "@vue/reactivity-transform@3.3.4": - version "3.3.4" - resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz" - integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== + "integrity" "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==" + "resolved" "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz" + "version" "3.3.4" dependencies: "@babel/parser" "^7.20.15" "@vue/compiler-core" "3.3.4" "@vue/shared" "3.3.4" - estree-walker "^2.0.2" - magic-string "^0.30.0" + "estree-walker" "^2.0.2" + "magic-string" "^0.30.0" "@vue/reactivity@3.3.4": - version "3.3.4" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz" - integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== + "integrity" "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==" + "resolved" "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz" + "version" "3.3.4" dependencies: "@vue/shared" "3.3.4" "@vue/runtime-core@3.3.4": - version "3.3.4" - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz" - integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== + "integrity" "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==" + "resolved" "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz" + "version" "3.3.4" dependencies: "@vue/reactivity" "3.3.4" "@vue/shared" "3.3.4" "@vue/runtime-dom@3.3.4": - version "3.3.4" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz" - integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== + "integrity" "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==" + "resolved" "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz" + "version" "3.3.4" dependencies: "@vue/runtime-core" "3.3.4" "@vue/shared" "3.3.4" - csstype "^3.1.1" + "csstype" "^3.1.1" "@vue/server-renderer@3.3.4": - version "3.3.4" - resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz" - integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== + "integrity" "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==" + "resolved" "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz" + "version" "3.3.4" dependencies: "@vue/compiler-ssr" "3.3.4" "@vue/shared" "3.3.4" "@vue/shared@3.3.4": - version "3.3.4" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz" - integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== + "integrity" "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + "resolved" "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz" + "version" "3.3.4" "@vueform/multiselect@^2.6.2": - version "2.6.2" - resolved "https://registry.npmjs.org/@vueform/multiselect/-/multiselect-2.6.2.tgz" - integrity sha512-4BFvXyzyi0Pqi/lsYdGwONsQy+ypiVzuQbmoDUlttTxuoujFtf9AdeHi1ZhfIorXG9BiysK1HcQSfYB6USgwfQ== - -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" - integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" - integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^10.4.15: - version "10.4.15" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.15.tgz#a1230f4aeb3636b89120b34a1f513e2f6834d530" - integrity sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew== - dependencies: - browserslist "^4.21.10" - caniuse-lite "^1.0.30001520" - fraction.js "^4.2.0" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.2.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.21.10: - version "4.21.10" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" - integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== - dependencies: - caniuse-lite "^1.0.30001517" - electron-to-chromium "^1.4.477" - node-releases "^2.0.13" - update-browserslist-db "^1.0.11" - -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520: - version "1.0.30001527" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz#813826554828245ccee776c850566dce12bdeaba" - integrity sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ== - -chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" + "integrity" "sha512-4BFvXyzyi0Pqi/lsYdGwONsQy+ypiVzuQbmoDUlttTxuoujFtf9AdeHi1ZhfIorXG9BiysK1HcQSfYB6USgwfQ==" + "resolved" "https://registry.npmjs.org/@vueform/multiselect/-/multiselect-2.6.2.tgz" + "version" "2.6.2" + +"any-promise@^1.0.0": + "integrity" "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + "resolved" "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" + "version" "1.3.0" + +"anymatch@~3.1.2": + "integrity" "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==" + "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + "version" "3.1.3" + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" + +"arg@^5.0.2": + "integrity" "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "resolved" "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" + "version" "5.0.2" + +"atob@^2.1.2": + "integrity" "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "resolved" "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + "version" "2.1.2" + +"autoprefixer@^10.4.15": + "integrity" "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==" + "resolved" "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz" + "version" "10.4.15" + dependencies: + "browserslist" "^4.21.10" + "caniuse-lite" "^1.0.30001520" + "fraction.js" "^4.2.0" + "normalize-range" "^0.1.2" + "picocolors" "^1.0.0" + "postcss-value-parser" "^4.2.0" + +"balanced-match@^1.0.0": + "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + "version" "1.0.2" + +"big.js@^5.2.2": + "integrity" "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "resolved" "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + "version" "5.2.2" + +"binary-extensions@^2.0.0": + "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + "version" "2.2.0" + +"brace-expansion@^1.1.7": + "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"braces@^3.0.2", "braces@~3.0.2": + "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" + "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "fill-range" "^7.0.1" + +"browserslist@^4.21.10", "browserslist@>= 4.21.0": + "integrity" "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==" + "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz" + "version" "4.21.10" + dependencies: + "caniuse-lite" "^1.0.30001517" + "electron-to-chromium" "^1.4.477" + "node-releases" "^2.0.13" + "update-browserslist-db" "^1.0.11" + +"camelcase-css@^2.0.1": + "integrity" "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + "resolved" "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" + "version" "2.0.1" + +"caniuse-lite@^1.0.30001517", "caniuse-lite@^1.0.30001520": + "integrity" "sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ==" + "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz" + "version" "1.0.30001527" + +"chokidar@^3.5.3": + "integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==" + "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + "version" "3.5.3" + dependencies: + "anymatch" "~3.1.2" + "braces" "~3.0.2" + "glob-parent" "~5.1.2" + "is-binary-path" "~2.1.0" + "is-glob" "~4.0.1" + "normalize-path" "~3.0.0" + "readdirp" "~3.6.0" optionalDependencies: - fsevents "~2.3.2" - -commander@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -css-parse@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz" - integrity sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA== - dependencies: - css "^2.0.0" - -css@^2.0.0: - version "2.2.4" - resolved "https://registry.npmjs.org/css/-/css-2.2.4.tgz" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -csstype@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== - -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - -didyoumean@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" - integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - -dropzone@^6.0.0-beta.2: - version "6.0.0-beta.2" - resolved "https://registry.npmjs.org/dropzone/-/dropzone-6.0.0-beta.2.tgz" - integrity sha512-k44yLuFFhRk53M8zP71FaaNzJYIzr99SKmpbO/oZKNslDjNXQsBTdfLs+iONd0U0L94zzlFzRnFdqbLcs7h9fQ== + "fsevents" "~2.3.2" + +"classnames@^2.2.5": + "integrity" "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + "resolved" "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz" + "version" "2.3.2" + +"commander@^4.0.0": + "integrity" "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + "resolved" "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + "version" "4.1.1" + +"concat-map@0.0.1": + "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"core-js@^3.1.3": + "integrity" "sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ==" + "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.31.1.tgz" + "version" "3.31.1" + +"css-parse@~2.0.0": + "integrity" "sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA==" + "resolved" "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "css" "^2.0.0" + +"css@^2.0.0": + "integrity" "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==" + "resolved" "https://registry.npmjs.org/css/-/css-2.2.4.tgz" + "version" "2.2.4" + dependencies: + "inherits" "^2.0.3" + "source-map" "^0.6.1" + "source-map-resolve" "^0.5.2" + "urix" "^0.1.0" + +"cssesc@^3.0.0": + "integrity" "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + "resolved" "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + "version" "3.0.0" + +"csstype@^3.1.1": + "integrity" "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz" + "version" "3.1.2" + +"debug@~3.1.0": + "integrity" "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "ms" "2.0.0" + +"decode-uri-component@^0.2.0": + "integrity" "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + "resolved" "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" + "version" "0.2.2" + +"didyoumean@^1.2.2": + "integrity" "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + "resolved" "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" + "version" "1.2.2" + +"dlv@^1.1.3": + "integrity" "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "resolved" "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" + "version" "1.1.3" + +"dropzone@^6.0.0-beta.2": + "integrity" "sha512-k44yLuFFhRk53M8zP71FaaNzJYIzr99SKmpbO/oZKNslDjNXQsBTdfLs+iONd0U0L94zzlFzRnFdqbLcs7h9fQ==" + "resolved" "https://registry.npmjs.org/dropzone/-/dropzone-6.0.0-beta.2.tgz" + "version" "6.0.0-beta.2" dependencies: "@swc/helpers" "^0.2.13" - just-extend "^5.0.0" - -electron-to-chromium@^1.4.477: - version "1.4.508" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz#5641ff2f5ba11df4bd960fe6a2f9f70aa8b9af96" - integrity sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -esbuild-android-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" - integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== - -esbuild-android-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" - integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== - -esbuild-darwin-64@0.14.54: - version "0.14.54" - resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz" - integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== - -esbuild-darwin-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz" - integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== - -esbuild-freebsd-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" - integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== - -esbuild-freebsd-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" - integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== - -esbuild-linux-32@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" - integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== - -esbuild-linux-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" - integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== - -esbuild-linux-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" - integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== - -esbuild-linux-arm@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" - integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== - -esbuild-linux-mips64le@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" - integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== - -esbuild-linux-ppc64le@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" - integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== - -esbuild-linux-riscv64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" - integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== - -esbuild-linux-s390x@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" - integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== - -esbuild-netbsd-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" - integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== - -esbuild-openbsd-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" - integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== - -esbuild-sunos-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" - integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== - -esbuild-windows-32@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" - integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== - -esbuild-windows-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" - integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== - -esbuild-windows-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" - integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== - -esbuild@^0.14.27: - version "0.14.54" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz" - integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== + "just-extend" "^5.0.0" + +"electron-to-chromium@^1.4.477": + "integrity" "sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz" + "version" "1.4.508" + +"emojis-list@^3.0.0": + "integrity" "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + "resolved" "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + "version" "3.0.0" + +"esbuild-linux-64@0.14.54": + "integrity" "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==" + "resolved" "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz" + "version" "0.14.54" + +"esbuild@^0.14.27": + "integrity" "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==" + "resolved" "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz" + "version" "0.14.54" optionalDependencies: "@esbuild/linux-loong64" "0.14.54" - esbuild-android-64 "0.14.54" - esbuild-android-arm64 "0.14.54" - esbuild-darwin-64 "0.14.54" - esbuild-darwin-arm64 "0.14.54" - esbuild-freebsd-64 "0.14.54" - esbuild-freebsd-arm64 "0.14.54" - esbuild-linux-32 "0.14.54" - esbuild-linux-64 "0.14.54" - esbuild-linux-arm "0.14.54" - esbuild-linux-arm64 "0.14.54" - esbuild-linux-mips64le "0.14.54" - esbuild-linux-ppc64le "0.14.54" - esbuild-linux-riscv64 "0.14.54" - esbuild-linux-s390x "0.14.54" - esbuild-netbsd-64 "0.14.54" - esbuild-openbsd-64 "0.14.54" - esbuild-sunos-64 "0.14.54" - esbuild-windows-32 "0.14.54" - esbuild-windows-64 "0.14.54" - esbuild-windows-arm64 "0.14.54" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -fast-glob@^3.2.12: - version "3.3.0" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz" - integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== + "esbuild-android-64" "0.14.54" + "esbuild-android-arm64" "0.14.54" + "esbuild-darwin-64" "0.14.54" + "esbuild-darwin-arm64" "0.14.54" + "esbuild-freebsd-64" "0.14.54" + "esbuild-freebsd-arm64" "0.14.54" + "esbuild-linux-32" "0.14.54" + "esbuild-linux-64" "0.14.54" + "esbuild-linux-arm" "0.14.54" + "esbuild-linux-arm64" "0.14.54" + "esbuild-linux-mips64le" "0.14.54" + "esbuild-linux-ppc64le" "0.14.54" + "esbuild-linux-riscv64" "0.14.54" + "esbuild-linux-s390x" "0.14.54" + "esbuild-netbsd-64" "0.14.54" + "esbuild-openbsd-64" "0.14.54" + "esbuild-sunos-64" "0.14.54" + "esbuild-windows-32" "0.14.54" + "esbuild-windows-64" "0.14.54" + "esbuild-windows-arm64" "0.14.54" + +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + +"estree-walker@^2.0.2": + "integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + "version" "2.0.2" + +"fast-glob@^3.2.12": + "integrity" "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==" + "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz" + "version" "3.3.0" dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@7.1.6: - version "7.1.6" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.6: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-core-module@^2.11.0: - version "2.12.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== - dependencies: - has "^1.0.3" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -jiti@^1.18.2: - version "1.19.1" - resolved "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz" - integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg== - -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -just-extend@^5.0.0: - version "5.1.1" - resolved "https://registry.npmjs.org/just-extend/-/just-extend-5.1.1.tgz" - integrity sha512-b+z6yF1d4EOyDgylzQo5IminlUmzSeqR1hs/bzjBNjuGras4FXq/6TrzjxfN0j+TmI0ltJzTNlqXUMCniciwKQ== - -lilconfig@^2.0.5, lilconfig@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -loader-utils@^1.0.2: - version "1.4.2" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" - integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== - -magic-string@^0.30.0: - version "0.30.1" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz" - integrity sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA== + "glob-parent" "^5.1.2" + "merge2" "^1.3.0" + "micromatch" "^4.0.4" + +"fastq@^1.6.0": + "integrity" "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==" + "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" + "version" "1.15.0" + dependencies: + "reusify" "^1.0.4" + +"feather-icons@^4.28.0": + "integrity" "sha512-Y7VqN9FYb8KdaSF0qD1081HCkm0v4Eq/fpfQYQnubpqi0hXx14k+gF9iqtRys1SIcTEi97xDi/fmsPFZ8xo0GQ==" + "resolved" "https://registry.npmjs.org/feather-icons/-/feather-icons-4.29.0.tgz" + "version" "4.29.0" + dependencies: + "classnames" "^2.2.5" + "core-js" "^3.1.3" + +"fill-range@^7.0.1": + "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "to-regex-range" "^5.0.1" + +"fraction.js@^4.2.0": + "integrity" "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + "resolved" "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz" + "version" "4.2.0" + +"fs.realpath@^1.0.0": + "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + +"glob-parent@^5.1.2": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob-parent@^6.0.2": + "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "is-glob" "^4.0.3" + +"glob-parent@~5.1.2": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob@^7.1.6": + "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + "version" "7.2.3" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.1.1" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"glob@7.1.6": + "integrity" "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" + "version" "7.1.6" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.0.4" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + +"inflight@^1.0.4": + "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@^2.0.3", "inherits@2": + "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + "version" "2.0.4" + +"is-binary-path@~2.1.0": + "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" + "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "binary-extensions" "^2.0.0" + +"is-core-module@^2.11.0": + "integrity" "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz" + "version" "2.12.1" + dependencies: + "has" "^1.0.3" + +"is-extglob@^2.1.1": + "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + "version" "2.1.1" + +"is-glob@^4.0.1", "is-glob@^4.0.3", "is-glob@~4.0.1": + "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "is-extglob" "^2.1.1" + +"is-number@^7.0.0": + "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + "version" "7.0.0" + +"jiti@^1.18.2": + "integrity" "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==" + "resolved" "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz" + "version" "1.19.1" + +"json5@^1.0.1": + "integrity" "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==" + "resolved" "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "minimist" "^1.2.0" + +"just-extend@^5.0.0": + "integrity" "sha512-b+z6yF1d4EOyDgylzQo5IminlUmzSeqR1hs/bzjBNjuGras4FXq/6TrzjxfN0j+TmI0ltJzTNlqXUMCniciwKQ==" + "resolved" "https://registry.npmjs.org/just-extend/-/just-extend-5.1.1.tgz" + "version" "5.1.1" + +"lilconfig@^2.0.5", "lilconfig@^2.1.0": + "integrity" "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" + "resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" + "version" "2.1.0" + +"lines-and-columns@^1.1.6": + "integrity" "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + "version" "1.2.4" + +"loader-utils@^1.0.2": + "integrity" "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==" + "resolved" "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz" + "version" "1.4.2" + dependencies: + "big.js" "^5.2.2" + "emojis-list" "^3.0.0" + "json5" "^1.0.1" + +"lodash.clonedeep@^4.5.0": + "integrity" "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + "resolved" "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + "version" "4.5.0" + +"magic-string@^0.30.0": + "integrity" "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==" + "resolved" "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz" + "version" "0.30.1" dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mini-svg-data-uri@^1.2.3: - version "1.4.4" - resolved "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz" - integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0: - version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mkdirp@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -mz@^2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -object-assign@^4.0.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pinia@^2.1.6: - version "2.1.6" - resolved "https://registry.npmjs.org/pinia/-/pinia-2.1.6.tgz" - integrity sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ== +"merge2@^1.3.0": + "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + "version" "1.4.1" + +"micromatch@^4.0.4", "micromatch@^4.0.5": + "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + "version" "4.0.5" + dependencies: + "braces" "^3.0.2" + "picomatch" "^2.3.1" + +"mini-svg-data-uri@^1.2.3": + "integrity" "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==" + "resolved" "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz" + "version" "1.4.4" + +"minimatch@^3.0.4", "minimatch@^3.1.1": + "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "brace-expansion" "^1.1.7" + +"minimist@^1.2.0": + "integrity" "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + "version" "1.2.8" + +"mkdirp@~1.0.4": + "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + "version" "1.0.4" + +"ms@2.0.0": + "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "version" "2.0.0" + +"mz@^2.7.0": + "integrity" "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==" + "resolved" "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" + "version" "2.7.0" + dependencies: + "any-promise" "^1.0.0" + "object-assign" "^4.0.1" + "thenify-all" "^1.0.0" + +"nanoid@^3.3.6": + "integrity" "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz" + "version" "3.3.6" + +"node-releases@^2.0.13": + "integrity" "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz" + "version" "2.0.13" + +"normalize-path@^3.0.0", "normalize-path@~3.0.0": + "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + "version" "3.0.0" + +"normalize-range@^0.1.2": + "integrity" "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + "resolved" "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + "version" "0.1.2" + +"object-assign@^4.0.1": + "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "version" "4.1.1" + +"object-hash@^3.0.0": + "integrity" "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + "resolved" "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" + "version" "3.0.0" + +"once@^1.3.0": + "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"path-is-absolute@^1.0.0": + "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-parse@^1.0.7": + "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + "version" "1.0.7" + +"picocolors@^1.0.0": + "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + "version" "1.0.0" + +"picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.3.1": + "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + "version" "2.3.1" + +"pify@^2.3.0": + "integrity" "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + "resolved" "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + "version" "2.3.0" + +"pinia@^2.1.6": + "integrity" "sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ==" + "resolved" "https://registry.npmjs.org/pinia/-/pinia-2.1.6.tgz" + "version" "2.1.6" dependencies: "@vue/devtools-api" "^6.5.0" - vue-demi ">=0.14.5" + "vue-demi" ">=0.14.5" -pirates@^4.0.1: - version "4.0.6" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== +"pirates@^4.0.1": + "integrity" "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==" + "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" + "version" "4.0.6" -postcss-import@^15.1.0: - version "15.1.0" - resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" - integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== +"postcss-import@^15.1.0": + "integrity" "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==" + "resolved" "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" + "version" "15.1.0" dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" + "postcss-value-parser" "^4.0.0" + "read-cache" "^1.0.0" + "resolve" "^1.1.7" -postcss-js@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz" - integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== +"postcss-js@^4.0.1": + "integrity" "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==" + "resolved" "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz" + "version" "4.0.1" dependencies: - camelcase-css "^2.0.1" + "camelcase-css" "^2.0.1" -postcss-load-config@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz" - integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== +"postcss-load-config@^4.0.1": + "integrity" "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==" + "resolved" "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz" + "version" "4.0.1" dependencies: - lilconfig "^2.0.5" - yaml "^2.1.1" + "lilconfig" "^2.0.5" + "yaml" "^2.1.1" -postcss-nested@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz" - integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== +"postcss-nested@^6.0.1": + "integrity" "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==" + "resolved" "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz" + "version" "6.0.1" dependencies: - postcss-selector-parser "^6.0.11" + "postcss-selector-parser" "^6.0.11" -postcss-selector-parser@^6.0.11: - version "6.0.13" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== +"postcss-selector-parser@^6.0.11": + "integrity" "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==" + "resolved" "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz" + "version" "6.0.13" dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" + "cssesc" "^3.0.0" + "util-deprecate" "^1.0.2" -postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== +"postcss-value-parser@^4.0.0", "postcss-value-parser@^4.2.0": + "integrity" "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + "version" "4.2.0" -postcss@^8.1.10, postcss@^8.4.13, postcss@^8.4.23, postcss@^8.4.29: - version "8.4.29" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" - integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== +"postcss@^8.0.0", "postcss@^8.1.0", "postcss@^8.1.10", "postcss@^8.2.14", "postcss@^8.4.13", "postcss@^8.4.21", "postcss@^8.4.23", "postcss@^8.4.29", "postcss@>=8.0.9": + "integrity" "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==" + "resolved" "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz" + "version" "8.4.29" dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" + "nanoid" "^3.3.6" + "picocolors" "^1.0.0" + "source-map-js" "^1.0.2" -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +"queue-microtask@^1.2.2": + "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + "version" "1.2.3" -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== +"read-cache@^1.0.0": + "integrity" "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==" + "resolved" "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" + "version" "1.0.0" dependencies: - pify "^2.3.0" + "pify" "^2.3.0" -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== +"readdirp@~3.6.0": + "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" + "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + "version" "3.6.0" dependencies: - picomatch "^2.2.1" + "picomatch" "^2.2.1" -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== +"resolve-url@^0.2.1": + "integrity" "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" + "resolved" "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + "version" "0.2.1" -resolve@^1.1.7, resolve@^1.22.0, resolve@^1.22.2: - version "1.22.2" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== +"resolve@^1.1.7", "resolve@^1.22.0", "resolve@^1.22.2": + "integrity" "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz" + "version" "1.22.2" dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" + "is-core-module" "^2.11.0" + "path-parse" "^1.0.7" + "supports-preserve-symlinks-flag" "^1.0.0" -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +"reusify@^1.0.4": + "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + "version" "1.0.4" "rollup@>=2.59.0 <2.78.0": - version "2.77.3" - resolved "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz" - integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== + "integrity" "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==" + "resolved" "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz" + "version" "2.77.3" optionalDependencies: - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safer-buffer@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -semver@^6.3.0: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -sortablejs@1.14.0: - version "1.14.0" - resolved "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz" - integrity sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w== - -sortablejs@^1.15.0: - version "1.15.0" - resolved "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz" - integrity sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w== - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-resolve@^0.5.2: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -stylus-loader@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz" - integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA== - dependencies: - loader-utils "^1.0.2" - lodash.clonedeep "^4.5.0" - when "~3.6.x" - -stylus@~0.54.8: - version "0.54.8" - resolved "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz" - integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg== - dependencies: - css-parse "~2.0.0" - debug "~3.1.0" - glob "^7.1.6" - mkdirp "~1.0.4" - safer-buffer "^2.1.2" - sax "~1.2.4" - semver "^6.3.0" - source-map "^0.7.3" - -sucrase@^3.32.0: - version "3.34.0" - resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz" - integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw== + "fsevents" "~2.3.2" + +"run-parallel@^1.1.9": + "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" + "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "queue-microtask" "^1.2.2" + +"safer-buffer@^2.1.2": + "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + "version" "2.1.2" + +"sax@~1.2.4": + "integrity" "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + "version" "1.2.4" + +"semver@^6.3.0": + "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + "version" "6.3.1" + +"sortablejs@^1.15.0": + "integrity" "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==" + "resolved" "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz" + "version" "1.15.0" + +"sortablejs@1.14.0": + "integrity" "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" + "resolved" "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz" + "version" "1.14.0" + +"source-map-js@^1.0.2": + "integrity" "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + "resolved" "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" + "version" "1.0.2" + +"source-map-resolve@^0.5.2": + "integrity" "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==" + "resolved" "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + "version" "0.5.3" + dependencies: + "atob" "^2.1.2" + "decode-uri-component" "^0.2.0" + "resolve-url" "^0.2.1" + "source-map-url" "^0.4.0" + "urix" "^0.1.0" + +"source-map-url@^0.4.0": + "integrity" "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + "resolved" "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" + "version" "0.4.1" + +"source-map@^0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@^0.7.3": + "integrity" "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + "version" "0.7.4" + +"stylus-loader@~3.0.2": + "integrity" "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==" + "resolved" "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "loader-utils" "^1.0.2" + "lodash.clonedeep" "^4.5.0" + "when" "~3.6.x" + +"stylus@*", "stylus@>=0.52.4", "stylus@~0.54.8": + "integrity" "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==" + "resolved" "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz" + "version" "0.54.8" + dependencies: + "css-parse" "~2.0.0" + "debug" "~3.1.0" + "glob" "^7.1.6" + "mkdirp" "~1.0.4" + "safer-buffer" "^2.1.2" + "sax" "~1.2.4" + "semver" "^6.3.0" + "source-map" "^0.7.3" + +"sucrase@^3.32.0": + "integrity" "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==" + "resolved" "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz" + "version" "3.34.0" dependencies: "@jridgewell/gen-mapping" "^0.3.2" - commander "^4.0.0" - glob "7.1.6" - lines-and-columns "^1.1.6" - mz "^2.7.0" - pirates "^4.0.1" - ts-interface-checker "^0.1.9" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tailwindcss@^3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz" - integrity sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w== + "commander" "^4.0.0" + "glob" "7.1.6" + "lines-and-columns" "^1.1.6" + "mz" "^2.7.0" + "pirates" "^4.0.1" + "ts-interface-checker" "^0.1.9" + +"supports-preserve-symlinks-flag@^1.0.0": + "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + "version" "1.0.0" + +"tailwindcss@^3.3.3", "tailwindcss@>=3.0.0 || >= 3.0.0-alpha.1": + "integrity" "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==" + "resolved" "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz" + "version" "3.3.3" dependencies: "@alloc/quick-lru" "^5.2.0" - arg "^5.0.2" - chokidar "^3.5.3" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.2.12" - glob-parent "^6.0.2" - is-glob "^4.0.3" - jiti "^1.18.2" - lilconfig "^2.1.0" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.23" - postcss-import "^15.1.0" - postcss-js "^4.0.1" - postcss-load-config "^4.0.1" - postcss-nested "^6.0.1" - postcss-selector-parser "^6.0.11" - resolve "^1.22.2" - sucrase "^3.32.0" - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== - dependencies: - thenify ">= 3.1.0 < 4" + "arg" "^5.0.2" + "chokidar" "^3.5.3" + "didyoumean" "^1.2.2" + "dlv" "^1.1.3" + "fast-glob" "^3.2.12" + "glob-parent" "^6.0.2" + "is-glob" "^4.0.3" + "jiti" "^1.18.2" + "lilconfig" "^2.1.0" + "micromatch" "^4.0.5" + "normalize-path" "^3.0.0" + "object-hash" "^3.0.0" + "picocolors" "^1.0.0" + "postcss" "^8.4.23" + "postcss-import" "^15.1.0" + "postcss-js" "^4.0.1" + "postcss-load-config" "^4.0.1" + "postcss-nested" "^6.0.1" + "postcss-selector-parser" "^6.0.11" + "resolve" "^1.22.2" + "sucrase" "^3.32.0" + +"thenify-all@^1.0.0": + "integrity" "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==" + "resolved" "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" + "version" "1.6.0" + dependencies: + "thenify" ">= 3.1.0 < 4" "thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + "integrity" "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==" + "resolved" "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" + "version" "3.3.1" dependencies: - any-promise "^1.0.0" + "any-promise" "^1.0.0" -tiny-emitter@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== +"tiny-emitter@^2.1.0": + "integrity" "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + "resolved" "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz" + "version" "2.1.0" -tinycolor2@^1.4.2: - version "1.6.0" - resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz" - integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== +"tinycolor2@^1.4.2": + "integrity" "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" + "resolved" "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz" + "version" "1.6.0" "tinymce@^6.0.0 || ^5.5.1": - version "6.6.0" - resolved "https://registry.npmjs.org/tinymce/-/tinymce-6.6.0.tgz" - integrity sha512-b9Mb7z8ryFOwLm8WCmlpwzdgOt1xD1u5Jjdh68B4QjkIyTLyHRBsfsrbiCUGonnVTymDlkexPkaP8sj24zexKQ== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -ts-interface-checker@^0.1.9: - version "0.1.13" - resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" - integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== - -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -vite@^2.9.16: - version "2.9.16" - resolved "https://registry.npmjs.org/vite/-/vite-2.9.16.tgz" - integrity sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA== - dependencies: - esbuild "^0.14.27" - postcss "^8.4.13" - resolve "^1.22.0" - rollup ">=2.59.0 <2.78.0" + "integrity" "sha512-b9Mb7z8ryFOwLm8WCmlpwzdgOt1xD1u5Jjdh68B4QjkIyTLyHRBsfsrbiCUGonnVTymDlkexPkaP8sj24zexKQ==" + "resolved" "https://registry.npmjs.org/tinymce/-/tinymce-6.6.0.tgz" + "version" "6.6.0" + +"to-regex-range@^5.0.1": + "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "is-number" "^7.0.0" + +"ts-interface-checker@^0.1.9": + "integrity" "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + "resolved" "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" + "version" "0.1.13" + +"update-browserslist-db@^1.0.11": + "integrity" "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==" + "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz" + "version" "1.0.11" + dependencies: + "escalade" "^3.1.1" + "picocolors" "^1.0.0" + +"urix@^0.1.0": + "integrity" "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==" + "resolved" "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + "version" "0.1.0" + +"util-deprecate@^1.0.2": + "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "version" "1.0.2" + +"uuid@^9.0.0": + "integrity" "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" + "version" "9.0.0" + +"vite@^2.5.10", "vite@^2.9.16": + "integrity" "sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA==" + "resolved" "https://registry.npmjs.org/vite/-/vite-2.9.16.tgz" + "version" "2.9.16" + dependencies: + "esbuild" "^0.14.27" + "postcss" "^8.4.13" + "resolve" "^1.22.0" + "rollup" ">=2.59.0 <2.78.0" optionalDependencies: - fsevents "~2.3.2" + "fsevents" "~2.3.2" -vue-color-input@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/vue-color-input/-/vue-color-input-1.0.8.tgz" - integrity sha512-oGYv4utF7ihKrMw3l6tQMgTsaVF+y6oDd37nP8r8K5od8/nVG0p9HOme8IHgw6Q6P0Pa9d9zYmLqT0DWFEBHQA== +"vue-color-input@^1.0.8": + "integrity" "sha512-oGYv4utF7ihKrMw3l6tQMgTsaVF+y6oDd37nP8r8K5od8/nVG0p9HOme8IHgw6Q6P0Pa9d9zYmLqT0DWFEBHQA==" + "resolved" "https://registry.npmjs.org/vue-color-input/-/vue-color-input-1.0.8.tgz" + "version" "1.0.8" dependencies: - tinycolor2 "^1.4.2" + "tinycolor2" "^1.4.2" -vue-demi@>=0.14.5: - version "0.14.5" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz" - integrity sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA== +"vue-demi@>=0.14.5": + "integrity" "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==" + "resolved" "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz" + "version" "0.14.5" -vue-feather@2: - version "2.0.0" - resolved "https://registry.npmjs.org/vue-feather/-/vue-feather-2.0.0.tgz" - integrity sha512-GBvxJWu2ycGTpB8duYWnc5S/TwWPPb2G5Ft2NbkwK1vZkUDUOTYqIb4Nh1HOL6A37Isfrd0Guun0lesS97PfxA== +"vue-feather@2": + "integrity" "sha512-GBvxJWu2ycGTpB8duYWnc5S/TwWPPb2G5Ft2NbkwK1vZkUDUOTYqIb4Nh1HOL6A37Isfrd0Guun0lesS97PfxA==" + "resolved" "https://registry.npmjs.org/vue-feather/-/vue-feather-2.0.0.tgz" + "version" "2.0.0" -vue@^3.3.4: - version "3.3.4" - resolved "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz" - integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== +"vue@^2.6.14 || ^3.3.0", "vue@^3.0.0", "vue@^3.0.0-0 || ^2.6.0", "vue@^3.0.1", "vue@^3.0.5", "vue@^3.2.0", "vue@^3.2.25", "vue@^3.3.4", "vue@>= 3", "vue@3.3.4": + "integrity" "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==" + "resolved" "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz" + "version" "3.3.4" dependencies: "@vue/compiler-dom" "3.3.4" "@vue/compiler-sfc" "3.3.4" @@ -1171,24 +1091,24 @@ vue@^3.3.4: "@vue/server-renderer" "3.3.4" "@vue/shared" "3.3.4" -vuedraggable@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz" - integrity sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww== +"vuedraggable@^4.1.0": + "integrity" "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==" + "resolved" "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz" + "version" "4.1.0" dependencies: - sortablejs "1.14.0" + "sortablejs" "1.14.0" -when@~3.6.x: - version "3.6.4" - resolved "https://registry.npmjs.org/when/-/when-3.6.4.tgz" - integrity sha512-d1VUP9F96w664lKINMGeElWdhhb5sC+thXM+ydZGU3ZnaE09Wv6FaS+mpM9570kcDs/xMfcXJBTLsMdHEFYY9Q== +"when@~3.6.x": + "integrity" "sha512-d1VUP9F96w664lKINMGeElWdhhb5sC+thXM+ydZGU3ZnaE09Wv6FaS+mpM9570kcDs/xMfcXJBTLsMdHEFYY9Q==" + "resolved" "https://registry.npmjs.org/when/-/when-3.6.4.tgz" + "version" "3.6.4" -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +"wrappy@1": + "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" -yaml@^2.1.1: - version "2.3.1" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz" - integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== +"yaml@^2.1.1": + "integrity" "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==" + "resolved" "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz" + "version" "2.3.1" diff --git a/prettyblocks.php b/prettyblocks.php index ec1038ac..4128e719 100755 --- a/prettyblocks.php +++ b/prettyblocks.php @@ -49,6 +49,7 @@ class PrettyBlocks extends Module implements WidgetInterface 'displayFooter', 'displayLeftColumn', 'displayRightColumn', + 'displayHeader', 'actionDispatcher', 'actionFrontControllerSetVariables', ]; @@ -204,6 +205,18 @@ public function getWidgetVariables($hookName = null, array $configuration = []) ]; } + public function hookdisplayHeader($params) + { + $this->context->controller->registerJavascript( + 'prettyblocks', + 'modules/' . $this->name . '/views/js/prettyblocks.js', + [ + 'position' => 'bottom', + 'priority' => 150, + ] + ); + } + /** * Return la view */ diff --git a/views/js/prettyblocks.js b/views/js/prettyblocks.js new file mode 100644 index 00000000..7e56edfd --- /dev/null +++ b/views/js/prettyblocks.js @@ -0,0 +1,80 @@ + +let eventHandler = (event) => { + if (event.data.type == 'initIframe') { + // register block click + document.querySelectorAll('div[data-block]').forEach((div) => { + + div.addEventListener('click', (el) => { + let id_prettyblocks = el.target.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks') + selectBlock(id_prettyblocks) + event.source.postMessage({ type: 'loadStateConfig', data: id_prettyblocks }, '*'); + }) + }) + } + // focus on zone in iframe + if (event.data.type == 'focusOnZone') { + let zone_name = event.data.data + document.querySelectorAll('.border-dotted').forEach((div) => { + div.classList.remove('border-dotted') + }) + let el = document.querySelector('[data-prettyblocks-zone="' + zone_name + '"]') + el.classList.add('border-dotted') + el.scrollIntoView({ + alignToTop: true, + behavior: 'smooth', + block: 'center' + }) + + } + // update HTML block + if (event.data.type == 'updateHTMLBlock') { + let id_prettyblocks = event.data.data.id_prettyblocks + let data = event.data.data.html + let domBlock = document.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') + domBlock.innerHTML = data + + // @TODO run toolbar + + } + + if (event.data.type == 'scrollInIframe') { + selectBlock(event.data.data) + } + if (event.data.type == 'getZones') { + let els = document.querySelectorAll('[data-zone-name]') + let zones = [] + + els.forEach((el) => { + let zone_name = el.getAttribute('data-zone-name') + if (zones.indexOf(zone_name) == -1) { + zones.push(zone_name) + } + }) + event.source.postMessage({ type: 'zones', data: zones }, '*'); + // unsubscribe() + } + + +} +const selectBlock = (id_prettyblocks) => { + + let doc = document + let el = doc.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') + if (doc.body.contains(el)) { + el.scrollIntoView({ + alignToTop: false, + behavior: 'smooth', + block: 'center' + }) + let tr = doc.querySelectorAll('[data-block]') + tr.forEach(bl => { + bl.classList.remove('border-dotted') + }) + el.classList.add('border-dotted') + } +} + +const unsubscribe = () => { + window.removeEventListener("message", eventHandler, false); +} +window.addEventListener("message", eventHandler, false) From dcb1a34b122fd204ff106b8cfdcc28918d4ea6f6 Mon Sep 17 00:00:00 2001 From: PrestaSafe Date: Tue, 3 Oct 2023 18:45:31 +0200 Subject: [PATCH 03/11] Toolbar ok --- _dev/src/scripts/iframe.js | 45 +++++---- _dev/src/scripts/toolbar.js | 1 + _dev/vite.config.prettyblocks.js | 16 ++++ prettyblocks.php | 2 +- views/js/build.js | 10 ++ views/js/favicon.ico | Bin 0 -> 4286 bytes views/js/iframe.css | 103 ++++++++++++++++++++ views/js/index.php | 27 ++++++ views/js/prettyblocks.js | 158 +++++++++++++++++-------------- 9 files changed, 274 insertions(+), 88 deletions(-) create mode 100644 _dev/vite.config.prettyblocks.js create mode 100644 views/js/build.js create mode 100644 views/js/favicon.ico create mode 100644 views/js/iframe.css create mode 100755 views/js/index.php diff --git a/_dev/src/scripts/iframe.js b/_dev/src/scripts/iframe.js index e981894f..c45a5b5f 100644 --- a/_dev/src/scripts/iframe.js +++ b/_dev/src/scripts/iframe.js @@ -165,7 +165,14 @@ async loadIframe () { let id_prettyblocks = event.data.data emitter.emit('loadStateConfig', id_prettyblocks) } - window.removeEventListener("message", eventHandler, false); + + if(event.data.type == 'updateTitleComponent') + { + console.log('updateTitleComponent', JSON.parse(event.data.data.value)) + let params = event.data.data.params + this.updateTitleComponent(JSON.parse(event.data.data.value), params.id_prettyblocks, params.field, params.index) + } + // window.removeEventListener("message", eventHandler, false); } window.addEventListener("message", eventHandler, false); @@ -205,8 +212,8 @@ async loadIframe () { // update module in iFrame ! html.then((data) => { this.sendPrettyBlocksEvents('updateHTMLBlock', {id_prettyblocks: id_prettyblocks, html: data}) - const tb = new toolbar( body.querySelectorAll('.ptb-title'), doc, iwindow); - this.loadToolBar(tb) + // const tb = new toolbar( body.querySelectorAll('.ptb-title'), doc, iwindow); + // this.loadToolBar(tb) }) }) @@ -247,8 +254,8 @@ async loadIframe () { }) - const tb = new toolbar( body.querySelectorAll('.ptb-title'), doc, iwindow); - this.loadToolBar(tb) + // const tb = new toolbar( body.querySelectorAll('.ptb-title'), doc, iwindow); + // this.loadToolBar(tb) // check if block is already selected let currentBlock = useStore() @@ -273,23 +280,29 @@ async loadIframe () { loadToolBar(tb) { - tb.on('change', async (oldValue, newValue) => { - this.updateTitleComponent(oldValue) - }) + // tb.on('change', async (oldValue, newValue) => { + // this.updateTitleComponent(oldValue) + // }) } /** * Updpate title component in Config field using Toolbar * @param {*} newValue */ -async updateTitleComponent(newValue) -{ - let id_block = newValue.html.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks') - let field = newValue.html.getAttribute('data-field') - let index = null - if(newValue.html.hasAttribute('data-index')) - { - index = newValue.html.getAttribute('data-index') +async updateTitleComponent(newValue, id_block = null, field = null, index = null) +{ + if(!id_block){ + id_block = newValue.html.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks') + } + if(!field){ + field = newValue.html.getAttribute('data-field') + } + if(!index){ + index = null } + // if(newValue.html.hasAttribute('data-index')) + // { + // index = newValue.html.getAttribute('data-index') + // } let element = await Block.loadById(id_block) // emitter.emit('displayBlockConfig', element) diff --git a/_dev/src/scripts/toolbar.js b/_dev/src/scripts/toolbar.js index 0333cc86..b6e0024a 100644 --- a/_dev/src/scripts/toolbar.js +++ b/_dev/src/scripts/toolbar.js @@ -396,6 +396,7 @@ export class toolbar { } refreshToolbar(obj) { + console.log('refreshToolbar', obj) const id = obj.id; const e = this.document.querySelector('[data-id-title="' + id + '"]'); const tag = e.tagName.toLowerCase() diff --git a/_dev/vite.config.prettyblocks.js b/_dev/vite.config.prettyblocks.js new file mode 100644 index 00000000..f4629390 --- /dev/null +++ b/_dev/vite.config.prettyblocks.js @@ -0,0 +1,16 @@ +import { defineConfig } from 'vite'; + +export default defineConfig({ + build: { + outDir: '../views/js/', + assetsDir: '', + + rollupOptions: { + output: { + entryFileNames: 'build.js', + chunkFileNames: 'build.js', + }, + input: '../views/js/prettyblocks.js' // Remplacez par le chemin correct vers votre fichier + } + } +}); diff --git a/prettyblocks.php b/prettyblocks.php index 4128e719..ee88c574 100755 --- a/prettyblocks.php +++ b/prettyblocks.php @@ -209,7 +209,7 @@ public function hookdisplayHeader($params) { $this->context->controller->registerJavascript( 'prettyblocks', - 'modules/' . $this->name . '/views/js/prettyblocks.js', + 'modules/' . $this->name . '/views/js/build.js', [ 'position' => 'bottom', 'priority' => 150, diff --git a/views/js/build.js b/views/js/build.js new file mode 100644 index 00000000..5c5c5b3f --- /dev/null +++ b/views/js/build.js @@ -0,0 +1,10 @@ +class r{constructor(t,e=e,s=s){this.events={},this.arr=[],this.tEdited,this.pApply,this.document=e,this.window=s,this.targets=t,this.targets.forEach(i=>{const l=Math.random().toString(36).substr(2,9);i.setAttribute("data-id-title",l);let o=i.dataset.attributes;const a=JSON.parse(o);this.arr.push({id:l,html:i,value:i.innerHTML,tag:i.tagName.toLowerCase(),classes:i.classList,focus:this.getAttributeValue(a,"focus"),inside:!1,bold:this.getAttributeValue(a,"bold"),italic:this.getAttributeValue(a,"italic"),underline:this.getAttributeValue(a,"underline"),size:this.getAttributeValue(a,"size")?this.getAttributeValue(a,"size"):32})});for(const i of this.arr){const l=i.id,o=this.document.querySelector('[data-id-title="'+l+'"]');o.setAttribute("contenteditable","true"),i.size=o.style.fontSize}this.toolbar=this.document.createElement("div"),this.toolbar.id="toolbar",this.document.getElementsByTagName("body")[0].appendChild(this.toolbar),this.select=this.document.createElement("select"),this.select.id="select",this.select.innerHTML=` + + + + + + + + + `,this.select.selectedIndex=1,this.toolbar.appendChild(this.select),this.size=this.document.createElement("input"),this.size.id="size",this.size.type="number",this.size.value="32",this.size.min="1",this.size.max="100",this.size.step="1",this.toolbar.appendChild(this.size),this.sep=this.document.createElement("div"),this.sep.classList="sep",this.toolbar.appendChild(this.sep),this.B=this.document.createElement("button"),this.Bo=!1,this.B.id="Bold",this.B.innerHTML="B",this.toolbar.appendChild(this.B),this.I=this.document.createElement("button"),this.Io=!1,this.I.id="Italics",this.I.innerHTML="I",this.toolbar.appendChild(this.I),this.U=this.document.createElement("button"),this.Uo=!1,this.U.id="Underline",this.U.innerHTML="U",this.toolbar.appendChild(this.U),this.init(),this.setVisibility()}init(){for(const t of this.arr){let e=this.document.querySelector('[data-id-title="'+t.id+'"]');for(const s of this.targets)this.setBinging(s,t,e);this.select.addEventListener("change",()=>{const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);if(this.tEdited==t.id){let l=e.innerHTML,o=this.select.value,a=this.document.createElement(o);a.innerHTML=l,a.classList=e.classList,e.replaceWith(a);let n=e.getAttribute("data-block-id_prettyblock");a.setAttribute("data-block-id_prettyblock",n);let d=e.getAttribute("data-field");a.setAttribute("data-field",d),e=a,e.setAttribute("data-id-title",t.id),e.setAttribute("contenteditable","true"),t.bold==!0&&(e.style.fontWeight="bold"),t.italic==!0&&(e.style.fontStyle="italic"),t.underline==!0&&(e.style.textDecoration="underline"),e.style.fontSize=t.size+"px",this.setVisibility(),t.html=a,this.change(i,t),this.setBinging(a,t,e)}}),this.size.addEventListener("change",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);e.style.fontSize=this.size.value+"px",t.size=this.size.value,this.change(i,t)}}),this.B.addEventListener("click",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);t.bold==!1?(t.bold=!0,this.B.style.color="#6ae26a",e.style.fontWeight="bold",this.change(i,t)):(t.bold=!1,this.B.style.color="white",e.style.fontWeight="normal",this.change(i,t))}}),this.I.addEventListener("click",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);t.italic==!1?(t.italic=!0,this.I.style.color="#6ae26a",e.style.fontStyle="italic",this.change(i,t)):(t.italic=!1,this.I.style.color="white",e.style.fontStyle="normal",this.change(i,t))}}),this.U.addEventListener("click",()=>{if(this.tEdited==t.id){let s=!t.underline;console.log("underline",s),this.setAttributeValue(e,"underline",s),t.underline=s;const i={id:t.id,focus:t.focus,inside:t.inside,tag:this.select.value,classes:Array.from(e.classList),bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},l=structuredClone(i);t.underline?(this.U.style.color="#6ae26a",e.style.textDecoration="underline"):(this.U.style.color="white",e.style.textDecoration="none"),this.change(l,t)}})}}setBinging(t,e,s){t.getAttribute("data-id-title")==e.id&&t.addEventListener("keydown",i=>{(i.ctrlKey&&i.key=="s"||i.ctrlKey&&i.key=="S"||i.metaKey&&i.key=="s"||i.metaKey&&i.key=="S")&&(i.preventDefault(),e.value=s.innerHTML,this.change(this.pApply,e),t.blur()),i.shiftKey&&i.key=="Enter"?(i.preventDefault(),this.document.execCommand("insertHTML",!1,"

")):i.key=="Enter"&&(i.preventDefault(),e.value=s.innerHTML,this.change(this.pApply,e),t.blur())})}getAttributeValue(t,e){return t.hasOwnProperty(e)?t[e]:!1}setAttributeValue(t,e,s){let i=t.getAttribute("data-attributes"),l=null;l=JSON.parse(i),l&&l.hasOwnProperty(e)?l[e]=s:console.log("L'attribut "+e+" n'existe pas dans l'objet."),console.log("OK",l),t.setAttribute("data-attributes",JSON.stringify(l||{}))}setVisibility(){for(const t of this.arr){const e=this.document.querySelector('[data-id-title="'+t.id+'"]');let s=!1,i=!1;e.addEventListener("mousedown",l=>{i=!0,this.toolbar.style.display="flex";const o=l.target.getAttribute("data-id-title"),a=this.arr.filter(d=>d.id==o)[0];this.refreshToolbar(a);const n={id:t.id,focus:t.focus,inside:t.inside,bold:t.bold,tag:this.select.value,italic:t.italic,underline:t.underline,size:t.size,value:l.target.innerHTML};this.pApply=structuredClone(n)}),e.addEventListener("mouseleave",()=>{s=!1,i||setTimeout(()=>{!s&&!i&&(this.toolbar.style.display="none")},1e3)}),e.addEventListener("focus",l=>{i=!0,this.toolbar.style.display="flex";const o=l.target.getAttribute("data-id-title"),a=this.arr.filter(n=>n.id==o)[0];this.refreshToolbar(a)}),e.addEventListener("blur",()=>{i=!1,s||setTimeout(()=>{!s&&!i&&(this.toolbar.style.display="none")},1e3)}),this.toolbar.addEventListener("mouseenter",l=>{s=!0,this.toolbar.style.display="flex"}),this.toolbar.addEventListener("mouseleave",l=>{const o=l.toElement||l.relatedTarget;s=!1,setTimeout(()=>{o&&(o.parentNode===this||o===this||o.parentNode===this.toolbar)||i||(this.toolbar.style.display="none")},1e3)})}}refreshToolbar(t){console.log("refreshToolbar",t);const e=t.id,s=this.document.querySelector('[data-id-title="'+e+'"]'),i=s.tagName.toLowerCase(),l=this.findTop(s),o=this.findLeft(s),a=Math.round(this.window.getComputedStyle(s,null).getPropertyValue("font-size").split("px")[0]),n=s.getBoundingClientRect(),d=this.toolbar.getBoundingClientRect();this.toolbar.style.top=l-d.height+55+"px",this.toolbar.style.left=o+n.width/2-d.width+"px",this.tEdited=t.id,this.size.value=a,t.size=a,i=="h1"&&(this.select.selectedIndex=0),i=="h2"&&(this.select.selectedIndex=1),i=="h3"&&(this.select.selectedIndex=2),i=="h4"&&(this.select.selectedIndex=3),i=="h5"&&(this.select.selectedIndex=4),i=="h6"&&(this.select.selectedIndex=5),i=="p"&&(this.select.selectedIndex=6),i=="span"&&(this.select.selectedIndex=7),t.bold?this.B.style.color="#6ae26a":this.B.style.color="white",t.italic?this.I.style.color="#6ae26a":this.I.style.color="white",t.underline?this.U.style.color="#6ae26a":this.U.style.color="white"}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}trigger(t,...e){const s=this.events[t];s&&s.forEach(i=>{i(...e)})}change(t,e){t.html=e.html,t.value=e.value,t.classes=e.classes,t.bold=e.bold,t.italic=e.italic,t.underline=e.underline,t.size=e.size,this.trigger("change",t,e)}apply(t,e){!e.inside&&!e.focus&&(t.html=e==null?void 0:e.html,e.value=e.html.innerHTML,this.trigger("apply",t,e))}findTop(t){var e=t.getBoundingClientRect();return e.top+this.window.scrollY}findLeft(t){var e=t.getBoundingClientRect();return e.left+this.window.scrollX}}console.log("test",r);document.addEventListener("DOMContentLoaded",c=>{let t=i=>{if(i.data.type=="initIframe"&&(document.querySelectorAll("div[data-block]").forEach(l=>{l.addEventListener("click",o=>{let a=o.target.closest("[data-id-prettyblocks]").getAttribute("data-id-prettyblocks");e(a),i.source.postMessage({type:"loadStateConfig",data:a},"*")})}),s(i)),i.data.type=="focusOnZone"){let l=i.data.data;document.querySelectorAll(".border-dotted").forEach(a=>{a.classList.remove("border-dotted")});let o=document.querySelector('[data-prettyblocks-zone="'+l+'"]');o.classList.add("border-dotted"),o.scrollIntoView({alignToTop:!0,behavior:"smooth",block:"center"})}if(i.data.type=="updateHTMLBlock"){let l=i.data.data.id_prettyblocks,o=i.data.data.html,a=document.querySelector('[data-id-prettyblocks="'+l+'"]');a.innerHTML=o,s(i)}if(i.data.type=="scrollInIframe"&&e(i.data.data),i.data.type=="getZones"){let l=document.querySelectorAll("[data-zone-name]"),o=[];l.forEach(a=>{let n=a.getAttribute("data-zone-name");o.indexOf(n)==-1&&o.push(n)}),i.source.postMessage({type:"zones",data:o},"*")}};const e=i=>{let l=document,o=l.querySelector('[data-id-prettyblocks="'+i+'"]');l.body.contains(o)&&(o.scrollIntoView({alignToTop:!1,behavior:"smooth",block:"center"}),l.querySelectorAll("[data-block]").forEach(n=>{n.classList.remove("border-dotted")}),o.classList.add("border-dotted"))},s=i=>{new r(document.querySelectorAll(".ptb-title"),document,window).on("change",async(o,a)=>{let n={id_prettyblocks:o.html.closest("[data-id-prettyblocks]").getAttribute("data-id-prettyblocks"),field:o.html.getAttribute("data-field"),index:o.html.hasAttribute("data-index")?o.html.getAttribute("data-index"):null};i.source.postMessage({type:"updateTitleComponent",data:{params:n,value:JSON.stringify(a)}},"*")})};window.addEventListener("message",t,!1)}); diff --git a/views/js/favicon.ico b/views/js/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/views/js/iframe.css b/views/js/iframe.css new file mode 100644 index 00000000..e35957e9 --- /dev/null +++ b/views/js/iframe.css @@ -0,0 +1,103 @@ +.border-dotted{ + border-color: rgb(73, 141, 201); + border-style: solid !important; + border-radius: 8px; + border-width: 4px; + position: relative; +} + + +/* hn editor */ + + + #toolbar button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; + } + #toolbar button:hover { + border-color: #646cff; + } + #toolbar button:focus, + #toolbar button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; + } + + @media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + #toolbar a:hover { + color: #747bff; + } + #toolbar button { + background-color: #f9f9f9; + } + } + + .ptb-title { + font-weight: normal; + margin: 0; + } + + #editor { + position: relative; + display: flex; + justify-content: center; + gap: 80px; + } + + #toolbar { + display: none; + z-index: 2000; + justify-content: space-between; + align-items: center; + margin-bottom: 2rem; + padding: 10px 20px; + background-color: #1a1a1a; + border: 1px solid #646cff; + border-radius: 4px; + position: absolute; + justify-content: center; + font-size: 18px; + gap: 10px; + transform: translate(50%, -80px); + } + + #toolbar::after { + content: ''; + position: absolute; + width: 20px; + height: 20px; + z-index: -5; + background-color: #1a1a1a; + border: 1px solid #646cff; + transform: rotate(45deg); + bottom: -11px; + } + + #toolbar div.sep { + width: 2px; + height: 20px; + background-color: #646cff; + margin: 0 10px; + } + + #toolbar button { + padding: 0.2em 0.6em; + } + + #toolbar input, #toolbar select, #toolbar select option { + height: 30px; + padding: 0.2px 0.6em; + border: 0; + border-radius: 4px; + } + \ No newline at end of file diff --git a/views/js/index.php b/views/js/index.php new file mode 100755 index 00000000..c8d2b5ff --- /dev/null +++ b/views/js/index.php @@ -0,0 +1,27 @@ + + * @copyright Since 2020 PrestaSafe and contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + * International Registered Trademark & Property of PrestaSafe + */ +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../'); +exit; diff --git a/views/js/prettyblocks.js b/views/js/prettyblocks.js index 7e56edfd..5a285580 100644 --- a/views/js/prettyblocks.js +++ b/views/js/prettyblocks.js @@ -1,80 +1,96 @@ +import { toolbar } from '../../_dev/src/scripts/toolbar' +console.log('test',toolbar) +document.addEventListener('DOMContentLoaded', (event) => { -let eventHandler = (event) => { - if (event.data.type == 'initIframe') { - // register block click - document.querySelectorAll('div[data-block]').forEach((div) => { - - div.addEventListener('click', (el) => { - let id_prettyblocks = el.target.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks') - selectBlock(id_prettyblocks) - event.source.postMessage({ type: 'loadStateConfig', data: id_prettyblocks }, '*'); + let eventHandler = (event) => { + if (event.data.type == 'initIframe') { + // register block click + document.querySelectorAll('div[data-block]').forEach((div) => { + + div.addEventListener('click', (el) => { + let id_prettyblocks = el.target.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks') + selectBlock(id_prettyblocks) + event.source.postMessage({ type: 'loadStateConfig', data: id_prettyblocks }, '*'); + }) }) - }) - } - // focus on zone in iframe - if (event.data.type == 'focusOnZone') { - let zone_name = event.data.data - document.querySelectorAll('.border-dotted').forEach((div) => { - div.classList.remove('border-dotted') - }) - let el = document.querySelector('[data-prettyblocks-zone="' + zone_name + '"]') - el.classList.add('border-dotted') - el.scrollIntoView({ - alignToTop: true, - behavior: 'smooth', - block: 'center' - }) - - } - // update HTML block - if (event.data.type == 'updateHTMLBlock') { - let id_prettyblocks = event.data.data.id_prettyblocks - let data = event.data.data.html - let domBlock = document.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') - domBlock.innerHTML = data - - // @TODO run toolbar - + loadToolBar(event) + + } + // focus on zone in iframe + if (event.data.type == 'focusOnZone') { + let zone_name = event.data.data + document.querySelectorAll('.border-dotted').forEach((div) => { + div.classList.remove('border-dotted') + }) + let el = document.querySelector('[data-prettyblocks-zone="' + zone_name + '"]') + el.classList.add('border-dotted') + el.scrollIntoView({ + alignToTop: true, + behavior: 'smooth', + block: 'center' + }) + + } + // update HTML block + if (event.data.type == 'updateHTMLBlock') { + let id_prettyblocks = event.data.data.id_prettyblocks + let data = event.data.data.html + let domBlock = document.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') + domBlock.innerHTML = data + loadToolBar(event) + } + + if (event.data.type == 'scrollInIframe') { + selectBlock(event.data.data) + } + if (event.data.type == 'getZones') { + let els = document.querySelectorAll('[data-zone-name]') + let zones = [] + + els.forEach((el) => { + let zone_name = el.getAttribute('data-zone-name') + if (zones.indexOf(zone_name) == -1) { + zones.push(zone_name) + } + }) + event.source.postMessage({ type: 'zones', data: zones }, '*'); + // unsubscribe() + } + + } - - if (event.data.type == 'scrollInIframe') { - selectBlock(event.data.data) + const selectBlock = (id_prettyblocks) => { + + let doc = document + let el = doc.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') + if (doc.body.contains(el)) { + el.scrollIntoView({ + alignToTop: false, + behavior: 'smooth', + block: 'center' + }) + let tr = doc.querySelectorAll('[data-block]') + tr.forEach(bl => { + bl.classList.remove('border-dotted') + }) + el.classList.add('border-dotted') + } } - if (event.data.type == 'getZones') { - let els = document.querySelectorAll('[data-zone-name]') - let zones = [] - - els.forEach((el) => { - let zone_name = el.getAttribute('data-zone-name') - if (zones.indexOf(zone_name) == -1) { - zones.push(zone_name) + const loadToolBar = (event) => { + const tb = new toolbar( document.querySelectorAll('.ptb-title'), document, window); + tb.on('change', async (oldValue, newValue) => { + let params = { + id_prettyblocks: oldValue.html.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks'), + field: oldValue.html.getAttribute('data-field'), + index: oldValue.html.hasAttribute('data-index') ? oldValue.html.getAttribute('data-index') : null } + event.source.postMessage({ type: 'updateTitleComponent', + data: { params: params, value: JSON.stringify(newValue) } }, '*'); }) - event.source.postMessage({ type: 'zones', data: zones }, '*'); - // unsubscribe() } - - -} -const selectBlock = (id_prettyblocks) => { - let doc = document - let el = doc.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') - if (doc.body.contains(el)) { - el.scrollIntoView({ - alignToTop: false, - behavior: 'smooth', - block: 'center' - }) - let tr = doc.querySelectorAll('[data-block]') - tr.forEach(bl => { - bl.classList.remove('border-dotted') - }) - el.classList.add('border-dotted') + const unsubscribe = () => { + window.removeEventListener("message", eventHandler, false); } -} - -const unsubscribe = () => { - window.removeEventListener("message", eventHandler, false); -} -window.addEventListener("message", eventHandler, false) + window.addEventListener("message", eventHandler, false) +}); From b2bf7b9785a2dfd2573efb32d4390b3d478f4307 Mon Sep 17 00:00:00 2001 From: www-data Date: Fri, 6 Oct 2023 15:01:25 +0200 Subject: [PATCH 04/11] update iframe management --- _dev/.gitignore | 1 + _dev/src/components/LeftPanel.vue | 2 + _dev/src/components/PanelThemeSettings.vue | 18 +- _dev/src/components/form/ZoneSelect.vue | 1 + _dev/src/scripts/iframe.js | 566 +++--- _dev/yarn.lock | 1878 ++++++++++---------- controllers/front/ajax.php | 20 + prettyblocks.php | 8 + upgrade/upgrade-3.0.0.php | 1 + views/js/build.js | 4 +- views/js/prettyblocks.js | 186 +- 11 files changed, 1321 insertions(+), 1364 deletions(-) diff --git a/_dev/.gitignore b/_dev/.gitignore index 9080e0a8..b37f40d2 100644 --- a/_dev/.gitignore +++ b/_dev/.gitignore @@ -25,3 +25,4 @@ dist-ssr # vite config # vite.config.js +yaml/ \ No newline at end of file diff --git a/_dev/src/components/LeftPanel.vue b/_dev/src/components/LeftPanel.vue index b4fa33bf..6e9a8d8e 100644 --- a/_dev/src/components/LeftPanel.vue +++ b/_dev/src/components/LeftPanel.vue @@ -62,10 +62,12 @@ emitter.on("initStates", () => { }); const initStates = async () => { let contextStore = contextShop(); + console.log('contextStore', await contextStore.getContext()) // Attendez que l'action asynchrone getContext soit terminée let context = await contextStore.getContext(); let current_zone = currentZone().name; + console.log('currentZone', current_zone) displayZoneName.value = current_zone; const params = { ajax: true, diff --git a/_dev/src/components/PanelThemeSettings.vue b/_dev/src/components/PanelThemeSettings.vue index 2a9feabe..d4dcc8fb 100644 --- a/_dev/src/components/PanelThemeSettings.vue +++ b/_dev/src/components/PanelThemeSettings.vue @@ -20,8 +20,12 @@ defineComponent({ onUnmounted(() => { settings.value = false canSave.value = false + +}) +onMounted(()=> { + getSettings() + console.log('mounted PanelSettings') }) - emitter.on('globalSave', () => { if (canSave.value) { saveThemeSettings() @@ -33,8 +37,13 @@ const settings = ref(false) const getInputs = () => { emitter.on('initStates', async () => { - - let contextStore = contextShop(); + getSettings() + }) + +} + +const getSettings = async () => { + let contextStore = contextShop(); let context = await contextStore.getContext(); const params = { ajax: true, @@ -45,10 +54,9 @@ const getInputs = () => { .then((data) => { canSave.value = true settings.value = data.settings + console.log('data settings', data.settings) }) .catch(error => console.error(error)); - }) - } diff --git a/_dev/src/components/form/ZoneSelect.vue b/_dev/src/components/form/ZoneSelect.vue index 5d3c56da..eea05563 100644 --- a/_dev/src/components/form/ZoneSelect.vue +++ b/_dev/src/components/form/ZoneSelect.vue @@ -13,6 +13,7 @@ defineComponent({ let items = ref([]); emitter.on('loadZones', (zonesState) => { + console.log('emit zoneLoaded', zonesState) items.value = zonesState if (zonesState.indexOf(currentZone().name) == -1) { currentZone().$patch({ diff --git a/_dev/src/scripts/iframe.js b/_dev/src/scripts/iframe.js index c45a5b5f..1eaf18ed 100644 --- a/_dev/src/scripts/iframe.js +++ b/_dev/src/scripts/iframe.js @@ -1,14 +1,15 @@ -import { ref } from 'vue' +import { ref } from 'vue' import { HttpClient } from "../services/HttpClient"; import emitter from 'tiny-emitter/instance' -import {toolbar} from './toolbar'; +import { toolbar } from './toolbar'; import { useStore, storedZones, contextShop } from '../store/currentBlock' import Block from './block' import { createToaster } from "@meforma/vue-toaster"; const toaster = createToaster({ position: 'top', - }); +}); +window.hasEventListener = false; export default class Iframe { current_url = ref(); id_lang = ref(0); @@ -18,61 +19,73 @@ export default class Iframe { preventDefaults = (e) => { e.preventDefault() } - - constructor(current_url, id_lang, id_shop) - { + + constructor(current_url, id_lang, id_shop) { this.current_url.value = current_url this.id_lang.value = id_lang - this.id_shop.value = id_shop + this.id_shop.value = id_shop this.loader.value = false + this.constructEvent() } - - /** - * When register on Element after Ajax - */ - // async registerDrop (el) { - // let currentBlock = useStore() - - // const params = { - // ajax: true, - // block: currentBlock.code, - // action: 'BlockRender', - // } - - // try { - // const data = await HttpClient.get(ajax_urls.block_url, params); - - // let newNode = document.createElement('div') - // newNode.innerHTML = data.html + '
Zone de drop
' - // el.target.parentNode.replaceChild(newNode, el.target) - // newNode.addEventListener('click', (el) => { - // registerClickPopup(el) - // }) - // newNode.addEventListener('drop', (el) => { - // registerDrop(el) - // registerDragEnter(el) - // registerDragLeave(el) - // setTimeout(() => { - // emitter.emit('triggerLoadedEvents', el) - // }, 200) - // }) - // setTimeout(() => { - // emitter.emit('triggerLoadedEvents', el) - // }, 200) - // } catch (error) { - // console.error(error); - // } - // } - + constructEvent() { + // Définir l'eventHandler + let eventHandler = async (event) => { + if (event.data.type == 'zones') { + let zones = event.data.data + let piniazones = storedZones() + piniazones.$patch({ + zones: zones + }) + emitter.emit('loadZones', zones) + + + } + if (event.data.type == 'loadStateConfig') { + let id_prettyblocks = event.data.data + emitter.emit('loadStateConfig', id_prettyblocks) + + } + + if (event.data.type == 'updateTitleComponent') { + console.log('updateTitleComponent', JSON.parse(event.data.data.value)) + let params = event.data.data.params + this.updateTitleComponent(JSON.parse(event.data.data.value), params.id_prettyblocks, params.field, params.index) + + } + + if (event.data.type == 'setContext') { + let iwindow = event.data.data.data + let context = contextShop() + await context.$patch({ + id_lang: iwindow.id_lang, + id_shop: iwindow.id_shop, + shop_name: iwindow.shop_name, + current_url: iwindow.current_url, + href: iwindow.href, + }) + this.id_lang.value = iwindow.id_lang + this.id_shop.value = iwindow.id_shop + this.loader.value = false + emitter.emit('initStates') + + + } + + } + + if (!window.hasEventListener) { + window.addEventListener("message", eventHandler, false); + window.hasEventListener = true; + } + } /** * * @param {*} url * For set URL in input */ - setUrl(url) - { + setUrl(url) { this.current_url.value = url } @@ -80,313 +93,200 @@ export default class Iframe { this.loader.value = true let iframe = document.getElementById('website-iframe') iframe.src = this.current_url.value - - // setTimeout(() => { - // var x = iframe.contentWindow; - // x.location.reload(true) - // }, 200) - this.loadIframe() + // this.loadIframe() this.loader.value = false } /** - * trigger popup with blocks choice on Click - */ -registerClickPopup (el) { - let zone_name = el.target.getAttribute('data-zone-name') - emitter.emit('toggleModal', zone_name) -} - - -/** - * DragEnter Event - */ -registerDragEnter(el) { - el.target.classList.remove('border-dark') - el.target.classList.add('border-danger') -} - -/** - * DragLeave event - */ -registerDragLeave (el) { - el.target.classList.remove('border-danger') - el.target.classList.add('border-dark') -} - -registerClick (el) { - let id_prettyblocks = el.getAttribute('data-id-prettyblocks') - emitter.emit('loadStateConfig', id_prettyblocks) -} - -async getZones(document) { - let els = document.querySelectorAll('[data-zone-name]') - let zones = [] - - await els.forEach((el) => { - let zone_name = el.getAttribute('data-zone-name') - if(zones.indexOf(zone_name) == -1){ - zones.push(zone_name) - } - }) - - - let piniazones = storedZones() - piniazones.$patch({ - zones: zones - }) - - return zones -} - -sendPrettyBlocksEvents(eventType, data = []) { - let message = { type: eventType, data: data }; - let iframe = document.getElementById('website-iframe') - iframe.contentWindow.postMessage(message, "*"); -} - -async loadIframe () { - // iframe - - // Définir l'eventHandler - let eventHandler = (event) => { - if(event.data.type == 'zones') - { - let zones = event.data.data - let piniazones = storedZones() - piniazones.$patch({ - zones: zones - }) - emitter.emit('loadZones', zones) - console.log('zonesLOADED', zones) - } - if(event.data.type == 'loadStateConfig') - { - let id_prettyblocks = event.data.data - emitter.emit('loadStateConfig', id_prettyblocks) - } - - if(event.data.type == 'updateTitleComponent') - { - console.log('updateTitleComponent', JSON.parse(event.data.data.value)) - let params = event.data.data.params - this.updateTitleComponent(JSON.parse(event.data.data.value), params.id_prettyblocks, params.field, params.index) - } - // window.removeEventListener("message", eventHandler, false); + * trigger popup with blocks choice on Click + */ + registerClickPopup(el) { + let zone_name = el.target.getAttribute('data-zone-name') + emitter.emit('toggleModal', zone_name) } - window.addEventListener("message", eventHandler, false); - - - this.loader.value = true - let iframe = await document.getElementById('website-iframe') - - if (iframe) { - await iframe.addEventListener('load', (e) => { - - - this.sendPrettyBlocksEvents('initIframe') - this.sendPrettyBlocksEvents('getZones') - // let message = { type: "getZones", data: [] }; - // iframe.contentWindow.postMessage(message, "*"); - let doc = e.target.contentWindow.document - let jQuery = e.target.contentWindow.$ - let iwindow = e.target.contentWindow - let body = doc.body - emitter.off('triggerLoadedEvents') - emitter.on('triggerLoadedEvents', (dom) => { - // trigger for init theme - // e.target.contentWindow.dispatchEvent(new Event('load'));cz-homecategory order-4 - jQuery(doc).trigger("reloadEverything"); - }) - - - // this.events.forEach((eventName) => { - // doc.body.addEventListener(eventName, this.preventDefaults) - // }) - - emitter.off('stateUpdated') - emitter.on('stateUpdated', (id_prettyblocks) => { - let currentBlock = useStore() - let html = this.getBlockRender(id_prettyblocks) - // update module in iFrame ! - html.then((data) => { - this.sendPrettyBlocksEvents('updateHTMLBlock', {id_prettyblocks: id_prettyblocks, html: data}) - // const tb = new toolbar( body.querySelectorAll('.ptb-title'), doc, iwindow); - // this.loadToolBar(tb) - }) - }) - - // when iframe loaded, get blocks - emitter.off('scrollInIframe') - emitter.on('scrollInIframe', (id_prettyblocks) => { - this.sendPrettyBlocksEvents('scrollInIframe', id_prettyblocks) - }) - - // hover blocks - // body.querySelectorAll('div[data-block]').forEach((div) => { - // div.addEventListener('click', (el) => { - // this.registerClick(el.target) - // }) - // }) - emitter.off('focusOnZone') - emitter.on('focusOnZone', (zone_name) => { - this.sendPrettyBlocksEvents('focusOnZone', zone_name) - - emitter.emit('initStates') + /** + * DragEnter Event + */ + registerDragEnter(el) { + el.target.classList.remove('border-dark') + el.target.classList.add('border-danger') + } - }) - body.querySelectorAll('main div.blocks').forEach((div) => { - div.addEventListener('click', (el) => { - this.registerClickPopup(el) - }) - - // div.addEventListener('drop', (el) => { - // this.registerDrop(el) - // }, false) - div.addEventListener('dragenter', (el) => { - this.registerDragEnter(el) - }) - div.addEventListener('dragleave', (el) => { - this.registerDragLeave(el) - }) + /** + * DragLeave event + */ + registerDragLeave(el) { + el.target.classList.remove('border-danger') + el.target.classList.add('border-dark') + } - }) + registerClick(el) { + let id_prettyblocks = el.getAttribute('data-id-prettyblocks') + emitter.emit('loadStateConfig', id_prettyblocks) + } - // const tb = new toolbar( body.querySelectorAll('.ptb-title'), doc, iwindow); - // this.loadToolBar(tb) + async getZones(document) { + let els = document.querySelectorAll('[data-zone-name]') + let zones = [] - // check if block is already selected - let currentBlock = useStore() - if(currentBlock.subSelected) - { - emitter.emit('scrollInIframe', currentBlock.id_prettyblocks) + await els.forEach((el) => { + let zone_name = el.getAttribute('data-zone-name') + if (zones.indexOf(zone_name) == -1) { + zones.push(zone_name) } + }) - // we inject css in iframe - let cssLink = doc.createElement('link'); - cssLink.rel = 'stylesheet'; - cssLink.href = base_url + 'modules/prettyblocks/build/iframe.css'; - cssLink.type = 'text/css'; - cssLink.media = 'all'; - doc.head.appendChild(cssLink); - - this.loadContext(e) - - }, false) - } -} - -loadToolBar(tb) -{ - // tb.on('change', async (oldValue, newValue) => { - // this.updateTitleComponent(oldValue) - // }) -} -/** - * Updpate title component in Config field using Toolbar - * @param {*} newValue - */ -async updateTitleComponent(newValue, id_block = null, field = null, index = null) -{ - if(!id_block){ - id_block = newValue.html.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks') - } - if(!field){ - field = newValue.html.getAttribute('data-field') + + let piniazones = storedZones() + piniazones.$patch({ + zones: zones + }) + + return zones } - if(!index){ - index = null + + sendPrettyBlocksEvents(eventType, data = []) { + let message = { type: eventType, data: data }; + let iframe = document.getElementById('website-iframe') + iframe.contentWindow.postMessage(message, "*"); } - // if(newValue.html.hasAttribute('data-index')) - // { - // index = newValue.html.getAttribute('data-index') - // } - - let element = await Block.loadById(id_block) - // emitter.emit('displayBlockConfig', element) - let context = contextShop() - let data = { - id_prettyblocks: id_block, - element: newValue, - ctx_id_lang: context.id_lang, - ctx_id_shop: context.id_shop, - field: field, - ajax: true, - index: index, - action: 'updateTitleComponent', - ajax_token: security_app.ajax_token + + + + async loadIframe() { + // iframe + + + + this.loader.value = true + let iframe = await document.getElementById('website-iframe') + + if (iframe) { + await iframe.addEventListener('load', (e) => { + this.sendPrettyBlocksEvents('initIframe') + this.sendPrettyBlocksEvents('getZones') + emitter.off('stateUpdated') + emitter.on('stateUpdated', (id_prettyblocks) => { + let currentBlock = useStore() + let html = this.getBlockRender(id_prettyblocks) + // update module in iFrame ! + html.then((data) => { + this.sendPrettyBlocksEvents('updateHTMLBlock', { id_prettyblocks: id_prettyblocks, html: data }) + }) + + }) + + // when iframe loaded, get blocks + emitter.off('scrollInIframe') + emitter.on('scrollInIframe', (id_prettyblocks) => { + this.sendPrettyBlocksEvents('scrollInIframe', id_prettyblocks) + }) + + + emitter.off('focusOnZone') + emitter.on('focusOnZone', (zone_name) => { + this.sendPrettyBlocksEvents('focusOnZone', zone_name) + + emitter.emit('initStates') + + }) + + // check if block is already selected + let currentBlock = useStore() + if (currentBlock.subSelected) { + emitter.emit('scrollInIframe', currentBlock.id_prettyblocks) + } + this.loadContext(e) + + }, false) + } } - - try { - const response = await HttpClient.post(ajax_urls.api, data); - toaster.show(response.message); - } catch (error) { - console.error(error); + + /** + * Updpate title component in Config field using Toolbar + * @param {*} newValue + */ + async updateTitleComponent(newValue, id_block = null, field = null, index = null) { + if (!id_block) { + id_block = newValue.html.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks') + } + if (!field) { + field = newValue.html.getAttribute('data-field') + } + if (!index) { + index = null + } + // if(newValue.html.hasAttribute('data-index')) + // { + // index = newValue.html.getAttribute('data-index') + // } + + let element = await Block.loadById(id_block) + // emitter.emit('displayBlockConfig', element) + let context = contextShop() + let data = { + id_prettyblocks: id_block, + element: newValue, + ctx_id_lang: context.id_lang, + ctx_id_shop: context.id_shop, + field: field, + ajax: true, + index: index, + action: 'updateTitleComponent', + ajax_token: security_app.ajax_token + } + + try { + const response = await HttpClient.post(ajax_urls.api, data); + toaster.show(response.message); + } catch (error) { + console.error(error); + } + + + } - - - -} - -loadContext(e) -{ - let iwindow = e.target.contentWindow - let context = contextShop() - context.$patch({ - id_lang: iwindow.prestashop.language.id, - id_shop: iwindow.prestashop.modules.prettyblocks.id_shop, - shop_name: iwindow.prestashop.modules.prettyblocks.shop_name, - current_url: iwindow.prestashop.modules.prettyblocks.shop_current_url, - href: iwindow.document.location.href - }) - this.id_lang.value = iwindow.prestashop.language.id - this.id_shop.value = iwindow.prestashop.modules.prettyblocks.id_shop - emitter.emit('initStates') - this.loader.value = false -} - -destroy() { - // 1. Supprimer les écouteurs d'événements globaux - emitter.off('triggerLoadedEvents'); - emitter.off('stateUpdated'); - emitter.off('scrollInIframe'); - emitter.off('focusOnZone'); - // 3. Réinitialiser les propriétés de l'objet - this.current_url.value = null; - this.id_lang.value = 0; - this.id_shop.value = 0; - this.loader.value = false; -} - - - -async getBlockRender (id_prettyblocks) { - let context = contextShop() - let responseData = {} - const params = { - ajax: true, - id_prettyblocks: id_prettyblocks, - action: 'GetBlockRender', - ctx_id_lang: context.id_lang, - ctx_id_shop: context.id_shop, - ajax_token: security_app.ajax_token + + loadContext(e) { + this.sendPrettyBlocksEvents('getContext') } - - try { - const data = await HttpClient.get(ajax_urls.block_url, params); - responseData = data.html; - } catch (error) { - console.error(error); + + destroy() { + // 1. Remove global event listeners + emitter.off('triggerLoadedEvents'); + emitter.off('stateUpdated'); + emitter.off('scrollInIframe'); + emitter.off('focusOnZone'); + // 3. Reset object properties + this.current_url.value = null; + this.id_lang.value = 0; + this.id_shop.value = 0; + this.loader.value = false; } - - return responseData; - } - - + async getBlockRender(id_prettyblocks) { + let context = contextShop() + let responseData = {} + const params = { + ajax: true, + id_prettyblocks: id_prettyblocks, + action: 'GetBlockRender', + ctx_id_lang: context.id_lang, + ctx_id_shop: context.id_shop, + ajax_token: security_app.ajax_token + } + try { + const data = await HttpClient.get(ajax_urls.block_url, params); + responseData = data.html; + } catch (error) { + console.error(error); + } + + return responseData; + } } \ No newline at end of file diff --git a/_dev/yarn.lock b/_dev/yarn.lock index 16d1f99f..7612c717 100644 --- a/_dev/yarn.lock +++ b/_dev/yarn.lock @@ -3,137 +3,137 @@ "@alloc/quick-lru@^5.2.0": - "integrity" "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" - "resolved" "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" - "version" "5.2.0" + version "5.2.0" + resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== "@babel/parser@^7.20.15", "@babel/parser@^7.21.3": - "integrity" "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==" - "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz" - "version" "7.22.7" + version "7.22.7" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz" + integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== "@headlessui/vue@^1.7.16": - "integrity" "sha512-nKT+nf/q6x198SsyK54mSszaQl/z+QxtASmgMEJtpxSX2Q0OPJX0upS/9daDyiECpeAsvjkoOrm2O/6PyBQ+Qg==" - "resolved" "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.16.tgz" - "version" "1.7.16" + version "1.7.16" + resolved "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.16.tgz" + integrity sha512-nKT+nf/q6x198SsyK54mSszaQl/z+QxtASmgMEJtpxSX2Q0OPJX0upS/9daDyiECpeAsvjkoOrm2O/6PyBQ+Qg== "@heroicons/vue@^2.0.18": - "integrity" "sha512-BcTC9nq2TkwNSfQuqo96J7ehx4etezypc2YeTq7KsXWxrcrerhkgjLrxGRBnStN0wrXo0Gv4BInybqz5uBG6Cw==" - "resolved" "https://registry.npmjs.org/@heroicons/vue/-/vue-2.0.18.tgz" - "version" "2.0.18" + version "2.0.18" + resolved "https://registry.npmjs.org/@heroicons/vue/-/vue-2.0.18.tgz" + integrity sha512-BcTC9nq2TkwNSfQuqo96J7ehx4etezypc2YeTq7KsXWxrcrerhkgjLrxGRBnStN0wrXo0Gv4BInybqz5uBG6Cw== "@jridgewell/gen-mapping@^0.3.2": - "integrity" "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==" - "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" - "version" "0.3.3" + version "0.3.3" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@3.1.0": - "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" - "version" "3.1.0" + version "3.1.0" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== "@jridgewell/set-array@^1.0.1": - "integrity" "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" - "resolved" "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - "version" "1.1.2" + version "1.1.2" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.15": - "integrity" "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" - "version" "1.4.15" + version "1.4.15" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/sourcemap-codec@1.4.14": - "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" - "version" "1.4.14" + version "1.4.14" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@^0.3.9": - "integrity" "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==" - "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz" - "version" "0.3.18" + version "0.3.18" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== dependencies: "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" "@meforma/vue-toaster@^1.3.0": - "integrity" "sha512-jH0zOA/jTiT+UKHO9n5hjPTLkIfg7d66X4fnd7ssIbcXpZOoe+J8IY6Kf3nRW5iVD6/tkjeyp+tjVK8zk6zASg==" - "resolved" "https://registry.npmjs.org/@meforma/vue-toaster/-/vue-toaster-1.3.0.tgz" - "version" "1.3.0" + version "1.3.0" + resolved "https://registry.npmjs.org/@meforma/vue-toaster/-/vue-toaster-1.3.0.tgz" + integrity sha512-jH0zOA/jTiT+UKHO9n5hjPTLkIfg7d66X4fnd7ssIbcXpZOoe+J8IY6Kf3nRW5iVD6/tkjeyp+tjVK8zk6zASg== dependencies: - "stylus" "~0.54.8" - "stylus-loader" "~3.0.2" + stylus "~0.54.8" + stylus-loader "~3.0.2" "@nodelib/fs.scandir@2.1.5": - "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" - "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - "version" "2.1.5" + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" - "run-parallel" "^1.1.9" + run-parallel "^1.1.9" "@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": - "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - "version" "2.0.5" + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": - "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" - "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - "version" "1.2.8" + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" - "fastq" "^1.6.0" + fastq "^1.6.0" "@swc/helpers@^0.2.13": - "integrity" "sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA==" - "resolved" "https://registry.npmjs.org/@swc/helpers/-/helpers-0.2.14.tgz" - "version" "0.2.14" + version "0.2.14" + resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.2.14.tgz" + integrity sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA== "@tailwindcss/forms@^0.5.6": - "integrity" "sha512-Fw+2BJ0tmAwK/w01tEFL5TiaJBX1NLT1/YbWgvm7ws3Qcn11kiXxzNTEQDMs5V3mQemhB56l3u0i9dwdzSQldA==" - "resolved" "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.6.tgz" - "version" "0.5.6" + version "0.5.6" + resolved "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.6.tgz" + integrity sha512-Fw+2BJ0tmAwK/w01tEFL5TiaJBX1NLT1/YbWgvm7ws3Qcn11kiXxzNTEQDMs5V3mQemhB56l3u0i9dwdzSQldA== dependencies: - "mini-svg-data-uri" "^1.2.3" + mini-svg-data-uri "^1.2.3" "@tinymce/tinymce-vue@^5.1.1": - "integrity" "sha512-iO57HOWesFOhsaqjA5Ea6sDvQBmJJH3/dq00Uvg7metlct2kLF+ctRgoDsetLt6gmeZ7COPftr814/XzqnJ/dg==" - "resolved" "https://registry.npmjs.org/@tinymce/tinymce-vue/-/tinymce-vue-5.1.1.tgz" - "version" "5.1.1" + version "5.1.1" + resolved "https://registry.npmjs.org/@tinymce/tinymce-vue/-/tinymce-vue-5.1.1.tgz" + integrity sha512-iO57HOWesFOhsaqjA5Ea6sDvQBmJJH3/dq00Uvg7metlct2kLF+ctRgoDsetLt6gmeZ7COPftr814/XzqnJ/dg== dependencies: - "tinymce" "^6.0.0 || ^5.5.1" + tinymce "^6.0.0 || ^5.5.1" "@vitejs/plugin-vue@^2.3.4": - "integrity" "sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==" - "resolved" "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.4.tgz" - "version" "2.3.4" + version "2.3.4" + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.4.tgz" + integrity sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg== "@vue/compiler-core@3.3.4": - "integrity" "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==" - "resolved" "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz" - "version" "3.3.4" + version "3.3.4" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz" + integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== dependencies: "@babel/parser" "^7.21.3" "@vue/shared" "3.3.4" - "estree-walker" "^2.0.2" - "source-map-js" "^1.0.2" + estree-walker "^2.0.2" + source-map-js "^1.0.2" "@vue/compiler-dom@3.3.4": - "integrity" "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==" - "resolved" "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz" - "version" "3.3.4" + version "3.3.4" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz" + integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== dependencies: "@vue/compiler-core" "3.3.4" "@vue/shared" "3.3.4" "@vue/compiler-sfc@3.3.4": - "integrity" "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==" - "resolved" "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz" - "version" "3.3.4" + version "3.3.4" + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz" + integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== dependencies: "@babel/parser" "^7.20.15" "@vue/compiler-core" "3.3.4" @@ -141,949 +141,949 @@ "@vue/compiler-ssr" "3.3.4" "@vue/reactivity-transform" "3.3.4" "@vue/shared" "3.3.4" - "estree-walker" "^2.0.2" - "magic-string" "^0.30.0" - "postcss" "^8.1.10" - "source-map-js" "^1.0.2" + estree-walker "^2.0.2" + magic-string "^0.30.0" + postcss "^8.1.10" + source-map-js "^1.0.2" "@vue/compiler-ssr@3.3.4": - "integrity" "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==" - "resolved" "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz" - "version" "3.3.4" + version "3.3.4" + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz" + integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== dependencies: "@vue/compiler-dom" "3.3.4" "@vue/shared" "3.3.4" "@vue/devtools-api@^6.5.0": - "integrity" "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" - "resolved" "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz" - "version" "6.5.0" + version "6.5.0" + resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz" + integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== "@vue/reactivity-transform@3.3.4": - "integrity" "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==" - "resolved" "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz" - "version" "3.3.4" + version "3.3.4" + resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz" + integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== dependencies: "@babel/parser" "^7.20.15" "@vue/compiler-core" "3.3.4" "@vue/shared" "3.3.4" - "estree-walker" "^2.0.2" - "magic-string" "^0.30.0" + estree-walker "^2.0.2" + magic-string "^0.30.0" "@vue/reactivity@3.3.4": - "integrity" "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==" - "resolved" "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz" - "version" "3.3.4" + version "3.3.4" + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz" + integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== dependencies: "@vue/shared" "3.3.4" "@vue/runtime-core@3.3.4": - "integrity" "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==" - "resolved" "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz" - "version" "3.3.4" + version "3.3.4" + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz" + integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== dependencies: "@vue/reactivity" "3.3.4" "@vue/shared" "3.3.4" "@vue/runtime-dom@3.3.4": - "integrity" "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==" - "resolved" "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz" - "version" "3.3.4" + version "3.3.4" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz" + integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== dependencies: "@vue/runtime-core" "3.3.4" "@vue/shared" "3.3.4" - "csstype" "^3.1.1" + csstype "^3.1.1" "@vue/server-renderer@3.3.4": - "integrity" "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==" - "resolved" "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz" - "version" "3.3.4" + version "3.3.4" + resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz" + integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== dependencies: "@vue/compiler-ssr" "3.3.4" "@vue/shared" "3.3.4" "@vue/shared@3.3.4": - "integrity" "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" - "resolved" "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz" - "version" "3.3.4" + version "3.3.4" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz" + integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== "@vueform/multiselect@^2.6.2": - "integrity" "sha512-4BFvXyzyi0Pqi/lsYdGwONsQy+ypiVzuQbmoDUlttTxuoujFtf9AdeHi1ZhfIorXG9BiysK1HcQSfYB6USgwfQ==" - "resolved" "https://registry.npmjs.org/@vueform/multiselect/-/multiselect-2.6.2.tgz" - "version" "2.6.2" - -"any-promise@^1.0.0": - "integrity" "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - "resolved" "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" - "version" "1.3.0" - -"anymatch@~3.1.2": - "integrity" "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==" - "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" - "version" "3.1.3" - dependencies: - "normalize-path" "^3.0.0" - "picomatch" "^2.0.4" - -"arg@^5.0.2": - "integrity" "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - "resolved" "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" - "version" "5.0.2" - -"atob@^2.1.2": - "integrity" "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - "resolved" "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" - "version" "2.1.2" - -"autoprefixer@^10.4.15": - "integrity" "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==" - "resolved" "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz" - "version" "10.4.15" - dependencies: - "browserslist" "^4.21.10" - "caniuse-lite" "^1.0.30001520" - "fraction.js" "^4.2.0" - "normalize-range" "^0.1.2" - "picocolors" "^1.0.0" - "postcss-value-parser" "^4.2.0" - -"balanced-match@^1.0.0": - "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - "version" "1.0.2" - -"big.js@^5.2.2": - "integrity" "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - "resolved" "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" - "version" "5.2.2" - -"binary-extensions@^2.0.0": - "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - "version" "2.2.0" - -"brace-expansion@^1.1.7": - "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" - "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - "version" "1.1.11" - dependencies: - "balanced-match" "^1.0.0" - "concat-map" "0.0.1" - -"braces@^3.0.2", "braces@~3.0.2": - "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" - "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "fill-range" "^7.0.1" - -"browserslist@^4.21.10", "browserslist@>= 4.21.0": - "integrity" "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==" - "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz" - "version" "4.21.10" - dependencies: - "caniuse-lite" "^1.0.30001517" - "electron-to-chromium" "^1.4.477" - "node-releases" "^2.0.13" - "update-browserslist-db" "^1.0.11" - -"camelcase-css@^2.0.1": - "integrity" "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" - "resolved" "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" - "version" "2.0.1" - -"caniuse-lite@^1.0.30001517", "caniuse-lite@^1.0.30001520": - "integrity" "sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ==" - "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz" - "version" "1.0.30001527" - -"chokidar@^3.5.3": - "integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==" - "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - "version" "3.5.3" - dependencies: - "anymatch" "~3.1.2" - "braces" "~3.0.2" - "glob-parent" "~5.1.2" - "is-binary-path" "~2.1.0" - "is-glob" "~4.0.1" - "normalize-path" "~3.0.0" - "readdirp" "~3.6.0" + version "2.6.2" + resolved "https://registry.npmjs.org/@vueform/multiselect/-/multiselect-2.6.2.tgz" + integrity sha512-4BFvXyzyi0Pqi/lsYdGwONsQy+ypiVzuQbmoDUlttTxuoujFtf9AdeHi1ZhfIorXG9BiysK1HcQSfYB6USgwfQ== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^10.4.15: + version "10.4.15" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz" + integrity sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew== + dependencies: + browserslist "^4.21.10" + caniuse-lite "^1.0.30001520" + fraction.js "^4.2.0" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.21.10, "browserslist@>= 4.21.0": + version "4.21.10" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz" + integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== + dependencies: + caniuse-lite "^1.0.30001517" + electron-to-chromium "^1.4.477" + node-releases "^2.0.13" + update-browserslist-db "^1.0.11" + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520: + version "1.0.30001527" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz" + integrity sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ== + +chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" optionalDependencies: - "fsevents" "~2.3.2" - -"classnames@^2.2.5": - "integrity" "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" - "resolved" "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz" - "version" "2.3.2" - -"commander@^4.0.0": - "integrity" "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - "resolved" "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" - "version" "4.1.1" - -"concat-map@0.0.1": - "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - "version" "0.0.1" - -"core-js@^3.1.3": - "integrity" "sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ==" - "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.31.1.tgz" - "version" "3.31.1" - -"css-parse@~2.0.0": - "integrity" "sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA==" - "resolved" "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "css" "^2.0.0" - -"css@^2.0.0": - "integrity" "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==" - "resolved" "https://registry.npmjs.org/css/-/css-2.2.4.tgz" - "version" "2.2.4" - dependencies: - "inherits" "^2.0.3" - "source-map" "^0.6.1" - "source-map-resolve" "^0.5.2" - "urix" "^0.1.0" - -"cssesc@^3.0.0": - "integrity" "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - "resolved" "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - "version" "3.0.0" - -"csstype@^3.1.1": - "integrity" "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz" - "version" "3.1.2" - -"debug@~3.1.0": - "integrity" "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" - "resolved" "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "ms" "2.0.0" - -"decode-uri-component@^0.2.0": - "integrity" "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" - "resolved" "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" - "version" "0.2.2" - -"didyoumean@^1.2.2": - "integrity" "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - "resolved" "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" - "version" "1.2.2" - -"dlv@^1.1.3": - "integrity" "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - "resolved" "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" - "version" "1.1.3" - -"dropzone@^6.0.0-beta.2": - "integrity" "sha512-k44yLuFFhRk53M8zP71FaaNzJYIzr99SKmpbO/oZKNslDjNXQsBTdfLs+iONd0U0L94zzlFzRnFdqbLcs7h9fQ==" - "resolved" "https://registry.npmjs.org/dropzone/-/dropzone-6.0.0-beta.2.tgz" - "version" "6.0.0-beta.2" + fsevents "~2.3.2" + +classnames@^2.2.5: + version "2.3.2" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +core-js@^3.1.3: + version "3.31.1" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.31.1.tgz" + integrity sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ== + +css-parse@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz" + integrity sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA== + dependencies: + css "^2.0.0" + +css@^2.0.0: + version "2.2.4" + resolved "https://registry.npmjs.org/css/-/css-2.2.4.tgz" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dropzone@^6.0.0-beta.2: + version "6.0.0-beta.2" + resolved "https://registry.npmjs.org/dropzone/-/dropzone-6.0.0-beta.2.tgz" + integrity sha512-k44yLuFFhRk53M8zP71FaaNzJYIzr99SKmpbO/oZKNslDjNXQsBTdfLs+iONd0U0L94zzlFzRnFdqbLcs7h9fQ== dependencies: "@swc/helpers" "^0.2.13" - "just-extend" "^5.0.0" - -"electron-to-chromium@^1.4.477": - "integrity" "sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==" - "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz" - "version" "1.4.508" - -"emojis-list@^3.0.0": - "integrity" "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - "resolved" "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" - "version" "3.0.0" - -"esbuild-linux-64@0.14.54": - "integrity" "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==" - "resolved" "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz" - "version" "0.14.54" - -"esbuild@^0.14.27": - "integrity" "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==" - "resolved" "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz" - "version" "0.14.54" + just-extend "^5.0.0" + +electron-to-chromium@^1.4.477: + version "1.4.508" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz" + integrity sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +esbuild-linux-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz" + integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== + +esbuild@^0.14.27: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz" + integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== optionalDependencies: "@esbuild/linux-loong64" "0.14.54" - "esbuild-android-64" "0.14.54" - "esbuild-android-arm64" "0.14.54" - "esbuild-darwin-64" "0.14.54" - "esbuild-darwin-arm64" "0.14.54" - "esbuild-freebsd-64" "0.14.54" - "esbuild-freebsd-arm64" "0.14.54" - "esbuild-linux-32" "0.14.54" - "esbuild-linux-64" "0.14.54" - "esbuild-linux-arm" "0.14.54" - "esbuild-linux-arm64" "0.14.54" - "esbuild-linux-mips64le" "0.14.54" - "esbuild-linux-ppc64le" "0.14.54" - "esbuild-linux-riscv64" "0.14.54" - "esbuild-linux-s390x" "0.14.54" - "esbuild-netbsd-64" "0.14.54" - "esbuild-openbsd-64" "0.14.54" - "esbuild-sunos-64" "0.14.54" - "esbuild-windows-32" "0.14.54" - "esbuild-windows-64" "0.14.54" - "esbuild-windows-arm64" "0.14.54" - -"escalade@^3.1.1": - "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - "version" "3.1.1" - -"estree-walker@^2.0.2": - "integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" - "version" "2.0.2" - -"fast-glob@^3.2.12": - "integrity" "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==" - "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz" - "version" "3.3.0" + esbuild-android-64 "0.14.54" + esbuild-android-arm64 "0.14.54" + esbuild-darwin-64 "0.14.54" + esbuild-darwin-arm64 "0.14.54" + esbuild-freebsd-64 "0.14.54" + esbuild-freebsd-arm64 "0.14.54" + esbuild-linux-32 "0.14.54" + esbuild-linux-64 "0.14.54" + esbuild-linux-arm "0.14.54" + esbuild-linux-arm64 "0.14.54" + esbuild-linux-mips64le "0.14.54" + esbuild-linux-ppc64le "0.14.54" + esbuild-linux-riscv64 "0.14.54" + esbuild-linux-s390x "0.14.54" + esbuild-netbsd-64 "0.14.54" + esbuild-openbsd-64 "0.14.54" + esbuild-sunos-64 "0.14.54" + esbuild-windows-32 "0.14.54" + esbuild-windows-64 "0.14.54" + esbuild-windows-arm64 "0.14.54" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +fast-glob@^3.2.12: + version "3.3.0" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz" + integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - "glob-parent" "^5.1.2" - "merge2" "^1.3.0" - "micromatch" "^4.0.4" - -"fastq@^1.6.0": - "integrity" "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==" - "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" - "version" "1.15.0" - dependencies: - "reusify" "^1.0.4" - -"feather-icons@^4.28.0": - "integrity" "sha512-Y7VqN9FYb8KdaSF0qD1081HCkm0v4Eq/fpfQYQnubpqi0hXx14k+gF9iqtRys1SIcTEi97xDi/fmsPFZ8xo0GQ==" - "resolved" "https://registry.npmjs.org/feather-icons/-/feather-icons-4.29.0.tgz" - "version" "4.29.0" - dependencies: - "classnames" "^2.2.5" - "core-js" "^3.1.3" - -"fill-range@^7.0.1": - "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" - "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - "version" "7.0.1" - dependencies: - "to-regex-range" "^5.0.1" - -"fraction.js@^4.2.0": - "integrity" "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" - "resolved" "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz" - "version" "4.2.0" - -"fs.realpath@^1.0.0": - "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - "version" "1.0.0" - -"function-bind@^1.1.1": - "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - "version" "1.1.1" - -"glob-parent@^5.1.2": - "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" - "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - "version" "5.1.2" - dependencies: - "is-glob" "^4.0.1" - -"glob-parent@^6.0.2": - "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" - "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" - "version" "6.0.2" - dependencies: - "is-glob" "^4.0.3" - -"glob-parent@~5.1.2": - "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" - "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - "version" "5.1.2" - dependencies: - "is-glob" "^4.0.1" - -"glob@^7.1.6": - "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - "version" "7.2.3" - dependencies: - "fs.realpath" "^1.0.0" - "inflight" "^1.0.4" - "inherits" "2" - "minimatch" "^3.1.1" - "once" "^1.3.0" - "path-is-absolute" "^1.0.0" - -"glob@7.1.6": - "integrity" "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" - "version" "7.1.6" - dependencies: - "fs.realpath" "^1.0.0" - "inflight" "^1.0.4" - "inherits" "2" - "minimatch" "^3.0.4" - "once" "^1.3.0" - "path-is-absolute" "^1.0.0" - -"has@^1.0.3": - "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" - "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "function-bind" "^1.1.1" - -"inflight@^1.0.4": - "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" - "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - "version" "1.0.6" - dependencies: - "once" "^1.3.0" - "wrappy" "1" - -"inherits@^2.0.3", "inherits@2": - "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - "version" "2.0.4" - -"is-binary-path@~2.1.0": - "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" - "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "binary-extensions" "^2.0.0" - -"is-core-module@^2.11.0": - "integrity" "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==" - "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz" - "version" "2.12.1" - dependencies: - "has" "^1.0.3" - -"is-extglob@^2.1.1": - "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" - "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - "version" "2.1.1" - -"is-glob@^4.0.1", "is-glob@^4.0.3", "is-glob@~4.0.1": - "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" - "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - "version" "4.0.3" - dependencies: - "is-extglob" "^2.1.1" - -"is-number@^7.0.0": - "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - "version" "7.0.0" - -"jiti@^1.18.2": - "integrity" "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==" - "resolved" "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz" - "version" "1.19.1" - -"json5@^1.0.1": - "integrity" "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==" - "resolved" "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "minimist" "^1.2.0" - -"just-extend@^5.0.0": - "integrity" "sha512-b+z6yF1d4EOyDgylzQo5IminlUmzSeqR1hs/bzjBNjuGras4FXq/6TrzjxfN0j+TmI0ltJzTNlqXUMCniciwKQ==" - "resolved" "https://registry.npmjs.org/just-extend/-/just-extend-5.1.1.tgz" - "version" "5.1.1" - -"lilconfig@^2.0.5", "lilconfig@^2.1.0": - "integrity" "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" - "resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" - "version" "2.1.0" - -"lines-and-columns@^1.1.6": - "integrity" "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" - "version" "1.2.4" - -"loader-utils@^1.0.2": - "integrity" "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==" - "resolved" "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz" - "version" "1.4.2" - dependencies: - "big.js" "^5.2.2" - "emojis-list" "^3.0.0" - "json5" "^1.0.1" - -"lodash.clonedeep@^4.5.0": - "integrity" "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - "resolved" "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" - "version" "4.5.0" - -"magic-string@^0.30.0": - "integrity" "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==" - "resolved" "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz" - "version" "0.30.1" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +feather-icons@^4.28.0: + version "4.29.0" + resolved "https://registry.npmjs.org/feather-icons/-/feather-icons-4.29.0.tgz" + integrity sha512-Y7VqN9FYb8KdaSF0qD1081HCkm0v4Eq/fpfQYQnubpqi0hXx14k+gF9iqtRys1SIcTEi97xDi/fmsPFZ8xo0GQ== + dependencies: + classnames "^2.2.5" + core-js "^3.1.3" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +fraction.js@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.6: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.6: + version "7.1.6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@^2.0.3, inherits@2: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.11.0: + version "2.12.1" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +jiti@^1.18.2: + version "1.19.1" + resolved "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz" + integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg== + +json5@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +just-extend@^5.0.0: + version "5.1.1" + resolved "https://registry.npmjs.org/just-extend/-/just-extend-5.1.1.tgz" + integrity sha512-b+z6yF1d4EOyDgylzQo5IminlUmzSeqR1hs/bzjBNjuGras4FXq/6TrzjxfN0j+TmI0ltJzTNlqXUMCniciwKQ== + +lilconfig@^2.0.5, lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-utils@^1.0.2: + version "1.4.2" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +magic-string@^0.30.0: + version "0.30.1" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz" + integrity sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" -"merge2@^1.3.0": - "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - "version" "1.4.1" - -"micromatch@^4.0.4", "micromatch@^4.0.5": - "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==" - "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - "version" "4.0.5" - dependencies: - "braces" "^3.0.2" - "picomatch" "^2.3.1" - -"mini-svg-data-uri@^1.2.3": - "integrity" "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==" - "resolved" "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz" - "version" "1.4.4" - -"minimatch@^3.0.4", "minimatch@^3.1.1": - "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" - "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - "version" "3.1.2" - dependencies: - "brace-expansion" "^1.1.7" - -"minimist@^1.2.0": - "integrity" "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" - "version" "1.2.8" - -"mkdirp@~1.0.4": - "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - "version" "1.0.4" - -"ms@2.0.0": - "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - "version" "2.0.0" - -"mz@^2.7.0": - "integrity" "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==" - "resolved" "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" - "version" "2.7.0" - dependencies: - "any-promise" "^1.0.0" - "object-assign" "^4.0.1" - "thenify-all" "^1.0.0" - -"nanoid@^3.3.6": - "integrity" "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" - "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz" - "version" "3.3.6" - -"node-releases@^2.0.13": - "integrity" "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" - "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz" - "version" "2.0.13" - -"normalize-path@^3.0.0", "normalize-path@~3.0.0": - "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - "version" "3.0.0" - -"normalize-range@^0.1.2": - "integrity" "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" - "resolved" "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" - "version" "0.1.2" - -"object-assign@^4.0.1": - "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - "version" "4.1.1" - -"object-hash@^3.0.0": - "integrity" "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" - "resolved" "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" - "version" "3.0.0" - -"once@^1.3.0": - "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" - "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "wrappy" "1" - -"path-is-absolute@^1.0.0": - "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - "version" "1.0.1" - -"path-parse@^1.0.7": - "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - "version" "1.0.7" - -"picocolors@^1.0.0": - "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - "version" "1.0.0" - -"picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.3.1": - "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - "version" "2.3.1" - -"pify@^2.3.0": - "integrity" "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" - "resolved" "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - "version" "2.3.0" - -"pinia@^2.1.6": - "integrity" "sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ==" - "resolved" "https://registry.npmjs.org/pinia/-/pinia-2.1.6.tgz" - "version" "2.1.6" +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mini-svg-data-uri@^1.2.3: + version "1.4.4" + resolved "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz" + integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0: + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +object-assign@^4.0.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pinia@^2.1.6: + version "2.1.6" + resolved "https://registry.npmjs.org/pinia/-/pinia-2.1.6.tgz" + integrity sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ== dependencies: "@vue/devtools-api" "^6.5.0" - "vue-demi" ">=0.14.5" + vue-demi ">=0.14.5" -"pirates@^4.0.1": - "integrity" "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==" - "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" - "version" "4.0.6" +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== -"postcss-import@^15.1.0": - "integrity" "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==" - "resolved" "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" - "version" "15.1.0" +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== dependencies: - "postcss-value-parser" "^4.0.0" - "read-cache" "^1.0.0" - "resolve" "^1.1.7" + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" -"postcss-js@^4.0.1": - "integrity" "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==" - "resolved" "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz" - "version" "4.0.1" +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== dependencies: - "camelcase-css" "^2.0.1" + camelcase-css "^2.0.1" -"postcss-load-config@^4.0.1": - "integrity" "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==" - "resolved" "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz" - "version" "4.0.1" +postcss-load-config@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz" + integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== dependencies: - "lilconfig" "^2.0.5" - "yaml" "^2.1.1" + lilconfig "^2.0.5" + yaml "^2.1.1" -"postcss-nested@^6.0.1": - "integrity" "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==" - "resolved" "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz" - "version" "6.0.1" +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== dependencies: - "postcss-selector-parser" "^6.0.11" + postcss-selector-parser "^6.0.11" -"postcss-selector-parser@^6.0.11": - "integrity" "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==" - "resolved" "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz" - "version" "6.0.13" +postcss-selector-parser@^6.0.11: + version "6.0.13" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== dependencies: - "cssesc" "^3.0.0" - "util-deprecate" "^1.0.2" + cssesc "^3.0.0" + util-deprecate "^1.0.2" -"postcss-value-parser@^4.0.0", "postcss-value-parser@^4.2.0": - "integrity" "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" - "version" "4.2.0" +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -"postcss@^8.0.0", "postcss@^8.1.0", "postcss@^8.1.10", "postcss@^8.2.14", "postcss@^8.4.13", "postcss@^8.4.21", "postcss@^8.4.23", "postcss@^8.4.29", "postcss@>=8.0.9": - "integrity" "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==" - "resolved" "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz" - "version" "8.4.29" +postcss@^8.0.0, postcss@^8.1.0, postcss@^8.1.10, postcss@^8.2.14, postcss@^8.4.13, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.29, postcss@>=8.0.9: + version "8.4.29" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz" + integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== dependencies: - "nanoid" "^3.3.6" - "picocolors" "^1.0.0" - "source-map-js" "^1.0.2" + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" -"queue-microtask@^1.2.2": - "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - "version" "1.2.3" +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -"read-cache@^1.0.0": - "integrity" "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==" - "resolved" "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" - "version" "1.0.0" +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== dependencies: - "pify" "^2.3.0" + pify "^2.3.0" -"readdirp@~3.6.0": - "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" - "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - "version" "3.6.0" +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: - "picomatch" "^2.2.1" + picomatch "^2.2.1" -"resolve-url@^0.2.1": - "integrity" "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" - "resolved" "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" - "version" "0.2.1" +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== -"resolve@^1.1.7", "resolve@^1.22.0", "resolve@^1.22.2": - "integrity" "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==" - "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz" - "version" "1.22.2" +resolve@^1.1.7, resolve@^1.22.0, resolve@^1.22.2: + version "1.22.2" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== dependencies: - "is-core-module" "^2.11.0" - "path-parse" "^1.0.7" - "supports-preserve-symlinks-flag" "^1.0.0" + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" -"reusify@^1.0.4": - "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - "version" "1.0.4" +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== "rollup@>=2.59.0 <2.78.0": - "integrity" "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==" - "resolved" "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz" - "version" "2.77.3" + version "2.77.3" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz" + integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== optionalDependencies: - "fsevents" "~2.3.2" - -"run-parallel@^1.1.9": - "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" - "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - "version" "1.2.0" - dependencies: - "queue-microtask" "^1.2.2" - -"safer-buffer@^2.1.2": - "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - "version" "2.1.2" - -"sax@~1.2.4": - "integrity" "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" - "version" "1.2.4" - -"semver@^6.3.0": - "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - "version" "6.3.1" - -"sortablejs@^1.15.0": - "integrity" "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==" - "resolved" "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz" - "version" "1.15.0" - -"sortablejs@1.14.0": - "integrity" "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" - "resolved" "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz" - "version" "1.14.0" - -"source-map-js@^1.0.2": - "integrity" "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - "resolved" "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - "version" "1.0.2" - -"source-map-resolve@^0.5.2": - "integrity" "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==" - "resolved" "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" - "version" "0.5.3" - dependencies: - "atob" "^2.1.2" - "decode-uri-component" "^0.2.0" - "resolve-url" "^0.2.1" - "source-map-url" "^0.4.0" - "urix" "^0.1.0" - -"source-map-url@^0.4.0": - "integrity" "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - "resolved" "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" - "version" "0.4.1" - -"source-map@^0.6.1": - "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - "version" "0.6.1" - -"source-map@^0.7.3": - "integrity" "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" - "version" "0.7.4" - -"stylus-loader@~3.0.2": - "integrity" "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==" - "resolved" "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "loader-utils" "^1.0.2" - "lodash.clonedeep" "^4.5.0" - "when" "~3.6.x" - -"stylus@*", "stylus@>=0.52.4", "stylus@~0.54.8": - "integrity" "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==" - "resolved" "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz" - "version" "0.54.8" - dependencies: - "css-parse" "~2.0.0" - "debug" "~3.1.0" - "glob" "^7.1.6" - "mkdirp" "~1.0.4" - "safer-buffer" "^2.1.2" - "sax" "~1.2.4" - "semver" "^6.3.0" - "source-map" "^0.7.3" - -"sucrase@^3.32.0": - "integrity" "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==" - "resolved" "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz" - "version" "3.34.0" + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safer-buffer@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +semver@^6.3.0: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +sortablejs@^1.15.0: + version "1.15.0" + resolved "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz" + integrity sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w== + +sortablejs@1.14.0: + version "1.14.0" + resolved "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz" + integrity sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w== + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +stylus-loader@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz" + integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA== + dependencies: + loader-utils "^1.0.2" + lodash.clonedeep "^4.5.0" + when "~3.6.x" + +stylus@*, stylus@>=0.52.4, stylus@~0.54.8: + version "0.54.8" + resolved "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz" + integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg== + dependencies: + css-parse "~2.0.0" + debug "~3.1.0" + glob "^7.1.6" + mkdirp "~1.0.4" + safer-buffer "^2.1.2" + sax "~1.2.4" + semver "^6.3.0" + source-map "^0.7.3" + +sucrase@^3.32.0: + version "3.34.0" + resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz" + integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw== dependencies: "@jridgewell/gen-mapping" "^0.3.2" - "commander" "^4.0.0" - "glob" "7.1.6" - "lines-and-columns" "^1.1.6" - "mz" "^2.7.0" - "pirates" "^4.0.1" - "ts-interface-checker" "^0.1.9" - -"supports-preserve-symlinks-flag@^1.0.0": - "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - "version" "1.0.0" - -"tailwindcss@^3.3.3", "tailwindcss@>=3.0.0 || >= 3.0.0-alpha.1": - "integrity" "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==" - "resolved" "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz" - "version" "3.3.3" + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tailwindcss@^3.3.3, "tailwindcss@>=3.0.0 || >= 3.0.0-alpha.1": + version "3.3.3" + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz" + integrity sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w== dependencies: "@alloc/quick-lru" "^5.2.0" - "arg" "^5.0.2" - "chokidar" "^3.5.3" - "didyoumean" "^1.2.2" - "dlv" "^1.1.3" - "fast-glob" "^3.2.12" - "glob-parent" "^6.0.2" - "is-glob" "^4.0.3" - "jiti" "^1.18.2" - "lilconfig" "^2.1.0" - "micromatch" "^4.0.5" - "normalize-path" "^3.0.0" - "object-hash" "^3.0.0" - "picocolors" "^1.0.0" - "postcss" "^8.4.23" - "postcss-import" "^15.1.0" - "postcss-js" "^4.0.1" - "postcss-load-config" "^4.0.1" - "postcss-nested" "^6.0.1" - "postcss-selector-parser" "^6.0.11" - "resolve" "^1.22.2" - "sucrase" "^3.32.0" - -"thenify-all@^1.0.0": - "integrity" "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==" - "resolved" "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" - "version" "1.6.0" - dependencies: - "thenify" ">= 3.1.0 < 4" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.2.12" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.18.2" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" "thenify@>= 3.1.0 < 4": - "integrity" "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==" - "resolved" "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" - "version" "3.3.1" + version "3.3.1" + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== dependencies: - "any-promise" "^1.0.0" + any-promise "^1.0.0" -"tiny-emitter@^2.1.0": - "integrity" "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - "resolved" "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz" - "version" "2.1.0" +tiny-emitter@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== -"tinycolor2@^1.4.2": - "integrity" "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" - "resolved" "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz" - "version" "1.6.0" +tinycolor2@^1.4.2: + version "1.6.0" + resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz" + integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== "tinymce@^6.0.0 || ^5.5.1": - "integrity" "sha512-b9Mb7z8ryFOwLm8WCmlpwzdgOt1xD1u5Jjdh68B4QjkIyTLyHRBsfsrbiCUGonnVTymDlkexPkaP8sj24zexKQ==" - "resolved" "https://registry.npmjs.org/tinymce/-/tinymce-6.6.0.tgz" - "version" "6.6.0" - -"to-regex-range@^5.0.1": - "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" - "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - "version" "5.0.1" - dependencies: - "is-number" "^7.0.0" - -"ts-interface-checker@^0.1.9": - "integrity" "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - "resolved" "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" - "version" "0.1.13" - -"update-browserslist-db@^1.0.11": - "integrity" "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==" - "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz" - "version" "1.0.11" - dependencies: - "escalade" "^3.1.1" - "picocolors" "^1.0.0" - -"urix@^0.1.0": - "integrity" "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==" - "resolved" "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" - "version" "0.1.0" - -"util-deprecate@^1.0.2": - "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - "version" "1.0.2" - -"uuid@^9.0.0": - "integrity" "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" - "resolved" "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" - "version" "9.0.0" - -"vite@^2.5.10", "vite@^2.9.16": - "integrity" "sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA==" - "resolved" "https://registry.npmjs.org/vite/-/vite-2.9.16.tgz" - "version" "2.9.16" - dependencies: - "esbuild" "^0.14.27" - "postcss" "^8.4.13" - "resolve" "^1.22.0" - "rollup" ">=2.59.0 <2.78.0" + version "6.6.0" + resolved "https://registry.npmjs.org/tinymce/-/tinymce-6.6.0.tgz" + integrity sha512-b9Mb7z8ryFOwLm8WCmlpwzdgOt1xD1u5Jjdh68B4QjkIyTLyHRBsfsrbiCUGonnVTymDlkexPkaP8sj24zexKQ== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + +vite@^2.5.10, vite@^2.9.16: + version "2.9.16" + resolved "https://registry.npmjs.org/vite/-/vite-2.9.16.tgz" + integrity sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA== + dependencies: + esbuild "^0.14.27" + postcss "^8.4.13" + resolve "^1.22.0" + rollup ">=2.59.0 <2.78.0" optionalDependencies: - "fsevents" "~2.3.2" + fsevents "~2.3.2" -"vue-color-input@^1.0.8": - "integrity" "sha512-oGYv4utF7ihKrMw3l6tQMgTsaVF+y6oDd37nP8r8K5od8/nVG0p9HOme8IHgw6Q6P0Pa9d9zYmLqT0DWFEBHQA==" - "resolved" "https://registry.npmjs.org/vue-color-input/-/vue-color-input-1.0.8.tgz" - "version" "1.0.8" +vue-color-input@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/vue-color-input/-/vue-color-input-1.0.8.tgz" + integrity sha512-oGYv4utF7ihKrMw3l6tQMgTsaVF+y6oDd37nP8r8K5od8/nVG0p9HOme8IHgw6Q6P0Pa9d9zYmLqT0DWFEBHQA== dependencies: - "tinycolor2" "^1.4.2" + tinycolor2 "^1.4.2" -"vue-demi@>=0.14.5": - "integrity" "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==" - "resolved" "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz" - "version" "0.14.5" +vue-demi@>=0.14.5: + version "0.14.5" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz" + integrity sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA== -"vue-feather@2": - "integrity" "sha512-GBvxJWu2ycGTpB8duYWnc5S/TwWPPb2G5Ft2NbkwK1vZkUDUOTYqIb4Nh1HOL6A37Isfrd0Guun0lesS97PfxA==" - "resolved" "https://registry.npmjs.org/vue-feather/-/vue-feather-2.0.0.tgz" - "version" "2.0.0" +vue-feather@2: + version "2.0.0" + resolved "https://registry.npmjs.org/vue-feather/-/vue-feather-2.0.0.tgz" + integrity sha512-GBvxJWu2ycGTpB8duYWnc5S/TwWPPb2G5Ft2NbkwK1vZkUDUOTYqIb4Nh1HOL6A37Isfrd0Guun0lesS97PfxA== -"vue@^2.6.14 || ^3.3.0", "vue@^3.0.0", "vue@^3.0.0-0 || ^2.6.0", "vue@^3.0.1", "vue@^3.0.5", "vue@^3.2.0", "vue@^3.2.25", "vue@^3.3.4", "vue@>= 3", "vue@3.3.4": - "integrity" "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==" - "resolved" "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz" - "version" "3.3.4" +"vue@^2.6.14 || ^3.3.0", vue@^3.0.0, "vue@^3.0.0-0 || ^2.6.0", vue@^3.0.1, vue@^3.0.5, vue@^3.2.0, vue@^3.2.25, vue@^3.3.4, "vue@>= 3", vue@3.3.4: + version "3.3.4" + resolved "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz" + integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== dependencies: "@vue/compiler-dom" "3.3.4" "@vue/compiler-sfc" "3.3.4" @@ -1091,24 +1091,24 @@ "@vue/server-renderer" "3.3.4" "@vue/shared" "3.3.4" -"vuedraggable@^4.1.0": - "integrity" "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==" - "resolved" "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz" - "version" "4.1.0" +vuedraggable@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz" + integrity sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww== dependencies: - "sortablejs" "1.14.0" + sortablejs "1.14.0" -"when@~3.6.x": - "integrity" "sha512-d1VUP9F96w664lKINMGeElWdhhb5sC+thXM+ydZGU3ZnaE09Wv6FaS+mpM9570kcDs/xMfcXJBTLsMdHEFYY9Q==" - "resolved" "https://registry.npmjs.org/when/-/when-3.6.4.tgz" - "version" "3.6.4" +when@~3.6.x: + version "3.6.4" + resolved "https://registry.npmjs.org/when/-/when-3.6.4.tgz" + integrity sha512-d1VUP9F96w664lKINMGeElWdhhb5sC+thXM+ydZGU3ZnaE09Wv6FaS+mpM9570kcDs/xMfcXJBTLsMdHEFYY9Q== -"wrappy@1": - "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - "version" "1.0.2" +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -"yaml@^2.1.1": - "integrity" "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==" - "resolved" "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz" - "version" "2.3.1" +yaml@^2.1.1: + version "2.3.1" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== diff --git a/controllers/front/ajax.php b/controllers/front/ajax.php index 602a214f..68c9c3fc 100755 --- a/controllers/front/ajax.php +++ b/controllers/front/ajax.php @@ -36,6 +36,8 @@ public function __construct() public function init() { + + $this->setHeadersForDomains(); if (empty($_POST)) { $_POST = json_decode(Tools::file_get_contents('php://input'), true); if (!is_array($_POST)) { @@ -51,6 +53,24 @@ public function init() parent::init(); } + public function setHeadersForDomains() + { + $shops = Shop::getShops(true, null, true); + $shop_domains = []; + foreach ($shops as $shop_id) { + $shop = new Shop($shop_id); + $shop_domains[] = $shop->domain; + } + $protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? "https" : "http"; + $url = $protocol . "://" . $host; + $host = $_SERVER['HTTP_HOST']; + + if (!in_array($host, $allowedDomains)) { + header("Access-Control-Allow-Origin: " . $protocol . "://" . $host); + } + + } + /** * Returns if the current request is an AJAX request. * diff --git a/prettyblocks.php b/prettyblocks.php index ee88c574..6ff3f27c 100755 --- a/prettyblocks.php +++ b/prettyblocks.php @@ -215,6 +215,14 @@ public function hookdisplayHeader($params) 'priority' => 150, ] ); + $this->context->controller->registerStylesheet( + 'prettyblocks', + 'modules/' . $this->name . '/build/iframe.css', + [ + 'media' => 'all', + 'priority' => 200, + ] + ); } /** diff --git a/upgrade/upgrade-3.0.0.php b/upgrade/upgrade-3.0.0.php index 3608ff17..7352b3b9 100644 --- a/upgrade/upgrade-3.0.0.php +++ b/upgrade/upgrade-3.0.0.php @@ -36,6 +36,7 @@ function upgrade_module_3_0_0($module) } \PrettyBlocksMigrate::migrateLangTable(); \PrettyBlocksMigrate::migrateSettings(); + $module->registerHook('displayHeader'); return true; } diff --git a/views/js/build.js b/views/js/build.js index 5c5c5b3f..788ab1aa 100644 --- a/views/js/build.js +++ b/views/js/build.js @@ -1,4 +1,4 @@ -class r{constructor(t,e=e,s=s){this.events={},this.arr=[],this.tEdited,this.pApply,this.document=e,this.window=s,this.targets=t,this.targets.forEach(i=>{const l=Math.random().toString(36).substr(2,9);i.setAttribute("data-id-title",l);let o=i.dataset.attributes;const a=JSON.parse(o);this.arr.push({id:l,html:i,value:i.innerHTML,tag:i.tagName.toLowerCase(),classes:i.classList,focus:this.getAttributeValue(a,"focus"),inside:!1,bold:this.getAttributeValue(a,"bold"),italic:this.getAttributeValue(a,"italic"),underline:this.getAttributeValue(a,"underline"),size:this.getAttributeValue(a,"size")?this.getAttributeValue(a,"size"):32})});for(const i of this.arr){const l=i.id,o=this.document.querySelector('[data-id-title="'+l+'"]');o.setAttribute("contenteditable","true"),i.size=o.style.fontSize}this.toolbar=this.document.createElement("div"),this.toolbar.id="toolbar",this.document.getElementsByTagName("body")[0].appendChild(this.toolbar),this.select=this.document.createElement("select"),this.select.id="select",this.select.innerHTML=` +class p{constructor(t,e=e,s=s){this.events={},this.arr=[],this.tEdited,this.pApply,this.document=e,this.window=s,this.targets=t,this.targets.forEach(i=>{const l=Math.random().toString(36).substr(2,9);i.setAttribute("data-id-title",l);let n=i.dataset.attributes;const o=JSON.parse(n);this.arr.push({id:l,html:i,value:i.innerHTML,tag:i.tagName.toLowerCase(),classes:i.classList,focus:this.getAttributeValue(o,"focus"),inside:!1,bold:this.getAttributeValue(o,"bold"),italic:this.getAttributeValue(o,"italic"),underline:this.getAttributeValue(o,"underline"),size:this.getAttributeValue(o,"size")?this.getAttributeValue(o,"size"):32})});for(const i of this.arr){const l=i.id,n=this.document.querySelector('[data-id-title="'+l+'"]');n.setAttribute("contenteditable","true"),i.size=n.style.fontSize}this.toolbar=this.document.createElement("div"),this.toolbar.id="toolbar",this.document.getElementsByTagName("body")[0].appendChild(this.toolbar),this.select=this.document.createElement("select"),this.select.id="select",this.select.innerHTML=` @@ -7,4 +7,4 @@ class r{constructor(t,e=e,s=s){this.events={},this.arr=[],this.tEdited,this.pApp - `,this.select.selectedIndex=1,this.toolbar.appendChild(this.select),this.size=this.document.createElement("input"),this.size.id="size",this.size.type="number",this.size.value="32",this.size.min="1",this.size.max="100",this.size.step="1",this.toolbar.appendChild(this.size),this.sep=this.document.createElement("div"),this.sep.classList="sep",this.toolbar.appendChild(this.sep),this.B=this.document.createElement("button"),this.Bo=!1,this.B.id="Bold",this.B.innerHTML="B",this.toolbar.appendChild(this.B),this.I=this.document.createElement("button"),this.Io=!1,this.I.id="Italics",this.I.innerHTML="I",this.toolbar.appendChild(this.I),this.U=this.document.createElement("button"),this.Uo=!1,this.U.id="Underline",this.U.innerHTML="U",this.toolbar.appendChild(this.U),this.init(),this.setVisibility()}init(){for(const t of this.arr){let e=this.document.querySelector('[data-id-title="'+t.id+'"]');for(const s of this.targets)this.setBinging(s,t,e);this.select.addEventListener("change",()=>{const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);if(this.tEdited==t.id){let l=e.innerHTML,o=this.select.value,a=this.document.createElement(o);a.innerHTML=l,a.classList=e.classList,e.replaceWith(a);let n=e.getAttribute("data-block-id_prettyblock");a.setAttribute("data-block-id_prettyblock",n);let d=e.getAttribute("data-field");a.setAttribute("data-field",d),e=a,e.setAttribute("data-id-title",t.id),e.setAttribute("contenteditable","true"),t.bold==!0&&(e.style.fontWeight="bold"),t.italic==!0&&(e.style.fontStyle="italic"),t.underline==!0&&(e.style.textDecoration="underline"),e.style.fontSize=t.size+"px",this.setVisibility(),t.html=a,this.change(i,t),this.setBinging(a,t,e)}}),this.size.addEventListener("change",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);e.style.fontSize=this.size.value+"px",t.size=this.size.value,this.change(i,t)}}),this.B.addEventListener("click",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);t.bold==!1?(t.bold=!0,this.B.style.color="#6ae26a",e.style.fontWeight="bold",this.change(i,t)):(t.bold=!1,this.B.style.color="white",e.style.fontWeight="normal",this.change(i,t))}}),this.I.addEventListener("click",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);t.italic==!1?(t.italic=!0,this.I.style.color="#6ae26a",e.style.fontStyle="italic",this.change(i,t)):(t.italic=!1,this.I.style.color="white",e.style.fontStyle="normal",this.change(i,t))}}),this.U.addEventListener("click",()=>{if(this.tEdited==t.id){let s=!t.underline;console.log("underline",s),this.setAttributeValue(e,"underline",s),t.underline=s;const i={id:t.id,focus:t.focus,inside:t.inside,tag:this.select.value,classes:Array.from(e.classList),bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},l=structuredClone(i);t.underline?(this.U.style.color="#6ae26a",e.style.textDecoration="underline"):(this.U.style.color="white",e.style.textDecoration="none"),this.change(l,t)}})}}setBinging(t,e,s){t.getAttribute("data-id-title")==e.id&&t.addEventListener("keydown",i=>{(i.ctrlKey&&i.key=="s"||i.ctrlKey&&i.key=="S"||i.metaKey&&i.key=="s"||i.metaKey&&i.key=="S")&&(i.preventDefault(),e.value=s.innerHTML,this.change(this.pApply,e),t.blur()),i.shiftKey&&i.key=="Enter"?(i.preventDefault(),this.document.execCommand("insertHTML",!1,"

")):i.key=="Enter"&&(i.preventDefault(),e.value=s.innerHTML,this.change(this.pApply,e),t.blur())})}getAttributeValue(t,e){return t.hasOwnProperty(e)?t[e]:!1}setAttributeValue(t,e,s){let i=t.getAttribute("data-attributes"),l=null;l=JSON.parse(i),l&&l.hasOwnProperty(e)?l[e]=s:console.log("L'attribut "+e+" n'existe pas dans l'objet."),console.log("OK",l),t.setAttribute("data-attributes",JSON.stringify(l||{}))}setVisibility(){for(const t of this.arr){const e=this.document.querySelector('[data-id-title="'+t.id+'"]');let s=!1,i=!1;e.addEventListener("mousedown",l=>{i=!0,this.toolbar.style.display="flex";const o=l.target.getAttribute("data-id-title"),a=this.arr.filter(d=>d.id==o)[0];this.refreshToolbar(a);const n={id:t.id,focus:t.focus,inside:t.inside,bold:t.bold,tag:this.select.value,italic:t.italic,underline:t.underline,size:t.size,value:l.target.innerHTML};this.pApply=structuredClone(n)}),e.addEventListener("mouseleave",()=>{s=!1,i||setTimeout(()=>{!s&&!i&&(this.toolbar.style.display="none")},1e3)}),e.addEventListener("focus",l=>{i=!0,this.toolbar.style.display="flex";const o=l.target.getAttribute("data-id-title"),a=this.arr.filter(n=>n.id==o)[0];this.refreshToolbar(a)}),e.addEventListener("blur",()=>{i=!1,s||setTimeout(()=>{!s&&!i&&(this.toolbar.style.display="none")},1e3)}),this.toolbar.addEventListener("mouseenter",l=>{s=!0,this.toolbar.style.display="flex"}),this.toolbar.addEventListener("mouseleave",l=>{const o=l.toElement||l.relatedTarget;s=!1,setTimeout(()=>{o&&(o.parentNode===this||o===this||o.parentNode===this.toolbar)||i||(this.toolbar.style.display="none")},1e3)})}}refreshToolbar(t){console.log("refreshToolbar",t);const e=t.id,s=this.document.querySelector('[data-id-title="'+e+'"]'),i=s.tagName.toLowerCase(),l=this.findTop(s),o=this.findLeft(s),a=Math.round(this.window.getComputedStyle(s,null).getPropertyValue("font-size").split("px")[0]),n=s.getBoundingClientRect(),d=this.toolbar.getBoundingClientRect();this.toolbar.style.top=l-d.height+55+"px",this.toolbar.style.left=o+n.width/2-d.width+"px",this.tEdited=t.id,this.size.value=a,t.size=a,i=="h1"&&(this.select.selectedIndex=0),i=="h2"&&(this.select.selectedIndex=1),i=="h3"&&(this.select.selectedIndex=2),i=="h4"&&(this.select.selectedIndex=3),i=="h5"&&(this.select.selectedIndex=4),i=="h6"&&(this.select.selectedIndex=5),i=="p"&&(this.select.selectedIndex=6),i=="span"&&(this.select.selectedIndex=7),t.bold?this.B.style.color="#6ae26a":this.B.style.color="white",t.italic?this.I.style.color="#6ae26a":this.I.style.color="white",t.underline?this.U.style.color="#6ae26a":this.U.style.color="white"}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}trigger(t,...e){const s=this.events[t];s&&s.forEach(i=>{i(...e)})}change(t,e){t.html=e.html,t.value=e.value,t.classes=e.classes,t.bold=e.bold,t.italic=e.italic,t.underline=e.underline,t.size=e.size,this.trigger("change",t,e)}apply(t,e){!e.inside&&!e.focus&&(t.html=e==null?void 0:e.html,e.value=e.html.innerHTML,this.trigger("apply",t,e))}findTop(t){var e=t.getBoundingClientRect();return e.top+this.window.scrollY}findLeft(t){var e=t.getBoundingClientRect();return e.left+this.window.scrollX}}console.log("test",r);document.addEventListener("DOMContentLoaded",c=>{let t=i=>{if(i.data.type=="initIframe"&&(document.querySelectorAll("div[data-block]").forEach(l=>{l.addEventListener("click",o=>{let a=o.target.closest("[data-id-prettyblocks]").getAttribute("data-id-prettyblocks");e(a),i.source.postMessage({type:"loadStateConfig",data:a},"*")})}),s(i)),i.data.type=="focusOnZone"){let l=i.data.data;document.querySelectorAll(".border-dotted").forEach(a=>{a.classList.remove("border-dotted")});let o=document.querySelector('[data-prettyblocks-zone="'+l+'"]');o.classList.add("border-dotted"),o.scrollIntoView({alignToTop:!0,behavior:"smooth",block:"center"})}if(i.data.type=="updateHTMLBlock"){let l=i.data.data.id_prettyblocks,o=i.data.data.html,a=document.querySelector('[data-id-prettyblocks="'+l+'"]');a.innerHTML=o,s(i)}if(i.data.type=="scrollInIframe"&&e(i.data.data),i.data.type=="getZones"){let l=document.querySelectorAll("[data-zone-name]"),o=[];l.forEach(a=>{let n=a.getAttribute("data-zone-name");o.indexOf(n)==-1&&o.push(n)}),i.source.postMessage({type:"zones",data:o},"*")}};const e=i=>{let l=document,o=l.querySelector('[data-id-prettyblocks="'+i+'"]');l.body.contains(o)&&(o.scrollIntoView({alignToTop:!1,behavior:"smooth",block:"center"}),l.querySelectorAll("[data-block]").forEach(n=>{n.classList.remove("border-dotted")}),o.classList.add("border-dotted"))},s=i=>{new r(document.querySelectorAll(".ptb-title"),document,window).on("change",async(o,a)=>{let n={id_prettyblocks:o.html.closest("[data-id-prettyblocks]").getAttribute("data-id-prettyblocks"),field:o.html.getAttribute("data-field"),index:o.html.hasAttribute("data-index")?o.html.getAttribute("data-index"):null};i.source.postMessage({type:"updateTitleComponent",data:{params:n,value:JSON.stringify(a)}},"*")})};window.addEventListener("message",t,!1)}); + `,this.select.selectedIndex=1,this.toolbar.appendChild(this.select),this.size=this.document.createElement("input"),this.size.id="size",this.size.type="number",this.size.value="32",this.size.min="1",this.size.max="100",this.size.step="1",this.toolbar.appendChild(this.size),this.sep=this.document.createElement("div"),this.sep.classList="sep",this.toolbar.appendChild(this.sep),this.B=this.document.createElement("button"),this.Bo=!1,this.B.id="Bold",this.B.innerHTML="B",this.toolbar.appendChild(this.B),this.I=this.document.createElement("button"),this.Io=!1,this.I.id="Italics",this.I.innerHTML="I",this.toolbar.appendChild(this.I),this.U=this.document.createElement("button"),this.Uo=!1,this.U.id="Underline",this.U.innerHTML="U",this.toolbar.appendChild(this.U),this.init(),this.setVisibility()}init(){for(const t of this.arr){let e=this.document.querySelector('[data-id-title="'+t.id+'"]');for(const s of this.targets)this.setBinging(s,t,e);this.select.addEventListener("change",()=>{const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);if(this.tEdited==t.id){let l=e.innerHTML,n=this.select.value,o=this.document.createElement(n);o.innerHTML=l,o.classList=e.classList,e.replaceWith(o);let r=e.getAttribute("data-block-id_prettyblock");o.setAttribute("data-block-id_prettyblock",r);let d=e.getAttribute("data-field");o.setAttribute("data-field",d),e=o,e.setAttribute("data-id-title",t.id),e.setAttribute("contenteditable","true"),t.bold==!0&&(e.style.fontWeight="bold"),t.italic==!0&&(e.style.fontStyle="italic"),t.underline==!0&&(e.style.textDecoration="underline"),e.style.fontSize=t.size+"px",this.setVisibility(),t.html=o,this.change(i,t),this.setBinging(o,t,e)}}),this.size.addEventListener("change",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);e.style.fontSize=this.size.value+"px",t.size=this.size.value,this.change(i,t)}}),this.B.addEventListener("click",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);t.bold==!1?(t.bold=!0,this.B.style.color="#6ae26a",e.style.fontWeight="bold",this.change(i,t)):(t.bold=!1,this.B.style.color="white",e.style.fontWeight="normal",this.change(i,t))}}),this.I.addEventListener("click",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);t.italic==!1?(t.italic=!0,this.I.style.color="#6ae26a",e.style.fontStyle="italic",this.change(i,t)):(t.italic=!1,this.I.style.color="white",e.style.fontStyle="normal",this.change(i,t))}}),this.U.addEventListener("click",()=>{if(this.tEdited==t.id){let s=!t.underline;console.log("underline",s),this.setAttributeValue(e,"underline",s),t.underline=s;const i={id:t.id,focus:t.focus,inside:t.inside,tag:this.select.value,classes:Array.from(e.classList),bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},l=structuredClone(i);t.underline?(this.U.style.color="#6ae26a",e.style.textDecoration="underline"):(this.U.style.color="white",e.style.textDecoration="none"),this.change(l,t)}})}}setBinging(t,e,s){t.getAttribute("data-id-title")==e.id&&t.addEventListener("keydown",i=>{(i.ctrlKey&&i.key=="s"||i.ctrlKey&&i.key=="S"||i.metaKey&&i.key=="s"||i.metaKey&&i.key=="S")&&(i.preventDefault(),e.value=s.innerHTML,this.change(this.pApply,e),t.blur()),i.shiftKey&&i.key=="Enter"?(i.preventDefault(),this.document.execCommand("insertHTML",!1,"

")):i.key=="Enter"&&(i.preventDefault(),e.value=s.innerHTML,this.change(this.pApply,e),t.blur())})}getAttributeValue(t,e){return t.hasOwnProperty(e)?t[e]:!1}setAttributeValue(t,e,s){let i=t.getAttribute("data-attributes"),l=null;l=JSON.parse(i),l&&l.hasOwnProperty(e)?l[e]=s:console.log("L'attribut "+e+" n'existe pas dans l'objet."),console.log("OK",l),t.setAttribute("data-attributes",JSON.stringify(l||{}))}setVisibility(){for(const t of this.arr){const e=this.document.querySelector('[data-id-title="'+t.id+'"]');let s=!1,i=!1;e.addEventListener("mousedown",l=>{i=!0,this.toolbar.style.display="flex";const n=l.target.getAttribute("data-id-title"),o=this.arr.filter(d=>d.id==n)[0];this.refreshToolbar(o);const r={id:t.id,focus:t.focus,inside:t.inside,bold:t.bold,tag:this.select.value,italic:t.italic,underline:t.underline,size:t.size,value:l.target.innerHTML};this.pApply=structuredClone(r)}),e.addEventListener("mouseleave",()=>{s=!1,i||setTimeout(()=>{!s&&!i&&(this.toolbar.style.display="none")},1e3)}),e.addEventListener("focus",l=>{i=!0,this.toolbar.style.display="flex";const n=l.target.getAttribute("data-id-title"),o=this.arr.filter(r=>r.id==n)[0];this.refreshToolbar(o)}),e.addEventListener("blur",()=>{i=!1,s||setTimeout(()=>{!s&&!i&&(this.toolbar.style.display="none")},1e3)}),this.toolbar.addEventListener("mouseenter",l=>{s=!0,this.toolbar.style.display="flex"}),this.toolbar.addEventListener("mouseleave",l=>{const n=l.toElement||l.relatedTarget;s=!1,setTimeout(()=>{n&&(n.parentNode===this||n===this||n.parentNode===this.toolbar)||i||(this.toolbar.style.display="none")},1e3)})}}refreshToolbar(t){console.log("refreshToolbar",t);const e=t.id,s=this.document.querySelector('[data-id-title="'+e+'"]'),i=s.tagName.toLowerCase(),l=this.findTop(s),n=this.findLeft(s),o=Math.round(this.window.getComputedStyle(s,null).getPropertyValue("font-size").split("px")[0]),r=s.getBoundingClientRect(),d=this.toolbar.getBoundingClientRect();this.toolbar.style.top=l-d.height+55+"px",this.toolbar.style.left=n+r.width/2-d.width+"px",this.tEdited=t.id,this.size.value=o,t.size=o,i=="h1"&&(this.select.selectedIndex=0),i=="h2"&&(this.select.selectedIndex=1),i=="h3"&&(this.select.selectedIndex=2),i=="h4"&&(this.select.selectedIndex=3),i=="h5"&&(this.select.selectedIndex=4),i=="h6"&&(this.select.selectedIndex=5),i=="p"&&(this.select.selectedIndex=6),i=="span"&&(this.select.selectedIndex=7),t.bold?this.B.style.color="#6ae26a":this.B.style.color="white",t.italic?this.I.style.color="#6ae26a":this.I.style.color="white",t.underline?this.U.style.color="#6ae26a":this.U.style.color="white"}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}trigger(t,...e){const s=this.events[t];s&&s.forEach(i=>{i(...e)})}change(t,e){t.html=e.html,t.value=e.value,t.classes=e.classes,t.bold=e.bold,t.italic=e.italic,t.underline=e.underline,t.size=e.size,this.trigger("change",t,e)}apply(t,e){!e.inside&&!e.focus&&(t.html=e==null?void 0:e.html,e.value=e.html.innerHTML,this.trigger("apply",t,e))}findTop(t){var e=t.getBoundingClientRect();return e.top+this.window.scrollY}findLeft(t){var e=t.getBoundingClientRect();return e.left+this.window.scrollX}}window.hasEventListener=!1;const u=()=>{window.removeEventListener("message",f,!1)};let f=a=>{if(a.data.type=="getContext"){let t={id_lang:prestashop.language.id,id_shop:prestashop.modules.prettyblocks.id_shop,shop_name:prestashop.modules.prettyblocks.shop_name,current_url:prestashop.modules.prettyblocks.shop_current_url,href:window.location.href};return a.source.postMessage({type:"setContext",data:{data:t}},"*")}if(a.data.type=="initIframe")return document.querySelectorAll("div[data-block]").forEach(t=>{t.addEventListener("click",e=>{let s=e.target.closest("[data-id-prettyblocks]").getAttribute("data-id-prettyblocks");c(s),a.source.postMessage({type:"loadStateConfig",data:s},"*")})}),h(a);if(a.data.type=="focusOnZone"){let t=a.data.data;document.querySelectorAll(".border-dotted").forEach(s=>{s.classList.remove("border-dotted")});let e=document.querySelector('[data-prettyblocks-zone="'+t+'"]');return e.classList.add("border-dotted"),e.scrollIntoView({alignToTop:!0,behavior:"smooth",block:"center"})}if(a.data.type=="updateHTMLBlock"){let t=a.data.data.id_prettyblocks,e=a.data.data.html,s=document.querySelector('[data-id-prettyblocks="'+t+'"]');return s.innerHTML=e,h(a)}if(a.data.type=="scrollInIframe")return c(a.data.data);if(a.data.type=="getZones"){let t=document.querySelectorAll("[data-zone-name]"),e=[];return t.forEach(s=>{let i=s.getAttribute("data-zone-name");e.indexOf(i)==-1&&e.push(i)}),a.source.postMessage({type:"zones",data:e},"*")}u()};const c=a=>{let t=document,e=t.querySelector('[data-id-prettyblocks="'+a+'"]');t.body.contains(e)&&(e.scrollIntoView({alignToTop:!1,behavior:"smooth",block:"center"}),t.querySelectorAll("[data-block]").forEach(i=>{i.classList.remove("border-dotted")}),e.classList.add("border-dotted"))},h=a=>{new p(document.querySelectorAll(".ptb-title"),document,window).on("change",async(e,s)=>{let i={id_prettyblocks:e.html.closest("[data-id-prettyblocks]").getAttribute("data-id-prettyblocks"),field:e.html.getAttribute("data-field"),index:e.html.hasAttribute("data-index")?e.html.getAttribute("data-index"):null};a.source.postMessage({type:"updateTitleComponent",data:{params:i,value:JSON.stringify(s)}},"*")})};document.addEventListener("DOMContentLoaded",a=>{window.hasEventListener||(console.log("subscribe"),window.addEventListener("message",f,!1),window.hasEventListener=!0)});u(); diff --git a/views/js/prettyblocks.js b/views/js/prettyblocks.js index 5a285580..180f31df 100644 --- a/views/js/prettyblocks.js +++ b/views/js/prettyblocks.js @@ -1,96 +1,112 @@ import { toolbar } from '../../_dev/src/scripts/toolbar' -console.log('test',toolbar) -document.addEventListener('DOMContentLoaded', (event) => { - - let eventHandler = (event) => { - if (event.data.type == 'initIframe') { - // register block click - document.querySelectorAll('div[data-block]').forEach((div) => { - - div.addEventListener('click', (el) => { - let id_prettyblocks = el.target.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks') - selectBlock(id_prettyblocks) - event.source.postMessage({ type: 'loadStateConfig', data: id_prettyblocks }, '*'); - }) - }) - loadToolBar(event) - - } - // focus on zone in iframe - if (event.data.type == 'focusOnZone') { - let zone_name = event.data.data - document.querySelectorAll('.border-dotted').forEach((div) => { - div.classList.remove('border-dotted') - }) - let el = document.querySelector('[data-prettyblocks-zone="' + zone_name + '"]') - el.classList.add('border-dotted') - el.scrollIntoView({ - alignToTop: true, - behavior: 'smooth', - block: 'center' - }) - +window.hasEventListener = false; +const unsubscribe = () => { + window.removeEventListener("message", eventHandler, false); +} +let eventHandler = (event) => { + if(event.data.type == 'getContext') + { + let context = { + id_lang: prestashop.language.id, + id_shop: prestashop.modules.prettyblocks.id_shop, + shop_name: prestashop.modules.prettyblocks.shop_name, + current_url: prestashop.modules.prettyblocks.shop_current_url, + href: window.location.href } - // update HTML block - if (event.data.type == 'updateHTMLBlock') { - let id_prettyblocks = event.data.data.id_prettyblocks - let data = event.data.data.html - let domBlock = document.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') - domBlock.innerHTML = data - loadToolBar(event) - } - - if (event.data.type == 'scrollInIframe') { - selectBlock(event.data.data) - } - if (event.data.type == 'getZones') { - let els = document.querySelectorAll('[data-zone-name]') - let zones = [] - - els.forEach((el) => { - let zone_name = el.getAttribute('data-zone-name') - if (zones.indexOf(zone_name) == -1) { - zones.push(zone_name) - } - }) - event.source.postMessage({ type: 'zones', data: zones }, '*'); - // unsubscribe() - } - - + return event.source.postMessage({ type: 'setContext', + data: { data: context } }, '*'); } - const selectBlock = (id_prettyblocks) => { - - let doc = document - let el = doc.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') - if (doc.body.contains(el)) { - el.scrollIntoView({ - alignToTop: false, - behavior: 'smooth', - block: 'center' - }) - let tr = doc.querySelectorAll('[data-block]') - tr.forEach(bl => { - bl.classList.remove('border-dotted') + if (event.data.type == 'initIframe') { + // register block click + document.querySelectorAll('div[data-block]').forEach((div) => { + + div.addEventListener('click', (el) => { + let id_prettyblocks = el.target.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks') + selectBlock(id_prettyblocks) + event.source.postMessage({ type: 'loadStateConfig', data: id_prettyblocks }, '*'); }) - el.classList.add('border-dotted') - } + }) + return loadToolBar(event) + + } + // focus on zone in iframe + if (event.data.type == 'focusOnZone') { + let zone_name = event.data.data + document.querySelectorAll('.border-dotted').forEach((div) => { + div.classList.remove('border-dotted') + }) + let el = document.querySelector('[data-prettyblocks-zone="' + zone_name + '"]') + el.classList.add('border-dotted') + return el.scrollIntoView({ + alignToTop: true, + behavior: 'smooth', + block: 'center' + }) + + } + // update HTML block + if (event.data.type == 'updateHTMLBlock') { + let id_prettyblocks = event.data.data.id_prettyblocks + let data = event.data.data.html + let domBlock = document.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') + domBlock.innerHTML = data + return loadToolBar(event) + } + + if (event.data.type == 'scrollInIframe') { + return selectBlock(event.data.data) } - const loadToolBar = (event) => { - const tb = new toolbar( document.querySelectorAll('.ptb-title'), document, window); - tb.on('change', async (oldValue, newValue) => { - let params = { - id_prettyblocks: oldValue.html.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks'), - field: oldValue.html.getAttribute('data-field'), - index: oldValue.html.hasAttribute('data-index') ? oldValue.html.getAttribute('data-index') : null + if (event.data.type == 'getZones') { + let els = document.querySelectorAll('[data-zone-name]') + let zones = [] + + els.forEach((el) => { + let zone_name = el.getAttribute('data-zone-name') + if (zones.indexOf(zone_name) == -1) { + zones.push(zone_name) } - event.source.postMessage({ type: 'updateTitleComponent', - data: { params: params, value: JSON.stringify(newValue) } }, '*'); }) + return event.source.postMessage({ type: 'zones', data: zones }, '*'); } + unsubscribe() + + +} +const selectBlock = (id_prettyblocks) => { - const unsubscribe = () => { - window.removeEventListener("message", eventHandler, false); + let doc = document + let el = doc.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') + if (doc.body.contains(el)) { + el.scrollIntoView({ + alignToTop: false, + behavior: 'smooth', + block: 'center' + }) + let tr = doc.querySelectorAll('[data-block]') + tr.forEach(bl => { + bl.classList.remove('border-dotted') + }) + el.classList.add('border-dotted') + } +} +const loadToolBar = (event) => { + const tb = new toolbar( document.querySelectorAll('.ptb-title'), document, window); + tb.on('change', async (oldValue, newValue) => { + let params = { + id_prettyblocks: oldValue.html.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks'), + field: oldValue.html.getAttribute('data-field'), + index: oldValue.html.hasAttribute('data-index') ? oldValue.html.getAttribute('data-index') : null + } + event.source.postMessage({ type: 'updateTitleComponent', + data: { params: params, value: JSON.stringify(newValue) } }, '*'); + }) +} + +document.addEventListener('DOMContentLoaded', (event) => { + if (!window.hasEventListener) { + console.log('subscribe') + window.addEventListener("message", eventHandler, false) + window.hasEventListener = true; } - window.addEventListener("message", eventHandler, false) }); +unsubscribe(); \ No newline at end of file From b1edab7f52c6178cce2baa76304c1353cb26d901 Mon Sep 17 00:00:00 2001 From: PrestaSafe Date: Sat, 7 Oct 2023 11:10:26 +0200 Subject: [PATCH 05/11] click and select block from iframe. --- _dev/src/components/MenuItem.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/_dev/src/components/MenuItem.vue b/_dev/src/components/MenuItem.vue index 282e02ae..61353d89 100644 --- a/_dev/src/components/MenuItem.vue +++ b/_dev/src/components/MenuItem.vue @@ -52,7 +52,7 @@ const removeState = async () => { } let data = await HttpClient.get(ajax_urls.state, params) emitter.emit('initStates') - emitter.emit('reloadIframe', null) + emitter.emit('reloadIframe', null)x } // emitter.emit('reloadIframe', null) @@ -78,6 +78,7 @@ const disabled = ref(false)
+ @@ -113,4 +114,5 @@ const disabled = ref(false) .menu-item:hover>.menu-item-actions { @apply w-auto; } - + + \ No newline at end of file From 93904c7583e11a261c9b8b6e91c2d781cb9775d9 Mon Sep 17 00:00:00 2001 From: PrestaSafe Date: Sat, 7 Oct 2023 11:10:40 +0200 Subject: [PATCH 06/11] select block on iframe --- _dev/public/iframe.css | 5 ++++ _dev/src/components/LeftPanel.vue | 12 ++++++---- _dev/src/components/PanelThemeSettings.vue | 10 ++++---- _dev/src/components/RightPanel.vue | 1 + _dev/src/components/form/ZoneSelect.vue | 7 +++++- _dev/src/scripts/iframe.js | 17 +++++++++++-- _dev/src/scripts/toolbar.js | 8 +++---- _dev/src/store/currentBlock.js | 13 ++++++++++ views/js/build.js | 4 ++-- views/js/iframe.css | 5 +++- views/js/prettyblocks.js | 28 +++++++++++++++++----- 11 files changed, 84 insertions(+), 26 deletions(-) diff --git a/_dev/public/iframe.css b/_dev/public/iframe.css index e35957e9..319e55fd 100644 --- a/_dev/public/iframe.css +++ b/_dev/public/iframe.css @@ -4,6 +4,11 @@ border-radius: 8px; border-width: 4px; position: relative; + } + +[data-prettyblocks-zone].border-dotted{ + + border-color: rgb(225, 212, 68); } diff --git a/_dev/src/components/LeftPanel.vue b/_dev/src/components/LeftPanel.vue index 6e9a8d8e..890d2500 100644 --- a/_dev/src/components/LeftPanel.vue +++ b/_dev/src/components/LeftPanel.vue @@ -10,7 +10,7 @@ import ZoneSelect from "./form/ZoneSelect.vue"; /* Demo data */ // import { v4 as uuidv4 } from 'uuid' import emitter from "tiny-emitter/instance"; -import { useStore, currentZone, contextShop } from "../store/currentBlock"; +import { useStore, currentZone, contextShop, storedBlocks } from "../store/currentBlock"; import { trans } from "../scripts/trans"; defineComponent({ @@ -30,6 +30,7 @@ const loadStateConfig = async (e) => { id_prettyblocks: e.id_prettyblocks, // instance_id: e.instance_id }); + emitter.emit("displayBlockConfig", e); }; // emitter.on('loadStateConfig', async (id_prettyblocks) => { @@ -62,12 +63,9 @@ emitter.on("initStates", () => { }); const initStates = async () => { let contextStore = contextShop(); - console.log('contextStore', await contextStore.getContext()) - // Attendez que l'action asynchrone getContext soit terminée let context = await contextStore.getContext(); - let current_zone = currentZone().name; - console.log('currentZone', current_zone) + let piniaStored = storedBlocks(); displayZoneName.value = current_zone; const params = { ajax: true, @@ -83,6 +81,10 @@ const initStates = async () => { groups.value = Object.entries(data.blocks).map(([key, value] = block) => { return value.formatted; }); + + piniaStored.$patch({ + blocks: data.blocks, + }); }) .catch((error) => console.error(error)); }; diff --git a/_dev/src/components/PanelThemeSettings.vue b/_dev/src/components/PanelThemeSettings.vue index d4dcc8fb..d11a8902 100644 --- a/_dev/src/components/PanelThemeSettings.vue +++ b/_dev/src/components/PanelThemeSettings.vue @@ -24,7 +24,7 @@ onUnmounted(() => { }) onMounted(()=> { getSettings() - console.log('mounted PanelSettings') + // console.log('mounted PanelSettings') }) emitter.on('globalSave', () => { if (canSave.value) { @@ -54,7 +54,7 @@ const getSettings = async () => { .then((data) => { canSave.value = true settings.value = data.settings - console.log('data settings', data.settings) + // console.log('data settings', data.settings) }) .catch(error => console.error(error)); } @@ -69,8 +69,8 @@ function capitalizeFirstLetter(string) { const saveThemeSettings = async () => { let contextStore = contextShop(); let context = await contextStore.getContext(); - console.log('save context', context) - console.log('urls', ajax_urls.state) + // console.log('save context', context) + // console.log('urls', ajax_urls.state) const params = { action: 'updateThemeSettings', ajax: true, @@ -82,7 +82,7 @@ const saveThemeSettings = async () => { HttpClient.post(ajax_urls.state, params) .then((data) => { - console.log('data', data) + // console.log('data', data) if (data.message) { toaster.show(data.message) emitter.emit('reloadIframe') diff --git a/_dev/src/components/RightPanel.vue b/_dev/src/components/RightPanel.vue index 22dbe560..d05bf38a 100644 --- a/_dev/src/components/RightPanel.vue +++ b/_dev/src/components/RightPanel.vue @@ -64,6 +64,7 @@ const blockLoaded = ref(false) emitter.on('displayBlockConfig', (element) => { loadBlockConfig(element) + }) emitter.on('displaySubState', async (element) => { diff --git a/_dev/src/components/form/ZoneSelect.vue b/_dev/src/components/form/ZoneSelect.vue index eea05563..88ed7e3f 100644 --- a/_dev/src/components/form/ZoneSelect.vue +++ b/_dev/src/components/form/ZoneSelect.vue @@ -13,7 +13,7 @@ defineComponent({ let items = ref([]); emitter.on('loadZones', (zonesState) => { - console.log('emit zoneLoaded', zonesState) + items.value = zonesState if (zonesState.indexOf(currentZone().name) == -1) { currentZone().$patch({ @@ -25,6 +25,11 @@ emitter.on('loadZones', (zonesState) => { } }) +emitter.on('selectZone' , (zone) => { + props.modelValue.name = zone + onInput(zone) +}) + const props = defineProps({ title: String, // api url to get the data diff --git a/_dev/src/scripts/iframe.js b/_dev/src/scripts/iframe.js index 1eaf18ed..9bff072e 100644 --- a/_dev/src/scripts/iframe.js +++ b/_dev/src/scripts/iframe.js @@ -2,7 +2,7 @@ import { ref } from 'vue' import { HttpClient } from "../services/HttpClient"; import emitter from 'tiny-emitter/instance' import { toolbar } from './toolbar'; -import { useStore, storedZones, contextShop } from '../store/currentBlock' +import { useStore, storedZones, contextShop, storedBlocks } from '../store/currentBlock' import Block from './block' import { createToaster } from "@meforma/vue-toaster"; @@ -48,12 +48,25 @@ export default class Iframe { } if (event.data.type == 'updateTitleComponent') { - console.log('updateTitleComponent', JSON.parse(event.data.data.value)) + // console.log('updateTitleComponent', JSON.parse(event.data.data.value)) let params = event.data.data.params this.updateTitleComponent(JSON.parse(event.data.data.value), params.id_prettyblocks, params.field, params.index) } + if(event.data.type == 'focusBlock') + { + let id_prettyblocks = event.data.data.id_prettyblocks + let zone_name = event.data.data.zone_name + let piniaBlocks = await storedBlocks().blocks + + let element = await piniaBlocks.find(b => { + return b.id_prettyblocks == id_prettyblocks + }); + emitter.emit('displayBlockConfig', element) + emitter.emit('selectZone', zone_name) + } + if (event.data.type == 'setContext') { let iwindow = event.data.data.data let context = contextShop() diff --git a/_dev/src/scripts/toolbar.js b/_dev/src/scripts/toolbar.js index b6e0024a..0f9cd35a 100644 --- a/_dev/src/scripts/toolbar.js +++ b/_dev/src/scripts/toolbar.js @@ -235,7 +235,7 @@ export class toolbar { this.U.addEventListener("click", () => { if (this.tEdited == t.id) { let underline = !t.underline; - console.log('underline', underline) + // console.log('underline', underline) this.setAttributeValue(e,"underline", underline); t.underline = underline; const z = { @@ -306,9 +306,9 @@ export class toolbar { if (attrObject && attrObject.hasOwnProperty(attributeName)) { attrObject[attributeName] = newValue; } else { - console.log("L'attribut " + attributeName + " n'existe pas dans l'objet."); + // console.log("L'attribut " + attributeName + " n'existe pas dans l'objet."); } - console.log('OK', attrObject) + // console.log('OK', attrObject) element.setAttribute('data-attributes', JSON.stringify(attrObject || {})); } @@ -396,7 +396,7 @@ export class toolbar { } refreshToolbar(obj) { - console.log('refreshToolbar', obj) + // console.log('refreshToolbar', obj) const id = obj.id; const e = this.document.querySelector('[data-id-title="' + id + '"]'); const tag = e.tagName.toLowerCase() diff --git a/_dev/src/store/currentBlock.js b/_dev/src/store/currentBlock.js index c820fd62..b8044967 100644 --- a/_dev/src/store/currentBlock.js +++ b/_dev/src/store/currentBlock.js @@ -60,4 +60,17 @@ export const storedZones = defineStore('storedZones', { } +}) + +export const storedBlocks = defineStore('storedBlocks', { + state: () => { + return { + blocks: [], + } + }, + getters: { + all(state){ return state.blocks } + } + + }) \ No newline at end of file diff --git a/views/js/build.js b/views/js/build.js index 788ab1aa..834eaf71 100644 --- a/views/js/build.js +++ b/views/js/build.js @@ -1,4 +1,4 @@ -class p{constructor(t,e=e,s=s){this.events={},this.arr=[],this.tEdited,this.pApply,this.document=e,this.window=s,this.targets=t,this.targets.forEach(i=>{const l=Math.random().toString(36).substr(2,9);i.setAttribute("data-id-title",l);let n=i.dataset.attributes;const o=JSON.parse(n);this.arr.push({id:l,html:i,value:i.innerHTML,tag:i.tagName.toLowerCase(),classes:i.classList,focus:this.getAttributeValue(o,"focus"),inside:!1,bold:this.getAttributeValue(o,"bold"),italic:this.getAttributeValue(o,"italic"),underline:this.getAttributeValue(o,"underline"),size:this.getAttributeValue(o,"size")?this.getAttributeValue(o,"size"):32})});for(const i of this.arr){const l=i.id,n=this.document.querySelector('[data-id-title="'+l+'"]');n.setAttribute("contenteditable","true"),i.size=n.style.fontSize}this.toolbar=this.document.createElement("div"),this.toolbar.id="toolbar",this.document.getElementsByTagName("body")[0].appendChild(this.toolbar),this.select=this.document.createElement("select"),this.select.id="select",this.select.innerHTML=` +class f{constructor(t,e=e,s=s){this.events={},this.arr=[],this.tEdited,this.pApply,this.document=e,this.window=s,this.targets=t,this.targets.forEach(i=>{const o=Math.random().toString(36).substr(2,9);i.setAttribute("data-id-title",o);let r=i.dataset.attributes;const a=JSON.parse(r);this.arr.push({id:o,html:i,value:i.innerHTML,tag:i.tagName.toLowerCase(),classes:i.classList,focus:this.getAttributeValue(a,"focus"),inside:!1,bold:this.getAttributeValue(a,"bold"),italic:this.getAttributeValue(a,"italic"),underline:this.getAttributeValue(a,"underline"),size:this.getAttributeValue(a,"size")?this.getAttributeValue(a,"size"):32})});for(const i of this.arr){const o=i.id,r=this.document.querySelector('[data-id-title="'+o+'"]');r.setAttribute("contenteditable","true"),i.size=r.style.fontSize}this.toolbar=this.document.createElement("div"),this.toolbar.id="toolbar",this.document.getElementsByTagName("body")[0].appendChild(this.toolbar),this.select=this.document.createElement("select"),this.select.id="select",this.select.innerHTML=` @@ -7,4 +7,4 @@ class p{constructor(t,e=e,s=s){this.events={},this.arr=[],this.tEdited,this.pApp - `,this.select.selectedIndex=1,this.toolbar.appendChild(this.select),this.size=this.document.createElement("input"),this.size.id="size",this.size.type="number",this.size.value="32",this.size.min="1",this.size.max="100",this.size.step="1",this.toolbar.appendChild(this.size),this.sep=this.document.createElement("div"),this.sep.classList="sep",this.toolbar.appendChild(this.sep),this.B=this.document.createElement("button"),this.Bo=!1,this.B.id="Bold",this.B.innerHTML="B",this.toolbar.appendChild(this.B),this.I=this.document.createElement("button"),this.Io=!1,this.I.id="Italics",this.I.innerHTML="I",this.toolbar.appendChild(this.I),this.U=this.document.createElement("button"),this.Uo=!1,this.U.id="Underline",this.U.innerHTML="U",this.toolbar.appendChild(this.U),this.init(),this.setVisibility()}init(){for(const t of this.arr){let e=this.document.querySelector('[data-id-title="'+t.id+'"]');for(const s of this.targets)this.setBinging(s,t,e);this.select.addEventListener("change",()=>{const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);if(this.tEdited==t.id){let l=e.innerHTML,n=this.select.value,o=this.document.createElement(n);o.innerHTML=l,o.classList=e.classList,e.replaceWith(o);let r=e.getAttribute("data-block-id_prettyblock");o.setAttribute("data-block-id_prettyblock",r);let d=e.getAttribute("data-field");o.setAttribute("data-field",d),e=o,e.setAttribute("data-id-title",t.id),e.setAttribute("contenteditable","true"),t.bold==!0&&(e.style.fontWeight="bold"),t.italic==!0&&(e.style.fontStyle="italic"),t.underline==!0&&(e.style.textDecoration="underline"),e.style.fontSize=t.size+"px",this.setVisibility(),t.html=o,this.change(i,t),this.setBinging(o,t,e)}}),this.size.addEventListener("change",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);e.style.fontSize=this.size.value+"px",t.size=this.size.value,this.change(i,t)}}),this.B.addEventListener("click",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);t.bold==!1?(t.bold=!0,this.B.style.color="#6ae26a",e.style.fontWeight="bold",this.change(i,t)):(t.bold=!1,this.B.style.color="white",e.style.fontWeight="normal",this.change(i,t))}}),this.I.addEventListener("click",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);t.italic==!1?(t.italic=!0,this.I.style.color="#6ae26a",e.style.fontStyle="italic",this.change(i,t)):(t.italic=!1,this.I.style.color="white",e.style.fontStyle="normal",this.change(i,t))}}),this.U.addEventListener("click",()=>{if(this.tEdited==t.id){let s=!t.underline;console.log("underline",s),this.setAttributeValue(e,"underline",s),t.underline=s;const i={id:t.id,focus:t.focus,inside:t.inside,tag:this.select.value,classes:Array.from(e.classList),bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},l=structuredClone(i);t.underline?(this.U.style.color="#6ae26a",e.style.textDecoration="underline"):(this.U.style.color="white",e.style.textDecoration="none"),this.change(l,t)}})}}setBinging(t,e,s){t.getAttribute("data-id-title")==e.id&&t.addEventListener("keydown",i=>{(i.ctrlKey&&i.key=="s"||i.ctrlKey&&i.key=="S"||i.metaKey&&i.key=="s"||i.metaKey&&i.key=="S")&&(i.preventDefault(),e.value=s.innerHTML,this.change(this.pApply,e),t.blur()),i.shiftKey&&i.key=="Enter"?(i.preventDefault(),this.document.execCommand("insertHTML",!1,"

")):i.key=="Enter"&&(i.preventDefault(),e.value=s.innerHTML,this.change(this.pApply,e),t.blur())})}getAttributeValue(t,e){return t.hasOwnProperty(e)?t[e]:!1}setAttributeValue(t,e,s){let i=t.getAttribute("data-attributes"),l=null;l=JSON.parse(i),l&&l.hasOwnProperty(e)?l[e]=s:console.log("L'attribut "+e+" n'existe pas dans l'objet."),console.log("OK",l),t.setAttribute("data-attributes",JSON.stringify(l||{}))}setVisibility(){for(const t of this.arr){const e=this.document.querySelector('[data-id-title="'+t.id+'"]');let s=!1,i=!1;e.addEventListener("mousedown",l=>{i=!0,this.toolbar.style.display="flex";const n=l.target.getAttribute("data-id-title"),o=this.arr.filter(d=>d.id==n)[0];this.refreshToolbar(o);const r={id:t.id,focus:t.focus,inside:t.inside,bold:t.bold,tag:this.select.value,italic:t.italic,underline:t.underline,size:t.size,value:l.target.innerHTML};this.pApply=structuredClone(r)}),e.addEventListener("mouseleave",()=>{s=!1,i||setTimeout(()=>{!s&&!i&&(this.toolbar.style.display="none")},1e3)}),e.addEventListener("focus",l=>{i=!0,this.toolbar.style.display="flex";const n=l.target.getAttribute("data-id-title"),o=this.arr.filter(r=>r.id==n)[0];this.refreshToolbar(o)}),e.addEventListener("blur",()=>{i=!1,s||setTimeout(()=>{!s&&!i&&(this.toolbar.style.display="none")},1e3)}),this.toolbar.addEventListener("mouseenter",l=>{s=!0,this.toolbar.style.display="flex"}),this.toolbar.addEventListener("mouseleave",l=>{const n=l.toElement||l.relatedTarget;s=!1,setTimeout(()=>{n&&(n.parentNode===this||n===this||n.parentNode===this.toolbar)||i||(this.toolbar.style.display="none")},1e3)})}}refreshToolbar(t){console.log("refreshToolbar",t);const e=t.id,s=this.document.querySelector('[data-id-title="'+e+'"]'),i=s.tagName.toLowerCase(),l=this.findTop(s),n=this.findLeft(s),o=Math.round(this.window.getComputedStyle(s,null).getPropertyValue("font-size").split("px")[0]),r=s.getBoundingClientRect(),d=this.toolbar.getBoundingClientRect();this.toolbar.style.top=l-d.height+55+"px",this.toolbar.style.left=n+r.width/2-d.width+"px",this.tEdited=t.id,this.size.value=o,t.size=o,i=="h1"&&(this.select.selectedIndex=0),i=="h2"&&(this.select.selectedIndex=1),i=="h3"&&(this.select.selectedIndex=2),i=="h4"&&(this.select.selectedIndex=3),i=="h5"&&(this.select.selectedIndex=4),i=="h6"&&(this.select.selectedIndex=5),i=="p"&&(this.select.selectedIndex=6),i=="span"&&(this.select.selectedIndex=7),t.bold?this.B.style.color="#6ae26a":this.B.style.color="white",t.italic?this.I.style.color="#6ae26a":this.I.style.color="white",t.underline?this.U.style.color="#6ae26a":this.U.style.color="white"}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}trigger(t,...e){const s=this.events[t];s&&s.forEach(i=>{i(...e)})}change(t,e){t.html=e.html,t.value=e.value,t.classes=e.classes,t.bold=e.bold,t.italic=e.italic,t.underline=e.underline,t.size=e.size,this.trigger("change",t,e)}apply(t,e){!e.inside&&!e.focus&&(t.html=e==null?void 0:e.html,e.value=e.html.innerHTML,this.trigger("apply",t,e))}findTop(t){var e=t.getBoundingClientRect();return e.top+this.window.scrollY}findLeft(t){var e=t.getBoundingClientRect();return e.left+this.window.scrollX}}window.hasEventListener=!1;const u=()=>{window.removeEventListener("message",f,!1)};let f=a=>{if(a.data.type=="getContext"){let t={id_lang:prestashop.language.id,id_shop:prestashop.modules.prettyblocks.id_shop,shop_name:prestashop.modules.prettyblocks.shop_name,current_url:prestashop.modules.prettyblocks.shop_current_url,href:window.location.href};return a.source.postMessage({type:"setContext",data:{data:t}},"*")}if(a.data.type=="initIframe")return document.querySelectorAll("div[data-block]").forEach(t=>{t.addEventListener("click",e=>{let s=e.target.closest("[data-id-prettyblocks]").getAttribute("data-id-prettyblocks");c(s),a.source.postMessage({type:"loadStateConfig",data:s},"*")})}),h(a);if(a.data.type=="focusOnZone"){let t=a.data.data;document.querySelectorAll(".border-dotted").forEach(s=>{s.classList.remove("border-dotted")});let e=document.querySelector('[data-prettyblocks-zone="'+t+'"]');return e.classList.add("border-dotted"),e.scrollIntoView({alignToTop:!0,behavior:"smooth",block:"center"})}if(a.data.type=="updateHTMLBlock"){let t=a.data.data.id_prettyblocks,e=a.data.data.html,s=document.querySelector('[data-id-prettyblocks="'+t+'"]');return s.innerHTML=e,h(a)}if(a.data.type=="scrollInIframe")return c(a.data.data);if(a.data.type=="getZones"){let t=document.querySelectorAll("[data-zone-name]"),e=[];return t.forEach(s=>{let i=s.getAttribute("data-zone-name");e.indexOf(i)==-1&&e.push(i)}),a.source.postMessage({type:"zones",data:e},"*")}u()};const c=a=>{let t=document,e=t.querySelector('[data-id-prettyblocks="'+a+'"]');t.body.contains(e)&&(e.scrollIntoView({alignToTop:!1,behavior:"smooth",block:"center"}),t.querySelectorAll("[data-block]").forEach(i=>{i.classList.remove("border-dotted")}),e.classList.add("border-dotted"))},h=a=>{new p(document.querySelectorAll(".ptb-title"),document,window).on("change",async(e,s)=>{let i={id_prettyblocks:e.html.closest("[data-id-prettyblocks]").getAttribute("data-id-prettyblocks"),field:e.html.getAttribute("data-field"),index:e.html.hasAttribute("data-index")?e.html.getAttribute("data-index"):null};a.source.postMessage({type:"updateTitleComponent",data:{params:i,value:JSON.stringify(s)}},"*")})};document.addEventListener("DOMContentLoaded",a=>{window.hasEventListener||(console.log("subscribe"),window.addEventListener("message",f,!1),window.hasEventListener=!0)});u(); + `,this.select.selectedIndex=1,this.toolbar.appendChild(this.select),this.size=this.document.createElement("input"),this.size.id="size",this.size.type="number",this.size.value="32",this.size.min="1",this.size.max="100",this.size.step="1",this.toolbar.appendChild(this.size),this.sep=this.document.createElement("div"),this.sep.classList="sep",this.toolbar.appendChild(this.sep),this.B=this.document.createElement("button"),this.Bo=!1,this.B.id="Bold",this.B.innerHTML="B",this.toolbar.appendChild(this.B),this.I=this.document.createElement("button"),this.Io=!1,this.I.id="Italics",this.I.innerHTML="I",this.toolbar.appendChild(this.I),this.U=this.document.createElement("button"),this.Uo=!1,this.U.id="Underline",this.U.innerHTML="U",this.toolbar.appendChild(this.U),this.init(),this.setVisibility()}init(){for(const t of this.arr){let e=this.document.querySelector('[data-id-title="'+t.id+'"]');for(const s of this.targets)this.setBinging(s,t,e);this.select.addEventListener("change",()=>{const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);if(this.tEdited==t.id){let o=e.innerHTML,r=this.select.value,a=this.document.createElement(r);a.innerHTML=o,a.classList=e.classList,e.replaceWith(a);let n=e.getAttribute("data-block-id_prettyblock");a.setAttribute("data-block-id_prettyblock",n);let d=e.getAttribute("data-field");a.setAttribute("data-field",d),e=a,e.setAttribute("data-id-title",t.id),e.setAttribute("contenteditable","true"),t.bold==!0&&(e.style.fontWeight="bold"),t.italic==!0&&(e.style.fontStyle="italic"),t.underline==!0&&(e.style.textDecoration="underline"),e.style.fontSize=t.size+"px",this.setVisibility(),t.html=a,this.change(i,t),this.setBinging(a,t,e)}}),this.size.addEventListener("change",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);e.style.fontSize=this.size.value+"px",t.size=this.size.value,this.change(i,t)}}),this.B.addEventListener("click",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);t.bold==!1?(t.bold=!0,this.B.style.color="#6ae26a",e.style.fontWeight="bold",this.change(i,t)):(t.bold=!1,this.B.style.color="white",e.style.fontWeight="normal",this.change(i,t))}}),this.I.addEventListener("click",()=>{if(this.tEdited==t.id){const s={id:t.id,focus:t.focus,tag:this.select.value,classes:Array.from(e.classList),inside:t.inside,bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},i=structuredClone(s);t.italic==!1?(t.italic=!0,this.I.style.color="#6ae26a",e.style.fontStyle="italic",this.change(i,t)):(t.italic=!1,this.I.style.color="white",e.style.fontStyle="normal",this.change(i,t))}}),this.U.addEventListener("click",()=>{if(this.tEdited==t.id){let s=!t.underline;this.setAttributeValue(e,"underline",s),t.underline=s;const i={id:t.id,focus:t.focus,inside:t.inside,tag:this.select.value,classes:Array.from(e.classList),bold:t.bold,italic:t.italic,underline:t.underline,size:t.size},o=structuredClone(i);t.underline?(this.U.style.color="#6ae26a",e.style.textDecoration="underline"):(this.U.style.color="white",e.style.textDecoration="none"),this.change(o,t)}})}}setBinging(t,e,s){t.getAttribute("data-id-title")==e.id&&t.addEventListener("keydown",i=>{(i.ctrlKey&&i.key=="s"||i.ctrlKey&&i.key=="S"||i.metaKey&&i.key=="s"||i.metaKey&&i.key=="S")&&(i.preventDefault(),e.value=s.innerHTML,this.change(this.pApply,e),t.blur()),i.shiftKey&&i.key=="Enter"?(i.preventDefault(),this.document.execCommand("insertHTML",!1,"

")):i.key=="Enter"&&(i.preventDefault(),e.value=s.innerHTML,this.change(this.pApply,e),t.blur())})}getAttributeValue(t,e){return t.hasOwnProperty(e)?t[e]:!1}setAttributeValue(t,e,s){let i=t.getAttribute("data-attributes"),o=null;o=JSON.parse(i),o&&o.hasOwnProperty(e)&&(o[e]=s),t.setAttribute("data-attributes",JSON.stringify(o||{}))}setVisibility(){for(const t of this.arr){const e=this.document.querySelector('[data-id-title="'+t.id+'"]');let s=!1,i=!1;e.addEventListener("mousedown",o=>{i=!0,this.toolbar.style.display="flex";const r=o.target.getAttribute("data-id-title"),a=this.arr.filter(d=>d.id==r)[0];this.refreshToolbar(a);const n={id:t.id,focus:t.focus,inside:t.inside,bold:t.bold,tag:this.select.value,italic:t.italic,underline:t.underline,size:t.size,value:o.target.innerHTML};this.pApply=structuredClone(n)}),e.addEventListener("mouseleave",()=>{s=!1,i||setTimeout(()=>{!s&&!i&&(this.toolbar.style.display="none")},1e3)}),e.addEventListener("focus",o=>{i=!0,this.toolbar.style.display="flex";const r=o.target.getAttribute("data-id-title"),a=this.arr.filter(n=>n.id==r)[0];this.refreshToolbar(a)}),e.addEventListener("blur",()=>{i=!1,s||setTimeout(()=>{!s&&!i&&(this.toolbar.style.display="none")},1e3)}),this.toolbar.addEventListener("mouseenter",o=>{s=!0,this.toolbar.style.display="flex"}),this.toolbar.addEventListener("mouseleave",o=>{const r=o.toElement||o.relatedTarget;s=!1,setTimeout(()=>{r&&(r.parentNode===this||r===this||r.parentNode===this.toolbar)||i||(this.toolbar.style.display="none")},1e3)})}}refreshToolbar(t){const e=t.id,s=this.document.querySelector('[data-id-title="'+e+'"]'),i=s.tagName.toLowerCase(),o=this.findTop(s),r=this.findLeft(s),a=Math.round(this.window.getComputedStyle(s,null).getPropertyValue("font-size").split("px")[0]),n=s.getBoundingClientRect(),d=this.toolbar.getBoundingClientRect();this.toolbar.style.top=o-d.height+55+"px",this.toolbar.style.left=r+n.width/2-d.width+"px",this.tEdited=t.id,this.size.value=a,t.size=a,i=="h1"&&(this.select.selectedIndex=0),i=="h2"&&(this.select.selectedIndex=1),i=="h3"&&(this.select.selectedIndex=2),i=="h4"&&(this.select.selectedIndex=3),i=="h5"&&(this.select.selectedIndex=4),i=="h6"&&(this.select.selectedIndex=5),i=="p"&&(this.select.selectedIndex=6),i=="span"&&(this.select.selectedIndex=7),t.bold?this.B.style.color="#6ae26a":this.B.style.color="white",t.italic?this.I.style.color="#6ae26a":this.I.style.color="white",t.underline?this.U.style.color="#6ae26a":this.U.style.color="white"}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}trigger(t,...e){const s=this.events[t];s&&s.forEach(i=>{i(...e)})}change(t,e){t.html=e.html,t.value=e.value,t.classes=e.classes,t.bold=e.bold,t.italic=e.italic,t.underline=e.underline,t.size=e.size,this.trigger("change",t,e)}apply(t,e){!e.inside&&!e.focus&&(t.html=e==null?void 0:e.html,e.value=e.html.innerHTML,this.trigger("apply",t,e))}findTop(t){var e=t.getBoundingClientRect();return e.top+this.window.scrollY}findLeft(t){var e=t.getBoundingClientRect();return e.left+this.window.scrollX}}window.hasEventListener=!1;const h=()=>{window.removeEventListener("message",u,!1)};let u=l=>{if(l.data.type=="getContext"){let t={id_lang:prestashop.language.id,id_shop:prestashop.modules.prettyblocks.id_shop,shop_name:prestashop.modules.prettyblocks.shop_name,current_url:prestashop.modules.prettyblocks.shop_current_url,href:window.location.href};return l.source.postMessage({type:"setContext",data:{data:t}},"*")}if(l.data.type=="initIframe")return document.querySelectorAll("div[data-block]").forEach(t=>{t.addEventListener("click",e=>{let s=e.target.closest("[data-id-prettyblocks]").getAttribute("data-id-prettyblocks");b(s,l),l.source.postMessage({type:"loadStateConfig",data:s},"*")})}),c(l);if(l.data.type=="focusOnZone"){let t=l.data.data;document.querySelectorAll(".border-dotted").forEach(s=>{s.classList.remove("border-dotted")});let e=document.querySelector('[data-prettyblocks-zone="'+t+'"]');return e.classList.add("border-dotted"),e.scrollIntoView({alignToTop:!0,behavior:"smooth",block:"center"})}if(l.data.type=="updateHTMLBlock"){let t=l.data.data.id_prettyblocks,e=l.data.data.html,s=document.querySelector('[data-id-prettyblocks="'+t+'"]');return s.innerHTML=e,c(l)}if(l.data.type=="scrollInIframe")return p(l.data.data);if(l.data.type=="getZones"){let t=document.querySelectorAll("[data-zone-name]"),e=[];return t.forEach(s=>{let i=s.getAttribute("data-zone-name");e.indexOf(i)==-1&&e.push(i)}),l.source.postMessage({type:"zones",data:e},"*")}h()};const b=(l,t)=>{let s=p(l).closest("[data-prettyblocks-zone]").getAttribute("data-prettyblocks-zone"),i={id_prettyblocks:l,zone_name:s};return t.source.postMessage({type:"focusBlock",data:i},"*")},p=l=>{let t=document,e=t.querySelector('[data-id-prettyblocks="'+l+'"]');return t.body.contains(e)&&(e.scrollIntoView({alignToTop:!1,behavior:"smooth",block:"center"}),t.querySelectorAll("[data-block]").forEach(i=>{i.classList.remove("border-dotted")})),e.classList.add("border-dotted"),e},c=l=>{new f(document.querySelectorAll(".ptb-title"),document,window).on("change",async(e,s)=>{let i={id_prettyblocks:e.html.closest("[data-id-prettyblocks]").getAttribute("data-id-prettyblocks"),field:e.html.getAttribute("data-field"),index:e.html.hasAttribute("data-index")?e.html.getAttribute("data-index"):null};l.source.postMessage({type:"updateTitleComponent",data:{params:i,value:JSON.stringify(s)}},"*")})};document.addEventListener("DOMContentLoaded",l=>{window.hasEventListener||(window.addEventListener("message",u,!1),window.hasEventListener=!0)});h(); diff --git a/views/js/iframe.css b/views/js/iframe.css index e35957e9..fc21a321 100644 --- a/views/js/iframe.css +++ b/views/js/iframe.css @@ -6,7 +6,10 @@ position: relative; } - +[data-prettyblocks-zone].border-dotted{ + + border-color: rgb(225, 212, 68); +} /* hn editor */ diff --git a/views/js/prettyblocks.js b/views/js/prettyblocks.js index 180f31df..ca6d1f48 100644 --- a/views/js/prettyblocks.js +++ b/views/js/prettyblocks.js @@ -22,7 +22,7 @@ let eventHandler = (event) => { div.addEventListener('click', (el) => { let id_prettyblocks = el.target.closest('[data-id-prettyblocks]').getAttribute('data-id-prettyblocks') - selectBlock(id_prettyblocks) + selectBlock(id_prettyblocks, event) event.source.postMessage({ type: 'loadStateConfig', data: id_prettyblocks }, '*'); }) }) @@ -54,7 +54,7 @@ let eventHandler = (event) => { } if (event.data.type == 'scrollInIframe') { - return selectBlock(event.data.data) + return focusBlock(event.data.data) } if (event.data.type == 'getZones') { let els = document.querySelectorAll('[data-zone-name]') @@ -72,8 +72,23 @@ let eventHandler = (event) => { } -const selectBlock = (id_prettyblocks) => { - +/** + * Select block in pretty block interface + * @param {*} id_prettyblocks + * @param {*} event + * @returns + */ +const selectBlock = (id_prettyblocks, event) => { + let el = focusBlock(id_prettyblocks) + let zone_name = el.closest('[data-prettyblocks-zone]').getAttribute('data-prettyblocks-zone') + let params = { + id_prettyblocks: id_prettyblocks, + zone_name: zone_name + } + return event.source.postMessage({ type: 'focusBlock', data: params }, '*'); + +} +const focusBlock = (id_prettyblocks) => { let doc = document let el = doc.querySelector('[data-id-prettyblocks="' + id_prettyblocks + '"]') if (doc.body.contains(el)) { @@ -86,8 +101,9 @@ const selectBlock = (id_prettyblocks) => { tr.forEach(bl => { bl.classList.remove('border-dotted') }) - el.classList.add('border-dotted') } + el.classList.add('border-dotted') + return el } const loadToolBar = (event) => { const tb = new toolbar( document.querySelectorAll('.ptb-title'), document, window); @@ -104,7 +120,7 @@ const loadToolBar = (event) => { document.addEventListener('DOMContentLoaded', (event) => { if (!window.hasEventListener) { - console.log('subscribe') + // console.log('subscribe') window.addEventListener("message", eventHandler, false) window.hasEventListener = true; } From 0cf3ec63944686026354165bd18d04e9bcbcbe79 Mon Sep 17 00:00:00 2001 From: PrestaSafe Date: Sat, 7 Oct 2023 11:26:58 +0200 Subject: [PATCH 07/11] Select block on click OK --- _dev/src/components/MenuItem.vue | 16 ++++++++++------ _dev/src/scripts/iframe.js | 4 +++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/_dev/src/components/MenuItem.vue b/_dev/src/components/MenuItem.vue index 61353d89..da23f6ea 100644 --- a/_dev/src/components/MenuItem.vue +++ b/_dev/src/components/MenuItem.vue @@ -52,7 +52,7 @@ const removeState = async () => { } let data = await HttpClient.get(ajax_urls.state, params) emitter.emit('initStates') - emitter.emit('reloadIframe', null)x + emitter.emit('reloadIframe', null) } // emitter.emit('reloadIframe', null) @@ -60,14 +60,19 @@ const removeState = async () => { // when we select a element in list function select(instance) { - // set store current block name + setSelectedElement(props.id) +} + +function setSelectedElement(notFormattedId) { + let id = notFormattedId store.$patch({ - id_prettyblocks: parseInt(props.id.split('-')[0]), - subSelected: props.id + id_prettyblocks: parseInt(id.split('-')[0]), + subSelected: id }) - // emitter.emit('displayState', props.element.id_prettyblocks) } +emitter.on('setSelectedElement', (notFormattedId) => setSelectedElement(notFormattedId)) + const isSelected = computed(() => props.id == store.subSelected) // when we click on the eye icon to disable element @@ -78,7 +83,6 @@ const disabled = ref(false)
- diff --git a/_dev/src/scripts/iframe.js b/_dev/src/scripts/iframe.js index 9bff072e..8e8708a8 100644 --- a/_dev/src/scripts/iframe.js +++ b/_dev/src/scripts/iframe.js @@ -63,8 +63,10 @@ export default class Iframe { let element = await piniaBlocks.find(b => { return b.id_prettyblocks == id_prettyblocks }); - emitter.emit('displayBlockConfig', element) emitter.emit('selectZone', zone_name) + + emitter.emit('displayBlockConfig', element) + emitter.emit('setSelectedElement', element.formatted.id) } if (event.data.type == 'setContext') { From 3c030840c26984bb66d0ea717adbee5ddc5d6419 Mon Sep 17 00:00:00 2001 From: PrestaSafe Date: Wed, 18 Oct 2023 15:41:25 +0200 Subject: [PATCH 08/11] copy and delete zones --- _dev/public/iframe.css | 23 +++++- _dev/src/components/LeftPanel.vue | 126 +++++++++++++++++++++++++++++- _dev/src/scripts/iframe.js | 23 +++++- classes/PrettyBlockCompiler.php | 34 +++++++- classes/PrettyBlocksModel.php | 81 +++++++++++++++++++ classes/TplSettings.php | 1 + controllers/front/ajax.php | 66 +++++++++++++++- views/js/build.js | 4 +- views/js/iframe.css | 31 +++++++- views/js/prettyblocks.js | 58 +++++++++++++- 10 files changed, 432 insertions(+), 15 deletions(-) diff --git a/_dev/public/iframe.css b/_dev/public/iframe.css index 319e55fd..334828e2 100644 --- a/_dev/public/iframe.css +++ b/_dev/public/iframe.css @@ -105,4 +105,25 @@ border: 0; border-radius: 4px; } - \ No newline at end of file + +[data-prettyblocks-zone].ondrag{ + background-color: #646cff; + border: 1px solid #646cff; + padding: 20px; + +} + + [data-block]:active { + background-color: grey; + height: 20px; + position: relative; + } + + [data-block]:active::after { + content: attr(data-id-prettyblocks); + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: white; + } diff --git a/_dev/src/components/LeftPanel.vue b/_dev/src/components/LeftPanel.vue index 890d2500..079d4b03 100644 --- a/_dev/src/components/LeftPanel.vue +++ b/_dev/src/components/LeftPanel.vue @@ -1,9 +1,10 @@