From 590b170245c26950b3d387aa34c176cab0a5c75d Mon Sep 17 00:00:00 2001 From: Daniela Biasi Date: Wed, 6 May 2026 17:33:09 +0200 Subject: [PATCH] feat(weather-widget): add weather widget --- package-lock.json | 342 ++++++++---------- projects/element-ng/tsconfig.lib.json | 1 + projects/element-ng/tsconfig.schematics.json | 1 + projects/element-ng/weather-widget/index.ts | 1 + .../lib/si-weather-widget.component.html | 98 +++++ .../lib/si-weather-widget.component.scss | 241 ++++++++++++ .../lib/si-weather-widget.component.ts | 65 ++++ .../element-ng/weather-widget/ng-package.json | 6 + .../element-ng/weather-widget/public-api.ts | 7 + tsconfig.json | 1 + 10 files changed, 574 insertions(+), 189 deletions(-) create mode 100644 projects/element-ng/weather-widget/index.ts create mode 100644 projects/element-ng/weather-widget/lib/si-weather-widget.component.html create mode 100644 projects/element-ng/weather-widget/lib/si-weather-widget.component.scss create mode 100644 projects/element-ng/weather-widget/lib/si-weather-widget.component.ts create mode 100644 projects/element-ng/weather-widget/ng-package.json create mode 100644 projects/element-ng/weather-widget/public-api.ts diff --git a/package-lock.json b/package-lock.json index cae126ce0d..35cc9be942 100644 --- a/package-lock.json +++ b/package-lock.json @@ -400,6 +400,7 @@ "resolved": "https://registry.npmjs.org/@angular-architects/module-federation/-/module-federation-21.2.2.tgz", "integrity": "sha512-aM6Oys+RGlUZ+GuVz1gx9LlJNMnb+niEtEsCQ3NmgoIMOZDBlfYnm+jbDO0F1TJWrTOBbAvfbKvJbLHfG25r8Q==", "license": "MIT", + "peer": true, "dependencies": { "@angular-architects/module-federation-runtime": "~21.2.2", "callsite": "^1.0.0", @@ -471,6 +472,7 @@ "resolved": "https://registry.npmjs.org/@angular-architects/native-federation/-/native-federation-21.1.0.tgz", "integrity": "sha512-XOkYPEdBSgIGYpCAb8M09kkDimVesr43YcTITTL7GYAmN2Upto+KOPNBCpkFEDrrbFMkVpoUXz7HJFQ6w1Iq8Q==", "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.19.0", "@chialab/esbuild-plugin-commonjs": "^0.19.0", @@ -594,12 +596,28 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/@angular-devkit/architect/node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://captain.rtf.siemens.net/artifactory/api/npm/siemens-npm/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular-devkit/build-angular": { "version": "21.0.5", "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-21.0.5.tgz", "integrity": "sha512-My42P8i/FrZgEsTnsCS9IXKMk7ikJwa14i0aBcHg3lMBAPrdpHVzgDS6/1SOO1HsoVYF/SiPjwnlL152xlm8/Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@ampproject/remapping": "2.3.0", "@angular-devkit/architect": "0.2100.5", @@ -2108,9 +2126,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2128,9 +2143,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2148,9 +2160,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2168,9 +2177,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2622,6 +2628,7 @@ "integrity": "sha512-moERVCTekQKOvR8RMuEOtWSO3VS1qrzA3keI1dPto/JVB8Nqp9w3R5ZpEoXHzh4zgEryosxmPgdi6UczJe2ouQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@angular-eslint/bundled-angular-compiler": "21.3.1", "eslint-scope": "9.1.2" @@ -3362,6 +3369,21 @@ "node": ">=10" } }, + "node_modules/@angular/build/node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://captain.rtf.siemens.net/artifactory/api/npm/siemens-npm/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular/build/node_modules/sass": { "version": "1.97.1", "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.1.tgz", @@ -3401,6 +3423,7 @@ "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.0.6.tgz", "integrity": "sha512-5Gw8mXtKXvcvDMWEciPLRYB6Ja5vsikLAidZsdCEIF6Bc51GmoqT5Tk/Ke+ciCd5Hq9Aco/IcHxT1RC3470lZg==", "license": "MIT", + "peer": true, "dependencies": { "parse5": "^8.0.0", "tslib": "^2.3.0" @@ -3417,6 +3440,7 @@ "integrity": "sha512-UYFQqn9Ow1wFVSwdB/xfjmZo4Yb7CUNxilbeYDFIybesfxXSdjMJBbXLtV0+icIhjmqfSUm2gTls6WIrG8qv9A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@angular-devkit/architect": "0.2100.5", "@angular-devkit/core": "21.0.5", @@ -3498,6 +3522,7 @@ "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.0.8.tgz", "integrity": "sha512-on1B4oc/pf7IlkbG08Et/cCDSX8dpZz9iwp3zMFN/0JvorspyL5YOovFJfjdpmjdlrIi+ToGImwyIkY9P8Mblw==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -3515,6 +3540,7 @@ "integrity": "sha512-k/EPMuNvfn0eebEMmVcwhMlCWqzER/BEHVqTQCKsAAt7AuYZuluz7oR8Ypw96v3jbY+ZaH1ZvAzrK6URzryhOg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -3528,6 +3554,7 @@ "integrity": "sha512-+i/wFvi5FTg47Ei+aiFf8j3iYfjQ79ieg8oJM86+Mw4bNwEKQqvWcpmKjoqcfmCescuw0sr2DXU6OEeX+yWeVg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "7.28.4", "@jridgewell/sourcemap-codec": "^1.4.14", @@ -3608,6 +3635,7 @@ "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.0.8.tgz", "integrity": "sha512-8dNolIQn8WHrD3PsqGuPrujxDX5hjpMbioifIByjjX9yaJy9on7AewVGb8m/DHVwWQ1eGVAGmvW9wt+h+nlzLg==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -3649,6 +3677,7 @@ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.0.8.tgz", "integrity": "sha512-H03A50elawXO53xkz0Aytar5kYT14GLeaj6dLKc1kcR5NqvX9Y/R7z3bY52tvypAdIR8CmPT7ad07TlT4O9lkg==", "license": "MIT", + "peer": true, "dependencies": { "@standard-schema/spec": "^1.0.0", "tslib": "^2.3.0" @@ -3679,6 +3708,7 @@ "integrity": "sha512-b4R3lLq32CbRXZrwMct4K7rQ5yzL7EXihg1IfyHNSEcxuuzdtXw/M1xexIkEVtLIfA+SROAThISbYgSgWq6rwg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "7.28.4", "@types/babel__core": "7.20.5", @@ -3751,6 +3781,7 @@ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.0.8.tgz", "integrity": "sha512-5rPyrP6n6ClO0ZEUXndS2/Xb7nZrbjjYWOxgfCb+ZTCiU7eyN6zhSmicKk2dLQxE1M15wbTa87dN6/Ytuq2uvg==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -3773,6 +3804,7 @@ "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.0.8.tgz", "integrity": "sha512-LPR65wyWBSyR46fGeQtD92+TM635o0lh+N5k9qPZdMacogwViTrtBHWPfKYBtBUXLWEWXXKJfSbXvhh3w3uLxw==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -3827,6 +3859,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -5491,6 +5524,7 @@ "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } @@ -5744,6 +5778,7 @@ "integrity": "sha512-j34Qqeaa152chJgz2ysyk0BCpHenJn1lV0Rx0VXf8k3ccQcED+48EZrzMvo9jLmJUyBrrBwvu89I+2er4gW7QQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@commitlint/types": "^20.5.0", "conventional-changelog-conventionalcommits": "^9.2.0" @@ -6035,6 +6070,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -6083,6 +6119,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -6155,27 +6192,6 @@ "url": "https://github.com/sponsors/JounQin" } }, - "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.1", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@emnapi/wasi-threads": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", @@ -6701,6 +6717,7 @@ "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" }, @@ -7079,6 +7096,7 @@ "integrity": "sha512-X7/+dG9SLpSzRkwgG5/xiIzW0oMrV3C0HOa7YHG1WnrLK+vCQHfte4k/T80059YBdei29RBC3s+pSMvPJDU9/A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@inquirer/checkbox": "^4.3.0", "@inquirer/confirm": "^5.1.19", @@ -8119,6 +8137,7 @@ "resolved": "https://registry.npmjs.org/@module-federation/enhanced/-/enhanced-2.4.0.tgz", "integrity": "sha512-NiccK03x7V6bK2LvJNuW520kT+Onx+LJe8lyPsENjXctECCIFJdJOmYr8ABif/kLayWKrrYCzCGVNNiQXANEGQ==", "license": "MIT", + "peer": true, "dependencies": { "@module-federation/bridge-react-webpack-plugin": "2.4.0", "@module-federation/cli": "2.4.0", @@ -8281,6 +8300,7 @@ "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-2.4.0.tgz", "integrity": "sha512-IrLAMwUuteRgFlEkg9jrn4bk8uC897FnXvfNmkKD8/qIoNtSd+32e5ouQn+PEYbX/RjRUB1TYveY6rYHpTPkyg==", "license": "MIT", + "peer": true, "dependencies": { "@module-federation/error-codes": "2.4.0", "@module-federation/runtime-core": "2.4.0", @@ -8292,6 +8312,7 @@ "resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-2.4.0.tgz", "integrity": "sha512-0S8fDw28DXDW17lTQwq5vfJWe2lG0Lw3+w4vk3DVVImLwXXay+OGxLDxzWUfypWcMznfpnoAnFUMO3PtuXziuA==", "license": "MIT", + "peer": true, "dependencies": { "@module-federation/error-codes": "2.4.0", "@module-federation/sdk": "2.4.0" @@ -8322,6 +8343,7 @@ "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-2.4.0.tgz", "integrity": "sha512-BWQsGT4EWscV9bx3bVHEwp6lERBsiYm7rnPiDpwd2fx+hGEpz1IM9Pz35VryHNDXYxw7MzaAuwTMM+L7uN8OYQ==", "license": "MIT", + "peer": true, "dependencies": { "@module-federation/runtime": "2.4.0", "@module-federation/webpack-bundler-runtime": "2.4.0" @@ -8865,9 +8887,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -8885,9 +8904,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -8905,9 +8921,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -8925,9 +8938,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -8945,9 +8955,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -8965,9 +8972,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -8985,9 +8989,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -9099,6 +9100,7 @@ "resolved": "https://registry.npmjs.org/@ngx-formly/bootstrap/-/bootstrap-6.3.12.tgz", "integrity": "sha512-2HPqyC7DJjz5mwgNw+hkzXVmyaD4BfykWgUiF9peeNmhmYqF0z1JoGRotbdtzuwGeaGVkX86dPEt2pHJDeS3Pw==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.0.0" }, @@ -9112,6 +9114,7 @@ "resolved": "https://registry.npmjs.org/@ngx-formly/core/-/core-6.3.12.tgz", "integrity": "sha512-88MOfn9dM1B33t04jl8x0Glh0Ed0lUKMkhYajicRH7ZHTmwIdla1SQjiblp2C+EcCFvsY7XAU2/JUZQdl56aUw==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.0.0" }, @@ -9125,6 +9128,7 @@ "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-16.0.4.tgz", "integrity": "sha512-s8llTL2SJvROhqttxvEs7Cg+6qSf4kvZPFYO+cTOY1d8DWTjlutRkWAleZcPPoeX927Dm7ALfL07G7oYDJ7z6w==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -9496,6 +9500,7 @@ "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.3", @@ -9670,9 +9675,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -9686,9 +9688,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -9702,9 +9701,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -9718,9 +9714,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -9734,9 +9727,6 @@ "cpu": [ "arm64" ], - "libc": [ - null - ], "license": "MIT", "optional": true, "os": [ @@ -9750,9 +9740,6 @@ "cpu": [ "x64" ], - "libc": [ - null - ], "license": "MIT", "optional": true, "os": [ @@ -9910,9 +9897,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -9934,9 +9918,6 @@ "arm" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -9958,9 +9939,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -9982,9 +9960,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -10006,9 +9981,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -10030,9 +10002,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -10306,9 +10275,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -10326,9 +10292,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -10346,9 +10309,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -10366,9 +10326,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -10632,9 +10589,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -10649,9 +10603,6 @@ "arm" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -10666,9 +10617,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -10683,9 +10631,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -10700,9 +10645,6 @@ "loong64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -10717,9 +10659,6 @@ "loong64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -10734,9 +10673,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -10751,9 +10687,6 @@ "ppc64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -10768,9 +10701,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -10785,9 +10715,6 @@ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -10802,9 +10729,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -10819,9 +10743,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -10836,9 +10757,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -10954,7 +10872,6 @@ "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.7.11.tgz", "integrity": "sha512-2MGdy2s2HimsDT444Bp5XnALzNRxuBNc7y0JzyuqKbHBywd4x2NeXyhWXXoxufaCFu5PBc9Qq9jyfjW2Aeh06Q==", "license": "MIT", - "peer": true, "optionalDependencies": { "@rspack/binding-darwin-arm64": "1.7.11", "@rspack/binding-darwin-x64": "1.7.11", @@ -10979,8 +10896,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rspack/binding-darwin-x64": { "version": "1.7.11", @@ -10993,8 +10909,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rspack/binding-linux-arm64-gnu": { "version": "1.7.11", @@ -11003,15 +10918,11 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rspack/binding-linux-arm64-musl": { "version": "1.7.11", @@ -11020,15 +10931,11 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rspack/binding-linux-x64-gnu": { "version": "1.7.11", @@ -11037,15 +10944,11 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rspack/binding-linux-x64-musl": { "version": "1.7.11", @@ -11054,15 +10957,11 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rspack/binding-wasm32-wasi": { "version": "1.7.11", @@ -11073,7 +10972,6 @@ ], "license": "MIT", "optional": true, - "peer": true, "dependencies": { "@napi-rs/wasm-runtime": "1.0.7" } @@ -11089,8 +10987,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rspack/binding-win32-ia32-msvc": { "version": "1.7.11", @@ -11103,8 +11000,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rspack/binding-win32-x64-msvc": { "version": "1.7.11", @@ -11117,8 +11013,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rspack/core": { "version": "1.7.11", @@ -11147,15 +11042,13 @@ "version": "0.22.0", "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.22.0.tgz", "integrity": "sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@rspack/core/node_modules/@module-federation/runtime": { "version": "0.22.0", "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.22.0.tgz", "integrity": "sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA==", "license": "MIT", - "peer": true, "dependencies": { "@module-federation/error-codes": "0.22.0", "@module-federation/runtime-core": "0.22.0", @@ -11167,7 +11060,6 @@ "resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-0.22.0.tgz", "integrity": "sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA==", "license": "MIT", - "peer": true, "dependencies": { "@module-federation/error-codes": "0.22.0", "@module-federation/sdk": "0.22.0" @@ -11178,7 +11070,6 @@ "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.22.0.tgz", "integrity": "sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA==", "license": "MIT", - "peer": true, "dependencies": { "@module-federation/runtime": "0.22.0", "@module-federation/webpack-bundler-runtime": "0.22.0" @@ -11188,15 +11079,13 @@ "version": "0.22.0", "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.22.0.tgz", "integrity": "sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@rspack/core/node_modules/@module-federation/webpack-bundler-runtime": { "version": "0.22.0", "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.22.0.tgz", "integrity": "sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA==", "license": "MIT", - "peer": true, "dependencies": { "@module-federation/runtime": "0.22.0", "@module-federation/sdk": "0.22.0" @@ -11206,8 +11095,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rspack/lite-tapable/-/lite-tapable-1.1.0.tgz", "integrity": "sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@rushstack/node-core-library": { "version": "5.23.1", @@ -11316,6 +11204,7 @@ "integrity": "sha512-1renEbBZz9Yw3A0GUOJ6x6E1jd2Vu/fX5tEGiFNbIoWaNwa71SlFTvKKqaYxiYQkrpc7oexVJ2ymuvOfgTbI1w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@angular-devkit/core": "21.2.9", "@angular-devkit/schematics": "21.2.9", @@ -11437,6 +11326,21 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/@schematics/angular/node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://captain.rtf.siemens.net/artifactory/api/npm/siemens-npm/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@schematics/angular/node_modules/stdin-discarder": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", @@ -12118,7 +12022,8 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@siemens/element-icons/-/element-icons-1.2.0.tgz", "integrity": "sha512-aQmn5S4vuIkxCl4GEZ4qX9mKQVhi5G7EkyCA7tmm5sRKmK4Tj3ZBL8dZlouhH0KXIwwX5nAKkIu33Wh7SyrDPg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@siemens/element-ng": { "resolved": "projects/element-ng", @@ -12183,6 +12088,7 @@ "resolved": "https://registry.npmjs.org/@siemens/ngx-datatable/-/ngx-datatable-26.0.0.tgz", "integrity": "sha512-pi9Ksprec+sdGtndtf9odDHE870nB2AaWxuWIAkBnTtlif2EeXvYcuXPDgDgcieq3TyVerb/tZZ3mul0otGQeg==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -12799,6 +12705,7 @@ "integrity": "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -12852,6 +12759,7 @@ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -12984,6 +12892,7 @@ "integrity": "sha512-HDQH9O/47Dxi1ceDhBXdaldtf/WV9yRYMjbjCuNk3qnaTD564qwv61Y7+gTxwxRKzSrgO5uhtw584igXVuuZkA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.59.1", "@typescript-eslint/types": "8.59.1", @@ -13091,6 +13000,7 @@ "integrity": "sha512-ZDCjgccSdYPw5Bxh+my4Z0lJU96ZDN7jbBzvmEn0FZx3RtU1C7VWl6NbDx94bwY3V5YsgwRzJPOgeY2Q/nLG8A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -13133,6 +13043,7 @@ "integrity": "sha512-3pIeoXhCeYH9FSCBI8P3iNwJlGuzPlYKkTlen2O9T1DSeeg8UG8jstq6BLk+Mda0qup7mgk4z4XL4OzRaxZ8LA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.59.1", @@ -13224,6 +13135,7 @@ "integrity": "sha512-CWy0lBQJq97nionyJJdnaU4961IXTl43a7UCu5nHy51IoKxAt6PVIJLo+76rVl7KOOgcWHNkG4kbJu/pW7knvA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/browser": "4.1.5", "@vitest/mocker": "4.1.5", @@ -13280,6 +13192,7 @@ "integrity": "sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@bcoe/v8-coverage": "^1.0.2", "@vitest/utils": "4.1.5", @@ -13667,6 +13580,7 @@ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "devOptional": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -13773,6 +13687,7 @@ "resolved": "https://registry.npmjs.org/ag-grid-community/-/ag-grid-community-35.2.1.tgz", "integrity": "sha512-ycmGI+1EbUT7i3eg/Kgi1owwnkdHXRufo10Xm6cfSsVPM3TMpvlbLgi28KIPt9DGHZWHq9fOBn7nxMNdv1Yaow==", "license": "MIT", + "peer": true, "dependencies": { "ag-charts-types": "13.2.1" } @@ -13806,6 +13721,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -13894,6 +13810,7 @@ "integrity": "sha512-VGQWTyuPAEO/AnZuqHxGBJMYSiZ0tbrHx/OgPCRTKHfbrFU4x+zivS84h9UWoDpDtius1RyD+ZReFjTAEWptiA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@angular-devkit/core": ">= 21.0.0 < 22.0.0", "@angular-devkit/schematics": ">= 21.0.0 < 22.0.0", @@ -14158,6 +14075,7 @@ "integrity": "sha512-KunSNx+TVpkAw/6ULfhnx+HWRecjqZGTOyquAoWHYLRSdK1tB5Ihce1ZW+UY3fj33bYAFWPu7W/GRSmmrCGuxA==", "dev": true, "license": "MPL-2.0", + "peer": true, "engines": { "node": ">=4" } @@ -14461,6 +14379,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", @@ -15417,6 +15336,7 @@ "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -15587,6 +15507,7 @@ "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -16162,6 +16083,7 @@ "resolved": "https://registry.npmjs.org/echarts/-/echarts-6.0.0.tgz", "integrity": "sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "tslib": "2.3.0", "zrender": "6.0.0" @@ -16604,6 +16526,7 @@ "integrity": "sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", @@ -16673,6 +16596,7 @@ "integrity": "sha512-8TWzg02zmnBdZwCkWLi8jhzqXI+fE7Z/RwV8SL6xD45tJ8Bp3wGuYL2XtQgfe/Wd0eBqOUX+s6ey73IyszvKTA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/utils": "^8.58.2", "natural-orderby": "^5.0.0" @@ -16690,6 +16614,7 @@ "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", "dev": true, "license": "MIT", + "peer": true, "peerDependencies": { "eslint": ">=2.0.0" } @@ -17171,6 +17096,7 @@ "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.1", @@ -17576,7 +17502,8 @@ "version": "7.5.0", "resolved": "https://registry.npmjs.org/flag-icons/-/flag-icons-7.5.0.tgz", "integrity": "sha512-kd+MNXviFIg5hijH766tt+3x76ele1AXlo4zDdCxIvqWZhKt4T83bOtxUOOMlTx/EcFdUMH5yvQgYlFh1EqqFg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/flat": { "version": "5.0.2", @@ -18061,6 +17988,7 @@ "resolved": "https://registry.npmjs.org/google-libphonenumber/-/google-libphonenumber-3.2.44.tgz", "integrity": "sha512-9p2TghluF2LTChFMLWsDRD5N78SZDsILdUk4gyqYxBXluCyxoPiOq+Fqt7DKM+LUd33+OgRkdrc+cPR93AypCQ==", "license": "(MIT AND Apache-2.0)", + "peer": true, "engines": { "node": ">=0.10" } @@ -18098,7 +18026,8 @@ "url": "https://www.venmo.com/adumesny" } ], - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/handle-thing": { "version": "2.0.1", @@ -19428,6 +19357,7 @@ "integrity": "sha512-j1n1IuTX1VQjIy3tT7cyGbX7nvQOsFLoIqobZv4ttI5axP923gA44zUj6miiA6R5Aoms4sEGVIIcucXUbRI14g==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", @@ -19579,6 +19509,7 @@ "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cli-truncate": "^5.0.0", "colorette": "^2.0.20", @@ -20088,6 +20019,7 @@ "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", "dev": true, "license": "MIT", + "peer": true, "bin": { "marked": "bin/marked.js" }, @@ -20709,6 +20641,7 @@ "integrity": "sha512-IZGxuF226GF0d8FOZIfPvHsyBl53PrDEg/IB2+CVamsm3r4+gUw3mBp27eygpowBpdVLG0Sm2IbUiH4aSspzyA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@ampproject/remapping": "^2.3.0", "@rollup/plugin-json": "^6.1.0", @@ -21267,6 +21200,7 @@ "resolved": "https://registry.npmjs.org/ngx-image-cropper/-/ngx-image-cropper-9.1.6.tgz", "integrity": "sha512-b250YJ+jZovfqIj8vdEOrpEFay34be5f1Hpvg6Db68VMlvdyyuzboJdR0gCupbXtVcG6qQ86L7YG+SYxXJwApw==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -23497,6 +23431,7 @@ "dev": true, "inBundle": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -23664,6 +23599,7 @@ "resolved": "https://registry.npmjs.org/ol/-/ol-10.9.0.tgz", "integrity": "sha512-svbbgVQUmEHaKpLQ8kRySojs59Brvgl2zYIrqG9eQNXGfsbi55rQasZIDpwpQzDL6OlzrUb0H4hQaiX9wDoGmA==", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@types/rbush": "4.0.0", "earcut": "^3.0.0", @@ -23682,6 +23618,7 @@ "resolved": "https://registry.npmjs.org/ol-ext/-/ol-ext-4.0.38.tgz", "integrity": "sha512-fJmMcUYV8tfNhaHTl93eV1esBo1L8QHdOjJsBzapomgpmXiW7PGv91i6tmvXU4mL2z0gFrupuzs8BMLGi6T0QQ==", "license": "BSD-3-Clause", + "peer": true, "peerDependencies": { "ol": ">= 5.3.0" } @@ -23691,6 +23628,7 @@ "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-13.4.1.tgz", "integrity": "sha512-da4FKZUXoXMzK5ADeRHAXzd3bTeiKg/Y9LBOTB6qNTP62MQm93y6ISrIXzOS9atfGgQMEHJ2pCgP272IMeZCXA==", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@maplibre/maplibre-gl-style-spec": "^24.4.1", "mapbox-to-css-font": "^3.2.0" @@ -24510,6 +24448,7 @@ "integrity": "sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "playwright-core": "cli.js" }, @@ -24576,6 +24515,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -24751,6 +24691,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=12.0" }, @@ -24764,6 +24705,7 @@ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -24795,6 +24737,7 @@ "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -25522,6 +25465,7 @@ "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -25668,6 +25612,7 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "license": "Apache-2.0", + "peer": true, "dependencies": { "tslib": "^2.1.0" } @@ -25692,6 +25637,7 @@ "integrity": "sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -25829,6 +25775,7 @@ "integrity": "sha512-WRgl5GcypwramYX4HV+eQGzUbD7UUbljVmS+5G1uMwX/wLgYuJAxGeerXJDMO2xshng4+FXqCgyB5QfClV6WjA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/error": "^4.0.0", @@ -27038,6 +26985,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-syntax-patches-for-csstree": "^1.0.19", @@ -27092,6 +27040,7 @@ "integrity": "sha512-H88kCC+6Vtzj76NsC8rv6x/LW8slBzIbyeSjsKVlS+4qaEJoDrcJR4L+8JdrR2ORdTscrBzYWiiT2jq6leYR1Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "css-tree": "^3.0.1", "is-plain-object": "^5.0.0", @@ -27583,6 +27532,7 @@ "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", @@ -27930,7 +27880,8 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/tsx": { "version": "4.21.0", @@ -27938,6 +27889,7 @@ "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" @@ -28573,6 +28525,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -28587,6 +28540,7 @@ "integrity": "sha512-xqDcFVBmlrltH64lklOVp1wYxgJr6LVdg3NamBgH2OOQDLFdTKfIZXF5PfghrnXQKXZGTQs8tr1vL7fJvq8CTQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/eslint-plugin": "8.59.1", "@typescript-eslint/parser": "8.59.1", @@ -28931,6 +28885,7 @@ "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -29490,6 +29445,7 @@ "integrity": "sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/expect": "4.1.5", "@vitest/mocker": "4.1.5", @@ -29644,6 +29600,7 @@ "integrity": "sha512-5DeICTX8BVgNp6afSPYXAFjskIgWGlygQH58bcozPOXgo2r/6xx39Y1+cULZ3gTxUYQP88jmwLj2anu4Xaq84g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -29723,6 +29680,7 @@ "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", @@ -30579,6 +30537,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -30777,6 +30736,7 @@ "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -30843,6 +30803,7 @@ "@angular/common": "21", "@angular/core": "21", "@module-federation/enhanced": "^2.0.0", + "@module-federation/runtime": "^2.0.0", "@siemens/element-ng": "49.7.0", "@siemens/element-theme": "49.7.0", "gridstack": "^12.3.3" @@ -30863,6 +30824,7 @@ "name": "@siemens/element-ng", "version": "49.7.0", "license": "MIT", + "peer": true, "peerDependencies": { "@angular/cdk": "21", "@angular/common": "21", @@ -30907,7 +30869,8 @@ "projects/element-theme": { "name": "@siemens/element-theme", "version": "49.7.0", - "license": "MIT" + "license": "MIT", + "peer": true }, "projects/element-translate-cli": { "name": "@siemens/element-translate-cli", @@ -30924,6 +30887,7 @@ "name": "@siemens/element-translate-ng", "version": "49.7.0", "license": "MIT", + "peer": true, "peerDependencies": { "@angular/common": "21", "@angular/core": "21", @@ -30960,7 +30924,7 @@ "peerDependencies": { "@angular/common": "21", "@angular/core": "21", - "@babel/standalone": "7.29.2", + "@babel/standalone": "7.29.3", "react": "18 || 19", "react-dom": "18 || 19", "vue": "3", diff --git a/projects/element-ng/tsconfig.lib.json b/projects/element-ng/tsconfig.lib.json index c40f2e4826..8931c848e5 100644 --- a/projects/element-ng/tsconfig.lib.json +++ b/projects/element-ng/tsconfig.lib.json @@ -4,6 +4,7 @@ "outDir": "../../out-tsc/lib", "declaration": true, "inlineSources": true, + "ignoreDeprecations": "5.0", "types": ["@siemens/element-translate-ng/localize-types"] }, "angularCompilerOptions": { diff --git a/projects/element-ng/tsconfig.schematics.json b/projects/element-ng/tsconfig.schematics.json index 86580d59c7..01c95d92c2 100644 --- a/projects/element-ng/tsconfig.schematics.json +++ b/projects/element-ng/tsconfig.schematics.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.json", "compilerOptions": { "baseUrl": ".", + "ignoreDeprecations": "5.0", "moduleResolution": "node", "noEmitOnError": true, "rootDir": "schematics", diff --git a/projects/element-ng/weather-widget/index.ts b/projects/element-ng/weather-widget/index.ts new file mode 100644 index 0000000000..7e1a213e3e --- /dev/null +++ b/projects/element-ng/weather-widget/index.ts @@ -0,0 +1 @@ +export * from './public-api'; diff --git a/projects/element-ng/weather-widget/lib/si-weather-widget.component.html b/projects/element-ng/weather-widget/lib/si-weather-widget.component.html new file mode 100644 index 0000000000..c58c8a2681 --- /dev/null +++ b/projects/element-ng/weather-widget/lib/si-weather-widget.component.html @@ -0,0 +1,98 @@ + +
+
+ {{ todaysTemp() }} +
+
+ + @if (todayIconTemplate()) { + + } @else if (todaysIconUrl()) { + + } @else if (todaysIcon()) { + + } + {{ todaysWeather() }} + @if (showMinMax()) { +
+ {{ minTemp() }} + {{ maxTemp() }} +
+ } +
+
+ + +@if (showAdditionalData()) { +
+
+ Precip + {{ additionalData().precip }} +
+
+ Wind + {{ additionalData().wind }} +
+
+ UVI + {{ additionalData().uvi }} {{ additionalData().uviLabel }} +
+
+ Feels Like + {{ additionalData().feelsLike }} +
+
+} + + +@if (showForecast() && forecast().length > 0) { + @if (layout() === 'vertical') { +
+ @for (day of forecast(); track day.day; let i = $index) { +
+ {{ day.day }} + +
+ @if (forecastIconTemplate()) { + + } @else if (day.iconUrl) { + + } @else if (day.icon) { + + } +
+ @for (col of forecastColumns(); track col.icon; let colIdx = $index) { +
+ + {{ col.values[i] }} +
+ } +
+ {{ day.minTemp }} + {{ day.maxTemp }} +
+
+ } +
+ } @else { +
+ @for (day of forecast(); track day.day; let i = $index) { +
+ {{ day.day }} + + @if (forecastIconTemplate()) { + + } @else if (day.iconUrl) { + + } @else if (day.icon) { + + } +
+ {{ day.minTemp }} + {{ day.maxTemp }} +
+
+ } +
+ } +} diff --git a/projects/element-ng/weather-widget/lib/si-weather-widget.component.scss b/projects/element-ng/weather-widget/lib/si-weather-widget.component.scss new file mode 100644 index 0000000000..c1e906e388 --- /dev/null +++ b/projects/element-ng/weather-widget/lib/si-weather-widget.component.scss @@ -0,0 +1,241 @@ +@use '@siemens/element-theme/src/styles/variables'; +@use 'sass:map'; + +:host { + display: flex; + flex-direction: column; + padding: map.get(variables.$spacers, 6); + container-type: inline-size; +} + +// --- Sections use spacing-9 (32px) gap between them --- + +.weather-additional { + margin-block-start: map.get(variables.$spacers, 9); +} + +.weather-forecast-table { + margin-block-start: map.get(variables.$spacers, 9); +} + +.weather-forecast-columns { + margin-block-start: map.get(variables.$spacers, 9); +} + +// --- Today header --- + +.weather-today { + display: flex; + align-items: flex-start; + justify-content: space-between; +} + +.weather-temp-display { + font-family: var(--element-font-family-display); + font-size: var(--element-font-size-display-xl, 56px); + line-height: var(--element-font-line-height-display-1, 72px); + font-weight: 400; +} + +.weather-today-details { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 4px; +} + +.weather-today-icon { + font-size: 40px; +} + +.weather-today-icon-img { + width: 40px; + height: 40px; + object-fit: contain; +} + +.weather-today-description { + font-size: 16px; + line-height: 20px; + text-align: end; +} + +.weather-minmax { + display: flex; + gap: 4px; + font-size: 16px; + line-height: 20px; +} + +.weather-minmax--sm { + font-size: 14px; + line-height: 16px; +} + +// --- Additional data --- + +.weather-additional { + display: flex; + flex-direction: column; + gap: map.get(variables.$spacers, 4); +} + +.weather-additional-row { + display: flex; + justify-content: space-between; + align-items: flex-start; + font-size: 14px; + line-height: 16px; + text-align: end; +} + +// --- Vertical forecast table --- + +.weather-forecast-table { + display: flex; + flex-direction: column; + gap: map.get(variables.$spacers, 4); +} + +.weather-forecast-row { + display: flex; + align-items: center; + gap: map.get(variables.$spacers, 6); + height: 32px; +} + +// Fixed columns +.weather-forecast-day { + flex: 0 0 44px; + font-size: 14px; + line-height: 16px; + white-space: nowrap; +} + +.weather-forecast-icon-cell { + flex: 0 0 20px; + display: flex; + align-items: center; + justify-content: center; +} + +.weather-forecast-icon { + font-size: 20px; +} + +.weather-forecast-icon-img { + width: 20px; + height: 20px; + object-fit: contain; +} + +// Flexible columns — expand evenly +.weather-forecast-cell { + display: flex; + align-items: center; + gap: map.get(variables.$spacers, 1); + flex: 1 1 0; + min-width: 0; + justify-content: flex-end; + font-size: 14px; + line-height: 16px; +} + +.weather-forecast-meta-icon { + font-size: 16px; + color: var(--element-text-secondary); +} + +.weather-forecast-row .weather-minmax { + flex: 1 1 0; + min-width: 0; + justify-content: flex-end; +} + +// --- Horizontal forecast columns --- + +.weather-forecast-columns { + display: flex; +} + +.weather-forecast-col { + display: flex; + flex-direction: column; + align-items: center; + gap: map.get(variables.$spacers, 4); + flex: 1 1 0; + min-width: 0; + padding-block: map.get(variables.$spacers, 2); +} + +.weather-forecast-col .weather-forecast-day { + width: auto; + text-align: center; +} + +.weather-forecast-col-icon { + font-size: 24px; +} + +.weather-forecast-col-icon-img { + width: 24px; + height: 24px; + object-fit: contain; +} + +.weather-forecast-col .weather-minmax { + justify-content: center; +} + +// --- Responsive: container queries --- +// Vertical: hide optional data columns, keep day + icon + temp +// Horizontal: hide day columns from end, keep icon + temp per column + +// Vertical: below 280px hide first optional column +@container (max-width: 280px) { + .weather-forecast-col-1 { + display: none; + } +} + +// Vertical: below 220px hide all optional columns +@container (max-width: 220px) { + .weather-forecast-col-1, + .weather-forecast-col-2 { + display: none; + } +} + +// Vertical: below 160px hide forecast icon too +@container (max-width: 160px) { + .weather-forecast-col-1, + .weather-forecast-col-2 { + display: none; + } + + .weather-forecast-icon-cell { + display: none; + } +} + +// Horizontal: progressively hide day columns from the end +@container (max-width: 340px) { + .weather-forecast-col[data-col-index="4"] { + display: none; + } +} + +@container (max-width: 280px) { + .weather-forecast-col[data-col-index="3"], + .weather-forecast-col[data-col-index="4"] { + display: none; + } +} + +@container (max-width: 220px) { + .weather-forecast-col[data-col-index="2"], + .weather-forecast-col[data-col-index="3"], + .weather-forecast-col[data-col-index="4"] { + display: none; + } +} diff --git a/projects/element-ng/weather-widget/lib/si-weather-widget.component.ts b/projects/element-ng/weather-widget/lib/si-weather-widget.component.ts new file mode 100644 index 0000000000..0ebe50cf3a --- /dev/null +++ b/projects/element-ng/weather-widget/lib/si-weather-widget.component.ts @@ -0,0 +1,65 @@ +import { ChangeDetectionStrategy, Component, input, TemplateRef, contentChild } from '@angular/core'; +import { NgTemplateOutlet } from '@angular/common'; +import { SiIconComponent } from '@siemens/element-ng/icon'; + +export type WeatherLayout = 'vertical' | 'horizontal'; + +export interface WeatherForecastColumn { + icon: string; + values: string[]; +} + +export interface WeatherForecastDay { + day: string; + icon?: string; + iconUrl?: string; + minTemp: string; + maxTemp: string; +} + +export interface WeatherAdditionalData { + precip: string; + wind: string; + uvi: string; + uviLabel: string; + feelsLike: string; +} + +@Component({ + selector: 'si-weather-widget', + standalone: true, + imports: [SiIconComponent, NgTemplateOutlet], + templateUrl: './si-weather-widget.component.html', + styleUrls: ['./si-weather-widget.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + host: { + '[class]': '"weather-widget weather-widget--" + layout()' + } +}) +export class SiWeatherWidgetComponent { + readonly layout = input('vertical'); + readonly todaysTemp = input('26°'); + readonly todaysWeather = input('Sunny'); + readonly todaysIcon = input('element-sun'); + readonly todaysIconUrl = input(undefined); + readonly minTemp = input('11°'); + readonly maxTemp = input('18°'); + readonly showMinMax = input(true); + readonly showForecast = input(true); + readonly showAdditionalData = input(false); + readonly forecast = input([]); + readonly forecastColumns = input([]); + readonly additionalData = input({ + precip: '0%', + wind: '7km/h', + uvi: '0', + uviLabel: 'low', + feelsLike: '20°' + }); + + /** Custom template for rendering today's weather icon. Context: { $implicit: todaysIcon | todaysIconUrl } */ + readonly todayIconTemplate = contentChild>('todayIcon'); + + /** Custom template for rendering forecast day icons. Context: { $implicit: day } */ + readonly forecastIconTemplate = contentChild>('forecastIcon'); +} diff --git a/projects/element-ng/weather-widget/ng-package.json b/projects/element-ng/weather-widget/ng-package.json new file mode 100644 index 0000000000..ed278942e8 --- /dev/null +++ b/projects/element-ng/weather-widget/ng-package.json @@ -0,0 +1,6 @@ +{ + "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json", + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/projects/element-ng/weather-widget/public-api.ts b/projects/element-ng/weather-widget/public-api.ts new file mode 100644 index 0000000000..a18d0a77cc --- /dev/null +++ b/projects/element-ng/weather-widget/public-api.ts @@ -0,0 +1,7 @@ +export { SiWeatherWidgetComponent } from './lib/si-weather-widget.component'; +export type { + WeatherLayout, + WeatherForecastDay, + WeatherForecastColumn, + WeatherAdditionalData +} from './lib/si-weather-widget.component'; diff --git a/tsconfig.json b/tsconfig.json index efcca99b18..1102240ab6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,6 +3,7 @@ "compilerOptions": { "baseUrl": "./", "types": [], + "ignoreDeprecations": "5.0", "sourceMap": true, "esModuleInterop": true, "declaration": false,