From 96941480eebdbd2bad11a57be4be99604f465b8a Mon Sep 17 00:00:00 2001 From: R Fultz Date: Fri, 30 Dec 2022 09:53:34 -0500 Subject: [PATCH 01/53] Branch to use Vue 2 and 3 in the same build --- fec/fec/static/js/modules/calc-admin-fines.js | 2 +- package-lock.json | 465 ++++++++++++++++-- package.json | 3 +- 3 files changed, 420 insertions(+), 50 deletions(-) diff --git a/fec/fec/static/js/modules/calc-admin-fines.js b/fec/fec/static/js/modules/calc-admin-fines.js index 546489832c..bc0e628726 100644 --- a/fec/fec/static/js/modules/calc-admin-fines.js +++ b/fec/fec/static/js/modules/calc-admin-fines.js @@ -1,7 +1,7 @@ /** // */ -import Vue from 'vue/dist/vue.esm.js'; +import Vue from 'vue-2/dist/vue.esm.js'; import { availableDates, getTotalAdminFine } from './calc-admin-fines-logic'; diff --git a/package-lock.json b/package-lock.json index a182a2ec1f..962511c158 100644 --- a/package-lock.json +++ b/package-lock.json @@ -118,7 +118,8 @@ "underscore": "^1.13.1", "urijs": "^1.19.1", "vinyl-buffer": "^1.0.1", - "vue": "^2.6.11", + "vue": "^3.2.45", + "vue-2": "npm:vue@^2.6.11", "watchify": "^3.11.1", "webpack": "^3.5.5", "webpack-bundle-analyzer": "^3.3.2", @@ -261,9 +262,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -602,6 +603,118 @@ "@types/node": "*" } }, + "node_modules/@vue/compiler-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz", + "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz", + "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz", + "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-ssr": "3.2.45", + "@vue/reactivity-transform": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz", + "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.45.tgz", + "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==", + "dev": true, + "dependencies": { + "@vue/shared": "3.2.45" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz", + "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.45.tgz", + "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==", + "dev": true, + "dependencies": { + "@vue/reactivity": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz", + "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==", + "dev": true, + "dependencies": { + "@vue/runtime-core": "3.2.45", + "@vue/shared": "3.2.45", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.45.tgz", + "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==", + "dev": true, + "dependencies": { + "@vue/compiler-ssr": "3.2.45", + "@vue/shared": "3.2.45" + }, + "peerDependencies": { + "vue": "3.2.45" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz", + "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==", + "dev": true + }, "node_modules/a11y-dialog": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/a11y-dialog/-/a11y-dialog-4.0.0.tgz", @@ -4121,12 +4234,6 @@ "resolved": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-0.0.2.tgz", "integrity": "sha1-kPocRBtDar8b+7NSxLWf11480ZQ=" }, - "node_modules/colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, "node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -4557,6 +4664,12 @@ "node": ">=8.0.0" } }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "dev": true + }, "node_modules/currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -6612,6 +6725,12 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -12309,6 +12428,15 @@ "es5-ext": "~0.10.2" } }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -13054,9 +13182,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.1.22", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", - "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -14724,6 +14852,12 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/picomatch": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.0.tgz", @@ -14993,21 +15127,27 @@ } }, "node_modules/postcss": { - "version": "8.2.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.14.tgz", - "integrity": "sha512-+jD0ZijcvyCqPQo/m/CW0UcARpdFylq04of+Q7RKX6f/Tu+dvpUI/9Sp81+i6/vJThnOBX09Quw0ZLOVwpzX3w==", + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], "dependencies": { - "colorette": "^1.2.2", - "nanoid": "^3.1.22", - "source-map": "^0.6.1" + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" }, "engines": { "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-selector-parser": { @@ -16930,6 +17070,15 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", @@ -16967,6 +17116,13 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, "node_modules/sparkles": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", @@ -18941,9 +19097,44 @@ } }, "node_modules/vue": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz", - "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==", + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.45.tgz", + "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-sfc": "3.2.45", + "@vue/runtime-dom": "3.2.45", + "@vue/server-renderer": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "node_modules/vue-2": { + "name": "vue", + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", + "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", + "dev": true, + "dependencies": { + "@vue/compiler-sfc": "2.7.14", + "csstype": "^3.1.0" + } + }, + "node_modules/vue-2/node_modules/@vue/compiler-sfc": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", + "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.18.4", + "postcss": "^8.4.14", + "source-map": "^0.6.1" + } + }, + "node_modules/vue-2/node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", "dev": true }, "node_modules/walker": { @@ -20298,9 +20489,9 @@ } }, "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", "dev": true }, "@babel/plugin-syntax-object-rest-spread": { @@ -20597,6 +20788,115 @@ "@types/node": "*" } }, + "@vue/compiler-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz", + "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz", + "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz", + "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-ssr": "3.2.45", + "@vue/reactivity-transform": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz", + "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/reactivity": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.45.tgz", + "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==", + "dev": true, + "requires": { + "@vue/shared": "3.2.45" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz", + "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.45.tgz", + "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==", + "dev": true, + "requires": { + "@vue/reactivity": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/runtime-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz", + "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==", + "dev": true, + "requires": { + "@vue/runtime-core": "3.2.45", + "@vue/shared": "3.2.45", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.45.tgz", + "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==", + "dev": true, + "requires": { + "@vue/compiler-ssr": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/shared": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz", + "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==", + "dev": true + }, "a11y-dialog": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/a11y-dialog/-/a11y-dialog-4.0.0.tgz", @@ -23606,12 +23906,6 @@ "resolved": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-0.0.2.tgz", "integrity": "sha1-kPocRBtDar8b+7NSxLWf11480ZQ=" }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -23995,6 +24289,12 @@ "css-tree": "1.0.0-alpha.37" } }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "dev": true + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -25665,6 +25965,12 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -30290,6 +30596,15 @@ "es5-ext": "~0.10.2" } }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -30921,9 +31236,9 @@ "dev": true }, "nanoid": { - "version": "3.1.22", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", - "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "dev": true }, "nanomatch": { @@ -32250,6 +32565,12 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "picomatch": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.0.tgz", @@ -32453,14 +32774,14 @@ "dev": true }, "postcss": { - "version": "8.2.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.14.tgz", - "integrity": "sha512-+jD0ZijcvyCqPQo/m/CW0UcARpdFylq04of+Q7RKX6f/Tu+dvpUI/9Sp81+i6/vJThnOBX09Quw0ZLOVwpzX3w==", + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", "dev": true, "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.22", - "source-map": "^0.6.1" + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" } }, "postcss-selector-parser": { @@ -34067,6 +34388,12 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, "source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", @@ -34103,6 +34430,12 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, "sparkles": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", @@ -35701,10 +36034,46 @@ "dev": true }, "vue": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz", - "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==", - "dev": true + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.45.tgz", + "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-sfc": "3.2.45", + "@vue/runtime-dom": "3.2.45", + "@vue/server-renderer": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "vue-2": { + "version": "npm:vue@2.7.14", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", + "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", + "dev": true, + "requires": { + "@vue/compiler-sfc": "2.7.14", + "csstype": "^3.1.0" + }, + "dependencies": { + "@vue/compiler-sfc": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", + "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", + "dev": true, + "requires": { + "@babel/parser": "^7.18.4", + "postcss": "^8.4.14", + "source-map": "^0.6.1" + } + }, + "csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", + "dev": true + } + } }, "walker": { "version": "1.0.7", diff --git a/package.json b/package.json index d1300e451f..455353cadd 100644 --- a/package.json +++ b/package.json @@ -130,7 +130,8 @@ "underscore": "^1.13.1", "urijs": "^1.19.1", "vinyl-buffer": "^1.0.1", - "vue": "^2.6.11", + "vue": "^3.2.45", + "vue-2": "npm:vue@^2.6.11", "watchify": "^3.11.1", "webpack": "^3.5.5", "webpack-bundle-analyzer": "^3.3.2", From ade41603cb5c9c4f4ea8de7b0e767abaf891386d Mon Sep 17 00:00:00 2001 From: R Fultz Date: Thu, 5 Jan 2023 13:48:40 -0500 Subject: [PATCH 02/53] Create and apply feature flag for contact app --- fec/fec/settings/base.py | 4 ++++ fec/home/templates/home/contact_page.html | 14 ++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/fec/fec/settings/base.py b/fec/fec/settings/base.py index b2722d0ef1..430283070f 100644 --- a/fec/fec/settings/base.py +++ b/fec/fec/settings/base.py @@ -61,6 +61,7 @@ 'aggregatetotals': bool(env.get_credential('FEC_FEATURE_AGGR_TOTS', '')), 'barcharts': bool(env.get_credential('FEC_FEATURE_HOME_BARCHARTS', '')), 'contributionsbystate': bool(env.get_credential('FEC_FEATURE_CONTRIBUTIONS_BY_STATE', '')), + 'contact_app': bool(env.get_credential('FEC_FEATURE_CONTACT_APP', '')), 'debts': bool(env.get_credential('FEC_FEATURE_DEBTS', '')), # TODO: debts dates 'map': bool(env.get_credential('FEC_FEATURE_HOME_MAP', '')), 'pac_party': bool(env.get_credential('FEC_FEATURE_PAC_PARTY', '')), @@ -71,6 +72,8 @@ 'house_senate_overview_summary': bool(env.get_credential('FEC_FEATURE_HOUSE_SENATE_OVERVIEW_SUMMARY', '')), 'house_senate_overview_totals': bool(env.get_credential('FEC_FEATURE_HOUSE_SENATE_OVERVIEW_TOTALS', '')), } +# In html templates, FEATURES is in the settings object. ex: settings.FEATURES.feature_flag_var +# Jinja templates use the FEATURES object directly. ex: FEATURES.feature_flag_var # Set feature flags to True for local if FEC_CMS_ENVIRONMENT == ENVIRONMENTS['local']: @@ -79,6 +82,7 @@ FEATURES['aggregatetotals'] = True FEATURES['barcharts'] = True FEATURES['contributionsbystate'] = True + FEATURES['contact_app'] = True FEATURES['debts'] = True FEATURES['map'] = True FEATURES['pac_party'] = True diff --git a/fec/home/templates/home/contact_page.html b/fec/home/templates/home/contact_page.html index c3677b8c20..c003f499bf 100644 --- a/fec/home/templates/home/contact_page.html +++ b/fec/home/templates/home/contact_page.html @@ -17,20 +17,22 @@

{{ self.title }}

{% for block in self.contact_items %} {{ block }} {% endfor %} -
+ {% if settings.FEATURES.contact_app %} {# feature flag for whether we show the Vue contact app… #} + {% else %} {# …or show the content from Wagtail #} {{ self.info_message }}

{{ self.services_title }}

- {% for block in self.services %} + {% for block in self.services %}
- {% if block.block_type == 'paragraph' %} + {% if block.block_type == 'paragraph' %}
{{ block }}
- {% else %} + {% else %} {{ block }} - {% endif %} + {% endif %}
- {% endfor %} + {% endfor %} + {% endif %}{# end feature flag #}
From 6ea229469f3ef1c1fea3c655538c51a654d14cc0 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 11 Jan 2023 11:34:02 -0500 Subject: [PATCH 03/53] Upgrades --- package-lock.json | 4 ++-- package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 962511c158..034f8ef20c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -119,9 +119,9 @@ "urijs": "^1.19.1", "vinyl-buffer": "^1.0.1", "vue": "^3.2.45", - "vue-2": "npm:vue@^2.6.11", + "vue-2": "npm:vue@^2.7.14", "watchify": "^3.11.1", - "webpack": "^3.5.5", + "webpack": "^3.12.0", "webpack-bundle-analyzer": "^3.3.2", "webpack-manifest-plugin": "^1.3.1" }, diff --git a/package.json b/package.json index 455353cadd..de97be8b79 100644 --- a/package.json +++ b/package.json @@ -131,9 +131,9 @@ "urijs": "^1.19.1", "vinyl-buffer": "^1.0.1", "vue": "^3.2.45", - "vue-2": "npm:vue@^2.6.11", + "vue-2": "npm:vue@^2.7.14", "watchify": "^3.11.1", - "webpack": "^3.5.5", + "webpack": "^3.12.0", "webpack-bundle-analyzer": "^3.3.2", "webpack-manifest-plugin": "^1.3.1" }, From 717df1b85bb5d8be88295de6d7a7233ea414c8c5 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Fri, 13 Jan 2023 14:54:18 -0500 Subject: [PATCH 04/53] Do the Vue 2 + 3 combination later --- fec/fec/static/js/modules/calc-admin-fines.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fec/fec/static/js/modules/calc-admin-fines.js b/fec/fec/static/js/modules/calc-admin-fines.js index bc0e628726..546489832c 100644 --- a/fec/fec/static/js/modules/calc-admin-fines.js +++ b/fec/fec/static/js/modules/calc-admin-fines.js @@ -1,7 +1,7 @@ /** // */ -import Vue from 'vue-2/dist/vue.esm.js'; +import Vue from 'vue/dist/vue.esm.js'; import { availableDates, getTotalAdminFine } from './calc-admin-fines-logic'; From c54e8ff07a453a921be72daf87bfa93e274f72c6 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Fri, 13 Jan 2023 14:54:33 -0500 Subject: [PATCH 05/53] Include contact-app scss in base.scss --- fec/fec/static/scss/base.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/fec/fec/static/scss/base.scss b/fec/fec/static/scss/base.scss index 31e58d7a9e..dda9c3d69c 100644 --- a/fec/fec/static/scss/base.scss +++ b/fec/fec/static/scss/base.scss @@ -41,3 +41,4 @@ @import "components/richtext"; @import "components/calc-admin-fines"; +@import "components/contact-app"; From 719039d09d4f614cafb48bf213e6c0b2d85ebb20 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 1 Feb 2023 10:33:12 -0500 Subject: [PATCH 06/53] Duplicating the work of the Node upgrade --- fec/fec/static/js/polyfills.js | 2 +- .../scss/components/_search-controls.scss | 3 +- .../bourbon/_bourbon-deprecated-upcoming.scss | 4 +- .../scss/vendor/bourbon/addons/_triangle.scss | 6 +- .../vendor/bourbon/functions/_px-to-em.scss | 3 +- .../vendor/bourbon/functions/_px-to-rem.scss | 3 +- .../bourbon/functions/_strip-units.scss | 3 +- .../scss/vendor/neat/grid/_private.scss | 6 +- fec/gulpfile.js | 2 +- package-lock.json | 2652 ++--------------- package.json | 14 +- 11 files changed, 339 insertions(+), 2359 deletions(-) diff --git a/fec/fec/static/js/polyfills.js b/fec/fec/static/js/polyfills.js index 6526acc96f..6b8f80578a 100644 --- a/fec/fec/static/js/polyfills.js +++ b/fec/fec/static/js/polyfills.js @@ -5,7 +5,7 @@ import 'babel-polyfill'; * used in calendars * filter-panel, top-entities, */ -import 'core-js/es/object/assign'; +import 'core-js/es6/object'; /** * NodeList.forEach diff --git a/fec/fec/static/scss/components/_search-controls.scss b/fec/fec/static/scss/components/_search-controls.scss index 71c035d1ac..63116fb634 100644 --- a/fec/fec/static/scss/components/_search-controls.scss +++ b/fec/fec/static/scss/components/_search-controls.scss @@ -5,6 +5,7 @@ // embedded searches (MUR, AUDIT) // keyword modals // +@use 'sass:math'; .search-controls__row { @include clearfix(); @@ -275,7 +276,7 @@ flex-wrap: wrap; .usa-width-one-half:first-child { - margin-left: $gutter / 2; + margin-left: math.div($gutter, 2); margin-right: $gutter; width: 100%; } diff --git a/fec/fec/static/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss b/fec/fec/static/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss index e6d1b8cec0..c15626ea5e 100644 --- a/fec/fec/static/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss +++ b/fec/fec/static/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss @@ -379,7 +379,7 @@ @function flex-grid($columns, $container-columns: $fg-max-columns) { $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; - @return percentage($width / $container-width); + @return percentage(math.div($width, $container-width)); @warn "The flex-grid function is deprecated and will be removed in the next major version release"; } @@ -387,7 +387,7 @@ // Flexible gutter @function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; - @return percentage($gutter / $container-width); + @return percentage(math.div($gutter, $container-width)); @warn "The flex-gutter function is deprecated and will be removed in the next major version release"; } diff --git a/fec/fec/static/scss/vendor/bourbon/addons/_triangle.scss b/fec/fec/static/scss/vendor/bourbon/addons/_triangle.scss index 8a1ed9cd08..76863c13b4 100644 --- a/fec/fec/static/scss/vendor/bourbon/addons/_triangle.scss +++ b/fec/fec/static/scss/vendor/bourbon/addons/_triangle.scss @@ -1,3 +1,5 @@ +@use 'sass:math'; + @mixin triangle($size, $color, $direction) { $width: nth($size, 1); $height: nth($size, length($size)); @@ -7,8 +9,8 @@ width: 0; @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) { - $width: $width / 2; - $height: if(length($size) > 1, $height, $height/2); + $width: math.div($width, 2); + $height: if(length($size) > 1, $height, math.div($height, 2)); @if $direction == up { border-bottom: $height solid $foreground-color; diff --git a/fec/fec/static/scss/vendor/bourbon/functions/_px-to-em.scss b/fec/fec/static/scss/vendor/bourbon/functions/_px-to-em.scss index ae81a44ada..f96ffc5c8d 100644 --- a/fec/fec/static/scss/vendor/bourbon/functions/_px-to-em.scss +++ b/fec/fec/static/scss/vendor/bourbon/functions/_px-to-em.scss @@ -1,6 +1,7 @@ // Convert pixels to ems // eg. for a relational value of 12px write em(12) when the parent is 16px // if the parent is another value say 24px write em(12, 24) +@use 'sass:math'; @function em($pxval, $base: $em-base) { @if not unitless($pxval) { @@ -9,5 +10,5 @@ @if not unitless($base) { $base: strip-units($base); } - @return ($pxval / $base) * 1em; + @return math.div($pxval, $base) * 1em; } diff --git a/fec/fec/static/scss/vendor/bourbon/functions/_px-to-rem.scss b/fec/fec/static/scss/vendor/bourbon/functions/_px-to-rem.scss index 0ac941e76b..17c0ae0ea8 100644 --- a/fec/fec/static/scss/vendor/bourbon/functions/_px-to-rem.scss +++ b/fec/fec/static/scss/vendor/bourbon/functions/_px-to-rem.scss @@ -1,6 +1,7 @@ // Convert pixels to rems // eg. for a relational value of 12px write rem(12) // Assumes $em-base is the font-size of +@use 'sass:math'; @function rem($pxval) { @if not unitless($pxval) { @@ -11,5 +12,5 @@ @if not unitless($base) { $base: strip-units($base); } - @return ($pxval / $base) * 1rem; + @return math.div($pxval, $base) * 1rem; } diff --git a/fec/fec/static/scss/vendor/bourbon/functions/_strip-units.scss b/fec/fec/static/scss/vendor/bourbon/functions/_strip-units.scss index 6c5f3e8104..a28e3841ca 100644 --- a/fec/fec/static/scss/vendor/bourbon/functions/_strip-units.scss +++ b/fec/fec/static/scss/vendor/bourbon/functions/_strip-units.scss @@ -1,4 +1,5 @@ @charset "UTF-8"; +@use 'sass:math'; /// Strips the unit from a number. /// @@ -13,5 +14,5 @@ /// @return {Number (Unitless)} @function strip-units($value) { - @return ($value / ($value * 0 + 1)); + @return math.div($value, ($value * 0 + 1)); } diff --git a/fec/fec/static/scss/vendor/neat/grid/_private.scss b/fec/fec/static/scss/vendor/neat/grid/_private.scss index 4c4e18c177..2c8a6f4da0 100644 --- a/fec/fec/static/scss/vendor/neat/grid/_private.scss +++ b/fec/fec/static/scss/vendor/neat/grid/_private.scss @@ -1,3 +1,5 @@ +@use 'sass:math'; + $parent-columns: $grid-columns !default; $fg-column: $column; $fg-gutter: $gutter; @@ -8,12 +10,12 @@ $layout-direction: LTR !default; @function flex-grid($columns, $container-columns: $fg-max-columns) { $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; - @return percentage($width / $container-width); + @return percentage(math.div($width, $container-width)); } @function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; - @return percentage($gutter / $container-width); + @return percentage(math.div($gutter, $container-width)); } @function grid-width($n) { diff --git a/fec/gulpfile.js b/fec/gulpfile.js index ae099da0d8..0e79dd4017 100644 --- a/fec/gulpfile.js +++ b/fec/gulpfile.js @@ -7,7 +7,7 @@ const consolidate = require('gulp-consolidate'); const rename = require('gulp-rename'); const svgmin = require('gulp-svgmin'); const urlencode = require('gulp-css-urlencode-inline-svgs'); -const sass = require('gulp-sass'); +const sass = require('gulp-sass')(require('sass')); // minifies css const cleanCSS = require('gulp-clean-css'); // Clears contents of directory diff --git a/package-lock.json b/package-lock.json index 034f8ef20c..cf560d3e8e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,9 +24,8 @@ "d3": "3.5.5", "datatables.net": "^1.11.3", "datatables.net-responsive": "^2.2.7", - "debug": "^3.2.6", + "debug": "^4.3.4", "dompurify": "^2.2.7", - "draft-js": "^0.11.7", "draftail": "^1.4.1", "es6-weak-map": "2.0.1", "eventemitter2": "0.4.14", @@ -78,7 +77,7 @@ "eslint-plugin-import": "^2.24.2", "eslint-plugin-react": "^7.26.1", "fs": "0.0.1-security", - "gulp": "^4.0.0", + "gulp": "^4.0.2", "gulp-clean": "^0.4.0", "gulp-clean-css": "^4.0.0", "gulp-consolidate": "^0.2.0", @@ -87,7 +86,7 @@ "gulp-purgecss": "^4.0.3", "gulp-rename": "^1.2.2", "gulp-rev": "^9.0.0", - "gulp-sass": "^4.1.0", + "gulp-sass": "^5.1.0", "gulp-sourcemaps": "^2.6.5", "gulp-svgmin": "^2.1.0", "gulp-uglify": "3.0.1", @@ -118,16 +117,15 @@ "underscore": "^1.13.1", "urijs": "^1.19.1", "vinyl-buffer": "^1.0.1", - "vue": "^3.2.45", - "vue-2": "npm:vue@^2.7.14", + "vue": "^2.6.11", "watchify": "^3.11.1", "webpack": "^3.12.0", "webpack-bundle-analyzer": "^3.3.2", "webpack-manifest-plugin": "^1.3.1" }, "engines": { - "node": "14.13.0", - "npm": "7.24.0" + "node": "18.13.0", + "npm": "8.19.3" } }, "node_modules/@babel/code-frame": { @@ -164,16 +162,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/@babel/core/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -313,16 +301,6 @@ "lodash": "^4.17.13" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/@babel/types": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", @@ -603,118 +581,6 @@ "@types/node": "*" } }, - "node_modules/@vue/compiler-core": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz", - "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.45", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz", - "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==", - "dev": true, - "dependencies": { - "@vue/compiler-core": "3.2.45", - "@vue/shared": "3.2.45" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz", - "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.45", - "@vue/compiler-dom": "3.2.45", - "@vue/compiler-ssr": "3.2.45", - "@vue/reactivity-transform": "3.2.45", - "@vue/shared": "3.2.45", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz", - "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==", - "dev": true, - "dependencies": { - "@vue/compiler-dom": "3.2.45", - "@vue/shared": "3.2.45" - } - }, - "node_modules/@vue/reactivity": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.45.tgz", - "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==", - "dev": true, - "dependencies": { - "@vue/shared": "3.2.45" - } - }, - "node_modules/@vue/reactivity-transform": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz", - "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.45", - "@vue/shared": "3.2.45", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.45.tgz", - "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==", - "dev": true, - "dependencies": { - "@vue/reactivity": "3.2.45", - "@vue/shared": "3.2.45" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz", - "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==", - "dev": true, - "dependencies": { - "@vue/runtime-core": "3.2.45", - "@vue/shared": "3.2.45", - "csstype": "^2.6.8" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.45.tgz", - "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==", - "dev": true, - "dependencies": { - "@vue/compiler-ssr": "3.2.45", - "@vue/shared": "3.2.45" - }, - "peerDependencies": { - "vue": "3.2.45" - } - }, - "node_modules/@vue/shared": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz", - "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==", - "dev": true - }, "node_modules/a11y-dialog": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/a11y-dialog/-/a11y-dialog-4.0.0.tgz", @@ -847,23 +713,6 @@ "node": ">= 6.0.0" } }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/airbnb-prop-types": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz", @@ -940,6 +789,7 @@ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true, + "optional": true, "engines": { "node": ">=0.4.2" } @@ -1083,28 +933,12 @@ "node": ">=4" } }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, "node_modules/archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, - "node_modules/are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1649,16 +1483,8 @@ "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "peer": true }, "node_modules/asn1.js": { "version": "4.10.1", @@ -1681,15 +1507,6 @@ "util": "0.10.3" } }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/assert/node_modules/inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", @@ -1762,15 +1579,6 @@ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, - "node_modules/async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -1789,12 +1597,6 @@ "node": ">= 0.10" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -1807,21 +1609,6 @@ "node": ">= 4.5.0" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -2967,15 +2754,6 @@ "node": ">= 0.4.0" } }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/beeper": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", @@ -3046,18 +2824,6 @@ "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", "dev": true }, - "node_modules/block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "dependencies": { - "inherits": "~2.0.0" - }, - "engines": { - "node": "0.4 || >=0.5.8" - } - }, "node_modules/bluebird": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", @@ -3837,12 +3603,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, "node_modules/center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", @@ -4270,18 +4030,6 @@ "node": ">=0.10.0" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -4382,12 +4130,6 @@ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, "node_modules/consolidate": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", @@ -4468,14 +4210,11 @@ } }, "node_modules/core-js": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.0.tgz", - "integrity": "sha512-W2VYNB0nwQQE7tKS7HzXd7r2y/y2SVJl4ga6oH/dnaLFzM0o2lB2P3zCkWj5Wc/zyMYjtgd5Hmhk0ObkQFZOIA==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "peer": true }, "node_modules/core-util-is": { "version": "1.0.2", @@ -4531,6 +4270,7 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, "dependencies": { "node-fetch": "2.6.7" } @@ -4664,12 +4404,6 @@ "node": ">=8.0.0" } }, - "node_modules/csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", - "dev": true - }, "node_modules/currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -4707,18 +4441,6 @@ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/datatables.net": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.11.3.tgz", @@ -4755,12 +4477,19 @@ } }, "node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/debug-fabulous": { @@ -4774,6 +4503,15 @@ "object-assign": "4.X" } }, + "node_modules/debug-fabulous/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -4938,21 +4676,6 @@ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", "dev": true }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -5165,17 +4888,18 @@ } }, "node_modules/draft-js": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.11.7.tgz", - "integrity": "sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg==", + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.10.5.tgz", + "integrity": "sha512-LE6jSCV9nkPhfVX2ggcRLA4FKs6zWq9ceuO/88BpXdNCS7mjRTgs0NsV6piUCJX9YxMsB9An33wnkMmU2sD2Zg==", + "peer": true, "dependencies": { - "fbjs": "^2.0.0", + "fbjs": "^0.8.15", "immutable": "~3.7.4", - "object-assign": "^4.1.1" + "object-assign": "^4.1.0" }, "peerDependencies": { - "react": ">=0.14.0", - "react-dom": ">=0.14.0" + "react": "^0.14.0 || ^15.0.0-rc || ^16.0.0-rc || ^16.0.0", + "react-dom": "^0.14.0 || ^15.0.0-rc || ^16.0.0-rc || ^16.0.0" } }, "node_modules/draft-js-plugins-editor": { @@ -5266,16 +4990,6 @@ "object.defaults": "^1.1.0" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -5359,6 +5073,27 @@ "node": ">= 0.8" } }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "peer": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "peer": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -6574,23 +6309,6 @@ "node": ">=6" } }, - "node_modules/eslint/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/eslint/node_modules/globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -6725,12 +6443,6 @@ "node": ">=4.0" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -7189,23 +6901,6 @@ "@types/yauzl": "^2.9.1" } }, - "node_modules/extract-zip/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/extract-zip/node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -7221,15 +6916,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, "node_modules/falafel": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz", @@ -7316,25 +7002,20 @@ } }, "node_modules/fbjs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-2.0.0.tgz", - "integrity": "sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==", + "version": "0.8.18", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.18.tgz", + "integrity": "sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==", + "peer": true, "dependencies": { - "core-js": "^3.6.4", - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", "loose-envify": "^1.0.0", "object-assign": "^4.1.0", "promise": "^7.1.1", "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" + "ua-parser-js": "^0.7.30" } }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -7599,6 +7280,15 @@ "node": ">=4.0" } }, + "node_modules/follow-redirects/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -7626,35 +7316,12 @@ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", "dev": true }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/fork-stream": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/fork-stream/-/fork-stream-0.0.4.tgz", "integrity": "sha1-24Sfznf2cIpfjzhq5TOgkHtUrnA=", "dev": true }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/formatio": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", @@ -8454,21 +8121,6 @@ "license": "ISC", "optional": true }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, "node_modules/fullcalendar": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/fullcalendar/-/fullcalendar-3.3.1.tgz", @@ -8511,60 +8163,6 @@ "integrity": "sha512-zKXyzksTeaCSw5wIX79iCA40YAa6CJMJgNg9wdkU/ERBrIdPSimPICYiLp65lRbSBqtiHql/HZfS2DyI/AH6tQ==", "dev": true }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "dependencies": { - "globule": "^1.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", @@ -8640,15 +8238,6 @@ "node": ">=0.10.0" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/glob": { "version": "7.1.5", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", @@ -8820,32 +8409,6 @@ "node": ">=4" } }, - "node_modules/globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", - "dev": true, - "dependencies": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/globule/node_modules/minimatch": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", - "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/glogg": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", @@ -9120,31 +8683,29 @@ } }, "node_modules/gulp-sass": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.1.0.tgz", - "integrity": "sha512-xIiwp9nkBLcJDpmYHbEHdoWZv+j+WtYaKD6Zil/67F3nrAaZtWYN5mDwerdo7EvcdBenSAj7Xb2hx2DqURLGdA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.1.0.tgz", + "integrity": "sha512-7VT0uaF+VZCmkNBglfe1b34bxn/AfcssquLKVDYnCDJ3xNBaW7cUuI3p3BQmoKcoKFrs9jdzUxyb+u+NGfL4OQ==", "dev": true, "dependencies": { - "chalk": "^2.3.0", - "lodash": "^4.17.11", - "node-sass": "^4.8.3", + "lodash.clonedeep": "^4.5.0", + "picocolors": "^1.0.0", "plugin-error": "^1.0.1", - "replace-ext": "^1.0.0", - "strip-ansi": "^4.0.0", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" + "replace-ext": "^2.0.0", + "strip-ansi": "^6.0.1", + "vinyl-sourcemaps-apply": "^0.2.1" }, "engines": { - "node": ">=6" + "node": ">=12" } }, "node_modules/gulp-sass/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/gulp-sass/node_modules/plugin-error": { @@ -9162,16 +8723,25 @@ "node": ">= 0.10" } }, + "node_modules/gulp-sass/node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/gulp-sass/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/gulp-sourcemaps": { @@ -9487,29 +9057,6 @@ "object-assign": "^4.0.1" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -9621,12 +9168,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -9936,21 +9477,6 @@ "node": ">=8.0.0" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -9970,23 +9496,6 @@ "node": ">= 6" } }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/icicle": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/icicle/-/icicle-0.1.3.tgz", @@ -10052,18 +9561,6 @@ "node": ">=0.8.19" } }, - "node_modules/in-publish": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", - "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", - "dev": true, - "bin": { - "in-install": "in-install.js", - "in-publish": "in-publish.js", - "not-in-install": "not-in-install.js", - "not-in-publish": "not-in-publish.js" - } - }, "node_modules/indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -10698,7 +10195,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -10729,12 +10225,6 @@ "node": ">= 0.4" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, "node_modules/is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -10815,11 +10305,25 @@ "node": ">=0.10.0" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "node_modules/isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", + "peer": true, + "dependencies": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "node_modules/isomorphic-fetch/node_modules/node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "peer": true, + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } }, "node_modules/istanbul": { "version": "0.4.5", @@ -11080,16 +10584,6 @@ "node": ">=6" } }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/istanbul-lib-source-maps/node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -11325,12 +10819,6 @@ "integrity": "sha1-/0qP0Zb5/iihf9d6LaV5wVp4pgY=", "deprecated": "Use npm i inputmask instead" }, - "node_modules/js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true - }, "node_modules/js-string-escape": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", @@ -11358,12 +10846,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -11388,12 +10870,6 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -11414,12 +10890,6 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, "node_modules/json5": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", @@ -11478,21 +10948,6 @@ "node": "*" } }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "node_modules/jsx-ast-utils": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", @@ -12215,6 +11670,12 @@ "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", "dev": true }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, "node_modules/lodash.escape": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", @@ -12341,16 +11802,6 @@ "node": ">=6.0" } }, - "node_modules/log4js/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/loglevelnext": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz", @@ -12428,15 +11879,6 @@ "es5-ext": "~0.10.2" } }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, "node_modules/make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -13179,7 +12621,8 @@ "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true + "dev": true, + "optional": true }, "node_modules/nanoid": { "version": "3.3.4", @@ -13298,6 +12741,7 @@ "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -13313,41 +12757,6 @@ } } }, - "node_modules/node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "dependencies": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -13455,91 +12864,6 @@ "node": ">=0.10.0" } }, - "node_modules/node-sass": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", - "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "2.2.5", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "bin": { - "node-sass": "bin/node-sass" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-sass/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-sass/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-sass/node_modules/cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "node_modules/node-sass/node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-sass/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -13600,18 +12924,6 @@ "node": ">=4" } }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, "node_modules/nswatch": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/nswatch/-/nswatch-0.2.0.tgz", @@ -13942,15 +13254,6 @@ "node": "*" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -14486,16 +13789,6 @@ "node": ">=0.10.0" } }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "node_modules/outpipe": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", @@ -15226,6 +14519,7 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "peer": true, "dependencies": { "asap": "~2.0.3" } @@ -15383,23 +14677,6 @@ "node": ">=14.1.0" } }, - "node_modules/puppeteer-core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/puppeteer-core/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -15479,15 +14756,6 @@ "node": ">=0.9" } }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -15979,57 +15247,6 @@ "node": ">= 0.10" } }, - "node_modules/request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/request/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "dependencies": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -16241,8 +15458,7 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/samsam": { "version": "1.1.2", @@ -16275,154 +15491,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/sass-graph": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", - "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - }, - "bin": { - "sassgraph": "bin/sassgraph" - } - }, - "node_modules/sass-graph/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/sass-graph/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/sass-graph/node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/sass-graph/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/sass-graph/node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sass-graph/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/sass-graph/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sass-graph/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sass-graph/node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/sass-graph/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sass-graph/node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "node_modules/sass-graph/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/sass-graph/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -16457,28 +15525,6 @@ "integrity": "sha512-HBQpeZVAYETbNk0DAmi+X4hdTQMk5WRa/Udez9o8yC8GcRiPDgBxyEdV9g9Su/TWOuUeVfVGfNcyboEyzkte4Q==", "dev": true }, - "node_modules/scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "dependencies": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - } - }, - "node_modules/scss-tokenizer/node_modules/source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -17116,13 +16162,6 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true - }, "node_modules/sparkles": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", @@ -17181,31 +16220,6 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", @@ -17264,15 +16278,6 @@ "node": ">= 0.6" } }, - "node_modules/stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, "node_modules/stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", @@ -17357,6 +16362,15 @@ "node": ">=6.0" } }, + "node_modules/streamroller/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -17897,18 +16911,6 @@ "node": ">=0.6" } }, - "node_modules/tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "deprecated": "This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.", - "dev": true, - "dependencies": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -18282,7 +17284,8 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true }, "node_modules/trim-newlines": { "version": "1.0.0", @@ -18302,15 +17305,6 @@ "node": ">=0.10.0" } }, - "node_modules/true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "dependencies": { - "glob": "^7.1.2" - } - }, "node_modules/tryer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", @@ -18364,12 +17358,6 @@ "node": "*" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, "node_modules/type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", @@ -18424,9 +17412,19 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "node_modules/ua-parser-js": { - "version": "0.7.24", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.24.tgz", - "integrity": "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==", + "version": "0.7.33", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz", + "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], "engines": { "node": "*" } @@ -18951,20 +17949,6 @@ "node": ">= 0.8" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/vinyl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", @@ -19097,44 +18081,9 @@ } }, "node_modules/vue": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.45.tgz", - "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==", - "dev": true, - "dependencies": { - "@vue/compiler-dom": "3.2.45", - "@vue/compiler-sfc": "3.2.45", - "@vue/runtime-dom": "3.2.45", - "@vue/server-renderer": "3.2.45", - "@vue/shared": "3.2.45" - } - }, - "node_modules/vue-2": { - "name": "vue", - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", - "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", - "dev": true, - "dependencies": { - "@vue/compiler-sfc": "2.7.14", - "csstype": "^3.1.0" - } - }, - "node_modules/vue-2/node_modules/@vue/compiler-sfc": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", - "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.18.4", - "postcss": "^8.4.14", - "source-map": "^0.6.1" - } - }, - "node_modules/vue-2/node_modules/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz", + "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==", "dev": true }, "node_modules/walker": { @@ -19357,7 +18306,8 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true }, "node_modules/webpack": { "version": "3.12.0", @@ -19863,6 +18813,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -19975,58 +18926,6 @@ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", "dev": true }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", @@ -20394,15 +19293,6 @@ "source-map": "^0.5.0" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -20529,17 +19419,6 @@ "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } } }, "@babel/types": { @@ -20788,115 +19667,6 @@ "@types/node": "*" } }, - "@vue/compiler-core": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz", - "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==", - "dev": true, - "requires": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.45", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-dom": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz", - "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==", - "dev": true, - "requires": { - "@vue/compiler-core": "3.2.45", - "@vue/shared": "3.2.45" - } - }, - "@vue/compiler-sfc": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz", - "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==", - "dev": true, - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.45", - "@vue/compiler-dom": "3.2.45", - "@vue/compiler-ssr": "3.2.45", - "@vue/reactivity-transform": "3.2.45", - "@vue/shared": "3.2.45", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-ssr": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz", - "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==", - "dev": true, - "requires": { - "@vue/compiler-dom": "3.2.45", - "@vue/shared": "3.2.45" - } - }, - "@vue/reactivity": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.45.tgz", - "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==", - "dev": true, - "requires": { - "@vue/shared": "3.2.45" - } - }, - "@vue/reactivity-transform": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz", - "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.45", - "@vue/shared": "3.2.45", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "@vue/runtime-core": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.45.tgz", - "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==", - "dev": true, - "requires": { - "@vue/reactivity": "3.2.45", - "@vue/shared": "3.2.45" - } - }, - "@vue/runtime-dom": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz", - "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==", - "dev": true, - "requires": { - "@vue/runtime-core": "3.2.45", - "@vue/shared": "3.2.45", - "csstype": "^2.6.8" - } - }, - "@vue/server-renderer": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.45.tgz", - "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==", - "dev": true, - "requires": { - "@vue/compiler-ssr": "3.2.45", - "@vue/shared": "3.2.45" - } - }, - "@vue/shared": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz", - "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==", - "dev": true - }, "a11y-dialog": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/a11y-dialog/-/a11y-dialog-4.0.0.tgz", @@ -21001,17 +19771,6 @@ "dev": true, "requires": { "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } } }, "airbnb-prop-types": { @@ -21076,7 +19835,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true + "dev": true, + "optional": true }, "ansi-colors": { "version": "1.1.0", @@ -21180,28 +19940,12 @@ "default-require-extensions": "^2.0.0" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -21602,16 +20346,8 @@ "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "peer": true }, "asn1.js": { "version": "4.10.1", @@ -21651,12 +20387,6 @@ } } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -21702,12 +20432,6 @@ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -21723,30 +20447,12 @@ "async-done": "^1.2.2" } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -22814,15 +21520,6 @@ "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "beeper": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", @@ -22878,15 +21575,6 @@ "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", "dev": true }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, "bluebird": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", @@ -23566,12 +22254,6 @@ "rsvp": "^4.8.4" } }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, "center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", @@ -23938,15 +22620,6 @@ } } }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -24043,12 +22716,6 @@ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, "consolidate": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", @@ -24117,9 +22784,10 @@ } }, "core-js": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.0.tgz", - "integrity": "sha512-W2VYNB0nwQQE7tKS7HzXd7r2y/y2SVJl4ga6oH/dnaLFzM0o2lB2P3zCkWj5Wc/zyMYjtgd5Hmhk0ObkQFZOIA==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==", + "peer": true }, "core-util-is": { "version": "1.0.2", @@ -24175,6 +22843,7 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, "requires": { "node-fetch": "2.6.7" } @@ -24289,12 +22958,6 @@ "css-tree": "1.0.0-alpha.37" } }, - "csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", - "dev": true - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -24329,15 +22992,6 @@ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "datatables.net": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.11.3.tgz", @@ -24368,11 +23022,11 @@ "dev": true }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "debug-fabulous": { @@ -24384,6 +23038,17 @@ "debug": "3.X", "memoizee": "0.4.X", "object-assign": "4.X" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, "decamelize": { @@ -24515,18 +23180,6 @@ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", "dev": true }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -24710,13 +23363,14 @@ } }, "draft-js": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.11.7.tgz", - "integrity": "sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg==", + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.10.5.tgz", + "integrity": "sha512-LE6jSCV9nkPhfVX2ggcRLA4FKs6zWq9ceuO/88BpXdNCS7mjRTgs0NsV6piUCJX9YxMsB9An33wnkMmU2sD2Zg==", + "peer": true, "requires": { - "fbjs": "^2.0.0", + "fbjs": "^0.8.15", "immutable": "~3.7.4", - "object-assign": "^4.1.1" + "object-assign": "^4.1.0" } }, "draft-js-plugins-editor": { @@ -24791,16 +23445,6 @@ "object.defaults": "^1.1.0" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -24872,6 +23516,26 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "peer": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "peer": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -25343,15 +24007,6 @@ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -25965,12 +24620,6 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -26360,15 +25009,6 @@ "yauzl": "^2.10.0" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -26380,12 +25020,6 @@ } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, "falafel": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz", @@ -26462,25 +25096,20 @@ } }, "fbjs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-2.0.0.tgz", - "integrity": "sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==", + "version": "0.8.18", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.18.tgz", + "integrity": "sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==", + "peer": true, "requires": { - "core-js": "^3.6.4", - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", "loose-envify": "^1.0.0", "object-assign": "^4.1.0", "promise": "^7.1.1", "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" + "ua-parser-js": "^0.7.30" } }, - "fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -26696,6 +25325,17 @@ "dev": true, "requires": { "debug": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, "for-in": { @@ -26719,29 +25359,12 @@ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", "dev": true }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, "fork-stream": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/fork-stream/-/fork-stream-0.0.4.tgz", "integrity": "sha1-24Sfznf2cIpfjzhq5TOgkHtUrnA=", "dev": true }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "formatio": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", @@ -27368,18 +25991,6 @@ } } }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, "fullcalendar": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/fullcalendar/-/fullcalendar-3.3.1.tgz", @@ -27419,53 +26030,6 @@ "integrity": "sha512-zKXyzksTeaCSw5wIX79iCA40YAa6CJMJgNg9wdkU/ERBrIdPSimPICYiLp65lRbSBqtiHql/HZfS2DyI/AH6tQ==", "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "^1.0.0" - } - }, "get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", @@ -27522,15 +26086,6 @@ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "glob": { "version": "7.1.5", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", @@ -27673,28 +26228,6 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, - "globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - }, - "dependencies": { - "minimatch": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", - "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, "glogg": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", @@ -27957,25 +26490,23 @@ } }, "gulp-sass": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.1.0.tgz", - "integrity": "sha512-xIiwp9nkBLcJDpmYHbEHdoWZv+j+WtYaKD6Zil/67F3nrAaZtWYN5mDwerdo7EvcdBenSAj7Xb2hx2DqURLGdA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.1.0.tgz", + "integrity": "sha512-7VT0uaF+VZCmkNBglfe1b34bxn/AfcssquLKVDYnCDJ3xNBaW7cUuI3p3BQmoKcoKFrs9jdzUxyb+u+NGfL4OQ==", "dev": true, "requires": { - "chalk": "^2.3.0", - "lodash": "^4.17.11", - "node-sass": "^4.8.3", + "lodash.clonedeep": "^4.5.0", + "picocolors": "^1.0.0", "plugin-error": "^1.0.1", - "replace-ext": "^1.0.0", - "strip-ansi": "^4.0.0", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" + "replace-ext": "^2.0.0", + "strip-ansi": "^6.0.1", + "vinyl-sourcemaps-apply": "^0.2.1" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "plugin-error": { @@ -27990,13 +26521,19 @@ "extend-shallow": "^3.0.2" } }, + "replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true + }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.1" } } } @@ -28232,22 +26769,6 @@ } } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -28333,12 +26854,6 @@ } } }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -28597,17 +27112,6 @@ "requires-port": "^1.0.0" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -28622,17 +27126,6 @@ "requires": { "agent-base": "6", "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } } }, "icicle": { @@ -28682,12 +27175,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "in-publish": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", - "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", - "dev": true - }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -29176,8 +27663,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-string": { "version": "1.0.4", @@ -29199,12 +27685,6 @@ "has-symbols": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -29267,11 +27747,27 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", + "peer": true, + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "peer": true, + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } + } }, "istanbul": { "version": "0.4.5", @@ -29545,15 +28041,6 @@ "source-map": "^0.6.1" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -29689,12 +28176,6 @@ "resolved": "https://registry.npmjs.org/jquery.inputmask/-/jquery.inputmask-3.3.4.tgz", "integrity": "sha1-/0qP0Zb5/iihf9d6LaV5wVp4pgY=" }, - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true - }, "js-string-escape": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", @@ -29716,12 +28197,6 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -29740,12 +28215,6 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -29766,12 +28235,6 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, "json5": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", @@ -29812,18 +28275,6 @@ "through": ">=2.2.7 <3" } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "jsx-ast-utils": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", @@ -30396,6 +28847,12 @@ "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", "dev": true }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, "lodash.escape": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", @@ -30518,17 +28975,6 @@ "flatted": "^2.0.0", "rfdc": "^1.1.4", "streamroller": "^1.0.6" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } } }, "loglevelnext": { @@ -30596,15 +29042,6 @@ "es5-ext": "~0.10.2" } }, - "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -31233,7 +29670,8 @@ "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true + "dev": true, + "optional": true }, "nanoid": { "version": "3.3.4", @@ -31330,36 +29768,9 @@ "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "dev": true, "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } + "whatwg-url": "^5.0.0" } }, "node-int64": { @@ -31464,74 +29875,6 @@ "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", "dev": true }, - "node-sass": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", - "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", - "dev": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "2.2.5", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -31580,18 +29923,6 @@ "path-key": "^2.0.0" } }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, "nswatch": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/nswatch/-/nswatch-0.2.0.tgz", @@ -31852,12 +30183,6 @@ "resolved": "https://registry.npmjs.org/numeral/-/numeral-1.5.6.tgz", "integrity": "sha1-ODHbloRRuc9q/5v5WSXx7443sz8=" }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -32266,16 +30591,6 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "outpipe": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", @@ -32839,6 +31154,7 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "peer": true, "requires": { "asap": "~2.0.3" } @@ -32985,15 +31301,6 @@ "ws": "8.9.0" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -33044,12 +31351,6 @@ "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -33447,52 +31748,6 @@ "remove-trailing-separator": "^1.1.0" } }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - } - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -33664,8 +31919,7 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "samsam": { "version": "1.1.2", @@ -33690,132 +31944,6 @@ "walker": "~1.0.5" } }, - "sass-graph": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", - "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -33847,27 +31975,6 @@ "integrity": "sha512-HBQpeZVAYETbNk0DAmi+X4hdTQMk5WRa/Udez9o8yC8GcRiPDgBxyEdV9g9Su/TWOuUeVfVGfNcyboEyzkte4Q==", "dev": true }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -34430,12 +32537,6 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, "sparkles": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", @@ -34488,23 +32589,6 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, "stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", @@ -34550,15 +32634,6 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, "stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", @@ -34637,6 +32712,17 @@ "debug": "^3.2.6", "fs-extra": "^7.0.1", "lodash": "^4.17.14" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, "string_decoder": { @@ -35052,17 +33138,6 @@ "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==", "dev": true }, - "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, "tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -35363,7 +33438,8 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true }, "trim-newlines": { "version": "1.0.0", @@ -35377,15 +33453,6 @@ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "requires": { - "glob": "^7.1.2" - } - }, "tryer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", @@ -35435,12 +33502,6 @@ "safe-buffer": "^5.0.1" } }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, "type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", @@ -35483,9 +33544,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "ua-parser-js": { - "version": "0.7.24", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.24.tgz", - "integrity": "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==" + "version": "0.7.33", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz", + "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==" }, "uglify-js": { "version": "3.6.7", @@ -35908,17 +33969,6 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "vinyl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", @@ -36034,46 +34084,10 @@ "dev": true }, "vue": { - "version": "3.2.45", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.45.tgz", - "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==", - "dev": true, - "requires": { - "@vue/compiler-dom": "3.2.45", - "@vue/compiler-sfc": "3.2.45", - "@vue/runtime-dom": "3.2.45", - "@vue/server-renderer": "3.2.45", - "@vue/shared": "3.2.45" - } - }, - "vue-2": { - "version": "npm:vue@2.7.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", - "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", - "dev": true, - "requires": { - "@vue/compiler-sfc": "2.7.14", - "csstype": "^3.1.0" - }, - "dependencies": { - "@vue/compiler-sfc": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", - "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", - "dev": true, - "requires": { - "@babel/parser": "^7.18.4", - "postcss": "^8.4.14", - "source-map": "^0.6.1" - } - }, - "csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", - "dev": true - } - } + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz", + "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==", + "dev": true }, "walker": { "version": "1.0.7", @@ -36249,7 +34263,8 @@ "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true }, "webpack": { "version": "3.12.0", @@ -36656,6 +34671,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -36734,48 +34750,6 @@ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", "dev": true }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", diff --git a/package.json b/package.json index de97be8b79..17190da20a 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,8 @@ "d3": "3.5.5", "datatables.net": "^1.11.3", "datatables.net-responsive": "^2.2.7", - "debug": "^3.2.6", + "debug": "^4.3.4", "dompurify": "^2.2.7", - "draft-js": "^0.11.7", "draftail": "^1.4.1", "es6-weak-map": "2.0.1", "eventemitter2": "0.4.14", @@ -90,7 +89,7 @@ "eslint-plugin-import": "^2.24.2", "eslint-plugin-react": "^7.26.1", "fs": "0.0.1-security", - "gulp": "^4.0.0", + "gulp": "^4.0.2", "gulp-clean": "^0.4.0", "gulp-clean-css": "^4.0.0", "gulp-consolidate": "^0.2.0", @@ -99,7 +98,7 @@ "gulp-purgecss": "^4.0.3", "gulp-rename": "^1.2.2", "gulp-rev": "^9.0.0", - "gulp-sass": "^4.1.0", + "gulp-sass": "^5.1.0", "gulp-sourcemaps": "^2.6.5", "gulp-svgmin": "^2.1.0", "gulp-uglify": "3.0.1", @@ -130,8 +129,7 @@ "underscore": "^1.13.1", "urijs": "^1.19.1", "vinyl-buffer": "^1.0.1", - "vue": "^3.2.45", - "vue-2": "npm:vue@^2.7.14", + "vue": "^2.6.11", "watchify": "^3.11.1", "webpack": "^3.12.0", "webpack-bundle-analyzer": "^3.3.2", @@ -150,8 +148,8 @@ }, "browserslist": "last 2 versions, > 1%, IE 10", "engines": { - "node": "14.13.0", - "npm": "7.24.0" + "node": "18.13.0", + "npm": "8.19.3" }, "license": "CC0-1.0" } From 18359393cdd9bd0b494570a4242500184477ec87 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Thu, 2 Feb 2023 15:23:36 -0500 Subject: [PATCH 07/53] Duplicating the work of the Node upgrade --- package-lock.json | 329 +++++++++++++++++++++++++++++++++++++++++----- package.json | 1 + 2 files changed, 296 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index cf560d3e8e..62b5eea001 100644 --- a/package-lock.json +++ b/package-lock.json @@ -110,6 +110,7 @@ "nswatch": "0.2.0", "promise-polyfill": "^8.1.3", "puppeteer": "^18.2.1", + "sass": "^1.58.0", "scrollmonitor": "^1.2.3", "sinon": "^1.17.2", "sinon-chai": "^2.8.0", @@ -8299,9 +8300,9 @@ } }, "node_modules/glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" @@ -14152,12 +14153,15 @@ "dev": true }, "node_modules/picomatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.0.tgz", - "integrity": "sha512-uhnEDzAbrcJ8R3g2fANnSuXZMBtkpSjxTTgn2LeSiQlfmq72enQJWdQllXW24MBLYnA1SBD2vfvx2o0Zw3Ielw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pify": { @@ -15491,6 +15495,170 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/sass": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.0.tgz", + "integrity": "sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/sass/node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sass/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/sass/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sass/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/sass/node_modules/immutable": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.2.tgz", + "integrity": "sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==", + "dev": true + }, + "node_modules/sass/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sass/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/sass/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/sass/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -18277,19 +18445,6 @@ "node": ">=8.10.0" } }, - "node_modules/watchpack/node_modules/readdirp/node_modules/picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/watchpack/node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -26137,9 +26292,9 @@ } }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -30887,9 +31042,9 @@ "dev": true }, "picomatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.0.tgz", - "integrity": "sha512-uhnEDzAbrcJ8R3g2fANnSuXZMBtkpSjxTTgn2LeSiQlfmq72enQJWdQllXW24MBLYnA1SBD2vfvx2o0Zw3Ielw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { @@ -31944,6 +32099,121 @@ "walker": "~1.0.5" } }, + "sass": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.0.tgz", + "integrity": "sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "immutable": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.2.tgz", + "integrity": "sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -34227,15 +34497,6 @@ "optional": true, "requires": { "picomatch": "^2.2.1" - }, - "dependencies": { - "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", - "dev": true, - "optional": true - } } }, "to-regex-range": { diff --git a/package.json b/package.json index 17190da20a..81ef370296 100644 --- a/package.json +++ b/package.json @@ -122,6 +122,7 @@ "nswatch": "0.2.0", "promise-polyfill": "^8.1.3", "puppeteer": "^18.2.1", + "sass": "^1.58.0", "scrollmonitor": "^1.2.3", "sinon": "^1.17.2", "sinon-chai": "^2.8.0", From 6daae61f81398af4c5ab996f068762952908034b Mon Sep 17 00:00:00 2001 From: R Fultz Date: Thu, 9 Feb 2023 11:50:50 -0500 Subject: [PATCH 08/53] Create .button--plus style rules --- fec/fec/static/scss/components/_buttons.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fec/fec/static/scss/components/_buttons.scss b/fec/fec/static/scss/components/_buttons.scss index 673026eb0f..fe76f089a1 100644 --- a/fec/fec/static/scss/components/_buttons.scss +++ b/fec/fec/static/scss/components/_buttons.scss @@ -582,3 +582,8 @@ } } +.button--plus { + @include u-icon-bg($plus, $inverse); + background-position: u(1rem) 50%; + padding-left: u(4rem); +} From c8c0dbcb42b726a720bf92face81ca571eb0f3f8 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Thu, 9 Feb 2023 11:51:36 -0500 Subject: [PATCH 09/53] Node upgrade steps --- fec/fec/static/scss/components/_calendar.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fec/fec/static/scss/components/_calendar.scss b/fec/fec/static/scss/components/_calendar.scss index c57d462114..b5ce756c19 100644 --- a/fec/fec/static/scss/components/_calendar.scss +++ b/fec/fec/static/scss/components/_calendar.scss @@ -88,7 +88,7 @@ } .fc-state-active.button--alt { - @extend .button--alt.is-active; + @extend .button--alt, .is-active; } .fc-right { From 4fbb283c5b7c13798db63aa184b612af716ce1b9 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Thu, 9 Feb 2023 11:52:11 -0500 Subject: [PATCH 10/53] Create .i-check-circle and i-question-circle icons --- fec/fec/static/scss/components/_cards.scss | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/fec/fec/static/scss/components/_cards.scss b/fec/fec/static/scss/components/_cards.scss index 38b4a8602b..e1bec4a6d6 100644 --- a/fec/fec/static/scss/components/_cards.scss +++ b/fec/fec/static/scss/components/_cards.scss @@ -553,6 +553,17 @@ background-color: $primary; background-size: 50%; } + &.i-check-circle { + @include u-icon-bg($check-circle, $federal-blue); + // background-color: $inverse; + background-size: 80%; + } + &.i-question-circle { + @include u-icon-bg($question-circle, $federal-blue); + // background-color: $inverse; + background-size: 80%; + } + } } From 31e0eb5a474bf7ddbba143f194b6f615416e302b Mon Sep 17 00:00:00 2001 From: R Fultz Date: Thu, 9 Feb 2023 11:52:34 -0500 Subject: [PATCH 11/53] Add style rules for t-caps and t-unbold --- fec/fec/static/scss/components/_type-styles.scss | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fec/fec/static/scss/components/_type-styles.scss b/fec/fec/static/scss/components/_type-styles.scss index b13da66be7..a8f344c30f 100644 --- a/fec/fec/static/scss/components/_type-styles.scss +++ b/fec/fec/static/scss/components/_type-styles.scss @@ -70,6 +70,10 @@ display: inline; } +.t-caps { + text-transform: uppercase; +} + .t-sans { font-family: $sans-serif; letter-spacing: -0.3px; @@ -86,6 +90,9 @@ .t-bold { font-weight: bold; } +.t-unbold { + font-weight: initial; +} .t-underline { text-decoration: underline; From 9f59e45911dda99f58612d05389af52787d2fb9e Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 8 Mar 2023 11:03:59 -0500 Subject: [PATCH 12/53] Add checkmark contact-item --- fec/fec/static/scss/components/_contact-items.scss | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fec/fec/static/scss/components/_contact-items.scss b/fec/fec/static/scss/components/_contact-items.scss index 026d33eaa4..07bb024d22 100644 --- a/fec/fec/static/scss/components/_contact-items.scss +++ b/fec/fec/static/scss/components/_contact-items.scss @@ -60,6 +60,12 @@ padding-top: u(1rem); } +.contact-item--check { + &::before { + @include u-icon-circle($check-circle, $inverse, $primary, 3.4rem); + } +} + .contact-item--phone { &::before { @include u-icon-circle($telephone-circle, $inverse, $primary, 3.4rem); From 38782697ff063b79d2456144df4812bf024d2072 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 8 Mar 2023 11:04:46 -0500 Subject: [PATCH 13/53] Contact - enable app on contact page --- fec/home/templates/home/contact_page.html | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) mode change 100644 => 100755 fec/home/templates/home/contact_page.html diff --git a/fec/home/templates/home/contact_page.html b/fec/home/templates/home/contact_page.html old mode 100644 new mode 100755 index c003f499bf..13dfccac80 --- a/fec/home/templates/home/contact_page.html +++ b/fec/home/templates/home/contact_page.html @@ -1,6 +1,6 @@ {% extends "base.html" %} {% load wagtailcore_tags %} -{% load static %} +{% load static filters %} {% block body_class %}template-{{ self.get_verbose_name | slugify }}{% endblock %} {% block content %} @@ -20,6 +20,12 @@

{{ self.title }}

{% if settings.FEATURES.contact_app %} {# feature flag for whether we show the Vue contact app… #} +
PUT ALT, DEFAULT CONTENT HERE
+ {% else %} {# …or show the content from Wagtail #} {{ self.info_message }}

{{ self.services_title }}

@@ -38,3 +44,8 @@

{{ self.services_title }}

{% endblock %} + +{% block extra_js %} +{# Override this in templates to add extra javascript #} + +{% endblock %} From f7e961ab0b86b13a32b601a7441357baf7952d64 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 8 Mar 2023 11:07:09 -0500 Subject: [PATCH 14/53] Contact - prepping for PR --- fec/fec/static/js/pages/contact-app.js | 1531 +++++++++++++++++ .../static/scss/components/_contact-app.scss | 468 +++++ 2 files changed, 1999 insertions(+) create mode 100755 fec/fec/static/js/pages/contact-app.js create mode 100755 fec/fec/static/scss/components/_contact-app.scss diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js new file mode 100755 index 0000000000..c4c76f3433 --- /dev/null +++ b/fec/fec/static/js/pages/contact-app.js @@ -0,0 +1,1531 @@ +/** + * + * Note: k${'e'}y is because the Git commit security tools don't like when we use words like k-e-y, + * even if we're using it to sort things and (because we're in a Vue template string), + * we can't exempt the whole line + */ + +import Vue from 'vue/dist/vue.esm.js'; + +Vue.config.devtools = true; + +/** + * The Vue component + */ +Vue.component('Recaptcha', { + props: { + recaptchaShow: { + type: Boolean, + required: true + }, + recaptchaApproved: { + type: Boolean, + required: true + } + }, + mounted: function() { + this.$emit('recaptcha-event', 'mounted'); + }, + template: ` +
+ +
` +}); + +/** + * The Vue component + */ +Vue.component('BottomNav', { + props: { + canNavBack: { + type: Number, + required: true + }, + canNavNext: { + type: Number, + required: true + }, + canNavRestart: { + type: Number, + required: true + }, + canNavSubmit: { + type: Number, + required: true + } + }, + template: ` +
+ + + + +
+ `, + methods: { + bottomNavClass: function(buttonID) { + return { + // style classes: + 'button--back': buttonID == 'Back', + 'button--alt': buttonID == 'Back', + 'button--cta': buttonID == 'Next' || buttonID == 'Submit', + 'button--go': buttonID == 'Next' || buttonID == 'Submit', + 'button--standard': buttonID == 'Restart', + // behavior classes: (set by looking at frames' canNavBack, canNavNext, canNavRestart, and canNavSubmit values) + // full appearance and action are when canNavBack, canNavNext, etc === 2 + 'is-disabled': this[`canNav${buttonID}`] === 1, + hidden: this[`canNav${buttonID}`] === 0 + }; + }, + handleClick: function(id, e) { + this.$emit('handle-click', id, e); + } + } +}); + +/** + * The Vue component + */ +Vue.component('FramesHolder', { + props: { + currentFrameNum: { + type: Number, + required: true + }, + frames: { + type: Array, + required: true + }, + framesHistory: { + type: Array, + required: true + }, + teams: { + type: Array, + required: true + }, + selectedTeam: { + type: String, + required: true + }, + selectedTopic: { + type: String, + required: true + }, + userCity: { + type: String + }, + userCommittee: { + type: String + }, + userEmail: { + type: String + }, + userPubs: { + type: Array, + default: [] + }, + userMessage: { + type: String + }, + userName: { + type: String + }, + userState: { + type: String + }, + userStreet1: { + type: String + }, + userStreet2: { + type: String + }, + userSubject: { + type: String + }, + userZip: { + type: String + } + }, + watch: { + currentFrameNum: function(newVal, oldVal) { + if (newVal != oldVal) this.updateNavOptions(); + } + }, + computed: { + framesHeight: function() { + let newHeight = 575; + // If we're not on the teamFields page (where publications are selected) + // just return the default heigth and be done + if (this.frames[this.currentFrameNum].frameId != 'userFields') return newHeight; + // Otherwise, we have enough room for two publications, so count 38 more pixels for every row after that + else newHeight += (this.userPubs.length - Math.min(0, 2)) * 38; + + return newHeight; + }, + teamInfo: function() { + return this.teams[this.selectedTeam]; + }, + userPubs_neverEmpty: function() { + // return userPubs or a default array + const emptyPubsArray = [{ label: '', qty: 0 }]; + return this.userPubs && this.userPubs.length > 0 ? this.userPubs : emptyPubsArray; + } + }, + template: ` +
+
+ + + + + +
+
+ `, //gitleaks:allow + methods: { + canAddAnotherPublication: function() { + // If there are no userPubs so far, easy, can't add another for every possible publication, nope, can't add another + if (this.userPubs.length == this.teamInfo.fields.subject_pubs.length) return false; + + for (let i = 0; i < this.userPubs.length; i++) { + const pub = this.userPubs[i]; + const hasLabel = pub.label && pub.label != ''; + const hasQty = pub.qty && pub.qty >= 1; + + if (!hasLabel || !hasQty) return false; + } + return true; + }, + /** + * @property {object} d - the data object from frames.options + */ + getRadioLabel: function(d) { + let toReturn = ''; + if (d.label) toReturn = d.label; + else if (d.vModel == 'selectedTeam') { + const thisTeam = this.teams[d.value]; + toReturn = thisTeam.name; + if (thisTeam.nameDisclaimer) toReturn += ` ${thisTeam.nameDisclaimer}`; + } + return toReturn; + }, + frameClass: function(frameIndex, additionalClasses) { + // this.validateCurrentFrame(); // THIS CAUSES AN INFINITE LOOP + + return [ + 'frame', + { + previous: frameIndex < this.currentFrameNum, + current: frameIndex == this.currentFrameNum, + 'next off-screen': frameIndex > this.currentFrameNum + }, + additionalClasses + // { + // viewed: this.frames[navIndex].viewed || navIndex == 0, + // current: navIndex == this.currentFrameNum, + // hidden: navIndex == 0 || navIndex == this.frames.length - 1, + // 'hide-before': navIndex < 2 || navIndex >= this.frames.length - 1 + // } + ]; + }, + handleButtonClick: function(id, e) { + this.$emit('button-click', id, e); + this.updateNavOptions(); + }, + handleRadioClick: function(opt, e) { + this.$emit('radio-click', opt, e); + this.updateNavOptions(); + }, + handleFieldChange: function(e) { + // Handles when selects change and inputs lose focus + console.log('Frames.handleFieldChange(e): ', e); // eslint-disable-line no-console + this.validateField(e.target); + this.$emit('field-change', e); + this.validateCurrentFrame(); + }, + handleFieldInput: function(e) { + // Triggers when someone types into an input + console.log('handleFieldInput(', e, ')'); // eslint-disable-line no-console + // If the field was previously invalid, do a validation now + if (e.target.getAttribute('aria-invalid') == 'true') this.validateField(e.target); + }, + radioValue: function(opt) { + if (opt.teamSubject) return opt.teamSubject; + else if (opt.value) return opt.value; + else return opt.label || 'ERROR'; + }, + updateNavOptions: function(obj) { + console.log('FramesHolder.updateNavOptions(obj): ', obj ? obj : 'null'); // eslint-disable-line no-console + // console.log(' currentFrameNum: ', this.currentFrameNum); // eslint-disable-line no-console + // console.log(' history: ', this.framesHistory); // eslint-disable-line no-console + + const currentFrame = this.frames[this.currentFrameNum]; + + let newCanNext = 1; + // Set the default to showing the button, but not active + // If there's no next frame, don't show 'Next' ever + if (!currentFrame.nextFrame) newCanNext = 0; + // If required fields don't have values, stay here + else if (obj && obj.needValues === true) newCanNext = 1; + // Otherwise, if the fields are all validated, cool, let's let them move forward + else if (obj && obj.valid === true) newCanNext = 2; + // Of if they've already been to the next frame, they can go forward to it + else if (this.framesHistory.indexOf(this.currentFrameNum) < this.framesHistory.length - 1) newCanNext = 2; + + let newCanBack = 2; + + let newCanRestart = 0; + + let newCanSubmit = 0; + + // For the frames that can submit + console.log('currentFrame: ', currentFrame); // eslint-disable-line no-console + // console.log('currentFrame.nextFrame.includes: submit: ', currentFrame.nextFrame.includes('submit')); // eslint-disable-line no-console + + // If we're currently showing the team info + if (currentFrame.frameId == 'teamFields') { + // If there are no other fields to show, we're done + if (this.teams[this.selectedTeam].fields.length === 0) { + newCanNext = 0; + newCanRestart = 2; + newCanSubmit = 0; + // If they've chosen publications, they can't submit but maybe they can Next + } else if (this.userSubject == 'publications') { + newCanNext = this.canAddAnotherPublication() ? 2 : 1; + newCanSubmit = 0; + // If they haven't chosen publications, they can't Next but they might submit + } else { + newCanNext = 0; + newCanSubmit = obj && obj.valid && !obj.needValues ? 2 : 1; + } + } else if (currentFrame.frameId == 'uspsFields') { + newCanNext = obj && obj.valid && !obj.needValues ? 2 : 1; + newCanRestart = 0; + newCanSubmit = 0; + } else if (currentFrame.frameId == 'orderReview') { + newCanNext = 0; + newCanRestart = 0; + newCanSubmit = this.recaptchaValidated ? 2 : 1; + } + + this.$parent.updateNavOptions( + { Back: newCanBack, Next: newCanNext, Restart: newCanRestart, Submit: newCanSubmit } + ); + + }, + validateField: function(el) { + el.setAttribute('aria-invalid', !el.checkValidity()); + }, + validateCurrentFrame: function() { + const currentFrameEl = document.querySelector('.frame.current'); + let frameFormElements; + + if (!currentFrameEl) { + console.log('NO CURRENT FRAME'); // eslint-disable-line no-console + return; + } else { + frameFormElements = currentFrameEl.querySelectorAll('input, select, textarea'); + console.log(' frameFormElements: ', frameFormElements); // eslint-disable-line no-console + } + + if (frameFormElements) { + // debugger; + let allAreValid = true; + let needValues = false; + + frameFormElements.forEach(el => { + console.log('el.value: ', el.value); // eslint-disable-line no-console + if ((!el.value || el.value == '') && el.required) needValues = true; + + if (el.id.indexOf('u_pub') === 0 && this.userPubs.length < 1) allAreValid = false; + else if (!el.checkValidity()) { + // console.log(' el: ', el); // eslint-disable-line no-console + // console.log(' .checkValidity(): ', el.checkValidity()); // eslint-disable-line no-console + allAreValid = false; + } + }); + this.updateNavOptions({ valid: allAreValid, needValues: needValues }); + } + }, + pubOptionDisabledState: function(requestedLabel) { + // console.log('pubOptionDisabledState(pubLabel): ', requestedLabel); // eslint-disable-line no-console + + let toReturn = false; + this.userPubs.forEach(pub => { + // console.log(` comparing '${pub.label}' and '${requestedLabel}'`); // eslint-disable-line no-console + if (pub.label === requestedLabel) toReturn = true; + }); + + return toReturn; + } + }, + data: function() { + return { + states: [ + { label: 'Alabama', abbrev: 'AL' }, { label: 'Alaska', abbrev: 'AK' }, + { label: 'American Samoa', abbrev: 'AS' }, { label: 'Arizona', abbrev: 'AZ' }, + { label: 'Arkansas', abbrev: 'AR' }, { label: 'California', abbrev: 'CA' }, + { label: 'Colorado', abbrev: 'CO' }, { label: 'Connecticut', abbrev: 'CT' }, + { label: 'Delaware', abbrev: 'DE' }, { label: 'District of Columbia', abbrev: 'DC' }, + { label: 'Florida', abbrev: 'FL' }, { label: 'Georgia', abbrev: 'GA' }, + { label: 'Guam', abbrev: 'GU' }, { label: 'Hawaii', abbrev: 'HI' }, + { label: 'Idaho', abbrev: 'ID' }, { label: 'Illinois', abbrev: 'IL' }, + { label: 'Indiana', abbrev: 'IN' }, { label: 'Iowa', abbrev: 'IA' }, + { label: 'Kansas', abbrev: 'KS' }, { label: 'Kentucky', abbrev: 'KY' }, + { label: 'Louisiana', abbrev: 'LA' }, { label: 'Maine', abbrev: 'ME' }, + { label: 'Maryland', abbrev: 'MD' }, { label: 'Massachusetts', abbrev: 'MA' }, + { label: 'Michigan', abbrev: 'MI' }, { label: 'Minnesota', abbrev: 'MN' }, + { label: 'Mississippi', abbrev: 'MS' }, { label: 'Missouri', abbrev: 'MO' }, + { label: 'Montana', abbrev: 'MT' }, { label: 'Nebraska', abbrev: 'NE' }, + { label: 'Nevada', abbrev: 'NV' }, { label: 'New Hampshire', abbrev: 'NH' }, + { label: 'New Jersey', abbrev: 'NJ' }, { label: 'New Mexico', abbrev: 'NM' }, + { label: 'New York', abbrev: 'NY' }, { label: 'North Carolina', abbrev: 'NC' }, + { label: 'North Dakota', abbrev: 'ND' }, { label: 'Northern Mariana Islands', abbrev: 'MP' }, + { label: 'Ohio', abbrev: 'OH' }, { label: 'Oklahoma', abbrev: 'OK' }, + { label: 'Oregon', abbrev: 'OR' }, { label: 'Pennsylvania', abbrev: 'PA' }, + { label: 'Puerto Rico', abbrev: 'PR' }, { label: 'Rhode Island', abbrev: 'RI' }, + { label: 'South Carolina', abbrev: 'SC' }, { label: 'South Dakota', abbrev: 'SD' }, + { label: 'Tennessee', abbrev: 'TN' }, { label: 'Texas', abbrev: 'TX' }, + { label: 'U.S. Virgin Islands', abbrev: 'VI' }, { label: 'Utah', abbrev: 'UT' }, + { label: 'Vermont', abbrev: 'VT' }, { label: 'Virginia', abbrev: 'VA' }, + { label: 'Washington', abbrev: 'WA' }, { label: 'West Virginia', abbrev: 'WV' }, + { label: 'Wisconsin', abbrev: 'WI' }, { label: 'Wyoming', abbrev: 'WY' } + ] + }; + } +}); + +/** + * The main data for the contact app + * \xa0 is the JavaScript escape for   + */ +new Vue({ + el: '#gov-fec-contact-app', + template: ` +
+ + + + +
+ `, + data: function() { + return { + canNavBack: 0, + canNavNext: 0, + canNavSubmit: 0, + canNavRestart: 0, + currentFrameNum: 0, //int + framesHistory: [0], // ex: [0, 1, 3, 4, 6] + selectedTeam: '', + selectedTopic: '', + u_city: '', + u_committee: '', + u_email: '', + u_pubs: [], + u_message: '', + u_name: '', + u_state: '', + u_street1: '', + u_street2: '', + u_subject: '', + u_zip: '', + teams: { + congress: { + name: 'Congressional Affairs', + summary: 'Congressional Affairs responds to inquries from other agencies and Congressional representatives', + formPrompt: 'Contact Congressional Affairs via telephone.', + phoneExt: '1006', + ePrefix: 'congress', // (@fec.gov) + fields: [] + }, + efo: { + name: 'Electronic Filing Office', + summary: `The Electronic Filing Office helps individuals, candidates, committees and other + entities with FECFile passwords and other technical FECFile issues. EFO also provides limited + support for third-party filing software.`, + formPrompt: 'Contact the Electronic Filing Office via telephone or send a message.', + phoneMenu: 4, // 1-800-424-9530, menu option # + phoneExt: 1307, // 202-694-#### + // ePrefix: 'press', // (@fec.gov) + success: 'The Electronic Filing Office will get back to you within 2-4 hours.', + successMore: { + type: 'a', + label: 'Get help with passwords >', + href: 'https://www.fec.gov' + }, + fields: { + email: true, + name: true, + committeeId: true, + subject: [ + { label: 'Get password help', + email: 'eFiletechsupport' }, + { label: 'Answer a question about setting up FECFile', + email: 'eFiletechsupport' }, + { label: 'Answer a question about 3rd-party filing software', + email: 'eFiletechsupport' }, + { label: 'Help troubleshoot a problem with FECFile', + email: 'eFiletechsupport' } + ], + message: true + } + }, + fec: { + summary: `We're here to help! The Federal Election Commission is an independent regulatory agency + that was created to protect the integrity of the campaign finance process.`, + formPrompt: 'Contact us via telephone or send a message.', + phoneMenu: 6, + phoneExt: 1100, + fields: { + email: true, + message: true + } + }, + info: { + name: 'Information Division', + summary: `The Information Division answers questions about campaign finance law, conducts training on the law, + processes requests for public speakers and provides copies of FEC forms and publications.`, + formPrompt: 'Contact the Information Division via telephone or send them a message.', + phoneMenu: 6, + phoneExt: 1100, + success: 'The Information Division will get back to you within 5 business days.', + fields: { + email: true, + subject: [ + { label: 'A question about campaign finance law', + email: '@info' }, + { label: 'A question about an upcoming training', + email: 'conferences' }, + { label: 'Help me sign up for an upcoming training', + email: 'conferences' }, + { label: 'Send me a copy of an FEC form or guide', + value: 'publications', + email: 'info' }, + { label: 'Help me schedule a group speaker', + email: 'speaker' }, + { label: 'Something else', + email: 'info' } + ], + message: true, + subject_pubs: [ + { label: 'Congressional candidates and their committees campaign guide', qty: 0 }, + { label: 'Political party committees campaign guide', qty: 0 }, + { label: 'Corporations and labor organizations campaign guide', qty: 0 }, + { label: 'Nonconnected committees campaign guide', qty: 0 }, + { label: 'Combined Federal/State Disclosure and Election Directory', qty: 0 }, + { label: 'Form 1: Statement of Organization', qty: 0 }, + { label: 'Form 2: Statement of Candidacy', qty: 0 }, + { label: 'Form 3: Report of Receipts and Disbursements (House and Senate candidates)', qty: 0 }, + { label: 'Form 3X: Report of Receipts and Disbursements (PACs and political party committees)', qty: 0 } + ] + } + }, + oig: { + name: 'Office of Inspector General', + summary: `The Office of Inspector General handles reports of fraud, waste and abuse at the FEC + and related inquiries.`, + formPrompt: 'Contact the Office of Inspector General through their hotline portal to submit a complaint.', + externalLinks: [ + { + label: 'Submit a complaint', + href: 'https://fecoig.ains.com/', + icon: 'i-question-circle' + } + ], + fields: [] + }, + press: { + name: 'Press Office', + nameDisclaimer: '(reporters or journalists only)', + summary: 'The Press Office responds to questions from the media.', + formPrompt: 'Contact the Press Office via telephone, email, or send them a message.', + phoneMenu: 1, // 1-800-424-9530, menu option # + phoneExt: 1220, // 202-694-#### + ePrefix: 'press', // (@fec.gov) + success: 'The Press Office will get back to you within 24 hours.', + fields: { + email: true, + subject: [ + { label: 'Assist with a media query', + email: 'press' }, + { label: 'Answer a question about a Commission meeting', + email: 'press' } + ], + message: true + } + }, + rad: { + name: 'Reports Analysis Division', + summary: `The Reports Analysis Division (RAD) helps registered committees and their representatives + complete and file their campaign finance reports.`, + formPrompt: `If you are a representative of a registered committee, contact RAD via telephone or use the Contact your Analyst form.`, + phoneMenu: 5, + phoneExt: 1130, + externalLinks: [ + { + type: 'a', + label: 'Use the Contact your Analyst form', + href: '/help-candidates-and-committees/question-rad/' + } + ], + fields: [] + }, + records: { + name: 'Public Records', + summary: `Public Records helps individuals research FEC data and other public documents.`, + formPrompt: 'Contact Public Records via telephone or send a message.', + phoneMenu: 2, // 1-800-424-9530, menu option # + phoneExt: 1120, // 202-694-#### + // ePrefix: 'press', // (@fec.gov) + success: 'The Office of Public Records will get back to you within 2 business days.', + fields: { + email: true, + subject: [ + { label: 'Help research public documents', + email: 'pubrec' }, + { label: 'Help research campaign finance data', + email: 'pubrec' } + ], + message: true + } + } + }, + frames: [ + { + frameId: 'intro', + title: '', + class: 'intro', + autoAdvance: false, + nextFrame: true, + content: [ + { + type: 'card', + class: '', + icon: 'i-check-circle', + label: `I know who I need to contact for help ›`, + actionId: 'start-know-who' + }, + { + type: 'card', + class: '', + icon: 'i-question-circle', + label: `I need help, but I'm not sure who to contact ›`, + actionId: 'start-help-with-who' + } + ], + viewed: true + }, + { + frameId: 'teams', + title: `I need help from the…`, + autoAdvance: true, + nextFrame: 'teamFields', + options: [ + { + type: 'radio', + vModel: 'selectedTeam', + value: 'info' + }, + { + type: 'radio', + vModel: 'selectedTeam', + value: 'rad' + }, + { + type: 'radio', + vModel: 'selectedTeam', + value: 'efo' + }, + { + type: 'radio', + vModel: 'selectedTeam', + value: 'records' + }, + { + type: 'radio', + vModel: 'selectedTeam', + value: 'press' + }, + { + type: 'radio', + vModel: 'selectedTeam', + value: 'congress' + }, + { + type: 'radio', + vModel: 'selectedTeam', + value: 'oig' + } + ], + viewed: false + }, + { + frameId: 'topics1', + title: 'I need help with…', + autoAdvance: true, + nextFrame: 'teamFields', + options: [ + { + type: 'radio', + vModel: 'selectedTopic', + value: 'press', + label: 'Making a press inquiry (reporters or journalists only)', + teamSubject: 'Assist with a media query' + }, + { + type: 'radio', + vModel: 'selectedTopic', + value: 'records', + label: 'Accessing campaign finance records and other public documents', + teamSubject: '' + }, + { + type: 'radio', + vModel: 'selectedTopic', + value: 'info', + label: 'Getting a copy of an FEC form or publication', + teamSubject: 'publications' + }, + { + type: 'radio', + vModel: 'selectedTopic', + value: 'efo', + label: 'Technical issues with filing my electric report or password help', + teamSubject: '' + }, + { + type: 'radio', + vModel: 'selectedTopic', + value: 'rad', + label: 'Filing reports, RFAIs, amendments or specific transactions', + teamSubject: '' + }, + { + type: 'radio', + vModel: 'selectedTopic', + value: 'info', + label: 'Questions about campaign finance law, including committee registration and reporting requirements, and contribution limits and prohibitions', + teamSubject: 'A question about campaign finance law' + }, + { + type: 'radio', + vModel: 'selectedTopic', + value: 'NEXT', + label: 'None of these' + } + ], + viewed: false + }, + { + frameId: 'topics2', + title: '', + autoAdvance: true, + nextFrame: 'teamFields', + options: [ + { + type: 'radio', + vModel: 'selectedTopic', + value: 'info', + label: 'An upcoming FEC training program', + teamSubject: 'A question about an upcoming training' + }, + { + type: 'radio', + vModel: 'selectedTopic', + value: 'press', + label: 'An upcoming Commission meeting', + teamSubject: 'Answer a question about a Commission meeting' + }, + { + type: 'radio', + vModel: 'selectedTopic', + value: 'info', + label: 'A request for a speaker', + teamSubject: 'Help me schedule a group speaker' + }, + { + type: 'radio', + vModel: 'selectedTopic', + value: 'congress', + label: 'Congressional and intergovernmental communications', + teamSubject: '' + }, + { + type: 'radio', + vModel: 'selectedTopic', + value: 'oig', + label: 'Reporting or inquiring about waste, fraud and abuse at the FEC', + teamSubject: '' + }, + { + type: 'radio', + vModel: 'selectedTopic', + value: 'fec', + label: 'Something else', + teamSubject: '' + } + ], + viewed: false + }, + { + frameId: 'teamFields', + title: 'Team Fields Frame', + autoAdvance: false, + nextFrame: ['submit', 'forms'], + fields: [], + viewed: false + }, + { + frameId: 'uspsFields', + title: 'USPS Fields Frame', + autoAdvance: false, + nextFrame: 'orderReview', + fields: [], + viewed: false + }, + { + frameId: 'orderReview', + title: '', + class: '', + autoAdvance: false, + nextFrame: 'confirmSend', + fields: [] + }, + { + frameId: 'confirmSend', + title: 'Confirm Send', + class: '', + autoAdvance: false, + nextFrame: 'acknowledgeSent' + }, + { + frameId: 'acknowledgeSent', + title: 'Acknowledge Sent', + class: '', + autoAdvance: false, + nextFrame: false + }, + { + frameId: 'outro', + title: '', + class: 'outro', + autoAdvance: false, + feedback: [ + { + type: 'value', + label: 'Total Receipts and Disbursements', + class: 'summary', + content: `` + }, + { + type: 'value', + label: 'Total Estimated Fine', + class: 'summary total-fine', + content: `` + }, + { + type: 'p', + content: + 'This is an estimated administrative fine based on the information you provided and may not reflect the actual fine amount assessed by the Commission. Your committee will be notified if the Commission assesses a fine for a late or non-filed\xa0report.' + } + ], + viewed: false + } + ] + }; + }, + mounted: function() { + // loadRecaptcha(); + // this.id = this.$el.getAttribute('data-id'); + // Add the transition listeners so frames disappear while out of sight + this.startWatchingTransitions(); + }, + computed: { + recaptchaShow: function() { + return true; + // let toReturn = false; + + // if (this.frames[this.currentFrameNum].frameId == 'teamFields' && this.u_subject != 'publications') + // toReturn = true; + // else if (this.frames[this.currentFrameNum].frameId == 'orderReview') + // toReturn = true; + + // return toReturn; + }, + recaptchaValidated: function() { + return false; + } + }, + methods: { + getFrameNumById: function(requestedID) { + for (let i = 0; i < this.frames.length; i++) { + if (this.frames[i].frameId == requestedID) return i; + } + return 0; + }, + handleButtonClick: function(buttonType, e) { + // console.log('app.handleButtonClick(buttonType, e): ', buttonType, e); // eslint-disable-line no-console + e.preventDefault(); + if (buttonType == 'start-know-who') this.jumpToFrame('teams'); + else if (buttonType == 'start-help-with-who') this.jumpToFrame('topics1'); + else if (buttonType == 'Next') this.jumpToFrame('next'); + else if (buttonType == 'Back') this.jumpToFrame('back'); + else if (buttonType == 'Restart') this.restart(); + else if (buttonType == 'Submit') { + console.log('NEED TO SUBMIT'); // eslint-disable-line no-console + } + else if (buttonType == 'pubs-remove') { + const theIndex = parseInt(e.target.dataset.index); + const newUPubs = [...this.u_pubs]; + newUPubs[theIndex] = { label: '', qty: 0 }; + + newUPubs.splice(theIndex, 1); + this.u_pubs = [...newUPubs]; + + } else if (buttonType == 'pubs-add') { + this.u_pubs.push({ label: '', qty: 0 }); + } + }, + handleFieldChange: function(e) { + console.log('App.handleFieldChange(e): ', e); // eslint-disable-line no-console + e.preventDefault(); + + // Which variable? + const varToChange = e.target.id; + + // If a publication order label was changed, + if (e.target.id.indexOf('u_pub_label') === 0) { + const theIndex = parseInt(e.target.dataset.index); + const newUPubs = [...this.u_pubs]; + + if (newUPubs[theIndex]) + newUPubs[theIndex].label = e.target.value; + else + newUPubs[theIndex] = { label: e.target.value, qty: 0 }; + + this.u_pubs = [...newUPubs]; + + // If a publication order quantity was changed, + } else if (e.target.id.indexOf('u_pub_qty') === 0) { + const theIndex = parseInt(e.target.dataset.index); + const newUPubs = [...this.u_pubs]; + + if (newUPubs[theIndex]) + newUPubs[theIndex].qty = e.target.value; + else + newUPubs[theIndex] = { label: '', qty: e.target.value }; + + this.u_pubs = [...newUPubs]; + + // Else if the changed var exists + // && we have a new value for it + // && it's not already that value, + } else if (e.target.value && this[varToChange] != e.target.value) { + // If the field has data-uppercase="true", cap the value + this[varToChange] = e.target.dataset.uppercase == 'true' ? e.target.value.toUpperCase() : e.target.value; + } else { + console.log('ELSE FOR SOME REASON'); // eslint-disable-line no-console + console.log(' e.target.value: ', e.target.value); // eslint-disable-line no-console + console.log(' this[varToChange]: ', this[varToChange]); // eslint-disable-line no-console + } + }, + handleRecaptchaEvent: function(e, f) { + console.log('App.handleRecaptchaEvent(e): ', e, f); //eslint-disable-line no-console + }, + jumpToFrame: function(frameId) { + let nextFrameNum = 0; + if (frameId == 'next' || frameId == 'back') { + + // Where are we in the history right now? + let currentHistPos = this.framesHistory.indexOf(this.currentFrameNum); + let histPosToTest = frameId == 'next' ? currentHistPos + 1 : currentHistPos - 1; + + // If we can go to a next frame, do so + if (this.framesHistory[histPosToTest]) { + console.log(' if'); // eslint-disable-line no-console + nextFrameNum = this.framesHistory[histPosToTest]; + } + // If they've chosen 'publications', let's go to the uspsfields page + else if (this.u_subject == 'publications') { + console.log(' else'); // eslint-disable-line no-console + nextFrameNum = this.getFrameNumById('uspsFields'); + + // If we're ordering publications but we're on the uspsFields frame, first, let's review + if (this.frames[this.currentFrameNum].frameId == 'uspsFields') { + nextFrameNum = this.getFrameNumById('orderReview'); + } + } + + } else if (typeof frameId == 'number') { + nextFrameNum = frameId; + + } else if (typeof frameId == 'string') { + for (let i = 0; i < this.frames.length; i++) { + if (frameId == this.frames[i].frameId) { + nextFrameNum = i; + break; + } + } + } + + if (!this.framesHistory) this.framesHistory = [0]; + + if (!this.framesHistory.includes(nextFrameNum)) { + this.framesHistory.push(nextFrameNum); + } + + this.currentFrameNum = nextFrameNum; + }, + handleRadioClick: function(q) { + + if (q.vModel == 'selectedTeam') { + this.selectedTeam = q.value; + this.jumpToFrame('teamFields'); + + } else if (q.vModel == 'selectedTopic') { + // Set the selected team + this.selectedTeam = q.value; + + // Should we also pre-select the subject? + if (q.teamSubject && q.teamSubject != '') { + try { + const teamSubjects = this.teams[this.selectedTeam].fields.subject; + let newSubject = ''; + for (let i = 0; i < teamSubjects.length; i++) { + const testSub = teamSubjects[i]; + if (testSub.value == q.teamSubject || testSub.label == q.teamSubject) { + newSubject = q.teamSubject; + break; + } + } + if (newSubject != '') this.u_subject = newSubject; + } catch(e) { + console.log(' catch! e: ', e); // eslint-disable-line no-console + } + } else { + console.log(' else'); // eslint-disable-line no-console + } + // Show the frame + this.jumpToFrame('teamFields'); + } + }, + restart: function() { + // reset vars + this.currentFrameNum = 0; + this.framesHistory = [0]; + this.selectedTeam = null; + this.selectedTopic = null; + // Set all the frames to not viewed (for breadcrumbs and Next button) + for (let i = 0; i < this.frames.length; i++) { + this.frames[i].viewed = false; + } + // TODO - clear autoAdvance? + // + // TODO - a better way to reset all the form values? + let theForm = document.querySelector('form.frames'); + theForm.reset(); + }, + updateNavOptions: function(obj) { + // console.log('App.updateNavOptions(obj): ', obj); // eslint-disable-line no-console + this.canNavBack = obj.Back; + this.canNavNext = obj.Next; + this.canNavRestart = obj.Restart; + this.canNavSubmit = obj.Submit; + }, + startWatchingTransitions: function() { + const frames = document.querySelectorAll('.frame'); + + // Add off-screen to all non-intro frames + for (let i = 0; i < frames.length; i++) { + // + if (!frames[i].classList.contains('intro')) { + frames[i].classList.add('off-screen'); + } + + frames[i].addEventListener('transitionstart', function(e) { + if (e.target.classList.contains('frame')) { + e.target.classList.remove('off-screen'); + } + }); + + frames[i].addEventListener('transitionend', function(e) { + if ( + e.target.classList.contains('frame') && + !e.target.classList.contains('current') + ) + e.target.classList.add('off-screen'); + }); + } + } + } +}); diff --git a/fec/fec/static/scss/components/_contact-app.scss b/fec/fec/static/scss/components/_contact-app.scss new file mode 100755 index 0000000000..6166a4365b --- /dev/null +++ b/fec/fec/static/scss/components/_contact-app.scss @@ -0,0 +1,468 @@ +#vue-component { + width: 100%; + max-width: 1024px; +} + +// Vue strips the attributes from its DOM element +#gov-fec-contact-app { + font-family: $sans-serif; + font-size: 1.6rem; + overflow: hidden; + position: relative; + + @include media($med) { + min-height: calc(100% - 5rem); + } + + .frames { + background-color: $inverse; + height: 575px; + display: block; + overflow: hidden; + position: relative; + width: 100%; + transition: height ease-in-out 1s; + } + .frame { + display: block; + float: left; + height: 575px; + left: 100%; + pointer-events: none; + position: absolute; + top: 0; + transition: left .25s, height 1s ease-in-out; + width: 100% !important; + + @include media($med) { + padding-left: 0; + } + + &.previous { + left: -100%; + transition: left .25s; + * { + pointer-events: none; + user-select: none; + } + } + &.next { + * { + pointer-events: none; + user-select: none; + } + } + &.current { + display: block; // (only need to define this because .next.off-screen will jump to transition complete before animation can start) + left: 0; + pointer-events: all; + transition: left .5s; + } + &.intro { + text-align: center; + + @include media($med) { + padding-right: 2em; + } + + div { + margin: 0 auto; + max-width: 80%; + + @include media($med) { + // max-width: 66%; + } + } + .button--cta { + margin-top: 1.2rem; // a little extra space above the button + } + } + &.off-screen * { + display: none; + } + } // end .frame + address { + font-style: normal; + line-height: 1.25em; + } + label { + clear: both; + line-height: 1.25; + + span { // a way to have non-bold inside the bold labels + font-weight: normal; + } + } + button { + &.is-disabled { + pointer-events: none; + cursor: default; + } + &.button--back.button--alt { + background-image: url("data:image/svg+xml;charset=utf8, %3Csvg%20%20fill%3D%27%23212121%27%20width%3D%2212%22%20height%3D%2210%22%20viewBox%3D%220%200%2012%2010%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M.418%203.809L6.652.124a.851.851%200%200%201%201.294.727v7.382a.852.852%200%200%201-1.284.733L.418%205.276a.852.852%200%200%201%200-1.467z%22%2F%3E%3C%2Fsvg%3E"); + } + &.tooltip__trigger { + margin: .5em 0 .5rem 1rem; + position: relative; + } + &.tooltip__trigger + p { + float: left; + display: inline-block; + width: auto; + } + &.hidden { + display: none !important; + } + &.button--close--base { + width: 2.5rem; + height: 2.5rem; + background-size: 100%; + background-position: right 4px; + padding: 0; + } + } + + .fields-wrapper { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; + + .field-wrapper { + + &.col-3 { + margin-right: .5rem; + width: calc(8.33% * 3 - .5rem); + + &:last-child { + margin-right: 0; + } + } + &.col-5 { + margin-right: .5rem; + width: calc(8.33% * 5 - .5rem); + + &:last-child { + margin-right: 0; + } + } + &.col-8 { + width: calc(8.33% * 8 - .5rem); + margin-right: .5rem; + + &:last-child { + margin-right: 0; + } + } + &.col-9 { + width: calc(8.33% * 9 - .5rem); + margin-right: .5rem; + + &:last-child { + margin-right: 0; + } + } + &.col-12 { + width: 100%; + } + } + + + + .col-l { + margin-right: .5rem; + width: calc(55% - .5rem); + } + .col-r { + margin-left: .5rem; + width: calc(45% - .5rem); + } + .col-rl { + width: calc(22.5% - .5rem); + margin-right: .5rem; + } + .col-rr { + width: calc(22.5% - .5rem); + } + + input#u_street1 { + order: 3; + } + label[for="u_street1"] { + order: 1; + } + input#u_street2 { + order: 4; + } + label[for="u_street2"] { + order: 2; + } + + input#u_city { + order: 8; + } + label[for="u_city"] { + order: 5; + } + select#u_state { + order: 9; + } + label[for="u_state"] { + order: 6; + } + input#u_zip { + order: 10; + } + label[for="u_zip"] { + order: 7; + } + + } + + .question-type-block { + position: relative; + display: inline-block; + float: left; + clear: both; + } + + [type=radio]+label { + background-color: transparent; + border-color: $inverse; + float: left; + transition: border-color .5s; + } + [type=radio]+label:hover { + background-color: transparent; + border-color: #aeb0b5; + transition: border-color .5s; + } + [type=radio]:checked+label { + background-color: transparent; + border: 1px solid #aeb0b5; + transition: border-color .5s; + } + [type=number] { + display: inline-block; + float: left; + margin: 0 0 .5rem .25rem; + width: 15rem; + } + [type=number]+label { + display: inline-block; + padding: .4rem .8rem .4rem 1rem; + position: relative; + } + [type=number].indented { + margin-left: 3.5rem; + + &.search__example { + clear: none; + } + } + + span.clear { + clear: both; + display: block; + height: 0px; + margin-bottom: 1rem; + width: 100%; + } + + h4 { + float: left; + margin-top: .5rem; + padding-right: .5rem; + + &.indented { + font-size: 1.4rem; + max-width: 70%; + padding-left: 3.5rem; + padding-top: .5rem; + } + &.subhead { + text-transform: uppercase; + } + + &.search_example { + margin-bottom: 0; + } + } + input.label-headline { + float: left; + clear: both; + } + label { + &.indented { + float: left; + + &.search__example { + clear: none; + padding-top: 1rem; + } + } + &.label-headline { + float: left; + font-size: 1.4rem; + font-weight: bold; + letter-spacing: -0.3px; + margin-top: .2rem; + text-transform: uppercase; + } + } + p { + font-size: 1.4rem; + line-height: 1.25em; + margin-bottom: 1.2rem; + width: 100%; + + &.indented { + clear: both; + float: left; + padding-left: 3.5rem; + max-width: 70%; + + @include media($med) { + max-width: none; + } + } + &.summary { + clear: both; + display: block; + font-size: 1.4rem; + font-weight: 700; + letter-spacing: -0.3px; + line-height: 1.8em; + margin-top: .2rem; + text-transform: uppercase; + + + span { + display: block; + font-size: 2.4rem; + letter-spacing: -0.51px; + } + &.total-fine span { + color: $error; + } + } + } + .contact-item { + display: block; + margin-bottom: 0; + padding-top: .5em; + padding-left: 9.5rem; + + &:before { + height: 1.5em; + margin-left: -2em; + width: 1.5em; + position: absolute; + } + } + .nonbreaking { + display: inline-block; + } + .search__example { + clear: both; + float: left; + margin-top: 0; + } + span.t-note.indented { + margin-left: 3.5rem; + } + + .team-contact-form > *:not(.outdent) { + margin-left: 5rem; + } + + + input, select, textarea { + margin-bottom: 26.25px; // label height + width: 100%; + + & + label.field__message--error { + display: none; + } + + &[aria-invalid="true"] { + border-color: $error !important; + margin-bottom: 0; + + & + label.field__message--error { + display: block; + } + } + } + textarea { + height: 90px; + } + + + .field__message--error { + // borrowed from .filter__message + font-family: $sans-serif; + font-size: u(1.4rem); + padding-bottom: u(1rem); + clear: both; + + // borrowed from .filter__message--error + font-size: u(1.3rem); + color: $error; + } + + .g-recaptcha { + padding-left: 9.5rem; + } + .publications-order-form { + width: 100%; + + col { + width: 14rem; + + &:first-child { + width: auto; + } + &:last-child { + width: 2.5rem; + } + } + + th { + font-size: 1.5rem; + line-height: 1.1em; + } + + td { + padding-bottom: .25rem; + } + + select, [type=number] { + margin-bottom: 0; + width: calc(100% - 0.5rem); + } + } + + .publications-order-summary { + display: flex; + flex-direction: row; + flex-wrap: wrap; + margin: 2rem 0; + + div { + padding: 0 .5rem; + + &:not(:last-child):not(:nth-last-child(2)) { + border-bottom: thin solid lightgrey; + } + + &:nth-child(odd) { + width: 80%; + } + &:nth-child(even) { + width: 20%; + } + } + } + +} From 30e5224f1549791554181d0bf0a7435d125e3f3f Mon Sep 17 00:00:00 2001 From: R Fultz Date: Thu, 16 Mar 2023 15:14:14 -0400 Subject: [PATCH 15/53] Contact/help - overhauled history navigation --- fec/fec/static/js/pages/contact-app.js | 380 ++++++++++++++++--------- 1 file changed, 250 insertions(+), 130 deletions(-) diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js index c4c76f3433..883841573c 100755 --- a/fec/fec/static/js/pages/contact-app.js +++ b/fec/fec/static/js/pages/contact-app.js @@ -100,10 +100,6 @@ Vue.component('FramesHolder', { type: Array, required: true }, - framesHistory: { - type: Array, - required: true - }, teams: { type: Array, required: true @@ -112,7 +108,11 @@ Vue.component('FramesHolder', { type: String, required: true }, - selectedTopic: { + selectedTopic1: { + type: String, + required: true + }, + selectedTopic2: { type: String, required: true }, @@ -154,6 +154,12 @@ Vue.component('FramesHolder', { watch: { currentFrameNum: function(newVal, oldVal) { if (newVal != oldVal) this.updateNavOptions(); + }, + selectedTopic1: function(newVal, oldVal) { + console.log('changed selectedTopic1 from ', oldVal, ' to ', newVal); + }, + selectedTopic2: function(newVal, oldVal) { + console.log('changed selectedTopic2 from ', oldVal, ' to ', newVal); } }, computed: { @@ -259,7 +265,7 @@ Vue.component('FramesHolder', { @@ -541,6 +541,9 @@ Vue.component('FramesHolder', { @input="handleFieldInput($event)" @change="handleFieldChange($event)" id="u_street1" name="u_street1" type="text" class="col-l" required /> + + + - - + for="u_zip" + class="field__message--error">Provide a ZIP code From 6d9a7829189e930eadf612e17786381737467122 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Tue, 4 Apr 2023 11:42:38 -0400 Subject: [PATCH 39/53] Contact - IR --- fec/fec/static/js/pages/contact-app.js | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js index 29bbf8aa2a..e89f7201d6 100755 --- a/fec/fec/static/js/pages/contact-app.js +++ b/fec/fec/static/js/pages/contact-app.js @@ -864,8 +864,13 @@ Vue.component('FramesHolder', { newCanSubmit = 0; // If we're currently showing the team info } else if (currentFrame.frameId == 'teamFields') { + // If there are no fields to show, we're at a stopping point + if (!this.selectedTeam.fields) { + newCanNext = 0; + newCanRestart = 2; + newCanSubmit = 0; // If there are no other fields to show, we're done - if (this.selectedTeam && this.teams[this.selectedTeam].fields && this.teams[this.selectedTeam].fields.length === 0) { + } else if (this.selectedTeam && this.teams[this.selectedTeam].fields && this.teams[this.selectedTeam].fields.length === 0) { newCanNext = 0; newCanRestart = 2; newCanSubmit = 0; @@ -878,7 +883,8 @@ Vue.component('FramesHolder', { // If they haven't chosen publications, they can't Next but they might submit } else { newCanNext = 0; - newCanSubmit = obj && obj.valid && !obj.needValues ? 2 : 1; + // newCanSubmit = obj && obj.valid && !obj.needValues ? 2 : 1; + newCanSubmit = 2; } } else if (currentFrame.frameId == 'uspsFields') { newCanNext = obj && obj.valid && !obj.needValues ? 2 : 1; @@ -888,7 +894,7 @@ Vue.component('FramesHolder', { // console.log('orderReview! this.recaptchaValidated: ', this.recaptchaValidated); newCanNext = 0; newCanRestart = 0; - newCanSubmit = this.recaptchaValidated ? 2 : 1; + newCanSubmit = 2; //this.recaptchaValidated ? 2 : 1; } else if (currentFrame.frameId == 'acknowledgeSubmission') { newCanBack = 0; newCanNext = 0; @@ -1101,6 +1107,7 @@ new Vue({ formPrompt: 'Contact us via telephone or send a message.', phoneMenu: 6, phoneExt: 1100, + success: 'The FEC will respond within 5 business days', fields: { email: true, message: true @@ -1163,7 +1170,7 @@ new Vue({ name: 'Press Office', nameDisclaimer: '(reporters or journalists only)', summary: 'The Press Office responds to questions from the media.', - formPrompt: 'Contact the Press Office via telephone, email, or send them a message.', + formPrompt: 'Contact the Press Office via telephone, email or send them a message.', phoneMenu: 1, // 1-800-424-9530, menu option # phoneExt: 1220, // 202-694-#### ePrefix: 'press', @@ -1311,7 +1318,7 @@ new Vue({ { type: 'radio', vModel: 'selectedTopic1', - label: 'Technical issues with filing my electric report or password help', + label: 'Technical issues with filing my electronic report or password help', team: 'efo', teamSubject: '' }, @@ -1333,7 +1340,7 @@ new Vue({ type: 'radio', vModel: 'selectedTopic1', value: 'NEXT', - label: 'None of these' + label: 'More options' } ] }, @@ -1430,7 +1437,9 @@ new Vue({ // return false; let toReturn = false; - if (this.frames[this.currentFrameNum].frameId == 'teamFields' && this.u_subject != 'publications') + if(this.selectedTeam && !this.teams[this.selectedTeam].fields) // If there are no fields to show, the + toReturn = false; + else if (this.frames[this.currentFrameNum].frameId == 'teamFields' && this.u_subject != 'publications') toReturn = true; else if (this.frames[this.currentFrameNum].frameId == 'orderReview') toReturn = true; From 7802b697e4b2cdd00b753ac16540717e642108d6 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Tue, 4 Apr 2023 11:42:52 -0400 Subject: [PATCH 40/53] Contact - add more publications --- fec/fec/static/js/pages/contact-app.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js index e89f7201d6..f8eba8db28 100755 --- a/fec/fec/static/js/pages/contact-app.js +++ b/fec/fec/static/js/pages/contact-app.js @@ -1148,7 +1148,12 @@ new Vue({ { label: 'Form 1: Statement of Organization', qty: 1 }, { label: 'Form 2: Statement of Candidacy', qty: 1 }, { label: 'Form 3: Report of Receipts and Disbursements (House and Senate candidates)', qty: 1 }, - { label: 'Form 3X: Report of Receipts and Disbursements (PACs and political party committees)', qty: 1 } + { label: 'Form 3X: Report of Receipts and Disbursements (PACs and political party committees)', qty: 1 }, + { label: 'Presidential packet (forms and guidebook)', qty: 1 }, + { label: 'Congressional packet (forms and guidebook)', qty: 1 }, + { label: 'Party packet (form and guidebook)', qty: 1 }, + { label: 'Nonconnected PAC packet (form and guidebook)', qty: 1 }, + { label: 'Corporate and Labor PAC packet (form and guidebook)', qty: 1 } ] } }, From bc88bad399e1e492da56b22608b4ff69213cf057 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Tue, 4 Apr 2023 11:43:03 -0400 Subject: [PATCH 41/53] Contact - IR --- fec/fec/static/js/pages/contact-app.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js index f8eba8db28..a6edee4093 100755 --- a/fec/fec/static/js/pages/contact-app.js +++ b/fec/fec/static/js/pages/contact-app.js @@ -1062,9 +1062,11 @@ new Vue({ u_zip: '', teams: { congress: { - name: 'Congressional Affairs', - summary: 'Congressional Affairs responds to inquiries from other agencies and Congressional representatives', - formPrompt: 'Contact Congressional Affairs via telephone.', + name: 'Congressional, Legislative and Governmental Affairs', + summary: `Congressional, Legislative and Governmental Affairs responds to inquiries from Congressional staff + and other agencies. It is also responsible for keeping Members of Congress apprised of Commission decisions, + and provides general advice and information about campaign finance laws to lawmakers and their committees.`, + formPrompt: 'Contact Congressional, Legislative and Governmental Affairs via telephone or email.', phoneExt: '1006', ePrefix: 'congress', fields: '' From eacbdc5bc750a0027a57ea91f96035a6fa88dda7 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Tue, 4 Apr 2023 11:43:50 -0400 Subject: [PATCH 42/53] Contact - IR --- .../static/scss/components/_contact-app.scss | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/fec/fec/static/scss/components/_contact-app.scss b/fec/fec/static/scss/components/_contact-app.scss index ff6e2c9234..1243f1b833 100755 --- a/fec/fec/static/scss/components/_contact-app.scss +++ b/fec/fec/static/scss/components/_contact-app.scss @@ -74,14 +74,25 @@ margin-bottom: 0; } } - .card:hover { + .card { cursor: pointer; + border: 2px solid transparent; + transition: border-color .5s; - h3 { - text-decoration: underline; - text-decoration-color: $aqua; - text-decoration-style: dotted; - text-underline-offset: .25em; + &:hover { + border-color: $gray; + transition: border-color .5s; + } + + .card__image__container { + height: 80px; + width: 80px; + + .card__icon { + background-size: 100%; + height: 100%; + width: 100%; + } } } } From 1894d58f839753d6fd4d7bd8928d5563379e44e0 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Tue, 4 Apr 2023 11:44:51 -0400 Subject: [PATCH 43/53] Contact - don't deploy --- tasks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tasks.py b/tasks.py index 4d543bbdf5..99b30cf9c5 100644 --- a/tasks.py +++ b/tasks.py @@ -74,10 +74,10 @@ def _detect_space(repo, branch=None, yes=False): DEPLOY_RULES = ( ('prod', _detect_prod), ('stage', lambda _, branch: branch.startswith('release')), - # ('dev', lambda _, branch: branch == 'develop'), + ('dev', lambda _, branch: branch == 'develop'), # Uncomment below and adjust branch name to deploy desired feature branch to the feature space # ('feature', lambda _, branch: branch == '[BRANCH NAME]'), - ('dev', lambda _, branch: branch == 'feature/5520-contact-form'), + # ('dev', lambda _, branch: branch == 'feature/5520-contact-form'), ) From 45aba7f577aa86da01de507f5d1a7246cd697925 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 5 Apr 2023 08:30:58 -0400 Subject: [PATCH 44/53] Contact - IR --- fec/home/templates/home/contact_page.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fec/home/templates/home/contact_page.html b/fec/home/templates/home/contact_page.html index 85dd49dfb6..82aca46c25 100755 --- a/fec/home/templates/home/contact_page.html +++ b/fec/home/templates/home/contact_page.html @@ -21,7 +21,7 @@

{{ self.title }}

{{ self.info_message }} {% if settings.FEATURES.contact_app %} {# feature flag for whether we show the Vue contact app… #} -

Contact the FEC>

+

Contact the FEC

animation indicating that the contact app is still loading its components
{% else %} {# …or show the content from Wagtail #}

{{ self.services_title }}

From 3ee235bb6a9a6faf5bf80afb7339dd1159222426 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 5 Apr 2023 10:04:47 -0400 Subject: [PATCH 45/53] Contact - validate form on Submit click --- fec/fec/static/js/pages/contact-app.js | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js index a6edee4093..cc6aa05c69 100755 --- a/fec/fec/static/js/pages/contact-app.js +++ b/fec/fec/static/js/pages/contact-app.js @@ -865,7 +865,7 @@ Vue.component('FramesHolder', { // If we're currently showing the team info } else if (currentFrame.frameId == 'teamFields') { // If there are no fields to show, we're at a stopping point - if (!this.selectedTeam.fields) { + if (!this.teams[this.selectedTeam].fields) { newCanNext = 0; newCanRestart = 2; newCanSubmit = 0; @@ -910,12 +910,13 @@ Vue.component('FramesHolder', { validateField: function(el) { el.setAttribute('aria-invalid', !el.checkValidity()); }, - validateCurrentFrame: function() { + validateCurrentFrame: function(forceShowAllErrors) { const currentFrameEl = document.querySelector('.frame.current'); let frameFormElements; if (!currentFrameEl) { console.log('NO CURRENT FRAME'); // eslint-disable-line no-console + this.$emit('form-validation', false); return; } else { frameFormElements = currentFrameEl.querySelectorAll('input, select, textarea'); @@ -933,8 +934,10 @@ Vue.component('FramesHolder', { if (el.id.indexOf('u_pub') === 0 && this.userPubs.length < 1) allAreValid = false; else if (!el.checkValidity()) { allAreValid = false; + if (forceShowAllErrors) this.validateField(el); } }); + this.$emit('form-validation', false); this.updateNavOptions({ valid: allAreValid, needValues: needValues }); } }, @@ -1013,9 +1016,11 @@ new Vue({ :user-street2="u_street2" :user-subject="u_subject" :user-zip="u_zip" + @form-validation="handleFormValidation" @button-click="handleButtonClick" @field-change="handleFieldChange" @radio-click="handleRadioClick" + ref="framesHolder" > Date: Wed, 5 Apr 2023 10:38:33 -0400 Subject: [PATCH 46/53] Contact - update form validation --- fec/fec/static/js/pages/contact-app.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js index cc6aa05c69..e1cac1ea73 100755 --- a/fec/fec/static/js/pages/contact-app.js +++ b/fec/fec/static/js/pages/contact-app.js @@ -937,7 +937,8 @@ Vue.component('FramesHolder', { if (forceShowAllErrors) this.validateField(el); } }); - this.$emit('form-validation', false); + + this.$emit('form-validation', allAreValid && !needValues); this.updateNavOptions({ valid: allAreValid, needValues: needValues }); } }, From 58570b949ce0efb8131e645492e905d4bda1c22c Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 5 Apr 2023 11:16:10 -0400 Subject: [PATCH 47/53] Contact - style tweaks --- .../static/scss/components/_contact-app.scss | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/fec/fec/static/scss/components/_contact-app.scss b/fec/fec/static/scss/components/_contact-app.scss index 1243f1b833..a1c1c622d0 100755 --- a/fec/fec/static/scss/components/_contact-app.scss +++ b/fec/fec/static/scss/components/_contact-app.scss @@ -5,7 +5,6 @@ // Vue strips the attributes from its DOM element #gov-fec-contact-app { - // container-name: widget; font-family: $sans-serif; font-size: 1.6rem; overflow: hidden; @@ -258,7 +257,7 @@ .message { padding: 2rem; - h2:message__title { + h2.message__title { margin-left: 3rem; @include media($med) { @@ -453,7 +452,7 @@ display: block; } } - + } textarea { height: 90px; @@ -625,9 +624,10 @@ .loading-animation { display: inline-block; - width: 8rem; height: 2rem; + margin-top: .25rem; position: relative; + width: 8rem; .icon { content: ""; @@ -670,24 +670,21 @@ $minWidthXL: '860px'; .col-3, &.col-5, &.col-8, &.col-9, &.col-12 { width: 100cqw; } - // .grid.grid--2-wide { - // max-width: 100cqw; - // } } -@container (min-width: $minWidthS) { +@container contactapp (min-width: $minWidthS) { #gov-fec-contact-app.cq-container { .grid.grid--2-wide { max-width: 80cqw; } - .contact-item { - padding-left: 3.5rem; - } + // .contact-item { + // padding-left: 3.5rem; + // } .recaptcha-holder { padding-left: 3rem; } } } -@container (min-width: $minWidthM) { +@container contactapp (min-width: $minWidthM) { #gov-fec-contact-app.cq-container { &.col-3 { width: calc(8.33% * 3 - .5rem); @@ -698,18 +695,21 @@ $minWidthXL: '860px'; } &.col-5 { width: calc(8.33% * 5 - .5rem); + &:not(:last-child) { margin-right: .5rem; } } &.col-8 { width: calc(8.33% * 8 - .5rem); + &:not(:last-child) { margin-right: .5rem; } } &.col-9 { width: calc(8.33% * 9 - .5rem); + &:not(:last-child) { margin-right: .5rem; } @@ -722,14 +722,13 @@ $minWidthXL: '860px'; } } } -@container (min-width: $minWidthL) { +@container contactapp (min-width: $minWidthL) { #gov-fec-contact-app.cq-container { // } } -@container (min-width: $minWidthXL) { +@container contactapp (min-width: $minWidthXL) { #gov-fec-contact-app.cq-container { // } } - From 7e667ddc9f3521840d8b04f52f772a90c47ec765 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 5 Apr 2023 11:16:52 -0400 Subject: [PATCH 48/53] Contact - scroll to show app after submit --- fec/fec/static/js/pages/contact-app.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js index e1cac1ea73..ab9c50e4fb 100755 --- a/fec/fec/static/js/pages/contact-app.js +++ b/fec/fec/static/js/pages/contact-app.js @@ -1811,6 +1811,13 @@ new Vue({ this.currentFrameNum = this.getFrameNumById('acknowledgeSubmission'); // console.log('App.finishSubmission(var1): ', e, submissionBody); this.isSubmitting = false; + // Scroll the page to show the Vue element + this.$el.scrollIntoView({behavior: 'smooth', block: 'center'}); + }, + validateThenNext: function() { + this.$refs.framesHolder.validateCurrentFrame(true); + + if (this.formCanSubmit === true) this.goToFrame('next'); }, validateThenStartSubmission: function() { this.$refs.framesHolder.validateCurrentFrame(true); From dda9b576cadabd394f7437c7ad82fa8d98588967 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 5 Apr 2023 11:18:00 -0400 Subject: [PATCH 49/53] Contact - fix Next functionality --- fec/fec/static/js/pages/contact-app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js index ab9c50e4fb..29f6abf57a 100755 --- a/fec/fec/static/js/pages/contact-app.js +++ b/fec/fec/static/js/pages/contact-app.js @@ -887,7 +887,7 @@ Vue.component('FramesHolder', { newCanSubmit = 2; } } else if (currentFrame.frameId == 'uspsFields') { - newCanNext = obj && obj.valid && !obj.needValues ? 2 : 1; + newCanNext = 2; newCanRestart = 0; newCanSubmit = 0; } else if (currentFrame.frameId == 'orderReview') { @@ -1481,7 +1481,7 @@ new Vue({ e.preventDefault(); if (buttonType == 'start-know-who') this.goToFrame('teams'); else if (buttonType == 'start-help-with-who') this.goToFrame('topics1'); - else if (buttonType == 'Next') this.goToFrame('next'); + else if (buttonType == 'Next') this.validateThenNext(); else if (buttonType == 'Back') this.goToFrame('back'); else if (buttonType == 'Restart') this.restart(); else if (buttonType == 'Submit') this.validateThenStartSubmission(); From 5b8f83c74071ffb4c30bd42dc4dac91ff7c54566 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 5 Apr 2023 11:20:10 -0400 Subject: [PATCH 50/53] Contact - IR cleanup --- fec/fec/static/js/pages/contact-app.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js index 29f6abf57a..d00088afc7 100755 --- a/fec/fec/static/js/pages/contact-app.js +++ b/fec/fec/static/js/pages/contact-app.js @@ -996,7 +996,7 @@ Vue.component('FramesHolder', { new Vue({ el: '#gov-fec-contact-app', template: ` -
+
Date: Wed, 5 Apr 2023 11:26:56 -0400 Subject: [PATCH 51/53] Contact - change from feature flag to Wagtail field --- .../0126_contactpage_show_contact_app.py | 18 ++++++++++++++++++ fec/home/models.py | 19 +++++++++++++++++++ fec/home/templates/home/contact_page.html | 4 ++-- 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 fec/home/migrations/0126_contactpage_show_contact_app.py diff --git a/fec/home/migrations/0126_contactpage_show_contact_app.py b/fec/home/migrations/0126_contactpage_show_contact_app.py new file mode 100644 index 0000000000..9b406d5485 --- /dev/null +++ b/fec/home/migrations/0126_contactpage_show_contact_app.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.18 on 2023-03-28 17:33 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('home', '0125_officepage'), + ] + + operations = [ + migrations.AddField( + model_name='contactpage', + name='show_contact_app', + field=models.BooleanField(default=False, help_text='True: the main column should be the snippet and the contact/help app.\n False: the main column will be the fields after this one.'), + ), + ] diff --git a/fec/home/models.py b/fec/home/models.py index 1d333d9f22..f9e786dc6a 100644 --- a/fec/home/models.py +++ b/fec/home/models.py @@ -15,6 +15,7 @@ from wagtail import blocks from wagtail.admin.panels import ( FieldPanel, + HelpPanel, InlinePanel, MultiFieldPanel, PageChooserPanel, @@ -1224,6 +1225,7 @@ class ContactPage(Page): 'home.EmbedSnippet', required=False, template='blocks/embed-info-message.html', icon='warning')), ], null=True, blank=True) + show_contact_app = models.BooleanField(default=False) services_title = models.TextField() services = StreamField([ ('services', blocks.RichTextBlock()) @@ -1232,6 +1234,23 @@ class ContactPage(Page): content_panels = Page.content_panels + [ StreamFieldPanel('contact_items'), StreamFieldPanel('info_message', heading='Informational message'), + MultiFieldPanel( + [ + FieldPanel( + 'show_contact_app', + heading='Show contact/help app', + ), + HelpPanel( + content='NOTE: Checking this will show the contact/help app in the main column \ + of the site and will not include any content from the fields after this one.
\ + Checked: show the contact/help app, but skip the rest of the content on this \ + page.
\ + Unchecked: show the rest of the content on this page, but not the \ + contact/help app.' + ), + ], + heading='Contact/help app or text content?', + ), FieldPanel('services_title'), StreamFieldPanel('services'), ] diff --git a/fec/home/templates/home/contact_page.html b/fec/home/templates/home/contact_page.html index 82aca46c25..8655a63808 100755 --- a/fec/home/templates/home/contact_page.html +++ b/fec/home/templates/home/contact_page.html @@ -20,8 +20,8 @@

{{ self.title }}

{{ self.info_message }} - {% if settings.FEATURES.contact_app %} {# feature flag for whether we show the Vue contact app… #} -

Contact the FEC

+ {% if self.show_contact_app %} {# feature flag for whether we show the Vue contact app… #} +

Contact the FEC

animation indicating that the contact app is still loading its components
{% else %} {# …or show the content from Wagtail #}

{{ self.services_title }}

From 4f3218c166168fb28233244327aeddadb3cc3b9f Mon Sep 17 00:00:00 2001 From: R Fultz Date: Wed, 5 Apr 2023 11:34:05 -0400 Subject: [PATCH 52/53] Contact - formatting --- fec/fec/static/js/pages/contact-app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js index d00088afc7..2a389c791a 100755 --- a/fec/fec/static/js/pages/contact-app.js +++ b/fec/fec/static/js/pages/contact-app.js @@ -937,7 +937,7 @@ Vue.component('FramesHolder', { if (forceShowAllErrors) this.validateField(el); } }); - + this.$emit('form-validation', allAreValid && !needValues); this.updateNavOptions({ valid: allAreValid, needValues: needValues }); } @@ -1806,7 +1806,7 @@ new Vue({ // console.log('App.finishSubmission(var1): ', e, submissionBody); this.isSubmitting = false; // Scroll the page to show the Vue element - this.$el.scrollIntoView({behavior: 'smooth', block: 'center'}); + this.$el.scrollIntoView({ behavior: 'smooth', block: 'center' }); }, validateThenNext: function() { this.$refs.framesHolder.validateCurrentFrame(true); From 514e8d6a72c3f158e8715c6e11a70a0c25b0f429 Mon Sep 17 00:00:00 2001 From: R Fultz Date: Mon, 17 Apr 2023 14:40:57 -0400 Subject: [PATCH 53/53] Contact app - intercept browser back --- fec/fec/static/js/pages/contact-app.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/fec/fec/static/js/pages/contact-app.js b/fec/fec/static/js/pages/contact-app.js index 2a389c791a..b1f5943716 100755 --- a/fec/fec/static/js/pages/contact-app.js +++ b/fec/fec/static/js/pages/contact-app.js @@ -1445,6 +1445,7 @@ new Vue({ mounted: function() { // Add the transition listeners so frames disappear while out of sight this.startWatchingTransitions(); + window.addEventListener('beforeunload', this.handleBeforeUnload, { capture: true }); }, computed: { recaptchaShow: function() { @@ -1471,6 +1472,28 @@ new Vue({ handleTestingChange(val) { this.TESTSHOULDFAIL = val; }, + /** + * Called on the browser's back button. + * If we're showing the intro, nothing happens; + * otherwise will prompt the user that they will lose changes. + * OK: brower will go to previous page. + * Cancel: the app will do its own 'back' functionality + * @param {BeforeUnloadEvent} e + */ + handleBeforeUnload: function(e) { + if (this.currentFrameNum && this.currentFrameNum > 0) { + e.returnValue = 'Using the browser back button will reset this form'; + this.goToFrame('back'); + + } else { + window.removeEventListener('beforeunload', this.handleBeforeUnload, { capture: true }); + } + }, + /** + * + * @param {string} buttonType + * @param {*} e + */ handleButtonClick: function(buttonType, e) { e.preventDefault(); if (buttonType == 'start-know-who') this.goToFrame('teams');