Mercurial > gemma
changeset 5634:677a52ad9486
merging with 729-node-js-newer-version
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Thu, 01 Jun 2023 11:23:19 +0200 |
parents | 0d453a8dc8e7 (current diff) 936d6cab2202 (diff) |
children | a956f764eee0 cdca70301f09 47ee6ecf94de |
files | |
diffstat | 59 files changed, 1165 insertions(+), 1416 deletions(-) [+] |
line wrap: on
line diff
--- a/client/package.json Mon May 08 18:11:08 2023 +0200 +++ b/client/package.json Thu Jun 01 11:23:19 2023 +0200 @@ -7,11 +7,8 @@ "url": "https://hg.intevation.de/gemma" }, "private": true, - "engines": { - "node": "^12.16.1" - }, "scripts": { - "serve": "make translations && VUE_APP_HGREV=$(hg log -r . --template \"{data|shortdate}-{node|short}\") vue-cli-service serve", + "serve": "make translations && VUE_APP_HGREV=$(hg log -r . --template \"{data|shortdate}-{node|short}\") NODE_OPTIONS='--openssl-legacy-provider' vue-cli-service serve", "build": "make translations && VUE_APP_HGREV=$(hg log -r . --template \"{data|shortdate}-{node|short}\") vue-cli-service build", "analyze": "ANALYZE=true vue-cli-service serve", "lint": "vue-cli-service lint", @@ -74,9 +71,7 @@ "concurrently": "^4.1.0", "copy-webpack-plugin": "^4.6.0", "easygettext": "^2.7.0", - "node-sass": "^4.10.0", "pretty-quick": "^1.8.0", - "sass-loader": "^7.0.1", "vue-gettext": "^2.1.2", "vue-template-compiler": "^2.5.17", "webpack-bundle-analyzer": "^3.0.3" @@ -86,4 +81,4 @@ "last 2 versions", "not ie <= 8" ] -} +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/client/src/assets/application.css Thu Jun 01 11:23:19 2023 +0200 @@ -0,0 +1,234 @@ +/* This is Free Software under GNU Affero General Public License v >= 3.0; + * without warranty, see README.md and license for details. + * + * SPDX-License-Identifier: AGPL-3.0-or-later + * License-Filename: LICENSES/AGPL-3.0.txt + * + * Copyright (C) 2018 by via donau + * – Österreichische Wasserstraßen-Gesellschaft mbH + * Software engineering by Intevation GmbH + * + * Author(s): + * Thomas Junk <thomas.junk@intevation.de> + * Markus Kottländer <markus.kottlaender@intevation> + */ +@import "tooltip.css"; + +:root { + --shadow-xs: 0 0.1rem 0.5rem rgba(0, 0, 0, 0.2); + --border-radius: 0.25rem; + --icon-height: 2rem; + --icon-width: 2rem; + --large-offset: 2rem; + --offset: 1rem; + --sidebar-width: 13rem; + --slight-transparent: 0.96; + --small-offset: 0.5rem; + --smaller: 0.9rem; + --transition-fast: 0.3s; + --x-large-offset: 3rem; + --xx-large-offset: 5rem; + + --color-info: #17a2b8; + --color-info-h: 188; + --color-info-s: 78%; + --color-info-l: 41%; +} + + +::placeholder { + color: #ccc !important; + font-size: smaller; + font-weight: bold; +} + +html { + overflow: hidden; +} + +a { + color: var(--color-info); +} + +a:hover, +a:active, +a:focus { + color: hsl(var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - 13%)); +} + +.w-90 { + width: 90%; +} + +.w-95 { + width: 95%; +} + +.debug { + border: 1px solid red; +} + +.debug2 { + border: 1px solid magenta; +} + +.debug3 { + border: 1px solid greenyellow; +} + +.header { + font-weight: bold; + font-size: 0.9em; +} + +.ui-element { + pointer-events: auto; +} + +.shadow-xs { + box-shadow: var(--shadow-xs); +} + +.box { + opacity: var(--slight-transparent); + max-height: 0; + max-width: 0; + overflow: hidden; + margin: 0; + box-shadow: var(--shadow-xs); + transition: max-width 0.4s, max-height 0.4s, margin 0.4s; +} + +.box h6, +.contextbox h6 { + color: var(--color-info); + font-weight: bold; +} + +.box-control { + display: flex; + color: #888; + padding: 4px 7px; + border-radius: 0.25rem; + cursor: pointer; + transition: background-color 0.3s, color 0.3s; +} + +.box-control .small { + padding: 4px; +} + +.box-control:hover { + color: #666; + background-color: #eee; +} + +.expanded { + max-height: 999px; + max-width: 999px; + margin: 0 0.05rem 0.5rem 0.25rem; +} + +.box-body { + padding: 0.75rem; + text-align: left; + position: relative; +} + +/* needed to fix the whitespace problem of +// https://github.com/Polyconseil/vue-gettext/issues/80; +// use like +// <a href="..">link</a> +// <span v-translate class="fix-trans-space">contributors.</span> +// +// done centrally, so we can fix it centrally for better vue-gettext version */ +.fix-trans-space, +.fix-trans-space:before { + content: " "; +} + +.closebutton { + position: absolute; + right: var(--offset); +} + +.headline { + font-weight: bold; +} + +.fade-enter-active, +.fade-leave-active { + transition: opacity 0.3s; +} +.fade-enter, +.fade-leave-to { + opacity: 0; +} + +.pointer { + cursor: pointer; +} + +.btn:disabled, +.btn.disabled { + opacity: 0.4; +} + +.btn-xs { + padding: 0.3rem 0.4rem; + font-size: 0.75rem; + line-height: 1; +} + +.snotifyToast { + text-align: left; + border-radius: 0.25rem; + box-shadow: 0 0.1rem 0.5rem rgba(0, 0, 0, 0.2); + border-left: 0 !important; +} +.snotifyToast .snotifyToast__title { + font-size: 1.2rem; +} +.snotifyToast .snotifyToast__body { + white-space: pre-line; +} +.snotifyToast.snotify-info { + border-top: 4px solid var(--color-info); +} +.snotifyToast.snotify-info .snotify-icon--info { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20version=%221.1%22%20x=%220px%22%20y=%220px%22%20viewBox=%220%200%20512%20512%22%20fill=%22%2317a2b8%22%3E%3Cg%3E%3Cpath%20d=%22M256,0C114.84,0,0,114.84,0,256S114.84,512,256,512,512,397.16,512,256,397.15,0,256,0Zm0,478.43C133.35,478.43,33.57,378.64,33.57,256S133.35,33.58,256,33.58,478.42,133.36,478.42,256,378.64,478.43,256,478.43Z%22/%3E%3Cpath%20d=%22M251.26,161.24a22.39,22.39,0,1,0-22.38-22.39A22.39,22.39,0,0,0,251.26,161.24Z%22/%3E%3Cpath%20d=%22M286.84,357.87h-14v-160A16.79,16.79,0,0,0,256,181.05H225.17a16.79,16.79,0,0,0,0,33.58h14.05V357.87H225.17a16.79,16.79,0,0,0,0,33.57h61.67a16.79,16.79,0,1,0,0-33.57Z%22/%3E%3C/g%3E%3C/svg%3E"); +} +.snotifyToast.snotify-error { + border-top: 4px solid #f44336; +} + +select.form-control-sm.small { + padding: 0.25rem 0.1rem; + font-size: 0.75rem; +} + +input.form-control-sm.small { + padding: 0.25rem 0.2rem; + font-size: 0.75rem; +} + +.truncate { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.wh-100 { + width: 100% !important; + height: 100% !important; +} + +.wh-50 { + width: 50% !important; + height: 50% !important; +} + +.custom-control-input:checked ~ .custom-control-label::before { + border-color: var(--color-info); + background-color: var(--color-info); +}
--- a/client/src/assets/application.scss Mon May 08 18:11:08 2023 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,232 +0,0 @@ -/* This is Free Software under GNU Affero General Public License v >= 3.0; - * without warranty, see README.md and license for details. - * - * SPDX-License-Identifier: AGPL-3.0-or-later - * License-Filename: LICENSES/AGPL-3.0.txt - * - * Copyright (C) 2018 by via donau - * – Österreichische Wasserstraßen-Gesellschaft mbH - * Software engineering by Intevation GmbH - * - * Author(s): - * Thomas Junk <thomas.junk@intevation.de> - * Markus Kottländer <markus.kottlaender@intevation> - */ -@import "@/assets/tooltip.scss"; - -$shadow-xs: 0 0.1rem 0.5rem rgba(0, 0, 0, 0.2); -$border-radius: 0.25rem; -$icon-height: 2rem; -$icon-width: 2rem; -$large-offset: 2rem; -$offset: 1rem; -$sidebar-width: 13rem; -$slight-transparent: 0.96; -$small-offset: 0.5rem; -$smaller: 0.9rem; -$transition-fast: 0.3s; -$x-large-offset: 3rem; -$xx-large-offset: 5rem; -$color-info: #17a2b8; - -::placeholder { - color: #ccc !important; - font-size: smaller; - font-weight: bold; -} - -html { - overflow: hidden; -} - -a { - color: $color-info; -} - -a:hover, -a:active, -a:focus { - color: darken($color-info, 13); -} - -.w-90 { - width: 90%; -} - -.w-95 { - width: 95%; -} - -.debug { - border: 1px solid red; -} - -.debug2 { - border: 1px solid magenta; -} - -.debug3 { - border: 1px solid greenyellow; -} - -%fully-centered { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); -} - -.header { - font-weight: bold; - font-size: 0.9em; -} - -.ui-element { - pointer-events: auto; -} - -.shadow-xs { - box-shadow: $shadow-xs; -} - -.box { - opacity: $slight-transparent; - max-height: 0; - max-width: 0; - overflow: hidden; - margin: 0; - box-shadow: $shadow-xs; - transition: max-width 0.4s, max-height 0.4s, margin 0.4s; -} - -.box h6, -.contextbox h6 { - color: $color-info; - font-weight: bold; -} - -.box-control { - display: flex; - color: #888; - padding: 4px 7px; - border-radius: 0.25rem; - cursor: pointer; - transition: background-color 0.3s, color 0.3s; - &.small { - padding: 4px; - } - &:hover { - color: #666; - background-color: #eee; - } -} - -.expanded { - max-height: 999px; - max-width: 999px; - margin: 0 0.05rem 0.5rem 0.25rem; -} - -.box-body { - padding: 0.75rem; - text-align: left; - position: relative; -} - -// needed to fix the whitespace problem of -// https://github.com/Polyconseil/vue-gettext/issues/80; -// use like -// <a href="..">link</a> -// <span v-translate class="fix-trans-space">contributors.</span> -// -// done centrally, so we can fix it centrally for better vue-gettext version -.fix-trans-space, -.fix-trans-space:before { - content: " "; -} - -.closebutton { - position: absolute; - right: $offset; -} - -.headline { - font-weight: bold; -} - -.fade-enter-active, -.fade-leave-active { - transition: opacity 0.3s; -} -.fade-enter, -.fade-leave-to { - opacity: 0; -} - -.pointer { - cursor: pointer; -} - -.btn:disabled, -.btn.disabled { - opacity: 0.4; -} - -.btn-xs { - padding: 0.3rem 0.4rem; - font-size: 0.75rem; - line-height: 1; -} - -.snotifyToast { - text-align: left; - border-radius: 0.25rem; - box-shadow: 0 0.1rem 0.5rem rgba(0, 0, 0, 0.2); - border-left: 0 !important; - &.snotify-info { - border-top: 4px solid $color-info; - .snotify-icon--info { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20version=%221.1%22%20x=%220px%22%20y=%220px%22%20viewBox=%220%200%20512%20512%22%20fill=%22%2317a2b8%22%3E%3Cg%3E%3Cpath%20d=%22M256,0C114.84,0,0,114.84,0,256S114.84,512,256,512,512,397.16,512,256,397.15,0,256,0Zm0,478.43C133.35,478.43,33.57,378.64,33.57,256S133.35,33.58,256,33.58,478.42,133.36,478.42,256,378.64,478.43,256,478.43Z%22/%3E%3Cpath%20d=%22M251.26,161.24a22.39,22.39,0,1,0-22.38-22.39A22.39,22.39,0,0,0,251.26,161.24Z%22/%3E%3Cpath%20d=%22M286.84,357.87h-14v-160A16.79,16.79,0,0,0,256,181.05H225.17a16.79,16.79,0,0,0,0,33.58h14.05V357.87H225.17a16.79,16.79,0,0,0,0,33.57h61.67a16.79,16.79,0,1,0,0-33.57Z%22/%3E%3C/g%3E%3C/svg%3E"); - } - } - &.snotify-error { - border-top: 4px solid #f44336; - } - .snotifyToast__title { - font-size: 1.2rem; - } - .snotifyToast__body { - white-space: pre-line; - } -} - -select.form-control-sm.small { - padding: 0.25rem 0.1rem; - font-size: 0.75rem; -} - -input.form-control-sm.small { - padding: 0.25rem 0.2rem; - font-size: 0.75rem; -} - -.truncate { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.wh-100 { - width: 100% !important; - height: 100% !important; -} - -.wh-50 { - width: 50% !important; - height: 50% !important; -} - -.custom-control-input:checked ~ .custom-control-label::before { - border-color: $color-info; - background-color: $color-info; -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/client/src/assets/tooltip.css Thu Jun 01 11:23:19 2023 +0200 @@ -0,0 +1,121 @@ +/* This is Free Software under GNU Affero General Public License v >= 3.0 + * without warranty, see README.md and license for details. + * + * SPDX-License-Identifier: AGPL-3.0-or-later + * License-Filename: LICENSES/AGPL-3.0.txt + * + * Copyright (C) 2018 by via donau + * – Österreichische Wasserstraßen-Gesellschaft mbH + * Software engineering by Intevation GmbH + * + * Author(s): + * Thomas Junk <thomas.junk@intevation.de> + */ +.tooltip { + display: block !important; + z-index: 10000; +} + +.tooltip .tooltip-inner { + background: white; + box-shadow: 0 0.1rem 0.5rem rgba(0, 0, 0, 0.2); + color: #666; + border-radius: 0.25rem; + padding: 5px 10px 4px; + font-size: 0.8rem; + max-width: 500px; +} + +.tooltip .tooltip-arrow { + width: 0; + height: 0; + border-style: solid; + position: absolute; + margin: 5px; + border-color: white; + z-index: 1; +} + +.tooltip[x-placement^="top"] { + margin-bottom: 5px; +} + +.tooltip[x-placement^="top"] .tooltip-arrow { + border-width: 5px 5px 0 5px; + border-left-color: transparent !important; + border-right-color: transparent !important; + border-bottom-color: transparent !important; + bottom: -5px; + left: calc(50% - 5px); + margin-top: 0; + margin-bottom: 0; +} + +.tooltip[x-placement^="bottom"] { + margin-top: 5px; +} + +.tooltip[x-placement^="bottom"] .tooltip-arrow { + border-width: 0 5px 5px 5px; + border-left-color: transparent !important; + border-right-color: transparent !important; + border-top-color: transparent !important; + top: -5px; + left: calc(50% - 5px); + margin-top: 0; + margin-bottom: 0; +} + +.tooltip[x-placement^="right"] { + margin-left: 5px; +} + +.tooltip[x-placement^="right"] .tooltip-arrow { + border-width: 5px 5px 5px 0; + border-left-color: transparent !important; + border-top-color: transparent !important; + border-bottom-color: transparent !important; + left: -5px; + top: calc(50% - 5px); + margin-left: 0; + margin-right: 0; +} + +.tooltip[x-placement^="left"] { + margin-right: 5px; +} + +.tooltip[x-placement^="left"] .tooltip-arrow { + border-width: 5px 0 5px 5px; + border-top-color: transparent !important; + border-right-color: transparent !important; + border-bottom-color: transparent !important; + right: -5px; + top: calc(50% - 5px); + margin-left: 0; + margin-right: 0; +} + +.tooltip.popover .popover-inner { + background: #f9f9f9; + color: white; + padding: 24px; + border-radius: 5px; + box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); +} + +.tooltip.popover .popover-arrow { + border-color: #f9f9f9; +} + +.tooltip[aria-hidden="true"] { + visibility: hidden; + opacity: 0; + transition: opacity 0.15s, visibility 0.15s; +} + +.tooltip[aria-hidden="false"] { + visibility: visible; + opacity: 1; + transition: opacity 0.15s; +}
--- a/client/src/assets/tooltip.scss Mon May 08 18:11:08 2023 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* This is Free Software under GNU Affero General Public License v >= 3.0 - * without warranty, see README.md and license for details. - * - * SPDX-License-Identifier: AGPL-3.0-or-later - * License-Filename: LICENSES/AGPL-3.0.txt - * - * Copyright (C) 2018 by via donau - * – Österreichische Wasserstraßen-Gesellschaft mbH - * Software engineering by Intevation GmbH - * - * Author(s): - * Thomas Junk <thomas.junk@intevation.de> - */ -.tooltip { - display: block !important; - z-index: 10000; -} - -.tooltip .tooltip-inner { - background: white; - box-shadow: 0 0.1rem 0.5rem rgba(0, 0, 0, 0.2); - color: #666; - border-radius: 0.25rem; - padding: 5px 10px 4px; - font-size: 0.8rem; - max-width: 500px; -} - -.tooltip .tooltip-arrow { - width: 0; - height: 0; - border-style: solid; - position: absolute; - margin: 5px; - border-color: white; - z-index: 1; -} - -.tooltip[x-placement^="top"] { - margin-bottom: 5px; -} - -.tooltip[x-placement^="top"] .tooltip-arrow { - border-width: 5px 5px 0 5px; - border-left-color: transparent !important; - border-right-color: transparent !important; - border-bottom-color: transparent !important; - bottom: -5px; - left: calc(50% - 5px); - margin-top: 0; - margin-bottom: 0; -} - -.tooltip[x-placement^="bottom"] { - margin-top: 5px; -} - -.tooltip[x-placement^="bottom"] .tooltip-arrow { - border-width: 0 5px 5px 5px; - border-left-color: transparent !important; - border-right-color: transparent !important; - border-top-color: transparent !important; - top: -5px; - left: calc(50% - 5px); - margin-top: 0; - margin-bottom: 0; -} - -.tooltip[x-placement^="right"] { - margin-left: 5px; -} - -.tooltip[x-placement^="right"] .tooltip-arrow { - border-width: 5px 5px 5px 0; - border-left-color: transparent !important; - border-top-color: transparent !important; - border-bottom-color: transparent !important; - left: -5px; - top: calc(50% - 5px); - margin-left: 0; - margin-right: 0; -} - -.tooltip[x-placement^="left"] { - margin-right: 5px; -} - -.tooltip[x-placement^="left"] .tooltip-arrow { - border-width: 5px 0 5px 5px; - border-top-color: transparent !important; - border-right-color: transparent !important; - border-bottom-color: transparent !important; - right: -5px; - top: calc(50% - 5px); - margin-left: 0; - margin-right: 0; -} - -.tooltip.popover .popover-inner { - background: #f9f9f9; - color: white; - padding: 24px; - border-radius: 5px; - box-shadow: 0 5px 30px rgba(black, 0.1); -} - -.tooltip.popover .popover-arrow { - border-color: #f9f9f9; -} - -.tooltip[aria-hidden="true"] { - visibility: hidden; - opacity: 0; - transition: opacity 0.15s, visibility 0.15s; -} - -.tooltip[aria-hidden="false"] { - visibility: visible; - opacity: 1; - transition: opacity 0.15s; -}
--- a/client/src/components/App.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/App.vue Thu Jun 01 11:23:19 2023 +0200 @@ -39,28 +39,31 @@ </div> </template> -<style lang="sass" scoped> -#app - height: 100% - width: 100% - font-family: "Avenir", Helvetica, Arial, sans-serif - -webkit-font-smoothing: antialiased - -moz-osx-font-smoothing: grayscale - text-align: center - color: #2c3e50 +<style scoped> +#app { + height: 100%; + width: 100%; + font-family: "Avenir", Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-align: center; + color: #2c3e50; +} - .userinterface - position: absolute - top: 0 - left: 0 - right: 0 - bottom: 0 - z-index: 4 - pointer-events: none +#app .userinterface { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 4; + pointer-events: none; +} - .boxes - position: relative - z-index: 10 +#app .userinterface .boxes { + position: relative; + z-index: 10; +} </style> <script>
--- a/client/src/components/Contextbox.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/Contextbox.vue Thu Jun 01 11:23:19 2023 +0200 @@ -91,11 +91,11 @@ }; </script> -<style lang="scss" scoped> +<style scoped> .contextbox { position: relative; background-color: #ffffff; - opacity: $slight-transparent; + opacity: var(--slight-transparent); transition: max-width 0.3s, max-height 0.3s; overflow: hidden; background: #fff; @@ -123,7 +123,7 @@ z-index: 2; right: 0; top: 7px; - height: $icon-width; - width: $icon-height; + height: var(--icon-width); + width: var(--icon-height); } </style>
--- a/client/src/components/DiagramLegend.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/DiagramLegend.vue Thu Jun 01 11:23:19 2023 +0200 @@ -15,36 +15,44 @@ </div> </template> -<style lang="sass"> -.diagram-legend - position: relative - width: 180px - font-size: 0.8rem - display: flex - border-right: solid 1px #dee2e6 - .toggle - margin-left: 0 - position: absolute - z-index: 1 - top: 0.25rem - left: 0.25rem - svg - transition: transform 0.3s - &.collapsed - width: 0 - border-right: none - .toggle - left: 0.25rem - svg - transform: rotateY(180deg) - .legend - margin: 10px 0 - span - vertical-align: middle - display: inline-block - width: 12px - height: 12px - border-radius: 50% +<style> +.diagram-legend { + position: relative; + width: 180px; + font-size: 0.8rem; + display: flex; + border-right: solid 1px #dee2e6; +} +.diagram-legend .toggle { + margin-left: 0; + position: absolute; + z-index: 1; + top: 0.25rem; + left: 0.25rem; +} +.diagram-legend .toggle svg { + transition: transform 0.3s; +} +.diagram-legend.collapsed { + width: 0; + border-right: none; +} +.diagram-legend.collapsed .toggle { + left: 0.25rem; +} +.diagram-legend.collapsed .toggle svg { + transform: rotateY(180deg); +} +.diagram-legend .legend { + margin: 10px 0; +} +.diagram-legend .legend span { + vertical-align: middle; + display: inline-block; + width: 12px; + height: 12px; + border-radius: 50%; +} </style> <script>
--- a/client/src/components/KeyboardHandler.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/KeyboardHandler.vue Thu Jun 01 11:23:19 2023 +0200 @@ -6,22 +6,24 @@ </transition> </template> -<style lang="sass" scoped> -.notice - position: absolute - top: 0 - width: 100% - text-align: center - z-index: 1 - font-size: 11px - line-height: 11px - > span - opacity: 0.5 - background: white - display: inline-block - border-bottom-right-radius: 0.25rem - border-bottom-left-radius: 0.25rem - padding: 3px 5px +<style scoped> +.notice { + position: absolute; + top: 0; + width: 100%; + text-align: center; + z-index: 1; + font-size: 11px; + line-height: 11px; +} +.notice > span { + opacity: 0.5; + background: white; + display: inline-block; + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + padding: 3px 5px; +} </style> <script>
--- a/client/src/components/Login.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/Login.vue Thu Jun 01 11:23:19 2023 +0200 @@ -87,11 +87,14 @@ </div> </template> -<style lang="scss" scoped> +<style scoped> .login { min-width: 375px; min-height: 500px; - @extend %fully-centered; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); } .loginform {
--- a/client/src/components/Logs.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/Logs.vue Thu Jun 01 11:23:19 2023 +0200 @@ -57,7 +57,7 @@ </div> </template> -<style lang="scss" scoped> +<style scoped> .statuscontainer { width: 87%; position: relative; @@ -65,8 +65,8 @@ .logmenu { position: relative; - margin-left: $offset; - margin-top: $offset; + margin-left: var(--offset); + margin-top: var(--offset); } .logs { @@ -80,17 +80,17 @@ .refresh { position: absolute; - right: $offset; + right: var(--offset); bottom: 0; } .logoutput { - margin-left: $offset; - margin-right: $offset; - margin-top: $offset; + margin-left: var(--offset); + margin-right: var(--offset); + margin-top: var(--offset); height: 90%; overflow: auto; - transition: $transition-fast; + transition: var(--transition-fast); } .statusline {
--- a/client/src/components/Main.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/Main.vue Thu Jun 01 11:23:19 2023 +0200 @@ -22,28 +22,34 @@ </div> </template> -<style lang="sass"> -#panes - top: -1px - right: -1px - bottom: -1px - left: -1px - z-index: 1 - &.rotate1 - flex-wrap: wrap - flex-direction: row - &.rotate2 - flex-wrap: wrap-reverse - flex-direction: column - &.rotate3 - flex-wrap: wrap-reverse - flex-direction: row-reverse - &.rotate4 - flex-wrap: wrap - flex-direction: column-reverse - .pane - border: solid 1px #dee2e6 - background: #fff +<style> +#panes { + top: -1px; + right: -1px; + bottom: -1px; + left: -1px; + z-index: 1; +} +#panes.rotate1 { + flex-wrap: wrap; + flex-direction: row; +} +#panes.rotate2 { + flex-wrap: wrap-reverse; + flex-direction: column; +} +#panes.rotate3 { + flex-wrap: wrap-reverse; + flex-direction: row-reverse; +} +#panes.rotate4 { + flex-wrap: wrap; + flex-direction: column-reverse; +} +#panes .pane { + border: solid 1px #dee2e6; + background: #fff; +} </style> <script>
--- a/client/src/components/Pdftool.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/Pdftool.vue Thu Jun 01 11:23:19 2023 +0200 @@ -89,7 +89,7 @@ </div> </template> -<style lang="scss" scoped> +<style scoped> input, select { font-size: 0.8em;
--- a/client/src/components/Popup.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/Popup.vue Thu Jun 01 11:23:19 2023 +0200 @@ -65,53 +65,63 @@ </transition> </template> -<style lang="sass" scoped> -.dateselection - width: 250px -.overlay - position: fixed - z-index: 9 - top: 0 - right: 0 - bottom: 0 - left: 0 - background: rgba(0, 0, 0, .3) - .popup - display: flex - flex-direction: column - box-shadow: 0 .5rem 1rem rgba(0,0,0,.15) - background-color: #fff - border-radius: 0.25rem - max-width: 320px - .popup-header - display: flex - justify-content: space-between - align-items: center - padding-left: .5rem - border-bottom: 1px solid #dee2e6 - color: $color-info - margin-bottom: 0 - padding: 0.25rem - font-weight: bold - .popup-title - padding-left: 0.25rem - .popup-icon - margin-right: 0.25rem - .popup-close - color: #aaa - padding: 3px 5px - border-radius: 0.25rem - cursor: pointer - transition: background-color 0.3s, color 0.3s - &:hover - color: #888 - background-color: #eee - .popup-footer - display: flex - justify-content: space-between - align-items: center - border-top: 1px solid #dee2e6 - padding: 0.25rem +<style scoped> +.dateselection { + width: 250px; +} + +.overlay { + position: fixed; + z-index: 9; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: rgba(0, 0, 0, 0.3); +} +.overlay .popup { + display: flex; + flex-direction: column; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + background-color: #fff; + border-radius: 0.25rem; + max-width: 320px; +} +.overlay .popup .popup-header { + display: flex; + justify-content: space-between; + align-items: center; + padding-left: 0.5rem; + border-bottom: 1px solid #dee2e6; + color: var(--color-info); + margin-bottom: 0; + padding: 0.25rem; + font-weight: bold; +} +.overlay .popup .popup-header .popup-title { + padding-left: 0.25rem; +} +.overlay .popup .popup-header .popup-title .popup-icon { + margin-right: 0.25rem; +} +.overlay .popup .popup-header .popup-close { + color: #aaa; + padding: 3px 5px; + border-radius: 0.25rem; + cursor: pointer; + transition: background-color 0.3s, color 0.3s; +} +.overlay .popup .popup-header .popup-close:hover { + color: #888; + background-color: #eee; +} +.overlay .popup .popup-footer { + display: flex; + justify-content: space-between; + align-items: center; + border-top: 1px solid #dee2e6; + padding: 0.25rem; +} </style> <script>
--- a/client/src/components/Search.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/Search.vue Thu Jun 01 11:23:19 2023 +0200 @@ -86,7 +86,7 @@ </div> </template> -<style lang="scss" scoped> +<style scoped> .searchcontainer { opacity: 0.96; }
--- a/client/src/components/Sidebar.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/Sidebar.vue Thu Jun 01 11:23:19 2023 +0200 @@ -189,7 +189,7 @@ }; </script> -<style lang="scss" scoped> +<style scoped> .menubutton { height: 2rem; width: 2rem; @@ -219,16 +219,16 @@ color: #333; text-decoration: none; font-size: 90%; - .indicator { - left: auto; - right: 10px; - top: 8px; - border-radius: 0.25rem; - } - &.router-link-exact-active .indicator { - background: #fff; - color: #333; - } +} +.menu a .indicator { + left: auto; + right: 10px; + top: 8px; + border-radius: 0.25rem; +} +.menu a.router-link-exact-active .indicator { + background: #fff; + color: #333; } .menu a svg path { @@ -259,19 +259,19 @@ .sidebar { background-color: #ffffff; - padding-top: $large-offset; - opacity: $slight-transparent; - transition: $transition-fast; + padding-top: var(--large-offset); + opacity: var(--slight-transparent); + transition: var(--transition-fast); overflow: hidden; } .sidebarcollapsed { - max-height: $icon-height; - max-width: $icon-width; + max-height: var(--icon-height); + max-width: var(--icon-width); } .sidebarextended { - max-width: $sidebar-width; - min-width: $sidebar-width; + max-width: var(--sidebar-width); + min-width: var(--sidebar-width); } </style>
--- a/client/src/components/Spacer.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/Spacer.vue Thu Jun 01 11:23:19 2023 +0200 @@ -34,17 +34,17 @@ }; </script> -<style lang="scss" scoped> +<style scoped> .spacer { height: 90vh; } .spacer-collapsed { - min-width: $icon-width + $small-offset; - transition: $transition-fast; + min-width: var(--icon-width) + var(--small-offset); + transition: var(--transition-fast); } .spacer-expanded { - min-width: $sidebar-width + $small-offset; + min-width: var(--sidebar-width) + var(--small-offset); } </style>
--- a/client/src/components/TimeSlider.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/TimeSlider.vue Thu Jun 01 11:23:19 2023 +0200 @@ -42,13 +42,13 @@ </div> </div> </template> -<style lang="scss" scoped> +<style scoped> #slider { position: absolute; bottom: 0; min-width: 100vw; } -// reposition time slider in case of opened diagram +/* reposition time slider in case of opened diagram */ #slider.reposition { bottom: 50%; } @@ -60,7 +60,7 @@ input::-webkit-clear-button { display: none; } -// hide clear button on IE +/* hide clear button on IE */ input::-ms-clear { display: none; }
--- a/client/src/components/fairway/AvailableFairwayDepthDialogue.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/fairway/AvailableFairwayDepthDialogue.vue Thu Jun 01 11:23:19 2023 +0200 @@ -344,17 +344,19 @@ </div> </template> -<style lang="sass" scoped> +<style scoped> input, -select - font-size: 0.8em +select { + font-size: 0.8em; +} -.custom-control - padding-left: 1.2rem - .custom-control-label - &::before, - &::after - left: -1.2rem +.custom-control { + padding-left: 1.2rem; +} +.custom-control .custom-control-label::before, +.custom-control .custom-control-label::after { + left: -1.2rem; +} </style> <script>
--- a/client/src/components/fairway/BottleneckDialogue.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/fairway/BottleneckDialogue.vue Thu Jun 01 11:23:19 2023 +0200 @@ -298,10 +298,10 @@ </div> </template> -<style lang="scss" scoped> +<style lang="css" scoped> .input-button-right { - border-top-right-radius: $border-radius; - border-bottom-right-radius: $border-radius; + border-top-right-radius: var(border-radius); + border-bottom-right-radius: var(border-radius); border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; } @@ -309,8 +309,8 @@ .rounded-left-only { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; - border-top-left-radius: $border-radius; - border-bottom-left-radius: $border-radius; + border-top-left-radius: var(border-radius); + border-bottom-left-radius: var(border-radius); } input,
--- a/client/src/components/fairway/Fairwayprofile.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/fairway/Fairwayprofile.vue Thu Jun 01 11:23:19 2023 +0200 @@ -119,28 +119,30 @@ </div> </template> -<style lang="sass" scoped> -.direction-indicator - width: 70px - height: 0 - border-top: dashed 2px #333 - position: absolute - bottom: 50px - left: 115px - margin-left: -35px - &::after - content: "" - width: 0 - height: 0 - border-width: 10px - border-top-width: 5px - border-bottom-width: 5px - border-style: solid - border-color: transparent - border-left-color: #333 - position: absolute - right: -20px - top: -6px +<style scoped> +.direction-indicator { + width: 70px; + height: 0; + border-top: dashed 2px #333; + position: absolute; + bottom: 50px; + left: 115px; + margin-left: -35px; +} +.direction-indicator::after { + content: ""; + width: 0; + height: 0; + border-width: 10px; + border-top-width: 5px; + border-bottom-width: 5px; + border-style: solid; + border-color: transparent; + border-left-color: #333; + position: absolute; + right: -20px; + top: -6px; +} </style> <script>
--- a/client/src/components/gauge/Gauges.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/gauge/Gauges.vue Thu Jun 01 11:23:19 2023 +0200 @@ -93,7 +93,7 @@ </div> </template> -<style lang="scss" scoped> +<style scoped> input, select { font-size: 0.8em;
--- a/client/src/components/identify/Identify.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/identify/Identify.vue Thu Jun 01 11:23:19 2023 +0200 @@ -246,26 +246,27 @@ </div> </template> -<style lang="scss" scoped> +<style scoped> .features { max-height: 19rem; overflow-y: auto; - small { - .zoom-btn { - margin-top: -0.25rem; - margin-right: -0.5rem; - margin-bottom: -0.25rem; - svg { - vertical-align: middle; - } - } - &:nth-child(even) { - background: #f8f8f8; - } - &:hover { - background: #eeeeee; - } - } +} + +.features small { +} +.features small .zoom-btn { + margin-top: -0.25rem; + margin-right: -0.5rem; + margin-bottom: -0.25rem; +} +.features small .zoom-btn svg { + vertical-align: middle; +} +.features small:nth-child(even) { + background: #f8f8f8; +} +.features small:hover { + background: #eeeeee; } .versioninfo {
--- a/client/src/components/importconfiguration/ImportDetails.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importconfiguration/ImportDetails.vue Thu Jun 01 11:23:19 2023 +0200 @@ -88,7 +88,7 @@ </div> </template> -<style lang="scss" scoped></style> +<style scoped></style> <script> /* This is Free Software under GNU Affero General Public License v >= 3.0
--- a/client/src/components/importconfiguration/ScheduledImports.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importconfiguration/ScheduledImports.vue Thu Jun 01 11:23:19 2023 +0200 @@ -1172,7 +1172,7 @@ }; </script> -<style lang="scss" scoped> +<style scoped> .cronfield { width: 55px; } @@ -1183,7 +1183,7 @@ .importscheduledetails { width: 100%; - margin-top: $offset; - margin-right: $offset; + margin-top: var(--offset); + margin-right: var(--offset); } </style>
--- a/client/src/components/importconfiguration/types/ApprovedGaugeMeasurement.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importconfiguration/types/ApprovedGaugeMeasurement.vue Thu Jun 01 11:23:19 2023 +0200 @@ -161,4 +161,4 @@ }; </script> -<style lang="scss" scoped></style> +<style scoped></style>
--- a/client/src/components/importconfiguration/types/WaterwayProfiles.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importconfiguration/types/WaterwayProfiles.vue Thu Jun 01 11:23:19 2023 +0200 @@ -197,4 +197,4 @@ }; </script> -<style lang="scss" scoped></style> +<style scoped></style>
--- a/client/src/components/importoverview/AGMLogItem.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importoverview/AGMLogItem.vue Thu Jun 01 11:23:19 2023 +0200 @@ -101,33 +101,42 @@ }; </script> -<style lang="sass" scoped> -.diffs - width: 100% - overflow-y: auto - > div - border-top: dashed 1px #dee2e6 - &:first-child - border-top: none - .compare-table - position: relative - overflow: hidden - &::after - content: '' - position: absolute - top: 0 - right: -5px - bottom: 0 - left: -5px - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.4) - > div - font-size: 0.7rem - &:nth-child(odd) - background-color: #f8f9fa +<style scoped> +.diffs { + width: 100%; + overflow-y: auto; +} +.diffs > div { + border-top: dashed 1px #dee2e6; +} +.diffs > div:first-child { + border-top: none; +} +.diffs > div .compare-table { + position: relative; + overflow: hidden; +} +.diffs > div .compare-table::after { + content: ""; + position: absolute; + top: 0; + right: -5px; + bottom: 0; + left: -5px; + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.4); +} +.diffs > div .compare-table > div { + font-size: 0.7rem; +} +.diffs > div .compare-table > div:nth-child(odd) { + background-color: #f8f9fa; +} -.split - max-height: 35vh +.split { + max-height: 35vh; +} -.full - max-height: 70vh +.full { + max-height: 70vh; +} </style>
--- a/client/src/components/importoverview/AdditionalLog.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importoverview/AdditionalLog.vue Thu Jun 01 11:23:19 2023 +0200 @@ -20,18 +20,19 @@ </div> </template> -<style lang="sass" scoped> -.additionallog - overflow-y: auto - &.split - max-height: 35vh - - > div - &:not(:first-child) - border-top-style: dashed !important - - &:hover - background-color: #fcfcfc +<style scoped> +.additionallog { + overflow-y: auto; +} +.additionallog.split { + max-height: 35vh; +} +.additionallog > div:not(:first-child) { + border-top-style: dashed !important; +} +.additionallog > div:hover { + background-color: #fcfcfc; +} </style> <script>
--- a/client/src/components/importoverview/ApprovedGaugeMeasurementDetail.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importoverview/ApprovedGaugeMeasurementDetail.vue Thu Jun 01 11:23:19 2023 +0200 @@ -24,35 +24,44 @@ </div> </template> -<style lang="sass" scoped> -.diffs - width: 100% - overflow-y: auto - > div - border-top: dashed 1px #dee2e6 - &:first-child - border-top: none - .compare-table - position: relative - overflow: hidden - &::after - content: '' - position: absolute - top: 0 - right: -5px - bottom: 0 - left: -5px - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.4) - > div - font-size: 0.7rem - &:nth-child(odd) - background-color: #f8f9fa +<style scoped> +.diffs { + width: 100%; + overflow-y: auto; +} +.diffs > div { + border-top: dashed 1px #dee2e6; +} +.diffs > div:first-child { + border-top: none; +} +.diffs > div .compare-table { + position: relative; + overflow: hidden; +} +.diffs > div .compare-table::after { + content: ""; + position: absolute; + top: 0; + right: -5px; + bottom: 0; + left: -5px; + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.4); +} +.diffs > div .compare-table > div { + font-size: 0.7rem; +} +.diffs > div .compare-table > div:nth-child(odd) { + background-color: #f8f9fa; +} -.split - max-height: 35vh +.split { + max-height: 35vh; +} -.full - max-height: 70vh +.full { + max-height: 70vh; +} </style> <script>
--- a/client/src/components/importoverview/BottleneckDetail.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importoverview/BottleneckDetail.vue Thu Jun 01 11:23:19 2023 +0200 @@ -41,32 +41,40 @@ </div> </template> -<style lang="sass" scoped> -.bottleneckdetails - width: 100% - overflow-y: auto - > div - border-top: dashed 1px #dee2e6 - &:first-child - border-top: none - .properties - position: relative - overflow: hidden - &::after - content: '' - position: absolute - top: 0 - right: -5px - bottom: 0 - left: -5px - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.4) - tr - font-size: 0.7rem - &:nth-child(odd) - background-color: #f8f9fa +<style scoped> +.bottleneckdetails { + width: 100%; + overflow-y: auto; +} +.bottleneckdetails > div { + border-top: dashed 1px #dee2e6; +} +.bottleneckdetails > div:first-child { + border-top: none; +} +.bottleneckdetails > div .properties { + position: relative; + overflow: hidden; +} +.bottleneckdetails > div .properties::after { + content: ""; + position: absolute; + top: 0; + right: -5px; + bottom: 0; + left: -5px; + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.4); +} +.bottleneckdetails > div .properties tr { + font-size: 0.7rem; +} +.bottleneckdetails > div .properties tr:nth-child(odd) { + background-color: #f8f9fa; +} -.split - max-height: 35vh +.split { + max-height: 35vh; +} </style> <script>
--- a/client/src/components/importoverview/ImportOverview.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importoverview/ImportOverview.vue Thu Jun 01 11:23:19 2023 +0200 @@ -113,9 +113,10 @@ </div> </template> -<style lang="sass" scoped> -.spinner-overlay - top: 110px +<style scoped> +.spinner-overlay { + top: 110px; +} </style> <script>
--- a/client/src/components/importoverview/LogEntry.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importoverview/LogEntry.vue Thu Jun 01 11:23:19 2023 +0200 @@ -60,31 +60,38 @@ </div> </template> -<style lang="sass" scoped> -.action - height: 100% - width: 50% - border: 0 - background: white - outline: none - &.approved - color: green - &.active, - &:hover - color: white - background: green - &.rejected - border-left: 1px solid #dee2e6 - color: red - &.active, - &:hover - color: white - background: red -.active - .action - background-color: #d2eaee - &.rejected - border-left: solid 1px rgba(255, 255, 255, 0.3) +<style scoped> +.action { + height: 100%; + width: 50%; + border: 0; + background: white; + outline: none; +} +.action.approved { + color: green; +} +.action.approved.active, +.action.approved:hover { + color: white; + background: green; +} +.action.rejected { + border-left: 1px solid #dee2e6; + color: red; +} +.action.rejected.active, +.action.rejected:hover { + color: white; + background: red; +} + +.active .action { + background-color: #d2eaee; +} +.active .action.rejected { + border-left: solid 1px rgba(255, 255, 255, 0.3); +} </style> <script>
--- a/client/src/components/importoverview/LogItem.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importoverview/LogItem.vue Thu Jun 01 11:23:19 2023 +0200 @@ -43,14 +43,17 @@ }; </script> -<style lang="sass" scoped> -.kind - width: 9% +<style scoped> +.kind { + width: 9%; +} -.time - width: 26% +.time { + width: 26%; +} -.message - width: 65% - word-wrap: break-word +.message { + width: 65%; + word-wrap: break-word; +} </style>
--- a/client/src/components/importoverview/SectionDetails.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importoverview/SectionDetails.vue Thu Jun 01 11:23:19 2023 +0200 @@ -31,7 +31,7 @@ </div> </template> -<style lang="scss" scoped> +<style scoped> .comparison { width: 668px; border-top: dashed 1px #dee2e6;
--- a/client/src/components/importoverview/StretchDetails.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/importoverview/StretchDetails.vue Thu Jun 01 11:23:19 2023 +0200 @@ -37,7 +37,7 @@ </div> </template> -<style lang="scss" scoped> +<style scoped> .comparison { width: 668px; border-top: dashed 1px #dee2e6;
--- a/client/src/components/layers/LegendElement.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/layers/LegendElement.vue Thu Jun 01 11:23:19 2023 +0200 @@ -235,7 +235,7 @@ }; </script> -<style lang="scss" scoped> +<style scoped> .legendelement { max-height: 1.5rem; width: 2rem;
--- a/client/src/components/map/Map.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/map/Map.vue Thu Jun 01 11:23:19 2023 +0200 @@ -7,17 +7,33 @@ </div> </template> -<style lang="sass" scoped> -.map - width: 100% - height: 100% - background-color: #eee - background-image: linear-gradient(45deg, #e8e8e8 25%, transparent 25%, transparent 75%, #e8e8e8 75%, #e8e8e8), linear-gradient(45deg, #e8e8e8 25%, transparent 25%, transparent 75%, #e8e8e8 75%, #e8e8e8) - background-size: 20px 20px - background-position: 0 0, 10px 10px - - &.nocursor - cursor: none +<style scoped> +.map { + width: 100%; + height: 100%; + background-color: #eee; + background-image: linear-gradient( + 45deg, + #e8e8e8 25%, + transparent 25%, + transparent 75%, + #e8e8e8 75%, + #e8e8e8 + ), + linear-gradient( + 45deg, + #e8e8e8 25%, + transparent 25%, + transparent 75%, + #e8e8e8 75%, + #e8e8e8 + ); + background-size: 20px 20px; + background-position: 0 0, 10px 10px; +} +.map.nocursor { + cursor: none; +} </style> <script>
--- a/client/src/components/map/MapPopup.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/map/MapPopup.vue Thu Jun 01 11:23:19 2023 +0200 @@ -97,25 +97,28 @@ </div> </template> -<style lang="sass"> -.map-popup - position: absolute - background: #fff - min-width: 200px - min-height: 85px - box-shadow: 0 0.1rem 0.5rem rgba(0, 0, 0, 0.2) - border-top-left-radius: 0 !important - margin-left: 10px - &::before - content: "" - position: absolute - top: 0 - left: -10px - border: 5px solid transparent - border-top: 5px solid white - border-right: 5px solid white - .coordinates - font-size: 70% +<style> +.map-popup { + position: absolute; + background: #fff; + min-width: 200px; + min-height: 85px; + box-shadow: 0 0.1rem 0.5rem rgba(0, 0, 0, 0.2); + border-top-left-radius: 0 !important; + margin-left: 10px; +} +.map-popup::before { + content: ""; + position: absolute; + top: 0; + left: -10px; + border: 5px solid transparent; + border-top: 5px solid white; + border-right: 5px solid white; +} +.map-popup .coordinates { + font-size: 70%; +} </style> <script>
--- a/client/src/components/map/Zoom.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/map/Zoom.vue Thu Jun 01 11:23:19 2023 +0200 @@ -15,23 +15,26 @@ </div> </template> -<style lang="sass"> -.zoom-buttons - position: absolute - z-index: 1 - bottom: $small-offset - left: 50% - margin-left: -$icon-width - margin-bottom: 0 - transition: margin-bottom 0.3s - &.move - bottom: $large-offset * 1.5 - .zoom-button - min-height: $icon-width - min-width: $icon-width - z-index: 1 - outline: none - color: #666 +<style> +.zoom-buttons { + position: absolute; + z-index: 1; + bottom: var(--small-offset); + left: 50%; + margin-left: -var(--icon-width); + margin-bottom: 0; + transition: margin-bottom 0.3s; +} +.zoom-buttons.move { + bottom: calc(var(--large-offset) * 1.5); +} +.zoom-buttons .zoom-button { + min-height: var(--icon-width); + min-width: var(--icon-width); + z-index: 1; + outline: none; + color: #666; +} </style> <script>
--- a/client/src/components/sections/SectionForm.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/sections/SectionForm.vue Thu Jun 01 11:23:19 2023 +0200 @@ -189,12 +189,13 @@ </div> </template> -<style lang="sass" scoped> -.input-button - border-top-left-radius: 0 - border-bottom-left-radius: 0 - right: 0 - height: 31px +<style scoped> +.input-button { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + right: 0; + height: 31px; +} </style> <script>
--- a/client/src/components/sections/Sections.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/sections/Sections.vue Thu Jun 01 11:23:19 2023 +0200 @@ -76,12 +76,13 @@ </div> </template> -<style lang="sass" scoped> -.input-button - border-top-left-radius: 0 - border-bottom-left-radius: 0 - right: 0 - height: 31px +<style scoped> +.input-button { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + right: 0; + height: 31px; +} </style> <script>
--- a/client/src/components/stretches/Stretches.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/stretches/Stretches.vue Thu Jun 01 11:23:19 2023 +0200 @@ -78,12 +78,13 @@ </div> </template> -<style lang="sass" scoped> -.input-button - border-top-left-radius: 0 - border-bottom-left-radius: 0 - right: 0 - height: 31px +<style scoped> +.input-button { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + right: 0; + height: 31px; +} </style> <script>
--- a/client/src/components/systemconfiguration/ColorSettings.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/systemconfiguration/ColorSettings.vue Thu Jun 01 11:23:19 2023 +0200 @@ -67,27 +67,32 @@ </div> </template> -<style lang="sass" scoped> -.savebuttons - position:relative - top: -4em; -/deep/ - .card - overflow: hidden - .card-header - padding: .25rem 1rem - .vc-chrome - box-shadow: none - border-radius: 0 - width: 100% - .vc-chrome-saturation-wrap - border-radius: 0 - padding-bottom: 45% - &.hide - .vc-chrome-alpha-wrap - display: none !important - .vc-chrome-hue-wrap - margin-top: 10px +<style scoped> +.savebuttons { + top: -4em; +} + +::v-deep .card { + overflow: hidden; +} +::v-deep .card .card-header { + padding: 0.25rem 1rem; +} +::v-deep .card .vc-chrome { + box-shadow: none; + border-radius: 0; + width: 100%; +} +::v-deep .card .vc-chrome .vc-chrome-saturation-wrap { + border-radius: 0; + padding-bottom: 45%; +} +::v-deep .card .vc-chrome.hide .vc-chrome-alpha-wrap { + display: none !important; +} +::v-deep .card .vc-chrome.hide .vc-chrome-hue-wrap { + margin-top: 10px; +} </style> <script>
--- a/client/src/components/systemconfiguration/DataAccuracy.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/systemconfiguration/DataAccuracy.vue Thu Jun 01 11:23:19 2023 +0200 @@ -279,33 +279,43 @@ </div> </template> -<style lang="sass" scoped> -.card - width: 33.333% - &:nth-child(1) - > .card-header - border-bottom: solid 2px #28a745 - &:nth-child(2) - > .card-header - border-bottom: solid 2px #ffc107 - &:nth-child(3) - > .card-header - border-bottom: solid 2px #dc3545 +<style scoped> +.card { + width: 33.333%; +} +.card:nth-child(1) > .card-header { + border-bottom: solid 2px #28a745; +} +.card:nth-child(2) > .card-header { + border-bottom: solid 2px #ffc107; +} +.card:nth-child(3) > .card-header { + border-bottom: solid 2px #dc3545; +} + .rounded-left, -.rounded-left .card-header - border-top-right-radius: 0 - border-bottom-right-radius: 0 +.rounded-left .card-header { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + .rounded-right, -.rounded-right .card-header - border-top-left-radius: 0 - border-bottom-left-radius: 0 -.card-header - padding: 0.25rem -.card-body - padding: 0.5rem - .form-control-sm - height: 24px - font-size: 12px +.rounded-right .card-header { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.card-header { + padding: 0.25rem; +} + +.card-body { + padding: 0.5rem; +} +.card-body .form-control-sm { + height: 24px; + font-size: 12px; +} </style> <script>
--- a/client/src/components/systemconfiguration/MorphologyClassbreaks.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/systemconfiguration/MorphologyClassbreaks.vue Thu Jun 01 11:23:19 2023 +0200 @@ -222,45 +222,57 @@ </div> </template> -<style lang="sass" scoped> -.numfield:invalid - border: 2px solid - border-color: #ff0000 +<style scoped> +.numfield:invalid { + border: 2px solid; + border-color: #ff0000; +} -.classbreak - width: 154px - .btn-outline-secondary - border-color: #ccc - color: #ccc - &:hover:not(.hasColor) - background: #eee !important - .input-group-prepend - .btn-outline-secondary.hasColor - color: rgba(255, 255, 255, 0.5) - .input-group-append - .btn-outline-secondary - &:hover - color: #dc3545 - &:last-child:hover - color: #28a745 - .color-picker - position: absolute - top: -4px - left: 19px - z-index: 9 - overflow: hidden - border-top-left-radius: 0 !important - .btn - border-radius: 0 !important - .vc-chrome - box-shadow: none -/deep/ - .vc-chrome-alpha-wrap - display: none !important - .vc-chrome-hue-wrap - margin-top: 10px - .vc-chrome-saturation-wrap - border-radius: 0 +.classbreak { + width: 154px; +} +.classbreak .btn-outline-secondary { + border-color: #ccc; + color: #ccc; +} +.classbreak .btn-outline-secondary:hover:not(.hasColor) { + background: #eee !important; +} +.classbreak .input-group-prepend .btn-outline-secondary.hasColor { + color: rgba(255, 255, 255, 0.5); +} +.classbreak .input-group-append .btn-outline-secondary:hover { + color: #dc3545; +} +.classbreak .input-group-append .btn-outline-secondary:last-child:hover { + color: #28a745; +} +.classbreak .color-picker { + position: absolute; + top: -4px; + left: 19px; + z-index: 9; + overflow: hidden; + border-top-left-radius: 0 !important; +} +.classbreak .color-picker .btn { + border-radius: 0 !important; +} +.classbreak .color-picker .vc-chrome { + box-shadow: none; +} + +::v-deep .vc-chrome-alpha-wrap { + display: none !important; +} + +::v-deep .vc-chrome-hue-wrap { + margin-top: 10px; +} + +::v-deep .vc-chrome-saturation-wrap { + border-radius: 0; +} </style> <script>
--- a/client/src/components/systemconfiguration/PDFTemplates.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/systemconfiguration/PDFTemplates.vue Thu Jun 01 11:23:19 2023 +0200 @@ -73,13 +73,13 @@ </div> </template> -<style lang="scss" scoped> +<style scoped> .table th, td { - font-size: $smaller; + font-size: var(--smaller); border-top: 0px !important; text-align: left; - padding: $small-offset !important; + padding: var(--small-offset) !important; } </style>
--- a/client/src/components/systemconfiguration/Systemconfiguration.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/systemconfiguration/Systemconfiguration.vue Thu Jun 01 11:23:19 2023 +0200 @@ -69,12 +69,13 @@ </div> </template> -<style lang="sass"> -.nav-pills - .nav-link - border-radius: 0 - &.active - background: $color-info +<style> +.nav-pills .nav-link { + border-radius: 0; +} +.nav-pills .nav-link.active { + background: var(--color-info); +} </style> <script>
--- a/client/src/components/toolbar/TimeSlider.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/toolbar/TimeSlider.vue Thu Jun 01 11:23:19 2023 +0200 @@ -72,7 +72,7 @@ } }; </script> -<style lang="scss" scoped> +<style scoped> .menuEntry { font-size: 9px; font-weight: bold;
--- a/client/src/components/toolbar/Toolbar.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/toolbar/Toolbar.vue Thu Jun 01 11:23:19 2023 +0200 @@ -28,9 +28,9 @@ </div> </template> -<style lang="scss"> -// not scoped to affect nested components -// doen't work when put in application/assets/application.sass... why??? o_O +<style> +/* not scoped to affect nested components +// doen't work when put in application/assets/application.sass... why??? o_O */ .toolbar { box-shadow: 0 0.1rem 0.5rem rgba(0, 0, 0, 0.2); overflow: hidden; @@ -61,10 +61,10 @@ pointer-events: auto; position: relative; overflow: hidden; - &.disabled { - color: #ccc; - cursor: default; - } +} +.toolbar-button.disabled { + color: #ccc; + cursor: default; } .toolbar-button:last-child {
--- a/client/src/components/ui/UIBoxHeader.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/ui/UIBoxHeader.vue Thu Jun 01 11:23:19 2023 +0200 @@ -40,32 +40,39 @@ </h6> </template> -<style lang="sass"> -.box-header - display: flex - justify-content: space-between - align-items: center - min-height: 34px - padding-left: .5rem - border-bottom: 1px solid #dee2e6 - color: $color-info - margin-bottom: 0 - padding: 0.25rem - font-weight: bold - background: white - border-top-left-radius: .25rem - border-top-right-radius: .25rem - .box-title - padding-left: 0.25rem - .box-icon - margin-right: 0.25rem - .box-control - margin-left: 3px - &.small - padding: 0.1rem 0.1rem 0.1rem 0.25rem - min-height: 27px -.checkbox-header - cursor: pointer +<style> +.box-header { + display: flex; + justify-content: space-between; + align-items: center; + min-height: 34px; + padding-left: 0.5rem; + border-bottom: 1px solid #dee2e6; + color: var(--color-info); + margin-bottom: 0; + padding: 0.25rem; + font-weight: bold; + background: white; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.box-header .box-title { + padding-left: 0.25rem; +} +.box-header .box-title .box-icon { + margin-right: 0.25rem; +} +.box-header .box-control { + margin-left: 3px; +} +.box-header.small { + padding: 0.1rem 0.1rem 0.1rem 0.25rem; + min-height: 27px; +} + +.checkbox-header { + cursor: pointer; +} </style> <script>
--- a/client/src/components/ui/UISpinnerOverlay.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/ui/UISpinnerOverlay.vue Thu Jun 01 11:23:19 2023 +0200 @@ -6,19 +6,20 @@ </transition> </template> -<style lang="sass"> -.spinner-overlay - background: rgba(255, 255, 255, 0.9) - position: absolute - z-index: 99 - top: 0 - right: 0 - bottom: 0 - left: 0 - display: flex - align-items: center - justify-content: center - color: #888 +<style> +.spinner-overlay { + background: rgba(255, 255, 255, 0.9); + position: absolute; + z-index: 99; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: flex; + align-items: center; + justify-content: center; + color: #888; +} </style> <script>
--- a/client/src/components/ui/UITableBody.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/ui/UITableBody.vue Thu Jun 01 11:23:19 2023 +0200 @@ -22,33 +22,39 @@ </div> </template> -<style lang="sass"> -.table-body - .row-container - > .row - &:hover - background-color: #fcfcfc - .table-cell - display: flex - align-items: center - padding: 1.5px 3px - border-right: solid 1px #dee2e6 - &:last-child - border-right: none - &.center - justify-content: center - .expand - border-bottom: solid 2px $color-info +<style> +.table-body .row-container > .row:hover { + background-color: #fcfcfc; +} - &.active - > .row - color: #fff - .table-cell - border-right-color: rgba(255, 255, 255, 0.3) - background-color: $color-info - color: #fff - a - color: #fff !important +.table-body .row-container > .row .table-cell { + display: flex; + align-items: center; + padding: 1.5px 3px; + border-right: solid 1px #dee2e6; +} +.table-body .row-container > .row .table-cell:last-child { + border-right: none; +} +.table-body .row-container > .row .table-cell.center { + justify-content: center; +} + +.table-body .row-container .expand { + border-bottom: solid 2px var(--color-info); +} + +.table-body .row-container.active > .row { + color: #fff; +} +.table-body .row-container.active > .row .table-cell { + border-right-color: rgba(255, 255, 255, 0.3); + background-color: var(--color-info); + color: #fff; +} +.table-body .row-container.active > .row .table-cell a { + color: #fff !important; +} </style> <script>
--- a/client/src/components/ui/UITableHeader.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/ui/UITableHeader.vue Thu Jun 01 11:23:19 2023 +0200 @@ -28,22 +28,26 @@ </div> </template> -<style lang="sass"> -.table-header - > a - border-right: solid 1px #e7e8e9 - background-color: #f8f9fa - a - outline: none - &:hover - text-decoration: none - background-color: #f8f9fa - &.sortable - a:not(.sorting-disabled) - cursor: pointer - &:hover, - &.active - background: #e7e8e9 +<style> +.table-header > a { + border-right: solid 1px #e7e8e9; + background-color: #f8f9fa; +} +.table-header > a a { + outline: none; +} +.table-header > a a:hover { + text-decoration: none; + background-color: #f8f9fa; +} + +.table-header.sortable a:not(.sorting-disabled) { + cursor: pointer; +} +.table-header.sortable a:not(.sorting-disabled):hover, +.table-header.sortable a:not(.sorting-disabled).active { + background: #e7e8e9; +} </style> <script>
--- a/client/src/components/usermanagement/Userdetail.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/usermanagement/Userdetail.vue Thu Jun 01 11:23:19 2023 +0200 @@ -141,16 +141,16 @@ </div> </template> -<style lang="scss" scoped> +<style scoped> .submit-button { position: absolute; - right: $offset; - bottom: $offset; + right: var(--offset); + bottom: var(--offset); } .mailbutton { width: 12vw; position: absolute; - left: $large-offset; + left: var(--large-offset); bottom: 0; } @@ -161,12 +161,12 @@ .userdetails { min-width: 400px; max-height: 693px; - margin-right: $offset; + margin-right: var(--offset); overflow-y: auto; } form { - font-size: $smaller; + font-size: var(--smaller); } </style>
--- a/client/src/components/usermanagement/Usermanagement.vue Mon May 08 18:11:08 2023 +0200 +++ b/client/src/components/usermanagement/Usermanagement.vue Thu Jun 01 11:23:19 2023 +0200 @@ -134,28 +134,35 @@ </div> </template> -<style lang="sass" scoped> -.content - width: 100% +<style scoped> +.content { + width: 100%; +} -.userdetails - width: 50% +.userdetails { + width: 50%; +} -.main - height: 100% +.main { + height: 100%; +} -.icon - font-size: large +.icon { + font-size: large; +} -.userlist - min-width: 520px - height: 100% +.userlist { + min-width: 520px; + height: 100%; +} -.userlistsmall - width: 100% +.userlistsmall { + width: 100%; +} -.userlistextended - width: 100% +.userlistextended { + width: 100%; +} </style> <script>
--- a/client/src/main.js Mon May 08 18:11:08 2023 +0200 +++ b/client/src/main.js Thu Jun 01 11:23:19 2023 +0200 @@ -42,6 +42,7 @@ import "../node_modules/ol/ol.css"; import "../node_modules/highlight.js/styles/paraiso-dark.css"; import "../node_modules/vue-snotify/styles/simple.css"; +import "./assets/application.css"; // fontawesome5 icons import {
--- a/client/vue.config.js Mon May 08 18:11:08 2023 +0200 +++ b/client/vue.config.js Thu Jun 01 11:23:19 2023 +0200 @@ -18,15 +18,6 @@ config.plugin("BundleAnalyzerPlugin").use(BundleAnalyzerPlugin, []); } }, - css: { - loaderOptions: { - // pass options to sass-loader - sass: { - // @/ is an alias to src/ - data: `@import "@/assets/application.scss";` - } - } - }, devServer: { proxy: { "/api": {
--- a/client/yarn.lock Mon May 08 18:11:08 2023 +0200 +++ b/client/yarn.lock Thu Jun 01 11:23:19 2023 +0200 @@ -1710,11 +1710,6 @@ resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - animate.css@^3.7.0: version "3.7.2" resolved "https://registry.yarnpkg.com/animate.css/-/animate.css-3.7.2.tgz#e73e0d50e92cb1cfef1597d9b38a9481020e08ea" @@ -1795,7 +1790,7 @@ dependencies: default-require-extensions "^1.0.0" -aproba@^1.0.3, aproba@^1.1.1: +aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== @@ -1805,14 +1800,6 @@ resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1852,11 +1839,6 @@ resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -1953,11 +1935,6 @@ resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= - async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" @@ -2308,13 +2285,6 @@ dependencies: file-uri-to-path "1.0.0" -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" - bluebird@^3.1.1, bluebird@^3.5.1, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -2658,29 +2628,11 @@ no-case "^2.2.0" upper-case "^1.1.1" -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= - camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" @@ -2758,7 +2710,7 @@ escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -2944,15 +2896,6 @@ right-align "^0.1.1" wordwrap "0.0.2" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -2980,15 +2923,6 @@ strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - clone@2.x: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" @@ -3187,11 +3121,6 @@ resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - consolidate@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" @@ -3336,14 +3265,6 @@ shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -3596,13 +3517,6 @@ resolved "https://registry.yarnpkg.com/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz#f31cf7e4f3e218b0726e738ca92a02d3488ef615" integrity sha1-8xz35PPiGLBybnOMqSoC00iO9hU= -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" @@ -3953,7 +3867,7 @@ dependencies: ms "^2.1.1" -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -4099,11 +4013,6 @@ resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -5275,16 +5184,6 @@ bindings "^1.5.0" nan "^2.12.1" -fstream@^1.0.0, fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - ftp@~0.3.10: version "0.3.10" resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" @@ -5303,27 +5202,6 @@ resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gaze@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== - dependencies: - globule "^1.0.0" - gensync@^1.0.0-beta.1: version "1.0.0-beta.1" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" @@ -5358,11 +5236,6 @@ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= - get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" @@ -5459,7 +5332,7 @@ once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -5554,15 +5427,6 @@ pify "^4.0.1" slash "^2.0.0" -globule@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.1.tgz#90a25338f22b7fbeb527cee63c629aea754d33b9" - integrity sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g== - dependencies: - glob "~7.1.1" - lodash "~4.17.12" - minimatch "~3.0.2" - good-listener@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" @@ -5660,11 +5524,6 @@ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -6045,18 +5904,6 @@ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -in-publish@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c" - integrity sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ== - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -6075,7 +5922,7 @@ once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -6135,11 +5982,6 @@ dependencies: loose-envify "^1.0.0" -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" @@ -6994,11 +6836,6 @@ import-local "^1.0.0" jest-cli "^23.6.0" -js-base64@^2.1.8: - version "2.5.2" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.2.tgz#313b6274dda718f714d00b3330bbae6e38e90209" - integrity sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ== - js-beautify@^1.6.12, js-beautify@^1.6.14: version "1.11.0" resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.11.0.tgz#afb873dc47d58986360093dcb69951e8bcd5ded2" @@ -7277,13 +7114,6 @@ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" @@ -7357,7 +7187,7 @@ json5 "^0.5.0" object-assign "^4.0.1" -loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -7573,7 +7403,7 @@ resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.3.0, lodash@~4.17.12: +lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.3.0: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -7602,14 +7432,6 @@ dependencies: js-tokens "^3.0.0 || ^4.0.0" -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" @@ -7669,11 +7491,6 @@ resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -7740,22 +7557,6 @@ errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -7900,7 +7701,7 @@ dependencies: brace-expansion "^1.0.0" -minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: +minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -7912,7 +7713,7 @@ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -7969,7 +7770,7 @@ dependencies: minimist "0.0.8" -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@~0.5.1: +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -8077,7 +7878,7 @@ object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.12.1, nan@^2.13.2: +nan@^2.12.1: version "2.14.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== @@ -8160,24 +7961,6 @@ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== -node-gyp@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" - integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -8237,36 +8020,6 @@ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== -node-sass@^4.10.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.0.tgz#a8e9d7720f8e15b4a1072719dcf04006f5648eeb" - integrity sha512-AxqU+DFpk0lEz95sI6jO0hU0Rwyw7BXVEv6o9OItoXLyeygPeaSpiV4rwQb10JiTghHaa0gZeD21sz+OsQluaw== - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash "^4.17.15" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.13.2" - node-gyp "^3.8.0" - npmlog "^4.0.0" - request "^2.88.0" - sass-graph "^2.2.4" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= - dependencies: - abbrev "1" - nopt@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" @@ -8275,7 +8028,7 @@ abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -8336,16 +8089,6 @@ dependencies: path-key "^3.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - nth-check@^1.0.2, nth-check@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -8585,13 +8328,6 @@ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= - dependencies: - lcid "^1.0.0" - os-locale@^3.0.0, os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -8606,7 +8342,7 @@ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@0, osenv@^0.1.4: +osenv@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -9872,7 +9608,7 @@ parse-json "^5.0.0" type-fest "^0.6.0" -"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -9920,14 +9656,6 @@ dependencies: util.promisify "^1.0.0" -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - regenerate-unicode-properties@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" @@ -10212,7 +9940,7 @@ dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -10320,27 +10048,6 @@ dependencies: truncate-utf8-bytes "^1.0.0" -sass-graph@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" - integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k= - dependencies: - glob "^7.0.0" - lodash "^4.0.0" - scss-tokenizer "^0.2.3" - yargs "^7.0.0" - -sass-loader@^7.0.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.3.1.tgz#a5bf68a04bcea1c13ff842d747150f7ab7d0d23f" - integrity sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA== - dependencies: - clone-deep "^4.0.1" - loader-utils "^1.0.1" - neo-async "^2.5.0" - pify "^4.0.1" - semver "^6.3.0" - sax@^1.1.4, sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -10363,14 +10070,6 @@ ajv "^6.12.0" ajv-keywords "^3.4.1" -scss-tokenizer@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" - integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= - dependencies: - js-base64 "^2.1.8" - source-map "^0.4.2" - select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -10408,11 +10107,6 @@ resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" integrity sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no= -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= - send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -10465,7 +10159,7 @@ parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -10503,13 +10197,6 @@ inherits "^2.0.1" safe-buffer "^5.0.1" -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -10698,13 +10385,6 @@ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= -source-map@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - integrity sha1-66T12pwNyZneaAMti092FzZSA2s= - dependencies: - amdefine ">=0.0.4" - source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -10848,13 +10528,6 @@ resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -stdout-stream@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" - integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== - dependencies: - readable-stream "^2.0.1" - stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" @@ -10905,7 +10578,7 @@ astral-regex "^1.0.0" strip-ansi "^4.0.0" -string-width@^1.0.1, string-width@^1.0.2: +string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= @@ -10914,7 +10587,7 @@ is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -11059,13 +10732,6 @@ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= - dependencies: - get-stdin "^4.0.1" - strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" @@ -11184,15 +10850,6 @@ resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" - tcp-port-used@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70" @@ -11406,23 +11063,11 @@ resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= - trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= -"true-case-path@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" - integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== - dependencies: - glob "^7.1.2" - truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" @@ -12161,17 +11806,12 @@ tr46 "^1.0.1" webidl-conversions "^4.0.2" -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= - which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@1, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -12185,13 +11825,6 @@ dependencies: isexe "^2.0.0" -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" @@ -12370,13 +12003,6 @@ camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= - dependencies: - camelcase "^3.0.0" - yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" @@ -12471,25 +12097,6 @@ y18n "^4.0.0" yargs-parser "^18.1.1" -yargs@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" - yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"