From a5730680d0f2699a96b41ed938669700949ad855 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Tue, 15 Jun 2021 21:55:06 +0200 Subject: [PATCH] major: frontend federation --- README.md | 276 ++- package-lock.json | 1513 ++++++++++++----- package.json | 6 + src/components/sentry.js | 8 - src/index.js | 1 + src/index.pug | 83 +- src/{components => libs}/getRoute.js | 0 src/libs/sentry.js | 11 + src/orbit-envoy.pug | 198 +++ src/orbit-router.pug | 89 - src/orbit-unify.pug | 0 src/scripts/federationRegistering.js | 7 + src/views/page-dashboard.pug | 5 - src/views/page-directory.pug | 7 - src/views/page-events.pug | 23 +- src/views/page-job-board.pug | 8 - src/views/page-messages.pug | 2 +- src/views/page-polls.pug | 10 +- src/views/page-profile.pug | 4 +- src/views/page-registering.pug | 4 +- src/views/page-resources.pug | 16 +- .../admin/page-admin-circles-create.pug | 2 +- .../admin/page-admin-circles-join.pug | 9 +- .../admin/page-admin-circles-leave.pug | 14 +- .../partials/admin/page-admin-circles.pug | 4 +- .../admin/page-admin-projects-create.pug | 4 +- .../partials/admin/page-admin-projects.pug | 25 +- .../partials/circle/page-circle-chat.pug | 2 +- .../partials/circle/page-circle-edit.pug | 4 +- .../partials/circle/page-circle-events.pug | 6 +- .../partials/circle/page-circle-polls.pug | 8 +- .../partials/circle/page-circle-resources.pug | 14 +- .../communities/page-community-directory.pug | 2 +- .../communities/page-community-edit.pug | 8 +- .../communities/page-community-map.pug | 2 +- .../partials/project/page-project-chat.pug | 2 +- .../partials/project/page-project-edit.pug | 4 +- .../project/page-project-invoices.pug | 2 +- .../partials/project/page-project-picture.pug | 2 +- 39 files changed, 1621 insertions(+), 764 deletions(-) delete mode 100644 src/components/sentry.js rename src/{components => libs}/getRoute.js (100%) create mode 100644 src/libs/sentry.js create mode 100644 src/orbit-envoy.pug delete mode 100644 src/orbit-router.pug delete mode 100644 src/orbit-unify.pug create mode 100644 src/scripts/federationRegistering.js delete mode 100644 src/views/page-dashboard.pug delete mode 100644 src/views/page-directory.pug delete mode 100644 src/views/page-job-board.pug diff --git a/README.md b/README.md index 0844377..8230bfe 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,8 @@ On `config.json`: { "client": { "name": "Localhost", - "logo": "/images/logo.webp" + "logo": "/images/logo.webp", + "server": "http://server" }, "components": [] } @@ -107,6 +108,7 @@ Where: * `client.name` is the name of your Orbit * `client.logo` is an URL to an image file +* `client.server` is the main data server of the client * `components` is your modules declaration registry ### Optional personalisation @@ -226,18 +228,28 @@ Module declaration, on `config.json`: ```json { "type": "circles", - "endpoints": { - "get": "http://server.url/circles/", - "post": "http://server.url/circles/", - "owners": "http://server.url/users/", - "users": "http://server.url/users/", + "parameters": { + "dataSrc": "federation://circles/", + "dataSrcJoinable": "federation://circles/joinable/", + "owners": "federation://users/", + "post": "server://circles/", + "users": "federation://users/", + "noRender": "", "xmpp": "wss://xmpp-dev.startinblox.com/xmpp-websocket" - } + }, + "federation": [ + "..." + ], + "route": "circles" } ``` Where: +* `dataSrc`: is a container listing every circles +* `dataSrcJoinable`: is a container listing every public & not joined circles for the user +* `post`: is where you create new circles +* `noRender`: will load datas only when it'll be on screen, remove it if you encounter any issue * `owners`: is your users container which contains valid owners * `users`: is your users container * `xmpp` is your [Prosody](https://prosody.im/) with [appropriate modules](https://git.startinblox.com/infra/prosody-modules/) configured on. @@ -246,6 +258,8 @@ Where: You can extend circles with other components, the same way you would add them to your modules. +Extensions always inherit from its parent federation. + Actually it support: Events, Resources & Polls. Eg.: @@ -253,23 +267,34 @@ Eg.: ```json { "type": "circles", - "endpoints": { - "get": "http://server.url/circles/", - "post": "http://server.url/circles/", - "owners": "http://server.url/users/", - "users": "http://server.url/users/", + "parameters": { + "dataSrc": "federation://circles/", + "dataSrcJoinable": "federation://circles/joinable/", + "owners": "federation://users/", + "post": "server://circles/", + "users": "federation://users/", + "noRender": "", "xmpp": "wss://xmpp-dev.startinblox.com/xmpp-websocket" }, + "federation": [ + "..." + ], + "route": "circles", "extensions": [ { "type": "events", - "endpoints": { - "get": "http://server.url/events/", - "post": "http://server.url/events/", - "typeevents": "http://server.url/typeevents/", - "postTypeevents": "http://server.url/typeevents/", - "uploads": "http://server.url/upload/" - } + "parameters": { + "events": "federation://events/", + "circles": "federation://circles/", + "get": "federation://events/", + "post": "server://events/", + "postTypeevents": "server://typeevents/", + "typeevents": "federation://typeevents/", + "uploads": "server://upload/" + }, + "federation": [ + "..." + ] } ] } @@ -305,10 +330,10 @@ You can activate it by changing the route to anything else than false. Some endp ```json { "type": "communities", - "endpoints": { - "get": "http://server/communities/", - "addresses": "http://server/community-addresses/", - "uploads": "http://server/upload/" + "parameters": { + "addresses": "federation://community-addresses/", + "dataSrc": "federation://communities/", + "uploads": "server://upload/" }, "route": "communities" } @@ -325,12 +350,15 @@ Module declaration, on `config.json`: ```json { "type": "dashboard", - "endpoints": { - "get": "http://server.url/dashboards/" - }, "parameters": { - "target": "default" - } + "dataSrc": "server://dashboards/", + "noRender": "", + "target": false + }, + "route": "dashboard", + "experimental": [ + "routing" + ] } ``` @@ -338,6 +366,8 @@ A [sample fixture](https://git.startinblox.com/djangoldp-packages/djangoldp-dash You can have multiple dashboard module, see the [related documentation](https://git.startinblox.com/components/solid-dashboard#having-multiple-dashboard). +You need the experimental routing enabled to have a Dashboard. + ### Events The events module includes a listing of upcoming events and the capability to create new ones. @@ -350,19 +380,21 @@ Module declaration, on `config.json`: ```json { "type": "events", - "endpoints": { - "get": "http://server.url/events/", - "post": "http://server.url/events/", - "regionevents": "http://server.url/regionevents/", - "typeevents": "http://server.url/typeevents/", - "postTypeevents": "http://server.url/typeevents/", - "uploads": "http://server.url/upload/" - } - "parameters" : { - "pastevents": "", - "visiblecheckbox": "", - "visibilityregions": "" - } + "parameters": { + "events": "federation://events/", + "circles": "federation://circles/", + "get": "federation://events/", + "post": "server://events/", + "postTypeevents": "server://typeevents/", + "typeevents": "federation://typeevents/", + "pastevents": "visible", + "visiblecheckbox": "visible", + "visibilityregions": "visible", + "uploads": "server://upload/" + }, + "federation": [ + "..." + ] } ``` @@ -454,8 +486,8 @@ Module declaration, on `config.json`: "extensions": [ { "type": "invoices", - "endpoints": { - "uploads": "http://server.url/upload/" + "parameters": { + "uploads": "server://upload/" } } ] @@ -478,14 +510,18 @@ Module declaration, on `config.json`: ```json { "type": "jobBoard", - "endpoints": { - "get": "http://server.url/job-offers/", - "post": "http://server.url/job-offers/", - "skills": "http://server.url/skills/" - }, "parameters": { + "dataSrc": "federation://job-offers/current/", + "dataSrcExpired": "federation://job-offers/expired/", + "postDataSrc": "server://job-offers/", + "noRender": "", + "rangeSkills": "federation://skills/", "fields": "earnBusinessProviding" - } + }, + "route": "job-offers", + "experimental": [ + "routing" + ] } ``` @@ -493,6 +529,8 @@ Where: * `parameters.fields`: Optional set of custom fields. Notice that only `earnBusinessProviding` is already handled on djangoldp-joboffer. +You need the experimental routing enabled to have a Job Board. + ### Notifications The notification module adds a bell with user's notification list and a badge on each menus with how much notifications are related to this resource. You'll need: @@ -521,7 +559,8 @@ Module declaration, on `config.json`: ```json { "type": "chat", - "endpoints": { + "parameters": { + "noRender": "", "xmpp": "wss://xmpp-dev.startinblox.com/xmpp-websocket" } } @@ -542,14 +581,12 @@ On `config.json`: ```json { "type": "polls", - "endpoints": { - "get": "http://server.url/polls/", + "parameters": { + "dataSrc": "http://server.url/polls/", "post": "http://server.url/polls/", "pollRangeTags": "http://server.url/tags/", "pollRangeCircles": "http://server.url/circles/", - "uploads": "http://server.url/upload/" - }, - "parameters": { + "uploads": "http://server.url/upload/", "displayStartEndDates": false } } @@ -574,12 +611,17 @@ Module declaration, on `config.json`: ```json { "type": "projects", - "endpoints": { - "get": "http://server.url/projects/", - "post": "http://server.url/projects/", - "captains": "http://server.url/users/", + "parameters": { + "captains": "federation://users/", + "circles": "federation://circles/", + "dataSrc": "federation://projects/", + "dataSrcJoinable": "federation://projects/joinable/", + "post": "server://projects/", + "users": "federation://users/", + "noRender": "", "xmpp": "wss://xmpp-dev.startinblox.com/xmpp-websocket" - } + }, + "route": "projects" } ``` @@ -600,8 +642,8 @@ Module declaration, on `config.json`: ```json { "type": "resources", - "endpoints": { - "get": "http://server.url/resources/", + "parameters": { + "dataSrc": "http://server.url/resources/", "post": "http://server.url/resources/", "types": "http://server.url/types/", "keywords": "http://server.url/keywords/", @@ -629,11 +671,9 @@ Module declaration, on `config.json`: { "type": "registering", "parameters": { + "dataSrc": "server://open-communities/", "authority": "http://server.url/", "authorityName": "your-authority-indentifier" - }, - "endpoints": { - "get": "http://server.url/open-communities/" } } ``` @@ -675,14 +715,25 @@ Module declaration, on `config.json`: ```json { "type": "profileDirectory", - "endpoints": { - "get": "http://server.url/users/", - "skills": "http://server.url/skills/", - "uploads": "http://server.url/upload/" - } + "parameters": { + "dataSrc": "federation://users/", + "rangeSkills": "federation://skills/", + "noRender": "", + "paginateBy": "30", + "uploads": "server://upload/" + }, + "federation": [ + "..." + ], + "route": "members", + "experimental": [ + "routing" + ] } ``` +You need the experimental routing enabled to have a Profile Directory. + ### Route generation Orbit will, by default, generate an unique route for every of your module. You can customize this route by setting a `route` attribute on your module declaration. @@ -692,10 +743,10 @@ Eg. for the Users Directory: ```json { "type": "profileDirectory", - "endpoints": { - "get": "http://server.url/users/", - "skills": "http://server.url/skills/", - "uploads": "http://server.url/upload/" + "parameters": { + "dataSrc": "server://users/", + "skills": "server://skills/", + "uploads": "server://upload/" }, "route": "directory" } @@ -709,6 +760,29 @@ Some module don't need any route to be active, set `route` to `false` so. Components can get the route of a module with `window.orbit.getRoute('componentName')`. +#### Experimental routing + +This experimental setting allow to create a view containing a `solid-*` with every parameters provided without any code. + +```json + { + "type": "display", + "parameters": { + "dataSrc": "server://users/", + "fields": "name" + }, + "experimental": [ + "routing" + ] + } +``` + +will provide a view with: + +```html + +``` + #### Change the default route By default, Orbit will take a Dashboard as a default route. @@ -720,10 +794,10 @@ Eg.: ```json { "type": "profileDirectory", - "endpoints": { - "get": "http://server.url/users/", - "skills": "http://server.url/skills/", - "uploads": "http://server.url/upload/" + "parameters": { + "dataSrc": "server://users/", + "skills": "server://skills/", + "uploads": "server://upload/" }, "route": "directory", "defaultRoute": true @@ -732,6 +806,52 @@ Eg.: If there is more than one component with this parameter, it'll be ignored. +### Federation generation + +Any parameter of your config.json can take benefits from the source generation: + +`server://` will be replaced by the value of `client.server`: + +```json + { + "type": "awesome", + "parameters": { + "dataSrc": "server://users/" + } + } +``` + +`federation://` will generate a virtual federated container linking: + +* `client.server` +* `client.servers` +* `component.federation` +* `extension.federation`, if on an extension + +```json + { + "client": { + "server": "http://serverA", + "servers": [ + "http://serverB" + ] + }, + "components": [ + { + "type": "awesome", + "parameters": { + "dataSrc": "federation://users/" + }, + "federation": [ + "http://serverC" + ] + } + ] + } +``` + +Will result on a virtual federated container containing `http://serverA/users/`, `http://serverB/users/` and `http://serverC/users/` on data-src. + ## Troubleshooting ### Circles or Projects are missing the @user list diff --git a/package-lock.json b/package-lock.json index f67ab7a..a77b09a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1906,6 +1906,27 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + } + } + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -2337,6 +2358,13 @@ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "requires": { "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + } } }, "caller-path": { @@ -2347,11 +2375,6 @@ "caller-callsite": "^2.0.0" } }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -2793,17 +2816,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, "create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", @@ -2904,20 +2916,6 @@ "randomfill": "^1.0.3" } }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, "css-modules-loader-core": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz", @@ -3029,54 +3027,6 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, - "cssnano": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", - "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "cssnano-preset-default": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", - "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.3", - "postcss-unique-selectors": "^4.0.1" - } - }, "cssnano-util-get-arguments": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", @@ -4324,6 +4274,528 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "cssnano": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.8", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.3", + "postcss-unique-selectors": "^4.0.1" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-svgo": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, "posthtml": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.13.4.tgz", @@ -4341,6 +4813,33 @@ "htmlparser2": "^3.9.2" } }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, "terser": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", @@ -4429,15 +4928,6 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -4469,11 +4959,6 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" - }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -4545,6 +5030,13 @@ "hsla-regex": "^1.0.0", "rgb-regex": "^1.0.1", "rgba-regex": "^1.0.0" + }, + "dependencies": { + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + } } }, "is-core-module": { @@ -5517,10 +6009,10 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" }, "normalize.css": { "version": "8.0.1", @@ -5544,6 +6036,11 @@ "boolbase": "~1.0.0" } }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -5891,6 +6388,17 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -5903,10 +6411,454 @@ "which": "^1.2.9" } }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "cssnano": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.8", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.3", + "postcss-unique-selectors": "^4.0.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + } + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-svgo": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -5942,15 +6894,6 @@ "safe-buffer": "^5.1.1" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, "parse5": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", @@ -6046,9 +6989,9 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -6070,168 +7013,6 @@ } } }, - "postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - }, - "dependencies": { - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" - } - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, "postcss-modules-extract-imports": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", @@ -6367,128 +7148,6 @@ } } }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, "postcss-selector-parser": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", @@ -6500,26 +7159,6 @@ "util-deprecate": "^1.0.2" } }, - "postcss-svgo": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", - "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, "postcss-value-parser": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", @@ -7050,11 +7689,6 @@ "path-parse": "^1.0.6" } }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -7831,28 +8465,6 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -8125,11 +8737,26 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, "is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, "postcss-selector-parser": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", @@ -8139,6 +8766,14 @@ "indexes-of": "^1.0.1", "uniq": "^1.0.1" } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } } } }, diff --git a/package.json b/package.json index 0a32089..58268ec 100644 --- a/package.json +++ b/package.json @@ -56,8 +56,14 @@ ], "clearDist": false }, + "postcss": { + "plugins": { + "autoprefixer": {} + } + }, "dependencies": { "@startinblox/orbit-styling-framework": "^1.9.9", + "autoprefixer": "^9.8.6", "cross-env": "^7.0.3", "fs-extra": "^10.0.0", "normalize.css": "^8.0.1", diff --git a/src/components/sentry.js b/src/components/sentry.js deleted file mode 100644 index bdbb7f2..0000000 --- a/src/components/sentry.js +++ /dev/null @@ -1,8 +0,0 @@ -if (typeof Sentry !== 'undefined') { - Sentry.init({ - dsn: 'https://b4b29557689049a39168599577adb940@sentry.startinblox.com/4', - integrations: [new Sentry.Integrations.BrowserTracing()], - environment: document.location.hostname, - tracesSampleRate: 0.2, - }); -} \ No newline at end of file diff --git a/src/index.js b/src/index.js index 170e7c9..c67f6fb 100644 --- a/src/index.js +++ b/src/index.js @@ -1,2 +1,3 @@ //- Automatically import every scripts +import './libs/**/*.js'; import './scripts/**/*.js'; \ No newline at end of file diff --git a/src/index.pug b/src/index.pug index c7e00f6..969592e 100644 --- a/src/index.pug +++ b/src/index.pug @@ -25,11 +25,8 @@ html(lang="en") script(src="https://browser.sentry-cdn.com/5.25.0/bundle.tracing.min.js" defer) - include orbit-router.pug - include orbit-unify.pug + include orbit-envoy.pug - script(type="module" src="/components/getRoute.js" defer) - script(type="module" src="/components/sentry.js" defer) script(type="module" src="/components/orbit-auto-login.js" defer) script(type="module" src="/components/orbit-reactivity.js" defer) script(type="module" src="/components/sw-toolbox.js" defer) @@ -88,7 +85,27 @@ html(lang="en") id=component.route data-view=component.route hidden - )&attributes({"no-render": component.noRender}) + ) + + //- Experimental routing + Codeless component loading + Eg.: + ``` + { + "type": "awesome", + "parameters": { + "dataSrc": "server://some-model/" + }, + "experimental": [ + "routing" + ] + } + ``` + will generate a view vith a + if component.experimental + if component.experimental.includes('routing') + .scrollbar-content.whitespace-normal.padding-top-xlarge.padding-right-xsmall.padding-bottom-xlarge.padding-left-xsmall.sm-padding-top-medium + #{"solid-"+component.type}&attributes(component.attributes) if component.type == "about" include views/page-about.pug @@ -102,66 +119,52 @@ html(lang="en") .with-sidebar.whitespace-normal.jsMobileContentSidebarControl orbit-reactivity(bind-user nested-field='inbox' target-src="store://user.circles") orbit-reactivity(bind-user nested-field="circles" target-src="store://user") - orbit-reactivity(data-src=`${component.endpoints.get}joinable/` target-src=`${component.endpoints.get}`) - orbit-reactivity(data-src=`${component.endpoints.post}` target-src=`${component.endpoints.get}`) - orbit-reactivity(bind-user nested-field="circles" target-src=`${component.endpoints.post}`) - orbit-reactivity(bind-user nested-field="circles" target-src=`${component.endpoints.post}joinable/`) - orbit-reactivity(data-src=`${component.endpoints.get}joinable/` target-src=`${component.endpoints.get}`) - orbit-reactivity(bind-user nested-field="circles" target-src=`${component.endpoints.get}`) - orbit-reactivity(bind-user nested-field="circles" target-src=`${component.endpoints.get}joinable/`) + orbit-reactivity(data-src=`${component.parameters.dataSrcJoinable}` target-src=`${component.parameters.dataSrc}`) + orbit-reactivity(data-src=`${component.parameters.post}` target-src=`${component.parameters.dataSrc}`) + orbit-reactivity(bind-user nested-field="circles" target-src=`${component.parameters.post}`) + orbit-reactivity(bind-user nested-field="circles" target-src=`${component.parameters.dataSrcJoinable}`) + orbit-reactivity(bind-user nested-field="circles" target-src=`${component.parameters.dataSrc}`) include views/page-circle.pug if component.type == "communities" .scrollbar-content.whitespace-normal include views/page-communities.pug - if component.type == "dashboard" - .scrollbar-content - include views/page-dashboard.pug - if component.type == "events" .scrollbar-content.bg-color-white include views/page-events.pug if component.type == "jobBoard" - .scrollbar-content - orbit-reactivity(data-src=`${component.endpoints.post}current/` target-src=`${component.endpoints.get}`) - orbit-reactivity(data-src=`${component.endpoints.post}expired/` target-src=`${component.endpoints.get}`) - orbit-reactivity(data-src=`${component.endpoints.post}` target-src=`${component.endpoints.get}`) - orbit-reactivity(data-src=`${component.endpoints.get}current/` target-src=`${component.endpoints.get}`) - orbit-reactivity(data-src=`${component.endpoints.get}current/` target-src=`${component.endpoints.get}expired/`) - orbit-reactivity(data-src=`${component.endpoints.get}expired/` target-src=`${component.endpoints.get}`) - orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.endpoints.get}expired/`) - orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.endpoints.get}`) - orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.endpoints.get}current/`) - include views/page-job-board.pug + orbit-reactivity(data-src=`${component.parameters.dataSrcExpired}` target-src=`${component.parameters.dataSrc}`) + orbit-reactivity(data-src=`${component.parameters.post}` target-src=`${component.parameters.dataSrc}`) + orbit-reactivity(data-src=`${component.parameters.dataSrcExpired}` target-src=`${component.parameters.post}`) + orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.parameters.dataSrc}`) + orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.parameters.dataSrcExpired}`) + orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.parameters.post}`) if component.type == "polls" .scrollbar-content include views/page-polls.pug + if component.type == "profileDirectory" + orbit-reactivity(bind-user nested-field="profile" target-src="store://user") + orbit-reactivity(bind-user nested-field="account" target-src="store://user") + if component.type == "projects" .with-sidebar.whitespace-normal.jsMobileContentSidebarControl orbit-reactivity(bind-user nested-field='inbox' target-src="store://user.projects") orbit-reactivity(bind-user nested-field="projects" target-src="store://user") - orbit-reactivity(data-src=`${component.endpoints.post}joinable/` target-src=`${component.endpoints.get}`) - orbit-reactivity(data-src=`${component.endpoints.post}` target-src=`${component.endpoints.get}`) - orbit-reactivity(bind-user nested-field="projects" target-src=`${component.endpoints.post}`) - orbit-reactivity(bind-user nested-field="projects" target-src=`${component.endpoints.post}joinable/`) - orbit-reactivity(data-src=`${component.endpoints.get}joinable/` target-src=`${component.endpoints.get}`) - orbit-reactivity(bind-user nested-field="projects" target-src=`${component.endpoints.get}`) - orbit-reactivity(bind-user nested-field="projects" target-src=`${component.endpoints.get}joinable/`) + orbit-reactivity(data-src=`${component.parameters.dataSrcJoinable}` target-src=`${component.parameters.dataSrc}`) + orbit-reactivity(data-src=`${component.parameters.dataSrcJoinable}` target-src=`${component.parameters.post}`) + orbit-reactivity(data-src=`${component.parameters.post}` target-src=`${component.parameters.dataSrc}`) + orbit-reactivity(bind-user nested-field="projects" target-src=`${component.parameters.post}`) + orbit-reactivity(bind-user nested-field="projects" target-src=`${component.parameters.dataSrcJoinable}`) + orbit-reactivity(bind-user nested-field="projects" target-src=`${component.parameters.dataSrc}`) include views/page-project.pug if component.type == "resources" .scrollbar-content.bg-color-white include views/page-resources.pug - - if component.type == "profileDirectory" - .scrollbar-content - orbit-reactivity(bind-user nested-field="profile" target-src="store://user") - orbit-reactivity(bind-user nested-field="account" target-src="store://user") - include views/page-directory.pug else //- Components declaration without any route (`route`="false") but that need some code declaration diff --git a/src/components/getRoute.js b/src/libs/getRoute.js similarity index 100% rename from src/components/getRoute.js rename to src/libs/getRoute.js diff --git a/src/libs/sentry.js b/src/libs/sentry.js new file mode 100644 index 0000000..ce56b0f --- /dev/null +++ b/src/libs/sentry.js @@ -0,0 +1,11 @@ +document.addEventListener("DOMContentLoaded", () => { + if (typeof Sentry !== 'undefined') { + Sentry.init({ + dsn: 'https://b4b29557689049a39168599577adb940@sentry.startinblox.com/4', + integrations: [new Sentry.Integrations.BrowserTracing()], + environment: document.location.hostname, + tracesSampleRate: 0.2, + }); + window.orbit.sentry = Sentry; + } +}); \ No newline at end of file diff --git a/src/orbit-envoy.pug b/src/orbit-envoy.pug new file mode 100644 index 0000000..dc95b44 --- /dev/null +++ b/src/orbit-envoy.pug @@ -0,0 +1,198 @@ +//- + Orbit Envoy - Collision-free route generation & federation management for latter usage + + Create a window.orbit.components, accessible by all components with the route declaration. + Components can also get benefits from the `getRoute` function + Eg. + ``` + window.orbit.getRoute('chat', true) + window.orbit.getRoute('ffb39ad020645') // Where uxnzsa is the uniq of the component + ``` + will return the route of the first chat component, if exists, or triggers an error. + + + Okay. This file really needs a cleanup now... Emergency, have to release for Friday... +- + let routes = new Set(); + const getRoute = (type, returnFirst = false) => { + let availables = components.filter(c => c.type == type || c.uniq == type); + components.forEach(c => { + if (c.extensions) { + c.extensions.forEach(e => { + if (e.type == type || e.uniq == type) { + availables.push(e); + } + }); + } + }); + if (availables.length > 1) { + if (returnFirst) { + return availables[0].route; + } else { + return availables[availables.length - 1].route; + } + } else if (availables.length < 1) { + console.error(`No component found for route ${type}`); + } else { + return availables[0].route; + } + } + const getComponent = (type, returnFirst = false) => { + let availables = components.filter(c=>c.type==type); + if(availables.length > 1) { + if(returnFirst) { + return availables[0]; + } else { + console.error(`Too much components availables for type ${type}`); + } + } else if(availables.length < 1) { + console.error(`No component found for type ${type}`); + } else { + return availables[0]; + } + } + const generateUrl = (federation, path) => { + let result = []; + for(let target of federation) { + result.push({ + "@id": target + path.replace(/federation:\//, ''), + "@type": "sib:federatedContainer" + }); + } + return result; + } + var federations = {}; + let federationRegistering = ""; + +for component of components + - + if(typeof component.route === 'undefined') { + component.route = component.type; + } + component.uniq = Math.random().toString(16).slice(2); + if(component.route) { + let route = component.route; + if (routes.has(component.route)) { + route += "-" + component.uniq; + } + routes.add(route); + component.route = route; + } + if(component.extensions) { + for(extension of component.extensions) { + if(typeof extension.route === 'undefined') { + extension.route = extension.type; + } + extension.uniq = Math.random().toString(16).slice(2); + if(extension.route) { + let route = extension.route; + if (routes.has(extension.route)) { + route += "-" + extension.uniq; + } + routes.add(route); + extension.route = route; + } + } + } + if(component.parameters) { + let federation = new Set(); + if(client.server) { + federation.add(client.server); + } + if(client.servers) { + for(server of client.servers) { + federation.add(server); + } + } + if(component.federation) { + for(target of component.federation) { + federation.add(target); + } + } + component.federation = [...federation]; + for(const [attribute, path] of Object.entries(component.parameters)) { + if(typeof path === 'string') { + if(path.startsWith('federation://')) { + federations[`store://local.${component.uniq}/${attribute}/`] = { + "@context": "https://cdn.happy-dev.fr/owl/hdcontext.jsonld", + "@type": "ldp:Container", + "@id": `store://local.${component.uniq}/${attribute}/`, + "ldp:contains": generateUrl(federation, path), + "permissions": [{"mode": {"@type": "view"}}] + }; + component.parameters[attribute] = `store://local.${component.uniq}/${attribute}/`; + } + if(path.startsWith('server://')) { + component.parameters[attribute] = client.server + path.replace(/server:\//, ''); + } + } + } + /* Rewrite every parameters to kebab-case */ + let rewriteParameters = {}; + for(const [attribute, value] of Object.entries(component.parameters)) { + rewriteParameters[attribute.replace(/((?<=[a-z\d])[A-Z]|(?<=[A-Z\d])[A-Z](?=[a-z]))/g, '-$1').toLowerCase()] = value; + } + component.attributes = rewriteParameters; + component.attributes.route = component.route; + component.attributes.uniq = component.uniq; + } + if(component.extensions) { + for(extension of component.extensions) { + if(extension.parameters) { + let federation = new Set(); + if(client.server) { + federation.add(client.server); + } + if(client.servers) { + for(server of client.servers) { + federation.add(server); + } + } + if(component.federation) { + for(target of component.federation) { + federation.add(target); + } + } + if(extension.federation) { + for(target of extension.federation) { + federation.add(target); + } + } + extension.federation = [...federation]; + for(const [attribute, path] of Object.entries(extension.parameters)) { + if(typeof path === 'string') { + if(path.startsWith('federation://')) { + federations[`store://local.${extension.uniq}/${attribute}/`] = { + "@context": "https://cdn.happy-dev.fr/owl/hdcontext.jsonld", + "@type": "ldp:Container", + "@id": `store://local.${extension.uniq}/${attribute}/`, + "ldp:contains": generateUrl(federation, path), + "permissions": [{"mode": {"@type": "view"}}] + }; + extension.parameters[attribute] = `store://local.${extension.uniq}/${attribute}/`; + } + if(path.startsWith('server://')) { + extension.parameters[attribute] = client.server + path.replace(/server:\//, ''); + } + } + } + /* Rewrite every parameters to kebab-case */ + let rewriteParameters = {}; + for(const [attribute, value] of Object.entries(extension.parameters)) { + rewriteParameters[attribute.replace(/((?<=[a-z\d])[A-Z]|(?<=[A-Z\d])[A-Z](?=[a-z]))/g, '-$1').toLowerCase()] = value; + } + extension.attributes = rewriteParameters; + extension.attributes.uniq = extension.uniq; + } + } + } + +- + const defaultComponent = components.filter(e=>e.defaultRoute != undefined); + let defaultRoute = "dashboard"; + if(defaultComponent.length == 1) { + defaultRoute = defaultComponent[0].uniq; + } + +- const orbitComponents = `window.orbit={};window.orbit.components = ${JSON.stringify(components)};window.orbit.federations = ${JSON.stringify(federations)};window.orbit.defaultRoute = "${defaultRoute}";window.orbit.client = ${JSON.stringify(client)};window.hubl = window.orbit;`; +script!=orbitComponents \ No newline at end of file diff --git a/src/orbit-router.pug b/src/orbit-router.pug deleted file mode 100644 index fccf125..0000000 --- a/src/orbit-router.pug +++ /dev/null @@ -1,89 +0,0 @@ -//- - Orbit router declaration for latter generation - Create a window.orbit.components, accessible by all components with the route declaration. - Components can also get benefits from the `getRoute` function - Eg. - ``` - window.orbit.getRoute('chat', true) - window.orbit.getRoute('uxnzsa') // Where uxnzsa is the uniq of the component - ``` - will return the route of the first chat component, if exists, or triggers an error. -- - let routes = new Set(); - const getRoute = (type, returnFirst = false) => { - let availables = components.filter(c => c.type == type || c.uniq == type); - components.forEach(c => { - if (c.extensions) { - c.extensions.forEach(e => { - if (e.type == type || e.uniq == type) { - availables.push(e); - } - }); - } - }); - if (availables.length > 1) { - if (returnFirst) { - return availables[0].route; - } else { - return availables[availables.length - 1].route; - } - } else if (availables.length < 1) { - console.error(`No component found for route ${type}`); - } else { - return availables[0].route; - } - } - const getComponent = (type, returnFirst = false) => { - let availables = components.filter(c=>c.type==type); - if(availables.length > 1) { - if(returnFirst) { - return availables[0]; - } else { - console.error(`Too much components availables for type ${type}`); - } - } else if(availables.length < 1) { - console.error(`No component found for type ${type}`); - } else { - return availables[0]; - } - } - -for component of components - - - if(typeof component.route === 'undefined') { - component.route = component.type; - } - if(component.route) { - component.uniq = Math.random().toString(16).slice(2); - let route = component.route; - if (routes.has(component.route)) { - route += "-" + component.uniq; - } - routes.add(route); - component.route = route; - } - if(component.extensions) - for extension of component.extensions - - - if(typeof extension.route === 'undefined') { - extension.route = extension.type; - } - if(extension.route) { - extension.uniq = Math.random().toString(16).slice(2); - let route = extension.route; - if (routes.has(extension.route)) { - route += "-" + extension.uniq; - } - routes.add(route); - extension.route = route; - } - -- - const defaultComponent = components.filter(e=>e.defaultRoute != undefined); - let defaultRoute = "dashboard"; - if(defaultComponent.length == 1) { - defaultRoute = defaultComponent[0].uniq; - } - -- const orbitComponents = `window.orbit={};window.orbit.components = ${JSON.stringify(components)};window.orbit.defaultRoute = "${defaultRoute}";window.orbit.client = ${JSON.stringify(client)};window.hubl = window.orbit;`; -script!=orbitComponents \ No newline at end of file diff --git a/src/orbit-unify.pug b/src/orbit-unify.pug deleted file mode 100644 index e69de29..0000000 diff --git a/src/scripts/federationRegistering.js b/src/scripts/federationRegistering.js new file mode 100644 index 0000000..0dbf716 --- /dev/null +++ b/src/scripts/federationRegistering.js @@ -0,0 +1,7 @@ +document.addEventListener("DOMContentLoaded", () => { + for(const [uniq, federation] of Object.entries(window.orbit.federations)) { + if (sibStore && "setLocalData" in sibStore) { + sibStore.setLocalData(federation, uniq); + } + } +}); \ No newline at end of file diff --git a/src/views/page-dashboard.pug b/src/views/page-dashboard.pug deleted file mode 100644 index 6d66673..0000000 --- a/src/views/page-dashboard.pug +++ /dev/null @@ -1,5 +0,0 @@ -div.padding-top-xlarge.padding-right-xsmall.padding-bottom-xlarge.padding-left-xsmall.sm-padding-top-medium.bg-color-grey.whitespace-normal - solid-dashboard( - data-src=component.endpoints.get - uniq=component.uniq - )&attributes({target:component.parameters ? component.parameters.target : false}) diff --git a/src/views/page-directory.pug b/src/views/page-directory.pug deleted file mode 100644 index 635c5dd..0000000 --- a/src/views/page-directory.pug +++ /dev/null @@ -1,7 +0,0 @@ -div.bg-color-grey.padding-top-xlarge.padding-right-small.padding-bottom-xlarge.padding-left-small.whitespace-normal - solid-directory( - data-src=`${component.endpoints.get}` - range-skills=`${component.endpoints.skills}` - uniq=component.uniq - paginate-by="30" - ) diff --git a/src/views/page-events.pug b/src/views/page-events.pug index 5b5d7b3..b7ee209 100644 --- a/src/views/page-events.pug +++ b/src/views/page-events.pug @@ -1,12 +1,11 @@ -div.whitespace-normal - solid-event( - data-src=`${component.endpoints.events}` - past-events=`${component.parameters ? component.parameters.pastevents : "hidden"}` - visiblecheckbox=`${component.parameters ? component.parameters.visiblecheckbox : "hidden"}` - visibilityregions=`${component.parameters ? component.parameters.visibilityregions : "hidden"}` - range-event-region=`${component.endpoints.regionevents}` - range-event-type=`${component.endpoints.typeevents}` - range-event-circle=`${getComponent('circles').endpoints.get}/` - upload-dir=`${component.endpoints.uploads}` - id-prefix='default' - ) +solid-event( + data-src=`${component.parameters.events}` + past-events=`${component.parameters.pastevents || "hidden"}` + visiblecheckbox=`${component.parameters.visiblecheckbox || "hidden"}` + visibilityregions=`${component.parameters.visibilityregions || "hidden"}` + range-event-region=`${component.parameters.regionevents}` + range-event-type=`${component.parameters.typeevents}` + range-event-circle=`${component.parameters.circles}` + upload-dir=`${component.parameters.uploads}` + id-prefix='default' +) diff --git a/src/views/page-job-board.pug b/src/views/page-job-board.pug deleted file mode 100644 index 474feaf..0000000 --- a/src/views/page-job-board.pug +++ /dev/null @@ -1,8 +0,0 @@ -solid-job-board( - data-src=`${component.endpoints.get}` - post-data-src=`${component.endpoints.post}` - range-skills=`${component.endpoints.skills}` - uniq=component.uniq -)&attributes({ - "fields": component.parameters ? component.parameters.fields : false -}) diff --git a/src/views/page-messages.pug b/src/views/page-messages.pug index a3b2e46..e5e9122 100644 --- a/src/views/page-messages.pug +++ b/src/views/page-messages.pug @@ -25,7 +25,7 @@ div.segment.full.padding-top-small.padding-right-large.padding-bottom-small.padd solid-xmpp-chat( data-authentication='login' data-auto-login='true' - data-websocket-url=component.endpoints.xmpp + data-websocket-url=component.parameters.xmpp bind-resources uniq=component.uniq ) diff --git a/src/views/page-polls.pug b/src/views/page-polls.pug index a169131..04fbad8 100644 --- a/src/views/page-polls.pug +++ b/src/views/page-polls.pug @@ -1,9 +1,9 @@ solid-poll( - data-src=component.endpoints.get - data-dest=component.endpoints.post - range-tags=component.endpoints.pollRangeTags - range-circles=component.endpoints.pollRangeCircles - upload-dir=component.endpoints.uploads + data-src=component.parameters.dataSrc + data-dest=component.parameters.post + range-tags=component.parameters.pollRangeTags + range-circles=component.parameters.pollRangeCircles + upload-dir=component.parameters.uploads uniq=component.uniq )&attributes({ "display-start-end-dates": component.parameters ? component.parameters.displayStartEndDates : false diff --git a/src/views/page-profile.pug b/src/views/page-profile.pug index c536ab0..ae4673f 100644 --- a/src/views/page-profile.pug +++ b/src/views/page-profile.pug @@ -1,6 +1,6 @@ solid-profile( bind-user - upload-src=`${getComponent('profileDirectory', true).endpoints.uploads}` - range-skills=`${getComponent('profileDirectory', true).endpoints.skills}` + upload-src=`${getComponent('profileDirectory', true).parameters.uploads}` + range-skills=`${getComponent('profileDirectory', true).parameters.skills}` uniq=`${getComponent('profileDirectory', true).uniq}` ) diff --git a/src/views/page-registering.pug b/src/views/page-registering.pug index e9b4a11..025058e 100644 --- a/src/views/page-registering.pug +++ b/src/views/page-registering.pug @@ -28,14 +28,14 @@ widget-logo='orbit-index-community-logo' widget-name='orbit-index-community-text' ) - if getComponent('registering').endpoints.get + if getComponent('registering').parameters.dataSrc div.loader#orbit-index-community-selector-loader div div div div solid-display.community-flex-container( - data-src=`${getComponent('registering').endpoints.get}` + data-src=`${getComponent('registering').parameters.dataSrc}` fields='action' action-action='action' widget-action='orbit-index-select-community' diff --git a/src/views/page-resources.pug b/src/views/page-resources.pug index c29dac9..a6dfa46 100644 --- a/src/views/page-resources.pug +++ b/src/views/page-resources.pug @@ -1,14 +1,14 @@ div.whitespace-normal - solid-resource(data-src=`${component.endpoints.get}` - post-data-src=`${component.endpoints.post}` - range-resource-type=`${component.endpoints.types}` - post-data-type-src=`${component.endpoints.postTypes}` - range-resource-keyword=`${component.endpoints.keywords}` - post-data-keyword-src=`${component.endpoints.postKeywords}` - circles=`${component.endpoints.circles}/` + solid-resource(data-src=`${component.parameters.dataSrc}` + post-data-src=`${component.parameters.post}` + range-resource-type=`${component.parameters.types}` + post-data-type-src=`${component.parameters.postTypes}` + range-resource-keyword=`${component.parameters.keywords}` + post-data-keyword-src=`${component.parameters.postKeywords}` + circles=`${component.parameters.circles}` associated-circle-label="" data-trans=`associated-circle-label=${component.parameters && component.parameters.associatedName ? component.parameters.associatedName : 'circle.extensions.associated'}` - upload-dir=`${component.endpoints.uploads}` + upload-dir=`${component.parameters.uploads}` id-prefix='default' uniq=component.uniq ) diff --git a/src/views/partials/admin/page-admin-circles-create.pug b/src/views/partials/admin/page-admin-circles-create.pug index 9e5aade..9f53b12 100644 --- a/src/views/partials/admin/page-admin-circles-create.pug +++ b/src/views/partials/admin/page-admin-circles-create.pug @@ -14,7 +14,7 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac div solid-form.form( - data-src=`${getComponent('circles').endpoints.post}` + data-src=`${getComponent('circles').parameters.post}` fields='status, community.community, name, subtitle, description, help' required-status diff --git a/src/views/partials/admin/page-admin-circles-join.pug b/src/views/partials/admin/page-admin-circles-join.pug index eabdb9f..7f8025f 100644 --- a/src/views/partials/admin/page-admin-circles-join.pug +++ b/src/views/partials/admin/page-admin-circles-join.pug @@ -13,10 +13,9 @@ solid-widget(name=`orbit-admin-circle-join-button`) class-submit-button="add-member-button segment sm-full margin-top-xsmall text-xsmall children-link-button children-link-text-bold children-link-text-uppercase children-link-reversed color-secondary bordered children-button-icon children-icon-arrow-right-circle children-icon-small children-icon-margin-right-xsmall" data-trans='submit-button=circle.list.buttonJoin' ) - orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}joinable/` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrc}` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrcJoinable}` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('circles').parameters.post}` target-src='${value}') orbit-reactivity(bind-user nested-field="circles" target-src='${value}') include page-admin-circles.pug @@ -24,7 +23,7 @@ include page-admin-circles.pug div.segment.full.padding-small.padding-top-xsmall.sm-padding-xsmall.whitespace-normal solid-display( class='segment full children children-quarter sm-children-full children-margin-bottom-medium sm-children-margin-bottom-xsmall children-padding-right-xsmall children-padding-left-xsmall sm-children-padding-none sm-whitespace-normal masonry pagination' - data-src=`${getComponent('circles').endpoints.get}joinable/` + data-src=`${getComponent('circles').parameters.dataSrcJoinable}` fields='segment1(segment2(community.community.logo), segment3(name, subtitle, counter, members))' filtered-by=`admin-circle-filter-${page}` order-by='name' diff --git a/src/views/partials/admin/page-admin-circles-leave.pug b/src/views/partials/admin/page-admin-circles-leave.pug index 1440cd6..934ee5e 100644 --- a/src/views/partials/admin/page-admin-circles-leave.pug +++ b/src/views/partials/admin/page-admin-circles-leave.pug @@ -1,9 +1,8 @@ solid-widget(name=`leave-circle-reactivity`) template - orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}joinable/` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrc}` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrcJoinable}` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('circles').parameters.post}` target-src='${value}') orbit-reactivity(bind-user nested-field="circles" target-src='${value}') solid-widget(name=`orbit-admin-circle-leave-button`) @@ -14,10 +13,9 @@ solid-widget(name=`orbit-admin-circle-leave-button`) data-label='' data-trans='data-label=circle.list.buttonQuit' ) - orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}` target-src='${src}') - orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}joinable/` target-src='${src}') - orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}` target-src='${src}') - orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${src}') + orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrc}` target-src='${src}') + orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrcJoinable}` target-src='${src}') + orbit-reactivity(data-src=`${getComponent('circles').parameters.post}` target-src='${src}') orbit-reactivity(bind-user nested-field="circles" target-src='${src}') solid-display( data-src="${src}" diff --git a/src/views/partials/admin/page-admin-circles.pug b/src/views/partials/admin/page-admin-circles.pug index 5e5159e..34cdffc 100644 --- a/src/views/partials/admin/page-admin-circles.pug +++ b/src/views/partials/admin/page-admin-circles.pug @@ -16,7 +16,7 @@ div.segment.full.padding-large.padding-top-medium.padding-bottom-xsmall.sm-paddi div.segment.half.sm-full h3.text-color-heading.text-semibold.text-letter-spacing-large(data-trans='circle.list.subTitle') div.segment.half.sm-full.text-right - solid-ac-checker(data-src=`${getComponent('circles').endpoints.post}`, permission='acl:Append') + solid-ac-checker(data-src=`${getComponent('circles').parameters.post}`, permission='acl:Append') solid-link( class='segment sm-full button text-xsmall text-bold text-uppercase text-center reversed color-secondary bordered button-icon icon icon-margin-right-xsmall icon-plus' next=`admin-${getRoute('circles', true)}-create` @@ -43,7 +43,7 @@ div.segment.full.padding-large.padding-top-medium.padding-bottom-xsmall.sm-paddi span(data-trans='circle.list.tabJoin') solid-display( class="margin-left-xxsmall" - data-src=`${getComponent('circles').endpoints.get}joinable/` + data-src=`${getComponent('circles').parameters.dataSrcJoinable}` fields="" counter-template="(${counter})" filtered-by=`admin-circle-filter-${page}` diff --git a/src/views/partials/admin/page-admin-projects-create.pug b/src/views/partials/admin/page-admin-projects-create.pug index f58ad02..022bb9b 100644 --- a/src/views/partials/admin/page-admin-projects-create.pug +++ b/src/views/partials/admin/page-admin-projects-create.pug @@ -14,9 +14,9 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac div solid-form.form( - data-src=`${getComponent('projects').endpoints.post}` + data-src=`${getComponent('projects').parameters.post}` - range-captain=`${getComponent('projects').endpoints.captains}` + range-captain=`${getComponent('projects').parameters.captains}` required-status required-customer.name diff --git a/src/views/partials/admin/page-admin-projects.pug b/src/views/partials/admin/page-admin-projects.pug index 813c2bb..32c121e 100644 --- a/src/views/partials/admin/page-admin-projects.pug +++ b/src/views/partials/admin/page-admin-projects.pug @@ -10,7 +10,7 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac div.segment.half.sm-full h3.text-color-heading.text-semibold.text-letter-spacing-large(data-trans='project.list.subTitle') div.segment.half.sm-full.text-right - solid-ac-checker(data-src=`${getComponent('projects').endpoints.post}`, permission='acl:Append') + solid-ac-checker(data-src=`${getComponent('projects').parameters.post}`, permission='acl:Append') solid-link( class='segment sm-full button text-xsmall text-bold text-uppercase text-center reversed color-secondary bordered button-icon icon icon-margin-right-xsmall icon-plus' next=`admin-${getRoute('projects', true)}-create` @@ -40,10 +40,9 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac solid-widget(name=`leave-project-reactivity`) template - orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}joinable/` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrc}` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrcJoinable}` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('projects').parameters.post}` target-src='${value}') orbit-reactivity(bind-user nested-field="projects" target-src='${value}') solid-widget(name=`orbit-admin-project-leave-button`) @@ -54,10 +53,9 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac data-label='' data-trans='data-label=project.list.buttonQuit' ) - orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}` target-src='${src}') - orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}joinable/` target-src='${src}') - orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}` target-src='${src}') - orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${src}') + orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrc}` target-src='${src}') + orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrcJoinable}` target-src='${src}') + orbit-reactivity(data-src=`${getComponent('projects').parameters.post}` target-src='${src}') orbit-reactivity(bind-user nested-field="projects" target-src='${src}') solid-display( data-src="${src}" @@ -119,17 +117,16 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac class-submit-button="add-member-button segment margin-top-xsmall text-xsmall children-link-button children-link-text-bold children-link-text-uppercase children-link-reversed color-secondary bordered children-button-icon children-icon-arrow-right-circle children-icon-small children-icon-margin-right-xsmall" data-trans='submit-button=project.list.buttonJoin' ) - orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}joinable/` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}` target-src='${value}') - orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrc}` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrcJoinable}` target-src='${value}') + orbit-reactivity(data-src=`${getComponent('projects').parameters.post}` target-src='${value}') orbit-reactivity(bind-user nested-field="projects" target-src='${value}') solid-display( class='table-body' filtered-by="admin-project-filter" - data-src=`${getComponent('projects').endpoints.get}joinable/` + data-src=`${getComponent('projects').parameters.dataSrcJoinable}` fields='cell1(customer.name, counter, name), cell2(members), cell3(captain), cell4(joinButton)' loader-id='loader-admin-projects' diff --git a/src/views/partials/circle/page-circle-chat.pug b/src/views/partials/circle/page-circle-chat.pug index 80ad844..8ba95db 100644 --- a/src/views/partials/circle/page-circle-chat.pug +++ b/src/views/partials/circle/page-circle-chat.pug @@ -16,7 +16,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p solid-xmpp-chat( data-authentication='login' data-auto-login='true' - data-websocket-url=component.endpoints.xmpp + data-websocket-url=component.parameters.xmpp bind-resources uniq=component.uniq ) diff --git a/src/views/partials/circle/page-circle-edit.pug b/src/views/partials/circle/page-circle-edit.pug index f3d2ce6..4804bf6 100644 --- a/src/views/partials/circle/page-circle-edit.pug +++ b/src/views/partials/circle/page-circle-edit.pug @@ -33,7 +33,7 @@ div.segment.full.padding-large.whitespace-normal required-owner required-subtitle required-community.community - range-owner=`${component.endpoints.owners}` + range-owner=`${component.parameters.owners}` label-name='' label-owner='' @@ -79,7 +79,7 @@ div.segment.full.padding-large.whitespace-normal bind-resources nested-field='members' fields='user' - range-user=`${component.endpoints.users}` + range-user=`${component.parameters.users}` class-user='segment block margin-bottom' widget-user='solid-form-dropdown-autocompletion' diff --git a/src/views/partials/circle/page-circle-events.pug b/src/views/partials/circle/page-circle-events.pug index d9a88c3..07e54e9 100644 --- a/src/views/partials/circle/page-circle-events.pug +++ b/src/views/partials/circle/page-circle-events.pug @@ -1,9 +1,9 @@ solid-event( bind-resources nested-field="events" - range-event-type=`${extension.endpoints.typeevents}` - range-event-circle=`${getComponent('circles').endpoints.get}/` - upload-dir=`${extension.endpoints.uploads}` + range-event-type=`${extension.parameters.typeevents}` + range-event-circle=`${extension.parameters.circles}` + upload-dir=`${extension.parameters.uploads}` id-prefix='default' uniq=extension.uniq ) diff --git a/src/views/partials/circle/page-circle-polls.pug b/src/views/partials/circle/page-circle-polls.pug index ae4f8d8..01fec77 100644 --- a/src/views/partials/circle/page-circle-polls.pug +++ b/src/views/partials/circle/page-circle-polls.pug @@ -1,10 +1,10 @@ solid-poll( bind-resources nested-field="polls" - data-dest=extension.endpoints.post - range-tags=extension.endpoints.pollRangeTags - range-circles=extension.endpoints.pollRangeCircles - upload-dir=extension.endpoints.uploads + data-dest=extension.parameters.post + range-tags=extension.parameters.pollRangeTags + range-circles=extension.parameters.pollRangeCircles + upload-dir=extension.parameters.uploads uniq=extension.uniq )&attributes({ "display-start-end-dates": extension.parameters ? extension.parameters.displayStartEndDates : false diff --git a/src/views/partials/circle/page-circle-resources.pug b/src/views/partials/circle/page-circle-resources.pug index 0f0faa2..b70db1d 100644 --- a/src/views/partials/circle/page-circle-resources.pug +++ b/src/views/partials/circle/page-circle-resources.pug @@ -1,14 +1,14 @@ solid-resource( bind-resources nested-field="resources" - post-data-src=`${extension.endpoints.post}` - range-resource-type=`${extension.endpoints.types}` - post-data-type-src=`${extension.endpoints.postTypes}` - range-resource-keyword=`${extension.endpoints.keywords}` - post-data-keyword-src=`${extension.endpoints.postKeywords}` - circles=`${extension.endpoints.circles}/` + post-data-src=`${extension.parameters.post}` + range-resource-type=`${extension.parameters.types}` + post-data-type-src=`${extension.parameters.postTypes}` + range-resource-keyword=`${extension.parameters.keywords}` + post-data-keyword-src=`${extension.parameters.postKeywords}` + circles=`${extension.parameters.circles}` associated-circle-label="" - upload-dir=`${extension.endpoints.uploads}` + upload-dir=`${extension.parameters.uploads}` id-prefix='circles' uniq=extension.uniq ) diff --git a/src/views/partials/communities/page-community-directory.pug b/src/views/partials/communities/page-community-directory.pug index 0fe8fa5..7b5f0f0 100644 --- a/src/views/partials/communities/page-community-directory.pug +++ b/src/views/partials/communities/page-community-directory.pug @@ -26,7 +26,7 @@ div solid-display( class='segment full children children-quarter sm-children-full children-margin-bottom-medium sm-children-margin-bottom-xsmall children-padding-right-xsmall children-padding-left-xsmall sm-children-padding-none sm-whitespace-normal masonry pagination text-disable-selection' - data-src=`${component.endpoints.get}` + data-src=`${component.parameters.dataSrc}` loader-id=`loader-${component.route}-directory` fields='segment1(segment2(logo), segment3(name, profile.shortDescription, counter))' filtered-by=`communities-filter` diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug index 043ca12..ffa7039 100644 --- a/src/views/partials/communities/page-community-edit.pug +++ b/src/views/partials/communities/page-community-edit.pug @@ -53,7 +53,7 @@ div.bg-color-white widget-profile.description="solid-form-richtext-label" widget-profile.email="orbit-communities-edit-email" widget-profile.website="orbit-communities-edit-website" - upload-url-logo=component.endpoints.uploads + upload-url-logo=component.parameters.uploads widget-logo="solid-form-image-label" submit-button="" @@ -70,9 +70,9 @@ div.bg-color-white fields="profile.picture1, profile.picture2, profile.picture3" - upload-url-profile.picture1=component.endpoints.uploads - upload-url-profile.picture2=component.endpoints.uploads - upload-url-profile.picture3=component.endpoints.uploads + upload-url-profile.picture1=component.parameters.uploads + upload-url-profile.picture2=component.parameters.uploads + upload-url-profile.picture3=component.parameters.uploads widget-profile.picture1="solid-form-image-label" widget-profile.picture2="solid-form-image-label" diff --git a/src/views/partials/communities/page-community-map.pug b/src/views/partials/communities/page-community-map.pug index 0c5978d..7a3b85a 100644 --- a/src/views/partials/communities/page-community-map.pug +++ b/src/views/partials/communities/page-community-map.pug @@ -21,7 +21,7 @@ span solid-map.communities-map.margin-right-xsmall.margin-left-xsmall.sm-margin-none.shadow( - data-src=`${component.endpoints.addresses}` + data-src=`${component.parameters.addresses}` loader-id=`loader-${component.route}-map` fields="position(segment1(community.logo), segment2(community.name, community.profile.shortDescription, community.members))" diff --git a/src/views/partials/project/page-project-chat.pug b/src/views/partials/project/page-project-chat.pug index 0af8628..85c71a8 100644 --- a/src/views/partials/project/page-project-chat.pug +++ b/src/views/partials/project/page-project-chat.pug @@ -20,7 +20,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p solid-xmpp-chat( data-authentication='login' data-auto-login='true' - data-websocket-url=component.endpoints.xmpp + data-websocket-url=component.parameters.xmpp bind-resources uniq=component.uniq ) diff --git a/src/views/partials/project/page-project-edit.pug b/src/views/partials/project/page-project-edit.pug index 932794e..cdb1d8c 100644 --- a/src/views/partials/project/page-project-edit.pug +++ b/src/views/partials/project/page-project-edit.pug @@ -31,7 +31,7 @@ div.segment.full.padding-large.whitespace-normal solid-form.form( bind-resources - range-captain=`${getComponent('projects').endpoints.captains}` + range-captain=`${getComponent('projects').parameters.captains}` required-status required-customer.name @@ -149,7 +149,7 @@ div.segment.full.padding-large.whitespace-normal bind-resources nested-field='members' fields='user' - range-user=`${component.endpoints.users}` + range-user=`${component.parameters.users}` class-user='add-member' label-user='' diff --git a/src/views/partials/project/page-project-invoices.pug b/src/views/partials/project/page-project-invoices.pug index ee153cc..8e8a4b2 100644 --- a/src/views/partials/project/page-project-invoices.pug +++ b/src/views/partials/project/page-project-invoices.pug @@ -14,7 +14,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p ) solid-invoicing( bind-resources - upload-dir=`${extension.endpoints.uploads}` + upload-dir=`${extension.parameters.uploads}` logo-dir=`${client.logo}` uniq=extension.uniq ) \ No newline at end of file diff --git a/src/views/partials/project/page-project-picture.pug b/src/views/partials/project/page-project-picture.pug index e39a10d..d081ef1 100644 --- a/src/views/partials/project/page-project-picture.pug +++ b/src/views/partials/project/page-project-picture.pug @@ -6,7 +6,7 @@ //- solid-picture.project-edit-picture( //- bind-resources -//- upload-src=`${component.endpoints.uploads}` +//- upload-src=`${component.parameters.uploads}` //- upload-id="solid-project-edit-picture" //- nested-fields='customer' //- fields='logo'