From e076bb7e6d38a3cac0e1b7fb2959e5d9845cc760 Mon Sep 17 00:00:00 2001 From: Bryan Date: Mon, 1 Nov 2021 08:53:01 -0400 Subject: [PATCH 01/14] css cleanup. --- package-lock.json | 23 +++++++-------- src/assets/scss/components/_buttons.scss | 36 ++---------------------- 2 files changed, 12 insertions(+), 47 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6930e9e05..75d251bec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2440,7 +2440,6 @@ "thread-loader": "^2.1.3", "url-loader": "^2.2.0", "vue-loader": "^15.9.2", - "vue-loader-v16": "npm:vue-loader@^16.1.0", "vue-style-loader": "^4.1.2", "webpack": "^4.0.0", "webpack-bundle-analyzer": "^3.8.0", @@ -2709,7 +2708,6 @@ "merge-source-map": "^1.1.0", "postcss": "^7.0.36", "postcss-selector-parser": "^6.0.2", - "prettier": "^1.18.2", "source-map": "~0.6.1", "vue-template-es2015-compiler": "^1.9.0" }, @@ -4555,7 +4553,6 @@ "dependencies": { "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", @@ -6782,8 +6779,7 @@ "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "optionator": "^0.8.1" }, "bin": { "escodegen": "bin/escodegen.js", @@ -10188,7 +10184,6 @@ "@jest/types": "^24.9.0", "anymatch": "^2.0.0", "fb-watchman": "^2.0.0", - "fsevents": "^1.2.7", "graceful-fs": "^4.1.15", "invariant": "^2.2.4", "jest-serializer": "^24.9.0", @@ -17091,8 +17086,7 @@ "dependencies": { "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" + "neo-async": "^2.5.0" }, "optionalDependencies": { "watchpack-chokidar2": "^2.0.1" @@ -17436,7 +17430,6 @@ "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", - "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", @@ -20681,7 +20674,8 @@ "version": "2.0.0-rc.16", "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.0.0-rc.16.tgz", "integrity": "sha512-TubikDVkI2LuRKRPSLv3lYpbpvvucT2DIcGqfBVpvYs4W19u0EBTJEdmfwmSuLY7H1TyAr9Stur3PI1sWWvTGQ==", - "dev": true + "dev": true, + "requires": {} }, "@vue/web-component-wrapper": { "version": "1.3.0", @@ -21313,7 +21307,8 @@ "version": "7.0.0-bridge.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", - "dev": true + "dev": true, + "requires": {} }, "babel-eslint": { "version": "10.1.0", @@ -26792,7 +26787,8 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -26942,7 +26938,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true + "dev": true, + "requires": {} }, "jest-regex-util": { "version": "24.9.0", diff --git a/src/assets/scss/components/_buttons.scss b/src/assets/scss/components/_buttons.scss index 857802c65..bf3cbf883 100644 --- a/src/assets/scss/components/_buttons.scss +++ b/src/assets/scss/components/_buttons.scss @@ -12,7 +12,8 @@ &:hover { background: linear-gradient(270deg, rgba(6,87,124,1) 0%, rgba(6,87,124,1) 100%); } - &:focus { + &:focus, // Mouse, touch, stylus focus + &:focus-visible { // Keyboard focus for accessibility outline: none; box-shadow: 0 0 0 3px, 0 0 0 5.5px $blue-700; } @@ -69,36 +70,3 @@ } } } -// Non-Bootstrap button -// Intended to be used without .btn class -.btn-damage { - width: 100%; - background-color: $white; - border: 1px solid #b3b4b5; - &:focus { - background-color: #e7f1f6; - border: 1px solid $blue; - } - &:focus-visible { // For keyboard/screenreader - background-color: #e7f1f6; - outline: none; - box-shadow: 0 0 0 2px $blue; - } -} - -// Non-Bootstrap button -// Intended to be used without .btn class -.btn-damage { - width: 100%; - background-color: $white; - border: 1px solid #b3b4b5; - &:focus { - background-color: #e7f1f6; - border: 1px solid $blue; - } - &:focus-visible { // For keyboard/screenreader - background-color: #e7f1f6; - outline: none; - box-shadow: 0 0 0 2px $blue; - } -} From c3c4606fcd2b98ed7db5aae1cc08440409f6c566 Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 1 Nov 2021 16:39:55 -0400 Subject: [PATCH 02/14] pull route info by query string --- src/App.vue | 8 -- src/constants/applicationConfig.js | 5 ++ src/layouts/home/home.vue | 2 +- .../dynamic-routing/component-loader.js | 2 +- src/router/index.js | 79 ++++++++++--------- src/store/index.js | 4 +- 6 files changed, 50 insertions(+), 50 deletions(-) create mode 100644 src/constants/applicationConfig.js diff --git a/src/App.vue b/src/App.vue index b27da5d12..c4d5d301b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,14 +1,6 @@ diff --git a/src/router/dynamic-routing/component-loader.js b/src/router/dynamic-routing/component-loader.js index f2df9e1d6..fc8a02427 100644 --- a/src/router/dynamic-routing/component-loader.js +++ b/src/router/dynamic-routing/component-loader.js @@ -1,3 +1,3 @@ export function lazyLoadComponent(componentName) { - return () => import(`@/layouts/${componentName}.vue`); // /selectModel/SelectModel + return () => import(`@/layouts/${componentName}/${componentName}.vue`); // /src/layouts/folder/component.vue } diff --git a/src/router/index.js b/src/router/index.js index c0e4b170d..c01945ed4 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -2,7 +2,6 @@ import { createWebHistory, createRouter } from "vue-router"; import { storeActions } from "@/constants/storeActions.js"; import { lazyLoadComponent } from "@/router/dynamic-routing/component-loader.js"; import NotFound from "@/layouts/notFound/notFound.vue"; -import Home from "@/layouts/home/home.vue"; import store from "@/store"; const routes = [ @@ -13,8 +12,42 @@ const routes = [ }, { path: "/", - Name: "Home", - component: Home, + beforeEnter(to, from, next) { + + // If we have no query string, or we don't have the FmgPage query string. + if (Object.keys(to.query).length === 0 ||to.query.fmgPage === undefined) { + next({ name: "NotFound" }); + } else { + + // If we already have our route, go to it. + if(router.hasRoute(to.query.fmgPage)) + { + return next({ name: to.query.fmgPage }); + } + + // Get route info for the given url. Names will have a 1:1 relationship with names in the Cms. + GetRouteInfoFromPageName(to.query.fmgPage).then((routeData) => { + + // Add our dynamic route. + router.addRoute({ + path: "/", // Always the same path, because we control it with query strings. + name: routeData[0].name, + component: routeData[0].component, + }); + + // Assign current query string parameters, as well as our fmgPage one. + next({ + name: routeData[0].name, + query: Object.assign(to.query, { fmgPage: routeData[0].name }), + }); + + }) + .catch((error) => { + console.log("error:"); + console.log(error); + }); + } + }, }, ]; @@ -23,43 +56,12 @@ const router = createRouter({ routes, }); -router.beforeEach(async (to, from, next) => { - NavigateToDynamicCmsRoute(to, next); -}); - -// Go to route if page exists in the CMS. -// If not, go to 404 page. -function NavigateToDynamicCmsRoute(to, next) { - let doesRouteResolve = router.resolve(to.path).matched.length > 0; - - if (!doesRouteResolve) { - GetRouteInfoForUrl(to.path) - .then((routeData) => { - // Add our dynamic route. - router.addRoute({ - path: routeData[0].path, - name: routeData[0].name, - component: routeData[0].component, - }); - - next(to.fullPath); - }) - .catch((error) => { - // Check status code, go to 404 page if 404. - console.log(error); - }); - } else { - next(); // Home (/) and NotFound (/not-found) will always resolve. - } -} - -// Get the route info for the given url. -// This will hit the content service and eventually the Cms. -// If the route is not found, reject Promise. -function GetRouteInfoForUrl(url) { +// Get route information by page name. +// This will reach out to the Cms and there is a 1:1 relationship between page names and route names. +function GetRouteInfoFromPageName(pageName) { return new Promise((resolve, reject) => { store - .dispatch(storeActions.GET_ROUTE_INFO_ACTION, { relativeUrl: url }) + .dispatch(storeActions.GET_ROUTE_INFO_ACTION, { pageName: pageName }) .then((response) => { // Add our route data and return our array. let jsonFromResponse = JSON.parse(response.data.Result); @@ -74,6 +76,7 @@ function GetRouteInfoForUrl(url) { }); resolve(routeData); + }) .catch((error) => { reject(error); diff --git a/src/store/index.js b/src/store/index.js index aa638fb86..3c78d7f1c 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -91,12 +91,12 @@ export default createStore({ `/damage?year=${state.year}&make=${state.make}&model=${state.model}&style=${style}` ); }, - getRouteInfo(context, { relativeUrl }) { + getRouteInfo(context, { pageName }) { return globalMethods.callHttpClient({ method: endpoints.GetRouteInfoEndpoint.method, endpoint: endpoints.GetRouteInfoEndpoint.url, payload: { - relativeUrl: relativeUrl, + pageName: pageName, }, }); }, From bda1ec8d8254fba4f90cace9225613ffaddb4c2d Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 1 Nov 2021 16:41:51 -0400 Subject: [PATCH 03/14] Removed App.vue code --- src/App.vue | 57 ----------------------------------------------------- 1 file changed, 57 deletions(-) diff --git a/src/App.vue b/src/App.vue index 6d9602582..57b5ffe58 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,61 +1,4 @@ - From 62a44c31b0a5de4fa9ed7e8ad65d0be585e3cd5c Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 1 Nov 2021 17:21:39 -0400 Subject: [PATCH 04/14] Corrected 404 page, added developer test page --- src/layouts/componentTest/componentTest.vue | 60 +++++++++++++++++++++ src/layouts/home/home.spec.js | 1 - src/layouts/home/home.vue | 6 --- src/layouts/notFound/notFound.spec.js | 1 - src/layouts/notFound/notFound.vue | 6 +-- src/router/index.js | 28 ++++++++-- 6 files changed, 86 insertions(+), 16 deletions(-) create mode 100644 src/layouts/componentTest/componentTest.vue delete mode 100644 src/layouts/home/home.spec.js delete mode 100644 src/layouts/home/home.vue delete mode 100644 src/layouts/notFound/notFound.spec.js diff --git a/src/layouts/componentTest/componentTest.vue b/src/layouts/componentTest/componentTest.vue new file mode 100644 index 000000000..493b9c1d4 --- /dev/null +++ b/src/layouts/componentTest/componentTest.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/layouts/home/home.spec.js b/src/layouts/home/home.spec.js deleted file mode 100644 index 882a68129..000000000 --- a/src/layouts/home/home.spec.js +++ /dev/null @@ -1 +0,0 @@ -test.todo('some test to be written in the future'); \ No newline at end of file diff --git a/src/layouts/home/home.vue b/src/layouts/home/home.vue deleted file mode 100644 index fae0ff39c..000000000 --- a/src/layouts/home/home.vue +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/src/layouts/notFound/notFound.spec.js b/src/layouts/notFound/notFound.spec.js deleted file mode 100644 index 882a68129..000000000 --- a/src/layouts/notFound/notFound.spec.js +++ /dev/null @@ -1 +0,0 @@ -test.todo('some test to be written in the future'); \ No newline at end of file diff --git a/src/layouts/notFound/notFound.vue b/src/layouts/notFound/notFound.vue index 67c05787e..954d1387c 100644 --- a/src/layouts/notFound/notFound.vue +++ b/src/layouts/notFound/notFound.vue @@ -1,5 +1,3 @@ +

Not Found .... :(

+ \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index c01945ed4..d46e6b14a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,22 +1,28 @@ import { createWebHistory, createRouter } from "vue-router"; import { storeActions } from "@/constants/storeActions.js"; import { lazyLoadComponent } from "@/router/dynamic-routing/component-loader.js"; +import ComponentTest from "@/layouts/componentTest/componentTest.vue"; import NotFound from "@/layouts/notFound/notFound.vue"; import store from "@/store"; const routes = [ { - path: "/not-found", - name: "NotFound", + path: '/:pathMatch(.*)*', component: NotFound, + name: "NotFound" + }, + { + path: "/component-test", // This is a temporary route for testing. + name: "ComponentTest", + component: ComponentTest, }, { path: "/", beforeEnter(to, from, next) { - + // If we have no query string, or we don't have the FmgPage query string. if (Object.keys(to.query).length === 0 ||to.query.fmgPage === undefined) { - next({ name: "NotFound" }); + RetainStructureAndGoTo404(to, next); } else { // If we already have our route, go to it. @@ -43,6 +49,10 @@ const routes = [ }) .catch((error) => { + + // If we can't find the route, go to the 404 page. + RetainStructureAndGoTo404(to, next); + console.log("error:"); console.log(error); }); @@ -84,4 +94,14 @@ function GetRouteInfoFromPageName(pageName) { }); } +// Go to our 404 page but retain our structure when we go there (path, queryString, hash). +function RetainStructureAndGoTo404(to, next){ + next({ + name: 'NotFound', + params: { pathMatch: to.path.split('/').slice(1) }, + query: to.query, + hash: to.hash + }); +} + export default router; From 9deb3b161c18142e061c4648b65e5d2875f61ba2 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 2 Nov 2021 10:03:00 -0400 Subject: [PATCH 05/14] Added env var for Api Gateway, some formatting --- package-lock.json | 207 ++++++++++++++++++++--------- src/constants/applicationConfig.js | 2 +- src/global-methods.js | 19 +-- src/router/index.js | 38 +++--- vue.config.js | 2 + 5 files changed, 175 insertions(+), 93 deletions(-) diff --git a/package-lock.json b/package-lock.json index cde6a019f..b5a7cc355 100644 --- a/package-lock.json +++ b/package-lock.json @@ -444,7 +444,9 @@ "version": "7.15.6", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==", - "bin": "./bin/babel-parser.js", + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { "node": ">=6.0.0" } @@ -2724,6 +2726,7 @@ "thread-loader": "^2.1.3", "url-loader": "^2.2.0", "vue-loader": "^15.9.2", + "vue-loader-v16": "npm:vue-loader@^16.1.0", "vue-style-loader": "^4.1.2", "webpack": "^4.0.0", "webpack-bundle-analyzer": "^3.8.0", @@ -2773,13 +2776,15 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "optional": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@vue/cli-service/node_modules/chalk": { @@ -2787,7 +2792,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "funding": "https://github.com/chalk/chalk?sponsor=1", "optional": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -2795,6 +2799,9 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@vue/cli-service/node_modules/color-convert": { @@ -3025,6 +3032,7 @@ "merge-source-map": "^1.1.0", "postcss": "^7.0.36", "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2", "source-map": "~0.6.1", "vue-template-es2015-compiler": "^1.9.0" }, @@ -3055,7 +3063,7 @@ "dev": true, "optional": true, "bin": { - "prettier": "./bin-prettier.js" + "prettier": "bin-prettier.js" }, "engines": { "node": ">=4" @@ -3504,12 +3512,14 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "type-fest": "^0.21.3" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-escapes/node_modules/type-fest": { @@ -3517,9 +3527,11 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-html": { @@ -3531,7 +3543,7 @@ "node >= 0.8.0" ], "bin": { - "ansi-html": "./bin/ansi-html" + "ansi-html": "bin/ansi-html" } }, "node_modules/ansi-regex": { @@ -4256,7 +4268,7 @@ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true, "bin": { - "babylon": "./bin/babylon.js" + "babylon": "bin/babylon.js" } }, "node_modules/balanced-match": { @@ -4886,9 +4898,11 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/caniuse-api": { @@ -4983,6 +4997,7 @@ "dependencies": { "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", @@ -5241,12 +5256,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/cli-highlight/node_modules/chalk": { @@ -5254,13 +5271,15 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "funding": "https://github.com/chalk/chalk?sponsor=1", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/cli-highlight/node_modules/color-convert": { @@ -5307,9 +5326,11 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-width": { @@ -5921,7 +5942,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/copy-webpack-plugin/node_modules/slash": { @@ -6052,7 +6073,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/crypto-browserify": { @@ -6556,12 +6577,14 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "pump": "^3.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/default-gateway/node_modules/is-stream": { @@ -6569,9 +6592,11 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/default-gateway/node_modules/mimic-fn": { @@ -6600,12 +6625,14 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/default-gateway/node_modules/p-finally": { @@ -6656,7 +6683,7 @@ "isexe": "^2.0.0" }, "bin": { - "node-which": "./bin/node-which" + "node-which": "bin/node-which" }, "engines": { "node": ">= 8" @@ -6877,11 +6904,13 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", "dev": true, - "funding": "https://github.com/cheeriojs/dom-serializer?sponsor=1", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, "node_modules/domain-browser": { @@ -7045,7 +7074,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/editorconfig/node_modules/yallist": { @@ -7162,7 +7191,9 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, - "funding": "https://github.com/fb55/entities?sponsor=1" + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/errno": { "version": "0.1.8", @@ -7276,7 +7307,8 @@ "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", - "optionator": "^0.8.1" + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "bin": { "escodegen": "bin/escodegen.js", @@ -7304,7 +7336,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, - "funding": "https://opencollective.com/eslint", "dependencies": { "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", @@ -7345,10 +7376,13 @@ "v8-compile-cache": "^2.0.3" }, "bin": { - "eslint": "./bin/eslint.js" + "eslint": "bin/eslint.js" }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-config-prettier": { @@ -7428,12 +7462,14 @@ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, - "funding": "https://github.com/sponsors/mysticatea", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/eslint-scope": { @@ -7500,12 +7536,14 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "type-fest": "^0.8.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/import-fresh": { @@ -7513,13 +7551,15 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/resolve-from": { @@ -7560,8 +7600,8 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "bin": { - "esparse": "./bin/esparse.js", - "esvalidate": "./bin/esvalidate.js" + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { "node": ">=4" @@ -8119,12 +8159,14 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/file-entry-cache": { @@ -8275,7 +8317,6 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "funding": "https://github.com/avajs/find-cache-dir?sponsor=1", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -8283,6 +8324,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, "node_modules/find-up": { @@ -8321,7 +8365,7 @@ "glob": "^7.1.3" }, "bin": { - "rimraf": "./bin.js" + "rimraf": "bin.js" } }, "node_modules/flatted": { @@ -9006,7 +9050,7 @@ "uglify-js": "3.4.x" }, "bin": { - "html-minifier": "./cli.js" + "html-minifier": "cli.js" }, "engines": { "node": ">=4" @@ -9515,12 +9559,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/inquirer/node_modules/chalk": { @@ -9528,13 +9574,15 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "funding": "https://github.com/chalk/chalk?sponsor=1", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/inquirer/node_modules/cli-cursor": { @@ -9599,12 +9647,14 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/inquirer/node_modules/restore-cursor": { @@ -9925,12 +9975,14 @@ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "bin": { "is-docker": "cli.js" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-extendable": { @@ -10082,9 +10134,11 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-plain-object": { @@ -10283,7 +10337,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/istanbul-lib-report/node_modules/supports-color": { @@ -10333,7 +10387,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { @@ -10373,7 +10427,7 @@ "jest-cli": "^24.9.0" }, "bin": { - "jest": "./bin/jest.js" + "jest": "bin/jest.js" }, "engines": { "node": ">= 6" @@ -10414,7 +10468,7 @@ "yargs": "^13.3.0" }, "bin": { - "jest": "./bin/jest.js" + "jest": "bin/jest.js" }, "engines": { "node": ">= 6" @@ -10823,6 +10877,7 @@ "@jest/types": "^24.9.0", "anymatch": "^2.0.0", "fb-watchman": "^2.0.0", + "fsevents": "^1.2.7", "graceful-fs": "^4.1.15", "invariant": "^2.2.4", "jest-serializer": "^24.9.0", @@ -11083,7 +11138,7 @@ "yargs": "^13.3.0" }, "bin": { - "jest-runtime": "./bin/jest-runtime.js" + "jest-runtime": "bin/jest-runtime.js" }, "engines": { "node": ">= 6" @@ -11998,12 +12053,14 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "semver": "^6.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/make-error": { @@ -12601,7 +12658,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/node-releases": { @@ -12643,7 +12700,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/normalize-path": { @@ -13120,12 +13177,14 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "p-try": "^2.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { @@ -13396,9 +13455,11 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true, - "funding": "https://github.com/sponsors/jonschlinkert", "engines": { "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pify": { @@ -14707,7 +14768,6 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -14716,6 +14776,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/readable-stream": { @@ -15118,7 +15181,7 @@ "glob": "^7.1.3" }, "bin": { - "rimraf": "./bin.js" + "rimraf": "bin.js" } }, "node_modules/ripemd160": { @@ -15209,7 +15272,7 @@ "walker": "~1.0.5" }, "bin": { - "sane": "./src/cli.js" + "sane": "src/cli.js" }, "engines": { "node": "6.* || 8.* || >= 10.*" @@ -15346,7 +15409,7 @@ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { - "semver": "./bin/semver.js" + "semver": "bin/semver.js" } }, "node_modules/send": { @@ -15554,7 +15617,7 @@ "safe-buffer": "^5.0.1" }, "bin": { - "sha.js": "./bin.js" + "sha.js": "bin.js" } }, "node_modules/shallow-clone": { @@ -16476,9 +16539,11 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/stylehacks": { @@ -16549,7 +16614,7 @@ "util.promisify": "~1.0.0" }, "bin": { - "svgo": "./bin/svgo" + "svgo": "bin/svgo" }, "engines": { "node": ">=4.0.0" @@ -16572,9 +16637,11 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", "dev": true, - "funding": "https://github.com/sponsors/fb55", "engines": { "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, "node_modules/svgo/node_modules/dom-serializer": { @@ -16816,7 +16883,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/terser-webpack-plugin/node_modules/source-map": { @@ -17117,7 +17184,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/ts-jest/node_modules/yargs-parser": { @@ -17602,7 +17669,7 @@ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, "bin": { - "uuid": "./bin/uuid" + "uuid": "bin/uuid" } }, "node_modules/v8-compile-cache": { @@ -17681,7 +17748,6 @@ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", "dev": true, - "funding": "https://github.com/sponsors/mysticatea", "dependencies": { "debug": "^4.1.1", "eslint-scope": "^5.1.1", @@ -17694,6 +17760,9 @@ "engines": { "node": ">=8.10" }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, "peerDependencies": { "eslint": ">=5.0.0" } @@ -17888,7 +17957,8 @@ "dependencies": { "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" }, "optionalDependencies": { "chokidar": "^3.4.1", @@ -18263,6 +18333,7 @@ "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", + "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", @@ -18690,7 +18761,7 @@ "isexe": "^2.0.0" }, "bin": { - "which": "./bin/which" + "which": "bin/which" } }, "node_modules/which-boxed-primitive": { @@ -18761,12 +18832,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/color-convert": { @@ -18934,12 +19007,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/yargs/node_modules/cliui": { @@ -19011,7 +19086,6 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "funding": "https://github.com/chalk/wrap-ansi?sponsor=1", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -19019,6 +19093,9 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/yargs/node_modules/y18n": { diff --git a/src/constants/applicationConfig.js b/src/constants/applicationConfig.js index c196b8ac3..78c0387c5 100644 --- a/src/constants/applicationConfig.js +++ b/src/constants/applicationConfig.js @@ -1,5 +1,5 @@ const applicationConfig = { - +CONSUMER_APIGATEWAY_URL: process.env.VUE_APP_CONSUMER_API_GATEWAY } export { applicationConfig } \ No newline at end of file diff --git a/src/global-methods.js b/src/global-methods.js index 3e2be040f..824a87266 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -1,22 +1,23 @@ import axios from "axios"; +import { applicationConfig } from "@/constants/applicationConfig.js"; +import httpStatusCodes from "http-status-codes"; export default { - callHttpClient({ method, endpoint, payload, responseType = {} }) { + callHttpClient({ method, endpoint, payload}) { return new Promise((resolve, reject) => { - const apiGatewayUrl = "https://consumerapidev.safelite.com"; // TODO: Some environment variable - const payloadAndAnalyticsData = Object.assign({}, payload, { - AppName: "FixMyGlass", - }); + + const apiGatewayUrl = applicationConfig.CONSUMER_APIGATEWAY_URL; + const payloadAndAnalyticsData = Object.assign({}, payload, {AppName: "FixMyGlass"}); axios({ method: method, url: `${apiGatewayUrl}${endpoint}`, data: payloadAndAnalyticsData, crossDomain: true, - responseType: responseType, - }).then( - (response) => { - if (response.data.isSuccess || response.status == 200) { + responseType: {}, + }).then((response) => { + + if (response.status == httpStatusCodes.OK) { resolve(response); } else { reject(response); diff --git a/src/router/index.js b/src/router/index.js index d46e6b14a..8d6b0da8e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -21,33 +21,35 @@ const routes = [ beforeEnter(to, from, next) { // If we have no query string, or we don't have the FmgPage query string. - if (Object.keys(to.query).length === 0 ||to.query.fmgPage === undefined) { + if (Object.keys(to.query).length === 0 || to.query.fmgPage === undefined) { RetainStructureAndGoTo404(to, next); } else { // If we already have our route, go to it. - if(router.hasRoute(to.query.fmgPage)) - { - return next({ name: to.query.fmgPage }); + if (router.hasRoute(to.query.fmgPage)) { + return next({ + name: to.query.fmgPage, + query: to.query, + }); } // Get route info for the given url. Names will have a 1:1 relationship with names in the Cms. GetRouteInfoFromPageName(to.query.fmgPage).then((routeData) => { - // Add our dynamic route. - router.addRoute({ - path: "/", // Always the same path, because we control it with query strings. - name: routeData[0].name, - component: routeData[0].component, - }); + // Add our dynamic route. + router.addRoute({ + path: '/', // Always the same path, because we control it with query strings. + name: routeData[0].name, + component: routeData[0].component, + }); - // Assign current query string parameters, as well as our fmgPage one. - next({ - name: routeData[0].name, - query: Object.assign(to.query, { fmgPage: routeData[0].name }), - }); + // Assign current query string parameters, as well as our fmgPage one. + next({ + name: routeData[0].name, + query: Object.assign(to.query, { fmgPage: routeData[0].name }) + }); - }) + }) .catch((error) => { // If we can't find the route, go to the 404 page. @@ -95,8 +97,8 @@ function GetRouteInfoFromPageName(pageName) { } // Go to our 404 page but retain our structure when we go there (path, queryString, hash). -function RetainStructureAndGoTo404(to, next){ - next({ +function RetainStructureAndGoTo404(to, next) { + next({ name: 'NotFound', params: { pathMatch: to.path.split('/').slice(1) }, query: to.query, diff --git a/vue.config.js b/vue.config.js index 1a6ac825d..f26ca4dab 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,3 +1,5 @@ +process.env.VUE_APP_CONSUMER_API_GATEWAY = "https://consumerapidev.safelite.com"; + module.exports = { outputDir: "dist/fmg", publicPath: "/fmg", From ad204a6b2f3f7fde199770766c9942081817d57d Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 2 Nov 2021 10:12:50 -0400 Subject: [PATCH 06/14] Added environment var to pipeline --- azure-pipelines.yml | 4 +++- vue.release.config.js | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 36102b907..95c066c74 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -26,7 +26,7 @@ resources: type: github name: Safelite/AzureDevOps endpoint: Safelite - ref: DigitalConsumer #refs/tags/t5.3.4 + ref: refs/tags/t5.3.8 variables: - group: Digital-Infrastructure @@ -74,3 +74,5 @@ stages: clearFolder: true deployFolder: '' region: us-east-1 + appDeployVariables: + __VUE_APP_CONSUMER_API_GATEWAY__: $(__VUE_APP_CONSUMER_API_GATEWAY__) \ No newline at end of file diff --git a/vue.release.config.js b/vue.release.config.js index 5232721e5..d0be4bb59 100644 --- a/vue.release.config.js +++ b/vue.release.config.js @@ -1,3 +1,5 @@ +process.env.VUE_APP_CONSUMER_API_GATEWAY = "__VUE_APP_CONSUMER_API_GATEWAY__"; + module.exports = { outputDir: "dist/fmg", publicPath: "/fmg", From 766ccccdb674125bb37e92f065ccab774733cc98 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 2 Nov 2021 11:22:09 -0400 Subject: [PATCH 07/14] Updated router / readme --- README.md | 22 +++++----------------- src/router/index.js | 2 +- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index c16bcb723..bb4f0d7a5 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,7 @@ -# fmg-funnel-2021 +### Fix My Glass Vue Project +--- -## Project setup -``` -npm install -``` +This Repository is for Fix My Glass front end Vue and documentation associated with it. -### Compiles and hot-reloads for development -``` -npm run serve -``` - -### Compiles and minifies for production -``` -npm run build -``` - -### Customize configuration -See [Configuration Reference](https://cli.vuejs.org/config/). +#### Routing +We are using [Vue Router](https://next.router.vuejs.org/) 4.x for our front end routing. We our using a runtime dynamic routing solution. Some more information about dynamic routing can be found on the [official Vue Router documentation](https://next.router.vuejs.org/guide/advanced/dynamic-routing.html). Our routing solution is as outlined below: \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index 8d6b0da8e..836a6256e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -21,7 +21,7 @@ const routes = [ beforeEnter(to, from, next) { // If we have no query string, or we don't have the FmgPage query string. - if (Object.keys(to.query).length === 0 || to.query.fmgPage === undefined) { + if (to.query.fmgPage === undefined) { RetainStructureAndGoTo404(to, next); } else { From 5e027f904f8d971a21ea218223c0b284862880b9 Mon Sep 17 00:00:00 2001 From: Frank Rua <44780237+FrankRua@users.noreply.github.com> Date: Tue, 2 Nov 2021 11:23:33 -0400 Subject: [PATCH 08/14] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bb4f0d7a5..f703d287b 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,6 @@ This Repository is for Fix My Glass front end Vue and documentation associated with it. #### Routing -We are using [Vue Router](https://next.router.vuejs.org/) 4.x for our front end routing. We our using a runtime dynamic routing solution. Some more information about dynamic routing can be found on the [official Vue Router documentation](https://next.router.vuejs.org/guide/advanced/dynamic-routing.html). Our routing solution is as outlined below: \ No newline at end of file +We are using [Vue Router](https://next.router.vuejs.org/) 4.x for our front end routing. We our using a runtime dynamic routing solution. Some more information about dynamic routing can be found on the [official Vue Router documentation](https://next.router.vuejs.org/guide/advanced/dynamic-routing.html). Our routing solution is as outlined below: +![FixMyGlass - Routing](https://user-images.githubusercontent.com/44780237/139876801-7d5c495a-f361-4234-a8ec-69126a357f80.png) + From d0a6fbc8bef710de2cfba2c786244a04cb76355f Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 2 Nov 2021 11:41:46 -0400 Subject: [PATCH 09/14] Added some more documentation on routing --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f703d287b..65e8bfb95 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,13 @@ This Repository is for Fix My Glass front end Vue and documentation associated with it. #### Routing -We are using [Vue Router](https://next.router.vuejs.org/) 4.x for our front end routing. We our using a runtime dynamic routing solution. Some more information about dynamic routing can be found on the [official Vue Router documentation](https://next.router.vuejs.org/guide/advanced/dynamic-routing.html). Our routing solution is as outlined below: +We are using [Vue Router](https://next.router.vuejs.org/) 4.x for our front end routing. We are using a runtime dynamic routing solution. Some more information about dynamic routing can be found on the [official Vue Router documentation](https://next.router.vuejs.org/guide/advanced/dynamic-routing.html). + +Here is a high level overview of how our routing works: ![FixMyGlass - Routing](https://user-images.githubusercontent.com/44780237/139876801-7d5c495a-f361-4234-a8ec-69126a357f80.png) +`RetainStructureAndGoTo404(to, next)` - Since our 404 path on our router is `path: '/:pathMatch(.*)*'` (meaning that we don't have a dedicated 404 route) we retain the information entered by the user in the url bar and just serve back our `NotFound` component on Vue. For example if a user was to type in `.../fmg/fmgPage=junkPage` Vue will retain this url in the browser and return our `NotFound` component. This could be especially useful for analytics and reporting. + +`Next()` - Is a function that is native to Vue Router in which we call in order to send the user where want them to go based on some logic we have[. You can read more about Navigation Guards and the `Next()` function on the Vue Router documentation. ](https://next.router.vuejs.org/guide/advanced/navigation-guards.html) + +`GetRouteInfoFromPageName(PageName)` - This method typically takes the query string value of `fmgPage` and passes it into a call to our Content Service. The service will pull information on the page; matching page name passed to page name in our Cms. If we have a match, we will compile the route information and send it to our router to process. If we do not have a that page in our Cms, the user will be served back a 404 page while retaining the structure. \ No newline at end of file From df0462f006accfddd32bd32019e805dafa47b9ff Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 2 Nov 2021 11:53:22 -0400 Subject: [PATCH 10/14] created two folders for styles --- src/styles/commonStyles.scss | 0 src/styles/uxStyles.scss | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/styles/commonStyles.scss create mode 100644 src/styles/uxStyles.scss diff --git a/src/styles/commonStyles.scss b/src/styles/commonStyles.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/styles/uxStyles.scss b/src/styles/uxStyles.scss new file mode 100644 index 000000000..e69de29bb From 609c7d7159f865ce8762d9af9fa2dbddbcef21e3 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 2 Nov 2021 12:03:53 -0400 Subject: [PATCH 11/14] Added additional azure support --- azure-pipelines.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 95c066c74..1a89d7934 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -26,7 +26,7 @@ resources: type: github name: Safelite/AzureDevOps endpoint: Safelite - ref: refs/tags/t5.3.8 + ref: DigitalConsumer #refs/tags/t5.3.8 variables: - group: Digital-Infrastructure @@ -69,6 +69,7 @@ stages: parameters: artifactName: vueDist awsProfile: $(devDeploymentProfile) + outputPath: /fmg/ deployBuckets: safelite-dev-fmg-us-east-1: clearFolder: true From de4bb2656ec6460d337b5582ced7a216b6b126b8 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 2 Nov 2021 13:15:58 -0400 Subject: [PATCH 12/14] Changed tag for new release --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1a89d7934..a9f0e705d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -26,7 +26,7 @@ resources: type: github name: Safelite/AzureDevOps endpoint: Safelite - ref: DigitalConsumer #refs/tags/t5.3.8 + ref: refs/tags/t5.4.0 variables: - group: Digital-Infrastructure From c16a86ddaafff51ca747fc249f59517716ab156e Mon Sep 17 00:00:00 2001 From: Bryan Date: Tue, 2 Nov 2021 17:14:38 -0400 Subject: [PATCH 13/14] CSR-116 Global style updates Update fonts, headings, spacing, breakpoints --- package-lock.json | 201 +++++++++++++------- public/index.html | 2 +- src/assets/scss/_CustomVariables.scss | 146 +++++++++----- src/assets/scss/_GlobalStyles.scss | 66 +++++-- src/assets/scss/components/_buttons.scss | 6 +- src/layouts/componentTest/componentTest.vue | 41 +++- src/uxComponents/radioCard/radioCard.vue | 2 +- 7 files changed, 336 insertions(+), 128 deletions(-) diff --git a/package-lock.json b/package-lock.json index cde6a019f..cda38bdec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -444,7 +444,9 @@ "version": "7.15.6", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==", - "bin": "./bin/babel-parser.js", + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { "node": ">=6.0.0" } @@ -2773,13 +2775,15 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "optional": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@vue/cli-service/node_modules/chalk": { @@ -2787,7 +2791,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "funding": "https://github.com/chalk/chalk?sponsor=1", "optional": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -2795,6 +2798,9 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@vue/cli-service/node_modules/color-convert": { @@ -3055,7 +3061,7 @@ "dev": true, "optional": true, "bin": { - "prettier": "./bin-prettier.js" + "prettier": "bin-prettier.js" }, "engines": { "node": ">=4" @@ -3504,12 +3510,14 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "type-fest": "^0.21.3" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-escapes/node_modules/type-fest": { @@ -3517,9 +3525,11 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-html": { @@ -3531,7 +3541,7 @@ "node >= 0.8.0" ], "bin": { - "ansi-html": "./bin/ansi-html" + "ansi-html": "bin/ansi-html" } }, "node_modules/ansi-regex": { @@ -4256,7 +4266,7 @@ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true, "bin": { - "babylon": "./bin/babylon.js" + "babylon": "bin/babylon.js" } }, "node_modules/balanced-match": { @@ -4886,9 +4896,11 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/caniuse-api": { @@ -5241,12 +5253,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/cli-highlight/node_modules/chalk": { @@ -5254,13 +5268,15 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "funding": "https://github.com/chalk/chalk?sponsor=1", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/cli-highlight/node_modules/color-convert": { @@ -5307,9 +5323,11 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-width": { @@ -5921,7 +5939,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/copy-webpack-plugin/node_modules/slash": { @@ -6052,7 +6070,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/crypto-browserify": { @@ -6556,12 +6574,14 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "pump": "^3.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/default-gateway/node_modules/is-stream": { @@ -6569,9 +6589,11 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/default-gateway/node_modules/mimic-fn": { @@ -6600,12 +6622,14 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/default-gateway/node_modules/p-finally": { @@ -6656,7 +6680,7 @@ "isexe": "^2.0.0" }, "bin": { - "node-which": "./bin/node-which" + "node-which": "bin/node-which" }, "engines": { "node": ">= 8" @@ -6877,11 +6901,13 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", "dev": true, - "funding": "https://github.com/cheeriojs/dom-serializer?sponsor=1", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, "node_modules/domain-browser": { @@ -7045,7 +7071,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/editorconfig/node_modules/yallist": { @@ -7162,7 +7188,9 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, - "funding": "https://github.com/fb55/entities?sponsor=1" + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/errno": { "version": "0.1.8", @@ -7304,7 +7332,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, - "funding": "https://opencollective.com/eslint", "dependencies": { "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", @@ -7345,10 +7372,13 @@ "v8-compile-cache": "^2.0.3" }, "bin": { - "eslint": "./bin/eslint.js" + "eslint": "bin/eslint.js" }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-config-prettier": { @@ -7428,12 +7458,14 @@ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, - "funding": "https://github.com/sponsors/mysticatea", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/eslint-scope": { @@ -7500,12 +7532,14 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "type-fest": "^0.8.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/import-fresh": { @@ -7513,13 +7547,15 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/resolve-from": { @@ -7560,8 +7596,8 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "bin": { - "esparse": "./bin/esparse.js", - "esvalidate": "./bin/esvalidate.js" + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { "node": ">=4" @@ -8119,12 +8155,14 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/file-entry-cache": { @@ -8275,7 +8313,6 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "funding": "https://github.com/avajs/find-cache-dir?sponsor=1", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -8283,6 +8320,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, "node_modules/find-up": { @@ -8321,7 +8361,7 @@ "glob": "^7.1.3" }, "bin": { - "rimraf": "./bin.js" + "rimraf": "bin.js" } }, "node_modules/flatted": { @@ -9006,7 +9046,7 @@ "uglify-js": "3.4.x" }, "bin": { - "html-minifier": "./cli.js" + "html-minifier": "cli.js" }, "engines": { "node": ">=4" @@ -9515,12 +9555,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/inquirer/node_modules/chalk": { @@ -9528,13 +9570,15 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "funding": "https://github.com/chalk/chalk?sponsor=1", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/inquirer/node_modules/cli-cursor": { @@ -9599,12 +9643,14 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/inquirer/node_modules/restore-cursor": { @@ -9925,12 +9971,14 @@ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "bin": { "is-docker": "cli.js" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-extendable": { @@ -10082,9 +10130,11 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-plain-object": { @@ -10283,7 +10333,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/istanbul-lib-report/node_modules/supports-color": { @@ -10333,7 +10383,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { @@ -10373,7 +10423,7 @@ "jest-cli": "^24.9.0" }, "bin": { - "jest": "./bin/jest.js" + "jest": "bin/jest.js" }, "engines": { "node": ">= 6" @@ -10414,7 +10464,7 @@ "yargs": "^13.3.0" }, "bin": { - "jest": "./bin/jest.js" + "jest": "bin/jest.js" }, "engines": { "node": ">= 6" @@ -11083,7 +11133,7 @@ "yargs": "^13.3.0" }, "bin": { - "jest-runtime": "./bin/jest-runtime.js" + "jest-runtime": "bin/jest-runtime.js" }, "engines": { "node": ">= 6" @@ -11640,9 +11690,6 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - }, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -11998,12 +12045,14 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "semver": "^6.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/make-error": { @@ -12601,7 +12650,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/node-releases": { @@ -12643,7 +12692,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/normalize-path": { @@ -13120,12 +13169,14 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "p-try": "^2.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { @@ -13396,9 +13447,11 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true, - "funding": "https://github.com/sponsors/jonschlinkert", "engines": { "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pify": { @@ -14707,7 +14760,6 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -14716,6 +14768,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/readable-stream": { @@ -15118,7 +15173,7 @@ "glob": "^7.1.3" }, "bin": { - "rimraf": "./bin.js" + "rimraf": "bin.js" } }, "node_modules/ripemd160": { @@ -15209,7 +15264,7 @@ "walker": "~1.0.5" }, "bin": { - "sane": "./src/cli.js" + "sane": "src/cli.js" }, "engines": { "node": "6.* || 8.* || >= 10.*" @@ -15346,7 +15401,7 @@ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { - "semver": "./bin/semver.js" + "semver": "bin/semver.js" } }, "node_modules/send": { @@ -15554,7 +15609,7 @@ "safe-buffer": "^5.0.1" }, "bin": { - "sha.js": "./bin.js" + "sha.js": "bin.js" } }, "node_modules/shallow-clone": { @@ -16476,9 +16531,11 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/stylehacks": { @@ -16549,7 +16606,7 @@ "util.promisify": "~1.0.0" }, "bin": { - "svgo": "./bin/svgo" + "svgo": "bin/svgo" }, "engines": { "node": ">=4.0.0" @@ -16572,9 +16629,11 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", "dev": true, - "funding": "https://github.com/sponsors/fb55", "engines": { "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, "node_modules/svgo/node_modules/dom-serializer": { @@ -16816,7 +16875,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/terser-webpack-plugin/node_modules/source-map": { @@ -17117,7 +17176,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/ts-jest/node_modules/yargs-parser": { @@ -17602,7 +17661,7 @@ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, "bin": { - "uuid": "./bin/uuid" + "uuid": "bin/uuid" } }, "node_modules/v8-compile-cache": { @@ -17681,7 +17740,6 @@ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", "dev": true, - "funding": "https://github.com/sponsors/mysticatea", "dependencies": { "debug": "^4.1.1", "eslint-scope": "^5.1.1", @@ -17694,6 +17752,9 @@ "engines": { "node": ">=8.10" }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, "peerDependencies": { "eslint": ">=5.0.0" } @@ -17886,7 +17947,6 @@ "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, "dependencies": { - "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" }, @@ -17950,7 +18010,6 @@ "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", - "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", @@ -18690,7 +18749,7 @@ "isexe": "^2.0.0" }, "bin": { - "which": "./bin/which" + "which": "bin/which" } }, "node_modules/which-boxed-primitive": { @@ -18761,12 +18820,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/color-convert": { @@ -18934,12 +18995,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/yargs/node_modules/cliui": { @@ -19011,7 +19074,6 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "funding": "https://github.com/chalk/wrap-ansi?sponsor=1", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -19019,6 +19081,9 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/yargs/node_modules/y18n": { diff --git a/public/index.html b/public/index.html index 84665a8b4..9047c9643 100644 --- a/public/index.html +++ b/public/index.html @@ -7,7 +7,7 @@ - + <%= htmlWebpackPlugin.options.title %> diff --git a/src/assets/scss/_CustomVariables.scss b/src/assets/scss/_CustomVariables.scss index 2a87319f3..b27b97536 100644 --- a/src/assets/scss/_CustomVariables.scss +++ b/src/assets/scss/_CustomVariables.scss @@ -1,50 +1,72 @@ // Color system -// scss-docs-start gray-color-variables +// White/black $white: #FFFFFF; -$gray-100: #F4F4F4; -$gray-200: #CACBCC; -$gray-300: #B3B4B5; -$gray-400: #B0B3B3;//Default Gray (Gray 400) $black: #000; -// scss-docs-end gray-color-variables -// fusv-disable -// scss-docs-start gray-colors-map -$grays: ( -"100": $gray-100, -"200": $gray-200, -"300": $gray-300, -"400": $gray-400, -); -// scss-docs-end gray-colors-map -// fusv-enable - -// scss-docs-start color-variables -$blue-100: #E4F1F7; -$blue-200: #E7F1F6; -$blue-300: #B9D7E6; -$blue-400: #125B7E; -$blue-600: #1574A1; +// Blues +$blue-100: #E4F1F7;// Used in theme +$blue-200: #C1DFEE; +$blue-300: #9FCEE6; +$blue-400: #69ADCF;// Used in theme +$blue-500: #3B8FB8; +$blue: #167CAC;// Default Blue $blue-700: #06577C; -$blue: #167CAC;//Default Blue (Blue 500) +$blue-800: #003D58; +$blue-900: #002433;// Used in theme + +// Reds +$red-100: #FFE6E4; +$red-200: #FDC0BB; +$red-300: #FB9A93; +$red-400: #EB5E54; +$red: #DA291C;// Default Red +$red-600: #B0160B; +$red-700: #870900; +$red-800: #5D0600; +$red-900: #330300; + +// Greens +$green-100: #E3F2EA; +$green-200: #BCEDD4; +$green-300: #94D7B6; +$green-400: #EB594F;// Used in theme +$green-500: #2CA168; +$green: #C40E01;// Default Green +$green-700: #006A36; +$green-800: #004F28; +$green-900: #00331A; + +// Yellows +$yellow-100: #FFF5EB; +$yellow-200: #FFE7C7; +$yellow-300: #FFD8A1; +$yellow-400: #FFB25C; +$yellow: #F88F1C;// Default Yellow +$yellow-600: #C76902; +$yellow-700: #964E00; +$yellow-800: #643400; +$yellow-900: #331A00; + +// Grays +$gray-100: #F5F5F5;// Used in theme +$gray-200: #E3E4E4;// Used in theme +$gray-300: #D2D4D4; +$gray: #B0B3B3;// Default Gray +$gray-500: #8E9292;// Used in theme +$gray-600: #4D5151;// Used in theme +$gray-700: #303333;// Used in theme +$gray-800: #222424;// Used in theme +$gray-900: #181A1A;// Used in theme + +// Miscellaneous Colors $indigo: #6610f2; $purple: #6f42c1; $pink: #d63384; -$red-200: #FBE9E8; -$red-300: #F3BEBA; -$red: #DA291C;//Default Red (Red 400) -$red-500: #AF2117; $orange: #fd7e14; -$yellow-200: #FEF6E8; -$yellow-300: #FCE6BA; -$yellow: #F88F1C;//Default Yellow (Yellow 400) -$green-200: #E6F2EC; -$green-300: #B5DAC8; -$green: #098649;//Default Green (Green 400) -$green-500: #075F35; $teal: #20c997; $cyan: #0dcaf0; + // scss-docs-end color-variables // scss-docs-start colors-map @@ -60,20 +82,20 @@ $colors: ( "teal": $teal, "cyan": $cyan, "white": $white, -"gray": $gray-400, -"gray-dark": $gray-400 +"gray": $gray, +"gray-dark": $gray-500 ); // scss-docs-end colors-map // scss-docs-start theme-color-variables -$primary: $red; -$secondary: $gray-400; +$primary: $blue; +$secondary: $red; $success: $green; $info: $cyan; $warning: $yellow; -$danger: $red-500; +$danger: $red; $light: $gray-100; -$dark: $gray-400; +$dark: $gray-500; // scss-docs-end theme-color-variables // scss-docs-start theme-colors-map @@ -95,12 +117,48 @@ $font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberati // stylelint-enable value-keyword-case $font-family-base: $font-family-sans-serif; $font-family-code: $font-family-monospace; +$font-size-base: 1rem; // Assumes the browser default, typically `16px` -//Gutters -$grid-gutter-width: .75rem; +//Font weight +$font-weight-lighter: lighter !default; +$font-weight-light: 300 !default; +$font-weight-normal: 400 !default; +$font-weight-bold: 500 !default; +$font-weight-bolder: bolder !default; + +//Headings +$h1-font-size: $font-size-base * 3; +$h2-font-size: $font-size-base * 2.625; +$h3-font-size: $font-size-base * 2; +$h4-font-size: $font-size-base * 1.625; +$h5-font-size: $font-size-base * 1.25; +$h6-font-size: $font-size-base * .875; //Border Radius $border-radius: .25rem; $border-radius-sm: .2rem; $border-radius-lg: .5rem;//Used for buttons. Can be used for other things, of course. -$border-radius-pill: 50rem; \ No newline at end of file +$border-radius-pill: 50rem; + +//Spacing +// Seven spacers available instead of the usual 5 +$spacer: 1rem; +$spacers: ( + 0: 0, + 1: $spacer * .25, + 2: $spacer * .5, + 3: $spacer, + 4: $spacer * 1.5, + 5: $spacer * 2, + 6: $spacer * 2.5, + 7: $spacer * 3, +); + +//Grid breakpoints +$grid-breakpoints: ( + xs: 0, + sm: 576px, + md: 838px, + lg: 1074px, + xl: 1416px +); diff --git a/src/assets/scss/_GlobalStyles.scss b/src/assets/scss/_GlobalStyles.scss index 1646125b5..29f36210c 100644 --- a/src/assets/scss/_GlobalStyles.scss +++ b/src/assets/scss/_GlobalStyles.scss @@ -1,18 +1,62 @@ body { font-size: 16px; background-color: #fff; - padding: 0 .75rem; -} - -a { - color: $blue-600; - text-decoration: none; - border-bottom: 1px solid $blue-600; - &:hover { - color: $blue-400; + padding: .5rem; + .container-fluid { + max-width: 576px; + &.container-shadow { + box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.15);//Use instead of Bootstrap's helper + } + } + a { + color: $blue-600; + text-decoration: none; + border-bottom: 1px solid $blue-600; + &:hover { + color: $blue-400; + } + } + .pointer { + cursor: pointer; } } -.pointer { - cursor: pointer; +//Typogrophy + +p { + line-height: 1.625; + font-weight: 400; + small,.small { + font-size: .875rem; + } +} + +//Headings +//font-size defined in _CustomVariables.scss +//add helper fw-bold to any element to get bold style (500) +//add helper fw-light to any element to get light style (300) +h1,.h1 { + line-height: 1.325; + font-weight: 300; +} +h2,.h2 { + line-height: 1.325; + font-weight: 300; +} +h3,.h3 { + line-height: 1.375; + font-weight: 300; +} +h4,.h4 { + line-height: 1.6; + font-weight: 300; +} +h5,.h5 { + line-height: 1.325; + font-weight: 400; +} +h6,.h6 { + line-height: 1.7; + letter-spacing: .75px; + text-transform: uppercase; } diff --git a/src/assets/scss/components/_buttons.scss b/src/assets/scss/components/_buttons.scss index bf3cbf883..21087a117 100644 --- a/src/assets/scss/components/_buttons.scss +++ b/src/assets/scss/components/_buttons.scss @@ -3,7 +3,7 @@ &.btn-primary { position: relative; background: $blue-700; - background: linear-gradient(270deg, rgba(21,116,161,1) 0%, rgba(18,91,126,1) 100%); + background: linear-gradient(270deg, $blue-500 0%, $blue-700 100%); border: none; border-radius: $border-radius-lg; height: 48px; @@ -51,6 +51,10 @@ border-radius: $border-radius-lg; border: 1px solid rgba($gray-300,.3); width: 100%; + &:focus, // Mouse, touch, stylus focus + &:focus-visible { // Keyboard focus for accessibility + box-shadow: none; + } &.button-loader { padding: 0 40px 0 12px; &:after { diff --git a/src/layouts/componentTest/componentTest.vue b/src/layouts/componentTest/componentTest.vue index 493b9c1d4..1128790eb 100644 --- a/src/layouts/componentTest/componentTest.vue +++ b/src/layouts/componentTest/componentTest.vue @@ -1,6 +1,6 @@ diff --git a/src/uxComponents/radioCard/radioCard.vue b/src/uxComponents/radioCard/radioCard.vue index 70a7cec82..249646f82 100644 --- a/src/uxComponents/radioCard/radioCard.vue +++ b/src/uxComponents/radioCard/radioCard.vue @@ -1,5 +1,5 @@