diff --git a/.github/workflows/chart-release.yml b/.github/workflows/chart-release.yml index 18aee21ab6..3f87249758 100644 --- a/.github/workflows/chart-release.yml +++ b/.github/workflows/chart-release.yml @@ -32,7 +32,7 @@ jobs: - name: Update helm dependencies for trace-x run: | - cd charts/tx-traceability-foss-frontend + cd charts/traceability-foss-frontend helm repo add bitnami https://charts.bitnami.com/bitnami helm dependency update - name: Run chart-releaser diff --git a/DEPENDENCIES b/DEPENDENCIES index 48e6127eb9..b7690f21e0 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -9,6 +9,7 @@ npm/npmjs/-/acorn-walk/7.2.0, MIT, approved, clearlydefined npm/npmjs/-/acorn-walk/8.2.0, MIT, approved, clearlydefined npm/npmjs/-/acorn/7.4.1, MIT, approved, clearlydefined npm/npmjs/-/acorn/8.7.1, MIT, approved, clearlydefined +npm/npmjs/-/acorn/8.8.1, MIT, approved, #6951 npm/npmjs/-/adjust-sourcemap-loader/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/agent-base/6.0.2, MIT, approved, clearlydefined npm/npmjs/-/agentkeepalive/4.2.1, MIT, approved, clearlydefined @@ -21,6 +22,7 @@ npm/npmjs/-/ajv/8.11.0, MIT, approved, #4969 npm/npmjs/-/ajv/8.9.0, MIT, approved, clearlydefined npm/npmjs/-/angular-i18next/11.0.0, MIT, approved, clearlydefined npm/npmjs/-/ansi-colors/4.1.1, MIT, approved, clearlydefined +npm/npmjs/-/ansi-colors/4.1.3, MIT, approved, clearlydefined npm/npmjs/-/ansi-escapes/4.3.2, MIT, approved, clearlydefined npm/npmjs/-/ansi-html-community/0.0.8, Apache-2.0, approved, clearlydefined npm/npmjs/-/ansi-regex/5.0.1, MIT, approved, clearlydefined @@ -31,9 +33,10 @@ npm/npmjs/-/ansi-styles/5.2.0, MIT, approved, clearlydefined npm/npmjs/-/ansi-styles/6.1.0, MIT, approved, clearlydefined npm/npmjs/-/anymatch/3.1.2, ISC, approved, #5050 npm/npmjs/-/aproba/2.0.0, ISC, approved, clearlydefined +npm/npmjs/-/arch/2.2.0, MIT, approved, clearlydefined npm/npmjs/-/are-we-there-yet/3.0.0, ISC, approved, clearlydefined npm/npmjs/-/arg/4.1.3, MIT, approved, clearlydefined -npm/npmjs/-/arg/5.0.1, MIT, approved, clearlydefined +npm/npmjs/-/arg/5.0.2, MIT, approved, clearlydefined npm/npmjs/-/argparse/1.0.10, MIT, approved, #2174 npm/npmjs/-/argparse/2.0.1, Python-2.0, approved, CQ22954 npm/npmjs/-/aria-query/4.2.2, Apache-2.0, approved, clearlydefined @@ -41,18 +44,25 @@ npm/npmjs/-/aria-query/5.0.0, Apache-2.0, approved, clearlydefined npm/npmjs/-/array-flatten/1.1.1, MIT, approved, clearlydefined npm/npmjs/-/array-flatten/2.1.2, MIT, approved, clearlydefined npm/npmjs/-/array-ify/1.0.0, MIT, approved, clearlydefined -npm/npmjs/-/array-includes/3.1.5, MIT, approved, #4577 +npm/npmjs/-/array-includes/3.1.6, MIT, approved, #4577 npm/npmjs/-/array-union/2.1.0, MIT, approved, clearlydefined npm/npmjs/-/array-union/3.0.1, MIT, approved, clearlydefined -npm/npmjs/-/array.prototype.flat/1.3.0, MIT, approved, #4574 +npm/npmjs/-/array.prototype.flat/1.3.1, MIT, approved, #4574 +npm/npmjs/-/array.prototype.flatmap/1.3.1, MIT, approved, #4651 npm/npmjs/-/arrify/1.0.1, MIT, approved, clearlydefined +npm/npmjs/-/asn1/0.2.6, MIT, approved, clearlydefined +npm/npmjs/-/assert-plus/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/astral-regex/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/async/2.6.4, MIT, approved, clearlydefined npm/npmjs/-/async/3.2.3, Apache-2.0 AND MIT, approved, #1553 +npm/npmjs/-/async/3.2.4, Apache-2.0 AND MIT, approved, #1553 +npm/npmjs/-/asynckit/0.4.0, MIT, approved, clearlydefined npm/npmjs/-/at-least-node/1.0.0, ISC, approved, clearlydefined npm/npmjs/-/atob/2.1.2, MIT OR Apache-2.0, approved, #1027 npm/npmjs/-/autoprefixer/10.4.13, MIT, approved, clearlydefined npm/npmjs/-/available-typed-arrays/1.0.5, MIT, approved, clearlydefined +npm/npmjs/-/aws-sign2/0.7.0, Apache-2.0, approved, clearlydefined +npm/npmjs/-/aws4/1.11.0, MIT, approved, clearlydefined npm/npmjs/-/axobject-query/2.2.0, Apache-2.0, approved, clearlydefined npm/npmjs/-/babel-loader/8.2.3, MIT, approved, clearlydefined npm/npmjs/-/babel-plugin-dynamic-import-node/2.3.3, MIT, approved, clearlydefined @@ -65,9 +75,12 @@ npm/npmjs/-/balanced-match/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/base64-js/1.5.1, MIT, approved, clearlydefined npm/npmjs/-/base64id/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/batch/0.6.1, MIT, approved, clearlydefined +npm/npmjs/-/bcrypt-pbkdf/1.0.2, BSD-3-Clause AND ISC AND BSD-3-Clause, approved, #2725 npm/npmjs/-/big.js/5.2.2, MIT, approved, clearlydefined npm/npmjs/-/binary-extensions/2.2.0, MIT, approved, clearlydefined npm/npmjs/-/bl/4.1.0, MIT, approved, clearlydefined +npm/npmjs/-/blob-util/2.0.2, Apache-2.0, approved, clearlydefined +npm/npmjs/-/bluebird/3.7.2, MIT, approved, clearlydefined npm/npmjs/-/body-parser/1.20.0, MIT, approved, clearlydefined npm/npmjs/-/body-parser/1.20.1, MIT, approved, clearlydefined npm/npmjs/-/bonjour/3.5.0, MIT, approved, clearlydefined @@ -75,7 +88,8 @@ npm/npmjs/-/boolbase/1.0.0, ISC, approved, clearlydefined npm/npmjs/-/brace-expansion/1.1.11, MIT, approved, clearlydefined npm/npmjs/-/brace-expansion/2.0.1, MIT, approved, clearlydefined npm/npmjs/-/braces/3.0.2, MIT, approved, clearlydefined -npm/npmjs/-/browserslist/4.21.4, MIT, approved, clearlydefined +npm/npmjs/-/browserslist/4.21.4, MIT, approved, #7034 +npm/npmjs/-/buffer-crc32/0.2.13, MIT, approved, clearlydefined npm/npmjs/-/buffer-from/1.1.2, MIT, approved, clearlydefined npm/npmjs/-/buffer-indexof/1.1.1, MIT, approved, clearlydefined npm/npmjs/-/buffer/5.7.1, MIT, approved, clearlydefined @@ -84,24 +98,30 @@ npm/npmjs/-/bytes/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/bytes/3.1.2, MIT, approved, clearlydefined npm/npmjs/-/cacache/15.3.0, ISC, approved, clearlydefined npm/npmjs/-/cacache/16.0.7, ISC, approved, clearlydefined +npm/npmjs/-/cachedir/2.3.0, MIT, approved, clearlydefined npm/npmjs/-/call-bind/1.0.2, MIT, approved, clearlydefined npm/npmjs/-/callsites/3.1.0, MIT, approved, clearlydefined npm/npmjs/-/camelcase-css/2.0.1, MIT, approved, clearlydefined npm/npmjs/-/camelcase-keys/6.2.2, MIT, approved, clearlydefined npm/npmjs/-/camelcase/5.3.1, MIT, approved, clearlydefined npm/npmjs/-/caniuse-lite/1.0.30001431, CC-BY-4.0, approved, #1196 +npm/npmjs/-/caseless/0.12.0, Apache-2.0, approved, clearlydefined npm/npmjs/-/chalk/2.4.2, MIT, approved, clearlydefined -npm/npmjs/-/chalk/4.1.0, MIT, approved, clearlydefined npm/npmjs/-/chalk/4.1.1, MIT, approved, clearlydefined npm/npmjs/-/chalk/4.1.2, MIT, approved, clearlydefined npm/npmjs/-/chardet/0.7.0, MIT, approved, clearlydefined +npm/npmjs/-/check-more-types/2.24.0, MIT, approved, clearlydefined npm/npmjs/-/chokidar/3.5.3, MIT, approved, #2317 npm/npmjs/-/chownr/2.0.0, ISC, approved, clearlydefined npm/npmjs/-/chrome-trace-event/1.0.3, MIT, approved, #2414 +npm/npmjs/-/ci-info/3.7.0, MIT, approved, clearlydefined npm/npmjs/-/circular-dependency-plugin/5.2.2, ISC, approved, clearlydefined +npm/npmjs/-/class-transformer/0.5.1, MIT, approved, clearlydefined npm/npmjs/-/clean-stack/2.2.0, MIT, approved, clearlydefined npm/npmjs/-/cli-cursor/3.1.0, MIT, approved, clearlydefined npm/npmjs/-/cli-spinners/2.6.1, MIT, approved, clearlydefined +npm/npmjs/-/cli-table/0.3.11, MIT, approved, clearlydefined +npm/npmjs/-/cli-table3/0.6.3, MIT, approved, clearlydefined npm/npmjs/-/cli-truncate/2.1.0, MIT, approved, clearlydefined npm/npmjs/-/cli-truncate/3.1.0, MIT, approved, clearlydefined npm/npmjs/-/cli-width/3.0.0, ISC, approved, clearlydefined @@ -116,13 +136,18 @@ npm/npmjs/-/color-name/1.1.4, MIT, approved, clearlydefined npm/npmjs/-/color-string/1.9.1, MIT, approved, clearlydefined npm/npmjs/-/color-support/1.1.3, ISC, approved, clearlydefined npm/npmjs/-/color/3.2.1, MIT, approved, clearlydefined -npm/npmjs/-/colord/2.9.2, MIT, approved, clearlydefined +npm/npmjs/-/colord/2.9.3, MIT, approved, clearlydefined npm/npmjs/-/colorette/2.0.19, MIT, approved, clearlydefined +npm/npmjs/-/colors/1.0.3, MIT, approved, clearlydefined npm/npmjs/-/colorspace/1.1.4, MIT, approved, clearlydefined +npm/npmjs/-/combined-stream/1.0.8, MIT, approved, clearlydefined npm/npmjs/-/commander/2.20.3, MIT, approved, clearlydefined +npm/npmjs/-/commander/5.1.0, MIT, approved, clearlydefined npm/npmjs/-/commander/7.2.0, MIT, approved, clearlydefined npm/npmjs/-/commander/9.4.1, MIT, approved, clearlydefined npm/npmjs/-/comment-parser/1.3.1, MIT, approved, clearlydefined +npm/npmjs/-/common-ancestor-path/1.0.1, ISC, approved, clearlydefined +npm/npmjs/-/common-tags/1.8.2, MIT, approved, #2950 npm/npmjs/-/commondir/1.0.1, MIT, approved, clearlydefined npm/npmjs/-/compare-func/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/compressible/2.0.18, MIT, approved, clearlydefined @@ -132,7 +157,7 @@ npm/npmjs/-/connect-history-api-fallback/1.6.0, MIT, approved, clearlydefined npm/npmjs/-/connect/3.7.0, MIT, approved, clearlydefined npm/npmjs/-/console-control-strings/1.1.0, ISC, approved, clearlydefined npm/npmjs/-/content-disposition/0.5.4, MIT, approved, clearlydefined -npm/npmjs/-/content-type/1.0.4, MIT, approved, clearlydefined +npm/npmjs/-/content-type/1.0.4, MIT, approved, #6950 npm/npmjs/-/conventional-changelog-angular/5.0.13, ISC, approved, clearlydefined npm/npmjs/-/conventional-changelog-conventionalcommits/4.6.3, ISC, approved, clearlydefined npm/npmjs/-/conventional-commits-parser/3.2.4, MIT, approved, clearlydefined @@ -145,16 +170,18 @@ npm/npmjs/-/copy-webpack-plugin/10.2.1, MIT, approved, clearlydefined npm/npmjs/-/core-js-compat/3.22.4, MIT, approved, clearlydefined npm/npmjs/-/core-js-pure/3.22.4, MIT, approved, clearlydefined npm/npmjs/-/core-js/3.20.3, MIT, approved, clearlydefined -npm/npmjs/-/core-util-is/1.0.3, MIT, approved, clearlydefined +npm/npmjs/-/core-util-is/1.0.2, MIT, approved, #5898 +npm/npmjs/-/core-util-is/1.0.3, MIT, approved, #5898 npm/npmjs/-/cors/2.8.5, MIT, approved, clearlydefined npm/npmjs/-/cosmiconfig-typescript-loader/4.2.0, MIT, approved, #4860 -npm/npmjs/-/cosmiconfig/7.0.1, MIT, approved, clearlydefined +npm/npmjs/-/cosmiconfig/7.1.0, MIT, approved, #4975 +npm/npmjs/-/cosmiconfig/8.0.0, MIT, approved, clearlydefined npm/npmjs/-/create-require/1.1.1, MIT, approved, clearlydefined npm/npmjs/-/critters/0.0.16, Apache-2.0, approved, clearlydefined npm/npmjs/-/cross-fetch/3.1.5, MIT, approved, clearlydefined npm/npmjs/-/cross-spawn/7.0.3, MIT, approved, clearlydefined npm/npmjs/-/css-blank-pseudo/3.0.3, CC0-1.0, approved, clearlydefined -npm/npmjs/-/css-functions-list/3.0.1, MIT, approved, clearlydefined +npm/npmjs/-/css-functions-list/3.1.0, MIT, approved, clearlydefined npm/npmjs/-/css-has-pseudo/3.0.4, CC0-1.0, approved, clearlydefined npm/npmjs/-/css-loader/6.5.1, MIT, approved, clearlydefined npm/npmjs/-/css-prefers-color-scheme/6.0.3, CC0-1.0, approved, clearlydefined @@ -166,12 +193,13 @@ npm/npmjs/-/csscolorparser/1.0.3, MIT, approved, clearlydefined npm/npmjs/-/cssdb/5.1.0, CC0-1.0, approved, clearlydefined npm/npmjs/-/cssesc/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/custom-event/1.0.1, MIT, approved, clearlydefined -npm/npmjs/-/d3-array/3.1.6, ISC, approved, clearlydefined +npm/npmjs/-/cypress/12.4.0, MIT, approved, #6957 +npm/npmjs/-/d3-array/3.2.1, ISC, approved, clearlydefined npm/npmjs/-/d3-axis/3.0.0, ISC, approved, clearlydefined npm/npmjs/-/d3-brush/3.0.0, ISC, approved, clearlydefined npm/npmjs/-/d3-chord/3.0.1, ISC, approved, clearlydefined npm/npmjs/-/d3-color/3.1.0, ISC, approved, clearlydefined -npm/npmjs/-/d3-contour/3.0.1, ISC, approved, clearlydefined +npm/npmjs/-/d3-contour/4.0.0, ISC, approved, clearlydefined npm/npmjs/-/d3-delaunay/6.0.2, ISC, approved, clearlydefined npm/npmjs/-/d3-dispatch/3.0.1, ISC, approved, clearlydefined npm/npmjs/-/d3-drag/3.0.0, ISC, approved, clearlydefined @@ -196,16 +224,18 @@ npm/npmjs/-/d3-time/3.0.0, ISC, approved, clearlydefined npm/npmjs/-/d3-timer/3.0.1, ISC, approved, clearlydefined npm/npmjs/-/d3-transition/3.0.1, ISC, approved, clearlydefined npm/npmjs/-/d3-zoom/3.0.0, ISC, approved, clearlydefined -npm/npmjs/-/d3/7.4.4, ISC, approved, clearlydefined +npm/npmjs/-/d3/7.8.0, ISC, approved, clearlydefined npm/npmjs/-/dargs/7.0.0, MIT, approved, clearlydefined +npm/npmjs/-/dashdash/1.14.1, MIT, approved, clearlydefined npm/npmjs/-/date-format/4.0.14, MIT, approved, clearlydefined +npm/npmjs/-/dayjs/1.11.7, MIT, approved, clearlydefined npm/npmjs/-/debug/2.6.9, MIT, approved, clearlydefined npm/npmjs/-/debug/3.2.7, MIT, approved, clearlydefined npm/npmjs/-/debug/4.3.3, MIT, approved, clearlydefined npm/npmjs/-/debug/4.3.4, MIT, approved, clearlydefined npm/npmjs/-/decamelize-keys/1.1.0, MIT, approved, #4601 npm/npmjs/-/decamelize/1.2.0, MIT, approved, clearlydefined -npm/npmjs/-/decode-uri-component/0.2.0, MIT, approved, clearlydefined +npm/npmjs/-/decode-uri-component/0.2.2, MIT, approved, #5322 npm/npmjs/-/deep-equal/1.1.1, MIT, approved, clearlydefined npm/npmjs/-/deep-is/0.1.4, MIT, approved, #2130 npm/npmjs/-/default-gateway/6.0.3, BSD-2-Clause AND BSD-3-Clause, approved, #2956 @@ -215,13 +245,14 @@ npm/npmjs/-/define-properties/1.1.4, MIT, approved, clearlydefined npm/npmjs/-/defined/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/del/6.0.0, MIT, approved, clearlydefined npm/npmjs/-/delaunator/5.0.0, ISC, approved, clearlydefined +npm/npmjs/-/delayed-stream/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/delegates/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/depd/1.1.2, MIT, approved, clearlydefined npm/npmjs/-/depd/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/dependency-graph/0.11.0, MIT, approved, clearlydefined npm/npmjs/-/destroy/1.2.0, MIT, approved, clearlydefined npm/npmjs/-/detect-node/2.1.0, MIT, approved, clearlydefined -npm/npmjs/-/detective/5.2.0, MIT, approved, clearlydefined +npm/npmjs/-/detective/5.2.1, MIT, approved, clearlydefined npm/npmjs/-/di/0.0.1, MIT, approved, clearlydefined npm/npmjs/-/didyoumean/1.2.2, Apache-2.0, approved, clearlydefined npm/npmjs/-/diff/4.0.2, BSD-3-Clause, approved, #2728 @@ -239,13 +270,12 @@ npm/npmjs/-/domelementtype/2.3.0, BSD-2-Clause, approved, clearlydefined npm/npmjs/-/domhandler/4.3.1, BSD-2-Clause, approved, clearlydefined npm/npmjs/-/domutils/2.8.0, BSD-2-Clause, approved, clearlydefined npm/npmjs/-/dot-prop/5.3.0, MIT, approved, clearlydefined -npm/npmjs/-/dotenv/10.0.0, BSD-2-Clause, approved, clearlydefined npm/npmjs/-/duplexer/0.1.2, MIT, approved, #1002 npm/npmjs/-/earcut/2.2.3, ISC, approved, clearlydefined npm/npmjs/-/earcut/2.2.4, ISC, approved, clearlydefined npm/npmjs/-/eastasianwidth/0.2.0, MIT, approved, clearlydefined +npm/npmjs/-/ecc-jsbn/0.1.2, MIT, approved, clearlydefined npm/npmjs/-/ee-first/1.1.1, MIT, approved, clearlydefined -npm/npmjs/-/ejs/3.1.7, Apache-2.0, approved, #1373 npm/npmjs/-/electron-to-chromium/1.4.284, ISC, approved, #1950 npm/npmjs/-/emoji-regex/8.0.0, MIT, approved, clearlydefined npm/npmjs/-/emoji-regex/9.2.2, MIT, approved, clearlydefined @@ -254,9 +284,10 @@ npm/npmjs/-/enabled/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/encodeurl/1.0.2, MIT, approved, clearlydefined npm/npmjs/-/encoding/0.1.13, MIT AND MIT-0, approved, #1016 npm/npmjs/-/end-of-stream/1.4.4, MIT, approved, clearlydefined -npm/npmjs/-/engine.io-parser/5.0.4, MIT, approved, clearlydefined +npm/npmjs/-/engine.io-parser/5.0.4, MIT, approved, #6249 npm/npmjs/-/engine.io/6.2.1, MIT, approved, #5048 npm/npmjs/-/enhanced-resolve/5.10.0, MIT, approved, clearlydefined +npm/npmjs/-/enhanced-resolve/5.12.0, MIT, approved, clearlydefined npm/npmjs/-/enquirer/2.3.6, MIT AND (ISC AND MIT), approved, #2727 npm/npmjs/-/ent/2.2.0, MIT, approved, clearlydefined npm/npmjs/-/entities/2.2.0, BSD-2-Clause, approved, clearlydefined @@ -264,48 +295,71 @@ npm/npmjs/-/env-paths/2.2.1, MIT, approved, clearlydefined npm/npmjs/-/err-code/2.0.3, MIT, approved, clearlydefined npm/npmjs/-/errno/0.1.8, MIT, approved, clearlydefined npm/npmjs/-/error-ex/1.3.2, MIT, approved, clearlydefined -npm/npmjs/-/es-abstract/1.19.5, MIT, approved, #1195 +npm/npmjs/-/error-stack-parser/2.1.4, MIT, approved, clearlydefined +npm/npmjs/-/es-abstract/1.21.1, MIT, approved, #6209 npm/npmjs/-/es-module-lexer/0.9.3, MIT, approved, #1206 +npm/npmjs/-/es-set-tostringtag/2.0.1, MIT, approved, #6218 npm/npmjs/-/es-shim-unscopables/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/es-to-primitive/1.2.1, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-android-64/0.14.54, MIT AND BSD-3-Clause AND (BSD-2-Clause AND BSD-3-Clause), approved, #3297 npm/npmjs/-/esbuild-android-arm64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-android-arm64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-darwin-64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-darwin-64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-darwin-arm64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-darwin-arm64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-freebsd-64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-freebsd-64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-freebsd-arm64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-freebsd-arm64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-linux-32/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-linux-32/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-linux-64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-linux-64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-linux-arm/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-linux-arm/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-linux-arm64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-linux-arm64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-linux-mips64le/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-linux-mips64le/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-linux-ppc64le/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-linux-ppc64le/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-linux-riscv64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-linux-riscv64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-linux-s390x/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-linux-s390x/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-netbsd-64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-netbsd-64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-openbsd-64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-openbsd-64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-sunos-64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-sunos-64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-wasm/0.14.22, MIT AND BSD-3-Clause AND (BSD-2-Clause AND BSD-3-Clause), approved, #3298 npm/npmjs/-/esbuild-windows-32/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-windows-32/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-windows-64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-windows-64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild-windows-arm64/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild-windows-arm64/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/esbuild/0.14.22, MIT, approved, clearlydefined +npm/npmjs/-/esbuild/0.14.54, MIT, approved, clearlydefined npm/npmjs/-/escalade/3.1.1, MIT, approved, clearlydefined npm/npmjs/-/escape-html/1.0.3, MIT, approved, clearlydefined npm/npmjs/-/escape-string-regexp/1.0.5, MIT, approved, clearlydefined npm/npmjs/-/escape-string-regexp/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/eslint-config-prettier/8.5.0, MIT, approved, clearlydefined -npm/npmjs/-/eslint-import-resolver-node/0.3.6, MIT, approved, clearlydefined -npm/npmjs/-/eslint-module-utils/2.7.3, MIT, approved, #2500 -npm/npmjs/-/eslint-plugin-import/2.26.0, MIT, approved, #2408 -npm/npmjs/-/eslint-plugin-jsdoc/39.6.2, BSD-3-Clause AND (GPL-2.0-only AND GPL-3.0-only AND MIT), restricted, #4857 +npm/npmjs/-/eslint-import-resolver-node/0.3.7, MIT, approved, clearlydefined +npm/npmjs/-/eslint-module-utils/2.7.4, MIT, approved, #2500 +npm/npmjs/-/eslint-plugin-import/2.27.5, MIT, approved, #6937 +npm/npmjs/-/eslint-plugin-jsdoc/39.6.4, BSD-3-Clause AND (GPL-2.0-only AND GPL-3.0-only AND MIT) AND (GPL-3.0-only AND MIT) AND MIT, restricted, #7064 npm/npmjs/-/eslint-plugin-prefer-arrow/1.2.3, MIT, approved, clearlydefined npm/npmjs/-/eslint-scope/5.1.1, BSD-2-Clause, approved, clearlydefined npm/npmjs/-/eslint-scope/7.1.1, BSD-2-Clause, approved, clearlydefined npm/npmjs/-/eslint-utils/3.0.0, MIT, approved, #2431 npm/npmjs/-/eslint-visitor-keys/2.1.0, Apache-2.0, approved, #2433 npm/npmjs/-/eslint-visitor-keys/3.3.0, Apache-2.0, approved, #2696 -npm/npmjs/-/eslint/8.12.0, MIT, approved, #3300 -npm/npmjs/-/espree/9.3.2, BSD-2-Clause AND BSD-3-Clause AND MIT, approved, #2697 +npm/npmjs/-/eslint/8.28.0, MIT, approved, #5024 +npm/npmjs/-/espree/9.4.1, BSD-2-Clause AND BSD-3-Clause AND MIT AND BSD-2-Clause, approved, #3231 npm/npmjs/-/esprima/4.0.1, BSD-2-Clause, approved, #995 npm/npmjs/-/esquery/1.4.0, BSD-3-Clause, approved, #1100 npm/npmjs/-/esrecurse/4.3.0, BSD-2-Clause, approved, clearlydefined @@ -314,45 +368,48 @@ npm/npmjs/-/estraverse/5.3.0, BSD-2-Clause AND MIT, approved, #1557 npm/npmjs/-/esutils/2.0.3, BSD-2-Clause AND BSD-3-Clause, approved, #120 npm/npmjs/-/etag/1.8.1, MIT, approved, clearlydefined npm/npmjs/-/eventemitter-asyncresource/1.0.0, MIT, approved, clearlydefined +npm/npmjs/-/eventemitter2/6.4.7, MIT, approved, clearlydefined npm/npmjs/-/eventemitter3/4.0.7, MIT, approved, clearlydefined npm/npmjs/-/events/3.3.0, MIT, approved, clearlydefined +npm/npmjs/-/execa/4.1.0, MIT, approved, clearlydefined npm/npmjs/-/execa/5.1.1, MIT, approved, clearlydefined npm/npmjs/-/execa/6.1.0, MIT, approved, clearlydefined -npm/npmjs/-/execall/2.0.0, MIT, approved, clearlydefined +npm/npmjs/-/executable/4.1.1, MIT, approved, clearlydefined npm/npmjs/-/express/4.18.1, MIT, approved, clearlydefined npm/npmjs/-/extend/3.0.2, MIT, approved, clearlydefined npm/npmjs/-/external-editor/3.1.0, MIT, approved, clearlydefined +npm/npmjs/-/extract-zip/2.0.1, BSD-2-Clause, approved, clearlydefined +npm/npmjs/-/extsprintf/1.3.0, MIT, approved, #1813 +npm/npmjs/-/extsprintf/1.4.1, MIT, approved, #1039 npm/npmjs/-/fast-deep-equal/3.1.3, MIT, approved, clearlydefined -npm/npmjs/-/fast-glob/3.2.11, MIT, approved, clearlydefined -npm/npmjs/-/fast-glob/3.2.7, MIT, approved, clearlydefined +npm/npmjs/-/fast-glob/3.2.12, MIT, approved, clearlydefined npm/npmjs/-/fast-json-stable-stringify/2.1.0, MIT, approved, clearlydefined npm/npmjs/-/fast-levenshtein/2.0.6, MIT, approved, #2428 -npm/npmjs/-/fastest-levenshtein/1.0.12, MIT, approved, clearlydefined +npm/npmjs/-/fastest-levenshtein/1.0.16, MIT, approved, clearlydefined npm/npmjs/-/fastq/1.13.0, ISC, approved, clearlydefined npm/npmjs/-/faye-websocket/0.11.4, Apache-2.0, approved, clearlydefined +npm/npmjs/-/fd-slicer/1.1.0, MIT, approved, clearlydefined npm/npmjs/-/fecha/4.2.3, MIT, approved, clearlydefined npm/npmjs/-/figures/3.2.0, MIT, approved, clearlydefined npm/npmjs/-/file-entry-cache/6.0.1, MIT, approved, clearlydefined -npm/npmjs/-/filelist/1.0.3, Apache-2.0, approved, clearlydefined npm/npmjs/-/fill-range/7.0.1, MIT, approved, clearlydefined npm/npmjs/-/finalhandler/1.1.2, MIT, approved, clearlydefined npm/npmjs/-/finalhandler/1.2.0, MIT, approved, clearlydefined npm/npmjs/-/find-cache-dir/3.3.2, MIT, approved, clearlydefined -npm/npmjs/-/find-up/2.1.0, MIT, approved, clearlydefined npm/npmjs/-/find-up/4.1.0, MIT, approved, clearlydefined npm/npmjs/-/find-up/5.0.0, MIT, approved, clearlydefined npm/npmjs/-/flat-cache/3.0.4, MIT, approved, clearlydefined -npm/npmjs/-/flat/5.0.2, BSD-3-Clause, approved, clearlydefined npm/npmjs/-/flatted/3.2.5, ISC AND (ISC AND MIT), approved, #2430 npm/npmjs/-/flatted/3.2.7, ISC AND (ISC AND MIT), approved, #2430 npm/npmjs/-/fn.name/1.1.0, MIT, approved, clearlydefined npm/npmjs/-/follow-redirects/1.15.0, MIT, approved, clearlydefined npm/npmjs/-/for-each/0.3.3, MIT, approved, clearlydefined +npm/npmjs/-/forever-agent/0.6.1, Apache-2.0, approved, clearlydefined +npm/npmjs/-/form-data/2.3.3, MIT, approved, clearlydefined npm/npmjs/-/forwarded/0.2.0, MIT, approved, clearlydefined npm/npmjs/-/fraction.js/4.2.0, MIT, approved, clearlydefined npm/npmjs/-/fresh/0.5.2, MIT, approved, clearlydefined -npm/npmjs/-/fs-constants/1.0.0, MIT, approved, clearlydefined -npm/npmjs/-/fs-extra/10.1.0, MIT, approved, clearlydefined +npm/npmjs/-/fs-extra/11.1.0, MIT, approved, #5742 npm/npmjs/-/fs-extra/8.1.0, MIT, approved, clearlydefined npm/npmjs/-/fs-extra/9.1.0, MIT, approved, clearlydefined npm/npmjs/-/fs-minipass/2.1.0, ISC, approved, clearlydefined @@ -360,7 +417,7 @@ npm/npmjs/-/fs-monkey/1.0.3, Unlicense AND (ISC AND MIT), approved, #2964 npm/npmjs/-/fs.realpath/1.0.0, ISC, approved, clearlydefined npm/npmjs/-/fsevents/2.3.2, MIT, approved, #2967 npm/npmjs/-/function-bind/1.1.1, MIT, approved, clearlydefined -npm/npmjs/-/functional-red-black-tree/1.0.1, MIT, approved, clearlydefined +npm/npmjs/-/function.prototype.name/1.1.5, MIT, approved, clearlydefined npm/npmjs/-/functions-have-names/1.2.3, MIT, approved, clearlydefined npm/npmjs/-/gauge/4.0.4, ISC, approved, clearlydefined npm/npmjs/-/gensync/1.0.0-beta.2, MIT, approved, clearlydefined @@ -369,29 +426,32 @@ npm/npmjs/-/get-caller-file/2.0.5, ISC, approved, clearlydefined npm/npmjs/-/get-intrinsic/1.1.1, MIT, approved, clearlydefined npm/npmjs/-/get-intrinsic/1.1.3, MIT, approved, clearlydefined npm/npmjs/-/get-package-type/0.1.0, MIT, approved, clearlydefined -npm/npmjs/-/get-stdin/8.0.0, MIT, approved, clearlydefined +npm/npmjs/-/get-stream/5.2.0, MIT, approved, clearlydefined npm/npmjs/-/get-stream/6.0.1, MIT, approved, clearlydefined npm/npmjs/-/get-symbol-description/1.0.0, MIT, approved, clearlydefined +npm/npmjs/-/getos/3.2.1, MIT, approved, clearlydefined +npm/npmjs/-/getpass/0.1.7, MIT, approved, clearlydefined npm/npmjs/-/git-raw-commits/2.0.11, MIT, approved, clearlydefined npm/npmjs/-/gl-matrix/3.4.3, MIT, approved, clearlydefined npm/npmjs/-/glob-parent/5.1.2, ISC, approved, clearlydefined npm/npmjs/-/glob-parent/6.0.2, ISC, approved, clearlydefined npm/npmjs/-/glob-to-regexp/0.4.1, BSD-2-Clause, approved, clearlydefined -npm/npmjs/-/glob/7.1.4, ISC, approved, #994 npm/npmjs/-/glob/7.2.0, ISC, approved, clearlydefined npm/npmjs/-/glob/7.2.3, ISC, approved, clearlydefined npm/npmjs/-/glob/8.0.1, ISC AND (Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND ISC AND MIT) AND (ISC AND MIT) AND CC-BY-SA-4.0, approved, #2676 npm/npmjs/-/global-dirs/0.1.1, MIT, approved, clearlydefined +npm/npmjs/-/global-dirs/3.0.1, MIT, approved, clearlydefined npm/npmjs/-/global-modules/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/global-prefix/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/globals/11.12.0, MIT, approved, clearlydefined -npm/npmjs/-/globals/13.13.0, MIT, approved, clearlydefined npm/npmjs/-/globals/13.15.0, MIT, approved, clearlydefined +npm/npmjs/-/globalthis/1.0.3, MIT, approved, clearlydefined npm/npmjs/-/globby/11.1.0, MIT, approved, clearlydefined npm/npmjs/-/globby/12.2.0, MIT, approved, clearlydefined npm/npmjs/-/globjoin/0.1.4, MIT, approved, clearlydefined npm/npmjs/-/gopd/1.0.1, MIT, approved, #4863 npm/npmjs/-/graceful-fs/4.2.10, ISC, approved, clearlydefined +npm/npmjs/-/grapheme-splitter/1.0.4, MIT, approved, #1645 npm/npmjs/-/graphql/16.6.0, MIT, approved, clearlydefined npm/npmjs/-/gzip-size/6.0.0, MIT, approved, clearlydefined npm/npmjs/-/hammerjs/2.0.8, MIT, approved, #382 @@ -401,6 +461,7 @@ npm/npmjs/-/has-bigints/1.0.2, MIT, approved, clearlydefined npm/npmjs/-/has-flag/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/has-flag/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/has-property-descriptors/1.0.0, MIT, approved, clearlydefined +npm/npmjs/-/has-proto/1.0.1, MIT, approved, #6175 npm/npmjs/-/has-symbols/1.0.3, MIT, approved, clearlydefined npm/npmjs/-/has-tostringtag/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/has-unicode/2.0.1, ISC, approved, clearlydefined @@ -414,7 +475,7 @@ npm/npmjs/-/hpack.js/2.1.6, MIT, approved, clearlydefined npm/npmjs/-/html-entities/2.3.3, MIT, approved, clearlydefined npm/npmjs/-/html-escaper/2.0.2, MIT, approved, clearlydefined npm/npmjs/-/html-tags/3.2.0, MIT, approved, clearlydefined -npm/npmjs/-/http-cache-semantics/4.1.0, BSD-2-Clause, approved, clearlydefined +npm/npmjs/-/http-cache-semantics/4.1.1, , restricted, clearlydefined npm/npmjs/-/http-deceiver/1.2.7, MIT, approved, clearlydefined npm/npmjs/-/http-errors/1.6.3, MIT, approved, clearlydefined npm/npmjs/-/http-errors/2.0.0, MIT, approved, clearlydefined @@ -423,21 +484,24 @@ npm/npmjs/-/http-proxy-agent/4.0.1, MIT, approved, clearlydefined npm/npmjs/-/http-proxy-agent/5.0.0, MIT, approved, clearlydefined npm/npmjs/-/http-proxy-middleware/2.0.6, MIT, approved, clearlydefined npm/npmjs/-/http-proxy/1.18.1, MIT, approved, clearlydefined +npm/npmjs/-/http-signature/1.3.6, MIT, approved, clearlydefined npm/npmjs/-/https-proxy-agent/5.0.0, MIT, approved, clearlydefined npm/npmjs/-/https-proxy-agent/5.0.1, MIT, approved, clearlydefined +npm/npmjs/-/human-signals/1.1.1, Apache-2.0, approved, clearlydefined npm/npmjs/-/human-signals/2.1.0, Apache-2.0, approved, clearlydefined npm/npmjs/-/human-signals/3.0.1, Apache-2.0, approved, clearlydefined npm/npmjs/-/humanize-ms/1.2.1, MIT, approved, clearlydefined -npm/npmjs/-/husky/8.0.2, , restricted, clearlydefined -npm/npmjs/-/i18next-browser-languagedetector/6.1.4, MIT, approved, clearlydefined -npm/npmjs/-/i18next-http-backend/1.4.1, MIT, approved, clearlydefined +npm/npmjs/-/husky/8.0.2, MIT, approved, clearlydefined +npm/npmjs/-/i18next-browser-languagedetector/7.0.1, MIT, approved, clearlydefined +npm/npmjs/-/i18next-http-backend/2.0.2, MIT, approved, clearlydefined npm/npmjs/-/i18next/21.10.0, MIT, approved, #4714 npm/npmjs/-/iconv-lite/0.4.24, MIT, approved, clearlydefined npm/npmjs/-/iconv-lite/0.6.3, MIT, approved, clearlydefined npm/npmjs/-/icss-utils/5.1.0, ISC, approved, clearlydefined npm/npmjs/-/ieee754/1.2.1, BSD-3-Clause, approved, clearlydefined npm/npmjs/-/ignore-walk/4.0.1, ISC, approved, clearlydefined -npm/npmjs/-/ignore/5.2.0, MIT, approved, clearlydefined +npm/npmjs/-/ignore/5.2.0, MIT, approved, #5907 +npm/npmjs/-/ignore/5.2.4, MIT, approved, #5907 npm/npmjs/-/image-size/0.5.5, MIT, approved, clearlydefined npm/npmjs/-/immutable/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/import-fresh/3.3.0, MIT, approved, clearlydefined @@ -452,12 +516,13 @@ npm/npmjs/-/ini/1.3.8, ISC AND MIT AND BSD-3-Clause, approved, CQ23023 npm/npmjs/-/ini/2.0.0, ISC, approved, clearlydefined npm/npmjs/-/inquirer/8.2.0, MIT, approved, clearlydefined npm/npmjs/-/inquirer/8.2.4, MIT, approved, clearlydefined -npm/npmjs/-/internal-slot/1.0.3, MIT, approved, clearlydefined +npm/npmjs/-/internal-slot/1.0.4, MIT, approved, clearlydefined npm/npmjs/-/internmap/2.0.3, ISC, approved, clearlydefined npm/npmjs/-/ip/1.1.5, MIT, approved, #126 npm/npmjs/-/ipaddr.js/1.9.1, MIT, approved, clearlydefined npm/npmjs/-/ipaddr.js/2.0.1, MIT, approved, clearlydefined npm/npmjs/-/is-arguments/1.1.1, MIT, approved, clearlydefined +npm/npmjs/-/is-array-buffer/3.0.1, MIT, approved, #6248 npm/npmjs/-/is-arrayish/0.2.1, MIT, approved, clearlydefined npm/npmjs/-/is-arrayish/0.3.2, MIT, approved, clearlydefined npm/npmjs/-/is-bigint/1.0.4, MIT, approved, clearlydefined @@ -465,7 +530,8 @@ npm/npmjs/-/is-binary-path/2.1.0, MIT, approved, clearlydefined npm/npmjs/-/is-boolean-object/1.1.2, MIT, approved, clearlydefined npm/npmjs/-/is-callable/1.2.4, MIT, approved, clearlydefined npm/npmjs/-/is-callable/1.2.7, MIT, approved, clearlydefined -npm/npmjs/-/is-core-module/2.9.0, MIT, approved, clearlydefined +npm/npmjs/-/is-ci/3.0.1, MIT, approved, clearlydefined +npm/npmjs/-/is-core-module/2.11.0, MIT, approved, clearlydefined npm/npmjs/-/is-date-object/1.0.5, MIT, approved, clearlydefined npm/npmjs/-/is-docker/2.2.1, MIT, approved, clearlydefined npm/npmjs/-/is-extglob/2.1.1, MIT, approved, clearlydefined @@ -473,6 +539,7 @@ npm/npmjs/-/is-fullwidth-code-point/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/is-fullwidth-code-point/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/is-generator-function/1.0.10, MIT, approved, clearlydefined npm/npmjs/-/is-glob/4.0.3, MIT, approved, clearlydefined +npm/npmjs/-/is-installed-globally/0.4.0, MIT, approved, clearlydefined npm/npmjs/-/is-interactive/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/is-lambda/1.0.1, MIT, approved, clearlydefined npm/npmjs/-/is-negative-zero/2.0.2, MIT, approved, clearlydefined @@ -495,6 +562,7 @@ npm/npmjs/-/is-string/1.0.7, MIT, approved, clearlydefined npm/npmjs/-/is-symbol/1.0.4, MIT, approved, clearlydefined npm/npmjs/-/is-text-path/1.0.1, MIT, approved, clearlydefined npm/npmjs/-/is-typed-array/1.1.10, MIT, approved, #4853 +npm/npmjs/-/is-typedarray/1.0.0, MIT, approved, #2531 npm/npmjs/-/is-unicode-supported/0.1.0, MIT, approved, clearlydefined npm/npmjs/-/is-weakref/1.0.2, MIT, approved, clearlydefined npm/npmjs/-/is-what/3.14.1, MIT, approved, clearlydefined @@ -503,21 +571,23 @@ npm/npmjs/-/isarray/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/isbinaryfile/4.0.10, MIT, approved, clearlydefined npm/npmjs/-/isexe/2.0.0, ISC, approved, clearlydefined npm/npmjs/-/isobject/3.0.1, MIT, approved, clearlydefined +npm/npmjs/-/isstream/0.1.2, MIT, approved, clearlydefined npm/npmjs/-/istanbul-lib-coverage/3.2.0, BSD-3-Clause, approved, clearlydefined npm/npmjs/-/istanbul-lib-instrument/5.2.0, BSD-3-Clause, approved, clearlydefined npm/npmjs/-/istanbul-lib-report/3.0.0, BSD-3-Clause, approved, clearlydefined npm/npmjs/-/istanbul-lib-source-maps/4.0.1, BSD-3-Clause, approved, clearlydefined npm/npmjs/-/istanbul-reports/3.1.5, BSD-3-Clause AND MIT, approved, #1710 -npm/npmjs/-/jake/10.8.5, Apache-2.0 AND MIT, approved, #1316 npm/npmjs/-/jasmine-core/4.3.0, MIT, approved, clearlydefined npm/npmjs/-/jasmine-core/4.4.0, MIT, approved, clearlydefined npm/npmjs/-/jest-worker/27.5.1, 0BSD AND Apache-2.0 AND BSD-2-Clause AND MIT, approved, #1952 npm/npmjs/-/js-levenshtein/1.1.6, MIT, approved, clearlydefined +npm/npmjs/-/js-sdsl/4.2.0, MIT AND (0BSD AND MIT), approved, #5025 npm/npmjs/-/js-sha256/0.9.0, MIT, approved, clearlydefined npm/npmjs/-/js-tokens/4.0.0, MIT, approved, #2401 npm/npmjs/-/js-yaml/3.14.1, MIT, approved, clearlydefined npm/npmjs/-/js-yaml/4.1.0, MIT, approved, clearlydefined npm/npmjs/-/js2xmlparser/4.0.2, Apache-2.0, approved, clearlydefined +npm/npmjs/-/jsbn/0.1.1, MIT, approved, clearlydefined npm/npmjs/-/jsdoc-type-pratt-parser/3.1.0, MIT, approved, clearlydefined npm/npmjs/-/jsesc/0.5.0, MIT, approved, clearlydefined npm/npmjs/-/jsesc/2.5.2, MIT, approved, clearlydefined @@ -525,40 +595,47 @@ npm/npmjs/-/json-parse-better-errors/1.0.2, MIT, approved, clearlydefined npm/npmjs/-/json-parse-even-better-errors/2.3.1, MIT, approved, clearlydefined npm/npmjs/-/json-schema-traverse/0.4.1, MIT, approved, clearlydefined npm/npmjs/-/json-schema-traverse/1.0.0, MIT, approved, clearlydefined +npm/npmjs/-/json-schema/0.4.0, AFL-2.1 OR BSD-3-Clause, approved, #2410 npm/npmjs/-/json-stable-stringify-without-jsonify/1.0.1, MIT, approved, clearlydefined -npm/npmjs/-/json5/1.0.1, MIT, approved, CQ22351 +npm/npmjs/-/json-stringify-safe/5.0.1, ISC, approved, clearlydefined +npm/npmjs/-/json5/1.0.2, MIT, approved, CQ22351 npm/npmjs/-/json5/2.2.1, MIT, approved, #2126 npm/npmjs/-/jsonc-parser/3.0.0, MIT, approved, clearlydefined +npm/npmjs/-/jsonc-parser/3.1.0, MIT, approved, clearlydefined +npm/npmjs/-/jsonc-parser/3.2.0, MIT, approved, clearlydefined npm/npmjs/-/jsonfile/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/jsonfile/6.1.0, MIT, approved, clearlydefined npm/npmjs/-/jsonparse/1.3.1, MIT, approved, clearlydefined +npm/npmjs/-/jsprim/2.0.2, MIT, approved, clearlydefined npm/npmjs/-/karma-chrome-launcher/3.1.0, MIT, approved, clearlydefined npm/npmjs/-/karma-coverage/2.2.0, MIT, approved, clearlydefined npm/npmjs/-/karma-jasmine-html-reporter/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/karma-jasmine/5.1.0, MIT, approved, clearlydefined npm/npmjs/-/karma-sonarqube-reporter/1.4.0, MIT, approved, clearlydefined npm/npmjs/-/karma-source-map-support/1.4.0, MIT, approved, clearlydefined -npm/npmjs/-/karma/6.4.0, MIT, approved, clearlydefined +npm/npmjs/-/karma/6.4.1, MIT, approved, clearlydefined npm/npmjs/-/kdbush/3.0.0, ISC, approved, clearlydefined npm/npmjs/-/keycloak-angular/10.0.2, MIT, approved, #4713 -npm/npmjs/-/keycloak-js/18.0.0, Apache-2.0, approved, clearlydefined +npm/npmjs/-/keycloak-js/18.0.1, Apache-2.0, approved, clearlydefined npm/npmjs/-/kind-of/6.0.3, MIT, approved, clearlydefined npm/npmjs/-/klona/2.0.5, MIT, approved, clearlydefined -npm/npmjs/-/known-css-properties/0.25.0, MIT, approved, clearlydefined +npm/npmjs/-/known-css-properties/0.26.0, MIT, approved, clearlydefined npm/npmjs/-/kuler/2.0.0, MIT, approved, clearlydefined +npm/npmjs/-/lazy-ass/1.6.0, MIT, approved, clearlydefined npm/npmjs/-/less-loader/10.2.0, MIT, approved, clearlydefined npm/npmjs/-/less/4.1.2, 0BSD AND Apache-2.0 AND BSD-2-Clause AND MIT, approved, #1527 npm/npmjs/-/levn/0.4.1, MIT, approved, clearlydefined npm/npmjs/-/license-webpack-plugin/4.0.2, ISC AND MIT AND (BSD-3-Clause AND ISC AND MIT), approved, #3303 npm/npmjs/-/lilconfig/2.0.5, MIT, approved, clearlydefined +npm/npmjs/-/lilconfig/2.0.6, MIT, approved, clearlydefined npm/npmjs/-/lines-and-columns/1.2.4, MIT, approved, clearlydefined npm/npmjs/-/lint-staged/13.0.3, MIT, approved, clearlydefined +npm/npmjs/-/listr2/3.14.0, MIT, approved, clearlydefined npm/npmjs/-/listr2/4.0.5, MIT, approved, clearlydefined npm/npmjs/-/loader-runner/4.3.0, MIT, approved, clearlydefined npm/npmjs/-/loader-utils/1.4.2, MIT, approved, #4597 npm/npmjs/-/loader-utils/2.0.2, MIT, approved, #4986 npm/npmjs/-/loader-utils/3.2.0, MIT, approved, clearlydefined -npm/npmjs/-/locate-path/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/locate-path/5.0.0, MIT, approved, clearlydefined npm/npmjs/-/locate-path/6.0.0, MIT, approved, clearlydefined npm/npmjs/-/lodash-es/4.17.21, MIT, approved, clearlydefined @@ -569,6 +646,7 @@ npm/npmjs/-/lodash.isplainobject/4.0.6, MIT, approved, clearlydefined npm/npmjs/-/lodash.kebabcase/4.1.1, MIT, approved, clearlydefined npm/npmjs/-/lodash.merge/4.6.2, MIT, approved, clearlydefined npm/npmjs/-/lodash.mergewith/4.6.2, MIT, approved, clearlydefined +npm/npmjs/-/lodash.once/4.1.1, MIT, approved, clearlydefined npm/npmjs/-/lodash.snakecase/4.1.1, MIT, approved, clearlydefined npm/npmjs/-/lodash.sortby/4.7.0, MIT, approved, clearlydefined npm/npmjs/-/lodash.startcase/4.4.0, MIT, approved, clearlydefined @@ -585,6 +663,7 @@ npm/npmjs/-/lru-cache/7.9.0, ISC, approved, clearlydefined npm/npmjs/-/lz-string/1.4.4, MIT AND WTFPL, approved, #1378 npm/npmjs/-/magic-string/0.25.7, MIT, approved, clearlydefined npm/npmjs/-/magic-string/0.26.1, MIT, approved, clearlydefined +npm/npmjs/-/magic-string/0.26.2, MIT, approved, clearlydefined npm/npmjs/-/make-dir/2.1.0, MIT, approved, clearlydefined npm/npmjs/-/make-dir/3.1.0, MIT, approved, clearlydefined npm/npmjs/-/make-error/1.3.6, ISC, approved, clearlydefined @@ -613,13 +692,11 @@ npm/npmjs/-/mimic-fn/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/min-indent/1.0.1, MIT, approved, clearlydefined npm/npmjs/-/mini-css-extract-plugin/2.5.3, MIT, approved, clearlydefined npm/npmjs/-/minimalistic-assert/1.0.1, ISC, approved, clearlydefined -npm/npmjs/-/minimatch/3.0.4, ISC, approved, clearlydefined npm/npmjs/-/minimatch/3.0.5, ISC, approved, clearlydefined npm/npmjs/-/minimatch/3.1.2, ISC, approved, clearlydefined npm/npmjs/-/minimatch/5.0.1, ISC, approved, clearlydefined npm/npmjs/-/minimist-options/4.1.0, MIT, approved, clearlydefined -npm/npmjs/-/minimist/1.2.6, MIT, approved, clearlydefined -npm/npmjs/-/minimist/1.2.7, MIT, approved, clearlydefined +npm/npmjs/-/minimist/1.2.7, MIT, approved, #5886 npm/npmjs/-/minipass-collect/1.0.2, ISC, approved, clearlydefined npm/npmjs/-/minipass-fetch/1.4.1, MIT, approved, clearlydefined npm/npmjs/-/minipass-fetch/2.1.0, MIT, approved, clearlydefined @@ -632,11 +709,12 @@ npm/npmjs/-/minizlib/2.1.2, MIT, approved, clearlydefined npm/npmjs/-/mjolnir.js/2.7.1, MIT, approved, clearlydefined npm/npmjs/-/mkdirp/0.5.6, MIT, approved, clearlydefined npm/npmjs/-/mkdirp/1.0.4, MIT, approved, clearlydefined +npm/npmjs/-/module-alias/2.2.2, MIT, approved, clearlydefined npm/npmjs/-/mrmime/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/ms/2.0.0, MIT, approved, clearlydefined -npm/npmjs/-/ms/2.1.2, MIT, approved, clearlydefined -npm/npmjs/-/ms/2.1.3, MIT, approved, clearlydefined -npm/npmjs/-/msw/0.48.0, MIT AND (LicenseRef-scancode-proprietary-license AND MIT), restricted, #4871 +npm/npmjs/-/ms/2.1.2, MIT, approved, #5895 +npm/npmjs/-/ms/2.1.3, MIT, approved, #5895 +npm/npmjs/-/msw/1.0.0, , restricted, clearlydefined npm/npmjs/-/multicast-dns-service-types/1.1.0, MIT, approved, clearlydefined npm/npmjs/-/multicast-dns/6.2.3, MIT, approved, clearlydefined npm/npmjs/-/murmurhash-js/1.0.0, MIT, approved, clearlydefined @@ -649,17 +727,17 @@ npm/npmjs/-/negotiator/0.6.3, MIT, approved, clearlydefined npm/npmjs/-/neo-async/2.6.2, MIT, approved, clearlydefined npm/npmjs/-/nice-napi/1.0.2, MIT, approved, clearlydefined npm/npmjs/-/node-addon-api/3.2.1, MIT, approved, clearlydefined -npm/npmjs/-/node-fetch/2.6.7, MIT, approved, clearlydefined +npm/npmjs/-/node-fetch/2.6.7, MIT, approved, #6954 npm/npmjs/-/node-forge/1.3.1, (BSD-3-Clause OR GPL-2.0-only) AND MIT, approved, #3014 npm/npmjs/-/node-gyp-build/4.4.0, MIT, approved, clearlydefined npm/npmjs/-/node-gyp/8.4.1, BSD-3-Clause AND MIT, approved, #1849 +npm/npmjs/-/node-hook/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/node-releases/2.0.6, MIT, approved, #1954 npm/npmjs/-/nopt/5.0.0, ISC, approved, clearlydefined npm/npmjs/-/normalize-package-data/2.5.0, BSD-2-Clause AND Apache-2.0 AND MIT, approved, #2499 npm/npmjs/-/normalize-package-data/3.0.3, BSD-2-Clause, approved, clearlydefined npm/npmjs/-/normalize-path/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/normalize-range/0.1.2, MIT, approved, clearlydefined -npm/npmjs/-/normalize-selector/0.2.0, MIT, approved, clearlydefined npm/npmjs/-/npm-bundled/1.1.2, ISC, approved, clearlydefined npm/npmjs/-/npm-install-checks/4.0.0, BSD-2-Clause, approved, clearlydefined npm/npmjs/-/npm-normalize-package-bin/1.0.1, ISC, approved, clearlydefined @@ -671,15 +749,14 @@ npm/npmjs/-/npm-run-path/4.0.1, MIT, approved, clearlydefined npm/npmjs/-/npm-run-path/5.1.0, MIT, approved, clearlydefined npm/npmjs/-/npmlog/6.0.2, ISC, approved, clearlydefined npm/npmjs/-/nth-check/2.0.1, BSD-2-Clause, approved, clearlydefined -npm/npmjs/-/nx/13.1.3, MIT, approved, clearlydefined -npm/npmjs/-/nx/14.1.1, MIT, approved, clearlydefined npm/npmjs/-/object-assign/4.1.1, MIT, approved, clearlydefined npm/npmjs/-/object-hash/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/object-inspect/1.12.2, MIT, approved, clearlydefined npm/npmjs/-/object-is/1.1.5, MIT, approved, clearlydefined npm/npmjs/-/object-keys/1.1.1, MIT, approved, clearlydefined npm/npmjs/-/object.assign/4.1.2, MIT, approved, #3232 -npm/npmjs/-/object.values/1.1.5, MIT, approved, #4665 +npm/npmjs/-/object.assign/4.1.4, MIT, approved, #3232 +npm/npmjs/-/object.values/1.1.6, MIT, approved, #4665 npm/npmjs/-/obuf/1.1.2, MIT, approved, clearlydefined npm/npmjs/-/on-finished/2.3.0, MIT, approved, clearlydefined npm/npmjs/-/on-finished/2.4.1, MIT, approved, clearlydefined @@ -693,16 +770,14 @@ npm/npmjs/-/opener/1.5.2, MIT OR WTFPL OR (MIT AND WTFPL), approved, clearlydefi npm/npmjs/-/optionator/0.9.1, MIT, approved, clearlydefined npm/npmjs/-/ora/5.4.1, MIT, approved, clearlydefined npm/npmjs/-/os-tmpdir/1.0.2, MIT, approved, clearlydefined +npm/npmjs/-/ospath/1.2.2, MIT, approved, clearlydefined npm/npmjs/-/outvariant/1.3.0, MIT, approved, clearlydefined -npm/npmjs/-/p-limit/1.3.0, MIT, approved, clearlydefined npm/npmjs/-/p-limit/2.3.0, MIT, approved, clearlydefined npm/npmjs/-/p-limit/3.1.0, MIT, approved, clearlydefined -npm/npmjs/-/p-locate/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/p-locate/4.1.0, MIT, approved, clearlydefined npm/npmjs/-/p-locate/5.0.0, MIT, approved, clearlydefined npm/npmjs/-/p-map/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/p-retry/4.6.2, MIT, approved, clearlydefined -npm/npmjs/-/p-try/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/p-try/2.2.0, MIT, approved, clearlydefined npm/npmjs/-/pacote/12.0.3, ISC, approved, clearlydefined npm/npmjs/-/pako/1.0.11, MIT AND Zlib, approved, clearlydefined @@ -715,7 +790,6 @@ npm/npmjs/-/parse5-sax-parser/6.0.1, MIT, approved, clearlydefined npm/npmjs/-/parse5/5.1.1, MIT, approved, clearlydefined npm/npmjs/-/parse5/6.0.1, MIT, approved, clearlydefined npm/npmjs/-/parseurl/1.3.3, MIT, approved, clearlydefined -npm/npmjs/-/path-exists/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/path-exists/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/path-is-absolute/1.0.1, MIT, approved, clearlydefined npm/npmjs/-/path-key/3.1.1, MIT, approved, clearlydefined @@ -725,14 +799,17 @@ npm/npmjs/-/path-to-regexp/0.1.7, MIT, approved, clearlydefined npm/npmjs/-/path-to-regexp/6.2.0, MIT, approved, clearlydefined npm/npmjs/-/path-type/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/pbf/3.2.1, BSD-3-Clause, approved, clearlydefined +npm/npmjs/-/pend/1.2.0, MIT, approved, clearlydefined +npm/npmjs/-/performance-now/2.1.0, MIT, approved, clearlydefined npm/npmjs/-/picocolors/1.0.0, ISC, approved, clearlydefined npm/npmjs/-/picomatch/2.3.1, MIT, approved, clearlydefined npm/npmjs/-/pidtree/0.6.0, MIT, approved, clearlydefined npm/npmjs/-/pify/2.3.0, MIT, approved, clearlydefined npm/npmjs/-/pify/4.0.1, MIT, approved, clearlydefined -npm/npmjs/-/pirates/4.0.5, MIT, approved, #680 npm/npmjs/-/piscina/3.2.0, MIT, approved, clearlydefined npm/npmjs/-/pkg-dir/4.2.0, MIT, approved, clearlydefined +npm/npmjs/-/playwright-core/1.30.0, , restricted, clearlydefined +npm/npmjs/-/playwright-webkit/1.30.0, , restricted, clearlydefined npm/npmjs/-/portfinder/1.0.28, MIT, approved, clearlydefined npm/npmjs/-/postcss-attribute-case-insensitive/5.0.0, MIT, approved, clearlydefined npm/npmjs/-/postcss-color-functional-notation/4.2.2, CC0-1.0, approved, clearlydefined @@ -750,13 +827,14 @@ npm/npmjs/-/postcss-font-variant/5.0.0, MIT, approved, clearlydefined npm/npmjs/-/postcss-gap-properties/3.0.3, CC0-1.0, approved, clearlydefined npm/npmjs/-/postcss-image-set-function/4.0.6, CC0-1.0, approved, clearlydefined npm/npmjs/-/postcss-import/14.0.2, MIT, approved, clearlydefined -npm/npmjs/-/postcss-import/15.0.0, MIT, approved, clearlydefined +npm/npmjs/-/postcss-import/14.1.0, MIT, approved, clearlydefined +npm/npmjs/-/postcss-import/15.1.0, MIT, approved, clearlydefined npm/npmjs/-/postcss-initial/4.0.1, MIT, approved, clearlydefined npm/npmjs/-/postcss-js/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/postcss-lab-function/4.2.0, CC0-1.0 AND (MIT AND W3C-20150513) AND W3C-20150513 AND MIT, approved, #3020 npm/npmjs/-/postcss-load-config/3.1.4, MIT, approved, clearlydefined npm/npmjs/-/postcss-loader/6.2.1, MIT, approved, clearlydefined -npm/npmjs/-/postcss-loader/7.0.1, MIT, approved, clearlydefined +npm/npmjs/-/postcss-loader/7.0.2, MIT, approved, clearlydefined npm/npmjs/-/postcss-logical/5.0.4, CC0-1.0, approved, clearlydefined npm/npmjs/-/postcss-media-minmax/5.0.0, MIT, approved, clearlydefined npm/npmjs/-/postcss-media-query-parser/0.2.3, MIT, approved, clearlydefined @@ -764,7 +842,7 @@ npm/npmjs/-/postcss-modules-extract-imports/3.0.0, ISC, approved, clearlydefined npm/npmjs/-/postcss-modules-local-by-default/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/postcss-modules-scope/3.0.0, ISC, approved, clearlydefined npm/npmjs/-/postcss-modules-values/4.0.0, ISC, approved, clearlydefined -npm/npmjs/-/postcss-nested/5.0.6, MIT, approved, clearlydefined +npm/npmjs/-/postcss-nested/6.0.0, MIT, approved, clearlydefined npm/npmjs/-/postcss-nesting/10.1.4, CC0-1.0, approved, clearlydefined npm/npmjs/-/postcss-overflow-shorthand/3.0.3, CC0-1.0, approved, clearlydefined npm/npmjs/-/postcss-page-break/3.0.4, MIT, approved, clearlydefined @@ -776,9 +854,10 @@ npm/npmjs/-/postcss-resolve-nested-selector/0.1.1, MIT, approved, clearlydefined npm/npmjs/-/postcss-safe-parser/6.0.0, MIT, approved, clearlydefined npm/npmjs/-/postcss-scss/4.0.4, MIT, approved, clearlydefined npm/npmjs/-/postcss-selector-not/5.0.0, MIT, approved, clearlydefined -npm/npmjs/-/postcss-selector-parser/6.0.10, MIT, approved, #5056 +npm/npmjs/-/postcss-selector-parser/6.0.11, MIT, approved, #5056 npm/npmjs/-/postcss-value-parser/4.2.0, MIT, approved, clearlydefined npm/npmjs/-/postcss/8.4.19, MIT, approved, #3545 +npm/npmjs/-/postcss/8.4.21, MIT, approved, #3545 npm/npmjs/-/postcss/8.4.5, MIT, approved, #3545 npm/npmjs/-/potpack/1.0.2, ISC, approved, clearlydefined npm/npmjs/-/prelude-ls/1.2.1, MIT, approved, clearlydefined @@ -791,12 +870,16 @@ npm/npmjs/-/promise-inflight/1.0.1, ISC, approved, clearlydefined npm/npmjs/-/promise-retry/2.0.1, MIT, approved, clearlydefined npm/npmjs/-/protocol-buffers-schema/3.6.0, MIT, approved, clearlydefined npm/npmjs/-/proxy-addr/2.0.7, MIT, approved, clearlydefined +npm/npmjs/-/proxy-from-env/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/prr/1.0.1, MIT, approved, clearlydefined +npm/npmjs/-/psl/1.9.0, MIT AND CC0-1.0, approved, #3080 +npm/npmjs/-/pump/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/punycode/2.1.1, MIT, approved, clearlydefined npm/npmjs/-/q/1.5.1, Apache-2.0 AND MIT, approved, #1020 npm/npmjs/-/qjobs/1.2.0, MIT, approved, clearlydefined npm/npmjs/-/qs/6.10.3, BSD-3-Clause, approved, clearlydefined npm/npmjs/-/qs/6.11.0, BSD-3-Clause, approved, clearlydefined +npm/npmjs/-/qs/6.5.3, BSD-3-Clause, approved, clearlydefined npm/npmjs/-/queue-microtask/1.2.3, MIT, approved, clearlydefined npm/npmjs/-/quick-lru/4.0.1, MIT, approved, clearlydefined npm/npmjs/-/quick-lru/5.1.1, MIT, approved, clearlydefined @@ -816,23 +899,29 @@ npm/npmjs/-/redent/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/reflect-metadata/0.1.13, Apache-2.0, approved, clearlydefined npm/npmjs/-/regenerate-unicode-properties/10.0.1, MIT, approved, clearlydefined npm/npmjs/-/regenerate/1.4.2, MIT, approved, clearlydefined +npm/npmjs/-/regenerator-runtime/0.13.11, MIT, approved, #4978 npm/npmjs/-/regenerator-runtime/0.13.9, MIT, approved, #4978 npm/npmjs/-/regenerator-transform/0.15.0, MIT, approved, #5001 npm/npmjs/-/regex-parser/2.2.11, MIT, approved, clearlydefined +npm/npmjs/-/regexp-match-indices/1.0.2, Apache-2.0, approved, clearlydefined +npm/npmjs/-/regexp-tree/0.1.24, MIT, approved, clearlydefined npm/npmjs/-/regexp.prototype.flags/1.4.3, MIT, approved, clearlydefined npm/npmjs/-/regexpp/3.2.0, MIT, approved, clearlydefined npm/npmjs/-/regexpu-core/5.0.1, MIT, approved, clearlydefined npm/npmjs/-/regjsgen/0.6.0, MIT, approved, clearlydefined npm/npmjs/-/regjsparser/0.8.4, BSD-2-Clause, approved, #1956 +npm/npmjs/-/request-progress/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/require-directory/2.1.1, MIT, approved, clearlydefined npm/npmjs/-/require-from-string/2.0.2, MIT, approved, clearlydefined npm/npmjs/-/requires-port/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/resolve-from/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/resolve-from/5.0.0, MIT, approved, clearlydefined npm/npmjs/-/resolve-global/1.0.0, MIT, approved, clearlydefined +npm/npmjs/-/resolve-pkg/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/resolve-protobuf-schema/2.1.0, MIT, approved, clearlydefined npm/npmjs/-/resolve-url-loader/5.0.0, MIT, approved, clearlydefined npm/npmjs/-/resolve/1.22.0, MIT AND ISC, approved, #2409 +npm/npmjs/-/resolve/1.22.1, MIT AND ISC, approved, #2409 npm/npmjs/-/restore-cursor/3.1.0, MIT, approved, clearlydefined npm/npmjs/-/retry/0.12.0, MIT, approved, clearlydefined npm/npmjs/-/retry/0.13.1, MIT, approved, clearlydefined @@ -843,33 +932,32 @@ npm/npmjs/-/robust-predicates/3.0.1, Unlicense, approved, #3305 npm/npmjs/-/run-async/2.4.1, MIT, approved, clearlydefined npm/npmjs/-/run-parallel/1.2.0, MIT, approved, clearlydefined npm/npmjs/-/rw/1.3.3, BSD-3-Clause, approved, clearlydefined -npm/npmjs/-/rxjs-for-await/0.0.2, MIT, approved, clearlydefined npm/npmjs/-/rxjs/6.6.7, Apache-2.0 AND MIT, approved, #941 npm/npmjs/-/rxjs/7.5.7, Apache-2.0 AND (0BSD AND Apache-2.0) AND 0BSD, approved, #3306 +npm/npmjs/-/rxjs/7.8.0, Apache-2.0 AND (0BSD AND Apache-2.0) AND 0BSD, approved, #5993 npm/npmjs/-/safe-buffer/5.1.2, MIT, approved, clearlydefined npm/npmjs/-/safe-buffer/5.2.1, MIT, approved, clearlydefined +npm/npmjs/-/safe-regex-test/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/safe-stable-stringify/2.4.0, MIT, approved, clearlydefined npm/npmjs/-/safer-buffer/2.1.2, MIT, approved, clearlydefined npm/npmjs/-/sass-loader/12.4.0, MIT, approved, clearlydefined npm/npmjs/-/sass/1.49.9, MIT, approved, clearlydefined -npm/npmjs/-/sax/1.2.4, ISC, approved, clearlydefined +npm/npmjs/-/sax/1.2.4, ISC AND MIT AND ISC, approved, #5889 npm/npmjs/-/schema-utils/2.7.1, MIT, approved, clearlydefined npm/npmjs/-/schema-utils/3.1.1, MIT, approved, clearlydefined npm/npmjs/-/schema-utils/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/select-hose/2.0.0, MIT, approved, #145 npm/npmjs/-/selfsigned/2.0.1, MIT, approved, clearlydefined -npm/npmjs/-/semver/5.7.1, ISC, approved, clearlydefined +npm/npmjs/-/semver/5.7.1, ISC, approved, #5900 npm/npmjs/-/semver/6.3.0, ISC, approved, clearlydefined npm/npmjs/-/semver/7.0.0, ISC, approved, clearlydefined -npm/npmjs/-/semver/7.3.4, ISC, approved, clearlydefined npm/npmjs/-/semver/7.3.5, ISC, approved, clearlydefined -npm/npmjs/-/semver/7.3.7, ISC, approved, clearlydefined npm/npmjs/-/semver/7.3.8, ISC, approved, clearlydefined npm/npmjs/-/send/0.18.0, MIT, approved, clearlydefined npm/npmjs/-/serialize-javascript/6.0.0, BSD-3-Clause, approved, clearlydefined npm/npmjs/-/serve-index/1.9.1, MIT, approved, clearlydefined npm/npmjs/-/serve-static/1.15.0, MIT, approved, clearlydefined -npm/npmjs/-/set-blocking/2.0.0, ISC, approved, clearlydefined +npm/npmjs/-/set-blocking/2.0.0, ISC, approved, #5899 npm/npmjs/-/set-cookie-parser/2.4.8, MIT, approved, clearlydefined npm/npmjs/-/setprototypeof/1.1.0, ISC, approved, clearlydefined npm/npmjs/-/setprototypeof/1.2.0, ISC, approved, clearlydefined @@ -877,7 +965,7 @@ npm/npmjs/-/shallow-clone/3.0.1, MIT, approved, clearlydefined npm/npmjs/-/shebang-command/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/shebang-regex/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/side-channel/1.0.4, MIT, approved, clearlydefined -npm/npmjs/-/signal-exit/3.0.7, ISC, approved, clearlydefined +npm/npmjs/-/signal-exit/3.0.7, ISC, approved, #5892 npm/npmjs/-/simple-swizzle/0.2.2, MIT, approved, clearlydefined npm/npmjs/-/sirv/1.0.19, MIT, approved, clearlydefined npm/npmjs/-/slash/3.0.0, MIT, approved, clearlydefined @@ -899,6 +987,7 @@ npm/npmjs/-/source-map-support/0.5.21, MIT, approved, clearlydefined npm/npmjs/-/source-map/0.5.7, BSD-3-Clause, approved, #2400 npm/npmjs/-/source-map/0.6.1, BSD-3-Clause, approved, #2417 npm/npmjs/-/source-map/0.7.3, BSD-3-Clause, approved, #2416 +npm/npmjs/-/source-map/0.7.4, BSD-3-Clause, approved, #2416 npm/npmjs/-/source-map/0.8.0-beta.0, BSD-3-Clause, approved, #2984 npm/npmjs/-/sourcemap-codec/1.4.8, MIT, approved, clearlydefined npm/npmjs/-/spdx-correct/3.1.1, Apache-2.0, approved, #990 @@ -907,21 +996,23 @@ npm/npmjs/-/spdx-expression-parse/3.0.1, MIT, approved, #1127 npm/npmjs/-/spdx-license-ids/3.0.11, CC0-1.0, approved, #989 npm/npmjs/-/spdy-transport/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/spdy/4.0.2, MIT, approved, #2926 -npm/npmjs/-/specificity/0.4.1, MIT, approved, clearlydefined npm/npmjs/-/split2/3.2.2, ISC, approved, clearlydefined npm/npmjs/-/sprintf-js/1.0.3, BSD-3-Clause, approved, #949 +npm/npmjs/-/sshpk/1.17.0, MIT, approved, clearlydefined npm/npmjs/-/ssri/8.0.1, CC0-1.0 AND ISC AND (BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND ISC AND MIT), approved, #2730 npm/npmjs/-/ssri/9.0.0, CC0-1.0 AND ISC, approved, #2683 npm/npmjs/-/stack-trace/0.0.10, MIT, approved, clearlydefined +npm/npmjs/-/stackframe/1.3.4, MIT, approved, clearlydefined npm/npmjs/-/statuses/1.5.0, MIT, approved, clearlydefined npm/npmjs/-/statuses/2.0.1, MIT, approved, clearlydefined npm/npmjs/-/streamroller/3.1.3, MIT, approved, clearlydefined npm/npmjs/-/strict-event-emitter/0.2.8, MIT, approved, clearlydefined +npm/npmjs/-/strict-event-emitter/0.4.4, , restricted, clearlydefined npm/npmjs/-/string-argv/0.3.1, MIT, approved, clearlydefined npm/npmjs/-/string-width/4.2.3, MIT, approved, clearlydefined npm/npmjs/-/string-width/5.1.2, MIT, approved, clearlydefined -npm/npmjs/-/string.prototype.trimend/1.0.5, MIT, approved, #4564 -npm/npmjs/-/string.prototype.trimstart/1.0.5, MIT, approved, #4647 +npm/npmjs/-/string.prototype.trimend/1.0.6, MIT, approved, #4564 +npm/npmjs/-/string.prototype.trimstart/1.0.6, MIT, approved, #4647 npm/npmjs/-/string_decoder/1.1.1, MIT, approved, clearlydefined npm/npmjs/-/string_decoder/1.3.0, MIT, approved, clearlydefined npm/npmjs/-/strip-ansi/6.0.1, MIT, approved, clearlydefined @@ -932,26 +1023,25 @@ npm/npmjs/-/strip-final-newline/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/strip-indent/3.0.0, MIT, approved, clearlydefined npm/npmjs/-/strip-json-comments/3.1.1, MIT, approved, clearlydefined npm/npmjs/-/style-search/0.1.0, ISC, approved, clearlydefined -npm/npmjs/-/stylelint-config-recommended-scss/5.0.2, MIT, approved, clearlydefined -npm/npmjs/-/stylelint-config-recommended/6.0.0, MIT, approved, clearlydefined -npm/npmjs/-/stylelint-config-standard-scss/3.0.0, MIT, approved, clearlydefined -npm/npmjs/-/stylelint-config-standard/24.0.0, MIT, approved, clearlydefined +npm/npmjs/-/stylelint-config-recommended-scss/6.0.0, MIT, approved, clearlydefined +npm/npmjs/-/stylelint-config-recommended/7.0.0, MIT, approved, clearlydefined +npm/npmjs/-/stylelint-config-standard-scss/4.0.0, MIT, approved, clearlydefined +npm/npmjs/-/stylelint-config-standard/25.0.0, MIT, approved, clearlydefined npm/npmjs/-/stylelint-scss/4.2.0, MIT, approved, clearlydefined -npm/npmjs/-/stylelint/14.8.2, MIT, approved, clearlydefined +npm/npmjs/-/stylelint/14.16.1, MIT, approved, clearlydefined npm/npmjs/-/stylus-loader/6.2.0, MIT, approved, clearlydefined npm/npmjs/-/stylus/0.56.0, MIT, approved, clearlydefined npm/npmjs/-/supercluster/7.1.5, ISC, approved, clearlydefined npm/npmjs/-/supports-color/5.5.0, MIT, approved, clearlydefined npm/npmjs/-/supports-color/7.2.0, MIT, approved, clearlydefined npm/npmjs/-/supports-color/8.1.1, MIT, approved, clearlydefined -npm/npmjs/-/supports-hyperlinks/2.2.0, MIT, approved, clearlydefined +npm/npmjs/-/supports-hyperlinks/2.3.0, MIT, approved, clearlydefined npm/npmjs/-/supports-preserve-symlinks-flag/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/svg-tags/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/symbol-observable/4.0.0, MIT, approved, clearlydefined -npm/npmjs/-/table/6.8.0, BSD-3-Clause, approved, #4596 -npm/npmjs/-/tailwindcss/3.0.24, MIT, approved, clearlydefined +npm/npmjs/-/table/6.8.1, BSD-3-Clause, approved, #4596 +npm/npmjs/-/tailwindcss/3.2.4, MIT, approved, clearlydefined npm/npmjs/-/tapable/2.2.1, MIT, approved, clearlydefined -npm/npmjs/-/tar-stream/2.2.0, MIT, approved, clearlydefined npm/npmjs/-/tar/6.1.11, ISC, approved, #4566 npm/npmjs/-/terser-webpack-plugin/5.3.1, MIT, approved, clearlydefined npm/npmjs/-/terser/5.11.0, BSD-2-Clause, approved, clearlydefined @@ -960,6 +1050,7 @@ npm/npmjs/-/test-exclude/6.0.0, ISC, approved, clearlydefined npm/npmjs/-/text-extensions/1.9.0, MIT, approved, clearlydefined npm/npmjs/-/text-hex/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/text-table/0.2.0, MIT, approved, clearlydefined +npm/npmjs/-/throttleit/1.0.0, MIT, approved, clearlydefined npm/npmjs/-/through/2.3.8, Apache-2.0 AND MIT, approved, #1036 npm/npmjs/-/through2/4.0.2, MIT, approved, clearlydefined npm/npmjs/-/thunky/1.1.0, MIT, approved, clearlydefined @@ -970,17 +1061,21 @@ npm/npmjs/-/to-fast-properties/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/to-regex-range/5.0.1, MIT, approved, clearlydefined npm/npmjs/-/toidentifier/1.0.1, MIT, approved, clearlydefined npm/npmjs/-/totalist/1.1.0, MIT, approved, clearlydefined +npm/npmjs/-/tough-cookie/2.5.0, BSD-3-Clause, approved, clearlydefined npm/npmjs/-/tr46/0.0.3, MIT, approved, clearlydefined npm/npmjs/-/tr46/1.0.1, MIT, approved, clearlydefined npm/npmjs/-/tree-kill/1.2.2, MIT, approved, clearlydefined npm/npmjs/-/trim-newlines/3.0.1, MIT, approved, clearlydefined npm/npmjs/-/triple-beam/1.3.0, MIT, approved, clearlydefined +npm/npmjs/-/ts-loader/9.4.2, MIT AND ISC, approved, #5028 npm/npmjs/-/ts-node/10.9.1, MIT, approved, clearlydefined npm/npmjs/-/tsconfig-paths/3.14.1, MIT, approved, clearlydefined npm/npmjs/-/tslib/1.14.1, 0BSD, approved, clearlydefined npm/npmjs/-/tslib/2.3.1, 0BSD, approved, clearlydefined npm/npmjs/-/tslib/2.4.1, 0BSD, approved, #4336 npm/npmjs/-/tsutils/3.21.0, MIT, approved, clearlydefined +npm/npmjs/-/tunnel-agent/0.6.0, Apache-2.0, approved, clearlydefined +npm/npmjs/-/tweetnacl/0.14.5, Unlicense, approved, #1035 npm/npmjs/-/type-check/0.4.0, MIT, approved, clearlydefined npm/npmjs/-/type-fest/0.18.1, MIT OR (CC0-1.0 AND MIT), approved, clearlydefined npm/npmjs/-/type-fest/0.20.2, MIT OR (CC0-1.0 AND MIT), approved, clearlydefined @@ -989,10 +1084,11 @@ npm/npmjs/-/type-fest/0.6.0, MIT OR (CC0-1.0 AND MIT), approved, clearlydefined npm/npmjs/-/type-fest/0.8.1, MIT OR (CC0-1.0 AND MIT), approved, clearlydefined npm/npmjs/-/type-fest/2.19.0, CC0-1.0 OR MIT OR (CC0-1.0 AND MIT), approved, clearlydefined npm/npmjs/-/type-is/1.6.18, MIT, approved, clearlydefined +npm/npmjs/-/typed-array-length/1.0.4, MIT, approved, #6246 npm/npmjs/-/typed-assert/1.0.9, MIT, approved, clearlydefined npm/npmjs/-/typescript/4.6.4, Apache-2.0 AND (Apache-2.0 AND MIT AND ISC) AND (MIT AND Unicode-TOU AND W3C-20150513 AND CC-BY-4.0) AND MIT AND ODbL-1.0, approved, #2440 npm/npmjs/-/typescript/4.8.4, , approved, #3327 -npm/npmjs/-/ua-parser-js/0.7.31, MIT, approved, clearlydefined +npm/npmjs/-/ua-parser-js/0.7.33, MIT, approved, clearlydefined npm/npmjs/-/unbox-primitive/1.0.2, MIT, approved, clearlydefined npm/npmjs/-/unicode-canonical-property-names-ecmascript/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/unicode-match-property-ecmascript/2.0.0, MIT, approved, clearlydefined @@ -1003,17 +1099,20 @@ npm/npmjs/-/unique-slug/2.0.2, ISC, approved, clearlydefined npm/npmjs/-/universalify/0.1.2, MIT, approved, clearlydefined npm/npmjs/-/universalify/2.0.0, MIT, approved, clearlydefined npm/npmjs/-/unpipe/1.0.0, MIT, approved, clearlydefined +npm/npmjs/-/untildify/4.0.0, MIT, approved, clearlydefined npm/npmjs/-/update-browserslist-db/1.0.10, MIT, approved, clearlydefined npm/npmjs/-/uri-js/4.4.1, BSD-2-Clause, approved, #1086 -npm/npmjs/-/util-deprecate/1.0.2, MIT, approved, clearlydefined +npm/npmjs/-/util-deprecate/1.0.2, MIT, approved, #5885 npm/npmjs/-/util/0.12.5, MIT, approved, clearlydefined npm/npmjs/-/utils-merge/1.0.1, MIT, approved, clearlydefined npm/npmjs/-/uuid/8.3.2, MIT AND (BSD-3-Clause AND MIT), approved, #2438 +npm/npmjs/-/uuid/9.0.0, MIT AND (BSD-3-Clause AND MIT), approved, #6869 npm/npmjs/-/v8-compile-cache-lib/3.0.1, MIT, approved, clearlydefined npm/npmjs/-/v8-compile-cache/2.3.0, MIT, approved, clearlydefined npm/npmjs/-/validate-npm-package-license/3.0.4, Apache-2.0 AND (Apache-2.0 AND BSD-2-Clause), approved, #2562 npm/npmjs/-/validate-npm-package-name/3.0.0, ISC, approved, clearlydefined npm/npmjs/-/vary/1.1.2, MIT, approved, clearlydefined +npm/npmjs/-/verror/1.10.0, MIT, approved, clearlydefined npm/npmjs/-/void-elements/2.0.1, MIT, approved, clearlydefined npm/npmjs/-/vt-pbf/3.1.3, MIT, approved, clearlydefined npm/npmjs/-/watchpack/2.4.0, MIT, approved, clearlydefined @@ -1047,7 +1146,7 @@ npm/npmjs/-/word-wrap/1.2.3, MIT, approved, clearlydefined npm/npmjs/-/wrap-ansi/6.2.0, MIT, approved, clearlydefined npm/npmjs/-/wrap-ansi/7.0.0, MIT, approved, clearlydefined npm/npmjs/-/wrappy/1.0.2, ISC, approved, clearlydefined -npm/npmjs/-/write-file-atomic/4.0.1, ISC, approved, clearlydefined +npm/npmjs/-/write-file-atomic/4.0.2, ISC, approved, clearlydefined npm/npmjs/-/ws/7.5.7, MIT, approved, #1940 npm/npmjs/-/ws/8.2.3, MIT, approved, clearlydefined npm/npmjs/-/ws/8.6.0, MIT, approved, clearlydefined @@ -1057,32 +1156,36 @@ npm/npmjs/-/y18n/5.0.8, ISC, approved, clearlydefined npm/npmjs/-/yallist/4.0.0, ISC, approved, clearlydefined npm/npmjs/-/yaml/1.10.2, ISC, approved, clearlydefined npm/npmjs/-/yaml/2.1.3, ISC AND 0BSD, approved, #3489 -npm/npmjs/-/yargs-parser/20.0.0, ISC, approved, clearlydefined npm/npmjs/-/yargs-parser/20.2.9, ISC, approved, clearlydefined npm/npmjs/-/yargs-parser/21.0.1, ISC, approved, clearlydefined npm/npmjs/-/yargs/16.2.0, MIT, approved, clearlydefined npm/npmjs/-/yargs/17.5.0, MIT, approved, clearlydefined +npm/npmjs/-/yauzl/2.10.0, MIT, approved, clearlydefined npm/npmjs/-/yn/3.1.1, MIT, approved, clearlydefined npm/npmjs/-/yocto-queue/0.1.0, MIT, approved, clearlydefined npm/npmjs/-/zone.js/0.11.8, MIT, approved, clearlydefined npm/npmjs/@ampproject/remapping/2.2.0, Apache-2.0, approved, clearlydefined npm/npmjs/@angular-builders/custom-webpack/13.1.0, MIT, approved, clearlydefined npm/npmjs/@angular-devkit/architect/0.1303.5, MIT, approved, clearlydefined +npm/npmjs/@angular-devkit/architect/0.1402.10, MIT, approved, clearlydefined npm/npmjs/@angular-devkit/build-angular/13.3.5, MIT, approved, clearlydefined npm/npmjs/@angular-devkit/build-webpack/0.1303.5, MIT, approved, clearlydefined npm/npmjs/@angular-devkit/core/13.3.5, MIT, approved, clearlydefined +npm/npmjs/@angular-devkit/core/14.2.10, MIT, approved, clearlydefined npm/npmjs/@angular-devkit/schematics/13.3.5, MIT, approved, clearlydefined -npm/npmjs/@angular-eslint/builder/13.2.1, MIT, approved, clearlydefined +npm/npmjs/@angular-devkit/schematics/14.2.10, MIT, approved, clearlydefined +npm/npmjs/@angular-eslint/builder/15.1.0, MIT, approved, clearlydefined npm/npmjs/@angular-eslint/bundled-angular-compiler/13.2.1, MIT, approved, clearlydefined npm/npmjs/@angular-eslint/bundled-angular-compiler/13.5.0, MIT, approved, clearlydefined +npm/npmjs/@angular-eslint/bundled-angular-compiler/15.2.0, MIT, approved, clearlydefined npm/npmjs/@angular-eslint/eslint-plugin-template/13.2.1, MIT, approved, clearlydefined npm/npmjs/@angular-eslint/eslint-plugin-template/13.5.0, MIT, approved, clearlydefined -npm/npmjs/@angular-eslint/eslint-plugin/13.2.1, MIT, approved, clearlydefined npm/npmjs/@angular-eslint/eslint-plugin/13.5.0, MIT, approved, clearlydefined +npm/npmjs/@angular-eslint/eslint-plugin/15.2.0, MIT, approved, clearlydefined npm/npmjs/@angular-eslint/schematics/13.5.0, MIT, approved, clearlydefined npm/npmjs/@angular-eslint/template-parser/13.2.1, MIT, approved, clearlydefined -npm/npmjs/@angular-eslint/utils/13.2.1, MIT, approved, clearlydefined npm/npmjs/@angular-eslint/utils/13.5.0, MIT, approved, clearlydefined +npm/npmjs/@angular-eslint/utils/15.2.0, MIT, approved, clearlydefined npm/npmjs/@angular-material-components/datetime-picker/7.0.1, MIT, approved, clearlydefined npm/npmjs/@angular/animations/13.3.6, MIT, approved, clearlydefined npm/npmjs/@angular/cdk/13.3.6, MIT, approved, clearlydefined @@ -1130,6 +1233,7 @@ npm/npmjs/@babel/helper-wrap-function/7.16.8, MIT, approved, clearlydefined npm/npmjs/@babel/helpers/7.17.9, MIT, approved, #1941 npm/npmjs/@babel/highlight/7.17.9, MIT, approved, clearlydefined npm/npmjs/@babel/parser/7.17.10, MIT, approved, clearlydefined +npm/npmjs/@babel/parser/7.20.5, MIT, approved, #4604 npm/npmjs/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.7, MIT, approved, clearlydefined npm/npmjs/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.7, MIT, approved, clearlydefined npm/npmjs/@babel/plugin-proposal-async-generator-functions/7.16.8, MIT, approved, clearlydefined @@ -1198,41 +1302,54 @@ npm/npmjs/@babel/preset-env/7.16.11, MIT, approved, clearlydefined npm/npmjs/@babel/preset-modules/0.1.5, MIT, approved, clearlydefined npm/npmjs/@babel/runtime-corejs3/7.17.9, MIT, approved, clearlydefined npm/npmjs/@babel/runtime/7.16.7, MIT, approved, clearlydefined -npm/npmjs/@babel/runtime/7.17.9, MIT, approved, #1946 -npm/npmjs/@babel/runtime/7.18.3, MIT, approved, clearlydefined -npm/npmjs/@babel/runtime/7.18.6, MIT, approved, clearlydefined +npm/npmjs/@babel/runtime/7.20.6, MIT AND BSD-3-Clause AND BSD-2-Clause, approved, #6242 npm/npmjs/@babel/template/7.16.7, MIT, approved, clearlydefined npm/npmjs/@babel/traverse/7.17.10, MIT, approved, clearlydefined npm/npmjs/@babel/types/7.17.10, MIT, approved, clearlydefined +npm/npmjs/@badeball/cypress-configuration/4.2.0, MIT, approved, clearlydefined +npm/npmjs/@badeball/cypress-cucumber-preprocessor/15.0.0, MIT, approved, clearlydefined +npm/npmjs/@bahmutov/cypress-esbuild-preprocessor/2.1.5, MIT, approved, clearlydefined npm/npmjs/@colors/colors/1.5.0, MIT, approved, clearlydefined -npm/npmjs/@commitlint/cli/17.3.0, , restricted, clearlydefined +npm/npmjs/@commitlint/cli/17.4.2, MIT, approved, clearlydefined npm/npmjs/@commitlint/config-conventional/16.2.4, MIT, approved, clearlydefined -npm/npmjs/@commitlint/config-validator/17.1.0, MIT, approved, clearlydefined -npm/npmjs/@commitlint/ensure/17.3.0, , restricted, clearlydefined -npm/npmjs/@commitlint/execute-rule/17.0.0, MIT, approved, clearlydefined -npm/npmjs/@commitlint/format/17.0.0, MIT, approved, clearlydefined -npm/npmjs/@commitlint/is-ignored/17.2.0, MIT, approved, #4855 -npm/npmjs/@commitlint/lint/17.3.0, , restricted, clearlydefined -npm/npmjs/@commitlint/load/17.3.0, , restricted, clearlydefined -npm/npmjs/@commitlint/message/17.2.0, MIT, approved, #4856 -npm/npmjs/@commitlint/parse/17.2.0, MIT, approved, #4870 -npm/npmjs/@commitlint/read/17.2.0, MIT, approved, #4867 -npm/npmjs/@commitlint/resolve-extends/17.3.0, , restricted, clearlydefined -npm/npmjs/@commitlint/rules/17.3.0, , restricted, clearlydefined -npm/npmjs/@commitlint/to-lines/17.0.0, MIT, approved, clearlydefined -npm/npmjs/@commitlint/top-level/17.0.0, MIT, approved, clearlydefined -npm/npmjs/@commitlint/types/17.0.0, MIT, approved, clearlydefined +npm/npmjs/@commitlint/config-validator/17.4.0, MIT, approved, clearlydefined +npm/npmjs/@commitlint/ensure/17.4.0, MIT, approved, clearlydefined +npm/npmjs/@commitlint/execute-rule/17.4.0, MIT, approved, clearlydefined +npm/npmjs/@commitlint/format/17.4.0, MIT, approved, clearlydefined +npm/npmjs/@commitlint/is-ignored/17.4.2, MIT, approved, clearlydefined +npm/npmjs/@commitlint/lint/17.4.2, , restricted, clearlydefined +npm/npmjs/@commitlint/load/17.4.2, MIT, approved, clearlydefined +npm/npmjs/@commitlint/message/17.4.2, MIT, approved, clearlydefined +npm/npmjs/@commitlint/parse/17.4.2, MIT, approved, clearlydefined +npm/npmjs/@commitlint/read/17.4.2, MIT, approved, clearlydefined +npm/npmjs/@commitlint/resolve-extends/17.4.0, MIT, approved, clearlydefined +npm/npmjs/@commitlint/rules/17.4.2, MIT, approved, clearlydefined +npm/npmjs/@commitlint/to-lines/17.4.0, MIT, approved, clearlydefined +npm/npmjs/@commitlint/top-level/17.4.0, MIT, approved, clearlydefined +npm/npmjs/@commitlint/types/17.4.0, MIT, approved, clearlydefined npm/npmjs/@cspotcode/source-map-support/0.8.1, MIT, approved, clearlydefined npm/npmjs/@csstools/postcss-progressive-custom-properties/1.3.0, CC0-1.0, approved, clearlydefined +npm/npmjs/@csstools/selector-specificity/2.1.1, CC0-1.0, approved, #7043 +npm/npmjs/@cucumber/cucumber-expressions/16.1.1, MIT, approved, clearlydefined +npm/npmjs/@cucumber/gherkin/24.1.0, MIT, approved, clearlydefined +npm/npmjs/@cucumber/html-formatter/19.2.0, MIT, restricted, clearlydefined +npm/npmjs/@cucumber/message-streams/4.0.1, MIT, approved, clearlydefined +npm/npmjs/@cucumber/messages/19.1.4, MIT, approved, clearlydefined +npm/npmjs/@cucumber/tag-expressions/4.1.0, MIT, approved, clearlydefined +npm/npmjs/@cypress/request/2.88.10, Apache-2.0, approved, #6948 +npm/npmjs/@cypress/schematic/2.4.0, MIT, approved, clearlydefined +npm/npmjs/@cypress/xvfb/1.2.4, MIT, approved, clearlydefined npm/npmjs/@dabh/diagnostics/2.0.3, MIT, approved, clearlydefined -npm/npmjs/@deck.gl/core/8.8.20, , restricted, clearlydefined +npm/npmjs/@deck.gl/core/8.8.20, MIT, restricted, clearlydefined npm/npmjs/@deck.gl/layers/8.7.12, MIT, approved, clearlydefined -npm/npmjs/@deck.gl/mapbox/8.7.12, MIT, approved, clearlydefined +npm/npmjs/@deck.gl/mapbox/8.8.22, , restricted, clearlydefined npm/npmjs/@discoveryjs/json-ext/0.5.6, MIT, approved, clearlydefined -npm/npmjs/@es-joy/jsdoccomment/0.36.0, MIT, approved, #4865 -npm/npmjs/@eslint/eslintrc/1.3.0, MIT, approved, clearlydefined +npm/npmjs/@es-joy/jsdoccomment/0.36.1, MIT, approved, #4865 +npm/npmjs/@esbuild/linux-loong64/0.14.54, MIT, approved, clearlydefined +npm/npmjs/@eslint/eslintrc/1.3.3, MIT, approved, clearlydefined npm/npmjs/@gar/promisify/1.1.3, MIT, approved, clearlydefined -npm/npmjs/@humanwhocodes/config-array/0.9.5, Apache-2.0, approved, clearlydefined +npm/npmjs/@humanwhocodes/config-array/0.11.7, Apache-2.0, approved, #5876 +npm/npmjs/@humanwhocodes/module-importer/1.0.1, Apache-2.0, approved, clearlydefined npm/npmjs/@humanwhocodes/object-schema/1.2.1, BSD-3-Clause, approved, clearlydefined npm/npmjs/@istanbuljs/load-nyc-config/1.1.0, ISC, approved, clearlydefined npm/npmjs/@istanbuljs/schema/0.1.3, MIT, approved, clearlydefined @@ -1241,11 +1358,11 @@ npm/npmjs/@jridgewell/resolve-uri/3.0.6, MIT, approved, clearlydefined npm/npmjs/@jridgewell/set-array/1.1.0, MIT, approved, clearlydefined npm/npmjs/@jridgewell/sourcemap-codec/1.4.12, MIT, approved, clearlydefined npm/npmjs/@jridgewell/trace-mapping/0.3.9, MIT, approved, clearlydefined -npm/npmjs/@loaders.gl/core/3.2.12, , restricted, clearlydefined -npm/npmjs/@loaders.gl/images/3.2.12, , restricted, clearlydefined -npm/npmjs/@loaders.gl/loader-utils/3.2.12, , restricted, clearlydefined -npm/npmjs/@loaders.gl/worker-utils/3.2.12, , restricted, clearlydefined -npm/npmjs/@luma.gl/constants/8.5.18, , restricted, clearlydefined +npm/npmjs/@loaders.gl/core/3.2.12, MIT, approved, clearlydefined +npm/npmjs/@loaders.gl/images/3.2.12, MIT, approved, clearlydefined +npm/npmjs/@loaders.gl/loader-utils/3.2.12, MIT, approved, clearlydefined +npm/npmjs/@loaders.gl/worker-utils/3.2.12, MIT, approved, clearlydefined +npm/npmjs/@luma.gl/constants/8.5.18, MIT, approved, clearlydefined npm/npmjs/@luma.gl/core/8.5.18, MIT AND BSD-3-Clause, approved, #3310 npm/npmjs/@luma.gl/engine/8.5.18, BSD-3-Clause AND MIT, approved, #3311 npm/npmjs/@luma.gl/gltools/8.5.18, MIT, approved, #3312 @@ -1283,40 +1400,19 @@ npm/npmjs/@npmcli/move-file/2.0.0, MIT, approved, clearlydefined npm/npmjs/@npmcli/node-gyp/1.0.3, ISC, approved, clearlydefined npm/npmjs/@npmcli/promise-spawn/1.3.2, ISC, approved, clearlydefined npm/npmjs/@npmcli/run-script/2.0.0, ISC, approved, clearlydefined -npm/npmjs/@nrwl/cli/14.1.1, MIT, approved, clearlydefined -npm/npmjs/@nrwl/devkit/13.1.3, MIT, approved, clearlydefined -npm/npmjs/@nrwl/tao/13.1.3, MIT, approved, clearlydefined -npm/npmjs/@nrwl/tao/14.1.1, MIT, approved, clearlydefined npm/npmjs/@open-draft/until/1.0.3, MIT, approved, clearlydefined -npm/npmjs/@parcel/watcher/2.0.4, MIT, approved, clearlydefined npm/npmjs/@polka/url/1.0.0-next.21, MIT, approved, clearlydefined npm/npmjs/@probe.gl/env/3.5.0, MIT, approved, clearlydefined npm/npmjs/@probe.gl/log/3.5.0, MIT, approved, clearlydefined npm/npmjs/@probe.gl/stats/3.5.0, MIT, approved, clearlydefined npm/npmjs/@schematics/angular/13.3.5, MIT, approved, clearlydefined +npm/npmjs/@schematics/angular/14.2.10, MIT, approved, clearlydefined npm/npmjs/@socket.io/component-emitter/3.1.0, MIT, approved, clearlydefined -npm/npmjs/@swc-node/core/1.9.0, MIT, approved, clearlydefined -npm/npmjs/@swc-node/register/1.5.1, MIT, approved, clearlydefined -npm/npmjs/@swc-node/sourcemap-support/0.2.0, MIT, approved, clearlydefined -npm/npmjs/@swc/core-android-arm-eabi/1.2.177, Apache-2.0 AND MIT, approved, clearlydefined -npm/npmjs/@swc/core-android-arm64/1.2.177, Apache-2.0 AND MIT, approved, clearlydefined -npm/npmjs/@swc/core-darwin-arm64/1.2.177, Apache-2.0 AND MIT, approved, #3317 -npm/npmjs/@swc/core-darwin-x64/1.2.177, Apache-2.0 AND MIT, approved, #3318 -npm/npmjs/@swc/core-freebsd-x64/1.2.177, Apache-2.0 AND MIT, approved, #3319 -npm/npmjs/@swc/core-linux-arm-gnueabihf/1.2.177, Apache-2.0 AND MIT, approved, clearlydefined -npm/npmjs/@swc/core-linux-arm64-gnu/1.2.177, Apache-2.0 AND MIT, approved, clearlydefined -npm/npmjs/@swc/core-linux-arm64-musl/1.2.177, Apache-2.0 AND MIT, approved, clearlydefined -npm/npmjs/@swc/core-linux-x64-gnu/1.2.177, Apache-2.0 AND MIT, approved, clearlydefined -npm/npmjs/@swc/core-linux-x64-musl/1.2.177, Apache-2.0 AND MIT, approved, #3320 -npm/npmjs/@swc/core-win32-arm64-msvc/1.2.177, Apache-2.0 AND MIT, approved, #3321 -npm/npmjs/@swc/core-win32-ia32-msvc/1.2.177, Apache-2.0 AND MIT, approved, clearlydefined -npm/npmjs/@swc/core-win32-x64-msvc/1.2.177, Apache-2.0 AND MIT, approved, clearlydefined -npm/npmjs/@swc/core/1.2.177, Apache-2.0, approved, clearlydefined npm/npmjs/@testing-library/angular/11.0.4, MIT, approved, clearlydefined npm/npmjs/@testing-library/dom/8.13.0, MIT, approved, #3002 npm/npmjs/@testing-library/jasmine-dom/1.2.0, MIT, approved, clearlydefined -npm/npmjs/@tootallnate/once/1.1.2, EPL-2.0, approved, iot.diafanis -npm/npmjs/@tootallnate/once/2.0.0, EPL-2.0, approved, iot.diafanis +npm/npmjs/@tootallnate/once/1.1.2, MIT, approved, clearlydefined +npm/npmjs/@tootallnate/once/2.0.0, MIT, approved, clearlydefined npm/npmjs/@tsconfig/node10/1.0.8, MIT, approved, clearlydefined npm/npmjs/@tsconfig/node12/1.0.9, MIT, approved, clearlydefined npm/npmjs/@tsconfig/node14/1.0.1, MIT, approved, clearlydefined @@ -1358,26 +1454,27 @@ npm/npmjs/@types/d3-time/3.0.0, MIT, approved, clearlydefined npm/npmjs/@types/d3-timer/3.0.0, MIT, approved, clearlydefined npm/npmjs/@types/d3-transition/3.0.1, MIT, approved, clearlydefined npm/npmjs/@types/d3-zoom/3.0.1, MIT, approved, clearlydefined -npm/npmjs/@types/d3/7.1.0, MIT, approved, clearlydefined +npm/npmjs/@types/d3/7.4.0, MIT, approved, clearlydefined npm/npmjs/@types/debug/4.1.7, MIT, approved, clearlydefined npm/npmjs/@types/eslint-scope/3.7.3, MIT, approved, clearlydefined npm/npmjs/@types/eslint/8.4.2, MIT, approved, #2429 npm/npmjs/@types/estree/0.0.51, MIT, approved, clearlydefined -npm/npmjs/@types/express-serve-static-core/4.17.28, MIT, approved, clearlydefined -npm/npmjs/@types/express/4.17.13, MIT, approved, clearlydefined +npm/npmjs/@types/express-serve-static-core/4.17.28, MIT, approved, #6020 +npm/npmjs/@types/express/4.17.13, MIT, approved, #5760 npm/npmjs/@types/geojson/7946.0.10, MIT, approved, clearlydefined npm/npmjs/@types/geojson/7946.0.8, MIT, approved, clearlydefined npm/npmjs/@types/glob/7.2.0, MIT, approved, clearlydefined npm/npmjs/@types/hammerjs/2.0.41, MIT, approved, clearlydefined npm/npmjs/@types/http-proxy/1.17.9, MIT, approved, clearlydefined -npm/npmjs/@types/jasmine/4.3.0, MIT, approved, clearlydefined +npm/npmjs/@types/jasmine/4.3.1, MIT, approved, clearlydefined npm/npmjs/@types/js-levenshtein/1.1.1, MIT, approved, clearlydefined npm/npmjs/@types/json-schema/7.0.11, MIT, approved, clearlydefined npm/npmjs/@types/json5/0.0.29, MIT, approved, clearlydefined npm/npmjs/@types/karma/6.3.3, MIT, approved, clearlydefined npm/npmjs/@types/lodash-es/4.17.6, MIT, approved, clearlydefined npm/npmjs/@types/lodash/4.14.182, MIT, approved, #4131 -npm/npmjs/@types/luxon/2.3.2, MIT, approved, clearlydefined +npm/npmjs/@types/luxon/3.2.0, MIT, approved, clearlydefined +npm/npmjs/@types/mapbox-gl/2.7.10, MIT, approved, clearlydefined npm/npmjs/@types/mapbox__point-geometry/0.1.2, MIT, approved, clearlydefined npm/npmjs/@types/mapbox__vector-tile/1.3.0, MIT, approved, clearlydefined npm/npmjs/@types/mime/1.3.2, MIT, approved, clearlydefined @@ -1385,9 +1482,9 @@ npm/npmjs/@types/minimatch/5.1.2, MIT, approved, clearlydefined npm/npmjs/@types/minimist/1.2.2, MIT, approved, clearlydefined npm/npmjs/@types/mkdirp/1.0.2, MIT, approved, clearlydefined npm/npmjs/@types/ms/0.7.31, MIT, approved, clearlydefined -npm/npmjs/@types/node/14.18.33, MIT, approved, #4611 -npm/npmjs/@types/node/18.11.4, MIT, approved, clearlydefined -npm/npmjs/@types/node/18.11.9, MIT, approved, clearlydefined +npm/npmjs/@types/node/14.18.34, MIT, approved, #4611 +npm/npmjs/@types/node/18.11.4, MIT, approved, #5746 +npm/npmjs/@types/node/18.11.9, MIT, approved, #5746 npm/npmjs/@types/normalize-package-data/2.4.1, MIT, approved, clearlydefined npm/npmjs/@types/offscreencanvas/2019.7.0, MIT, approved, clearlydefined npm/npmjs/@types/parse-json/4.0.0, MIT, approved, clearlydefined @@ -1399,29 +1496,42 @@ npm/npmjs/@types/semver/7.3.13, MIT, approved, #4668 npm/npmjs/@types/serve-index/1.9.1, MIT, approved, clearlydefined npm/npmjs/@types/serve-static/1.13.10, MIT, approved, clearlydefined npm/npmjs/@types/set-cookie-parser/2.4.2, MIT, approved, clearlydefined +npm/npmjs/@types/sinonjs__fake-timers/8.1.1, MIT, approved, clearlydefined +npm/npmjs/@types/sizzle/2.3.3, MIT, approved, clearlydefined npm/npmjs/@types/sockjs/0.3.33, MIT, approved, clearlydefined npm/npmjs/@types/testing-library__jasmine-dom/1.0.3, MIT, approved, clearlydefined -npm/npmjs/@types/ws/8.5.3, MIT, approved, clearlydefined -npm/npmjs/@typescript-eslint/eslint-plugin/5.42.1, MIT, approved, #4718 +npm/npmjs/@types/uuid/8.3.4, MIT, approved, clearlydefined +npm/npmjs/@types/ws/8.5.3, MIT, approved, #6016 +npm/npmjs/@types/yauzl/2.10.0, MIT, approved, clearlydefined +npm/npmjs/@typescript-eslint/eslint-plugin/5.48.0, BSD-2-Clause AND MIT, approved, #6933 npm/npmjs/@typescript-eslint/experimental-utils/5.17.0, MIT, approved, clearlydefined npm/npmjs/@typescript-eslint/experimental-utils/5.27.1, MIT, approved, clearlydefined -npm/npmjs/@typescript-eslint/parser/5.17.0, BSD-2-Clause, approved, clearlydefined +npm/npmjs/@typescript-eslint/parser/5.49.0, , restricted, clearlydefined npm/npmjs/@typescript-eslint/scope-manager/5.17.0, MIT, approved, clearlydefined npm/npmjs/@typescript-eslint/scope-manager/5.27.1, MIT, approved, clearlydefined -npm/npmjs/@typescript-eslint/scope-manager/5.42.1, MIT, approved, #4868 -npm/npmjs/@typescript-eslint/type-utils/5.42.1, MIT, approved, #4717 +npm/npmjs/@typescript-eslint/scope-manager/5.48.0, MIT, approved, clearlydefined +npm/npmjs/@typescript-eslint/scope-manager/5.48.1, MIT, approved, clearlydefined +npm/npmjs/@typescript-eslint/scope-manager/5.49.0, , restricted, clearlydefined +npm/npmjs/@typescript-eslint/type-utils/5.48.0, MIT, approved, clearlydefined npm/npmjs/@typescript-eslint/types/5.17.0, MIT, approved, clearlydefined npm/npmjs/@typescript-eslint/types/5.27.1, MIT, approved, clearlydefined -npm/npmjs/@typescript-eslint/types/5.42.1, MIT, approved, #4861 +npm/npmjs/@typescript-eslint/types/5.48.0, MIT, approved, clearlydefined +npm/npmjs/@typescript-eslint/types/5.48.1, MIT, approved, clearlydefined +npm/npmjs/@typescript-eslint/types/5.49.0, , restricted, clearlydefined npm/npmjs/@typescript-eslint/typescript-estree/5.17.0, BSD-2-Clause, approved, clearlydefined npm/npmjs/@typescript-eslint/typescript-estree/5.27.1, BSD-2-Clause, approved, clearlydefined -npm/npmjs/@typescript-eslint/typescript-estree/5.42.1, BSD-2-Clause, approved, #4716 +npm/npmjs/@typescript-eslint/typescript-estree/5.48.0, BSD-2-Clause, approved, clearlydefined +npm/npmjs/@typescript-eslint/typescript-estree/5.48.1, BSD-2-Clause, approved, clearlydefined +npm/npmjs/@typescript-eslint/typescript-estree/5.49.0, , restricted, clearlydefined npm/npmjs/@typescript-eslint/utils/5.17.0, MIT, approved, clearlydefined npm/npmjs/@typescript-eslint/utils/5.27.1, MIT, approved, clearlydefined -npm/npmjs/@typescript-eslint/utils/5.42.1, MIT, approved, #4720 +npm/npmjs/@typescript-eslint/utils/5.48.0, MIT, approved, clearlydefined +npm/npmjs/@typescript-eslint/utils/5.48.1, MIT, approved, clearlydefined npm/npmjs/@typescript-eslint/visitor-keys/5.17.0, MIT, approved, clearlydefined npm/npmjs/@typescript-eslint/visitor-keys/5.27.1, MIT, approved, clearlydefined -npm/npmjs/@typescript-eslint/visitor-keys/5.42.1, MIT, approved, #4858 +npm/npmjs/@typescript-eslint/visitor-keys/5.48.0, MIT, approved, clearlydefined +npm/npmjs/@typescript-eslint/visitor-keys/5.48.1, MIT, approved, clearlydefined +npm/npmjs/@typescript-eslint/visitor-keys/5.49.0, , restricted, clearlydefined npm/npmjs/@webassemblyjs/ast/1.11.1, MIT, approved, clearlydefined npm/npmjs/@webassemblyjs/floating-point-hex-parser/1.11.1, MIT, approved, clearlydefined npm/npmjs/@webassemblyjs/helper-api-error/1.11.1, MIT, approved, clearlydefined diff --git a/Dockerfile b/Dockerfile index dd314d2d5d..e31ead20e4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,4 @@ +# Nonroot user is not needed beause we are using the "nginx-unprivileged" image # STAGE 1: Build FROM node:18-alpine as builder @@ -20,6 +21,7 @@ HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=10s \ CMD curl -fSs 127.0.0.1:8080/healthz || exit 1 USER root + RUN rm /usr/share/nginx/html/index.html && rm /etc/nginx/conf.d/default.conf # Copy project files from ‘builder’ stage copy over the artifacts in dist folder to default nginx public folder @@ -43,3 +45,4 @@ COPY ./scripts/inject-dynamic-env.js /docker-entrypoint.d/ # Validate NGINX configuration RUN nginx -t +USER 101 diff --git a/INSTALL.md b/INSTALL.md index 0de6e60911..f171e3b0b2 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,13 +1,5 @@ -## How to build the application - -The angular app is built into Docker containers and exposed through NGINX - -It is important to specify the type of configuration profile, previously defined in the angular JSON file, so it can -build the application correctly. - -## How to run the docker image +# Environment variables -When running the build docker image you are able to pass through multiple environment variables to configure the FE. Support environment variables are: ```javascript @@ -39,6 +31,82 @@ This variable points to the desired api `CATENAX_PORTAL_BASE_URL` This variable is used to set the base path of the application. (Should be set if application runs as a subtopic) +# Helm deployment + +## Configuration of values.yaml + +To run a helm chart you first need to specify a values file with instructions on how to run your helm file. +Here is an example how you could structure this file for this frontend helm chart. + +`your-values.yaml` + +```yaml +image: + tag: $APP_REVISION + ENVIRONMENT_VAR_1: 'VALUE' + ENVIRONMENT_VAR_2: 'VALUE' + ... + +ingress: + enabled: true + className: "nginx" + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + hosts: + - host: "${FE_HOST_URL}" + paths: + - path: / + pathType: Prefix + tls: + - hosts: + - "${FE_HOST_URL}" + secretName: "${FE_HOST_URL}-tls" + +``` + +## Helm installation + +Add the Trace-X frontend Helm repository: + +```sh +$ helm repo add traceability-foss-frontend https://catenax-ng.github.io/tx-traceability-foss-frontend +``` + +Then install the Helm chart into your cluster: + +```sh +$ helm install -f your-values.yaml traceability-foss-frontend traceability-foss-frontend/traceability-foss-frontend +``` + +### Deployment using ArgoCD + +Create a new Helm chart and use Trace-X as a dependency. + +```yaml +dependencies: + - name: traceability-foss-frontend + alias: frontend + version: x.x.x + repository: 'https://catenax-ng.github.io/tx-traceability-foss-frontend/' +``` + +Then provide your configuration as the values.yaml of that chart. + +Create a new application in ArgoCD and point it to your repository / Helm chart folder. + +# Docker deployment + +## How to build the application + +The angular app is built into Docker containers and exposed through NGINX + +It is important to specify the type of configuration profile, previously defined in the angular JSON file, so it can +build the application correctly. + +## How to run the docker image + +When running the build docker image you are able to pass through multiple environment variables to configure the FE. + ### Example command: ```shell diff --git a/README.md b/README.md index aa4b2be06e..7dbeac8411 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ Secondly, Angular `scales` perfectly in the long run. Because of the restricted With that in mind it made sense it chose Angular for an `open source` project. Source files are exposed statically through the NGINX web server. +TRACE-FOSS product composes of the backend and frontend repositories, backend repository can be found under [GitHub repository](https://github.com/catenax-ng/tx-traceability-foss-backend). ### Challenges and solutions diff --git a/charts/tx-traceability-foss-frontend/.helmignore b/charts/traceability-foss-frontend/.helmignore similarity index 100% rename from charts/tx-traceability-foss-frontend/.helmignore rename to charts/traceability-foss-frontend/.helmignore diff --git a/charts/tx-traceability-foss-frontend/Chart.yaml b/charts/traceability-foss-frontend/Chart.yaml similarity index 96% rename from charts/tx-traceability-foss-frontend/Chart.yaml rename to charts/traceability-foss-frontend/Chart.yaml index aa8243a9f2..4e6d0d7680 100644 --- a/charts/tx-traceability-foss-frontend/Chart.yaml +++ b/charts/traceability-foss-frontend/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -name: tx-traceability-foss-frontend +name: traceability-foss-frontend description: A Helm chart for Traceability frontend application # A chart can be either an 'application' or a 'library' chart. diff --git a/charts/tx-traceability-foss-frontend/templates/NOTES.txt b/charts/traceability-foss-frontend/templates/NOTES.txt similarity index 70% rename from charts/tx-traceability-foss-frontend/templates/NOTES.txt rename to charts/traceability-foss-frontend/templates/NOTES.txt index 076f309959..6542546b2f 100644 --- a/charts/tx-traceability-foss-frontend/templates/NOTES.txt +++ b/charts/traceability-foss-frontend/templates/NOTES.txt @@ -1,15 +1,15 @@ 1. Get the application URL by running these commands: {{- if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "tx-traceability-foss-frontend.fullname" . }}) + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "traceability-foss-frontend.fullname" . }}) export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") echo http://$NODE_IP:$NODE_PORT {{- else if contains "LoadBalancer" .Values.service.type }} NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "tx-traceability-foss-frontend.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "tx-traceability-foss-frontend.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "traceability-foss-frontend.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "traceability-foss-frontend.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") echo http://$SERVICE_IP:{{ .Values.service.port }} {{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "tx-traceability-foss-frontend.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "traceability-foss-frontend.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") echo "Visit http://127.0.0.1:8080 to use your application" kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT diff --git a/charts/tx-traceability-foss-frontend/templates/_helpers.tpl b/charts/traceability-foss-frontend/templates/_helpers.tpl similarity index 67% rename from charts/tx-traceability-foss-frontend/templates/_helpers.tpl rename to charts/traceability-foss-frontend/templates/_helpers.tpl index 764b32b4a5..3e17388d35 100644 --- a/charts/tx-traceability-foss-frontend/templates/_helpers.tpl +++ b/charts/traceability-foss-frontend/templates/_helpers.tpl @@ -1,7 +1,7 @@ {{/* Expand the name of the chart. */}} -{{- define "tx-traceability-foss-frontend.name" -}} +{{- define "traceability-foss-frontend.name" -}} {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} {{- end }} @@ -10,7 +10,7 @@ Create a default fully qualified app name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). If release name contains chart name it will be used as a full name. */}} -{{- define "tx-traceability-foss-frontend.fullname" -}} +{{- define "traceability-foss-frontend.fullname" -}} {{- if .Values.fullnameOverride }} {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} {{- else }} @@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name. {{/* Create chart name and version as used by the chart label. */}} -{{- define "tx-traceability-foss-frontend.chart" -}} +{{- define "traceability-foss-frontend.chart" -}} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} {{- end }} {{/* Common labels */}} -{{- define "tx-traceability-foss-frontend.labels" -}} -helm.sh/chart: {{ include "tx-traceability-foss-frontend.chart" . }} -{{ include "tx-traceability-foss-frontend.selectorLabels" . }} +{{- define "traceability-foss-frontend.labels" -}} +helm.sh/chart: {{ include "traceability-foss-frontend.chart" . }} +{{ include "traceability-foss-frontend.selectorLabels" . }} {{- if .Chart.AppVersion }} app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} {{- end }} @@ -45,17 +45,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }} {{/* Selector labels */}} -{{- define "tx-traceability-foss-frontend.selectorLabels" -}} -app.kubernetes.io/name: {{ include "tx-traceability-foss-frontend.name" . }} +{{- define "traceability-foss-frontend.selectorLabels" -}} +app.kubernetes.io/name: {{ include "traceability-foss-frontend.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} {{/* Create the name of the service account to use */}} -{{- define "tx-traceability-foss-frontend.serviceAccountName" -}} +{{- define "traceability-foss-frontend.serviceAccountName" -}} {{- if .Values.serviceAccount.create }} -{{- default (include "tx-traceability-foss-frontend.fullname" .) .Values.serviceAccount.name }} +{{- default (include "traceability-foss-frontend.fullname" .) .Values.serviceAccount.name }} {{- else }} {{- default "default" .Values.serviceAccount.name }} {{- end }} diff --git a/charts/tx-traceability-foss-frontend/templates/deployment.yaml b/charts/traceability-foss-frontend/templates/deployment.yaml similarity index 82% rename from charts/tx-traceability-foss-frontend/templates/deployment.yaml rename to charts/traceability-foss-frontend/templates/deployment.yaml index c6492ebd2f..6cc71b7e7f 100644 --- a/charts/tx-traceability-foss-frontend/templates/deployment.yaml +++ b/charts/traceability-foss-frontend/templates/deployment.yaml @@ -2,16 +2,16 @@ apiVersion: apps/v1 kind: Deployment metadata: namespace: {{ .Values.namespace | default .Release.Namespace }} - name: {{ include "tx-traceability-foss-frontend.fullname" . }} + name: {{ include "traceability-foss-frontend.fullname" . }} labels: - {{- include "tx-traceability-foss-frontend.labels" . | nindent 4 }} + {{- include "traceability-foss-frontend.labels" . | nindent 4 }} spec: {{- if not .Values.autoscaling.enabled }} replicas: {{ .Values.replicaCount }} {{- end }} selector: matchLabels: - {{- include "tx-traceability-foss-frontend.selectorLabels" . | nindent 6 }} + {{- include "traceability-foss-frontend.selectorLabels" . | nindent 6 }} revisionHistoryLimit: 2 template: metadata: @@ -21,19 +21,19 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} labels: - {{- include "tx-traceability-foss-frontend.selectorLabels" . | nindent 8 }} + {{- include "traceability-foss-frontend.selectorLabels" . | nindent 8 }} spec: automountServiceAccountToken: false {{- if .Values.imagePullSecret.dockerconfigjson }} imagePullSecrets: - - name: {{ include "tx-traceability-foss-frontend.fullname" . }}-imagepullsecret + - name: {{ include "traceability-foss-frontend.fullname" . }}-imagepullsecret {{- else }} {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} {{- end }} - serviceAccountName: {{ include "tx-traceability-foss-frontend.serviceAccountName" . }} + serviceAccountName: {{ include "traceability-foss-frontend.serviceAccountName" . }} securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} containers: @@ -76,4 +76,4 @@ spec: {{- with .Values.tolerations }} tolerations: {{- toYaml . | nindent 8 }} - {{- end }} \ No newline at end of file + {{- end }} diff --git a/charts/tx-traceability-foss-frontend/templates/ingress.yaml b/charts/traceability-foss-frontend/templates/ingress.yaml similarity index 86% rename from charts/tx-traceability-foss-frontend/templates/ingress.yaml rename to charts/traceability-foss-frontend/templates/ingress.yaml index 6cd967bb25..ca218f46f7 100644 --- a/charts/tx-traceability-foss-frontend/templates/ingress.yaml +++ b/charts/traceability-foss-frontend/templates/ingress.yaml @@ -1,12 +1,12 @@ {{- if .Values.ingress.enabled -}} - {{- $fullName := include "tx-traceability-foss-frontend.fullname" . -}} + {{- $fullName := include "traceability-foss-frontend.fullname" . -}} {{- $svcPort := .Values.service.port -}} apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: {{ $fullName }} labels: - {{- include "tx-traceability-foss-frontend.labels" . | nindent 4 }} + {{- include "traceability-foss-frontend.labels" . | nindent 4 }} {{- with .Values.ingress.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/charts/tx-traceability-foss-frontend/templates/service.yaml b/charts/traceability-foss-frontend/templates/service.yaml similarity index 51% rename from charts/tx-traceability-foss-frontend/templates/service.yaml rename to charts/traceability-foss-frontend/templates/service.yaml index 769d584552..401650137b 100644 --- a/charts/tx-traceability-foss-frontend/templates/service.yaml +++ b/charts/traceability-foss-frontend/templates/service.yaml @@ -1,9 +1,9 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "tx-traceability-foss-frontend.fullname" . }} + name: {{ include "traceability-foss-frontend.fullname" . }} labels: - {{- include "tx-traceability-foss-frontend.labels" . | nindent 4 }} + {{- include "traceability-foss-frontend.labels" . | nindent 4 }} spec: type: {{ .Values.service.type }} ports: @@ -12,4 +12,4 @@ spec: protocol: TCP name: http selector: - {{- include "tx-traceability-foss-frontend.selectorLabels" . | nindent 4 }} + {{- include "traceability-foss-frontend.selectorLabels" . | nindent 4 }} diff --git a/charts/tx-traceability-foss-frontend/templates/serviceaccount.yaml b/charts/traceability-foss-frontend/templates/serviceaccount.yaml similarity index 60% rename from charts/tx-traceability-foss-frontend/templates/serviceaccount.yaml rename to charts/traceability-foss-frontend/templates/serviceaccount.yaml index e7ce8c749e..6b5c755e6d 100644 --- a/charts/tx-traceability-foss-frontend/templates/serviceaccount.yaml +++ b/charts/traceability-foss-frontend/templates/serviceaccount.yaml @@ -3,9 +3,9 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: {{ include "tx-traceability-foss-frontend.serviceAccountName" . }} + name: {{ include "traceability-foss-frontend.serviceAccountName" . }} labels: - {{- include "tx-traceability-foss-frontend.labels" . | nindent 4 }} + {{- include "traceability-foss-frontend.labels" . | nindent 4 }} {{- with .Values.serviceAccount.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/charts/tx-traceability-foss-frontend/values-dev-test.yaml b/charts/traceability-foss-frontend/values-dev-test.yaml similarity index 83% rename from charts/tx-traceability-foss-frontend/values-dev-test.yaml rename to charts/traceability-foss-frontend/values-dev-test.yaml index 0ae452519a..bcfc4840c2 100644 --- a/charts/tx-traceability-foss-frontend/values-dev-test.yaml +++ b/charts/traceability-foss-frontend/values-dev-test.yaml @@ -6,11 +6,8 @@ image: CATENAX_PORTAL_CLIENT_ID: 'Cl17-CX-Part' CATENAX_PORTAL_DEFAULT_REALM: 'CX-Central' -nameOverride: "tx-traceability-foss-test-frontend" -fullnameOverride: "tx-traceability-foss-test-frontend" - -autoscaling: - enabled: false +nameOverride: "traceability-foss-test-frontend" +fullnameOverride: "traceability-foss-test-frontend" ingress: enabled: true diff --git a/charts/tx-traceability-foss-frontend/values-dev.yaml b/charts/traceability-foss-frontend/values-dev.yaml similarity index 95% rename from charts/tx-traceability-foss-frontend/values-dev.yaml rename to charts/traceability-foss-frontend/values-dev.yaml index 5b1741f252..eb71d17364 100644 --- a/charts/tx-traceability-foss-frontend/values-dev.yaml +++ b/charts/traceability-foss-frontend/values-dev.yaml @@ -5,9 +5,6 @@ image: CATENAX_PORTAL_CLIENT_ID: 'Cl17-CX-Part' CATENAX_PORTAL_DEFAULT_REALM: 'CX-Central' -autoscaling: - enabled: false - ingress: enabled: true className: "nginx" diff --git a/charts/tx-traceability-foss-frontend/values-int-test.yaml b/charts/traceability-foss-frontend/values-int-test.yaml similarity index 83% rename from charts/tx-traceability-foss-frontend/values-int-test.yaml rename to charts/traceability-foss-frontend/values-int-test.yaml index d501708cc4..4486b6c6dc 100644 --- a/charts/tx-traceability-foss-frontend/values-int-test.yaml +++ b/charts/traceability-foss-frontend/values-int-test.yaml @@ -5,11 +5,8 @@ image: CATENAX_PORTAL_CLIENT_ID: 'Cl17-CX-Part' CATENAX_PORTAL_DEFAULT_REALM: 'CX-Central' -nameOverride: "tx-traceability-foss-test-frontend" -fullnameOverride: "tx-traceability-foss-test-frontend" - -autoscaling: - enabled: false +nameOverride: "traceability-foss-test-frontend" +fullnameOverride: "traceability-foss-test-frontend" ingress: enabled: true diff --git a/charts/tx-traceability-foss-frontend/values-int.yaml b/charts/traceability-foss-frontend/values-int.yaml similarity index 95% rename from charts/tx-traceability-foss-frontend/values-int.yaml rename to charts/traceability-foss-frontend/values-int.yaml index d4d278bba3..4fc5052682 100644 --- a/charts/tx-traceability-foss-frontend/values-int.yaml +++ b/charts/traceability-foss-frontend/values-int.yaml @@ -5,9 +5,6 @@ image: CATENAX_PORTAL_CLIENT_ID: 'Cl17-CX-Part' CATENAX_PORTAL_DEFAULT_REALM: 'CX-Central' -autoscaling: - enabled: false - ingress: enabled: true className: "nginx" diff --git a/charts/tx-traceability-foss-frontend/values-pen.yaml b/charts/traceability-foss-frontend/values-pen.yaml similarity index 85% rename from charts/tx-traceability-foss-frontend/values-pen.yaml rename to charts/traceability-foss-frontend/values-pen.yaml index 3a2e89f0a3..ef141e14f2 100644 --- a/charts/tx-traceability-foss-frontend/values-pen.yaml +++ b/charts/traceability-foss-frontend/values-pen.yaml @@ -8,11 +8,8 @@ image: # important to not conflict with dev env (both use same ArgoCD instance) namespace: product-traceability-foss-pen -nameOverride: "tx-traceability-foss-pen-frontend" -fullnameOverride: "tx-traceability-foss-pen-frontend" - -autoscaling: - enabled: false +nameOverride: "traceability-foss-pen-frontend" +fullnameOverride: "traceability-foss-pen-frontend" ingress: enabled: true diff --git a/charts/traceability-foss-frontend/values-pre-prod.yaml b/charts/traceability-foss-frontend/values-pre-prod.yaml new file mode 100644 index 0000000000..87e950b674 --- /dev/null +++ b/charts/traceability-foss-frontend/values-pre-prod.yaml @@ -0,0 +1,21 @@ +image: + tag: $ARGOCD_APP_REVISION + CATENAX_PORTAL_API_URL: 'https://traceability.pre-prod.demo.catena-x.net/api' + CATENAX_PORTAL_KEYCLOAK_URL: 'https://centralidp.pre-prod.demo.catena-x.net/auth' + CATENAX_PORTAL_CLIENT_ID: 'Cl17-CX-Part' + CATENAX_PORTAL_DEFAULT_REALM: 'CX-Central' + +ingress: + enabled: true + className: "nginx" + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + hosts: + - host: "traceability-portal.pre-prod.demo.catena-x.net" + paths: + - path: / + pathType: Prefix + tls: + - hosts: + - "traceability-portal.pre-prod.demo.catena-x.net" + secretName: "traceability-portal.pre-prod.demo.catena-x.net-tls" diff --git a/charts/tx-traceability-foss-frontend/values.yaml b/charts/traceability-foss-frontend/values.yaml similarity index 91% rename from charts/tx-traceability-foss-frontend/values.yaml rename to charts/traceability-foss-frontend/values.yaml index e8ffe1beaf..d6ce26d418 100644 --- a/charts/tx-traceability-foss-frontend/values.yaml +++ b/charts/traceability-foss-frontend/values.yaml @@ -9,8 +9,6 @@ replicaCount: 1 image: repository: ghcr.io/catenax-ng/tx-traceability-foss-frontend pullPolicy: Always - # Overrides the image tag whose default is the chart appVersion. - tag: "1.1.0" ## ## Image pull secret to create to obtain the container image @@ -25,8 +23,11 @@ imagePullSecret: # imagePullSecrets: # - name: machineuser-pull-secret-ro -nameOverride: "tx-traceability-foss-frontend" -fullnameOverride: "tx-traceability-foss-frontend" +nameOverride: "traceability-foss-frontend" +fullnameOverride: "traceability-foss-frontend" + +autoscaling: + enabled: false serviceAccount: ## @@ -52,9 +53,9 @@ podSecurityContext: { } # Following Catena-X Helm Best Practices @url: https://catenax-ng.github.io/docs/kubernetes-basics/helm # @url: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod securityContext: - # allowPrivilegeEscalation: false - # runAsNonRoot: true - # runAsUser: 1000 + allowPrivilegeEscalation: false + runAsNonRoot: true + runAsUser: 101 # runAsGroup: 3000 service: diff --git a/cypress/support/step_definitions/dashboard.ts b/cypress/support/step_definitions/dashboard.ts index a66ac68952..1c630d4e90 100644 --- a/cypress/support/step_definitions/dashboard.ts +++ b/cypress/support/step_definitions/dashboard.ts @@ -31,7 +31,7 @@ Then(/^url should contain dashboard$/, () => { }); Then(/^should be visible "Dashboard" header$/, () => { - cy.get('h1').contains('Dashboard').should('be.visible'); + cy.get('h2').contains('Dashboard').should('be.visible'); }); Then(/^should be visible "TOTAL OF PARTS" section$/, () => { diff --git a/src/app/mocks/mock.ts b/src/app/mocks/mock.ts index 4f5b20dfd8..aa20eb21ac 100644 --- a/src/app/mocks/mock.ts +++ b/src/app/mocks/mock.ts @@ -23,10 +23,10 @@ import { setupWorker } from 'msw'; import { adminHandler, dashboardHandler, + errorHandler, investigationsHandlers, otherPartsHandlers, partsHandlers, - errorHandler, } from './services'; const handlers = [ diff --git a/src/app/mocks/services/index.ts b/src/app/mocks/services/index.ts index ffd7f8ed13..b0fd474526 100644 --- a/src/app/mocks/services/index.ts +++ b/src/app/mocks/services/index.ts @@ -22,6 +22,6 @@ export { dashboardHandler } from './dashboard-mock/dashboard.handler'; export { partsHandlers, partsHandlersTest } from './parts-mock/parts.handler'; export { otherPartsHandlers, otherPartsHandlersTest } from './otherParts-mock/otherParts.handler'; -export { investigationsHandlers } from './investigations-mock/investigations.handler'; +export { investigationsHandlers, investigationsTestHandlers } from './investigations-mock/investigations.handler'; export { adminHandler } from './admin-mock/admin.handler'; export { errorHandler } from './error-mock/error.handler'; diff --git a/src/app/mocks/services/investigations-mock/investigations.handler.ts b/src/app/mocks/services/investigations-mock/investigations.handler.ts index 6babb487b1..14bf66cca2 100644 --- a/src/app/mocks/services/investigations-mock/investigations.handler.ts +++ b/src/app/mocks/services/investigations-mock/investigations.handler.ts @@ -24,6 +24,29 @@ import { NotificationStatus } from '@shared/model/notification.model'; import { rest } from 'msw'; import { applyPagination, extractPagination } from '../pagination.helper'; import { buildMockInvestigations, getInvestigationById, InvestigationIdPrefix } from './investigations.model'; +import { + buildMockInvestigations as testBuildMockInvestigations, + getInvestigationById as testGetInvestigationById, + InvestigationIdPrefix as testInvestigationIdPrefix, +} from './investigations.test.model'; + +const commonHandler = [ + rest.post(`*${environment.apiUrl}/investigations/:investigationId/close`, (req, res, ctx) => { + return res(ctx.status(204)); + }), + + rest.post(`*${environment.apiUrl}/investigations/:investigationId/approve`, (req, res, ctx) => { + return res(ctx.status(204)); + }), + + rest.post(`*${environment.apiUrl}/investigations/:investigationId/cancel`, (req, res, ctx) => { + return res(ctx.status(204)); + }), + + rest.post(`${environment.apiUrl}/investigations/:investigationId/update`, (req, res, ctx) => { + return res(ctx.status(204)); + }), +]; export const investigationsHandlers = [ rest.get(`*${environment.apiUrl}/investigations/created`, (req, res, ctx) => { @@ -31,10 +54,12 @@ export const investigationsHandlers = [ const currentStatus = [ NotificationStatus.CREATED, - NotificationStatus.APPROVED, + NotificationStatus.SENT, NotificationStatus.ACKNOWLEDGED, NotificationStatus.ACCEPTED, NotificationStatus.DECLINED, + NotificationStatus.CLOSED, + NotificationStatus.CANCELED, ]; return res( @@ -46,7 +71,14 @@ export const investigationsHandlers = [ rest.get(`*${environment.apiUrl}/investigations/received`, (req, res, ctx) => { const pagination = extractPagination(req); - const currentStatus = [NotificationStatus.RECEIVED, NotificationStatus.ACKNOWLEDGED]; + const currentStatus = [ + NotificationStatus.RECEIVED, + NotificationStatus.ACKNOWLEDGED, + NotificationStatus.ACCEPTED, + NotificationStatus.DECLINED, + NotificationStatus.CLOSED, + NotificationStatus.CANCELED, + ]; return res( ctx.status(200), ctx.json(applyPagination(buildMockInvestigations(currentStatus, 'RECEIVER'), pagination)), @@ -60,21 +92,25 @@ export const investigationsHandlers = [ const statusCollection = [ NotificationStatus.CREATED, - NotificationStatus.APPROVED, + NotificationStatus.SENT, NotificationStatus.RECEIVED, NotificationStatus.CLOSED, NotificationStatus.CANCELED, NotificationStatus.ACKNOWLEDGED, NotificationStatus.ACCEPTED, NotificationStatus.DECLINED, + NotificationStatus.ACKNOWLEDGED, + NotificationStatus.ACCEPTED, + NotificationStatus.DECLINED, + NotificationStatus.CLOSED, + NotificationStatus.CANCELED, ]; - const channel = indexFromId === 2 || indexFromId === 8 ? 'RECEIVER' : 'SENDER'; + const channel = [2, 8, 9, 10, 11, 12].includes(indexFromId) ? 'RECEIVER' : 'SENDER'; const randomNotification = buildMockInvestigations([statusCollection[indexFromId]], channel)[0]; return res(ctx.status(200), ctx.json({ ...randomNotification, id: investigationId })); }), - rest.post(`*${environment.apiUrl}/investigations`, (_, res, ctx) => { return res(ctx.status(200), ctx.json({ id: InvestigationIdPrefix + 1 })); }), @@ -86,20 +122,68 @@ export const investigationsHandlers = [ const investigation = getInvestigationById(investigationId as string); return res(ctx.status(200), ctx.json({ ...investigation, status })); }), + ...commonHandler, +]; - rest.post(`*${environment.apiUrl}/investigations/:investigationId/close`, (req, res, ctx) => { - return res(ctx.status(204)); +export const investigationsTestHandlers = [ + rest.get(`*${environment.apiUrl}/investigations/created`, (req, res, ctx) => { + const pagination = extractPagination(req); + + const currentStatus = [ + NotificationStatus.CREATED, + NotificationStatus.SENT, + NotificationStatus.ACKNOWLEDGED, + NotificationStatus.ACCEPTED, + NotificationStatus.DECLINED, + ]; + + return res( + ctx.status(200), + ctx.json(applyPagination(testBuildMockInvestigations(currentStatus, 'SENDER'), pagination)), + ); }), - rest.post(`*${environment.apiUrl}/investigations/:investigationId/approve`, (req, res, ctx) => { - return res(ctx.status(204)); + rest.get(`*${environment.apiUrl}/investigations/received`, (req, res, ctx) => { + const pagination = extractPagination(req); + + const currentStatus = [NotificationStatus.RECEIVED, NotificationStatus.ACKNOWLEDGED]; + return res( + ctx.status(200), + ctx.json(applyPagination(testBuildMockInvestigations(currentStatus, 'RECEIVER'), pagination)), + ); }), - rest.post(`*${environment.apiUrl}/investigations/:investigationId/cancel`, (req, res, ctx) => { - return res(ctx.status(204)); + rest.get(`*${environment.apiUrl}/investigations/:investigationId`, (req, res, ctx) => { + const { investigationId } = req.params; + + const indexFromId = parseInt((investigationId as string).replace('id-', ''), 10); + + const statusCollection = [ + NotificationStatus.CREATED, + NotificationStatus.SENT, + NotificationStatus.RECEIVED, + NotificationStatus.CLOSED, + NotificationStatus.CANCELED, + NotificationStatus.ACKNOWLEDGED, + NotificationStatus.ACCEPTED, + NotificationStatus.DECLINED, + NotificationStatus.ACKNOWLEDGED, + ]; + const channel = indexFromId === 2 || indexFromId === 8 ? 'RECEIVER' : 'SENDER'; + const randomNotification = testBuildMockInvestigations([statusCollection[indexFromId]], channel)[0]; + + return res(ctx.status(200), ctx.json({ ...randomNotification, id: investigationId })); + }), + rest.post(`*${environment.apiUrl}/investigations`, (_, res, ctx) => { + return res(ctx.status(200), ctx.json({ id: testInvestigationIdPrefix + 1 })); }), - rest.post(`${environment.apiUrl}/investigations/:investigationId/update`, (req, res, ctx) => { - return res(ctx.status(204)); + rest.put(`*${environment.apiUrl}/investigations/:investigationId/status`, (req, res, ctx) => { + const { investigationId } = req.params; + const { status } = req.body as Record; + + const investigation = testGetInvestigationById(investigationId as string); + return res(ctx.status(200), ctx.json({ ...investigation, status })); }), + ...commonHandler, ]; diff --git a/src/app/mocks/services/investigations-mock/investigations.model.ts b/src/app/mocks/services/investigations-mock/investigations.model.ts index bfc76a8336..77b35dee58 100644 --- a/src/app/mocks/services/investigations-mock/investigations.model.ts +++ b/src/app/mocks/services/investigations-mock/investigations.model.ts @@ -23,6 +23,7 @@ import type { NotificationResponse } from '@shared/model/notification.model'; import { NotificationStatus } from '@shared/model/notification.model'; import { getRandomAsset } from '../parts-mock/parts.model'; import { MOCK_part_1 } from '../parts-mock/parts.test.model'; +import { getRandomIntFromInterval, getRandomText } from '../text-generator.helper'; export const InvestigationIdPrefix = 'id-'; export const buildMockInvestigations = ( @@ -31,12 +32,28 @@ export const buildMockInvestigations = ( ): NotificationResponse[] => new Array(25).fill(null).map((_, index) => { const status = statuses[index % statuses.length]; + + const close = status === NotificationStatus.CLOSED ? getRandomText(getRandomIntFromInterval(15, 500)) : ''; + const isDeclined = Math.random() >= 0.5; + + const decline = + status === NotificationStatus.DECLINED || (!!close && isDeclined) + ? getRandomText(getRandomIntFromInterval(15, 500)) + : ''; + + const accept = + status === NotificationStatus.ACCEPTED || (!!close && !isDeclined) + ? getRandomText(getRandomIntFromInterval(15, 500)) + : ''; + return { id: `${InvestigationIdPrefix}${index + 1}`, - description: `Investigation No ${index + 1}`, + description: `Investigation No ${index + 1} ${getRandomText(getRandomIntFromInterval(15, 500))}`, status, channel, - createdBy: 'BPNL00000003AYRE', + createdBy: 'OEM A', + sendTo: 'OEM B', + reason: { close, decline, accept }, createdDate: `2022-05-${(index + 1).toString().padStart(2, '0')}T12:34:12`, assetIds: [MOCK_part_1.id, getRandomAsset().id, getRandomAsset().id, getRandomAsset().id], }; @@ -47,6 +64,8 @@ const MockEmptyInvestigation: NotificationResponse = { description: `Investigation No 000`, status: NotificationStatus.CREATED, createdBy: 'OEM A', + sendTo: 'OEM B', + reason: { close: '', decline: '', accept: '' }, createdDate: `2022-05-01T12:34:12`, assetIds: [getRandomAsset().id], channel: 'SENDER', diff --git a/src/app/mocks/services/investigations-mock/investigations.test.model.ts b/src/app/mocks/services/investigations-mock/investigations.test.model.ts new file mode 100644 index 0000000000..fefced30cd --- /dev/null +++ b/src/app/mocks/services/investigations-mock/investigations.test.model.ts @@ -0,0 +1,61 @@ +/******************************************************************************** + * Copyright (c) 2022, 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * Copyright (c) 2022, 2023 ZF Friedrichshafen AG + * Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ + +import type { NotificationResponse } from '@shared/model/notification.model'; +import { NotificationStatus } from '@shared/model/notification.model'; +import { getRandomAsset } from '../parts-mock/parts.model'; +import { MOCK_part_1 } from '../parts-mock/parts.test.model'; + +export const InvestigationIdPrefix = 'id-'; +export const buildMockInvestigations = ( + statuses: NotificationStatus[], + channel: 'SENDER' | 'RECEIVER', +): NotificationResponse[] => + new Array(25).fill(null).map((_, index) => { + const status = statuses[index % statuses.length]; + return { + id: `${InvestigationIdPrefix}${index + 1}`, + description: `Investigation No ${index + 1}`, + status, + channel, + createdBy: 'OEAM A', + sendTo: 'OEM B', + reason: { close: '', accept: '', decline: '' }, + createdDate: `2022-05-${(index + 1).toString().padStart(2, '0')}T12:34:12`, + assetIds: [MOCK_part_1.id, getRandomAsset().id, getRandomAsset().id, getRandomAsset().id], + }; + }); + +const MockEmptyInvestigation: NotificationResponse = { + id: `${InvestigationIdPrefix}000`, + description: `Investigation No 000`, + status: NotificationStatus.CREATED, + createdBy: 'OEM A', + sendTo: 'OEAM B', + reason: { close: '', accept: '', decline: '' }, + createdDate: `2022-05-01T12:34:12`, + assetIds: [getRandomAsset().id], + channel: 'SENDER', +}; + +export const getInvestigationById = (id: string) => { + return [].find(investigation => investigation.id === id) || { ...MockEmptyInvestigation, id }; +}; diff --git a/src/app/mocks/services/text-generator.helper.ts b/src/app/mocks/services/text-generator.helper.ts new file mode 100644 index 0000000000..773c8ace59 --- /dev/null +++ b/src/app/mocks/services/text-generator.helper.ts @@ -0,0 +1,34 @@ +/******************************************************************************** + * Copyright (c) 2022, 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * Copyright (c) 2022, 2023 ZF Friedrichshafen AG + * Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ + +const loremIpsum = + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ante sapien, pellentesque et orci vitae, ullamcorper malesuada neque. Aliquam erat volutpat. Nulla et purus a nulla accumsan consequat vitae in augue. Aenean nulla ante, egestas ac dignissim vitae, egestas facilisis risus. Donec euismod lacinia sapien. Vivamus lorem sapien, commodo ut risus vitae, blandit rhoncus mauris. Phasellus sit amet est eget turpis dignissim scelerisque. Nam in iaculis augue. Sed imperdiet nisi ipsum, vestibulum commodo ex consectetur quis. Vestibulum aliquet efficitur purus vitae porta. Aenean tempor in justo ullamcorper eleifend. Nullam finibus magna et turpis dapibus, fermentum accumsan orci efficitur. Aliquam suscipit nisl eget metus accumsan congue. Aenean interdum imperdiet massa vel bibendum. Etiam sem dolor, fermentum non augue aliquam, sodales imperdiet sem. Nunc interdum velit eu mauris pharetra, non aliquam dolor condimentum. Duis fermentum porta erat, at sollicitudin purus. Praesent porttitor a erat et porta. Pellentesque aliquet leo nec nulla tempor euismod. Etiam convallis urna non risus feugiat ultrices. Sed sit amet nisl congue, fermentum urna quis, ullamcorper felis. Aenean feugiat rutrum sem at commodo. Vivamus pellentesque volutpat mollis. Donec porttitor, sem nec ultricies porta, mi risus lobortis orci, id dapibus lacus ex id neque. Praesent euismod, est quis venenatis feugiat, libero lectus convallis lorem, vel condimentum libero orci non purus. Donec facilisis et mauris sollicitudin congue. Suspendisse id elit vitae elit dictum hendrerit sit amet quis leo. Mauris ipsum ligula, pretium eu lacinia sit amet, aliquam non magna. Mauris et pharetra odio. Quisque ac tellus risus. Pellentesque ullamcorper felis velit, nec cursus odio lacinia at. Donec sit amet ex non arcu malesuada tempus a nec neque. Nam luctus quis sapien nec condimentum. In eu nunc sodales, suscipit turpis ac, pellentesque dui. Donec mollis leo augue, ut pretium lacus posuere a. Cras hendrerit libero et nisi ornare posuere. Nullam interdum, mauris ac congue iaculis, justo metus ullamcorper nunc, ac facilisis ex lectus non mi. Praesent ac sollicitudin turpis. Duis scelerisque orci eget magna egestas blandit. Donec mattis nibh tincidunt, tristique nisl at, congue velit. Cras ultricies aliquam nibh vitae iaculis. Pellentesque scelerisque pulvinar justo, at porta ipsum. Proin et ex sed magna laoreet laoreet. Sed ipsum justo, mollis id diam et, porttitor vehicula ipsum. Fusce consequat ullamcorper placerat. Curabitur at mi dui. Phasellus tincidunt maximus cursus. Nulla quis scelerisque ex, vitae porttitor quam. Aliquam mi diam, posuere sed sodales id, faucibus vel dolor. Cras enim augue, aliquam vel mauris et, lacinia condimentum enim. Integer ullamcorper lorem ut finibus semper. Morbi ac nunc aliquet, tempus quam ut, consequat magna. Quisque a enim vitae ante vehicula sodales et sit amet est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Duis dignissim dapibus mi, ac tempus est tincidunt nec. Praesent commodo lectus et porttitor dapibus. Phasellus in elementum tortor. Nullam in mi aliquam risus vestibulum viverra. In odio mauris, imperdiet et dapibus sit amet, molestie semper elit. Fusce condimentum vulputate metus sit amet scelerisque. Morbi non purus erat. Sed blandit laoreet ante interdum porttitor. Mauris mattis a felis eu ullamcorper. Mauris dictum augue et finibus molestie. Phasellus a mi mauris. Integer bibendum egestas quam, vitae lacinia purus suscipit id. Donec vitae vehicula est. Sed sed malesuada mauris. Donec cursus pellentesque tempus. Curabitur laoreet aliquet velit ac dictum. Proin id mollis leo. Aliquam rhoncus nisi laoreet purus cursus, sit amet lacinia nisl vehicula. Mauris suscipit sapien eros, eu finibus urna porta et. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec volutpat fermentum nibh, eget efficitur nisl elementum et. Suspendisse vehicula feugiat pretium. Nunc in elit sit amet sapien auctor sagittis. Ut maximus nisi nunc, sed lobortis tortor finibus eu. Ut rutrum auctor condimentum. In hac habitasse platea dictumst. Praesent porttitor congue mauris, ac rutrum nisi vestibulum ac. Morbi maximus, massa eu feugiat dictum, ipsum dolor luctus justo, vel blandit eros massa sit amet ipsum. Nam sit amet molestie arcu. Etiam porttitor est sapien, sit amet ornare magna hendrerit ac. Nulla facilisi. Sed risus est, cursus condimentum erat non, ultrices convallis arcu. Phasellus id odio nisi. Pellentesque dapibus sed leo sit amet sodales. Maecenas ut nisi sem. Aenean commodo nibh sed tristique sollicitudin. Suspendisse tristique nunc sit amet sapien imperdiet consectetur. Nullam interdum justo ac pharetra aliquam. Nullam efficitur nulla lacus, id egestas justo malesuada a. Vestibulum tempor, est at tincidunt gravida, nisi tellus pharetra dui, eget luctus nulla elit non mi. Aliquam suscipit pellentesque velit id finibus. Aenean eu arcu convallis, hendrerit elit non, eleifend quam. Cras dui lectus, pharetra ac vulputate non, ullamcorper in magna. Fusce eu metus vel tortor lacinia interdum. Phasellus efficitur lectus vel tempus gravida. Etiam at nunc convallis, ornare nunc vel, feugiat diam. Donec non libero pretium, elementum mauris sit amet, accumsan augue. Suspendisse eu ex nisi. Mauris consectetur egestas mi vel viverra. Quisque mauris nulla, aliquet nec augue at, tristique blandit nisl. In hendrerit eros ligula. Cras malesuada nisi eros, in pretium quam accumsan ac. Morbi bibendum est ut purus ultricies viverra. Praesent nisl dui, hendrerit ut nibh ac, dignissim dapibus lectus. Sed malesuada posuere vulputate. Aliquam ante magna, tempor ac arcu eu, dignissim pulvinar quam. Nullam tempor odio in ante condimentum, a malesuada velit egestas. Integer bibendum congue dui in ultrices. Nullam at eleifend lacus. Nam et quam in risus ornare condimentum a sed diam. In sit amet sem blandit, mollis ante at, tincidunt ex. Aenean quis malesuada mauris, in lacinia ligula. Donec et blandit tellus, vel consectetur mi. Donec lacinia auctor ultrices. Vestibulum lacinia magna leo, nec mattis odio cursus nec. Nulla maximus quam quis elit tristique placerat. In at enim ultrices nunc malesuada pretium vitae et sem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Vivamus placerat tellus nisi, sed pretium elit egestas at. Donec sed luctus mi. Nunc eu ex sit amet ante commodo feugiat sed sit amet est. Nam laoreet, lacus sit amet iaculis auctor, mi dolor iaculis enim, ac dapibus purus nisl at nulla. Duis laoreet fermentum metus vel porta. Donec in fringilla augue. Fusce vehicula finibus leo vitae bibendum. Aliquam erat volutpat. Praesent rutrum nunc metus, a egestas felis accumsan in. Praesent pretium sem at consequat vulputate. Integer nec elementum ipsum. Nam sagittis a nunc nec euismod. Curabitur iaculis metus ut orci congue faucibus. Duis sed urna efficitur, cursus ex a, porttitor massa. Pellentesque euismod egestas risus, et pharetra diam ultricies eu. Curabitur semper nulla a aliquam fermentum. Suspendisse potenti. Suspendisse ultrices neque eu ipsum ultrices pulvinar. Phasellus congue mauris sit amet nisi congue sodales. Quisque vel blandit magna, a blandit eros. Sed tempor ac risus ac mattis. Praesent sit amet sodales dui. Aenean congue neque sit amet risus venenatis rhoncus. Etiam et orci porta, interdum justo vel, gravida orci. Aenean consequat consectetur congue. Vestibulum risus purus, pulvinar eu purus ac, facilisis sodales sem. Duis at leo auctor, consequat justo bibendum, interdum elit. Duis erat ligula, semper a cursus non, maximus sit amet elit. Proin sollicitudin elit vitae venenatis feugiat. Nullam egestas lorem nec massa malesuada dapibus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed et sapien non velit fermentum molestie vitae non nunc. Praesent vestibulum, ipsum et suscipit imperdiet, lorem tellus porta lectus, in posuere risus enim et ipsum. Donec quis commodo dui. Nunc condimentum risus id est porttitor fermentum. Phasellus nulla urna, congue at tortor quis, dapibus euismod ipsum. Duis leo ante, blandit a lorem at, imperdiet condimentum nisi. Morbi malesuada augue ut faucibus tempus. Nam sed pellentesque purus. Nunc iaculis arcu ipsum, ut luctus erat placerat nec. Nulla a eleifend elit. Vivamus nec semper augue, tincidunt tristique nisi. Mauris sit amet consectetur purus. Nulla ut felis sed quam pulvinar ultricies. Morbi elit arcu, sagittis vitae massa ut, tincidunt pellentesque nunc. Morbi nec pretium felis, vitae laoreet ipsum. Integer a nisl ligula. Donec aliquet, orci quis malesuada porttitor, libero lacus vestibulum magna, eu ullamcorper sapien risus vel lorem. Morbi vitae feugiat felis. Nullam eleifend, orci nec ullamcorper imperdiet, nibh nunc vestibulum nisi, id vestibulum neque est eu urna. Ut porta eros vel felis vulputate efficitur. Mauris eu pellentesque felis. Nam sed suscipit magna. Nam nec risus ultrices, molestie turpis vitae, tincidunt nunc. Maecenas laoreet felis ut metus auctor, vel pulvinar orci placerat. Ut quis augue a ex scelerisque pellentesque. Phasellus malesuada rutrum libero pharetra aliquet. Nullam diam ante, venenatis porttitor lobortis quis, bibendum id arcu. Phasellus mauris tellus, interdum ut viverra eget, blandit ac erat. Vestibulum libero velit, placerat at dolor eget, vulputate tristique purus. Maecenas venenatis, nisi in convallis consectetur, sapien neque venenatis ligula, ac dignissim nisi sapien at nisl. Pellentesque tempor, orci gravida congue iaculis, mi orci pulvinar est, at pharetra augue neque sed turpis. Vestibulum tincidunt in ante sed mattis. Fusce vel ex congue, aliquet purus sed, mollis ex. Nam dignissim est quis ipsum sodales, quis vestibulum augue iaculis. Integer volutpat lorem at facilisis semper. Nunc sed enim sed nunc consequat gravida. Integer nec erat suscipit, pharetra ipsum vitae, venenatis lectus. Curabitur at sollicitudin tortor. Aenean euismod purus in nisi convallis finibus. Ut id dignissim dui, sed gravida tellus. Mauris luctus, risus vitae dignissim rhoncus, lacus leo luctus diam, in dapibus erat purus sed ipsum. Cras vitae vehicula lacus. Praesent aliquet felis a gravida egestas. Aliquam neque nunc, hendrerit ac consequat eu, aliquet a massa. Pellentesque magna mauris, rutrum nec dui ut, mattis ultricies nisl. Donec eget lacus consectetur, molestie ligula quis, tincidunt nisi. Proin non mattis nisl, sollicitudin vulputate ligula. Nunc fringilla ultrices volutpat. Sed at ornare eros. Etiam ut augue velit. Nunc porta diam vitae metus maximus, a semper lacus condimentum. Donec nec tempor neque. Maecenas venenatis eget massa quis viverra. Curabitur porta mi efficitur ipsum convallis pellentesque. Vestibulum pellentesque turpis nec sapien ultrices hendrerit. Fusce non ullamcorper nunc, vel luctus ex. Nulla sit amet leo non tellus tincidunt facilisis eget non tortor. Praesent mollis sit amet justo a pretium. Quisque sit amet tortor ac ipsum ullamcorper elementum non sed augue. Sed ac vestibulum metus. Fusce ultricies nisl at aliquam sollicitudin. Ut vulputate quam eu mollis hendrerit. Nulla consectetur enim at est lacinia luctus. Maecenas nec consequat mauris, ut scelerisque ipsum. Donec non dignissim eros. Etiam venenatis scelerisque nisi, ac tincidunt enim egestas semper. Sed sed dui id mauris accumsan aliquam. Pellentesque eu hendrerit ante, vel maximus risus. Nunc tincidunt libero vulputate laoreet ornare. Curabitur sollicitudin dui urna, ut viverra odio tincidunt eget. Nunc euismod mauris at velit volutpat gravida. Cras tincidunt, dolor et tincidunt cursus, augue ipsum convallis lorem, et posuere mauris metus blandit lacus. Praesent quis libero erat. Integer rutrum eu leo a mattis. Nullam eleifend nisi vel lacinia hendrerit. Cras lobortis velit libero, eget fringilla nisi bibendum id. Duis eget congue est. Maecenas venenatis sodales lectus vitae dapibus.'; +const loremIpsumLength = 12004; + +export const getRandomText = (length: number): string => { + const start = getRandomIntFromInterval(0, loremIpsumLength - length - 1); + return loremIpsum.substring(start, start + length); +}; + +// min and max included +export const getRandomIntFromInterval = (min: number, max: number) => { + return Math.floor(Math.random() * (max - min + 1) + min); +}; diff --git a/src/app/modules/core/api/api.interceptor.ts b/src/app/modules/core/api/api.interceptor.ts index ada5b48234..e419899fbf 100644 --- a/src/app/modules/core/api/api.interceptor.ts +++ b/src/app/modules/core/api/api.interceptor.ts @@ -19,13 +19,24 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http'; -import { Observable } from 'rxjs'; +import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http'; +import { Observable, of, throwError } from 'rxjs'; +import { switchMap } from 'rxjs/operators'; export class ApiInterceptor implements HttpInterceptor { public intercept(req: HttpRequest, next: HttpHandler): Observable> { const requestUrl = req.url; req = req.clone({ url: requestUrl }); - return next.handle(req); + return next.handle(req).pipe( + switchMap(response => { + if (!(response instanceof HttpResponse)) return of(response); + + const { url } = response; + if (url.indexOf(requestUrl) === -1) + return throwError(() => new Error('Request and response url do not match!')); + + return of(response); + }), + ); } } diff --git a/src/app/modules/core/i18n/global-i18n.providers.ts b/src/app/modules/core/i18n/global-i18n.providers.ts index b162016d66..8b116c982d 100644 --- a/src/app/modules/core/i18n/global-i18n.providers.ts +++ b/src/app/modules/core/i18n/global-i18n.providers.ts @@ -29,7 +29,6 @@ import HttpApi from 'i18next-http-backend'; export const ALL_KNOWN_LOCALES = { en: 'English', de: 'Deutsch', - pl: 'Polski', }; export type KnownLocale = keyof typeof ALL_KNOWN_LOCALES; diff --git a/src/app/modules/core/layout/nav-bar/nav-bar.component.html b/src/app/modules/core/layout/nav-bar/nav-bar.component.html index 837134f4a3..bd91461b14 100644 --- a/src/app/modules/core/layout/nav-bar/nav-bar.component.html +++ b/src/app/modules/core/layout/nav-bar/nav-bar.component.html @@ -64,7 +64,7 @@ - - {{ 'pageInvestigation.subHeadline.supplierParts' | i18n }} - - - - + +
+ + {{ 'pageInvestigation.reason' | i18n }} + + + + + + + {{ 'pageInvestigation.subHeadline.supplierParts' | i18n }} + + + + +
@@ -196,6 +208,10 @@ + + + +

{{ 'dataLoading.error' | i18n }}

{{ view.error | json }}

diff --git a/src/app/modules/page/investigations/detail/investigation-detail.component.scss b/src/app/modules/page/investigations/detail/investigation-detail.component.scss index db6e9b23c2..21b5c50b74 100644 --- a/src/app/modules/page/investigations/detail/investigation-detail.component.scss +++ b/src/app/modules/page/investigations/detail/investigation-detail.component.scss @@ -44,7 +44,7 @@ } } -.detail--table_wrapper--supplier { +.detail--wrapper__supplier { margin-top: 1.5rem; } diff --git a/src/app/modules/page/investigations/detail/investigation-detail.component.spec.ts b/src/app/modules/page/investigations/detail/investigation-detail.component.spec.ts index 6b7aa13e53..499bc4eb30 100644 --- a/src/app/modules/page/investigations/detail/investigation-detail.component.spec.ts +++ b/src/app/modules/page/investigations/detail/investigation-detail.component.spec.ts @@ -53,12 +53,6 @@ describe('InvestigationDetailComponent', () => { expect(await screen.getByText('Quality Investigations')).toBeInTheDocument(); }); - it('should render Detail information', async () => { - await renderInvestigationDetail(); - - await waitFor(() => expect(screen.getByText('Investigation No 1')).toBeInTheDocument()); - }); - it('should render specific text and additional table for received investigation', async () => { await renderInvestigationDetail(); await waitFor(() => expect(screen.getByText('Affected parts')).toBeInTheDocument()); diff --git a/src/app/modules/page/investigations/detail/investigation-detail.component.ts b/src/app/modules/page/investigations/detail/investigation-detail.component.ts index 8ee69c4f8c..a16c7ba88a 100644 --- a/src/app/modules/page/investigations/detail/investigation-detail.component.ts +++ b/src/app/modules/page/investigations/detail/investigation-detail.component.ts @@ -175,7 +175,7 @@ export class InvestigationDetailComponent implements AfterViewInit, OnDestroy { return; } - this.investigationDetailFacade.setSupplierPartsInformation(data); + this.investigationDetailFacade.setAndSupplierPartsInformation(); this.supplierPartsTableConfig = { ...tableConfig, displayedColumns: ['select', ...displayedColumns], diff --git a/src/app/modules/shared/assembler/investigations.assembler.spec.ts b/src/app/modules/shared/assembler/investigations.assembler.spec.ts index cebdb43421..8d9d75c31a 100644 --- a/src/app/modules/shared/assembler/investigations.assembler.spec.ts +++ b/src/app/modules/shared/assembler/investigations.assembler.spec.ts @@ -43,9 +43,11 @@ describe('InvestigationsAssembler', () => { id: 'test-1', description: 'test descr', createdDate: '2022-07-26T15:09:39.419Z', - status: NotificationStatus.APPROVED, + status: NotificationStatus.SENT, channel: 'SENDER', createdBy: '', + sendTo: '', + reason: { close: '', accept: '', decline: '' }, assetIds: [], }, { @@ -54,6 +56,8 @@ describe('InvestigationsAssembler', () => { createdDate: '2022-07-26T15:09:39.419Z', status: 'unknown' as unknown as NotificationStatus, createdBy: '', + sendTo: '', + reason: { close: '', accept: '', decline: '' }, channel: 'SENDER', assetIds: [], }, @@ -68,9 +72,11 @@ describe('InvestigationsAssembler', () => { { id: 'test-1', description: 'test descr', - status: NotificationStatus.APPROVED, + status: NotificationStatus.SENT, createdDate: new CalendarDateModel('2022-07-26T15:09:39.419Z'), createdBy: '', + sendTo: '', + reason: { close: '', accept: '', decline: '' }, isFromSender: true, assetIds: [], }, @@ -80,6 +86,8 @@ describe('InvestigationsAssembler', () => { status: null, createdDate: new CalendarDateModel('2022-07-26T15:09:39.419Z'), createdBy: '', + sendTo: '', + reason: { close: '', accept: '', decline: '' }, isFromSender: true, assetIds: [], }, diff --git a/src/app/modules/shared/assembler/investigations.assembler.ts b/src/app/modules/shared/assembler/investigations.assembler.ts index 4b8a431236..14aedd482d 100644 --- a/src/app/modules/shared/assembler/investigations.assembler.ts +++ b/src/app/modules/shared/assembler/investigations.assembler.ts @@ -35,16 +35,23 @@ export class InvestigationsAssembler { } public static assembleInvestigation(response: NotificationResponse): Notification { - const { id, description = '', status, createdDate = '', createdBy = '', assetIds, channel } = response; - return { + const { id, - description, - createdBy, assetIds, - isFromSender: channel === 'SENDER', + channel, + sendTo, - status: NotificationStatus[status] ?? null, - createdDate: new CalendarDateModel(createdDate), - }; + reason = { accept: '', close: '', decline: '' }, + description = '', + status: _status, + createdDate: _createdDate = '', + createdBy = '', + } = response; + + const isFromSender = channel === 'SENDER'; + const status = NotificationStatus[_status] ?? null; + const createdDate = new CalendarDateModel(_createdDate); + + return { id, description, createdBy, sendTo, reason, assetIds, isFromSender, status, createdDate }; } } diff --git a/src/app/modules/shared/components/breadcrumbs/breadcrumbs.component.scss b/src/app/modules/shared/components/breadcrumbs/breadcrumbs.component.scss index 075c0785a3..686608a2b2 100644 --- a/src/app/modules/shared/components/breadcrumbs/breadcrumbs.component.scss +++ b/src/app/modules/shared/components/breadcrumbs/breadcrumbs.component.scss @@ -24,7 +24,7 @@ font-size: 0.8em; margin: 0; cursor: default; - a, + @apply font-light; span { @apply text-primary; } diff --git a/src/app/modules/shared/components/card-icon/card-icon.component.html b/src/app/modules/shared/components/card-icon/card-icon.component.html index ed6d32537e..162becb7ee 100644 --- a/src/app/modules/shared/components/card-icon/card-icon.component.html +++ b/src/app/modules/shared/components/card-icon/card-icon.component.html @@ -29,7 +29,7 @@
-

+

{{ this.label }}

{{ this.stats }}

diff --git a/src/app/modules/shared/components/header/header.component.html b/src/app/modules/shared/components/header/header.component.html index 2c63e38744..cc00d548c5 100644 --- a/src/app/modules/shared/components/header/header.component.html +++ b/src/app/modules/shared/components/header/header.component.html @@ -20,5 +20,5 @@ -->
-

{{ this.title }}

+

{{ this.title }}

diff --git a/src/app/modules/shared/components/language-selector/language-selector.component.scss b/src/app/modules/shared/components/language-selector/language-selector.component.scss index dce1a0ede0..fb01de2a23 100644 --- a/src/app/modules/shared/components/language-selector/language-selector.component.scss +++ b/src/app/modules/shared/components/language-selector/language-selector.component.scss @@ -25,4 +25,5 @@ .selectedText { text-transform: uppercase !important; + @apply font-semiBold; } diff --git a/src/app/modules/shared/components/language-selector/language-selector.component.spec.ts b/src/app/modules/shared/components/language-selector/language-selector.component.spec.ts index 150fe4d3fc..585087e9e1 100644 --- a/src/app/modules/shared/components/language-selector/language-selector.component.spec.ts +++ b/src/app/modules/shared/components/language-selector/language-selector.component.spec.ts @@ -41,9 +41,9 @@ describe('LanguageSelector', () => { await renderLanguageSelector(); expect(screen.getByText('Back')).toBeInTheDocument(); fireEvent.click(screen.getByText('en')); - fireEvent.click(screen.getByText('Polski')); - // as in test there is no PL translations expectation that translation module - // would return translation key aas fallback for PL + fireEvent.click(screen.getByText('Deutsch')); + // as in test there is no DE translations expectation that translation module + // would return translation key aas fallback for DE expect(await screen.findByText('actions.back')).toBeInTheDocument(); }); }); diff --git a/src/app/modules/shared/components/notification-overview/notification-overview.component.html b/src/app/modules/shared/components/notification-overview/notification-overview.component.html index 4cf2c87f56..6cda874c03 100644 --- a/src/app/modules/shared/components/notification-overview/notification-overview.component.html +++ b/src/app/modules/shared/components/notification-overview/notification-overview.component.html @@ -24,7 +24,7 @@ {{ 'table.partsColumn.id' | i18n }} {{ notification?.id }}
-
+
{{ 'table.partsColumn.description' | i18n }} {{ notification?.description }}
@@ -42,4 +42,8 @@ {{ 'table.partsColumn.createdBy' | i18n }} {{ notification?.createdBy }}
+
+ {{ 'table.partsColumn.sendTo' | i18n }} + {{ notification?.sendTo }} +
diff --git a/src/app/modules/shared/components/notification-overview/notification-overview.component.ts b/src/app/modules/shared/components/notification-overview/notification-overview.component.ts index da08bf53a5..e5e41320f4 100644 --- a/src/app/modules/shared/components/notification-overview/notification-overview.component.ts +++ b/src/app/modules/shared/components/notification-overview/notification-overview.component.ts @@ -32,4 +32,5 @@ import { Notification } from '@shared/model/notification.model'; }) export class NotificationOverviewComponent { @Input() notification: Notification; + @Input() showNotification = true; } diff --git a/src/app/modules/shared/components/notification-reason/notification-reason.component.html b/src/app/modules/shared/components/notification-reason/notification-reason.component.html new file mode 100644 index 0000000000..33ccb5c6c9 --- /dev/null +++ b/src/app/modules/shared/components/notification-reason/notification-reason.component.html @@ -0,0 +1,42 @@ + +
+ + + +
+ + + +
+

{{ message.user }}

+
+

{{ message.reason }}

+
+

{{ 'commonInvestigation.status.' + message?.status | i18n }}

+

+ access_time{{ message.date | formatDate: { dateStyle: 'short', timeStyle: 'short' } }} +

+
+
+
+
diff --git a/src/app/modules/shared/components/notification-reason/notification-reason.component.scss b/src/app/modules/shared/components/notification-reason/notification-reason.component.scss new file mode 100644 index 0000000000..220f5fb22c --- /dev/null +++ b/src/app/modules/shared/components/notification-reason/notification-reason.component.scss @@ -0,0 +1,147 @@ +/******************************************************************************** + * Copyright (c) 2022, 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * Copyright (c) 2022, 2023 ZF Friedrichshafen AG + * Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ + +.message--username__right { + display: flex; + flex-direction: column; + align-content: flex-end; + flex-wrap: wrap; + align-items: flex-end; + + padding-right: 10px; + font-weight: 400; +} + +.message--username__left { + padding-left: 10px; + font-weight: 400; +} + +.message--separator { + clear: both; +} + +.message--text { + max-width: 400px; + word-wrap: break-word; + margin-bottom: 20px; + line-height: 24px; + + position: relative; + padding: 10px 20px; + border-radius: 25px; +} + +.message--text__date { + font-weight: 600; + &-icon { + display: flex; + align-items: center; + font-weight: 600; + font-size: 12px; + width: 12px; + height: 12px; + padding-right: 1rem; + } +} + +.message--status { + font-size: 12px; + font-weight: 500; + display: flex; + justify-content: space-between; + text-transform: uppercase; + + @apply text-dark; + & > .message--text__date { + margin-left: 20px; + } +} + +.message--text__right { + @apply bg-createdLight text-createdDark; + float: right; + + & > .message--status { + flex-flow: row-reverse; + + & > .message--text__date { + margin-right: 20px; + margin-left: 0; + } + } +} + +.message--text-arrow__right:before { + content: ''; + position: absolute; + bottom: -2px; + right: -7px; + height: 25px; + border-right: 20px solid; + @apply border-createdLight; + border-bottom-left-radius: 16px 14px; + transform: translate(0, -2px); +} + +.message--text-arrow__right:after { + content: ''; + position: absolute; + z-index: 1; + bottom: -2px; + right: -37px; + width: 7px; + height: 25px; + background: white; + border-bottom-left-radius: 10px; + transform: translate(-30px, -2px); +} + +.message--text__left { + @apply bg-receivedLight text-receivedDark; + float: left; +} + +.message--text-arrow__left:before { + content: ''; + position: absolute; + z-index: 2; + bottom: -2px; + left: -7px; + height: 25px; + border-left: 20px solid; + @apply border-receivedLight; + border-bottom-right-radius: 16px 14px; + transform: translate(0, -2px); +} + +.message--text-arrow__left:after { + content: ''; + position: absolute; + z-index: 3; + bottom: -2px; + left: 23px; + width: 7px; + height: 25px; + background: white; + border-bottom-right-radius: 10px; + transform: translate(-30px, -2px); +} diff --git a/src/app/modules/shared/components/notification-reason/notification-reason.component.spec.ts b/src/app/modules/shared/components/notification-reason/notification-reason.component.spec.ts new file mode 100644 index 0000000000..c7123fb954 --- /dev/null +++ b/src/app/modules/shared/components/notification-reason/notification-reason.component.spec.ts @@ -0,0 +1,65 @@ +/******************************************************************************** + * Copyright (c) 2022, 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * Copyright (c) 2022, 2023 ZF Friedrichshafen AG + * Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ + +import { NotificationStatus } from '@shared/model/notification.model'; +import { notificationTemplate } from '@shared/modules/notification/modal/modalTestHelper.spec'; +import { SharedModule } from '@shared/shared.module'; +import { screen } from '@testing-library/angular'; +import { renderComponent } from '@tests/test-render.utils'; + +describe('NotificationReasonComponent', () => { + const defaultNotification = Object.assign({ ...notificationTemplate }); + const renderReason = (notification: Notification = defaultNotification) => { + return renderComponent(``, { + imports: [SharedModule], + componentProperties: { notification }, + }); + }; + + it('should render description', async () => { + await renderReason(); + expect(screen.getByText(defaultNotification.description)).toBeInTheDocument(); + }); + + it('should render accept reason with accept status', async () => { + const reason = { accept: 'Accept reason', close: '', decline: '' }; + const status = NotificationStatus.ACCEPTED; + + await renderReason({ ...defaultNotification, reason, status }); + expect(screen.getByText(reason.accept)).toBeInTheDocument(); + expect(screen.getByText('Accepted')).toBeInTheDocument(); + }); + + it('should render username from sender', async () => { + await renderReason(); + expect(screen.getByText(defaultNotification.createdBy)).toBeInTheDocument(); + }); + + it('should render accept reason with accept status', async () => { + const reason = { accept: 'Accept reason', close: '', decline: '' }; + const status = NotificationStatus.ACCEPTED; + + await renderReason({ ...defaultNotification, reason, status }); + + expect(screen.getByText(defaultNotification.createdBy)).toBeInTheDocument(); + expect(screen.getByText(defaultNotification.sendTo)).toBeInTheDocument(); + }); +}); diff --git a/src/app/modules/shared/components/notification-reason/notification-reason.component.ts b/src/app/modules/shared/components/notification-reason/notification-reason.component.ts new file mode 100644 index 0000000000..309139248e --- /dev/null +++ b/src/app/modules/shared/components/notification-reason/notification-reason.component.ts @@ -0,0 +1,71 @@ +/******************************************************************************** + * Copyright (c) 2022, 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * Copyright (c) 2022, 2023 ZF Friedrichshafen AG + * Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ + +import { Component, Input } from '@angular/core'; +import { CalendarDateModel } from '@core/model/calendar-date.model'; +import { Notification, NotificationStatus } from '@shared/model/notification.model'; + +type TextMessageDirection = 'left' | 'right'; +interface TextMessage { + reason: string; + direction: TextMessageDirection; + user: string; + status: NotificationStatus; + date?: CalendarDateModel; +} + +@Component({ + selector: 'app-notification-reason', + templateUrl: './notification-reason.component.html', + styleUrls: ['./notification-reason.component.scss'], +}) +export class NotificationReasonComponent { + public textMessages: TextMessage[]; + + @Input() set notification({ + description, + reason, + status, + isFromSender, + createdDate, + createdBy, + sendTo, + }: Notification) { + const { ACCEPTED, SENT, CLOSED, CREATED, DECLINED } = NotificationStatus; + const { accept, close, decline } = reason; + + const senderDirection: TextMessageDirection = isFromSender ? 'right' : 'left'; + const receiverDirection: TextMessageDirection = !isFromSender ? 'right' : 'left'; + + const createdMessage = { + reason: description, + direction: senderDirection, + user: createdBy, + status: [CREATED, SENT].includes(status) ? status : SENT, + date: createdDate, + }; + + const acceptedMessage = { reason: accept, direction: receiverDirection, user: sendTo, status: ACCEPTED }; + const declinedMessage = { reason: decline, direction: receiverDirection, user: sendTo, status: DECLINED }; + const closedMessage = { reason: close, direction: senderDirection, user: createdBy, status: CLOSED }; + this.textMessages = [createdMessage, acceptedMessage, declinedMessage, closedMessage]; + } +} diff --git a/src/app/modules/shared/components/pagination/paginator-intl.service.spec.ts b/src/app/modules/shared/components/pagination/paginator-intl.service.spec.ts index 2aaafeb9b1..d737a36e92 100644 --- a/src/app/modules/shared/components/pagination/paginator-intl.service.spec.ts +++ b/src/app/modules/shared/components/pagination/paginator-intl.service.spec.ts @@ -48,7 +48,7 @@ describe('PaginatorIntlService', () => { const paginatorIntlService = await instantinatePaginatorIntlService(); const i18NextService = TestBed.inject(I18NEXT_SERVICE) as ITranslationService; - await i18NextService.changeLanguage('pl'); + await i18NextService.changeLanguage('de'); // in test env only EN language registered, so after changing language keys should be returned expect(paginatorIntlService.firstPageLabel).toEqual('pagination.firstPageLabel'); diff --git a/src/app/modules/shared/components/table/table.component.html b/src/app/modules/shared/components/table/table.component.html index 6aa3741c18..13e09d6424 100644 --- a/src/app/modules/shared/components/table/table.component.html +++ b/src/app/modules/shared/components/table/table.component.html @@ -29,7 +29,7 @@ [variant]="'raised'" [color]="'primary'" > -
+
announcement {{ selectedPartsActionLabel | i18n }}
diff --git a/src/app/modules/shared/components/table/table.component.scss b/src/app/modules/shared/components/table/table.component.scss index 44bf0a480e..d1390c7aac 100644 --- a/src/app/modules/shared/components/table/table.component.scss +++ b/src/app/modules/shared/components/table/table.component.scss @@ -21,6 +21,7 @@ table { width: 100%; + @apply font-light; } .mat-row .mat-cell { diff --git a/src/app/modules/shared/components/toasts/toast-message/toast-message.component.html b/src/app/modules/shared/components/toasts/toast-message/toast-message.component.html index c49f55b8f7..4294fe8c9b 100644 --- a/src/app/modules/shared/components/toasts/toast-message/toast-message.component.html +++ b/src/app/modules/shared/components/toasts/toast-message/toast-message.component.html @@ -20,7 +20,7 @@ -->
- + diff --git a/src/app/modules/shared/model/notification.model.ts b/src/app/modules/shared/model/notification.model.ts index 9b0f9a3139..c34585a90f 100644 --- a/src/app/modules/shared/model/notification.model.ts +++ b/src/app/modules/shared/model/notification.model.ts @@ -43,6 +43,12 @@ export interface NotificationCreateResponse { id: string; } +export interface NotificationReason { + close: string | null; + accept: string | null; + decline: string | null; +} + export interface NotificationResponse { id: string; description: string; @@ -50,6 +56,8 @@ export interface NotificationResponse { createdDate: string; createdBy: string; + sendTo: string; + reason: NotificationReason; assetIds: string[]; channel: 'SENDER' | 'RECEIVER'; } @@ -61,6 +69,8 @@ export interface Notification { createdDate: CalendarDateModel; createdBy: string; + sendTo: string; + reason: NotificationReason; assetIds: string[]; isFromSender: boolean; } diff --git a/src/app/modules/shared/modules/notification/modal/accept/accept-notification-modal.component.html b/src/app/modules/shared/modules/notification/modal/accept/accept-notification-modal.component.html index b7e18dc5a0..dcd72a2c6a 100644 --- a/src/app/modules/shared/modules/notification/modal/accept/accept-notification-modal.component.html +++ b/src/app/modules/shared/modules/notification/modal/accept/accept-notification-modal.component.html @@ -21,11 +21,7 @@

{{ 'commonInvestigation.modal.acceptDescription' | i18n }}

- - - - - +
{{ 'commonInvestigation.modal.acceptReasonHint' | i18n }} diff --git a/src/app/modules/shared/modules/notification/modal/acknowledge/acknowledge-notification-modal.component.html b/src/app/modules/shared/modules/notification/modal/acknowledge/acknowledge-notification-modal.component.html index 688db13255..c75dc290bc 100644 --- a/src/app/modules/shared/modules/notification/modal/acknowledge/acknowledge-notification-modal.component.html +++ b/src/app/modules/shared/modules/notification/modal/acknowledge/acknowledge-notification-modal.component.html @@ -21,9 +21,5 @@

{{ 'commonInvestigation.modal.acknowledgeDescription' | i18n }}

- - - - - +
diff --git a/src/app/modules/shared/modules/notification/modal/approve/approve-notification-modal.component.html b/src/app/modules/shared/modules/notification/modal/approve/approve-notification-modal.component.html index 72d078d99f..1126361430 100644 --- a/src/app/modules/shared/modules/notification/modal/approve/approve-notification-modal.component.html +++ b/src/app/modules/shared/modules/notification/modal/approve/approve-notification-modal.component.html @@ -21,9 +21,5 @@

{{ 'commonInvestigation.modal.approvalDescription' | i18n }}

- - - - - +
diff --git a/src/app/modules/shared/modules/notification/modal/cancel/cancel-notification-modal.component.html b/src/app/modules/shared/modules/notification/modal/cancel/cancel-notification-modal.component.html index e77b42be57..c52e411663 100644 --- a/src/app/modules/shared/modules/notification/modal/cancel/cancel-notification-modal.component.html +++ b/src/app/modules/shared/modules/notification/modal/cancel/cancel-notification-modal.component.html @@ -21,11 +21,7 @@

{{ 'commonInvestigation.modal.cancellationDescription' | i18n }}

- - - - - + {{ 'commonInvestigation.modal.cancellationHint' | i18n }} diff --git a/src/app/modules/shared/modules/notification/modal/close/close-notification-modal.component.html b/src/app/modules/shared/modules/notification/modal/close/close-notification-modal.component.html index 6ba2785366..a7570bd8b6 100644 --- a/src/app/modules/shared/modules/notification/modal/close/close-notification-modal.component.html +++ b/src/app/modules/shared/modules/notification/modal/close/close-notification-modal.component.html @@ -21,11 +21,7 @@

{{ 'commonInvestigation.modal.closeDescription' | i18n }}

- - - - - + {{ 'commonInvestigation.modal.closeReasonHint' | i18n }} diff --git a/src/app/modules/shared/modules/notification/modal/close/close-notification-modal.component.spec.ts b/src/app/modules/shared/modules/notification/modal/close/close-notification-modal.component.spec.ts index 332edf40e7..ee844b4245 100644 --- a/src/app/modules/shared/modules/notification/modal/close/close-notification-modal.component.spec.ts +++ b/src/app/modules/shared/modules/notification/modal/close/close-notification-modal.component.spec.ts @@ -26,7 +26,7 @@ import { screen, waitFor } from '@testing-library/angular'; describe('CloseNotificationModalComponent', () => { it('should create close modal', async () => { - await renderCloseModal(NotificationStatus.APPROVED); + await renderCloseModal(NotificationStatus.SENT); const title = await waitFor(() => screen.getByText('Close of investigation')); const hint = await waitFor(() => screen.getByText('Are you sure you want to close this investigation?')); const hint2 = await waitFor(() => screen.getByText('Enter the reason for close action.')); @@ -41,14 +41,14 @@ describe('CloseNotificationModalComponent', () => { }); it('should render investigation description', async () => { - const { notification } = await renderCloseModal(NotificationStatus.APPROVED); + const { notification } = await renderCloseModal(NotificationStatus.SENT); const description = await waitFor(() => screen.getByText(notification.description)); expect(description).toBeInTheDocument(); }); it('should check validation of textarea', async () => { - const { fixture } = await renderCloseModal(NotificationStatus.APPROVED); + const { fixture } = await renderCloseModal(NotificationStatus.SENT); const buttonR = await waitFor(() => screen.getByText('Close')); buttonR.click(); @@ -65,7 +65,7 @@ describe('CloseNotificationModalComponent', () => { }); it('should call close function', async () => { - const { fixture } = await renderCloseModal(NotificationStatus.APPROVED); + const { fixture } = await renderCloseModal(NotificationStatus.SENT); const textArea: HTMLTextAreaElement = await waitFor(() => screen.getByTestId('TextAreaComponent-0')); textArea.value = 'Some Text Some Text Some Text'; diff --git a/src/app/modules/shared/modules/notification/modal/content/notification-modal-content.component.html b/src/app/modules/shared/modules/notification/modal/content/notification-modal-content.component.html new file mode 100644 index 0000000000..e453b3119d --- /dev/null +++ b/src/app/modules/shared/modules/notification/modal/content/notification-modal-content.component.html @@ -0,0 +1,33 @@ + + +
+ + + + + + + + + + +
diff --git a/src/app/modules/shared/modules/notification/modal/content/notification-modal-content.component.ts b/src/app/modules/shared/modules/notification/modal/content/notification-modal-content.component.ts new file mode 100644 index 0000000000..db45e8b597 --- /dev/null +++ b/src/app/modules/shared/modules/notification/modal/content/notification-modal-content.component.ts @@ -0,0 +1,31 @@ +/******************************************************************************** + * Copyright (c) 2022, 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * Copyright (c) 2022, 2023 ZF Friedrichshafen AG + * Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ + +import { Component, Input } from '@angular/core'; +import { Notification } from '@shared/model/notification.model'; + +@Component({ + selector: 'app-notification-modal-content', + templateUrl: './notification-modal-content.component.html', +}) +export class NotificationModalContentComponent { + @Input() notification: Notification; +} diff --git a/src/app/modules/shared/modules/notification/modal/decline/decline-notification-modal.component.html b/src/app/modules/shared/modules/notification/modal/decline/decline-notification-modal.component.html index 8f18accb16..f9d482b897 100644 --- a/src/app/modules/shared/modules/notification/modal/decline/decline-notification-modal.component.html +++ b/src/app/modules/shared/modules/notification/modal/decline/decline-notification-modal.component.html @@ -21,11 +21,7 @@

{{ 'commonInvestigation.modal.declineDescription' | i18n }}

- - - - - + {{ 'commonInvestigation.modal.declineReasonHint' | i18n }} diff --git a/src/app/modules/shared/modules/notification/modal/modalTestHelper.spec.ts b/src/app/modules/shared/modules/notification/modal/modalTestHelper.spec.ts index a5b26196de..85608a3822 100644 --- a/src/app/modules/shared/modules/notification/modal/modalTestHelper.spec.ts +++ b/src/app/modules/shared/modules/notification/modal/modalTestHelper.spec.ts @@ -118,10 +118,12 @@ class CloseModalComponent implements AfterViewInit { } } -let notificationTemplate: Notification = { +export const notificationTemplate: Notification = { id: 'id-1', description: 'Investigation No 1', createdBy: 'OEM A', + sendTo: 'OEM B', + reason: { close: '', accept: '', decline: '' }, isFromSender: false, assetIds: ['MOCK_part_1'], status: null, diff --git a/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.html b/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.html index 4c990febd0..7ce11d21b1 100644 --- a/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.html +++ b/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.html @@ -47,3 +47,6 @@ {{ translationContext + '.status.' + status | i18n }}
+ +

{{ text }}

+
diff --git a/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.scss b/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.scss index 658fc85a58..5d5d0162b8 100644 --- a/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.scss +++ b/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.scss @@ -19,6 +19,13 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ +.notification--table__description { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + max-width: 500px; +} + .notification-status { @apply border-0 uppercase inline-flex items-center gap-1 px-3 py-1 rounded-full font-semibold text-xs; @@ -43,7 +50,7 @@ @apply bg-createdLight text-createdDark before:bg-createdDark; } - &--APPROVED { + &--SENT { @apply bg-pendingLight text-pendingDark before:bg-pendingDark; } diff --git a/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.ts b/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.ts index 929ce4b136..0498815909 100644 --- a/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.ts +++ b/src/app/modules/shared/modules/notification/notification-tab/notification-tab.component.ts @@ -47,6 +47,7 @@ export class NotificationTabComponent implements AfterViewInit { @Output() selected = new EventEmitter(); @ViewChild('statusTmp') statusTemplate: TemplateRef; + @ViewChild('descriptionTmp') descriptionTemplate: TemplateRef; public tableConfig: TableConfig; @@ -59,6 +60,7 @@ export class NotificationTabComponent implements AfterViewInit { menuActionsConfig: this.menuActionsConfig || [], cellRenderers: { status: this.statusTemplate, + description: this.descriptionTemplate, }, }; } diff --git a/src/app/modules/shared/modules/notification/presentation/notification.component.spec.ts b/src/app/modules/shared/modules/notification/presentation/notification.component.spec.ts index a16660e109..05d4c28538 100644 --- a/src/app/modules/shared/modules/notification/presentation/notification.component.spec.ts +++ b/src/app/modules/shared/modules/notification/presentation/notification.component.spec.ts @@ -33,7 +33,7 @@ import { fireEvent, screen, within } from '@testing-library/angular'; import { renderComponent } from '@tests/test-render.utils'; import { Observable, of } from 'rxjs'; import { delay } from 'rxjs/operators'; -import { buildMockInvestigations } from '../../../../../mocks/services/investigations-mock/investigations.model'; +import { buildMockInvestigations } from '../../../../../mocks/services/investigations-mock/investigations.test.model'; import { NotificationModule } from '../notification.module'; describe('NotificationsInboxComponent', () => { @@ -95,7 +95,7 @@ describe('NotificationsInboxComponent', () => { const descriptionEl = await screen.findByText('Investigation No 1'); const row = descriptionEl.closest('tr'); - expect(within(row).getByText('5/1/2022')).toBeInTheDocument(); + expect(within(row).getByText('5/1/22')).toBeInTheDocument(); expect(within(row).getByText('Received')).toBeInTheDocument(); }); diff --git a/src/app/modules/shared/modules/part-details/presentation/part-detail.component.spec.ts b/src/app/modules/shared/modules/part-details/presentation/part-detail.component.spec.ts index 606a47bc6f..49f5c2095b 100644 --- a/src/app/modules/shared/modules/part-details/presentation/part-detail.component.spec.ts +++ b/src/app/modules/shared/modules/part-details/presentation/part-detail.component.spec.ts @@ -72,7 +72,7 @@ describe('PartDetailComponent', () => { const sideNavElement = await waitFor(() => screen.getByTestId('sidenav--test-id')); const nameElement = await screen.findByText(part.name); - const productionDateElement = await screen.findByText('5/30/1997'); + const productionDateElement = await screen.findByText('5/30/97'); expect(sideNavElement).toBeInTheDocument(); await waitFor(() => expect(sideNavElement).toHaveClass('sidenav--container__open')); diff --git a/src/app/modules/shared/pipes/auto-format.pipe.spec.ts b/src/app/modules/shared/pipes/auto-format.pipe.spec.ts index 45be5d72a9..3ab48beba4 100644 --- a/src/app/modules/shared/pipes/auto-format.pipe.spec.ts +++ b/src/app/modules/shared/pipes/auto-format.pipe.spec.ts @@ -33,7 +33,7 @@ describe('AutoFormatPipe', () => { }, }); - expect(screen.getByText('7/15/2022')).toBeInTheDocument(); + expect(screen.getByText('7/15/22')).toBeInTheDocument(); }); it('should format string as it is', async () => { diff --git a/src/app/modules/shared/pipes/format-date.pipe.spec.ts b/src/app/modules/shared/pipes/format-date.pipe.spec.ts index dbcf4f9e3f..b68f70d553 100644 --- a/src/app/modules/shared/pipes/format-date.pipe.spec.ts +++ b/src/app/modules/shared/pipes/format-date.pipe.spec.ts @@ -42,7 +42,17 @@ describe('FormatDatePipe', () => { componentProperties: { date }, }); - expect(screen.getByText('2/4/2022')).toBeInTheDocument(); + expect(screen.getByText('2/4/22')).toBeInTheDocument(); + }); + + it('should format date with options', async () => { + const date = new CalendarDateModel('2022-02-04T13:48:54Z'); + await renderComponent(`{{ date | formatDate: {dateStyle: 'medium', timeStyle: 'short', timeZone: 'UTC'} }}`, { + imports: [SharedModule], + componentProperties: { date }, + }); + + expect(screen.getByText('Feb 4, 2022, 1:48 PM')).toBeInTheDocument(); }); it('should return -- if string is empty', async () => { diff --git a/src/app/modules/shared/pipes/format-date.pipe.ts b/src/app/modules/shared/pipes/format-date.pipe.ts index ad7d84861c..e9246a95d9 100644 --- a/src/app/modules/shared/pipes/format-date.pipe.ts +++ b/src/app/modules/shared/pipes/format-date.pipe.ts @@ -22,31 +22,33 @@ import { Inject, OnDestroy, Pipe, PipeTransform } from '@angular/core'; import { CalendarDateModel } from '@core/model/calendar-date.model'; import { I18NEXT_SERVICE, ITranslationService } from 'angular-i18next'; +import { DateTimeFormatOptions } from 'luxon'; import type { Subscription } from 'rxjs'; import { filter } from 'rxjs/operators'; +interface DateFormatOptions { + dateStyle: 'full' | 'long' | 'medium' | 'short'; +} + @Pipe({ name: 'formatDate', pure: false }) export class FormatDatePipe implements PipeTransform, OnDestroy { - private dateFormat: Omit & { - format: (date: Date, options?: { dateStyle: string }) => string; - }; - private readonly languageChangedSubscription: Subscription; - private readonly formatOptions = { dateStyle: 'short' }; + private readonly formatOptions = { dateStyle: 'short' } as DateTimeFormatOptions; + private language: string; constructor(@Inject(I18NEXT_SERVICE) { language, events }: ITranslationService) { - this.dateFormat = new Intl.DateTimeFormat(language); + this.language = language; this.languageChangedSubscription = events.languageChanged .pipe(filter(lang => !!lang)) - .subscribe(lang => (this.dateFormat = new Intl.DateTimeFormat(lang))); + .subscribe(lang => (this.language = lang)); } public ngOnDestroy(): void { this.languageChangedSubscription.unsubscribe(); } - public transform(input: string | CalendarDateModel): string { + public transform(input: string | CalendarDateModel, dateTimeOptions?: DateTimeFormatOptions): string { if (!input) { return '--'; } @@ -55,10 +57,12 @@ export class FormatDatePipe implements PipeTransform, OnDestroy { if (date.getFullYear() == 1970) { return '--'; } - return this.dateFormat.format(date, this.formatOptions); + + const dateFormat = new Intl.DateTimeFormat(this.language, dateTimeOptions || this.formatOptions); + return dateFormat.format(date); } private transformStringToDate(strDate: string): Date { - return new Date(strDate + 'Z'); + return strDate.slice(-1) === 'Z' ? new Date(strDate) : new Date(strDate + 'Z'); } } diff --git a/src/app/modules/shared/shared.module.ts b/src/app/modules/shared/shared.module.ts index 274e0ca594..98469bdec1 100644 --- a/src/app/modules/shared/shared.module.ts +++ b/src/app/modules/shared/shared.module.ts @@ -23,6 +23,8 @@ import { NgModule } from '@angular/core'; import { MatPaginatorIntl } from '@angular/material/paginator'; import { RouterModule } from '@angular/router'; import { NotificationOverviewComponent } from '@shared/components/notification-overview/notification-overview.component'; +import { NotificationReasonComponent } from '@shared/components/notification-reason/notification-reason.component'; +import { NotificationModalContentComponent } from '@shared/modules/notification/modal/content/notification-modal-content.component'; import { I18NextModule } from 'angular-i18next'; import { AvatarComponent } from './components/avatar/avatar.component'; import { BreadcrumbsComponent } from './components/breadcrumbs/breadcrumbs.component'; @@ -88,6 +90,8 @@ import { TemplateModule } from './template.module'; QualityTypeComponent, ValueToLablePipe, NotificationOverviewComponent, + NotificationReasonComponent, + NotificationModalContentComponent, ], imports: [TemplateModule, RouterModule, I18NextModule], exports: [ @@ -118,6 +122,8 @@ import { TemplateModule } from './template.module'; RequestInvestigationComponent, QualityTypeComponent, NotificationOverviewComponent, + NotificationReasonComponent, + NotificationModalContentComponent, ], providers: [ FormatDatePipe, diff --git a/src/assets/fonts/LibreFranklin-Black.ttf b/src/assets/fonts/LibreFranklin-Black.ttf deleted file mode 100644 index ee1f7a30b1..0000000000 Binary files a/src/assets/fonts/LibreFranklin-Black.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-BlackItalic.ttf b/src/assets/fonts/LibreFranklin-BlackItalic.ttf deleted file mode 100644 index 86c7158731..0000000000 Binary files a/src/assets/fonts/LibreFranklin-BlackItalic.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-Bold.ttf b/src/assets/fonts/LibreFranklin-Bold.ttf deleted file mode 100644 index 453d1f84cb..0000000000 Binary files a/src/assets/fonts/LibreFranklin-Bold.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-BoldItalic.ttf b/src/assets/fonts/LibreFranklin-BoldItalic.ttf deleted file mode 100644 index c4ff4a310c..0000000000 Binary files a/src/assets/fonts/LibreFranklin-BoldItalic.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-ExtraBold.ttf b/src/assets/fonts/LibreFranklin-ExtraBold.ttf deleted file mode 100644 index db56f2be74..0000000000 Binary files a/src/assets/fonts/LibreFranklin-ExtraBold.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-ExtraBoldItalic.ttf b/src/assets/fonts/LibreFranklin-ExtraBoldItalic.ttf deleted file mode 100644 index fa36881d29..0000000000 Binary files a/src/assets/fonts/LibreFranklin-ExtraBoldItalic.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-ExtraLight.ttf b/src/assets/fonts/LibreFranklin-ExtraLight.ttf deleted file mode 100644 index 19cad59190..0000000000 Binary files a/src/assets/fonts/LibreFranklin-ExtraLight.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-ExtraLightItalic.ttf b/src/assets/fonts/LibreFranklin-ExtraLightItalic.ttf deleted file mode 100644 index 828ddda427..0000000000 Binary files a/src/assets/fonts/LibreFranklin-ExtraLightItalic.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-Italic-VariableFont_wght.ttf b/src/assets/fonts/LibreFranklin-Italic-VariableFont_wght.ttf new file mode 100644 index 0000000000..9058abc37e Binary files /dev/null and b/src/assets/fonts/LibreFranklin-Italic-VariableFont_wght.ttf differ diff --git a/src/assets/fonts/LibreFranklin-Italic.ttf b/src/assets/fonts/LibreFranklin-Italic.ttf deleted file mode 100644 index 630e4fd073..0000000000 Binary files a/src/assets/fonts/LibreFranklin-Italic.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-Light.ttf b/src/assets/fonts/LibreFranklin-Light.ttf deleted file mode 100644 index efb6cea9af..0000000000 Binary files a/src/assets/fonts/LibreFranklin-Light.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-LightItalic.ttf b/src/assets/fonts/LibreFranklin-LightItalic.ttf deleted file mode 100644 index cd0d852d8a..0000000000 Binary files a/src/assets/fonts/LibreFranklin-LightItalic.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-Medium.ttf b/src/assets/fonts/LibreFranklin-Medium.ttf deleted file mode 100644 index 86ff32db77..0000000000 Binary files a/src/assets/fonts/LibreFranklin-Medium.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-MediumItalic.ttf b/src/assets/fonts/LibreFranklin-MediumItalic.ttf deleted file mode 100644 index 401d44f308..0000000000 Binary files a/src/assets/fonts/LibreFranklin-MediumItalic.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-Regular.ttf b/src/assets/fonts/LibreFranklin-Regular.ttf deleted file mode 100644 index 0eca7b61e7..0000000000 Binary files a/src/assets/fonts/LibreFranklin-Regular.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-SemiBold.ttf b/src/assets/fonts/LibreFranklin-SemiBold.ttf deleted file mode 100644 index eb98baad32..0000000000 Binary files a/src/assets/fonts/LibreFranklin-SemiBold.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-SemiBoldItalic.ttf b/src/assets/fonts/LibreFranklin-SemiBoldItalic.ttf deleted file mode 100644 index ceaaf053e3..0000000000 Binary files a/src/assets/fonts/LibreFranklin-SemiBoldItalic.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-Thin.ttf b/src/assets/fonts/LibreFranklin-Thin.ttf deleted file mode 100644 index 55beb2eba0..0000000000 Binary files a/src/assets/fonts/LibreFranklin-Thin.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-ThinItalic.ttf b/src/assets/fonts/LibreFranklin-ThinItalic.ttf deleted file mode 100644 index d165efaea7..0000000000 Binary files a/src/assets/fonts/LibreFranklin-ThinItalic.ttf and /dev/null differ diff --git a/src/assets/fonts/LibreFranklin-VariableFont_wght.ttf b/src/assets/fonts/LibreFranklin-VariableFont_wght.ttf new file mode 100644 index 0000000000..c1d1e31c57 Binary files /dev/null and b/src/assets/fonts/LibreFranklin-VariableFont_wght.ttf differ diff --git a/src/assets/locales/de/common.json b/src/assets/locales/de/common.json index f92df04be7..cf3601b94b 100644 --- a/src/assets/locales/de/common.json +++ b/src/assets/locales/de/common.json @@ -60,7 +60,8 @@ "description": "Beschreibung", "status": "Status", "createdDate": "Erstelldatum", - "createdBy": "Erstellt von" + "createdBy": "Erstellt von", + "sendTo": "Gesendet an" } }, "dataLoading": { @@ -127,7 +128,7 @@ "status": { "RECEIVED": "Erhalten", "CREATED": "Erstellt", - "APPROVED": "Zugestellt", + "SENT": "Zugestellt", "CANCELED": "Abgebrochen", "CLOSED": "Abgeschlossen", "ACCEPTED": "Akzeptiert", diff --git a/src/assets/locales/de/page.about.json b/src/assets/locales/de/page.about.json index 6f45ddf519..440dc9bc11 100644 --- a/src/assets/locales/de/page.about.json +++ b/src/assets/locales/de/page.about.json @@ -1,6 +1,6 @@ { "pageAbout": { "title": "Über Catena-X Open-Source Rückverfolgbarkeit", - "content": "

Die Open-Source Rückverfolgbarkeitsanwendung wird innerhalb des Catena-X Projektes entwickelt und befähigt alle Unternehmen an der Teilerückverfolgbarkeit teilzunehmen.

Die Anwendung erlaubt einen Überblick über die Lieferkette. Dieses hohe Level an Transparent über die gesamte Lieferkette hinweg erlaubt schnellere Eingriffe auf Basis von Events. Zusätzlich dazu helfen automatisierte Nachrichten in Hinblick auf Qualitätsrelevante Meldungen und ein Tool zur Analyse der Lieferkette allen Unternehmen in diesen Zeiten.

Insgesamt werden dadurch Kosten eingespart, indem die Teile einfach rückverfolgt werden können. Darüber hinaus baut die Anwendung Vertrauen auf mithilfe von klar definierten und sicheren Datenzugriffen für ausschließlich die berechtigten Personen und Unternehmen.

" + "content": "

Die Open-Source Rückverfolgbarkeitsanwendung wird innerhalb des Catena-X Projektes entwickelt und befähigt alle Unternehmen an der Teilerückverfolgbarkeit teilzunehmen.

Die Anwendung erlaubt einen Überblick über die Lieferkette. Dieses hohe Level an Transparent über die gesamte Lieferkette hinweg erlaubt schnellere Eingriffe auf Basis von Events. Zusätzlich dazu helfen automatisierte Nachrichten in Hinblick auf Qualitätsrelevante Meldungen und ein Tool zur Analyse der Lieferkette allen Unternehmen in diesen Zeiten.

Insgesamt werden dadurch Kosten eingespart, indem die Teile einfach rückverfolgt werden können. Darüber hinaus baut die Anwendung Vertrauen auf mithilfe von klar definierten und sicheren Datenzugriffen für ausschließlich die berechtigten Personen und Unternehmen.

" } } diff --git a/src/assets/locales/de/page.investigation.json b/src/assets/locales/de/page.investigation.json index 57c40942f3..28697e870e 100644 --- a/src/assets/locales/de/page.investigation.json +++ b/src/assets/locales/de/page.investigation.json @@ -1,6 +1,7 @@ { "pageInvestigation": { "info": "Übersicht", + "reason": "Nachrichtenverlauf", "selectedParts_one": "{{count}} Produkt für diese Seite ausgewählt.", "selectedParts_other": "{{count}} Produkte für diese Seite ausgewählt.", "selectPartsAction": "Untersuchung starten", diff --git a/src/assets/locales/en/common.json b/src/assets/locales/en/common.json index 9f258df915..0373cc12df 100644 --- a/src/assets/locales/en/common.json +++ b/src/assets/locales/en/common.json @@ -59,7 +59,8 @@ "description": "Description", "status": "Status", "createdDate": "Created", - "createdBy": "Created by" + "createdBy": "Created by", + "sendTo": "Send to" } }, "dataLoading": { @@ -134,7 +135,7 @@ "queuedAndRequested": "Queued & Requested" }, "status": { - "APPROVED": "Requested", + "SENT": "Requested", "CANCELED": "Cancelled", "CLOSED": "Closed", "CREATED": "Queued", diff --git a/src/assets/locales/en/page.about.json b/src/assets/locales/en/page.about.json index 631f680096..c044b15a62 100644 --- a/src/assets/locales/en/page.about.json +++ b/src/assets/locales/en/page.about.json @@ -1,6 +1,6 @@ { "pageAbout": { "title": "About Catena-X Open-Source Traceability", - "content": "

The Open-Source Traceability application is developed within the Catena-X project and enables all companies to participate in Parts Traceability.

The application gives an overview of the supplier network. A high level of transparency across the supplier network enables faster intervention based on recorded events in the supply chain. Additionally, automated massages regarding Quality related incidents and a tool for inspecting the supply chain helps companies in these fast-moving times.

All this saves' costs by seamlessly tracking parts as well as creates trust through clearly defined and secure data access by the companies and persons involved in the process.

" + "content": "

The Open-Source Traceability application is developed within the Catena-X project and enables all companies to participate in Parts Traceability.

The application gives an overview of the supplier network. A high level of transparency across the supplier network enables faster intervention based on recorded events in the supply chain. Additionally, automated massages regarding Quality related incidents and a tool for inspecting the supply chain helps companies in these fast-moving times.

All this saves' costs by seamlessly tracking parts as well as creates trust through clearly defined and secure data access by the companies and persons involved in the process.

" } } diff --git a/src/assets/locales/en/page.investigation.json b/src/assets/locales/en/page.investigation.json index 22595b77d1..82ddd19ba8 100644 --- a/src/assets/locales/en/page.investigation.json +++ b/src/assets/locales/en/page.investigation.json @@ -1,6 +1,7 @@ { "pageInvestigation": { "info": "Overview", + "reason": "Message history", "selectedParts_one": "{{count}} Part selected for this page.", "selectedParts_other": "{{count}} Parts selected for this page.", "selectPartsAction": "Start investigation", diff --git a/src/assets/locales/pl/common.json b/src/assets/locales/pl/common.json deleted file mode 100644 index e3b484557c..0000000000 --- a/src/assets/locales/pl/common.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "clipboard": "Skopiowano \"{{value}}\" do schowka!", - "routing": { - "home": "Strona główna", - "dashboard": "Pulpit", - "parts": "Części", - "otherParts": "Pozostałe cześci", - "about": "O nas", - "relations": "Relacje", - "admin": "Administracja", - "investigations": "Dochodzenie Jakości" - }, - "layout": { - "nav": { - "openUserMenu": "Otwórz menu użytkownika", - "signOut": "Wyloguj się" - } - }, - "errorPage": { - "pageNotFound": { - "message": "Podana strona nie istnieje" - } - }, - "actions": { - "back": "Wróć", - "cancel": "Anuluj", - "approve": "Zatwierdź", - "close": "Zamknij", - "viewDetails": "Zobacz szczegóły", - - "accept": "Przyjmij", - "acknowledge": "Potwierdź", - "confirm": "Zatwierdź", - "cancellationConfirm": "Potwierdź anulowanie", - "decline": "Odmowa" - }, - "table": { - "noResultFound": "BRAK WYNIKÓW.", - "tryAgain": "Spróbuj ponownie później.", - "selectPageSize": "Ilość elementów na stronie", - "menuDescription": "Menu akcji", - "adminColumn": { - "startDate": "Data rozpoczęcia", - "registryLookupStatus": "Status", - "successShellDescriptorsFetchCount": "Udanych pobrań", - "failedShellDescriptorsFetchCount": "Nieudanych pobrań", - "shellDescriptorsFetchDelta": "Zmiana", - "endDate": "Data zakończenia" - }, - "partsColumn": { - "id": "ID", - "name": "Nazwa", - "manufacturer": "Producent", - "partNumber": "Numer części", - "serialNumber": "Numer seryjny", - "batchNumber": "Numer partii", - "productionDate": "Data produkcji", - "qualityType": "Typ jakości", - "productionCountry": "Kraj produkcji", - "description": "Opis", - "status": "Stan", - "createdDate": "Utworzono", - "createdBy": "Utworzono przez" - } - }, - "dataLoading": { - "inProgress": "Ładowanie danych...", - "error": "Błąd podczas ładowania danych" - }, - "qualityType": { - "Ok": "Ok", - "Minor": "Niewielki", - "Major": "Znaczny", - "Critical": "Krytyczny", - "LifeThreatening": "Zagrażający życiu" - }, - "map": { - "AttributionControl.ToggleAttribution": "Przełącz atrybucję", - "AttributionControl.MapFeedback": "Wysłać informacje zwrotną", - "FullscreenControl.Enter": "Pełny ekran", - "FullscreenControl.Exit": "Zamknij pełny ekran", - "GeolocateControl.FindMyLocation": "Znajdź moją lokalizacje", - "GeolocateControl.LocationNotAvailable": "Lokalizacja nie jest dostępna", - "LogoControl.Title": "Mapbox logo", - "Map.Title": "Mapa", - "NavigationControl.ResetBearing": "Zresetuj namiar na północ", - "NavigationControl.ZoomIn": "Zbliż", - "NavigationControl.ZoomOut": "Pomniejsz", - "ScrollZoomBlocker.CtrlMessage": "Użyj CTRL + scroll aby powiększyć mapę", - "ScrollZoomBlocker.CmdMessage": "Użyj ⌘ + scroll aby powiększyć mapę", - "TouchPanBlocker.Message": "Użyj dwóch palców, aby przesunąć mapę" - }, - "errorMessage": { - "min": "Liczba powinna być większa od {{min}}.", - "max": "Liczba powinna być mniejsza od {{max}}.", - "required": "Pole jest wymagane.", - "requiredTrue": "Pole musi być zaznaczone.", - "email": "Niepoprawny email.", - "minLength": "Tekst powinien zawierać co najmniej {{minLength}} znaków.", - "maxLength": "Tekst powinien zawierać maksymalnie {{maxLength}} znaków.", - "pattern": "Nie odpowiada wzorcowi: {{pattern}}.", - "generic": "Nieprawidłowe dane." - }, - "unitTest": { - "test01": "Do celów testów jednostkowych.", - "test02": "Do celów testów jednostkowych. {{test}}" - }, - "qualityInvestigation": { - "success": "Badanie skolejkowane dla {{count}} części", - "goToQueue": "Otwórz Kolejke" - }, - "requestInvestigations": { - "headline": "Zacznij badanie jakości", - "textAreaDescription": "Dodaj opis badania", - "restoreItem": "Czy chcesz przywrócić ostatni przedmiot?", - "textAreaLabel": "Opis", - "cancel": "ANULOWAĆ", - "submit": "DODAĆ DO KOLEJKI" - }, - "pagination": { - "itemsPerPageLabel": "Elementów na stronie:", - "nextPageLabel": "Następna strona", - "previousPageLabel": "Poprzednia strona", - "firstPageLabel": "Pierwsza strone", - "lastPageLabel": "Ostatnia strona", - "emptyRange": "0 z {{length}}", - "range": "{{startIndex}} – {{endIndex}} z {{length}}" - }, - "commonInvestigation": { - "title": "Badanie Jakości", - "viewAll": "View all", - "tabs": { - "received": "Otrzymane", - "queuedAndRequested": "Skolejkowane & Zażądane" - }, - "status": { - "APPROVED": "Zgłoszone", - "CANCELED": "Anulowane", - "CLOSED": "Zamknięte", - "CREATED": "Skolejkowane", - "RECEIVED": "Odebrane" - }, - "modal": { - "acceptTitle": "Akceptacja dochodzenia", - "acceptDescription": "Czy na pewno chcesz zaakceptować to dochodzenie?", - "acceptReasonHint": "Wprowadź powód akceptacji tego dochodzenia.", - "acknowledgeTitle": "Potwierdzenie dochodzenia", - "acknowledgeDescription": "Czy na pewno chcesz potwierdzić to badanie?", - "approvalTitle": "Zatwierdzenie badania jakości", - "approvalDescription": "Czy jesteś pewien że chcesz zatwierdzić to badanie jakości?", - "closeTitle": "Zamknięcie badania jakości", - "closeDescription": "Czy jesteś pewien, że chcesz zamknąć to badanie jakości?", - "closeReasonHint": "Wprowadź powód do akcji zamknięcia badania", - "cancellationTitle": "Anulowanie badania jakości", - "cancellationDescription": "Czy jesteś pewien, że chcesz anulować badanie jakości?", - "cancellationHint": "Wprowadz ID badania jakości aby potwierdzić akcję anulowania.", - "declineTitle": "Odrzucenie dochodzenia", - "declineDescription": "Czy na pewno chcesz odmówić wszczęcia tego dochodzenia?", - "declineReasonHint": "Wprowadź powód odrzucenia tego dochodzenia.", - - "successfullyAccepted": "Dochodzenie zostało przyjęte z powodzeniem.", - "successfullyAcknowledged": "Dochodzenie zostało przyjęte z powodzeniem.", - "successfullyApproved": "Badanie zostało zaakceptowane.", - "successfullyCanceled": "Badanie zostało anulowane.", - "successfullyClosed": "Badanie zostało zamknięte.", - "successfullyDeclined": "Badanie zostało odrzucone z powodzeniem.", - - "failedAccept": "Nie udało się przyjąć dochodzenia, proszę spróbować ponownie.", - "failedAcknowledge": "Dochodzenie nie zostało potwierdzone, proszę spróbować ponownie.", - "failedApprove": "Nie udało się zaakceptować badania, spróbuj ponownie później.", - "failedCancel": "Nie udało się anulować badania, spróbuj ponownie później.", - "failedClose": "Nie udało się zamknąć badania, spróbuj ponownie później.", - "failedDecline": "Śledztwo nie zostało odrzucone, spróbuj ponownie." - } - } -} diff --git a/src/assets/locales/pl/page.about.json b/src/assets/locales/pl/page.about.json deleted file mode 100644 index fa5fc68e75..0000000000 --- a/src/assets/locales/pl/page.about.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "pageAbout": { - "title": "O Catena-X Open-Source Traceability", - "content": "

Aplikacja Open-Source Traceability została opracowana w ramach projektu Catena-X i pozwala na udział w programie Parts Traceability.

Aplikacja daje mozliwość kompleksowego przeglądu sieci dostawców. Wysoki poziom przejrzystości sieci dostawców umożliwia podjęcie szybszej interwencji na zdarzenia w łańcuchu dostaw. Automatyczne wiadomości dotyczące incydentów związanych z jakością oraz narzędzie do kontroli łańcucha dostaw pomagają firmom w tych szybko zmieniających się czasach.

Wszystko to oszczędza koszty a także buduje zaufanie dzięki jasno zdefiniowanemu i bezpiecznemu dostępowi do danych przez firmy i osoby zaangażowane w proces.

" - } -} diff --git a/src/assets/locales/pl/page.admin.json b/src/assets/locales/pl/page.admin.json deleted file mode 100644 index 9d224a56c9..0000000000 --- a/src/assets/locales/pl/page.admin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "pageAdmin": { - "title": "Administracja Catena-X", - "scheduledRegistryProcesses": { - "title": "Registry lookups" - } - } -} diff --git a/src/assets/locales/pl/page.dashboard.json b/src/assets/locales/pl/page.dashboard.json deleted file mode 100644 index b8067cac7e..0000000000 --- a/src/assets/locales/pl/page.dashboard.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "pageDashboard": { - "title": "Pulpit", - "totalInvestigations": { - "label": "Ilość badań" - }, - "totalOfParts": { - "label": "Ilość części" - }, - "totalOfOtherParts": { - "label": "Ilość części" - } - }, - "map": { - "headline": "Części z różnych krajów" - } -} diff --git a/src/assets/locales/pl/page.investigation.json b/src/assets/locales/pl/page.investigation.json deleted file mode 100644 index ef315a7623..0000000000 --- a/src/assets/locales/pl/page.investigation.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "pageInvestigation": { - "info": "Informacje ogólne", - "selectedParts_one": "{{count}} część została wybrana", - "selectedParts_few": "{{count}} części zostały wybrane", - "selectedParts_many": "{{count}} części zostało wybrane", - "selectPartsAction": "Rozpocznij badanie jakości", - - "subHeadline": { - "affectedParts": "Affected parts NEEDS TRANSLATION", - "supplierParts": "Części dostawcy" - } - } -} diff --git a/src/assets/locales/pl/page.otherParts.json b/src/assets/locales/pl/page.otherParts.json deleted file mode 100644 index 896a6d9b0d..0000000000 --- a/src/assets/locales/pl/page.otherParts.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "pageParts": { - "title": "Catena-X Części", - "tab": { - "customer": "Części klienta", - "supplier": "Części dostawcy" - } - }, - "partDetail": { - "relations": "Relacje", - "overview": "Informacje ogólne", - "manufacturerData": "Dane producenta", - "customerData": "Dane klienta", - "name": "Nazwa", - "partNumber": "Numer części", - "serialNumber": "Numer seryjny", - "productionDate": "Data produkcji", - "manufacturer": "Producent", - "nameAtCustomer": "Nazwa u klienta", - "customerPartId": "ID części u klienta" - }, - "page": { - "selectedParts": { - "info_one": "{{count}} część została wybrana", - "info_few": "{{count}} części zostały wybrane", - "info_many": "{{count}} części zostało wybrane", - "action": "Rozpocznij badanie jakości" - }, - "requestInvestigations": { - "partDescription": "Wybrałeś następujące części:" - } - } -} diff --git a/src/assets/locales/pl/page.parts.json b/src/assets/locales/pl/page.parts.json deleted file mode 100644 index 6d84d4517f..0000000000 --- a/src/assets/locales/pl/page.parts.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "pageParts": { - "title": "Catena-X Części" - }, - "relation": { - "increase": "Uzyte do powiększenia drzewa.", - "decrease": "Uzyte do zmniejszenia drzewa." - }, - "page": { - "childInvestigation": { - "action": "Zacznij badanie jakości" - }, - "requestInvestigations": { - "partDescription": "Załadowanie nazwy wybranych części może chwilę potrwać." - } - } -} diff --git a/src/assets/locales/pl/partDetail.json b/src/assets/locales/pl/partDetail.json deleted file mode 100644 index ecb4d14847..0000000000 --- a/src/assets/locales/pl/partDetail.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "partDetail": { - "relations": "Relacje", - "overview": "Informacje ogólne", - "manufacturerData": "Dane producenta", - "customerData": "Dane klienta", - "name": "Nazwa", - "partNumber": "Numer części", - "serialNumber": "Numer seryjny", - "batchNumber": "Numer partii", - "qualityType": "Typ jakości", - "productionDate": "Data produkcji", - "manufacturer": "Producent", - "nameAtCustomer": "Nazwa u klienta", - "customerPartId": "ID części u klienta", - "van": "Van", - "tab": { - "header": "Szczegóły części", - "description": "Szczegółowe informacje odnośnie wybranej części" - }, - "investigation": { - "headline": "Zgłoś badanie jakości dla podrzędnych cześci", - "tab": { - "header": "Badanie dla komponentów", - "description": "Rozpocznij badanie dla komponentów" - }, - "noSelection": { - "header": "Nie wybrano części.", - "text": "Proszę wybrać częśći aby rozpocząć badanie." - } - } - } -} diff --git a/src/tests/mock-test-server.ts b/src/tests/mock-test-server.ts index b14508d6a9..d54e7d0b18 100644 --- a/src/tests/mock-test-server.ts +++ b/src/tests/mock-test-server.ts @@ -24,7 +24,7 @@ import { adminHandler, dashboardHandler, errorHandler, - investigationsHandlers, + investigationsTestHandlers, otherPartsHandlersTest, partsHandlersTest, } from '../app/mocks/services'; @@ -33,7 +33,7 @@ const handlers = [ ...dashboardHandler, ...otherPartsHandlersTest, ...partsHandlersTest, - ...investigationsHandlers, + ...investigationsTestHandlers, ...adminHandler, ...errorHandler, ]; diff --git a/src/tests/test-render.utils.ts b/src/tests/test-render.utils.ts index ee55d25c0e..652b79fe01 100644 --- a/src/tests/test-render.utils.ts +++ b/src/tests/test-render.utils.ts @@ -71,7 +71,7 @@ export const renderComponent: typeof ExtendedRenderFn = ( return () => i18next.init({ lng: 'en', - supportedLngs: ['en', 'pl'], + supportedLngs: ['en', 'de'], resources: { en: { translation: translations.reduce( diff --git a/src/theme/base.scss b/src/theme/base.scss index 64b6ff8e87..febba597e1 100644 --- a/src/theme/base.scss +++ b/src/theme/base.scss @@ -26,30 +26,38 @@ @layer base { body { @apply font-light bg-white m-0 p-0 overflow-hidden; + font-family: 'LibreFranklin', 'Libre Franklin', 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; } h1 { - @apply font-extraBold lg:text-4xl sm:text-3xl uppercase text-primary; + @apply font-medium uppercase text-dark; + font-size: 56px; } h2 { - @apply font-extraBold lg:text-3xl sm:text-2xl uppercase text-tundora; + @apply font-medium uppercase text-dark; + font-size: 36px; } h3 { - @apply font-extraBold lg:text-2xl sm:text-xl text-tundora; + @apply font-semiBold sm:text-xl text-dark; + font-size: 24px; } h4 { - @apply font-extraBold lg:text-xl sm:text-lg text-tundora; + @apply font-semiBold sm:text-lg text-dark; + font-size: 18px; } h5 { - @apply font-extraBold lg:text-lg sm:text-base text-tundora; + @apply font-semiBold sm:text-base text-dark; + font-size: 16px; } + p, + span, .regular-text { - @apply font-light lg:text-sm sm:text-xs text-tundora; + @apply font-light lg:text-sm sm:text-xs text-dark; } .errorMessage { @@ -57,15 +65,15 @@ } .large-text { - @apply font-light lg:text-base sm:text-sm text-tundora; + @apply font-light lg:text-base sm:text-sm text-dark; } .small-text { - @apply font-light lg:text-xs sm:text-tiny text-tundora; + @apply font-light lg:text-xs sm:text-tiny text-dark; } .component-headline { - @apply font-extraBold lg:text-sm sm:text-xs text-tundora; + @apply font-light lg:text-sm sm:text-xs text-dark; } a { @@ -75,6 +83,8 @@ -webkit-font-smoothing: antialiased; } + // Style fixes for material library + .mat-focused .mat-form-field-label { @apply text-primary !important; } @@ -88,6 +98,26 @@ } .mat-form-field { - @apply font-light lg:text-base sm:text-sm text-tundora ml-0 !important; + @apply font-light lg:text-base sm:text-sm text-dark ml-0 !important; + } + + .mat-paginator, + mat-chip { + @apply font-light; + } + + .mat-hint { + @apply font-regular text-gray; + font-size: 14px; + } + .mat-button-wrapper { + color: inherit; + } + + .mat-sort-header { + @apply text-gray; + } + .mat-sort-header-sorted > .mat-sort-header-content { + @apply font-semiBold; } } diff --git a/src/theme/fonts.scss b/src/theme/fonts.scss index f2cda27ad8..a8b29c0314 100644 --- a/src/theme/fonts.scss +++ b/src/theme/fonts.scss @@ -19,146 +19,67 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -@font-face { - font-family: 'Catena-X Black'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-Black.ttf') format('truetype'); - font-display: swap; -} - -@font-face { - font-family: 'Catena-X BlackItalic'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-BlackItalic.ttf') format('truetype'); - font-display: swap; -} - @font-face { font-family: 'Catena-X Bold'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-Bold.ttf') format('truetype'); - font-display: swap; + font-display: block; + src: url('/../../assets/fonts/LibreFranklin-VariableFont_wght.ttf') format('truetype'); + font-weight: 700; } - @font-face { font-family: 'Catena-X BoldItalic'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-BoldItalic.ttf') format('truetype'); - font-display: swap; -} - -@font-face { - font-family: 'Catena-X ExtraBold'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-ExtraBold.ttf') format('truetype'); - font-display: swap; + font-display: block; + src: url('/../../assets/fonts/LibreFranklin-Italic-VariableFont_wght.ttf') format('truetype'); + font-weight: 700; } @font-face { - font-family: 'Catena-X ExtraBoldItalic'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-ExtraBoldItalic.ttf') format('truetype'); - font-display: swap; -} - -@font-face { - font-family: 'Catena-X ExtraLight'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-ExtraLight.ttf') format('truetype'); - font-display: swap; -} - -@font-face { - font-family: 'Catena-X ExtraLightItalic'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-ExtraLightItalic.ttf') format('truetype'); - font-display: swap; -} - -@font-face { - font-family: 'Catena-X Italic'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-Italic.ttf') format('truetype'); - font-display: swap; -} - -@font-face { - font-family: 'Catena-X Light'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-Light.ttf') format('truetype'); - font-display: swap; + font-family: 'Catena-X SemiBold'; + font-display: block; + src: url('/../../assets/fonts/LibreFranklin-VariableFont_wght.ttf') format('truetype'); + font-weight: 600; } - @font-face { - font-family: 'Catena-X LightItalic'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-LightItalic.ttf') format('truetype'); - font-display: swap; + font-family: 'Catena-X SemiBoldItalic'; + font-display: block; + src: url('/../../assets/fonts/LibreFranklin-Italic-VariableFont_wght.ttf') format('truetype'); + font-weight: 600; } @font-face { font-family: 'Catena-X Medium'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-Medium.ttf') format('truetype'); - font-display: swap; + font-display: block; + src: url('/../../assets/fonts/LibreFranklin-VariableFont_wght.ttf') format('truetype'); + font-weight: 500; } - @font-face { font-family: 'Catena-X MediumItalic'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-MediumItalic.ttf') format('truetype'); - font-display: swap; + font-display: block; + src: url('/../../assets/fonts/LibreFranklin-Italic-VariableFont_wght.ttf') format('truetype'); + font-weight: 500; } @font-face { font-family: 'Catena-X Regular'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-Regular.ttf') format('truetype'); - font-display: swap; + font-display: block; + src: url('/../../assets/fonts/LibreFranklin-VariableFont_wght.ttf') format('truetype'); + font-weight: 400; } - @font-face { - font-family: 'Catena-X SemiBold'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-SemiBold.ttf') format('truetype'); - font-display: swap; -} - -@font-face { - font-family: 'Catena-X SemiBoldItalic'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-SemiBoldItalic.ttf') format('truetype'); - font-display: swap; + font-family: 'Catena-X Italic'; + font-display: block; + src: url('/../../assets/fonts/LibreFranklin-Italic-VariableFont_wght.ttf') format('truetype'); + font-weight: 400; } @font-face { - font-family: 'Catena-X Thin'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-Thin.ttf') format('truetype'); - font-display: swap; + font-family: 'Catena-X Light'; + font-display: block; + src: url('/../../assets/fonts/LibreFranklin-VariableFont_wght.ttf') format('truetype'); + font-weight: 300; } - @font-face { - font-family: 'Catena-X ThinItalic'; - font-weight: normal; - font-style: normal; - src: url('/../../assets/fonts/LibreFranklin-ThinItalic.ttf') format('truetype'); - font-display: swap; + font-family: 'Catena-X LightItalic'; + font-display: block; + src: url('/../../assets/fonts/LibreFranklin-Italic-VariableFont_wght.ttf') format('truetype'); + font-weight: 300; } diff --git a/tailwind.config.js b/tailwind.config.js index d6820338f1..8cdc730d54 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -22,24 +22,20 @@ module.exports = { theme: { extend: { fontFamily: { - black: ['Catena-X Black', 'sans-serif'], - blackItalic: ['Catena-X BlackItalic', 'sans-serif'], bold: ['Catena-X Bold', 'sans-serif'], boldItalic: ['Catena-X BoldItalic', 'sans-serif'], - extraBold: ['Catena-X ExtraBold', 'sans-serif'], - extraBoldItalic: ['Catena-X ExtraBoldItalic', 'sans-serif'], - extraLight: ['Catena-X ExtraLight', 'sans-serif'], - extraLightItalic: ['Catena-X ExtraLightItalic', 'sans-serif'], + italic: ['Catena-X Italic', 'sans-serif'], + regular: ['Catena-X Regular', 'sans-serif'], + light: ['Catena-X Light', 'sans-serif'], lightItalic: ['Catena-X LightItalic', 'sans-serif'], + medium: ['Catena-X Medium', 'sans-serif'], mediumItalic: ['Catena-X MediumItalic', 'sans-serif'], - regular: ['Catena-X Regular', 'sans-serif'], + semiBold: ['Catena-X SemiBold', 'sans-serif'], semiBoldItalic: ['Catena-X SemiBoldItalic', 'sans-serif'], - thin: ['Catena-X Thin', 'sans-serif'], - thinItalic: ['Catena-X ThinItalic', 'sans-serif'], }, minHeight: { 0: '0', @@ -60,7 +56,10 @@ module.exports = { 120: 120, }, fontSize: { - tiny: '.5rem', + tiny: '12px', + sm: '14px', + base: '16px', + xl: '18px', }, fill: theme => ({ green: theme('success'), @@ -94,8 +93,9 @@ module.exports = { cararra: '#eeefea', doveGray: '#666666', tundora: '#444444', - white: '#fff', - dark: '#191715', + white: '#ffffff', + dark: '#111111', + gray: '#888888', // Alert colors error: '#D91E18', @@ -131,7 +131,7 @@ module.exports = { // Status colors for notification badges createdLight: '#f2f3fb', - createdDark: '#000000', + createdDark: '#111111', receivedLight: '#e1f1fe', receivedDark: '#2b4078',