diff --git a/_dev/back/blocklayered.scss b/_dev/back/blocklayered.scss index a22cfcb69..872c3144f 100644 --- a/_dev/back/blocklayered.scss +++ b/_dev/back/blocklayered.scss @@ -57,3 +57,8 @@ .sortable-ghost { color: orange; } +#content.bootstrap { + .form-group-categories .panel { + margin-bottom: 0; + } +} diff --git a/_dev/back/index.js b/_dev/back/index.js index ef4f4e009..d574c50d8 100644 --- a/_dev/back/index.js +++ b/_dev/back/index.js @@ -21,6 +21,8 @@ import './blocklayered.scss'; /* eslint-disable no-unused-vars, no-alert */ window.checkForm = function checkForm() { let isCategorySelected = false; + let isCategoryControllerSelected = false; + let isControllerSelected = false; let isFilterSelected = false; $('#categories-treeview input[type=checkbox]').each(function checkCategoriesCheckboxes() { @@ -31,6 +33,15 @@ window.checkForm = function checkForm() { return true; }); + $('input[name="controllers[]"]').each(function checkPagesCheckboxes() { + if ($(this).prop('checked')) { + isControllerSelected = true; + if ($(this).val() === 'category') { + isCategoryControllerSelected = true; + } + } + }); + $('.filter_list_item input[type=checkbox]').each(function checkFilterListCheckboxes() { if ($(this).prop('checked')) { isFilterSelected = true; @@ -39,12 +50,20 @@ window.checkForm = function checkForm() { return true; }); - if (!isCategorySelected) { + // If no controller is selected at all + if (!isControllerSelected) { + alert(translations.no_selected_controllers); + return false; + } + + // If category controller was checked, but no category is selected + if (isCategoryControllerSelected && !isCategorySelected) { alert(translations.no_selected_categories); $('#categories-treeview input[type=checkbox]').first().focus(); return false; } + // If no filter is selected at all if (!isFilterSelected) { alert(translations.no_selected_filters); $('#filter_list_item input[type=checkbox]').first().focus(); diff --git a/config.xml b/config.xml index 765c257b5..2eaac0173 100644 --- a/config.xml +++ b/config.xml @@ -2,7 +2,7 @@ ps_facetedsearch - + diff --git a/package-lock.json b/package-lock.json index 8957cafe0..944a11bfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,22 +13,22 @@ }, "devDependencies": { "@babel/cli": "^7.22.9", - "@babel/core": "^7.22.1", + "@babel/core": "^7.22.10", "@babel/eslint-parser": "^7.22.9", "@babel/node": "^7.22.6", - "@babel/preset-env": "^7.22.9", + "@babel/preset-env": "^7.22.10", "@babel/register": "^7.22.5", "babel-loader": "^9.1.3", "chai": "^4.3.7", "clean-webpack-plugin": "^4.0.0", "css-loader": "^6.8.1", - "eslint": "^8.45.0", + "eslint": "^8.46.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prestashop": "^0.2.1", "eslint-plugin-import": "^2.27.5", "mini-css-extract-plugin": "^1.0.0", "mocha": "^10.2.0", - "node-sass": "^8.0.0", + "node-sass": "^9.0.0", "sass-loader": "^13.3.2", "style-loader": "^2.0.0", "webpack": "^5.88.2", @@ -146,12 +146,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", + "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.10", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" @@ -167,26 +168,26 @@ } }, "node_modules/@babel/core": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz", - "integrity": "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz", + "integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.0", - "@babel/helper-compilation-targets": "^7.22.1", - "@babel/helper-module-transforms": "^7.22.1", - "@babel/helpers": "^7.22.0", - "@babel/parser": "^7.22.0", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.10", + "@babel/parser": "^7.22.10", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.10", + "@babel/types": "^7.22.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.2", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -232,9 +233,9 @@ "dev": true }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -277,12 +278,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", + "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5", + "@babel/types": "^7.22.10", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -316,9 +317,9 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", - "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.9", @@ -329,9 +330,6 @@ }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { @@ -417,9 +415,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz", - "integrity": "sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -429,7 +427,7 @@ "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { @@ -514,22 +512,22 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-module-imports": "^7.22.5", "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { @@ -554,15 +552,14 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz", - "integrity": "sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-wrap-function": "^7.22.9" }, "engines": { "node": ">=6.9.0" @@ -652,42 +649,41 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz", - "integrity": "sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", + "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.22.5", "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz", - "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz", + "integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==", "dev": true, "dependencies": { - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.3" + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.10", + "@babel/types": "^7.22.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", + "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -718,9 +714,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", + "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -773,22 +769,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -1040,14 +1020,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz", - "integrity": "sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz", + "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -1090,9 +1070,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", - "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", + "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1177,9 +1157,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", - "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", + "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1546,9 +1526,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz", - "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz", + "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1627,13 +1607,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", - "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.1" + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1734,9 +1714,9 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", - "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1797,13 +1777,13 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", - "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", + "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", @@ -1828,15 +1808,15 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.7", + "@babel/plugin-transform-async-generator-functions": "^7.22.10", "@babel/plugin-transform-async-to-generator": "^7.22.5", "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.10", "@babel/plugin-transform-class-properties": "^7.22.5", "@babel/plugin-transform-class-static-block": "^7.22.5", "@babel/plugin-transform-classes": "^7.22.6", "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.10", "@babel/plugin-transform-dotall-regex": "^7.22.5", "@babel/plugin-transform-duplicate-keys": "^7.22.5", "@babel/plugin-transform-dynamic-import": "^7.22.5", @@ -1859,27 +1839,27 @@ "@babel/plugin-transform-object-rest-spread": "^7.22.5", "@babel/plugin-transform-object-super": "^7.22.5", "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.6", + "@babel/plugin-transform-optional-chaining": "^7.22.10", "@babel/plugin-transform-parameters": "^7.22.5", "@babel/plugin-transform-private-methods": "^7.22.5", "@babel/plugin-transform-private-property-in-object": "^7.22.5", "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", "@babel/plugin-transform-reserved-words": "^7.22.5", "@babel/plugin-transform-shorthand-properties": "^7.22.5", "@babel/plugin-transform-spread": "^7.22.5", "@babel/plugin-transform-sticky-regex": "^7.22.5", "@babel/plugin-transform-template-literals": "^7.22.5", "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", "@babel/plugin-transform-unicode-property-regex": "^7.22.5", "@babel/plugin-transform-unicode-regex": "^7.22.5", "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.4", - "babel-plugin-polyfill-corejs3": "^0.8.2", - "babel-plugin-polyfill-regenerator": "^0.5.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.10", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -1900,19 +1880,17 @@ } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/register": { @@ -1941,17 +1919,23 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", + "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, "node_modules/@babel/template": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", @@ -1967,19 +1951,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", - "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.10.tgz", + "integrity": "sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.10", + "@babel/types": "^7.22.10", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1998,9 +1982,9 @@ } }, "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", + "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", @@ -2036,18 +2020,18 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", + "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.1.tgz", + "integrity": "sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -2118,9 +2102,9 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.46.0.tgz", + "integrity": "sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2262,15 +2246,6 @@ "eslint-scope": "5.1.1" } }, - "node_modules/@nicolo-ribaudo/semver-v6": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", - "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3151,42 +3126,51 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz", - "integrity": "sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.1", - "@nicolo-ribaudo/semver-v6": "^6.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz", - "integrity": "sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.1", + "@babel/helper-define-polyfill-provider": "^0.4.2", "core-js-compat": "^3.31.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz", - "integrity": "sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.1" + "@babel/helper-define-polyfill-provider": "^0.4.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/balanced-match": { @@ -3766,9 +3750,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", - "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz", + "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==", "dev": true, "dependencies": { "browserslist": "^4.21.9" @@ -4184,27 +4168,27 @@ } }, "node_modules/eslint": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", - "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.46.0.tgz", + "integrity": "sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.1", + "@eslint/js": "^8.46.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.2", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -4379,9 +4363,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", + "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4478,9 +4462,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -7091,9 +7075,9 @@ "dev": true }, "node_modules/node-sass": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-8.0.0.tgz", - "integrity": "sha512-jPzqCF2/e6JXw6r3VxfIqYc8tKQdkj5Z/BDATYyG6FL6b/LuYBNFGFVhus0mthcWifHm/JzBpKAd+3eXsWeK/A==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-9.0.0.tgz", + "integrity": "sha512-yltEuuLrfH6M7Pq2gAj5B6Zm7m+gdZoG66wTqG6mIZV/zijq3M2OO2HswtT6oBspPyFhHDcaxWpsBm0fRNDHPg==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -7116,7 +7100,7 @@ "node-sass": "bin/node-sass" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/node-sass/node_modules/@npmcli/fs": { @@ -8139,9 +8123,9 @@ "dev": true }, "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -9659,12 +9643,13 @@ } }, "@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", + "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", "dev": true, "requires": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.10", + "chalk": "^2.4.2" } }, "@babel/compat-data": { @@ -9674,26 +9659,26 @@ "dev": true }, "@babel/core": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz", - "integrity": "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz", + "integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.0", - "@babel/helper-compilation-targets": "^7.22.1", - "@babel/helper-module-transforms": "^7.22.1", - "@babel/helpers": "^7.22.0", - "@babel/parser": "^7.22.0", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.10", + "@babel/parser": "^7.22.10", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.10", + "@babel/types": "^7.22.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.2", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "dependencies": { "debug": { @@ -9718,9 +9703,9 @@ "dev": true }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -9751,12 +9736,12 @@ } }, "@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", + "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", "dev": true, "requires": { - "@babel/types": "^7.22.5", + "@babel/types": "^7.22.10", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -9781,9 +9766,9 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", - "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", "dev": true, "requires": { "@babel/compat-data": "^7.22.9", @@ -9861,9 +9846,9 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz", - "integrity": "sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.22.6", @@ -9934,19 +9919,16 @@ } }, "@babel/helper-module-transforms": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-module-imports": "^7.22.5", "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" } }, "@babel/helper-optimise-call-expression": { @@ -9965,15 +9947,14 @@ "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz", - "integrity": "sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-wrap-function": "^7.22.9" } }, "@babel/helper-replace-supers": { @@ -10036,36 +10017,35 @@ "dev": true }, "@babel/helper-wrap-function": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz", - "integrity": "sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", + "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", "dev": true, "requires": { "@babel/helper-function-name": "^7.22.5", "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.10" } }, "@babel/helpers": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz", - "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz", + "integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==", "dev": true, "requires": { - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.3" + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.10", + "@babel/types": "^7.22.10" } }, "@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", + "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" } }, @@ -10084,9 +10064,9 @@ } }, "@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", + "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -10116,16 +10096,6 @@ "dev": true, "requires": {} }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -10299,14 +10269,14 @@ } }, "@babel/plugin-transform-async-generator-functions": { - "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz", - "integrity": "sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz", + "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, @@ -10331,9 +10301,9 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", - "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", + "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5" @@ -10388,9 +10358,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", - "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", + "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5" @@ -10619,9 +10589,9 @@ } }, "@babel/plugin-transform-optional-chaining": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz", - "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz", + "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", @@ -10670,13 +10640,13 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", - "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.1" + "regenerator-transform": "^0.15.2" } }, "@babel/plugin-transform-reserved-words": { @@ -10735,9 +10705,9 @@ } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", - "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5" @@ -10774,13 +10744,13 @@ } }, "@babel/preset-env": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", - "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", + "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", "dev": true, "requires": { "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", @@ -10805,15 +10775,15 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.7", + "@babel/plugin-transform-async-generator-functions": "^7.22.10", "@babel/plugin-transform-async-to-generator": "^7.22.5", "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.10", "@babel/plugin-transform-class-properties": "^7.22.5", "@babel/plugin-transform-class-static-block": "^7.22.5", "@babel/plugin-transform-classes": "^7.22.6", "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.10", "@babel/plugin-transform-dotall-regex": "^7.22.5", "@babel/plugin-transform-duplicate-keys": "^7.22.5", "@babel/plugin-transform-dynamic-import": "^7.22.5", @@ -10836,27 +10806,27 @@ "@babel/plugin-transform-object-rest-spread": "^7.22.5", "@babel/plugin-transform-object-super": "^7.22.5", "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.6", + "@babel/plugin-transform-optional-chaining": "^7.22.10", "@babel/plugin-transform-parameters": "^7.22.5", "@babel/plugin-transform-private-methods": "^7.22.5", "@babel/plugin-transform-private-property-in-object": "^7.22.5", "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", "@babel/plugin-transform-reserved-words": "^7.22.5", "@babel/plugin-transform-shorthand-properties": "^7.22.5", "@babel/plugin-transform-spread": "^7.22.5", "@babel/plugin-transform-sticky-regex": "^7.22.5", "@babel/plugin-transform-template-literals": "^7.22.5", "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", "@babel/plugin-transform-unicode-property-regex": "^7.22.5", "@babel/plugin-transform-unicode-regex": "^7.22.5", "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.4", - "babel-plugin-polyfill-corejs3": "^0.8.2", - "babel-plugin-polyfill-regenerator": "^0.5.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.10", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -10870,14 +10840,12 @@ } }, "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" } @@ -10902,12 +10870,20 @@ "dev": true }, "@babel/runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", + "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + } } }, "@babel/template": { @@ -10922,19 +10898,19 @@ } }, "@babel/traverse": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", - "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.10.tgz", + "integrity": "sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==", "dev": true, "requires": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.10", + "@babel/types": "^7.22.10", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -10951,9 +10927,9 @@ } }, "@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", + "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.22.5", @@ -10977,15 +10953,15 @@ } }, "@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", + "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", "dev": true }, "@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.1.tgz", + "integrity": "sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -11035,9 +11011,9 @@ } }, "@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.46.0.tgz", + "integrity": "sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==", "dev": true }, "@gar/promisify": { @@ -11151,12 +11127,6 @@ "eslint-scope": "5.1.1" } }, - "@nicolo-ribaudo/semver-v6": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", - "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", - "dev": true - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -11845,33 +11815,41 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz", - "integrity": "sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", "dev": true, "requires": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.1", - "@nicolo-ribaudo/semver-v6": "^6.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "babel-plugin-polyfill-corejs3": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz", - "integrity": "sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.4.1", + "@babel/helper-define-polyfill-provider": "^0.4.2", "core-js-compat": "^3.31.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz", - "integrity": "sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.4.1" + "@babel/helper-define-polyfill-provider": "^0.4.2" } }, "balanced-match": { @@ -12299,9 +12277,9 @@ "dev": true }, "core-js-compat": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", - "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz", + "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==", "dev": true, "requires": { "browserslist": "^4.21.9" @@ -12627,27 +12605,27 @@ "dev": true }, "eslint": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", - "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.46.0.tgz", + "integrity": "sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.1", + "@eslint/js": "^8.46.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.2", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -12727,9 +12705,9 @@ "dev": true }, "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -12957,9 +12935,9 @@ } }, "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", + "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", "dev": true }, "espree": { @@ -14772,9 +14750,9 @@ "dev": true }, "node-sass": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-8.0.0.tgz", - "integrity": "sha512-jPzqCF2/e6JXw6r3VxfIqYc8tKQdkj5Z/BDATYyG6FL6b/LuYBNFGFVhus0mthcWifHm/JzBpKAd+3eXsWeK/A==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-9.0.0.tgz", + "integrity": "sha512-yltEuuLrfH6M7Pq2gAj5B6Zm7m+gdZoG66wTqG6mIZV/zijq3M2OO2HswtT6oBspPyFhHDcaxWpsBm0fRNDHPg==", "dev": true, "requires": { "async-foreach": "^0.1.3", @@ -15525,9 +15503,9 @@ "dev": true }, "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" diff --git a/package.json b/package.json index e39e3504e..9afda0634 100644 --- a/package.json +++ b/package.json @@ -31,21 +31,21 @@ "devDependencies": { "@babel/eslint-parser": "^7.22.9", "@babel/cli": "^7.22.9", - "@babel/core": "^7.22.1", + "@babel/core": "^7.22.10", "@babel/node": "^7.22.6", - "@babel/preset-env": "^7.22.9", + "@babel/preset-env": "^7.22.10", "@babel/register": "^7.22.5", "babel-loader": "^9.1.3", "chai": "^4.3.7", "clean-webpack-plugin": "^4.0.0", "css-loader": "^6.8.1", - "eslint": "^8.45.0", + "eslint": "^8.46.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prestashop": "^0.2.1", "eslint-plugin-import": "^2.27.5", "mini-css-extract-plugin": "^1.0.0", "mocha": "^10.2.0", - "node-sass": "^8.0.0", + "node-sass": "^9.0.0", "sass-loader": "^13.3.2", "style-loader": "^2.0.0", "webpack": "^5.88.2", diff --git a/ps_facetedsearch.php b/ps_facetedsearch.php index b21d3aacb..4835aa7bd 100644 --- a/ps_facetedsearch.php +++ b/ps_facetedsearch.php @@ -96,7 +96,7 @@ public function __construct() { $this->name = 'ps_facetedsearch'; $this->tab = 'front_office_features'; - $this->version = '3.13.0'; + $this->version = '3.13.1'; $this->author = 'PrestaShop'; $this->need_instance = 0; $this->bootstrap = true; @@ -739,7 +739,7 @@ public function getContent() $this->context->smarty->assign('uri', $this->getPathUri()); // Assign assets - if (file_exists(_PS_ROOT_DIR_ . _PS_JS_DIR_ . 'vendor/Sortable.min.js')) { + if (file_exists(_PS_ROOT_DIR_ . '/js/vendor/Sortable.min.js')) { $this->context->controller->addJS(_PS_JS_DIR_ . 'vendor/Sortable.min.js'); } else { if (method_exists($this->context->controller, 'addJquery')) { diff --git a/src/Definition/Availability.php b/src/Definition/Availability.php new file mode 100644 index 000000000..558a22387 --- /dev/null +++ b/src/Definition/Availability.php @@ -0,0 +1,28 @@ + + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ + +namespace PrestaShop\Module\FacetedSearch\Definition; + +class Availability +{ + const IN_STOCK = 2; + const AVAILABLE = 1; + const NOT_AVAILABLE = 0; +} diff --git a/src/Filters/Block.php b/src/Filters/Block.php index 2f31dc2db..bd411ff84 100644 --- a/src/Filters/Block.php +++ b/src/Filters/Block.php @@ -28,6 +28,7 @@ use Group; use Manufacturer; use PrestaShop\Module\FacetedSearch\Adapter\InterfaceAdapter; +use PrestaShop\Module\FacetedSearch\Definition\Availability; use PrestaShop\Module\FacetedSearch\Product\Search; use PrestaShop\PrestaShop\Core\Localization\Locale; use PrestaShop\PrestaShop\Core\Localization\Specification\NumberSymbolList; @@ -435,7 +436,7 @@ private function getAvailabilitiesBlock($filter, $selectedFilters) $availabilityOptions = []; if ($this->psStockManagement) { $availabilityOptions = [ - 2 => [ + Availability::IN_STOCK => [ 'name' => $this->context->getTranslator()->trans( 'In stock', [], @@ -443,7 +444,7 @@ private function getAvailabilitiesBlock($filter, $selectedFilters) ), 'nbr' => 0, ], - 1 => [ + Availability::AVAILABLE => [ 'name' => $this->context->getTranslator()->trans( 'Available', [], @@ -451,7 +452,7 @@ private function getAvailabilitiesBlock($filter, $selectedFilters) ), 'nbr' => 0, ], - 0 => [ + Availability::NOT_AVAILABLE => [ 'name' => $this->context->getTranslator()->trans( 'Not available', [], @@ -473,7 +474,7 @@ private function getAvailabilitiesBlock($filter, $selectedFilters) ], ] ); - $availabilityOptions[0]['nbr'] = $filteredSearchAdapter->count(); + $availabilityOptions[Availability::NOT_AVAILABLE]['nbr'] = $filteredSearchAdapter->count(); // Products in stock, or with out-of-stock ordering enabled $filteredSearchAdapter->addOperationsFilter( @@ -487,7 +488,7 @@ private function getAvailabilitiesBlock($filter, $selectedFilters) ], ] ); - $availabilityOptions[1]['nbr'] = $filteredSearchAdapter->count(); + $availabilityOptions[Availability::AVAILABLE]['nbr'] = $filteredSearchAdapter->count(); // Products in stock $filteredSearchAdapter->addOperationsFilter( @@ -498,7 +499,7 @@ private function getAvailabilitiesBlock($filter, $selectedFilters) ], ] ); - $availabilityOptions[2]['nbr'] = $filteredSearchAdapter->count(); + $availabilityOptions[Availability::IN_STOCK]['nbr'] = $filteredSearchAdapter->count(); // If some filter was selected, we want to show only this single filter, it does not make sense to show others if (isset($selectedFilters['availability'])) { @@ -513,8 +514,8 @@ private function getAvailabilitiesBlock($filter, $selectedFilters) // Hide Available option if the count is the same as In stock, it doesn't make no sense // Product count is a reliable indicator here, because there can never be product IN STOCK that is not AVAILABLE // So if the counts match, it MUST BE the same products - if ($availabilityOptions[1]['nbr'] == $availabilityOptions[2]['nbr']) { - unset($availabilityOptions[1]); + if ($availabilityOptions[Availability::AVAILABLE]['nbr'] == $availabilityOptions[Availability::IN_STOCK]['nbr']) { + unset($availabilityOptions[Availability::AVAILABLE]); } } diff --git a/src/Filters/Converter.php b/src/Filters/Converter.php index 3650b6a70..abe255c03 100644 --- a/src/Filters/Converter.php +++ b/src/Filters/Converter.php @@ -25,6 +25,7 @@ use Context; use Db; use Manufacturer; +use PrestaShop\Module\FacetedSearch\Definition\Availability; use PrestaShop\Module\FacetedSearch\Filters; use PrestaShop\Module\FacetedSearch\URLSerializer; use PrestaShop\PrestaShop\Core\Product\Search\Facet; @@ -257,7 +258,7 @@ public function createFacetedSearchFiltersFromQuery(ProductSearchQuery $query) $searchFilters = []; // Get filters configured in module settings for the current query - $filters = $this->provider->getFiltersForQuery($query, $idShop); + $configuredFilters = $this->provider->getFiltersForQuery($query, $idShop); /* * Parses submitted encoded facets from (URL) string into a nice array. @@ -266,16 +267,16 @@ public function createFacetedSearchFiltersFromQuery(ProductSearchQuery $query) * work very well, because there could be duplicate values for both facet and filter. * For example, if there are two features, feature values or categories with the same name. */ - $facetAndFiltersLabels = $this->urlSerializer->unserialize($query->getEncodedFacets()); + $receivedFilters = $this->urlSerializer->unserialize($query->getEncodedFacets()); // Go through filters that are configured and find out which should be activated, // depending on what was provided in the encodedFacets. - foreach ($filters as $filter) { + foreach ($configuredFilters as $filter) { $filterLabel = $this->convertFilterTypeToLabel($filter['type']); switch ($filter['type']) { case self::TYPE_MANUFACTURER: - if (!isset($facetAndFiltersLabels[$filterLabel])) { + if (!isset($receivedFilters[$filterLabel])) { // No need to filter if no information continue 2; } @@ -283,13 +284,13 @@ public function createFacetedSearchFiltersFromQuery(ProductSearchQuery $query) $manufacturers = Manufacturer::getManufacturers(false, $idLang); $searchFilters[$filter['type']] = []; foreach ($manufacturers as $manufacturer) { - if (in_array($manufacturer['name'], $facetAndFiltersLabels[$filterLabel])) { + if (in_array($manufacturer['name'], $receivedFilters[$filterLabel])) { $searchFilters[$filter['type']][$manufacturer['name']] = $manufacturer['id_manufacturer']; } } break; case self::TYPE_AVAILABILITY: - if (!isset($facetAndFiltersLabels[$filterLabel])) { + if (!isset($receivedFilters[$filterLabel])) { // No need to filter if no information continue 2; } @@ -299,28 +300,28 @@ public function createFacetedSearchFiltersFromQuery(ProductSearchQuery $query) 'Not available', [], 'Modules.Facetedsearch.Shop' - ) => 0, + ) => Availability::NOT_AVAILABLE, $this->context->getTranslator()->trans( 'Available', [], 'Modules.Facetedsearch.Shop' - ) => 1, + ) => Availability::AVAILABLE, $this->context->getTranslator()->trans( 'In stock', [], 'Modules.Facetedsearch.Shop' - ) => 2, + ) => Availability::IN_STOCK, ]; $searchFilters[$filter['type']] = []; foreach ($quantityArray as $quantityName => $quantityId) { - if (isset($facetAndFiltersLabels[$filterLabel]) && in_array($quantityName, $facetAndFiltersLabels[$filterLabel])) { + if (isset($receivedFilters[$filterLabel]) && in_array($quantityName, $receivedFilters[$filterLabel])) { $searchFilters[$filter['type']][] = $quantityId; } } break; case self::TYPE_CONDITION: - if (!isset($facetAndFiltersLabels[$filterLabel])) { + if (!isset($receivedFilters[$filterLabel])) { // No need to filter if no information continue 2; } @@ -345,7 +346,7 @@ public function createFacetedSearchFiltersFromQuery(ProductSearchQuery $query) $searchFilters[$filter['type']] = []; foreach ($conditionArray as $conditionName => $conditionId) { - if (isset($facetAndFiltersLabels[$filterLabel]) && in_array($conditionName, $facetAndFiltersLabels[$filterLabel])) { + if (isset($receivedFilters[$filterLabel]) && in_array($conditionName, $receivedFilters[$filterLabel])) { $searchFilters[$filter['type']][] = $conditionId; } } @@ -357,10 +358,10 @@ public function createFacetedSearchFiltersFromQuery(ProductSearchQuery $query) continue; } - if (isset($facetAndFiltersLabels[$feature['url_name']])) { - $featureValueLabels = $facetAndFiltersLabels[$feature['url_name']]; - } elseif (isset($facetAndFiltersLabels[$feature['name']])) { - $featureValueLabels = $facetAndFiltersLabels[$feature['name']]; + if (isset($receivedFilters[$feature['url_name']])) { + $featureValueLabels = $receivedFilters[$feature['url_name']]; + } elseif (isset($receivedFilters[$feature['name']])) { + $featureValueLabels = $receivedFilters[$feature['name']]; } else { continue; } @@ -382,10 +383,10 @@ public function createFacetedSearchFiltersFromQuery(ProductSearchQuery $query) continue; } - if (isset($facetAndFiltersLabels[$attributeGroup['url_name']])) { - $attributeLabels = $facetAndFiltersLabels[$attributeGroup['url_name']]; - } elseif (isset($facetAndFiltersLabels[$attributeGroup['attribute_group_name']])) { - $attributeLabels = $facetAndFiltersLabels[$attributeGroup['attribute_group_name']]; + if (isset($receivedFilters[$attributeGroup['url_name']])) { + $attributeLabels = $receivedFilters[$attributeGroup['url_name']]; + } elseif (isset($receivedFilters[$attributeGroup['attribute_group_name']])) { + $attributeLabels = $receivedFilters[$attributeGroup['attribute_group_name']]; } else { continue; } @@ -402,8 +403,8 @@ public function createFacetedSearchFiltersFromQuery(ProductSearchQuery $query) break; case self::TYPE_PRICE: case self::TYPE_WEIGHT: - if (isset($facetAndFiltersLabels[$filterLabel])) { - $filters = $facetAndFiltersLabels[$filterLabel]; + if (isset($receivedFilters[$filterLabel])) { + $filters = $receivedFilters[$filterLabel]; if (isset($filters[1]) && isset($filters[2])) { $from = $filters[1]; $to = $filters[2]; @@ -413,8 +414,8 @@ public function createFacetedSearchFiltersFromQuery(ProductSearchQuery $query) } break; case self::TYPE_CATEGORY: - if (isset($facetAndFiltersLabels[$filterLabel])) { - foreach ($facetAndFiltersLabels[$filterLabel] as $queryFilter) { + if (isset($receivedFilters[$filterLabel])) { + foreach ($receivedFilters[$filterLabel] as $queryFilter) { /* * This works only for categories that are child of the category we are browsing (or home category). * Categories deeper in the tree will never be found. This could be fixed by providing a unique ID @@ -428,8 +429,8 @@ public function createFacetedSearchFiltersFromQuery(ProductSearchQuery $query) } break; default: - if (isset($facetAndFiltersLabels[$filterLabel])) { - foreach ($facetAndFiltersLabels[$filterLabel] as $queryFilter) { + if (isset($receivedFilters[$filterLabel])) { + foreach ($receivedFilters[$filterLabel] as $queryFilter) { $searchFilters[$filter['type']][] = $queryFilter; } } diff --git a/src/Product/Search.php b/src/Product/Search.php index 79fc538d0..c61013bba 100644 --- a/src/Product/Search.php +++ b/src/Product/Search.php @@ -27,6 +27,7 @@ use Group; use PrestaShop\Module\FacetedSearch\Adapter\AbstractAdapter; use PrestaShop\Module\FacetedSearch\Adapter\MySQL as MySQLAdapter; +use PrestaShop\Module\FacetedSearch\Definition\Availability; use PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery; class Search @@ -192,13 +193,13 @@ private function addSearchFilters($selectedFilters) // Simple cases with 1 option selected if (count($filterValues) == 1) { // Not available - if ($filterValues[0] == 0) { + if ($filterValues[0] == Availability::NOT_AVAILABLE) { $operationsFilter[] = [ ['quantity', [0], '<='], ['out_of_stock', $this->psOrderOutOfStock ? [0] : [0, 2], '='], ]; // Available - } elseif ($filterValues[0] == 1) { + } elseif ($filterValues[0] == Availability::AVAILABLE) { $operationsFilter[] = [ ['out_of_stock', $this->psOrderOutOfStock ? [1, 2] : [1], '='], ]; @@ -206,7 +207,7 @@ private function addSearchFilters($selectedFilters) ['quantity', [0], '>'], ]; // In stock - } elseif ($filterValues[0] == 2) { + } elseif ($filterValues[0] == Availability::IN_STOCK) { $operationsFilter[] = [ ['quantity', [0], '>'], ]; @@ -214,10 +215,10 @@ private function addSearchFilters($selectedFilters) // Cases with 2 options selected } elseif (count($filterValues) == 2) { // Not available and available, we show everything - if (in_array(0, $filterValues) && in_array(1, $filterValues)) { + if (in_array(Availability::NOT_AVAILABLE, $filterValues) && in_array(Availability::AVAILABLE, $filterValues)) { break; // Not available or in stock - } elseif (in_array(0, $filterValues) && in_array(2, $filterValues)) { + } elseif (in_array(Availability::NOT_AVAILABLE, $filterValues) && in_array(Availability::IN_STOCK, $filterValues)) { $operationsFilter[] = [ ['quantity', [0], '<='], ['out_of_stock', $this->psOrderOutOfStock ? [0] : [0, 2], '='], @@ -226,7 +227,7 @@ private function addSearchFilters($selectedFilters) ['quantity', [0], '>'], ]; // Available or in stock - } elseif (in_array(1, $filterValues) && in_array(2, $filterValues)) { + } elseif (in_array(Availability::AVAILABLE, $filterValues) && in_array(Availability::IN_STOCK, $filterValues)) { $operationsFilter[] = [ ['out_of_stock', $this->psOrderOutOfStock ? [1, 2] : [1], '='], ]; diff --git a/src/Product/SearchProvider.php b/src/Product/SearchProvider.php index 780d24f10..7a71e6af3 100644 --- a/src/Product/SearchProvider.php +++ b/src/Product/SearchProvider.php @@ -164,6 +164,13 @@ public function runQuery( // Init the search with the initial population associated with the current filters $facetedSearch->initSearch($facetedSearchFilters); + // Request combination IDs if we have some attributes to search by. + // If not, we won't use this to let the core select the default combination. + if ($this->shouldPassCombinationIds($facetedSearchFilters)) { + $facetedSearch->getSearchAdapter()->getInitialPopulation()->addSelectField('id_product_attribute'); + $facetedSearch->getSearchAdapter()->addSelectField('id_product_attribute'); + } + // Load the product searcher, it gets the Adapter through Search object $filterProductSearch = new Filters\Products($facetedSearch); @@ -586,4 +593,16 @@ private function updateQueryString(array $extraParams = []) return $url . ($queryString ? "?$queryString" : ''); } + + /** + * Checks if we should return information about combinations to the core + * + * @param array $facetedSearchFilters filters passed in the query and parsed by our module + * + * @return bool if should add attributes to the select + */ + private function shouldPassCombinationIds(array $facetedSearchFilters) + { + return !empty($facetedSearchFilters['id_attribute_group']); + } } diff --git a/tests/php/FacetedSearch/Filters/BlockTest.php b/tests/php/FacetedSearch/Filters/BlockTest.php index e803b950c..4cc5f382c 100644 --- a/tests/php/FacetedSearch/Filters/BlockTest.php +++ b/tests/php/FacetedSearch/Filters/BlockTest.php @@ -29,6 +29,7 @@ use Mockery; use Mockery\Adapter\Phpunit\MockeryTestCase; use PrestaShop\Module\FacetedSearch\Adapter\MySQL; +use PrestaShop\Module\FacetedSearch\Definition\Availability; use PrestaShop\Module\FacetedSearch\Filters\Block; use PrestaShop\Module\FacetedSearch\Filters\DataAccessor; use PrestaShop\Module\FacetedSearch\Filters\Provider; @@ -380,16 +381,16 @@ public function testGetFiltersBlockWithQuantities() 'id_key' => 0, 'name' => 'Availability', 'values' => [ - 2 => [ + Availability::IN_STOCK => [ 'name' => 'In stock', 'nbr' => 50, ], - 1 => [ + Availability::AVAILABLE => [ 'name' => 'Available', 'nbr' => 100, 'checked' => true, ], - 0 => [ + Availability::NOT_AVAILABLE => [ 'name' => 'Not available', 'nbr' => 1000, ], @@ -403,7 +404,7 @@ public function testGetFiltersBlockWithQuantities() 10, [ 'availability' => [ - 1, + Availability::AVAILABLE, ], ] ) diff --git a/tests/php/FacetedSearch/Product/SearchTest.php b/tests/php/FacetedSearch/Product/SearchTest.php index 65a7e200f..ac6ad153a 100644 --- a/tests/php/FacetedSearch/Product/SearchTest.php +++ b/tests/php/FacetedSearch/Product/SearchTest.php @@ -27,6 +27,7 @@ use Mockery; use Mockery\Adapter\Phpunit\MockeryTestCase; use PrestaShop\Module\FacetedSearch\Adapter\MySQL; +use PrestaShop\Module\FacetedSearch\Definition\Availability; use PrestaShop\Module\FacetedSearch\Product\Search; use PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery; use stdClass; @@ -291,7 +292,7 @@ public function testInitSearchWithAllFilters() [6], ], 'availability' => [ - 0, + Availability::NOT_AVAILABLE, ], 'weight' => [ '10', @@ -636,7 +637,7 @@ public function testInitSearchWithQuantityFiltersWithoutStockManagement() ->andReturn('category'); $this->search->setQuery($query); - $this->search->initSearch(['availability' => [0]]); + $this->search->initSearch(['availability' => [Availability::NOT_AVAILABLE]]); $this->assertEquals([], $this->search->getSearchAdapter()->getFilters()->toArray()); $this->assertEquals([], $this->search->getSearchAdapter()->getOperationsFilters()->toArray()); @@ -686,7 +687,7 @@ public function testInitSearchWithQuantityFiltersWithoutStockManagement() public function testInitSearchWithFirstQuantityFilters() { - $this->search->initSearch(['availability' => [1]]); + $this->search->initSearch(['availability' => [Availability::AVAILABLE]]); $this->assertEquals([], $this->search->getSearchAdapter()->getFilters()->toArray()); $this->assertEquals([], $this->search->getSearchAdapter()->getOperationsFilters()->toArray()); @@ -720,7 +721,7 @@ public function testInitSearchWithFirstQuantityFilters() public function testInitSearchWithSecondQuantityFilters() { - $this->search->initSearch(['availability' => [2]]); + $this->search->initSearch(['availability' => [Availability::IN_STOCK]]); $this->assertEquals([], $this->search->getSearchAdapter()->getFilters()->toArray()); $this->assertEquals([], $this->search->getSearchAdapter()->getOperationsFilters()->toArray()); @@ -750,7 +751,7 @@ public function testInitSearchWithoutGroupFeature() Group::setStaticExpectations($groupMock); - $this->search->initSearch(['availability' => [2]]); + $this->search->initSearch(['availability' => [Availability::IN_STOCK]]); $this->assertEquals([], $this->search->getSearchAdapter()->getFilters()->toArray()); $this->assertEquals([], $this->search->getSearchAdapter()->getOperationsFilters()->toArray()); @@ -798,7 +799,7 @@ public function testInitSearchWithUserBelongingToGroups() FrontController::setStaticExpectations($frontControllerMock); - $this->search->initSearch(['availability' => [2]]); + $this->search->initSearch(['availability' => [Availability::IN_STOCK]]); $this->assertEquals([], $this->search->getSearchAdapter()->getFilters()->toArray()); $this->assertEquals([], $this->search->getSearchAdapter()->getOperationsFilters()->toArray()); diff --git a/upgrade/upgrade-3.13.0.php b/upgrade/upgrade-3.13.0.php index 5a8bc80ca..516172a8c 100644 --- a/upgrade/upgrade-3.13.0.php +++ b/upgrade/upgrade-3.13.0.php @@ -29,5 +29,8 @@ function upgrade_module_3_13_0(Ps_Facetedsearch $module) 'actionAfterUpdateFeatureValueFormHandler', ]; + // Flush block cache, we changed availability logic a bit + $module->invalidateLayeredFilterBlockCache(); + return $module->registerHook($newHooks); } diff --git a/views/dist/back.css b/views/dist/back.css index 46e6306fe..2830d2884 100644 --- a/views/dist/back.css +++ b/views/dist/back.css @@ -1,4 +1,4 @@ -.bootstrap .filter_list .filter_list_item{display:table;width:100%;padding:5px 0;margin-bottom:4px;background-color:white;-webkit-box-shadow:rgba(0,0,0,0.3) 0 0 3px,rgba(0,0,0,0.1) 0 -2px 0 inset;box-shadow:rgba(0,0,0,0.3) 0 0 3px,rgba(0,0,0,0.1) 0 -2px 0 inset;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;cursor:pointer}.bootstrap .filter_panel{min-height:20px;padding:7px 7px 0px 7px;margin-bottom:20px;background-color:#ebebeb;border:1px solid #d9d9d9;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.bootstrap .filter_panel header{margin-bottom:7px}.bootstrap .prestashop-switch span{display:none}.sortable-ghost{color:orange} +.bootstrap .filter_list .filter_list_item{display:table;width:100%;padding:5px 0;margin-bottom:4px;background-color:white;-webkit-box-shadow:rgba(0,0,0,0.3) 0 0 3px,rgba(0,0,0,0.1) 0 -2px 0 inset;box-shadow:rgba(0,0,0,0.3) 0 0 3px,rgba(0,0,0,0.1) 0 -2px 0 inset;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;cursor:pointer}.bootstrap .filter_panel{min-height:20px;padding:7px 7px 0px 7px;margin-bottom:20px;background-color:#ebebeb;border:1px solid #d9d9d9;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.bootstrap .filter_panel header{margin-bottom:7px}.bootstrap .prestashop-switch span{display:none}.sortable-ghost{color:orange}#content.bootstrap .form-group-categories .panel{margin-bottom:0} /*# sourceMappingURL=back.css.map*/ \ No newline at end of file diff --git a/views/dist/back.css.map b/views/dist/back.css.map index 4ea2c3f92..c7bbe811d 100644 --- a/views/dist/back.css.map +++ b/views/dist/back.css.map @@ -1 +1 @@ -{"version":3,"file":"back.css","mappings":"AAkBA,0CAEG,aAAc,CACd,UAAW,CACX,aAAc,CACd,iBAAkB,CAClB,sBAAuB,CACvB,yEAAiF,CACjF,iEAAyE,CACzE,yBAA0B,CAC1B,sBAAuB,CACvB,qBAAsB,CACtB,oBAAqB,CACrB,iBAAkB,CACjB,cAAe,CAdnB,yBAkBG,eAAgB,CAChB,uBAAwB,CACxB,kBAAmB,CACnB,wBAAyB,CACzB,wBAAyB,CACzB,iBAAkB,CAClB,mDAAuD,CACvD,2CAA+C,CAzBlD,gCA4BK,iBAAkB,CA5BvB,mCAkCM,YAAa,CACd,gBAIJ,YAAa","sources":["webpack://ps_facetedsearch/./_dev/back/blocklayered.scss"],"sourcesContent":["/**\n * Copyright since 2007 PrestaShop SA and Contributors\n * PrestaShop is an International Registered Trademark & Property of PrestaShop SA\n *\n * NOTICE OF LICENSE\n *\n * This source file is subject to the Academic Free License 3.0 (AFL-3.0)\n * that is bundled with this package in the file LICENSE.md.\n * It is also available through the world-wide-web at this URL:\n * https://opensource.org/licenses/AFL-3.0\n * If you did not receive a copy of the license and are unable to\n * obtain it through the world-wide-web, please send an email\n * to license@prestashop.com so we can send you a copy immediately.\n *\n * @author PrestaShop SA \n * @copyright Since 2007 PrestaShop SA and Contributors\n * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)\n */\n.bootstrap {\n .filter_list .filter_list_item {\n\t display: table;\n\t width: 100%;\n\t padding: 5px 0;\n\t margin-bottom: 4px;\n\t background-color: white;\n\t -webkit-box-shadow: rgba(0, 0, 0, 0.3) 0 0 3px, rgba(0, 0, 0, 0.1) 0 -2px 0 inset;\n\t box-shadow: rgba(0, 0, 0, 0.3) 0 0 3px, rgba(0, 0, 0, 0.1) 0 -2px 0 inset;\n\t -webkit-border-radius: 3px;\n\t -moz-border-radius: 3px;\n\t -ms-border-radius: 3px;\n\t -o-border-radius: 3px;\n\t border-radius: 3px;\n cursor: pointer;\n }\n\n .filter_panel {\n\t min-height: 20px;\n\t padding: 7px 7px 0px 7px;\n\t margin-bottom: 20px;\n\t background-color: #ebebeb;\n\t border: 1px solid #d9d9d9;\n\t border-radius: 3px;\n\t -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n\t box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n\n header {\n\t margin-bottom: 7px;\n }\n }\n\n .prestashop-switch {\n span {\n display: none;\n }\n }\n}\n.sortable-ghost {\n\tcolor: orange;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"back.css","mappings":"AAkBA,0CAEG,aAAc,CACd,UAAW,CACX,aAAc,CACd,iBAAkB,CAClB,sBAAuB,CACvB,yEAAiF,CACjF,iEAAyE,CACzE,yBAA0B,CAC1B,sBAAuB,CACvB,qBAAsB,CACtB,oBAAqB,CACrB,iBAAkB,CACjB,cAAe,CAdnB,yBAkBG,eAAgB,CAChB,uBAAwB,CACxB,kBAAmB,CACnB,wBAAyB,CACzB,wBAAyB,CACzB,iBAAkB,CAClB,mDAAuD,CACvD,2CAA+C,CAzBlD,gCA4BK,iBAAkB,CA5BvB,mCAkCM,YAAa,CACd,gBAIJ,YAAa,CACb,iDAGC,eAAgB","sources":["webpack://ps_facetedsearch/./_dev/back/blocklayered.scss"],"sourcesContent":["/**\r\n * Copyright since 2007 PrestaShop SA and Contributors\r\n * PrestaShop is an International Registered Trademark & Property of PrestaShop SA\r\n *\r\n * NOTICE OF LICENSE\r\n *\r\n * This source file is subject to the Academic Free License 3.0 (AFL-3.0)\r\n * that is bundled with this package in the file LICENSE.md.\r\n * It is also available through the world-wide-web at this URL:\r\n * https://opensource.org/licenses/AFL-3.0\r\n * If you did not receive a copy of the license and are unable to\r\n * obtain it through the world-wide-web, please send an email\r\n * to license@prestashop.com so we can send you a copy immediately.\r\n *\r\n * @author PrestaShop SA \r\n * @copyright Since 2007 PrestaShop SA and Contributors\r\n * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)\r\n */\r\n.bootstrap {\r\n .filter_list .filter_list_item {\r\n\t display: table;\r\n\t width: 100%;\r\n\t padding: 5px 0;\r\n\t margin-bottom: 4px;\r\n\t background-color: white;\r\n\t -webkit-box-shadow: rgba(0, 0, 0, 0.3) 0 0 3px, rgba(0, 0, 0, 0.1) 0 -2px 0 inset;\r\n\t box-shadow: rgba(0, 0, 0, 0.3) 0 0 3px, rgba(0, 0, 0, 0.1) 0 -2px 0 inset;\r\n\t -webkit-border-radius: 3px;\r\n\t -moz-border-radius: 3px;\r\n\t -ms-border-radius: 3px;\r\n\t -o-border-radius: 3px;\r\n\t border-radius: 3px;\r\n cursor: pointer;\r\n }\r\n\r\n .filter_panel {\r\n\t min-height: 20px;\r\n\t padding: 7px 7px 0px 7px;\r\n\t margin-bottom: 20px;\r\n\t background-color: #ebebeb;\r\n\t border: 1px solid #d9d9d9;\r\n\t border-radius: 3px;\r\n\t -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\r\n\t box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\r\n\r\n header {\r\n\t margin-bottom: 7px;\r\n }\r\n }\r\n\r\n .prestashop-switch {\r\n span {\r\n display: none;\r\n }\r\n }\r\n}\r\n.sortable-ghost {\r\n\tcolor: orange;\r\n}\r\n#content.bootstrap {\r\n\t.form-group-categories .panel {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/views/dist/back.js b/views/dist/back.js index 3946344b2..11e5cfb40 100644 --- a/views/dist/back.js +++ b/views/dist/back.js @@ -1,3 +1,3 @@ /*! For license information please see back.js.LICENSE.txt */ -(()=>{var e={208:()=>{},379:(e,t,n)=>{"use strict";var i,r=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),s=[];function a(e){for(var t=-1,n=0;n{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.nc=void 0,(()=>{"use strict";var e=n(379),t=n.n(e),i=n(208),r=n.n(i);t()(r(),{insert:"head",singleton:!1}),r().locals,window.checkForm=function(){var e=!1,t=!1;return $("#categories-treeview input[type=checkbox]").each((function(){return!$(this).prop("checked")||(e=!0,!1)})),$(".filter_list_item input[type=checkbox]").each((function(){return!$(this).prop("checked")||(t=!0,!1)})),e?!!t||(alert(translations.no_selected_filters),$("#filter_list_item input[type=checkbox]").first().focus(),!1):(alert(translations.no_selected_categories),$("#categories-treeview input[type=checkbox]").first().focus(),!1)},$(document).ready((function(){$(".ajaxcall").click((function(){if(void 0===this.legend&&(this.legend=$(this).html()),void 0===this.running&&(this.running=!1),!0===this.running)return!1;$(".ajax-message").hide(),this.running=!0,(void 0===this.restartAllowed||this.restartAllowed)&&($(this).html(this.legend+translations.in_progress),$("#indexing-warning").show()),this.restartAllowed=!1;var e=$(this).attr("rel");return $.ajax({url:"".concat(this.href,"&ajax=1"),context:this,dataType:"json",cache:"false",success:function(){this.running=!1,this.restartAllowed=!0,$("#indexing-warning").hide(),$(this).html(this.legend),$("#ajax-message-ok span").html("price"===e?translations.url_indexation_finished:translations.attribute_indexation_finished),$("#ajax-message-ok").show()},error:function(){this.restartAllowed=!0,$("#indexing-warning").hide(),$("#ajax-message-ko span").html("price"===e?translations.url_indexation_failed:translations.attribute_indexation_failed),$("#ajax-message-ko").show(),$(this).html(this.legend),this.running=!1}}),!1}));var e=0;if($(".ajaxcall-recurcive").each((function(t,n){$(n).click((function(t){return t.preventDefault(),void 0===this.cursor&&(this.cursor=0),void 0===this.legend&&(this.legend=$(this).html()),void 0===this.running&&(this.running=!1),!0===this.running||($(".ajax-message").hide(),this.running=!0,(void 0===this.restartAllowed||this.restartAllowed)&&($(this).html(this.legend+translations.in_progress),$("#indexing-warning").show()),this.restartAllowed=!1,$.ajax({url:"".concat(this.href,"&ajax=1&cursor=").concat(this.cursor),context:this,dataType:"json",cache:"false",success:function(t){if(this.running=!1,t.result)return this.cursor=0,e=0,$("#indexing-warning").hide(),$(this).html(this.legend),$("#ajax-message-ok span").html(translations.price_indexation_finished),void $("#ajax-message-ok").show();e+=parseInt(t.count,10),this.cursor=parseInt(t.cursor,10),$(this).html(this.legend+translations.price_indexation_in_progress.replace("%s","".concat(e,"/").concat(t.total))),$(this).click()},error:function(e){this.restartAllowed=!0,$("#indexing-warning").hide(),$("#ajax-message-ko span").html(translations.price_indexation_failed),$("#ajax-message-ko").show(),$(this).html(this.legend),this.cursor=0,this.running=!1}})),!1}))})),"undefined"!=typeof PS_LAYERED_INDEXED&&PS_LAYERED_INDEXED&&($("#url-indexe").click(),$("#full-index").click()),"undefined"!=typeof Sortable){var t=document.getElementById("list-filters");null!==t&&new Sortable(t,{animation:150,ghostClass:"sortable-ghost"})}else $(".sortable").sortable({forcePlaceholderSize:!0});if($(".filter_list_item input[type=checkbox]").click((function(){var e=parseInt($("#selected_filters").html(),10);$("#selected_filters").html($(this).prop("checked")?e+1:e-1)})),void 0!==window.filters){var n,i=JSON.parse(window.filters),r=null;Object.keys(i).forEach((function(e){(n=$("#".concat(e))).prop("checked",!0),$("#selected_filters").html(parseInt($("#selected_filters").html(),10)+1),$('select[name="'.concat(e,'_filter_type"]')).val(i[e].filter_type),$('select[name="'.concat(e,'_filter_show_limit"]')).val(i[e].filter_show_limit),null===r?(r=$("#".concat(e)).closest("ul"),n.closest("li").detach().prependTo(r)):n.closest("li").detach().insertAfter(r),r=n.closest("li")}))}})),$(document).on("ready",(function(){var e=$('input[name="ps_layered_filter_by_default_category"]');e.on("change",(function(e){var t=$(this);t.prop("checked")&&("1"===t.val()?($('input[name="ps_layered_full_tree"][value="0"]').prop("checked",!0),$('input[name="ps_layered_full_tree"]').prop("disabled",!0)):$('input[name="ps_layered_full_tree"]').prop("disabled",!1))})),e.filter('[value="1"]').trigger("change")}))})()})(); +(()=>{var e={208:()=>{},379:(e,t,n)=>{"use strict";var i,r=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),s=[];function a(e){for(var t=-1,n=0;n{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.nc=void 0,(()=>{"use strict";var e=n(379),t=n.n(e),i=n(208),r=n.n(i);t()(r(),{insert:"head",singleton:!1}),r().locals,window.checkForm=function(){var e=!1,t=!1,n=!1,i=!1;return $("#categories-treeview input[type=checkbox]").each((function(){return!$(this).prop("checked")||(e=!0,!1)})),$('input[name="controllers[]"]').each((function(){$(this).prop("checked")&&(n=!0,"category"===$(this).val()&&(t=!0))})),$(".filter_list_item input[type=checkbox]").each((function(){return!$(this).prop("checked")||(i=!0,!1)})),n?t&&!e?(alert(translations.no_selected_categories),$("#categories-treeview input[type=checkbox]").first().focus(),!1):!!i||(alert(translations.no_selected_filters),$("#filter_list_item input[type=checkbox]").first().focus(),!1):(alert(translations.no_selected_controllers),!1)},$(document).ready((function(){$(".ajaxcall").click((function(){if(void 0===this.legend&&(this.legend=$(this).html()),void 0===this.running&&(this.running=!1),!0===this.running)return!1;$(".ajax-message").hide(),this.running=!0,(void 0===this.restartAllowed||this.restartAllowed)&&($(this).html(this.legend+translations.in_progress),$("#indexing-warning").show()),this.restartAllowed=!1;var e=$(this).attr("rel");return $.ajax({url:"".concat(this.href,"&ajax=1"),context:this,dataType:"json",cache:"false",success:function(){this.running=!1,this.restartAllowed=!0,$("#indexing-warning").hide(),$(this).html(this.legend),$("#ajax-message-ok span").html("price"===e?translations.url_indexation_finished:translations.attribute_indexation_finished),$("#ajax-message-ok").show()},error:function(){this.restartAllowed=!0,$("#indexing-warning").hide(),$("#ajax-message-ko span").html("price"===e?translations.url_indexation_failed:translations.attribute_indexation_failed),$("#ajax-message-ko").show(),$(this).html(this.legend),this.running=!1}}),!1}));var e=0;if($(".ajaxcall-recurcive").each((function(t,n){$(n).click((function(t){return t.preventDefault(),void 0===this.cursor&&(this.cursor=0),void 0===this.legend&&(this.legend=$(this).html()),void 0===this.running&&(this.running=!1),!0===this.running||($(".ajax-message").hide(),this.running=!0,(void 0===this.restartAllowed||this.restartAllowed)&&($(this).html(this.legend+translations.in_progress),$("#indexing-warning").show()),this.restartAllowed=!1,$.ajax({url:"".concat(this.href,"&ajax=1&cursor=").concat(this.cursor),context:this,dataType:"json",cache:"false",success:function(t){if(this.running=!1,t.result)return this.cursor=0,e=0,$("#indexing-warning").hide(),$(this).html(this.legend),$("#ajax-message-ok span").html(translations.price_indexation_finished),void $("#ajax-message-ok").show();e+=parseInt(t.count,10),this.cursor=parseInt(t.cursor,10),$(this).html(this.legend+translations.price_indexation_in_progress.replace("%s","".concat(e,"/").concat(t.total))),$(this).click()},error:function(e){this.restartAllowed=!0,$("#indexing-warning").hide(),$("#ajax-message-ko span").html(translations.price_indexation_failed),$("#ajax-message-ko").show(),$(this).html(this.legend),this.cursor=0,this.running=!1}})),!1}))})),"undefined"!=typeof PS_LAYERED_INDEXED&&PS_LAYERED_INDEXED&&($("#url-indexe").click(),$("#full-index").click()),"undefined"!=typeof Sortable){var t=document.getElementById("list-filters");null!==t&&new Sortable(t,{animation:150,ghostClass:"sortable-ghost"})}else $(".sortable").sortable({forcePlaceholderSize:!0});if($(".filter_list_item input[type=checkbox]").click((function(){var e=parseInt($("#selected_filters").html(),10);$("#selected_filters").html($(this).prop("checked")?e+1:e-1)})),void 0!==window.filters){var n,i=JSON.parse(window.filters),r=null;Object.keys(i).forEach((function(e){(n=$("#".concat(e))).prop("checked",!0),$("#selected_filters").html(parseInt($("#selected_filters").html(),10)+1),$('select[name="'.concat(e,'_filter_type"]')).val(i[e].filter_type),$('select[name="'.concat(e,'_filter_show_limit"]')).val(i[e].filter_show_limit),null===r?(r=$("#".concat(e)).closest("ul"),n.closest("li").detach().prependTo(r)):n.closest("li").detach().insertAfter(r),r=n.closest("li")}))}})),$(document).on("ready",(function(){var e=$('input[name="ps_layered_filter_by_default_category"]');e.on("change",(function(e){var t=$(this);t.prop("checked")&&("1"===t.val()?($('input[name="ps_layered_full_tree"][value="0"]').prop("checked",!0),$('input[name="ps_layered_full_tree"]').prop("disabled",!0)):$('input[name="ps_layered_full_tree"]').prop("disabled",!1))})),e.filter('[value="1"]').trigger("change")}))})()})(); //# sourceMappingURL=back.js.map \ No newline at end of file diff --git a/views/dist/back.js.map b/views/dist/back.js.map index ba7e34c6a..2dfaecf09 100644 --- a/views/dist/back.js.map +++ b/views/dist/back.js.map @@ -1 +1 @@ -{"version":3,"file":"back.js","mappings":"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","sources":["webpack://ps_facetedsearch/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://ps_facetedsearch/webpack/bootstrap","webpack://ps_facetedsearch/webpack/runtime/compat get default export","webpack://ps_facetedsearch/webpack/runtime/define property getters","webpack://ps_facetedsearch/webpack/runtime/hasOwnProperty shorthand","webpack://ps_facetedsearch/webpack/runtime/nonce","webpack://ps_facetedsearch/./_dev/back/blocklayered.scss?3003","webpack://ps_facetedsearch/./_dev/back/index.js"],"sourcesContent":["\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of