diff --git a/package-lock.json b/package-lock.json index 8f4f9c3c2..ce03eb2ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -434,6 +434,7 @@ "integrity": "sha512-gB564h/kZ7siWvgHDETU++sk5e25qFfVaizLaa6KoBEYFP6dOCiedz15LTcA0TsXp0rGu6Z6zkl291iSM1qzDA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@angular-eslint/bundled-angular-compiler": "20.3.0", "eslint-scope": "^8.0.2" @@ -463,6 +464,7 @@ "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.3.4.tgz", "integrity": "sha512-b+vFsTtMYtOrcZZLXB4BxuErbrLlShFT6khTvkwu/pFK8ri3tasyJGkeKRZJHao5ZsWdZSqV2mRwzg7vphchnA==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -577,6 +579,7 @@ "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.2.8.tgz", "integrity": "sha512-r2GzcgwkRETKUmFhGfmT+T0RYRcYb/JrpADTnUG3sOkHY+05r7YGkmmXMjUIB0nVERqVuFBM1mKVcIFp9SJDmQ==", "license": "MIT", + "peer": true, "dependencies": { "parse5": "^8.0.0", "tslib": "^2.3.0" @@ -593,6 +596,7 @@ "integrity": "sha512-UA843Mh5uHIWnrzKUotGmhJmvefyEizFS7X8xJEUJsX5pa1EKUB/145rKHoLHxRRpHGxFcXtvciJCksFz1lSBA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@angular-devkit/architect": "0.2003.5", "@angular-devkit/core": "20.3.5", @@ -627,6 +631,7 @@ "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.4.tgz", "integrity": "sha512-hBQahyiHEAtc30a8hPOuIWcUL7j8189DC0sX4RiBd/wtvzH4Sd3XhguxyZAL6gHgNZEQ0nKy0uAfvWB/79GChQ==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -643,6 +648,7 @@ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.4.tgz", "integrity": "sha512-ISfEyn5ppWOP2hyZy0/IFEcQOaq5x1mXVZ2CRCxTpWyXYzavj27Ahr3+LQHPVV0uTNovlENyPAUnrzW+gLxXEw==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -656,6 +662,7 @@ "integrity": "sha512-FwEv+QM9tEMXDMd2V+j82VLOjJVUrI7ENz/LJa2p/YEGVJQkT3HVca5qJj+8I+7bfPEY/d46R/cmjjqMqUcYdg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "7.28.3", "@jridgewell/sourcemap-codec": "^1.4.14", @@ -688,6 +695,7 @@ "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.4.tgz", "integrity": "sha512-qLYVXcpSBmsA/9fITB1cT2y37V1Yo3ybWEwvafnbAh8izabrMV0hh+J9Ajh9bPk092T7LS8Xt9eTu0OquBXkbw==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -713,6 +721,7 @@ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.4.tgz", "integrity": "sha512-gPbI2iIvVA2jhwjTg7e3j/JqCFIpRSPgzW/wi5q7LrGBm7XKHNzY5xlEVDNvdq+gC4HTius9GOIx9I0i8mjrEw==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -731,6 +740,7 @@ "resolved": "https://registry.npmjs.org/@angular/material/-/material-20.2.8.tgz", "integrity": "sha512-JexykfKGTM+oepHZVVPRGCJOs1PWVzdvzonSJ3xuchkNeUZPbrGlWb+wZj84RgpjSGj4ktJ1artrVH/yvLPuhw==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -763,6 +773,7 @@ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.4.tgz", "integrity": "sha512-8eoHC+vk7scb24qjlpsirkh1Q17uFyWdhl+u92XNjvimtZRY96oDZeFEDPoexPqtKUQcCOpEPbL8P/IbpBsqYQ==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -785,6 +796,7 @@ "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.4.tgz", "integrity": "sha512-qMVurWXVplYeHBKOWtQFtD+MfwOc0i/VJaFPGdiM5mDlfhtsg3OHcZBbSTmQW02l/4YimF5Ee3+pac279p+g1A==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -803,6 +815,7 @@ "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-20.3.4.tgz", "integrity": "sha512-+hdQkDMoqQhmmS1hhLeUsn9na7gOS4NxvCg7y7ROEquoS24FhnVFOp9GS2K6PaNHhGVzbrBwBopew9QVRKyMyQ==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -849,7 +862,6 @@ "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.13.0.tgz", "integrity": "sha512-8oF6nj02qX7eE/6+wFT5NluXRHc05AgdCC3fJnkjiJooq8u7BcLmxaYYSwc2AfEkWRMRi6Eyvvbeqk4U4412Ag==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.8.0" } @@ -885,6 +897,7 @@ "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", @@ -1104,7 +1117,6 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -1172,7 +1184,6 @@ "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.2.0.tgz", "integrity": "sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==", "license": "MIT", - "peer": true, "engines": { "node": ">=14" } @@ -1916,7 +1927,6 @@ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", "license": "MIT", - "peer": true, "dependencies": { "@floating-ui/utils": "^0.2.10" } @@ -1926,7 +1936,6 @@ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", "license": "MIT", - "peer": true, "dependencies": { "@floating-ui/core": "^1.7.3", "@floating-ui/utils": "^0.2.10" @@ -1996,6 +2005,7 @@ "resolved": "https://registry.npmjs.org/@igo2/auth/-/auth-20.0.0.tgz", "integrity": "sha512-TKbBIYVIpcqsKv4pog3PnSMJbN4N0PZN8Es5AkZzbR4hYqX+9sZqKI+FKLvcEj+CMm/kXU7G81TqocMHxkm4sA==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.6.0" }, @@ -2025,6 +2035,7 @@ "resolved": "https://registry.npmjs.org/@igo2/common/-/common-20.0.0.tgz", "integrity": "sha512-CAFs6eJ2+8JdR5/Yf9ALPQGAnMpb7apzdpdCmo/Pv8Ewg2JgV5Gz9BVz7CdYi5IGZyFESCzIhOL407TgXVx/Mw==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.6.0" }, @@ -2053,6 +2064,7 @@ "resolved": "https://registry.npmjs.org/@igo2/context/-/context-20.0.0.tgz", "integrity": "sha512-WfU/LL+MEF/DOdQJCzZ4pJMXY/Mq8E8bC9mAfIVDUWcDXjtmwZ+zv4AcI5Bz728EVg19sRVqGIHGjejt35sbbA==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.6.0" }, @@ -2080,6 +2092,7 @@ "resolved": "https://registry.npmjs.org/@igo2/core/-/core-20.0.0.tgz", "integrity": "sha512-am9TRUEAamMO9lD7DG+vyYGwCB7rD8oWO1YjoDkbbDh/pBCtgjP0uoZSzJe6FeNb9gQJAL1GkENcI3evQuCHJA==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.6.0" }, @@ -2106,6 +2119,7 @@ "resolved": "https://registry.npmjs.org/@igo2/geo/-/geo-20.0.0.tgz", "integrity": "sha512-hUgtmAbCbp7Np+H+Dyz5nNUhzKF0AuZ/VncSHsbvHITGuIPvu4U1R2KErrZg1oeXOfNHfWOg7m/fMpE8DIe+ew==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.8.0" }, @@ -2198,6 +2212,7 @@ "resolved": "https://registry.npmjs.org/@igo2/utils/-/utils-20.0.0.tgz", "integrity": "sha512-o16CY2EmaQzfrCMcIMrw68fel3GlrJsnyDD7sj8rYFx4poR5+mR7OpMGdWgv91/Z8O22QAbcwDh/fhp6zmvTqQ==", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.6.0" }, @@ -2444,6 +2459,7 @@ "integrity": "sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@inquirer/checkbox": "^4.2.1", "@inquirer/confirm": "^5.1.14", @@ -2865,7 +2881,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", - "peer": true, "engines": { "node": ">= 0.6" } @@ -2874,15 +2889,13 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", - "license": "BSD-2-Clause", - "peer": true + "license": "BSD-2-Clause" }, "node_modules/@maplibre/maplibre-gl-style-spec": { "version": "23.3.0", "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-23.3.0.tgz", "integrity": "sha512-IGJtuBbaGzOUgODdBRg66p8stnwj9iDXkgbYKoYcNiiQmaez5WVRfXm4b03MCDwmZyX93csbfHFWEJJYHnn5oA==", "license": "ISC", - "peer": true, "dependencies": { "@mapbox/jsonlint-lines-primitives": "~2.0.2", "@mapbox/unitbezier": "^0.0.1", @@ -3721,6 +3734,7 @@ "integrity": "sha512-t54CUOsFMappY1Jbzb7fetWeO0n6K0k/4+/ZpkS+3Joz8I4VcvY9OiEBFRYISqaI2fq5sCiPtAjRDOzVYG8m+Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.2", @@ -4568,8 +4582,7 @@ "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz", "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==", "hasInstallScript": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/@schematics/angular": { "version": "20.3.5", @@ -5033,7 +5046,6 @@ "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.19.0.tgz", "integrity": "sha512-E3H6R+tX7sYMIjfCRAMO0qIH43dtUqv2rSo0vv6eHDi4lDXtlDc+Vb67n4VIesT7YVxQD7GIkNhMk3hmRDIwww==", "license": "MIT", - "peer": true, "dependencies": { "@sentry/core": "10.19.0" }, @@ -5046,7 +5058,6 @@ "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.19.0.tgz", "integrity": "sha512-AJ8rpzNYgfmWzovmFss51q9FtBaa2qYTLwkbVdTf58fZbLMUrgZ6qf9qMk0ePiS3nB87w9+mpbLzRObYOsK9RA==", "license": "MIT", - "peer": true, "dependencies": { "@sentry/core": "10.19.0" }, @@ -5059,7 +5070,6 @@ "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.19.0.tgz", "integrity": "sha512-bOWsm/t+d2LCYa3gUjgwFds6kKSW+K6i4pssgDY4XiV/MxHsQtQ2rbHX80chLRQe2HFCX2njvjVSJN+Nsdjmpg==", "license": "MIT", - "peer": true, "dependencies": { "@sentry-internal/browser-utils": "10.19.0", "@sentry/core": "10.19.0" @@ -5073,7 +5083,6 @@ "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.19.0.tgz", "integrity": "sha512-DulLU4lvtrGPExKtpbCveLxPACrFmGx4eEYhzIn35UH8iIx6ONRSLemQyiUJQoLau7KXJy0I8AWxN+SagfebEA==", "license": "MIT", - "peer": true, "dependencies": { "@sentry-internal/replay": "10.19.0", "@sentry/core": "10.19.0" @@ -5108,7 +5117,6 @@ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.19.0.tgz", "integrity": "sha512-/+B84qFOLg1vJhg4YSA4a7Pneq5Pbt1BXEdrp/UW4tJmtGPZb28qXlMdoPfmFWZgVezrawaPkxLmbu+47/+rsQ==", "license": "MIT", - "peer": true, "dependencies": { "@sentry-internal/browser-utils": "10.19.0", "@sentry-internal/feedback": "10.19.0", @@ -5125,7 +5133,6 @@ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.19.0.tgz", "integrity": "sha512-OqZjYDYsK6ZmBG5UzML0uKiKq//G6mMwPcszfuCsFgPt+pg5giUCrCUbt5VIVkHdN1qEEBk321JO2haU5n2Eig==", "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -5328,7 +5335,6 @@ "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.2.0.tgz", "integrity": "sha512-wzHEjCXlYZiDludDbXkpBSmv8Zu6tPGLmJ1sXQ6qDwpLE1Ew3mcWqt8AaxfTP5QwDNQa3sf2vvgTEzNbPQkCiA==", "license": "MIT", - "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@turf/meta": "^7.2.0", @@ -5344,7 +5350,6 @@ "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-7.2.0.tgz", "integrity": "sha512-xdz+pYKkLMuqkNeJ6EF/3OdAiJdiHhcHCV0ykX33NIuALKIEpKik0+NdxxNsZsivOW6keKwr61SI+gcVtHYcnQ==", "license": "MIT", - "peer": true, "dependencies": { "@turf/boolean-point-in-polygon": "^7.2.0", "@turf/helpers": "^7.2.0", @@ -5380,7 +5385,6 @@ "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-7.2.0.tgz", "integrity": "sha512-lvEOjxeXIp+wPXgl9kJA97dqzMfNexjqHou+XHVcfxQgolctoJiRYmcVCWGpiZ9CBf/CJha1KmD1qQoRIsjLaA==", "license": "MIT", - "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@turf/invariant": "^7.2.0", @@ -5417,7 +5421,6 @@ "resolved": "https://registry.npmjs.org/@turf/center/-/center-7.2.0.tgz", "integrity": "sha512-UTNp9abQ2kuyRg5gCIGDNwwEQeF3NbpYsd1Q0KW9lwWuzbLVNn0sOwbxjpNF4J2HtMOs5YVOcqNvYyuoa2XrXw==", "license": "MIT", - "peer": true, "dependencies": { "@turf/bbox": "^7.2.0", "@turf/helpers": "^7.2.0", @@ -5433,7 +5436,6 @@ "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-7.2.0.tgz", "integrity": "sha512-JlGUT+/5qoU5jqZmf6NMFIoLDY3O7jKd53Up+zbpJ2vzUp6QdwdNzwrsCeONhynWM13F0MVtPXH4AtdkrgFk4g==", "license": "MIT", - "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@types/geojson": "^7946.0.10", @@ -5448,7 +5450,6 @@ "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-7.2.0.tgz", "integrity": "sha512-HBjjXIgEcD/wJYjv7/6OZj5yoky2oUvTtVeIAqO3lL80XRvoYmVg6vkOIu6NswkerwLDDNT9kl7+BFLJoHbh6Q==", "license": "MIT", - "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@turf/invariant": "^7.2.0", @@ -5464,7 +5465,6 @@ "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-7.2.0.tgz", "integrity": "sha512-jyMXg93J1OI7/65SsLE1k9dfQD3JbcPNMi4/O3QR2Qb3BAs2039oFaSjtW+YqhMqVC4V3ZeKebMcJ8h9sK1n+A==", "license": "MIT", - "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@turf/meta": "^7.2.0", @@ -5511,7 +5511,6 @@ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-7.2.0.tgz", "integrity": "sha512-kV4u8e7Gkpq+kPbAKNC21CmyrXzlbBgFjO1PhrHPgEdNqXqDawoZ3i6ivE3ULJj2rSesCjduUaC/wyvH/sNr2Q==", "license": "MIT", - "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@types/geojson": "^7946.0.10", @@ -5526,7 +5525,6 @@ "resolved": "https://registry.npmjs.org/@turf/jsts/-/jsts-2.7.2.tgz", "integrity": "sha512-zAezGlwWHPyU0zxwcX2wQY3RkRpwuoBmhhNE9HY9kWhFDkCxZ3aWK5URKwa/SWKJbj9aztO+8vtdiBA28KVJFg==", "license": "(EDL-1.0 OR EPL-1.0)", - "peer": true, "dependencies": { "jsts": "2.7.1" } @@ -5552,7 +5550,6 @@ "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.2.0.tgz", "integrity": "sha512-igzTdHsQc8TV1RhPuOLVo74Px/hyPrVgVOTgjWQZzt3J9BVseCdpfY/0cJBdlSRI4S/yTmmHl7gAqjhpYH5Yaw==", "license": "MIT", - "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@types/geojson": "^7946.0.10" @@ -5566,7 +5563,6 @@ "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-7.2.0.tgz", "integrity": "sha512-0wmsqXZ8CGw4QKeZmS+NdjYTqCMC+HXZvM3XAQIU6k6laNLqjad2oS4nDrtcRs/nWDvcj1CR+Io7OiQ6sbpn5Q==", "license": "MIT", - "peer": true, "dependencies": { "@turf/clone": "^7.2.0", "@turf/distance": "^7.2.0", @@ -5603,7 +5599,6 @@ "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-7.2.0.tgz", "integrity": "sha512-9jeTN3LiJ933I5sd4K0kwkcivOYXXm1emk0dHorwXeSFSHF+nlYesEW3Hd889wb9lZd7/SVLMUeX/h39mX+vCA==", "license": "MIT", - "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@turf/invariant": "^7.2.0", @@ -5619,7 +5614,6 @@ "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-7.2.0.tgz", "integrity": "sha512-/qke5vJScv8Mu7a+fU3RSChBRijE6EVuFHU3RYihMuYm04Vw8dBMIs0enEpoq0ke/IjSbleIrGQNZIMRX9EwZQ==", "license": "MIT", - "peer": true, "dependencies": { "@turf/clone": "^7.2.0", "@turf/helpers": "^7.2.0", @@ -5684,6 +5678,7 @@ "integrity": "sha512-CmyhGZanP88uuC5GpWU9q+fI61j2SkhO3UGMUdfYRE6Bcy0ccyzn1Rqj9YAB/ZY4kOXmNf0ocah5GtphmLMP6Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~7.14.0" } @@ -5699,15 +5694,13 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz", "integrity": "sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/raf": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.3.tgz", "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/rbush": { "version": "4.0.0", @@ -5736,6 +5729,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, "node_modules/@types/yauzl": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", @@ -5783,6 +5783,7 @@ "integrity": "sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.46.0", "@typescript-eslint/types": "8.46.0", @@ -5890,6 +5891,7 @@ "integrity": "sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -5933,6 +5935,7 @@ "integrity": "sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.46.0", @@ -6042,6 +6045,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6413,7 +6417,6 @@ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.6.0" } @@ -6521,7 +6524,6 @@ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", "license": "MIT", - "peer": true, "engines": { "node": "*" } @@ -6644,6 +6646,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", @@ -7390,8 +7393,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", @@ -7624,6 +7626,18 @@ "node": ">=6.6.0" } }, + "node_modules/core-js": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz", + "integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -7756,7 +7770,6 @@ "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", "license": "MIT", - "peer": true, "dependencies": { "utrie": "^1.0.2" } @@ -8124,15 +8137,13 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", - "license": "BSD-3-Clause", - "peer": true + "license": "BSD-3-Clause" }, "node_modules/d3-geo": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.7.1.tgz", "integrity": "sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "d3-array": "1" } @@ -8207,7 +8218,6 @@ "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz", "integrity": "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==", "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">=16.0.0" } @@ -8570,6 +8580,7 @@ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" @@ -8919,6 +8930,7 @@ "integrity": "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -9458,7 +9470,6 @@ "resolved": "https://registry.npmjs.org/fast-png/-/fast-png-6.4.0.tgz", "integrity": "sha512-kAqZq1TlgBjZcLr5mcN6NP5Rv4V2f22z00c3g8vRrwkcqjerx7BEhPbOnWCPqaHUl2XWQBJQvOT/FQhdMT7X/Q==", "license": "MIT", - "peer": true, "dependencies": { "@types/pako": "^2.0.3", "iobuffer": "^5.3.2", @@ -9524,8 +9535,7 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/figures": { "version": "3.2.0", @@ -10579,8 +10589,7 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/immutable": { "version": "5.1.3", @@ -10713,8 +10722,7 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/iobuffer/-/iobuffer-5.4.0.tgz", "integrity": "sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/ip-address": { "version": "10.0.1", @@ -11105,7 +11113,8 @@ "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jasmine-spec-reporter": { "version": "7.0.0", @@ -11223,8 +11232,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -11304,6 +11312,26 @@ "jspdf": "^2 || ^3" } }, + "node_modules/jspdf/node_modules/canvg": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.11.tgz", + "integrity": "sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@types/raf": "^3.4.0", + "core-js": "^3.8.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^6.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/jsprim": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", @@ -11325,7 +11353,6 @@ "resolved": "https://registry.npmjs.org/jsts/-/jsts-2.7.1.tgz", "integrity": "sha512-x2wSZHEBK20CY+Wy+BPE7MrFQHW6sIsdaGUMEqmGAio+3gFzQaBYPwLRonUfQf9Ak8pBieqj9tUofX1+WtAEIg==", "license": "(EDL-1.0 OR EPL-1.0)", - "peer": true, "engines": { "node": ">= 12" } @@ -11335,7 +11362,6 @@ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "license": "(MIT OR GPL-3.0-or-later)", - "peer": true, "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -11347,8 +11373,7 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "license": "(MIT AND Zlib)", - "peer": true + "license": "(MIT AND Zlib)" }, "node_modules/jwt-decode": { "version": "4.0.0", @@ -11366,6 +11391,7 @@ "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -11842,7 +11868,6 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "license": "MIT", - "peer": true, "dependencies": { "immediate": "~3.0.5" } @@ -11860,6 +11885,7 @@ "integrity": "sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", @@ -12395,8 +12421,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-3.2.0.tgz", "integrity": "sha512-kvsEfzvLik34BiFj+S19bv5d70l9qSdkUzrq99dvZ9d5POaLyB4vJMQmq3BoJ5D6lFG1GYnMM7o7cm5Jh8YEEg==", - "license": "BSD-2-Clause", - "peer": true + "license": "BSD-2-Clause" }, "node_modules/marked": { "version": "15.0.12", @@ -12404,6 +12429,7 @@ "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", "dev": true, "license": "MIT", + "peer": true, "bin": { "marked": "bin/marked.js" }, @@ -12479,8 +12505,7 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==", - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/math-intrinsics": { "version": "1.1.0", @@ -12549,8 +12574,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/mgrs/-/mgrs-1.0.0.tgz", "integrity": "sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.8", @@ -15848,6 +15872,7 @@ "dev": true, "inBundle": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -16140,6 +16165,7 @@ "resolved": "https://registry.npmjs.org/ol/-/ol-10.6.0.tgz", "integrity": "sha512-rNnSROaU1du+hFFvA+3AC6Y9NrJpsCJw65r0YtZaoyfKmpPkF7CZZhLLxrC4J3MRWKKEMT0JQkZ0wfc1+hiXjg==", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@types/rbush": "4.0.0", "earcut": "^3.0.0", @@ -17013,7 +17039,6 @@ "resolved": "https://registry.npmjs.org/point-in-polygon-hao/-/point-in-polygon-hao-1.2.4.tgz", "integrity": "sha512-x2pcvXeqhRHlNRdhLs/tgFapAbSSe86wa/eqmj1G6pWftbEs5aVRJhRGM6FYSUERKu0PjekJzMq0gsI2XyiclQ==", "license": "MIT", - "peer": true, "dependencies": { "robust-predicates": "^3.0.2" } @@ -17023,7 +17048,6 @@ "resolved": "https://registry.npmjs.org/polyclip-ts/-/polyclip-ts-0.16.8.tgz", "integrity": "sha512-JPtKbDRuPEuAjuTdhR62Gph7Is2BS1Szx69CFOO3g71lpJDFo78k4tFyi+qFOMVPePEzdSKkpGU3NBXPHHjvKQ==", "license": "MIT", - "peer": true, "dependencies": { "bignumber.js": "^9.1.0", "splaytree-ts": "^1.0.2" @@ -17095,6 +17119,7 @@ "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -17310,7 +17335,6 @@ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "license": "MIT", - "peer": true, "dependencies": { "performance-now": "^2.1.0" } @@ -17502,6 +17526,13 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT", + "optional": true + }, "node_modules/registry-auth-token": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", @@ -17656,7 +17687,6 @@ "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==", "license": "MIT OR SEE LICENSE IN FEEL-FREE.md", - "peer": true, "engines": { "node": ">= 0.8.15" } @@ -17682,8 +17712,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", - "license": "Unlicense", - "peer": true + "license": "Unlicense" }, "node_modules/rollup": { "version": "4.52.3", @@ -17772,14 +17801,14 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "license": "BSD-3-Clause", - "peer": true + "license": "BSD-3-Clause" }, "node_modules/rxjs": { "version": "7.8.2", "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" } @@ -17836,6 +17865,7 @@ "integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -17874,6 +17904,7 @@ "integrity": "sha512-phCkJ6pjDi9ANdhuF5ElS10GGdAKY6R1Pvt9lT3SFhOwM4T7QZE7MLpBDbNruUx/Q3gFD92/UOFringGipRqZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@semantic-release/commit-analyzer": "^13.0.0-beta.1", "@semantic-release/error": "^4.0.0", @@ -18227,8 +18258,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/setprototypeof": { "version": "1.2.0", @@ -18265,7 +18295,6 @@ "resolved": "https://registry.npmjs.org/shepherd.js/-/shepherd.js-14.5.1.tgz", "integrity": "sha512-VuvPvLG1QjNOLP7AIm2HGyfmxEIz8QdskvWOHwUcxLDibYWjLRBmCWd8LSL5FlwhBW7D/GU+3gNVC/ASxAWdxg==", "license": "AGPL-3.0", - "peer": true, "dependencies": { "@floating-ui/dom": "^1.7.0", "@scarf/scarf": "^1.4.0", @@ -18782,8 +18811,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/splaytree-ts/-/splaytree-ts-1.0.2.tgz", "integrity": "sha512-0kGecIZNIReCSiznK3uheYB8sbstLjCZLiwcQwbmLhgHJj2gz6OnSPkVzJQCMnmEz1BQ4gPK59ylhBoEWOhGNA==", - "license": "BDS-3-Clause", - "peer": true + "license": "BDS-3-Clause" }, "node_modules/split2": { "version": "1.0.0", @@ -18839,7 +18867,6 @@ "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz", "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.1.14" } @@ -19145,7 +19172,6 @@ "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", "license": "MIT", - "peer": true, "engines": { "node": ">=12.0.0" } @@ -19155,7 +19181,6 @@ "resolved": "https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.5.0.tgz", "integrity": "sha512-AoVmx72QHpKtItPu72TzFL+kcYjd67BPLDoR0LarIk+xyaRg+pDTMFXndIEvZf9xEKnJv6JdhgRMnocoG0D3AQ==", "license": "MIT", - "peer": true, "dependencies": { "tinyqueue": "^2.0.0" } @@ -19164,8 +19189,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==", - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/systeminformation": { "version": "5.27.7", @@ -19355,7 +19379,6 @@ "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", "license": "MIT", - "peer": true, "dependencies": { "utrie": "^1.0.2" } @@ -19455,8 +19478,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/tldts": { "version": "6.1.86", @@ -19581,7 +19603,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.20.6", @@ -19589,6 +19612,7 @@ "integrity": "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" @@ -19705,6 +19729,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -19719,6 +19744,7 @@ "integrity": "sha512-6+ZrB6y2bT2DX3K+Qd9vn7OFOJR+xSLDj+Aw/N3zBwUt27uTw2sw2TE2+UcY1RiyBZkaGbTkVg9SSdPNUG6aUw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/eslint-plugin": "8.46.0", "@typescript-eslint/parser": "8.46.0", @@ -19985,7 +20011,6 @@ "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", "license": "MIT", - "peer": true, "dependencies": { "base64-arraybuffer": "^1.0.2" } @@ -20059,6 +20084,7 @@ "integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", @@ -20229,8 +20255,7 @@ "version": "1.5.2", "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.5.2.tgz", "integrity": "sha512-1ZUiV1FTwSiSrgWzV9KXJuOF2BVW91KY/mau04BhnmgOdroRQea7Q0s5TVqwGLm0D2tZwObd/tBYXW49sSxp3Q==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/word-wrap": { "version": "1.2.5", @@ -20496,6 +20521,7 @@ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/src/app/app.component.html b/src/app/app.component.html index b9705716e..a3820e0b2 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,11 +1,11 @@ - + @if (authConfig && authConfig.url) { - + } @if (hasHeader) { - + } +/> @if (hasFooter) { - + } diff --git a/src/app/pages/portal/expansion-panel/expansion-panel-button/expansion-panel-button.component.html b/src/app/pages/portal/expansion-panel/expansion-panel-button/expansion-panel-button.component.html index 953d16a3a..23b5115c5 100644 --- a/src/app/pages/portal/expansion-panel/expansion-panel-button/expansion-panel-button.component.html +++ b/src/app/pages/portal/expansion-panel/expansion-panel-button/expansion-panel-button.component.html @@ -1,10 +1,10 @@ diff --git a/src/app/pages/portal/expansion-panel/expansion-panel-button/expansion-panel-button.component.ts b/src/app/pages/portal/expansion-panel/expansion-panel-button/expansion-panel-button.component.ts index 41baf34e8..51dd85492 100644 --- a/src/app/pages/portal/expansion-panel/expansion-panel-button/expansion-panel-button.component.ts +++ b/src/app/pages/portal/expansion-panel/expansion-panel-button/expansion-panel-button.component.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { Component, model } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; import { MatTooltipModule } from '@angular/material/tooltip'; @@ -17,11 +17,9 @@ import { IgoLanguageModule } from '@igo2/core/language'; styleUrls: ['./expansion-panel-button.component.scss'] }) export class ExpansionPanelButtonComponent { - @Input() expanded: boolean; - - @Output() expand = new EventEmitter(); + readonly expanded = model(undefined); onToggleClick(): void { - this.expand.emit(!this.expanded); + this.expanded.update((expanded) => !expanded); } } diff --git a/src/app/pages/portal/expansion-panel/expansion-panel-header.component.html b/src/app/pages/portal/expansion-panel/expansion-panel-header.component.html index e82bd2ce5..02d280f21 100644 --- a/src/app/pages/portal/expansion-panel/expansion-panel-header.component.html +++ b/src/app/pages/portal/expansion-panel/expansion-panel-header.component.html @@ -1,9 +1,6 @@
- +
- +
diff --git a/src/app/pages/portal/expansion-panel/expansion-panel-header.component.ts b/src/app/pages/portal/expansion-panel/expansion-panel-header.component.ts index 1f65049d1..e2b6efbe1 100644 --- a/src/app/pages/portal/expansion-panel/expansion-panel-header.component.ts +++ b/src/app/pages/portal/expansion-panel/expansion-panel-header.component.ts @@ -1,10 +1,8 @@ import { ChangeDetectionStrategy, Component, - EventEmitter, HostBinding, - Input, - Output + model } from '@angular/core'; import { ExpansionPanelButtonComponent } from './expansion-panel-button/expansion-panel-button.component'; @@ -17,16 +15,14 @@ import { ExpansionPanelButtonComponent } from './expansion-panel-button/expansio imports: [ExpansionPanelButtonComponent] }) export class ExpansionPanelHeaderComponent { - @Input() expanded: boolean; - - @Output() expandedChange = new EventEmitter(); + readonly expanded = model(undefined); @HostBinding('class.app-expansion-panel-header-expanded') get hasExpandedClass() { - return this.expanded; + return this.expanded(); } handleClose(): void { - this.expandedChange.emit(false); + this.expanded.set(false); } } diff --git a/src/app/pages/portal/expansion-panel/expansion-panel.component.html b/src/app/pages/portal/expansion-panel/expansion-panel.component.html index 47849da73..79f6e628b 100644 --- a/src/app/pages/portal/expansion-panel/expansion-panel.component.html +++ b/src/app/pages/portal/expansion-panel/expansion-panel.component.html @@ -1,17 +1,16 @@
- - + - +
- +
diff --git a/src/app/pages/portal/expansion-panel/expansion-panel.component.ts b/src/app/pages/portal/expansion-panel/expansion-panel.component.ts index eec7c4cb1..f766c4e1e 100644 --- a/src/app/pages/portal/expansion-panel/expansion-panel.component.ts +++ b/src/app/pages/portal/expansion-panel/expansion-panel.component.ts @@ -1,10 +1,9 @@ import { ChangeDetectionStrategy, Component, - EventEmitter, HostBinding, - Input, - Output + input, + model } from '@angular/core'; import { BackdropComponent } from '@igo2/common/backdrop'; @@ -21,45 +20,22 @@ import { showContent } from './expansion-panel.animations'; imports: [BackdropComponent, ExpansionPanelHeaderComponent] }) export class ExpansionPanelComponent { - @Input() - get expanded(): boolean { - return this._expanded; - } - set expanded(value: boolean) { - if (value === this._expanded) { - return; - } - - this._expanded = value; - this.expandedChange.emit(this._expanded); - } - private _expanded: boolean; - - @Input() maximized = false; - - @Input() - get backdropShown(): boolean { - return this._backdropShown; - } - set backdropShown(value: boolean) { - this._backdropShown = value; - } - private _backdropShown: boolean; - - @Output() expandedChange = new EventEmitter(); + readonly expanded = model(false); + readonly maximized = input(false); + readonly backdropShown = model(false); @HostBinding('class.app-expansion-panel-expanded') get hasExpandedClass() { - return this.expanded; + return this.expanded(); } @HostBinding('class.app-expansion-panel-expanded-maximized') get hasExpandedFullClass() { - return this.expanded && this.maximized; + return this.expanded() && this.maximized(); } onBackdropClick() { - this.expanded = false; - this.backdropShown = false; + this.expanded.set(false); + this.backdropShown.set(false); } } diff --git a/src/app/pages/portal/portal.component.html b/src/app/pages/portal/portal.component.html index 817ed7b53..40c1428c9 100644 --- a/src/app/pages/portal/portal.component.html +++ b/src/app/pages/portal/portal.component.html @@ -1,9 +1,6 @@ - + @@ -58,8 +53,7 @@ [(opened)]="sidenavOpened" (toolChange)="toolChanged($event)" (widthChange)="handleWidth($event)" - > - + /> + />
- + /> } @if (appConfig.homeExtentButton) { - + /> } @if (appConfig.wakeLockApiButton) { - + } @if (hasGeolocateButton) { - + /> } @if (!isTouchScreen) { - + /> }
- + /> }
- + /> @if ( appConfig.hasExpansionPanel && (workspaceState.workspaceEnabled$ | async) && - !expansionPanelExpanded + !workspaceState.expanded() ) { - + }
- - + +
- + />
-@if (expansionPanelExpanded) { +@if (workspaceState.expanded()) { - + /> @if (selectedWorkspace$ | async; as workspace) {
@@ -296,8 +276,7 @@ [color]="'primary'" [mode]="actionbarMode" [overlayClass]="workspaceMenuClass" - > - + /> } @if (workspaceVisibility()) {
} @@ -349,8 +327,7 @@ (entitySortChange)="entitySortChange()" (entitySelectChange)="entitySelectChange($event)" [template]="workspace.meta.tableTemplate" - > - + /> } {{ workspaceNotAvailableMessage | translate }} } @@ -375,8 +352,7 @@ - + /> } @@ -395,8 +371,7 @@ (openedChange)="toastOpenedChange($event)" (fullExtentEvent)="fullExtent = $event" (windowHtmlDisplayEvent)="setToastPanelHtmlDisplay($event)" - > - + /> } @@ -405,6 +380,5 @@ [withIcon]="false" [horizontal]="true" mode="context" - > - + /> diff --git a/src/app/pages/portal/portal.component.ts b/src/app/pages/portal/portal.component.ts index 1204cc55e..c15aa80c8 100644 --- a/src/app/pages/portal/portal.component.ts +++ b/src/app/pages/portal/portal.component.ts @@ -1,13 +1,15 @@ import { AsyncPipe, NgClass } from '@angular/common'; import { HttpClient } from '@angular/common/http'; import { + ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, - ViewChild, - inject + effect, + inject, + viewChild } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { @@ -174,6 +176,7 @@ import { WelcomeWindowService } from './welcome-window/welcome-window.service'; selector: 'app-portal', templateUrl: './portal.component.html', styleUrls: ['./portal.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, animations: [ expansionPanelAnimation(), toastPanelAnimation(), @@ -319,10 +322,8 @@ export class PortalComponent implements OnInit, OnDestroy { isTouchScreen: boolean; sidenavWidth: number; - @ViewChild('mapBrowser', { read: ElementRef, static: true }) - mapBrowser: ElementRef; - @ViewChild('searchBar', { read: ElementRef, static: true }) - searchBar: ElementRef; + readonly mapBrowser = viewChild('mapBrowser', { read: ElementRef }); + readonly searchBar = viewChild('searchBar', { read: ElementRef }); get map(): IgoMap { return this.mapState.map; @@ -371,18 +372,6 @@ export class PortalComponent implements OnInit, OnDestroy { ); } - get expansionPanelExpanded(): boolean { - return this.workspaceState.workspacePanelExpanded; - } - set expansionPanelExpanded(value: boolean) { - this.workspaceState.workspacePanelExpanded = value; - if (value === true) { - this.map.viewController.setPadding({ bottom: 280 }); - } else { - this.map.viewController.setPadding({ bottom: 0 }); - } - } - get contextUri(): string { return this.contextState.context$?.getValue() ? this.contextState.context$.getValue().uri @@ -390,7 +379,7 @@ export class PortalComponent implements OnInit, OnDestroy { } get expansionPanelBackdropShown(): boolean { - return this.expansionPanelExpanded && this.toastPanelForExpansionOpened; + return this.workspaceState.expanded() && this.toastPanelForExpansionOpened; } get actionbarMode(): ActionbarMode { @@ -434,6 +423,14 @@ export class PortalComponent implements OnInit, OnDestroy { } constructor() { + effect(() => { + const expanded = this.workspaceState.expanded(); + if (expanded === true) { + this.map.viewController.setPadding({ bottom: 280 }); + } else { + this.map.viewController.setPadding({ bottom: 0 }); + } + }); this.analyticsListenerService.listen(); this.handleAppConfigs(); this.storageService.set('version', getAppVersion(this.configService)); @@ -505,7 +502,7 @@ export class PortalComponent implements OnInit, OnDestroy { currentCnt !== prevCnt && this.isMobile() && this.appConfig.hasExpansionPanel && - this.expansionPanelExpanded && + this.workspaceState.expanded() && this.toastPanelOpened ) { this.toastPanelOpened = false; @@ -538,7 +535,7 @@ export class PortalComponent implements OnInit, OnDestroy { } this.workspaceState.workspaceEnabled$.next(workspaceEmpty ? false : true); if (workspaceEmpty) { - this.expansionPanelExpanded = false; + this.workspaceState.expanded.set(false); } this.updateMapBrowserClass(); }); @@ -553,7 +550,7 @@ export class PortalComponent implements OnInit, OnDestroy { (activeWks: WfsWorkspace | FeatureWorkspace | EditionWorkspace) => { if (activeWks) { this.selectedWorkspace$.next(activeWks); - this.expansionPanelExpanded = true; + this.workspaceState.expanded.set(true); if ( activeWks.layer.options.workspace?.pageSize && @@ -571,7 +568,7 @@ export class PortalComponent implements OnInit, OnDestroy { }; } } else { - this.expansionPanelExpanded = false; + this.workspaceState.expanded.set(false); } } ); @@ -898,8 +895,9 @@ export class PortalComponent implements OnInit, OnDestroy { } public toolChanged(tool: Tool) { - if (tool && tool.name === 'searchResults' && this.searchBar) { - this.searchBar.nativeElement.getElementsByTagName('input')[0].focus(); + const searchBar = this.searchBar(); + if (tool && tool.name === 'searchResults' && searchBar) { + searchBar.nativeElement.getElementsByTagName('input')[0].focus(); } } @@ -989,17 +987,13 @@ export class PortalComponent implements OnInit, OnDestroy { if ( this.isMobile() && this.appConfig.hasExpansionPanel && - this.expansionPanelExpanded && + this.workspaceState.expanded() && this.toastPanelOpened ) { - this.expansionPanelExpanded = false; + this.workspaceState.expanded.set(false); } } - handleToggleExpansionPanel(isExpanded: boolean): void { - this.expansionPanelExpanded = isExpanded; - } - public onClearSearch() { this.map.searchResultsOverlay.clear(); this.searchStore.clear(); @@ -1023,7 +1017,7 @@ export class PortalComponent implements OnInit, OnDestroy { private getClickCoordinate(event: { x: number; y: number }) { const contextmenuPoint = event; const boundingMapBrowser = - this.mapBrowser.nativeElement.getBoundingClientRect(); + this.mapBrowser().nativeElement.getBoundingClientRect(); contextmenuPoint.y = contextmenuPoint.y - boundingMapBrowser.top + @@ -1066,68 +1060,59 @@ export class PortalComponent implements OnInit, OnDestroy { updateMapBrowserClass() { const header = this.queryState.store.entities$.value.length > 0; + const classList = this.mapBrowser().nativeElement.classList; if ( this.appConfig.hasExpansionPanel && this.workspaceState.workspaceEnabled$.value ) { - this.mapBrowser.nativeElement.classList.add('has-expansion-panel'); + classList.add('has-expansion-panel'); } else { - this.mapBrowser.nativeElement.classList.remove('has-expansion-panel'); + classList.remove('has-expansion-panel'); } - if (this.appConfig.hasExpansionPanel && this.expansionPanelExpanded) { + if (this.appConfig.hasExpansionPanel && this.workspaceState.expanded()) { if (this.workspaceState.workspaceMaximize$.value) { - this.mapBrowser.nativeElement.classList.add( - 'expansion-offset-maximized' - ); - this.mapBrowser.nativeElement.classList.remove('expansion-offset'); + classList.add('expansion-offset-maximized'); + classList.remove('expansion-offset'); } else { - this.mapBrowser.nativeElement.classList.add('expansion-offset'); - this.mapBrowser.nativeElement.classList.remove( - 'expansion-offset-maximized' - ); + classList.add('expansion-offset'); + classList.remove('expansion-offset-maximized'); } } else { if (this.workspaceState.workspaceMaximize$.value) { - this.mapBrowser.nativeElement.classList.remove( - 'expansion-offset-maximized' - ); + classList.remove('expansion-offset-maximized'); } else { - this.mapBrowser.nativeElement.classList.remove('expansion-offset'); + classList.remove('expansion-offset'); } } if (this.sidenavOpened) { - this.mapBrowser.nativeElement.classList.add('sidenav-offset'); + classList.add('sidenav-offset'); } else { - this.mapBrowser.nativeElement.classList.remove('sidenav-offset'); + classList.remove('sidenav-offset'); } if (this.sidenavOpened && !this.isMobile()) { - this.mapBrowser.nativeElement.classList.add('sidenav-offset-baselayers'); + classList.add('sidenav-offset-baselayers'); } else { - this.mapBrowser.nativeElement.classList.remove( - 'sidenav-offset-baselayers' - ); + classList.remove('sidenav-offset-baselayers'); } - if (!this.toastPanelOpened && header && !this.expansionPanelExpanded) { - this.mapBrowser.nativeElement.classList.add('toast-offset-scale-line'); + if (!this.toastPanelOpened && header && !this.workspaceState.expanded()) { + classList.add('toast-offset-scale-line'); } else { - this.mapBrowser.nativeElement.classList.remove('toast-offset-scale-line'); + classList.remove('toast-offset-scale-line'); } if ( !this.toastPanelOpened && header && (this.isMobile() || this.isTablet() || this.sidenavOpened) && - !this.expansionPanelExpanded + !this.workspaceState.expanded() ) { - this.mapBrowser.nativeElement.classList.add('toast-offset-attribution'); + classList.add('toast-offset-attribution'); } else { - this.mapBrowser.nativeElement.classList.remove( - 'toast-offset-attribution' - ); + classList.remove('toast-offset-attribution'); } } @@ -1159,20 +1144,21 @@ export class PortalComponent implements OnInit, OnDestroy { } getExpansionPanelStatus() { + const isExpanded = this.workspaceState.expanded(); if (this.sidenavOpened === false) { - if (this.expansionPanelExpanded === true) { + if (isExpanded === true) { return 'full'; } return 'notTriggered'; } if (this.sidenavOpened === true && this.isMobile() === false) { - if (this.expansionPanelExpanded === true) { + if (isExpanded === true) { return 'reduced'; } return 'reducedNotTriggered'; } if (this.sidenavOpened === true && this.isMobile() === true) { - if (this.expansionPanelExpanded === true) { + if (isExpanded === true) { return 'mobile'; } else { return 'notVisible'; @@ -1182,7 +1168,7 @@ export class PortalComponent implements OnInit, OnDestroy { getToastPanelOffsetY() { let status = 'noExpansion'; - if (this.expansionPanelExpanded) { + if (this.workspaceState.expanded()) { if (this.workspaceState.workspaceMaximize$.value) { if (this.toastPanelOpened) { status = 'expansionMaximizedAndToastOpened'; @@ -1203,9 +1189,10 @@ export class PortalComponent implements OnInit, OnDestroy { } getToastPanelStatus() { + const isExpanded = this.workspaceState.expanded(); if (this.isMobile() === true && this.toastPanelOpened === false) { if (this.sidenavOpened === false) { - if (this.expansionPanelExpanded === false) { + if (!isExpanded) { if (this.queryState.store.entities$.value.length > 0) { return 'low'; } @@ -1214,7 +1201,7 @@ export class PortalComponent implements OnInit, OnDestroy { } } getControlsOffsetY() { - return this.expansionPanelExpanded + return this.workspaceState.expanded() ? this.workspaceState.workspaceMaximize$.value ? 'firstRowFromBottom-expanded-maximized' : 'firstRowFromBottom-expanded' @@ -1222,10 +1209,11 @@ export class PortalComponent implements OnInit, OnDestroy { } getBaselayersSwitcherStatus() { + const isExpanded = this.workspaceState.expanded(); let status; if (this.isMobile()) { if (this.workspaceState.workspaceEnabled$.value) { - if (this.expansionPanelExpanded === false) { + if (!isExpanded) { if (this.queryState.store.entities$.value.length === 0) { status = 'secondRowFromBottom'; } else { @@ -1247,7 +1235,7 @@ export class PortalComponent implements OnInit, OnDestroy { } } else { if (this.workspaceState.workspaceEnabled$.value) { - if (this.expansionPanelExpanded) { + if (this.workspaceState.expanded()) { if (this.workspaceState.workspaceMaximize$.value) { status = 'firstRowFromBottom-expanded-maximized'; } else { @@ -1445,7 +1433,7 @@ export class PortalComponent implements OnInit, OnDestroy { ) .subscribe((c) => { if (c >= 1) { - this.directionState.zoomToActiveRoute$.next(); + this.directionState.zoomToActiveRoute.set(true); } }); // select the active route by url controls @@ -1462,7 +1450,7 @@ export class PortalComponent implements OnInit, OnDestroy { this.directionState.routesFeatureStore.entities$.value[ resultSelection ].properties.active = true; - this.directionState.zoomToActiveRoute$.next(); + this.directionState.zoomToActiveRoute.set(true); } }); } @@ -1561,7 +1549,7 @@ export class PortalComponent implements OnInit, OnDestroy { if ( activeWks.active && activeWks.inResolutionRange$.value && - this.workspaceState.workspacePanelExpanded + this.workspaceState.expanded ) { return true; } diff --git a/src/app/pages/portal/sidenav/sidenav.component.html b/src/app/pages/portal/sidenav/sidenav.component.html index 305f739ac..cc3e69170 100644 --- a/src/app/pages/portal/sidenav/sidenav.component.html +++ b/src/app/pages/portal/sidenav/sidenav.component.html @@ -11,8 +11,7 @@ [ngClass]="{ toolActivated: toolbox.activeTool$ | async }" > @if (toolbox.activeTool$ | async) { - - + } @@ -34,8 +33,7 @@ color="primary" [animate]="true" [toolbox]="toolbox" - > - + />
@@ -44,5 +42,5 @@ min="360" max="800" (change)="handleChange($event)" - > + /> diff --git a/src/app/pages/portal/sidenav/sidenav.component.ts b/src/app/pages/portal/sidenav/sidenav.component.ts index 8efb69d4b..5fb5cd4a3 100644 --- a/src/app/pages/portal/sidenav/sidenav.component.ts +++ b/src/app/pages/portal/sidenav/sidenav.component.ts @@ -2,12 +2,12 @@ import { AsyncPipe, NgClass } from '@angular/common'; import { ChangeDetectionStrategy, Component, - EventEmitter, - Input, OnDestroy, OnInit, - Output, - inject + inject, + input, + model, + output } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; @@ -55,32 +55,12 @@ export class SidenavComponent implements OnInit, OnDestroy { private activeTool$$: Subscription; - @Input() - get map(): IgoMap { - return this._map; - } - set map(value: IgoMap) { - this._map = value; - } - private _map: IgoMap; - - @Input() - get opened(): boolean { - return this._opened; - } - set opened(value: boolean) { - if (value === this._opened) { - return; - } + readonly map = input(); + readonly opened = model(); - this._opened = value; - this.openedChange.emit(this._opened); - } - private _opened: boolean; - - @Output() openedChange = new EventEmitter(); - @Output() toolChange = new EventEmitter(); - @Output() widthChange = new EventEmitter(); + readonly openedChange = output(); + readonly toolChange = output(); + readonly widthChange = output(); get toolbox(): Toolbox { return this.toolState.toolbox; @@ -107,11 +87,9 @@ export class SidenavComponent implements OnInit, OnDestroy { tool.name === 'activeTimeFilter' || tool.name === 'activeOgcFilter' ) { - for (const layer of this.map.layerController.layersFlattened) { - if ( - isLayerItem(layer) && - this.map.layerController.isSelected(layer) - ) { + const layerController = this.map().layerController; + for (const layer of layerController.layersFlattened) { + if (isLayerItem(layer) && layerController.isSelected(layer)) { this.title$.next(layer.title); } } diff --git a/src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.html b/src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.html index 5c22c9778..6b7507741 100644 --- a/src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.html +++ b/src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.html @@ -1,5 +1,5 @@ - +
- +
diff --git a/src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.ts b/src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.ts index 025c8b14d..fd03402db 100644 --- a/src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.ts +++ b/src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.ts @@ -1,10 +1,8 @@ import { ChangeDetectionStrategy, Component, - EventEmitter, HostBinding, - Input, - Output + input } from '@angular/core'; import { PanelComponent } from '@igo2/common/panel'; @@ -20,32 +18,18 @@ import { showContent } from './toast-panel-for-expansion.animations'; imports: [PanelComponent] }) export class ToastPanelForExpansionComponent { - @Input() - set opened(value: boolean) { - if (value === this._opened) { - return; - } - this._opened = value; - this.openedChange.emit(this._opened); - } - get opened(): boolean { - return this._opened; - } - private _opened: boolean; - - @Input() title: string; - - @Input() withHeader: boolean; + readonly opened = input(false); + readonly title = input(undefined); - @Output() openedChange = new EventEmitter(); + readonly withHeader = input(undefined); @HostBinding('class.toast-panel-for-expansion-opened') get hasOpenedClass() { - return this.opened; + return this.opened(); } @HostBinding('style.visibility') get displayStyle() { - return this.withHeader || this.opened ? 'visible' : 'hidden'; + return this.withHeader() || this.opened() ? 'visible' : 'hidden'; } } diff --git a/src/app/pages/portal/toast-panel/toast-panel.component.html b/src/app/pages/portal/toast-panel/toast-panel.component.html index bd7d06b01..985d71a32 100644 --- a/src/app/pages/portal/toast-panel/toast-panel.component.html +++ b/src/app/pages/portal/toast-panel/toast-panel.component.html @@ -21,8 +21,7 @@ [withTitle]="actionbarMode === 'overlay'" [horizontal]="true" [mode]="actionbarMode" - > - + /> @if (resultSelected$.value) {