From 244dbcad6601ccab9ad9b651a776d8cda108218d Mon Sep 17 00:00:00 2001 From: Jeff Jacobson Date: Tue, 3 Dec 2024 16:02:01 -0800 Subject: [PATCH] move text from label to CIM (#491) * refactor: :rotating_light: fix biome issues * build: :arrow_up: Upgrade to Vite 6 * build: :arrow_up: Upgrade pnpm * build: :arrow_up: upgrade dependencies * build: Modify @wsdot/web-styles imports * feat: :lipstick: Milepost symbol now contains text, no longer needs label * refactor: removed labelClass * refactor: :recycle: Moved CIM JSON into CIMSymbol definition --- package.json | 14 +- pnpm-lock.yaml | 937 ++++++++++++------ src/components/disclaimer/index.ts | 13 +- src/components/wsdot-footer/index.ts | 2 +- src/components/wsdot-header/index.ts | 2 +- src/elc/url.ts | 2 +- src/history-api/url-search.ts | 11 +- src/layers/MilepostLayer/labelClass.ts | 35 - .../Milepost Location Renderer.json | 214 ---- .../MilepostOffsetLineRenderer.ts | 143 ++- .../milepost-point-layer/index.ts | 21 +- src/layers/MilepostLayer/symbol/index.ts | 91 ++ tools/copy-fonts.mjs | 6 +- tools/create-cim.ts | 18 + vite.config.ts | 6 +- 15 files changed, 902 insertions(+), 613 deletions(-) delete mode 100644 src/layers/MilepostLayer/labelClass.ts delete mode 100644 src/layers/MilepostLayer/milepost-line-layer/Milepost Location Renderer.json create mode 100644 src/layers/MilepostLayer/symbol/index.ts create mode 100644 tools/create-cim.ts diff --git a/package.json b/package.json index 87a77a3a..946977dc 100644 --- a/package.json +++ b/package.json @@ -38,11 +38,11 @@ "@biomejs/biome": "1.9.4", "@types/arcgis-rest-api": "^10.4.8", "@types/browser-update": "^3.3.3", - "@types/node": "^22.9.4", - "@vitest/coverage-istanbul": "^2.1.5", - "@vitest/coverage-v8": "^2.1.5", + "@types/node": "^22.10.1", + "@vitest/coverage-istanbul": "^2.1.8", + "@vitest/coverage-v8": "^2.1.8", "browserslist-to-esbuild": "^2.1.1", - "cspell": "^8.16.0", + "cspell": "^8.16.1", "jsdom": "^25.0.1", "msw": "^2.6.6", "optionator": "^0.9.4", @@ -50,8 +50,8 @@ "svgson": "^5.3.1", "tsx": "^4.19.2", "typescript": "^5.7.2", - "vite": "^5.4.11", - "vitest": "^2.1.5" + "vite": "^6.0.2", + "vitest": "^2.1.8" }, "repository": { "url": "https://github.com/WSDOT-GIS/wsdot-mp-map.git", @@ -68,5 +68,5 @@ ], "author": "Jeff Jacobson", "license": "Unlicense", - "packageManager": "pnpm@9.14.2+sha512.6e2baf77d06b9362294152c851c4f278ede37ab1eba3a55fda317a4a17b209f4dbb973fb250a77abc463a341fcb1f17f17cfa24091c4eb319cda0d9b84278387" + "packageManager": "pnpm@9.14.4+sha512.c8180b3fbe4e4bca02c94234717896b5529740a6cbadf19fa78254270403ea2f27d4e1d46a08a0f56c89b63dc8ebfd3ee53326da720273794e6200fcf0d184ab" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 61226672..7e598f9b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,26 +58,26 @@ importers: specifier: ^3.3.3 version: 3.3.3 '@types/node': - specifier: ^22.9.4 - version: 22.9.4 + specifier: ^22.10.1 + version: 22.10.1 '@vitest/coverage-istanbul': - specifier: ^2.1.5 - version: 2.1.5(vitest@2.1.5(@types/node@22.9.4)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.9.4)(typescript@5.7.2))) + specifier: ^2.1.8 + version: 2.1.8(vitest@2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.1)(typescript@5.7.2))) '@vitest/coverage-v8': - specifier: ^2.1.5 - version: 2.1.5(vitest@2.1.5(@types/node@22.9.4)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.9.4)(typescript@5.7.2))) + specifier: ^2.1.8 + version: 2.1.8(vitest@2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.1)(typescript@5.7.2))) browserslist-to-esbuild: specifier: ^2.1.1 version: 2.1.1(browserslist@4.24.2) cspell: - specifier: ^8.16.0 - version: 8.16.0 + specifier: ^8.16.1 + version: 8.16.1 jsdom: specifier: ^25.0.1 version: 25.0.1 msw: specifier: ^2.6.6 - version: 2.6.6(@types/node@22.9.4)(typescript@5.7.2) + version: 2.6.6(@types/node@22.10.1)(typescript@5.7.2) optionator: specifier: ^0.9.4 version: 0.9.4 @@ -94,11 +94,11 @@ importers: specifier: ^5.7.2 version: 5.7.2 vite: - specifier: ^5.4.11 - version: 5.4.11(@types/node@22.9.4) + specifier: ^6.0.2 + version: 6.0.2(@types/node@22.10.1)(tsx@4.19.2)(yaml@2.6.1) vitest: - specifier: ^2.1.5 - version: 2.1.5(@types/node@22.9.4)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.9.4)(typescript@5.7.2)) + specifier: ^2.1.8 + version: 2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.1)(typescript@5.7.2)) packages: @@ -261,28 +261,28 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} - '@cspell/cspell-bundled-dicts@8.16.0': - resolution: {integrity: sha512-R0Eqq5kTZnmZ0elih5uY3TWjMqqAeMl7ciU7maUs+m1FNjCEdJXtJ9wrQxNgjmXi0tX8cvahZRO3O558tEz/KA==} + '@cspell/cspell-bundled-dicts@8.16.1': + resolution: {integrity: sha512-EkbtoYpmiN9YPfcOoPcMnIrJBZh13mun64jPyyaYhrPPToiU5+CisZ7ZKUBGnqNaatuciMUxwIudhanQJ7Yhnw==} engines: {node: '>=18'} - '@cspell/cspell-json-reporter@8.16.0': - resolution: {integrity: sha512-KLjPK94gA3JNuWy70LeenJ6EL3SFk2ejERKYJ6SVV/cVOKIvVd2qe42yX3/A/DkF2xzuZ2LD4z0sfoqQL1BaqA==} + '@cspell/cspell-json-reporter@8.16.1': + resolution: {integrity: sha512-ue1paJ2OE2BjIBQHXFMHnFqJL5xMrE/TLveOntDSCKJw7edCGP4XJA6Q0ZfUgR/ZAP3SYKNPkajEWbDTMfG+XA==} engines: {node: '>=18'} - '@cspell/cspell-pipe@8.16.0': - resolution: {integrity: sha512-WoCgrv/mrtwCY4lhc6vEcqN3AQ7lT6K0NW5ShoSo116U2tRaW0unApIYH4Va8u7T9g3wyspFEceQRR1xD9qb9w==} + '@cspell/cspell-pipe@8.16.1': + resolution: {integrity: sha512-6N+QZ3y65JRgGrQhZHmaBHESR+nC0J8nySGaYKclit8yk3jLZ/ORw9aoSGIj+dMPzImkNEDh+C1B1zdV4X8W6A==} engines: {node: '>=18'} - '@cspell/cspell-resolver@8.16.0': - resolution: {integrity: sha512-b+99bph43ptkXlQHgPXSkN/jK6LQHy2zL1Fm9up7+x6Yr64bxAzWzoeqJAPtnrPvFuOrFN0jZasZzKBw8CvrrQ==} + '@cspell/cspell-resolver@8.16.1': + resolution: {integrity: sha512-CfVI2JFMwh9/n1QuU9niEONbYCX1XGKqmyCcHQUzAapSqGzbAmFrRFnvyKwNL+mmy1bxli9EZV8f5vBco26f9Q==} engines: {node: '>=18'} - '@cspell/cspell-service-bus@8.16.0': - resolution: {integrity: sha512-+fn763JKA4EYCOv+1VShFq015UMEBAFRDr+rlCnesgLE0fv9TSFVLsjOfh9/g6GuGQLCRLUqKztwwuueeErstQ==} + '@cspell/cspell-service-bus@8.16.1': + resolution: {integrity: sha512-URaralJKcdHZH/Lr25L28GJo2Ub07adHPPhOL83BvmPyGkboehmz5arjNrgQFwS+IvGjHLdp5uzEJd0xyeHGdw==} engines: {node: '>=18'} - '@cspell/cspell-types@8.16.0': - resolution: {integrity: sha512-bGrIK7p4NVsK+QX/CYWmjax+FkzfSIZaIaoiBESGV5gmwgXDVRMJ3IP6tQVAmTtckOYHCmtT5CZgI8zXWr8dHQ==} + '@cspell/cspell-types@8.16.1': + resolution: {integrity: sha512-B8bHlBaDSMDMEq++H8qO9osKUkzWUrP4CgWQyRqlXZ9EOdnJ469Tp1wghcQ7DezII3aXYrHiVKsUYY9VvjkhIg==} engines: {node: '>=18'} '@cspell/dict-ada@4.0.5': @@ -336,8 +336,8 @@ packages: '@cspell/dict-en-gb@1.1.33': resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} - '@cspell/dict-en_us@4.3.27': - resolution: {integrity: sha512-7JYHahRWpi0VykWFTSM03KL/0fs6YtYfpOaTAg4N/d0wB2GfwVG/FJ/SBCjD4LBc6Rx9dzdo95Hs4BB8GPQbOA==} + '@cspell/dict-en_us@4.3.28': + resolution: {integrity: sha512-BN1PME7cOl7DXRQJ92pEd1f0Xk5sqjcDfThDGkKcsgwbSOY7KnTc/czBW6Pr3WXIchIm6cT12KEfjNqx7U7Rrw==} '@cspell/dict-filetypes@3.0.8': resolution: {integrity: sha512-D3N8sm/iptzfVwsib/jvpX+K/++rM8SRpLDFUaM4jxm8EyGmSIYRbKZvdIv5BkAWmMlTWoRqlLn7Yb1b11jKJg==} @@ -410,8 +410,8 @@ packages: '@cspell/dict-node@5.0.5': resolution: {integrity: sha512-7NbCS2E8ZZRZwlLrh2sA0vAk9n1kcTUiRp/Nia8YvKaItGXLfxYqD2rMQ3HpB1kEutal6hQLVic3N2Yi1X7AaA==} - '@cspell/dict-npm@5.1.13': - resolution: {integrity: sha512-7S1Pwq16M4sqvv/op7iHErc6Diz+DXsBYRMS0dDj6HUS44VXMvgejXa3RMd5jwBmcHzkInFm3DW1eb2exBs0cg==} + '@cspell/dict-npm@5.1.14': + resolution: {integrity: sha512-7VV/rrRlxOwy5j0bpw6/Uci+nx/rwSgx45FJdeKq++nHsBx/nEXMFNODknm4Mi6i7t7uOVHExpifrR6w6xTWww==} '@cspell/dict-php@4.0.13': resolution: {integrity: sha512-P6sREMZkhElzz/HhXAjahnICYIqB/HSGp1EhZh+Y6IhvC15AzgtDP8B8VYCIsQof6rPF1SQrFwunxOv8H1e2eg==} @@ -458,20 +458,20 @@ packages: '@cspell/dict-vue@3.0.3': resolution: {integrity: sha512-akmYbrgAGumqk1xXALtDJcEcOMYBYMnkjpmGzH13Ozhq1mkPF4VgllFQlm1xYde+BUKNnzMgPEzxrL2qZllgYA==} - '@cspell/dynamic-import@8.16.0': - resolution: {integrity: sha512-FH+B5y71qfunagXiLSJhXP9h/Vwb1Z8Cc/hLmliGekw/Y8BuYknL86tMg9grXBYNmM0kifIv6ZesQl8Km/p/rA==} + '@cspell/dynamic-import@8.16.1': + resolution: {integrity: sha512-mEfdeS1kFKpJoDsQ8wW6PxO3+ncYuZCWCASR0trbzZDduzO2RcogMUgzP99obHtYbgXadw94qcQWXB8OYTPSwg==} engines: {node: '>=18.0'} - '@cspell/filetypes@8.16.0': - resolution: {integrity: sha512-u2Ub0uSwXFPJFvXhAO/0FZBj3sMr4CeYCiQwTUsdFRkRMFpbTc7Vf+a+aC2vIj6WcaWrYXrJy3NZF/yjqF6SGw==} + '@cspell/filetypes@8.16.1': + resolution: {integrity: sha512-zpbNg3n26muR1jdMbylw5YsaVGyS9LU5Lfy20gU7RygAk6kFyx3Yz4C84EihBGQHy2gVEsEeyCCxk+R8RXuPZA==} engines: {node: '>=18'} - '@cspell/strong-weak-map@8.16.0': - resolution: {integrity: sha512-R6N12wEIQpBk2uyni/FU1SFSIjP0uql7ynXVcF1ob8/JJeRoikssydi9Xq5J6ghMw+X50u35mFvg9BgWKz0d+g==} + '@cspell/strong-weak-map@8.16.1': + resolution: {integrity: sha512-jJQS05wg2iUkLKnPR8NEq3LqvqHWKnvUDFoPwaJzYw6ol/O4yi/lv+Me9+XCPrgjpnAz+8APhWkhrR/O71R1Bw==} engines: {node: '>=18'} - '@cspell/url@8.16.0': - resolution: {integrity: sha512-zW+6hAieD/FjysfjY4mVv7iHWWasBP3ldj6L+xy2p4Kuax1nug7uuJqMHlAVude/OywNwENG0rYaP/P9Pg4O+w==} + '@cspell/url@8.16.1': + resolution: {integrity: sha512-kGlr7Wdo4xJpXKal/Gqo3Ll5Is7ptlIlLZOB/hzR6R53Fw4N6SdipTDIeHHqC15p2AXTEG6TSNdhk9dA50LY6w==} engines: {node: '>=18.0'} '@esbuild/aix-ppc64@0.21.5': @@ -486,6 +486,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} @@ -498,6 +504,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} @@ -510,6 +522,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} @@ -522,6 +540,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} @@ -534,6 +558,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} @@ -546,6 +576,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} @@ -558,6 +594,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} @@ -570,6 +612,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} @@ -582,6 +630,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} @@ -594,6 +648,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} @@ -606,6 +666,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} @@ -618,6 +684,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} @@ -630,6 +702,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} @@ -642,6 +720,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} @@ -654,6 +738,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} @@ -666,6 +756,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} @@ -678,6 +774,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} @@ -690,12 +792,24 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.23.1': resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} @@ -708,6 +822,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} @@ -720,6 +840,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} @@ -732,6 +858,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} @@ -744,6 +876,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} @@ -756,6 +894,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@esri/arcgis-html-sanitizer@4.1.0-next.4': resolution: {integrity: sha512-CFDBFVgCLLaY6qBS70oozzIPXkTTCVkG/KFkjAZHIPYMgxgFtYPMBETRutELQQWDJa0Tv1QNK1N/7NyaKfsPvQ==} engines: {node: '>=18.0.0'} @@ -843,8 +987,8 @@ packages: '@lit/reactive-element@2.0.4': resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} - '@mswjs/interceptors@0.37.1': - resolution: {integrity: sha512-SvE+tSpcX884RJrPCskXxoS965Ky/pYABDEhWW6oeSRhpUDLrS5nTvT5n1LLSDVDYvty4imVmXsy+3/ROVuknA==} + '@mswjs/interceptors@0.37.3': + resolution: {integrity: sha512-USvgCL/uOGFtVa6SVyRrC8kIAedzRohxIXN5LISlg5C5vLZCn7dgMFVSNhSF9cuBEFrm/O2spDWEZeMnw4ZXYg==} engines: {node: '>=18'} '@open-draft/deferred-promise@2.2.0': @@ -866,93 +1010,93 @@ packages: '@polymer/polymer@3.5.2': resolution: {integrity: sha512-fWwImY/UH4bb2534DVSaX+Azs2yKg8slkMBHOyGeU2kKx7Xmxp6Lee0jP8p6B3d7c1gFUPB2Z976dTUtX81pQA==} - '@rollup/rollup-android-arm-eabi@4.27.4': - resolution: {integrity: sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==} + '@rollup/rollup-android-arm-eabi@4.28.0': + resolution: {integrity: sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.27.4': - resolution: {integrity: sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==} + '@rollup/rollup-android-arm64@4.28.0': + resolution: {integrity: sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.27.4': - resolution: {integrity: sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==} + '@rollup/rollup-darwin-arm64@4.28.0': + resolution: {integrity: sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.27.4': - resolution: {integrity: sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==} + '@rollup/rollup-darwin-x64@4.28.0': + resolution: {integrity: sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.27.4': - resolution: {integrity: sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==} + '@rollup/rollup-freebsd-arm64@4.28.0': + resolution: {integrity: sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.27.4': - resolution: {integrity: sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==} + '@rollup/rollup-freebsd-x64@4.28.0': + resolution: {integrity: sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.27.4': - resolution: {integrity: sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==} + '@rollup/rollup-linux-arm-gnueabihf@4.28.0': + resolution: {integrity: sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.27.4': - resolution: {integrity: sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==} + '@rollup/rollup-linux-arm-musleabihf@4.28.0': + resolution: {integrity: sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.27.4': - resolution: {integrity: sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==} + '@rollup/rollup-linux-arm64-gnu@4.28.0': + resolution: {integrity: sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.27.4': - resolution: {integrity: sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==} + '@rollup/rollup-linux-arm64-musl@4.28.0': + resolution: {integrity: sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': - resolution: {integrity: sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': + resolution: {integrity: sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.27.4': - resolution: {integrity: sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==} + '@rollup/rollup-linux-riscv64-gnu@4.28.0': + resolution: {integrity: sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.27.4': - resolution: {integrity: sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==} + '@rollup/rollup-linux-s390x-gnu@4.28.0': + resolution: {integrity: sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.27.4': - resolution: {integrity: sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==} + '@rollup/rollup-linux-x64-gnu@4.28.0': + resolution: {integrity: sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.27.4': - resolution: {integrity: sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==} + '@rollup/rollup-linux-x64-musl@4.28.0': + resolution: {integrity: sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.27.4': - resolution: {integrity: sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==} + '@rollup/rollup-win32-arm64-msvc@4.28.0': + resolution: {integrity: sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.27.4': - resolution: {integrity: sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==} + '@rollup/rollup-win32-ia32-msvc@4.28.0': + resolution: {integrity: sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.27.4': - resolution: {integrity: sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==} + '@rollup/rollup-win32-x64-msvc@4.28.0': + resolution: {integrity: sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==} cpu: [x64] os: [win32] @@ -992,8 +1136,8 @@ packages: '@types/geojson@7946.0.14': resolution: {integrity: sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==} - '@types/node@22.9.4': - resolution: {integrity: sha512-d9RWfoR7JC/87vj7n+PVTzGg9hDyuFjir3RxUHbjFSKNd9mpxbxwMEyaCim/ddCmy4IuW7HjTzF3g9p3EtWEOg==} + '@types/node@22.10.1': + resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} '@types/sortablejs@1.15.8': resolution: {integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==} @@ -1050,25 +1194,25 @@ packages: resolution: {integrity: sha512-8r4TNknD7OJQADe3VygeofFR7UNAXZ2/jjBFP5dgI8+2uMfnuGYgbuHivasKr9WSQ64sPej6m8rDoM1uSllXjQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - '@vitest/coverage-istanbul@2.1.5': - resolution: {integrity: sha512-jJsS5jeHncmSvzMNE03F1pk8F9etmjzGmGyQnGMkdHdVek/bxK/3vo8Qr3e9XmVuDM3UZKOy1ObeQHgC2OxvHg==} + '@vitest/coverage-istanbul@2.1.8': + resolution: {integrity: sha512-cSaCd8KcWWvgDwEJSXm0NEWZ1YTiJzjicKHy+zOEbUm0gjbbkz+qJf1p8q71uBzSlS7vdnZA8wRLeiwVE3fFTA==} peerDependencies: - vitest: 2.1.5 + vitest: 2.1.8 - '@vitest/coverage-v8@2.1.5': - resolution: {integrity: sha512-/RoopB7XGW7UEkUndRXF87A9CwkoZAJW01pj8/3pgmDVsjMH2IKy6H1A38po9tmUlwhSyYs0az82rbKd9Yaynw==} + '@vitest/coverage-v8@2.1.8': + resolution: {integrity: sha512-2Y7BPlKH18mAZYAW1tYByudlCYrQyl5RGvnnDYJKW5tCiO5qg3KSAy3XAxcxKz900a0ZXxWtKrMuZLe3lKBpJw==} peerDependencies: - '@vitest/browser': 2.1.5 - vitest: 2.1.5 + '@vitest/browser': 2.1.8 + vitest: 2.1.8 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@2.1.5': - resolution: {integrity: sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==} + '@vitest/expect@2.1.8': + resolution: {integrity: sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==} - '@vitest/mocker@2.1.5': - resolution: {integrity: sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==} + '@vitest/mocker@2.1.8': + resolution: {integrity: sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 @@ -1078,20 +1222,20 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.5': - resolution: {integrity: sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==} + '@vitest/pretty-format@2.1.8': + resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==} - '@vitest/runner@2.1.5': - resolution: {integrity: sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==} + '@vitest/runner@2.1.8': + resolution: {integrity: sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==} - '@vitest/snapshot@2.1.5': - resolution: {integrity: sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==} + '@vitest/snapshot@2.1.8': + resolution: {integrity: sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==} - '@vitest/spy@2.1.5': - resolution: {integrity: sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==} + '@vitest/spy@2.1.8': + resolution: {integrity: sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==} - '@vitest/utils@2.1.5': - resolution: {integrity: sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==} + '@vitest/utils@2.1.8': + resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==} '@webcomponents/shadycss@1.11.2': resolution: {integrity: sha512-vRq+GniJAYSBmTRnhCYPAPq6THYqovJ/gzGThWbgEZUQaBccndGTi1hdiUP15HzEco0I6t4RCtXyX0rsSmwgPw==} @@ -1188,8 +1332,8 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001684: - resolution: {integrity: sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==} + caniuse-lite@1.0.30001685: + resolution: {integrity: sha512-e/kJN1EMyHQzgcMEEgoo+YTCO1NGCmIYHk5Qk8jT6AazWemS5QFKJ5ShCJlH3GZrNIdZofcNCEwZqbMjjKzmnA==} chai@5.1.2: resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} @@ -1275,42 +1419,42 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - cspell-config-lib@8.16.0: - resolution: {integrity: sha512-PGT6ohLtIYXYLIm+R5hTcTrF0dzj8e7WAUJSJe5WlV/7lrwVdwgWaliLcXtSSPmfxgczr6sndX9TMJ2IEmPrmg==} + cspell-config-lib@8.16.1: + resolution: {integrity: sha512-ohbSi9sI14rMdFc2g17ogObGGkd/x6zUVOzCH1nEOefC9yJYYfsvaMHqdhk0rOjvmF95j5OK4dm5oid+DKQcpw==} engines: {node: '>=18'} - cspell-dictionary@8.16.0: - resolution: {integrity: sha512-Y3sN6ttLBKbu0dOLcduY641n5QP1srUvZkW4bOTnG455DbIZfilrP1El/2Hl0RS6hC8LN9PM4bsIm/2xgdbApA==} + cspell-dictionary@8.16.1: + resolution: {integrity: sha512-NL/vwf5SjtkWWaEUh+0dogKdEU4UuepJaNh36FX8W1CFtQXj7yEs45x4K7/Fp+pn/4AT7Qe7WpSSWi9z5GcqKg==} engines: {node: '>=18'} - cspell-gitignore@8.16.0: - resolution: {integrity: sha512-ODKe0ooyzYSBJkwgIVZSRIvzoZfT4tEbFt4fFDT88wPyyfX7xp7MAQhXy5KD1ocXH0WvYbdv37qzn2UbckrahA==} + cspell-gitignore@8.16.1: + resolution: {integrity: sha512-Gg8qvFc8wr1D7TvB+GSfT1jyrUoUmPiG3WdOnQnxOSYKJesOiVvNxLv7YXRFkcUKG1VU6XDUkpb/uzKh3k2rKw==} engines: {node: '>=18'} hasBin: true - cspell-glob@8.16.0: - resolution: {integrity: sha512-xJSXRHwfENCNFmjpVSEucXY8E3BrpSCA+TukmOYtLyaMKtn6EAwoCpEU7Oj2tZOjdivprPmQ74k4Dqb1RHjIVQ==} + cspell-glob@8.16.1: + resolution: {integrity: sha512-EukaXFaUrgrY9G4bB2PguzpkAoOq6ai9acLl6gWD+6DgVEwkLqPmCWjsFJA0MaqVp9QvPsIfCy4KCnx35csG/g==} engines: {node: '>=18'} - cspell-grammar@8.16.0: - resolution: {integrity: sha512-vvbJEkBqXocGH/H975RtkfMzVpNxNGMd0JCDd+NjbpeRyZceuChFw5Tie7kHteFY29SwZovub+Am3F4H1kmf9A==} + cspell-grammar@8.16.1: + resolution: {integrity: sha512-7IRYa0O1xfK2HVbhGSpOPPt5HlP2ZHRHtdLU2iOvMSCkh0cSPERu++kdprvcaOf7E7koo0P+bxHSprcYbU/agg==} engines: {node: '>=18'} hasBin: true - cspell-io@8.16.0: - resolution: {integrity: sha512-WIK5uhPMjGsTAzm2/fGRbIdr7zWsMVG1fn8wNJYUiYELuyvzvLelfI1VG6szaFCGYqd6Uvgb/fS0uNbwGqCLAQ==} + cspell-io@8.16.1: + resolution: {integrity: sha512-25MOQfy7EhdVeoNUW/+jyb5ArDYSLbaFwVToakHtLGuYk9cW8q8MAHq1W9GzW06wXswT2sQsRvaozmIOTDIOnw==} engines: {node: '>=18'} - cspell-lib@8.16.0: - resolution: {integrity: sha512-fU8CfECyuhT12COIi4ViQu2bTkdqaa+05YSd2ZV8k8NA7lapPaMFnlooxdfcwwgZJfHeMhRVMzvQF1OhWmwGfA==} + cspell-lib@8.16.1: + resolution: {integrity: sha512-Gn1vJcyhYe78iB+9dms8rnfgDEfJgYocXapFPTOcZV3EUWKcV4wyCiHdbK3j2ElLXmPuSPg4eZSlxxk8ITD0Aw==} engines: {node: '>=18'} - cspell-trie-lib@8.16.0: - resolution: {integrity: sha512-Io1qqI0r4U9ewAWBLClFBBlxLeAoIi15PUGJi4Za1xrlgQJwRE8PMNIJNHKmPEIp78Iute3o/JyC2OfWlxl4Sw==} + cspell-trie-lib@8.16.1: + resolution: {integrity: sha512-T86nszsjQjyZ35dOWk7qN17Hem0cVeXJ4D1v/gIG+Y0Umo7dBW7AwmTvUy8iMFAra29cSdgRH+yk6q1qdpA+ZA==} engines: {node: '>=18'} - cspell@8.16.0: - resolution: {integrity: sha512-U6Up/4nODE+Ca+zqwZXTgBioGuF2JQHLEUIuoRJkJzAZkIBYDqrMXM+zdSL9E39+xb9jAtr9kPAYJf1Eybgi9g==} + cspell@8.16.1: + resolution: {integrity: sha512-ILuCjnY3JPY2oO62PodTQD6n3DGTKTwB+IU1tE9EC6EP2Xw6z3Ir+hO2DO6QlRUmZlGrkGMek5U06nNmztt4eA==} engines: {node: '>=18'} hasBin: true @@ -1396,8 +1540,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.65: - resolution: {integrity: sha512-PWVzBjghx7/wop6n22vS2MLU8tKGd4Q91aCEGhG/TYmW6PP5OcSXcdnxTe1NNt0T66N8D6jxh4kC8UsdzOGaIw==} + electron-to-chromium@1.5.68: + resolution: {integrity: sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1426,6 +1570,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -1693,8 +1842,8 @@ packages: resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} engines: {node: '>=12'} - magic-string@0.30.13: - resolution: {integrity: sha512-8rYBO+MsWkgjDSOvLomYnzhdwEG51olQ4zL5KXnNJWV5MNmrb4rTZdrtkhxjnD/QyZUqR/Z/XDsUs/4ej2nx0g==} + magic-string@0.30.14: + resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -1755,8 +1904,8 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -1766,8 +1915,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.13: - resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} + nwsapi@2.2.16: + resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==} optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} @@ -1827,8 +1976,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - psl@1.13.0: - resolution: {integrity: sha512-BFwmFXiJoFqlUpZ5Qssolv15DMyc84gTBds1BjsV1BfXEo1UyyD7GsmN67n7J77uRhoSNW1AXtXKPLcBFQn9Aw==} + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -1863,8 +2012,8 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - rollup@4.27.4: - resolution: {integrity: sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==} + rollup@4.28.0: + resolution: {integrity: sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -1908,8 +2057,8 @@ packages: sortablejs@1.15.3: resolution: {integrity: sha512-zdK3/kwwAK1cJgy1rwl1YtNTbRmc8qW/+vgXf75A7NHag5of4pyI6uK86ktmQETyWRH7IGaE73uZOOBcGxgqZg==} - sortablejs@1.15.4: - resolution: {integrity: sha512-wr7G5Id/WNllca5yF9I2vsz/2wDKJebX5FJBtfUFBGGpaaIVjW4kziAnNMEcigaTZAaPLB92NYBGqWenGDH++g==} + sortablejs@1.15.6: + resolution: {integrity: sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A==} source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} @@ -1992,11 +2141,11 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.64: - resolution: {integrity: sha512-uqnl8vGV16KsyflHOzqrYjjArjfXaU6rMPXYy2/ZWoRKCkXtghgB4VwTDXUG+t0OTGeSewNAG31/x1gCTfLt+Q==} + tldts-core@6.1.65: + resolution: {integrity: sha512-Uq5t0N0Oj4nQSbU8wFN1YYENvMthvwU13MQrMJRspYCGLSAZjAfoBOJki5IQpnBM/WFskxxC/gIOTwaedmHaSg==} - tldts@6.1.64: - resolution: {integrity: sha512-ph4AE5BXWIOsSy9stpoeo7bYe/Cy7VfpciIH4RhVZUPItCJmhqWCN0EVzxd8BOHiyNb42vuJc6NWTjJkg91Tuw==} + tldts@6.1.65: + resolution: {integrity: sha512-xU9gLTfAGsADQ2PcWee6Hg8RFAv0DnjMGVJmDnUmI8a9+nYmapMQix4afwrdaCtT+AqP4MaxEzu7cCrYmBPbzQ==} hasBin: true to-regex-range@5.0.1: @@ -2032,8 +2181,8 @@ packages: resolution: {integrity: sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==} engines: {node: '>=16'} - type-fest@4.28.0: - resolution: {integrity: sha512-jXMwges/FVbFRe5lTMJZVEZCrO9kI9c8k0PA/z7nF3bo0JSCCLysvokFjNPIUK/itEMas10MQM+AiHoHt/T/XA==} + type-fest@4.30.0: + resolution: {integrity: sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==} engines: {node: '>=16'} typescript@5.7.2: @@ -2041,8 +2190,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} @@ -2057,8 +2206,8 @@ packages: url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - vite-node@2.1.5: - resolution: {integrity: sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==} + vite-node@2.1.8: + resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -2093,15 +2242,55 @@ packages: terser: optional: true - vitest@2.1.5: - resolution: {integrity: sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==} + vite@6.0.2: + resolution: {integrity: sha512-XdQ+VsY2tJpBsKGs0wf3U/+azx8BBpYRHFAyKm5VeEZNOJZRB63q7Sc8Iup3k0TrN3KO6QgyzFf+opSbfY1y0g==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@2.1.8: + resolution: {integrity: sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.5 - '@vitest/ui': 2.1.5 + '@vitest/browser': 2.1.8 + '@vitest/ui': 2.1.8 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -2283,7 +2472,7 @@ snapshots: '@zip.js/zip.js': 2.7.53 luxon: 3.5.0 marked: 14.1.4 - sortablejs: 1.15.4 + sortablejs: 1.15.6 transitivePeerDependencies: - '@floating-ui/utils' @@ -2435,7 +2624,7 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@cspell/cspell-bundled-dicts@8.16.0': + '@cspell/cspell-bundled-dicts@8.16.1': dependencies: '@cspell/dict-ada': 4.0.5 '@cspell/dict-al': 1.0.3 @@ -2453,7 +2642,7 @@ snapshots: '@cspell/dict-elixir': 4.0.6 '@cspell/dict-en-common-misspellings': 2.0.7 '@cspell/dict-en-gb': 1.1.33 - '@cspell/dict-en_us': 4.3.27 + '@cspell/dict-en_us': 4.3.28 '@cspell/dict-filetypes': 3.0.8 '@cspell/dict-flutter': 1.0.3 '@cspell/dict-fonts': 4.0.3 @@ -2476,7 +2665,7 @@ snapshots: '@cspell/dict-markdown': 2.0.7(@cspell/dict-css@4.0.16)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.10)(@cspell/dict-typescript@3.1.11) '@cspell/dict-monkeyc': 1.0.9 '@cspell/dict-node': 5.0.5 - '@cspell/dict-npm': 5.1.13 + '@cspell/dict-npm': 5.1.14 '@cspell/dict-php': 4.0.13 '@cspell/dict-powershell': 5.0.13 '@cspell/dict-public-licenses': 2.0.11 @@ -2493,19 +2682,19 @@ snapshots: '@cspell/dict-typescript': 3.1.11 '@cspell/dict-vue': 3.0.3 - '@cspell/cspell-json-reporter@8.16.0': + '@cspell/cspell-json-reporter@8.16.1': dependencies: - '@cspell/cspell-types': 8.16.0 + '@cspell/cspell-types': 8.16.1 - '@cspell/cspell-pipe@8.16.0': {} + '@cspell/cspell-pipe@8.16.1': {} - '@cspell/cspell-resolver@8.16.0': + '@cspell/cspell-resolver@8.16.1': dependencies: global-directory: 4.0.1 - '@cspell/cspell-service-bus@8.16.0': {} + '@cspell/cspell-service-bus@8.16.1': {} - '@cspell/cspell-types@8.16.0': {} + '@cspell/cspell-types@8.16.1': {} '@cspell/dict-ada@4.0.5': {} @@ -2541,7 +2730,7 @@ snapshots: '@cspell/dict-en-gb@1.1.33': {} - '@cspell/dict-en_us@4.3.27': {} + '@cspell/dict-en_us@4.3.28': {} '@cspell/dict-filetypes@3.0.8': {} @@ -2592,7 +2781,7 @@ snapshots: '@cspell/dict-node@5.0.5': {} - '@cspell/dict-npm@5.1.13': {} + '@cspell/dict-npm@5.1.14': {} '@cspell/dict-php@4.0.13': {} @@ -2626,15 +2815,15 @@ snapshots: '@cspell/dict-vue@3.0.3': {} - '@cspell/dynamic-import@8.16.0': + '@cspell/dynamic-import@8.16.1': dependencies: import-meta-resolve: 4.1.0 - '@cspell/filetypes@8.16.0': {} + '@cspell/filetypes@8.16.1': {} - '@cspell/strong-weak-map@8.16.0': {} + '@cspell/strong-weak-map@8.16.1': {} - '@cspell/url@8.16.0': {} + '@cspell/url@8.16.1': {} '@esbuild/aix-ppc64@0.21.5': optional: true @@ -2642,141 +2831,213 @@ snapshots: '@esbuild/aix-ppc64@0.23.1': optional: true + '@esbuild/aix-ppc64@0.24.0': + optional: true + '@esbuild/android-arm64@0.21.5': optional: true '@esbuild/android-arm64@0.23.1': optional: true + '@esbuild/android-arm64@0.24.0': + optional: true + '@esbuild/android-arm@0.21.5': optional: true '@esbuild/android-arm@0.23.1': optional: true + '@esbuild/android-arm@0.24.0': + optional: true + '@esbuild/android-x64@0.21.5': optional: true '@esbuild/android-x64@0.23.1': optional: true + '@esbuild/android-x64@0.24.0': + optional: true + '@esbuild/darwin-arm64@0.21.5': optional: true '@esbuild/darwin-arm64@0.23.1': optional: true + '@esbuild/darwin-arm64@0.24.0': + optional: true + '@esbuild/darwin-x64@0.21.5': optional: true '@esbuild/darwin-x64@0.23.1': optional: true + '@esbuild/darwin-x64@0.24.0': + optional: true + '@esbuild/freebsd-arm64@0.21.5': optional: true '@esbuild/freebsd-arm64@0.23.1': optional: true + '@esbuild/freebsd-arm64@0.24.0': + optional: true + '@esbuild/freebsd-x64@0.21.5': optional: true '@esbuild/freebsd-x64@0.23.1': optional: true + '@esbuild/freebsd-x64@0.24.0': + optional: true + '@esbuild/linux-arm64@0.21.5': optional: true '@esbuild/linux-arm64@0.23.1': optional: true + '@esbuild/linux-arm64@0.24.0': + optional: true + '@esbuild/linux-arm@0.21.5': optional: true '@esbuild/linux-arm@0.23.1': optional: true + '@esbuild/linux-arm@0.24.0': + optional: true + '@esbuild/linux-ia32@0.21.5': optional: true '@esbuild/linux-ia32@0.23.1': optional: true + '@esbuild/linux-ia32@0.24.0': + optional: true + '@esbuild/linux-loong64@0.21.5': optional: true '@esbuild/linux-loong64@0.23.1': optional: true + '@esbuild/linux-loong64@0.24.0': + optional: true + '@esbuild/linux-mips64el@0.21.5': optional: true '@esbuild/linux-mips64el@0.23.1': optional: true + '@esbuild/linux-mips64el@0.24.0': + optional: true + '@esbuild/linux-ppc64@0.21.5': optional: true '@esbuild/linux-ppc64@0.23.1': optional: true + '@esbuild/linux-ppc64@0.24.0': + optional: true + '@esbuild/linux-riscv64@0.21.5': optional: true '@esbuild/linux-riscv64@0.23.1': optional: true + '@esbuild/linux-riscv64@0.24.0': + optional: true + '@esbuild/linux-s390x@0.21.5': optional: true '@esbuild/linux-s390x@0.23.1': optional: true + '@esbuild/linux-s390x@0.24.0': + optional: true + '@esbuild/linux-x64@0.21.5': optional: true '@esbuild/linux-x64@0.23.1': optional: true + '@esbuild/linux-x64@0.24.0': + optional: true + '@esbuild/netbsd-x64@0.21.5': optional: true '@esbuild/netbsd-x64@0.23.1': optional: true + '@esbuild/netbsd-x64@0.24.0': + optional: true + '@esbuild/openbsd-arm64@0.23.1': optional: true + '@esbuild/openbsd-arm64@0.24.0': + optional: true + '@esbuild/openbsd-x64@0.21.5': optional: true '@esbuild/openbsd-x64@0.23.1': optional: true + '@esbuild/openbsd-x64@0.24.0': + optional: true + '@esbuild/sunos-x64@0.21.5': optional: true '@esbuild/sunos-x64@0.23.1': optional: true + '@esbuild/sunos-x64@0.24.0': + optional: true + '@esbuild/win32-arm64@0.21.5': optional: true '@esbuild/win32-arm64@0.23.1': optional: true + '@esbuild/win32-arm64@0.24.0': + optional: true + '@esbuild/win32-ia32@0.21.5': optional: true '@esbuild/win32-ia32@0.23.1': optional: true + '@esbuild/win32-ia32@0.24.0': + optional: true + '@esbuild/win32-x64@0.21.5': optional: true '@esbuild/win32-x64@0.23.1': optional: true + '@esbuild/win32-x64@0.24.0': + optional: true + '@esri/arcgis-html-sanitizer@4.1.0-next.4': dependencies: xss: 1.0.13 @@ -2821,16 +3082,16 @@ snapshots: '@fontsource/overpass@5.1.1': {} - '@inquirer/confirm@5.0.2(@types/node@22.9.4)': + '@inquirer/confirm@5.0.2(@types/node@22.10.1)': dependencies: - '@inquirer/core': 10.1.0(@types/node@22.9.4) - '@inquirer/type': 3.0.1(@types/node@22.9.4) - '@types/node': 22.9.4 + '@inquirer/core': 10.1.0(@types/node@22.10.1) + '@inquirer/type': 3.0.1(@types/node@22.10.1) + '@types/node': 22.10.1 - '@inquirer/core@10.1.0(@types/node@22.9.4)': + '@inquirer/core@10.1.0(@types/node@22.10.1)': dependencies: '@inquirer/figures': 1.0.8 - '@inquirer/type': 3.0.1(@types/node@22.9.4) + '@inquirer/type': 3.0.1(@types/node@22.10.1) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -2843,9 +3104,9 @@ snapshots: '@inquirer/figures@1.0.8': {} - '@inquirer/type@3.0.1(@types/node@22.9.4)': + '@inquirer/type@3.0.1(@types/node@22.10.1)': dependencies: - '@types/node': 22.9.4 + '@types/node': 22.10.1 '@interactjs/types@1.10.27': {} @@ -2883,7 +3144,7 @@ snapshots: dependencies: '@lit-labs/ssr-dom-shim': 1.2.1 - '@mswjs/interceptors@0.37.1': + '@mswjs/interceptors@0.37.3': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -2910,58 +3171,58 @@ snapshots: dependencies: '@webcomponents/shadycss': 1.11.2 - '@rollup/rollup-android-arm-eabi@4.27.4': + '@rollup/rollup-android-arm-eabi@4.28.0': optional: true - '@rollup/rollup-android-arm64@4.27.4': + '@rollup/rollup-android-arm64@4.28.0': optional: true - '@rollup/rollup-darwin-arm64@4.27.4': + '@rollup/rollup-darwin-arm64@4.28.0': optional: true - '@rollup/rollup-darwin-x64@4.27.4': + '@rollup/rollup-darwin-x64@4.28.0': optional: true - '@rollup/rollup-freebsd-arm64@4.27.4': + '@rollup/rollup-freebsd-arm64@4.28.0': optional: true - '@rollup/rollup-freebsd-x64@4.27.4': + '@rollup/rollup-freebsd-x64@4.28.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.27.4': + '@rollup/rollup-linux-arm-gnueabihf@4.28.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.27.4': + '@rollup/rollup-linux-arm-musleabihf@4.28.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.27.4': + '@rollup/rollup-linux-arm64-gnu@4.28.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.27.4': + '@rollup/rollup-linux-arm64-musl@4.28.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': + '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.27.4': + '@rollup/rollup-linux-riscv64-gnu@4.28.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.27.4': + '@rollup/rollup-linux-s390x-gnu@4.28.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.27.4': + '@rollup/rollup-linux-x64-gnu@4.28.0': optional: true - '@rollup/rollup-linux-x64-musl@4.27.4': + '@rollup/rollup-linux-x64-musl@4.28.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.27.4': + '@rollup/rollup-win32-arm64-msvc@4.28.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.27.4': + '@rollup/rollup-win32-ia32-msvc@4.28.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.27.4': + '@rollup/rollup-win32-x64-msvc@4.28.0': optional: true '@stencil/core@4.20.0': {} @@ -2990,9 +3251,9 @@ snapshots: '@types/geojson@7946.0.14': {} - '@types/node@22.9.4': + '@types/node@22.10.1': dependencies: - undici-types: 6.19.8 + undici-types: 6.20.0 '@types/sortablejs@1.15.8': {} @@ -3110,7 +3371,7 @@ snapshots: dependencies: '@vaadin/vaadin-development-mode-detector': 2.0.7 - '@vitest/coverage-istanbul@2.1.5(vitest@2.1.5(@types/node@22.9.4)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.9.4)(typescript@5.7.2)))': + '@vitest/coverage-istanbul@2.1.8(vitest@2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.1)(typescript@5.7.2)))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.3.7 @@ -3122,11 +3383,11 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.5(@types/node@22.9.4)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.9.4)(typescript@5.7.2)) + vitest: 2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.1)(typescript@5.7.2)) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@2.1.5(vitest@2.1.5(@types/node@22.9.4)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.9.4)(typescript@5.7.2)))': + '@vitest/coverage-v8@2.1.8(vitest@2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.1)(typescript@5.7.2)))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -3135,53 +3396,53 @@ snapshots: istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.13 + magic-string: 0.30.14 magicast: 0.3.5 std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.5(@types/node@22.9.4)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.9.4)(typescript@5.7.2)) + vitest: 2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.1)(typescript@5.7.2)) transitivePeerDependencies: - supports-color - '@vitest/expect@2.1.5': + '@vitest/expect@2.1.8': dependencies: - '@vitest/spy': 2.1.5 - '@vitest/utils': 2.1.5 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.5(msw@2.6.6(@types/node@22.9.4)(typescript@5.7.2))(vite@5.4.11(@types/node@22.9.4))': + '@vitest/mocker@2.1.8(msw@2.6.6(@types/node@22.10.1)(typescript@5.7.2))(vite@5.4.11(@types/node@22.10.1))': dependencies: - '@vitest/spy': 2.1.5 + '@vitest/spy': 2.1.8 estree-walker: 3.0.3 - magic-string: 0.30.13 + magic-string: 0.30.14 optionalDependencies: - msw: 2.6.6(@types/node@22.9.4)(typescript@5.7.2) - vite: 5.4.11(@types/node@22.9.4) + msw: 2.6.6(@types/node@22.10.1)(typescript@5.7.2) + vite: 5.4.11(@types/node@22.10.1) - '@vitest/pretty-format@2.1.5': + '@vitest/pretty-format@2.1.8': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.1.5': + '@vitest/runner@2.1.8': dependencies: - '@vitest/utils': 2.1.5 + '@vitest/utils': 2.1.8 pathe: 1.1.2 - '@vitest/snapshot@2.1.5': + '@vitest/snapshot@2.1.8': dependencies: - '@vitest/pretty-format': 2.1.5 - magic-string: 0.30.13 + '@vitest/pretty-format': 2.1.8 + magic-string: 0.30.14 pathe: 1.1.2 - '@vitest/spy@2.1.5': + '@vitest/spy@2.1.8': dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.1.5': + '@vitest/utils@2.1.8': dependencies: - '@vitest/pretty-format': 2.1.5 + '@vitest/pretty-format': 2.1.8 loupe: 3.1.2 tinyrainbow: 1.2.0 @@ -3265,8 +3526,8 @@ snapshots: browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001684 - electron-to-chromium: 1.5.65 + caniuse-lite: 1.0.30001685 + electron-to-chromium: 1.5.68 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) @@ -3274,7 +3535,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001684: {} + caniuse-lite@1.0.30001685: {} chai@5.1.2: dependencies: @@ -3360,59 +3621,59 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - cspell-config-lib@8.16.0: + cspell-config-lib@8.16.1: dependencies: - '@cspell/cspell-types': 8.16.0 + '@cspell/cspell-types': 8.16.1 comment-json: 4.2.5 yaml: 2.6.1 - cspell-dictionary@8.16.0: + cspell-dictionary@8.16.1: dependencies: - '@cspell/cspell-pipe': 8.16.0 - '@cspell/cspell-types': 8.16.0 - cspell-trie-lib: 8.16.0 + '@cspell/cspell-pipe': 8.16.1 + '@cspell/cspell-types': 8.16.1 + cspell-trie-lib: 8.16.1 fast-equals: 5.0.1 - cspell-gitignore@8.16.0: + cspell-gitignore@8.16.1: dependencies: - '@cspell/url': 8.16.0 - cspell-glob: 8.16.0 - cspell-io: 8.16.0 + '@cspell/url': 8.16.1 + cspell-glob: 8.16.1 + cspell-io: 8.16.1 find-up-simple: 1.0.0 - cspell-glob@8.16.0: + cspell-glob@8.16.1: dependencies: - '@cspell/url': 8.16.0 + '@cspell/url': 8.16.1 micromatch: 4.0.8 - cspell-grammar@8.16.0: + cspell-grammar@8.16.1: dependencies: - '@cspell/cspell-pipe': 8.16.0 - '@cspell/cspell-types': 8.16.0 + '@cspell/cspell-pipe': 8.16.1 + '@cspell/cspell-types': 8.16.1 - cspell-io@8.16.0: + cspell-io@8.16.1: dependencies: - '@cspell/cspell-service-bus': 8.16.0 - '@cspell/url': 8.16.0 + '@cspell/cspell-service-bus': 8.16.1 + '@cspell/url': 8.16.1 - cspell-lib@8.16.0: + cspell-lib@8.16.1: dependencies: - '@cspell/cspell-bundled-dicts': 8.16.0 - '@cspell/cspell-pipe': 8.16.0 - '@cspell/cspell-resolver': 8.16.0 - '@cspell/cspell-types': 8.16.0 - '@cspell/dynamic-import': 8.16.0 - '@cspell/filetypes': 8.16.0 - '@cspell/strong-weak-map': 8.16.0 - '@cspell/url': 8.16.0 + '@cspell/cspell-bundled-dicts': 8.16.1 + '@cspell/cspell-pipe': 8.16.1 + '@cspell/cspell-resolver': 8.16.1 + '@cspell/cspell-types': 8.16.1 + '@cspell/dynamic-import': 8.16.1 + '@cspell/filetypes': 8.16.1 + '@cspell/strong-weak-map': 8.16.1 + '@cspell/url': 8.16.1 clear-module: 4.1.2 comment-json: 4.2.5 - cspell-config-lib: 8.16.0 - cspell-dictionary: 8.16.0 - cspell-glob: 8.16.0 - cspell-grammar: 8.16.0 - cspell-io: 8.16.0 - cspell-trie-lib: 8.16.0 + cspell-config-lib: 8.16.1 + cspell-dictionary: 8.16.1 + cspell-glob: 8.16.1 + cspell-grammar: 8.16.1 + cspell-io: 8.16.1 + cspell-trie-lib: 8.16.1 env-paths: 3.0.0 fast-equals: 5.0.1 gensequence: 7.0.0 @@ -3422,27 +3683,27 @@ snapshots: vscode-uri: 3.0.8 xdg-basedir: 5.1.0 - cspell-trie-lib@8.16.0: + cspell-trie-lib@8.16.1: dependencies: - '@cspell/cspell-pipe': 8.16.0 - '@cspell/cspell-types': 8.16.0 + '@cspell/cspell-pipe': 8.16.1 + '@cspell/cspell-types': 8.16.1 gensequence: 7.0.0 - cspell@8.16.0: + cspell@8.16.1: dependencies: - '@cspell/cspell-json-reporter': 8.16.0 - '@cspell/cspell-pipe': 8.16.0 - '@cspell/cspell-types': 8.16.0 - '@cspell/dynamic-import': 8.16.0 - '@cspell/url': 8.16.0 + '@cspell/cspell-json-reporter': 8.16.1 + '@cspell/cspell-pipe': 8.16.1 + '@cspell/cspell-types': 8.16.1 + '@cspell/dynamic-import': 8.16.1 + '@cspell/url': 8.16.1 chalk: 5.3.0 chalk-template: 1.1.0 commander: 12.1.0 - cspell-dictionary: 8.16.0 - cspell-gitignore: 8.16.0 - cspell-glob: 8.16.0 - cspell-io: 8.16.0 - cspell-lib: 8.16.0 + cspell-dictionary: 8.16.1 + cspell-gitignore: 8.16.1 + cspell-glob: 8.16.1 + cspell-io: 8.16.1 + cspell-lib: 8.16.1 fast-json-stable-stringify: 2.1.0 file-entry-cache: 9.1.0 get-stdin: 9.0.0 @@ -3527,7 +3788,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.65: {} + electron-to-chromium@1.5.68: {} emoji-regex@8.0.0: {} @@ -3592,6 +3853,33 @@ snapshots: '@esbuild/win32-ia32': 0.23.1 '@esbuild/win32-x64': 0.23.1 + esbuild@0.24.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 + escalade@3.2.0: {} esprima@4.0.1: {} @@ -3784,7 +4072,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.13 + nwsapi: 2.2.16 parse5: 7.2.1 rrweb-cssom: 0.7.1 saxes: 6.0.0 @@ -3813,7 +4101,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.13 + nwsapi: 2.2.16 parse5: 7.2.1 rrweb-cssom: 0.7.1 saxes: 6.0.0 @@ -3878,7 +4166,7 @@ snapshots: luxon@3.5.0: {} - magic-string@0.30.13: + magic-string@0.30.14: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -3919,13 +4207,13 @@ snapshots: ms@2.1.3: {} - msw@2.6.6(@types/node@22.9.4)(typescript@5.7.2): + msw@2.6.6(@types/node@22.10.1)(typescript@5.7.2): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.0.2(@types/node@22.9.4) - '@mswjs/interceptors': 0.37.1 + '@inquirer/confirm': 5.0.2(@types/node@22.10.1) + '@mswjs/interceptors': 0.37.3 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 @@ -3937,7 +4225,7 @@ snapshots: outvariant: 1.4.3 path-to-regexp: 6.3.0 strict-event-emitter: 0.5.1 - type-fest: 4.28.0 + type-fest: 4.30.0 yargs: 17.7.2 optionalDependencies: typescript: 5.7.2 @@ -3946,7 +4234,7 @@ snapshots: mute-stream@2.0.0: {} - nanoid@3.3.7: {} + nanoid@3.3.8: {} node-releases@2.0.18: {} @@ -3954,7 +4242,7 @@ snapshots: dependencies: boolbase: 1.0.0 - nwsapi@2.2.13: {} + nwsapi@2.2.16: {} optionator@0.9.4: dependencies: @@ -4002,13 +4290,13 @@ snapshots: postcss@8.4.49: dependencies: - nanoid: 3.3.7 + nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 prelude-ls@1.2.1: {} - psl@1.13.0: + psl@1.15.0: dependencies: punycode: 2.3.1 @@ -4030,28 +4318,28 @@ snapshots: resolve-pkg-maps@1.0.0: {} - rollup@4.27.4: + rollup@4.28.0: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.27.4 - '@rollup/rollup-android-arm64': 4.27.4 - '@rollup/rollup-darwin-arm64': 4.27.4 - '@rollup/rollup-darwin-x64': 4.27.4 - '@rollup/rollup-freebsd-arm64': 4.27.4 - '@rollup/rollup-freebsd-x64': 4.27.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.27.4 - '@rollup/rollup-linux-arm-musleabihf': 4.27.4 - '@rollup/rollup-linux-arm64-gnu': 4.27.4 - '@rollup/rollup-linux-arm64-musl': 4.27.4 - '@rollup/rollup-linux-powerpc64le-gnu': 4.27.4 - '@rollup/rollup-linux-riscv64-gnu': 4.27.4 - '@rollup/rollup-linux-s390x-gnu': 4.27.4 - '@rollup/rollup-linux-x64-gnu': 4.27.4 - '@rollup/rollup-linux-x64-musl': 4.27.4 - '@rollup/rollup-win32-arm64-msvc': 4.27.4 - '@rollup/rollup-win32-ia32-msvc': 4.27.4 - '@rollup/rollup-win32-x64-msvc': 4.27.4 + '@rollup/rollup-android-arm-eabi': 4.28.0 + '@rollup/rollup-android-arm64': 4.28.0 + '@rollup/rollup-darwin-arm64': 4.28.0 + '@rollup/rollup-darwin-x64': 4.28.0 + '@rollup/rollup-freebsd-arm64': 4.28.0 + '@rollup/rollup-freebsd-x64': 4.28.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.28.0 + '@rollup/rollup-linux-arm-musleabihf': 4.28.0 + '@rollup/rollup-linux-arm64-gnu': 4.28.0 + '@rollup/rollup-linux-arm64-musl': 4.28.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.28.0 + '@rollup/rollup-linux-riscv64-gnu': 4.28.0 + '@rollup/rollup-linux-s390x-gnu': 4.28.0 + '@rollup/rollup-linux-x64-gnu': 4.28.0 + '@rollup/rollup-linux-x64-musl': 4.28.0 + '@rollup/rollup-win32-arm64-msvc': 4.28.0 + '@rollup/rollup-win32-ia32-msvc': 4.28.0 + '@rollup/rollup-win32-x64-msvc': 4.28.0 fsevents: 2.3.3 rrweb-cssom@0.7.1: {} @@ -4082,7 +4370,7 @@ snapshots: sortablejs@1.15.3: {} - sortablejs@1.15.4: {} + sortablejs@1.15.6: {} source-map-js@1.2.1: {} @@ -4160,11 +4448,11 @@ snapshots: tinyspy@3.0.2: {} - tldts-core@6.1.64: {} + tldts-core@6.1.65: {} - tldts@6.1.64: + tldts@6.1.65: dependencies: - tldts-core: 6.1.64 + tldts-core: 6.1.65 to-regex-range@5.0.1: dependencies: @@ -4172,14 +4460,14 @@ snapshots: tough-cookie@4.1.4: dependencies: - psl: 1.13.0 + psl: 1.15.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 tough-cookie@5.0.0: dependencies: - tldts: 6.1.64 + tldts: 6.1.65 tr46@5.0.0: dependencies: @@ -4200,11 +4488,11 @@ snapshots: type-fest@4.18.2: {} - type-fest@4.28.0: {} + type-fest@4.30.0: {} typescript@5.7.2: {} - undici-types@6.19.8: {} + undici-types@6.20.0: {} universalify@0.2.0: {} @@ -4219,13 +4507,13 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - vite-node@2.1.5(@types/node@22.9.4): + vite-node@2.1.8(@types/node@22.10.1): dependencies: cac: 6.7.14 debug: 4.3.7 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.11(@types/node@22.9.4) + vite: 5.4.11(@types/node@22.10.1) transitivePeerDependencies: - '@types/node' - less @@ -4237,39 +4525,50 @@ snapshots: - supports-color - terser - vite@5.4.11(@types/node@22.9.4): + vite@5.4.11(@types/node@22.10.1): dependencies: esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.27.4 + rollup: 4.28.0 optionalDependencies: - '@types/node': 22.9.4 + '@types/node': 22.10.1 fsevents: 2.3.3 - vitest@2.1.5(@types/node@22.9.4)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.9.4)(typescript@5.7.2)): + vite@6.0.2(@types/node@22.10.1)(tsx@4.19.2)(yaml@2.6.1): + dependencies: + esbuild: 0.24.0 + postcss: 8.4.49 + rollup: 4.28.0 + optionalDependencies: + '@types/node': 22.10.1 + fsevents: 2.3.3 + tsx: 4.19.2 + yaml: 2.6.1 + + vitest@2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.1)(typescript@5.7.2)): dependencies: - '@vitest/expect': 2.1.5 - '@vitest/mocker': 2.1.5(msw@2.6.6(@types/node@22.9.4)(typescript@5.7.2))(vite@5.4.11(@types/node@22.9.4)) - '@vitest/pretty-format': 2.1.5 - '@vitest/runner': 2.1.5 - '@vitest/snapshot': 2.1.5 - '@vitest/spy': 2.1.5 - '@vitest/utils': 2.1.5 + '@vitest/expect': 2.1.8 + '@vitest/mocker': 2.1.8(msw@2.6.6(@types/node@22.10.1)(typescript@5.7.2))(vite@5.4.11(@types/node@22.10.1)) + '@vitest/pretty-format': 2.1.8 + '@vitest/runner': 2.1.8 + '@vitest/snapshot': 2.1.8 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 chai: 5.1.2 debug: 4.3.7 expect-type: 1.1.0 - magic-string: 0.30.13 + magic-string: 0.30.14 pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 tinyexec: 0.3.1 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.11(@types/node@22.9.4) - vite-node: 2.1.5(@types/node@22.9.4) + vite: 5.4.11(@types/node@22.10.1) + vite-node: 2.1.8(@types/node@22.10.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.9.4 + '@types/node': 22.10.1 jsdom: 25.0.1 transitivePeerDependencies: - less diff --git a/src/components/disclaimer/index.ts b/src/components/disclaimer/index.ts index c93cb304..12e97d7e 100644 --- a/src/components/disclaimer/index.ts +++ b/src/components/disclaimer/index.ts @@ -9,30 +9,31 @@ export function setupDisclaimerLink( link: HTMLElement, dialog?: HTMLCalciteDialogElement, ) { - if (!dialog) { - dialog = + let dialogElement = dialog; + if (!dialogElement) { + dialogElement = document.body.querySelector( "#disclaimer-dialog", ) ?? undefined; } - if (!dialog) { + if (!dialogElement) { throw new Error("Could not find disclaimer dialog."); } if (/WSDOT-FOOTER/i.test(link.tagName)) { // Setup disclaimer modal link.addEventListener("disclaimer-link-clicked", () => { - dialog.open = true; + dialogElement.open = true; }); } else { // Setup disclaimer modal link.addEventListener("click", (e) => { - dialog.open = true; + dialogElement.open = true; e.preventDefault(); }); } return { - modal: dialog, + modal: dialogElement, link, }; } diff --git a/src/components/wsdot-footer/index.ts b/src/components/wsdot-footer/index.ts index a7b87317..c25746ae 100644 --- a/src/components/wsdot-footer/index.ts +++ b/src/components/wsdot-footer/index.ts @@ -1,4 +1,4 @@ -import wsdotColorsCss from "../../wsdot-web-styles/css/wsdot-colors.css?raw"; +import wsdotColorsCss from "@wsdot/web-styles/css/wsdot-colors.css?raw"; import content from "./content.html?raw"; import css from "./index.css?raw"; diff --git a/src/components/wsdot-header/index.ts b/src/components/wsdot-header/index.ts index ca8e23d0..c2bba291 100644 --- a/src/components/wsdot-header/index.ts +++ b/src/components/wsdot-header/index.ts @@ -1,4 +1,4 @@ -import wsdotLogo from "../../wsdot-web-styles/images/wsdot-logo/wsdot-logo-white.svg"; +import wsdotLogo from "@wsdot/web-styles/images/wsdot-logo/wsdot-logo-white.svg"; import content from "./content.html?raw"; import css from "./index.css?raw"; diff --git a/src/elc/url.ts b/src/elc/url.ts index cfa1f408..051d854b 100644 --- a/src/elc/url.ts +++ b/src/elc/url.ts @@ -74,7 +74,7 @@ const regExpMap = new Map( key, [ value, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // biome-ignore lint/style/noNonNullAssertion: We know it's not null. valueRegExps.get(key)!, ], ]), diff --git a/src/history-api/url-search.ts b/src/history-api/url-search.ts index d8b663da..6038485c 100644 --- a/src/history-api/url-search.ts +++ b/src/history-api/url-search.ts @@ -60,6 +60,7 @@ export function extractUrlSearchParams(hash: string): URLSearchParams { const params = new URLSearchParams(); urlSearchRe.lastIndex = 0; let match: RegExpExecArray | null; + // biome-ignore lint/suspicious/noAssignInExpressions: Use of "=" rather than "==" or "===" is intentional. while ((match = urlSearchRe.exec(hash))) { const { groups } = match; const key = groups?.key; @@ -77,13 +78,13 @@ export function extractUrlSearchParams(hash: string): URLSearchParams { * @returns - The updated URL. */ export function moveUrlSearchToHash(url: URL | string) { - url = new URL(url); + const urlObject = new URL(url); - if (url.searchParams.size) { - url.hash += url.search; - url.search = ""; + if (urlObject.searchParams.size) { + urlObject.hash += urlObject.search; + urlObject.search = ""; } - return url; + return urlObject; } /** diff --git a/src/layers/MilepostLayer/labelClass.ts b/src/layers/MilepostLayer/labelClass.ts deleted file mode 100644 index 041bee5d..00000000 --- a/src/layers/MilepostLayer/labelClass.ts +++ /dev/null @@ -1,35 +0,0 @@ -import LabelClass from "@arcgis/core/layers/support/LabelClass"; -import TextSymbol from "@arcgis/core/symbols/TextSymbol"; -import { highwaySignBackgroundColor, highwaySignTextColor } from "../../colors"; - -// import Font from "@arcgis/core/symbols/Font"; - -// const labelFont = new Font({ -// family: "Overpass", -// }); -export const milepostSignLabelTextSymbol = new TextSymbol({ - // TODO: app is currently trying to load the font from https://static.arcgis.com/fonts/overpass-regular/0-255.pbf - // Try [fontnik](https://github.com/mapbox/node-fontnik) to convert from TTF or WOFF to PBF font format. - // font: labelFont, - color: highwaySignTextColor, - backgroundColor: highwaySignBackgroundColor, - borderLineColor: highwaySignTextColor, - borderLineSize: 1, - verticalAlignment: "top", - yoffset: 10, -}); - -/** - * Defines labeling for user defined milepost marker. - */ -export const labelClass = new LabelClass({ - labelExpressionInfo: { - expression: String.raw`Concatenate(LEFT($feature.Route, 5), TextFormatting.NewLine, $feature.SRMP, $feature.Back)`, - }, - labelPlacement: "above-center", - symbol: milepostSignLabelTextSymbol, -}); - -export const labelingInfo = [labelClass]; - -export default labelClass; diff --git a/src/layers/MilepostLayer/milepost-line-layer/Milepost Location Renderer.json b/src/layers/MilepostLayer/milepost-line-layer/Milepost Location Renderer.json deleted file mode 100644 index 175bf83d..00000000 --- a/src/layers/MilepostLayer/milepost-line-layer/Milepost Location Renderer.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "type": "simple", - "symbol": { - "type": "CIMSymbolReference", - "symbol": { - "type": "CIMLineSymbol", - "symbolLayers": [ - { - "type": "CIMVectorMarker", - "enable": true, - "anchorPointUnits": "Relative", - "dominantSizeAxis3D": "Y", - "size": 10, - "billboardMode3D": "FaceNearPlane", - "markerPlacement": { - "type": "CIMMarkerPlacementAtExtremities", - "placePerPart": true, - "angleToLine": true, - "extremityPlacement": "JustEnd" - }, - "frame": { - "xmin": -5.3, - "ymin": -5.3, - "xmax": 5.3, - "ymax": 5.3 - }, - "markerGraphics": [ - { - "type": "CIMMarkerGraphic", - "geometry": { - "x": 0, - "y": 0 - }, - "symbol": { - "type": "CIMPointSymbol", - "symbolLayers": [ - { - "type": "CIMVectorMarker", - "enable": true, - "anchorPointUnits": "Relative", - "dominantSizeAxis3D": "Y", - "size": 10, - "billboardMode3D": "FaceNearPlane", - "frame": { - "xmin": -5, - "ymin": -5, - "xmax": 5, - "ymax": 5 - }, - "markerGraphics": [ - { - "type": "CIMMarkerGraphic", - "geometry": { - "rings": [ - [[-5, 5], [5, 5], [5, -5], [-5, -5], [-5, 5]] - ] - }, - "symbol": { - "type": "CIMPolygonSymbol", - "symbolLayers": [ - { - "type": "CIMSolidStroke", - "enable": true, - "capStyle": "Round", - "joinStyle": "Round", - "lineStyle3D": "Strip", - "miterLimit": 4, - "width": 1, - "height3D": 1, - "anchor3D": "Center", - "color": [255, 255, 255, 255] - }, - { - "type": "CIMSolidFill", - "enable": true, - "color": [1, 115, 92, 255] - } - ], - "angleAlignment": "Map" - } - } - ], - "scaleSymbolsProportionally": true, - "respectFrame": true - } - ], - "haloSize": 1, - "scaleX": 1, - "angleAlignment": "Display" - } - } - ], - "scaleSymbolsProportionally": true, - "respectFrame": true - }, - { - "type": "CIMVectorMarker", - "enable": true, - "colorLocked": true, - "anchorPointUnits": "Relative", - "dominantSizeAxis3D": "Y", - "size": 10, - "billboardMode3D": "FaceNearPlane", - "markerPlacement": { - "type": "CIMMarkerPlacementAtExtremities", - "placePerPart": true, - "angleToLine": true, - "extremityPlacement": "JustBegin" - }, - "frame": { - "xmin": -5, - "ymin": -5, - "xmax": 5, - "ymax": 5 - }, - "markerGraphics": [ - { - "type": "CIMMarkerGraphic", - "geometry": { - "rings": [ - [ - [0, 5], - [0.87, 4.92], - [1.71, 4.7], - [2.5, 4.33], - [3.21, 3.83], - [3.83, 3.21], - [4.33, 2.5], - [4.7, 1.71], - [4.92, 0.87], - [5, 0], - [4.92, -0.87], - [4.7, -1.71], - [4.33, -2.5], - [3.83, -3.21], - [3.21, -3.83], - [2.5, -4.33], - [1.71, -4.7], - [0.87, -4.92], - [0, -5], - [-0.87, -4.92], - [-1.71, -4.7], - [-2.5, -4.33], - [-3.21, -3.83], - [-3.83, -3.21], - [-4.33, -2.5], - [-4.7, -1.71], - [-4.92, -0.87], - [-5, 0], - [-4.92, 0.87], - [-4.7, 1.71], - [-4.33, 2.5], - [-3.83, 3.21], - [-3.21, 3.83], - [-2.5, 4.33], - [-1.71, 4.7], - [-0.87, 4.92], - [0, 5] - ] - ] - }, - "symbol": { - "type": "CIMPolygonSymbol", - "symbolLayers": [ - { - "type": "CIMSolidStroke", - "enable": true, - "capStyle": "Round", - "joinStyle": "Round", - "lineStyle3D": "Strip", - "miterLimit": 10, - "width": 0, - "height3D": 1, - "anchor3D": "Center", - "color": [110, 110, 110, 255] - }, - { - "type": "CIMSolidFill", - "enable": true, - "color": [255, 100, 100, 255] - } - ], - "angleAlignment": "Map" - } - } - ], - "scaleSymbolsProportionally": true, - "respectFrame": true - }, - { - "type": "CIMSolidStroke", - "effects": [ - { - "type": "CIMGeometricEffectDashes", - "dashTemplate": [5, 3], - "lineDashEnding": "NoConstraint", - "controlPointEnding": "NoConstraint" - } - ], - "enable": true, - "colorLocked": true, - "capStyle": "Butt", - "joinStyle": "Round", - "lineStyle3D": "Strip", - "miterLimit": 4, - "width": 2, - "height3D": 1, - "anchor3D": "Center", - "color": [255, 100, 100, 255] - } - ] - } - } -} diff --git a/src/layers/MilepostLayer/milepost-line-layer/MilepostOffsetLineRenderer.ts b/src/layers/MilepostLayer/milepost-line-layer/MilepostOffsetLineRenderer.ts index f9f693e8..b8564844 100644 --- a/src/layers/MilepostLayer/milepost-line-layer/MilepostOffsetLineRenderer.ts +++ b/src/layers/MilepostLayer/milepost-line-layer/MilepostOffsetLineRenderer.ts @@ -1,7 +1,146 @@ import SimpleRenderer from "@arcgis/core/renderers/SimpleRenderer"; -import MilepostLocationRenderer from "./Milepost Location Renderer.json"; +import CIMSymbol from "@arcgis/core/symbols/CIMSymbol"; +import { cimVectorMarker, primitiveOverrides } from "../symbol"; + +const clickPointSymbolLayer: __esri.CIMVectorMarker = { + type: "CIMVectorMarker", + enable: true, + colorLocked: true, + anchorPointUnits: "Relative", + size: 10, + markerPlacement: { + type: "CIMMarkerPlacementAtExtremities", + angleToLine: true, + extremityPlacement: "JustBegin", + }, + frame: { + xmin: -5, + ymin: -5, + xmax: 5, + ymax: 5, + }, + markerGraphics: [ + { + type: "CIMMarkerGraphic", + geometry: { + rings: [ + [ + [0, 5], + [0.87, 4.92], + [1.71, 4.7], + [2.5, 4.33], + [3.21, 3.83], + [3.83, 3.21], + [4.33, 2.5], + [4.7, 1.71], + [4.92, 0.87], + [5, 0], + [4.92, -0.87], + [4.7, -1.71], + [4.33, -2.5], + [3.83, -3.21], + [3.21, -3.83], + [2.5, -4.33], + [1.71, -4.7], + [0.87, -4.92], + [0, -5], + [-0.87, -4.92], + [-1.71, -4.7], + [-2.5, -4.33], + [-3.21, -3.83], + [-3.83, -3.21], + [-4.33, -2.5], + [-4.7, -1.71], + [-4.92, -0.87], + [-5, 0], + [-4.92, 0.87], + [-4.7, 1.71], + [-4.33, 2.5], + [-3.83, 3.21], + [-3.21, 3.83], + [-2.5, 4.33], + [-1.71, 4.7], + [-0.87, 4.92], + [0, 5], + ], + ], + }, + symbol: { + type: "CIMPolygonSymbol", + symbolLayers: [ + { + type: "CIMSolidStroke", + enable: true, + capStyle: "Round", + joinStyle: "Round", + // lineStyle3D: "Strip", + miterLimit: 10, + width: 0, + // // height3D: 1, + // // anchor3D: "Center", + color: [110, 110, 110, 255], + }, + { + type: "CIMSolidFill", + enable: true, + color: [255, 100, 100, 255], + }, + ], + // angleAlignment: "Map", + }, + }, + ], + scaleSymbolsProportionally: true, + respectFrame: true, +}; +const strokeSymbolLayer: __esri.CIMSolidStroke = { + type: "CIMSolidStroke", + effects: [ + { + type: "CIMGeometricEffectDashes", + dashTemplate: [5, 3], + lineDashEnding: "NoConstraint", + offsetAlongLine: 0, + // controlPointEnding: "NoConstraint", + }, + ], + enable: true, + colorLocked: true, + capStyle: "Butt", + joinStyle: "Round", + // lineStyle3D: "Strip", + miterLimit: 4, + width: 2, + // height3D: 1, + // anchor3D: "Center", + color: [255, 100, 100, 255], +}; +const cimLineSymbol: __esri.CIMLineSymbol = { + type: "CIMLineSymbol", + symbolLayers: [ + { + ...cimVectorMarker, + markerPlacement: { + type: "CIMMarkerPlacementAtExtremities", + extremityPlacement: "JustEnd", + angleToLine: false, + }, + }, + clickPointSymbolLayer, + strokeSymbolLayer, + ], +}; +const cimSymbol = new CIMSymbol({ + data: { + primitiveOverrides, + type: "CIMSymbolReference", + symbol: cimLineSymbol, + }, +}); /** * Simple Renderer using a CIM symbol. */ -export default SimpleRenderer.fromJSON(MilepostLocationRenderer); +export default new SimpleRenderer({ + symbol: cimSymbol, +}); diff --git a/src/layers/MilepostLayer/milepost-point-layer/index.ts b/src/layers/MilepostLayer/milepost-point-layer/index.ts index 6c0b6275..b1fc67af 100644 --- a/src/layers/MilepostLayer/milepost-point-layer/index.ts +++ b/src/layers/MilepostLayer/milepost-point-layer/index.ts @@ -1,15 +1,10 @@ import type SpatialReference from "@arcgis/core/geometry/SpatialReference"; import FeatureLayer from "@arcgis/core/layers/FeatureLayer"; import SimpleRenderer from "@arcgis/core/renderers/SimpleRenderer"; -import { SimpleMarkerSymbol } from "@arcgis/core/symbols"; import { createPopupTemplate, fields } from ".."; import waExtent from "../../../WAExtent"; -import { - highwaySignBackgroundColor, - highwaySignTextColor, -} from "../../../colors"; import { objectIdFieldName } from "../../../elc/types"; -import labelClass from "../labelClass"; +import { milepostSymbol } from "../symbol"; /** * Creates the {@link FeatureLayer} that displays located mileposts. @@ -21,7 +16,6 @@ export function createMilepostPointLayer(spatialReference: SpatialReference) { * This is the symbol for the point on the route. */ const milepostLayer = new FeatureLayer({ - labelingInfo: [labelClass], title: "Mileposts", id: "mileposts", listMode: "hide", @@ -42,19 +36,10 @@ export function createMilepostPointLayer(spatialReference: SpatialReference) { return milepostLayer; } -function createRenderer() { - const actualMPSymbol = new SimpleMarkerSymbol({ - color: highwaySignBackgroundColor, - size: 12, - style: "circle", - outline: { - width: 1, - color: highwaySignTextColor, - }, - }); +function createRenderer() { const renderer = new SimpleRenderer({ - symbol: actualMPSymbol, + symbol: milepostSymbol, }); return renderer; } diff --git a/src/layers/MilepostLayer/symbol/index.ts b/src/layers/MilepostLayer/symbol/index.ts new file mode 100644 index 00000000..d83c728d --- /dev/null +++ b/src/layers/MilepostLayer/symbol/index.ts @@ -0,0 +1,91 @@ +import CIMSymbol from "@arcgis/core/symbols/CIMSymbol"; + +export const primitiveOverrides: __esri.PrimitiveOverride[] = [ + { + primitiveName: "milepostLabel", + propertyName: "textString", + type: "CIMPrimitiveOverride", + valueExpressionInfo: { + expression: "`${$feature.Route}\\n${$feature.SRMP}${$feature.Back}`", + type: "CIMExpressionInfo", + returnType: "String", + }, + }, +]; +const cimTextSymbol: __esri.CIMTextSymbol = { + type: "CIMTextSymbol", + angle: 0, + fontFamilyName: "Noto Sans", + height: 9, + horizontalAlignment: "Center", + offsetX: 0, + offsetY: 0, + strikethrough: false, + underline: false, + symbol: { + type: "CIMPolygonSymbol", + symbolLayers: [ + { + type: "CIMSolidFill", + enable: true, + color: [255, 255, 255, 255], + }, + ], + }, + haloSymbol: { + type: "CIMPolygonSymbol", + symbolLayers: [{ type: "CIMSolidFill", enable: true, color: [0, 0, 0, 0] }], + }, + verticalAlignment: "Baseline", + callout: { + type: "CIMBackgroundCallout", + backgroundSymbol: { + type: "CIMPolygonSymbol", + symbolLayers: [ + { + type: "CIMSolidFill", + color: [1, 115, 92, 255], + enable: true, + }, + { + type: "CIMSolidStroke", + color: [0, 0, 0, 0], + width: 1, + enable: true, + }, + ], + }, + }, +}; +const cimMarkerGraphic: __esri.CIMMarkerGraphic = { + type: "CIMMarkerGraphic", + geometry: { x: 0, y: 0 }, + primitiveName: "milepostLabel", + symbol: cimTextSymbol, + textString: "000SPABCDEF\n0000.00B", +}; +export const cimVectorMarker: __esri.CIMVectorMarker = { + type: "CIMVectorMarker", + enable: true, + anchorPointUnits: "Relative", + size: 10, + frame: { xmin: -5, ymin: -5, xmax: 5, ymax: 5 }, + markerGraphics: [cimMarkerGraphic], + scaleSymbolsProportionally: true, + respectFrame: true, +}; +const cimPointSymbol: __esri.CIMPointSymbol = { + type: "CIMPointSymbol", + symbolLayers: [cimVectorMarker], + scaleX: 1, + angleAlignment: "Display", +}; +export const milepostSymbol = new CIMSymbol({ + data: { + primitiveOverrides, + type: "CIMSymbolReference", + symbol: cimPointSymbol, + }, +}); + +export default milepostSymbol; diff --git a/tools/copy-fonts.mjs b/tools/copy-fonts.mjs index b5cc07b2..66e6f557 100644 --- a/tools/copy-fonts.mjs +++ b/tools/copy-fonts.mjs @@ -1,3 +1,5 @@ +// @ts-check + /** * Copies fonts from node_modules into public/fonts. * @example @@ -39,7 +41,7 @@ const overpassPath = join( * @yields - A tuple: source & destination paths */ async function* enumerateFiles() { - /** @type {Dir} */ + /** @type {import("node:fs").Dir|undefined} */ let dir; try { dir = await opendir(overpassPath, { @@ -66,7 +68,7 @@ async function* enumerateFiles() { } } } finally { - dir.close(); + dir?.close(); } } diff --git a/tools/create-cim.ts b/tools/create-cim.ts new file mode 100644 index 00000000..b8f01c36 --- /dev/null +++ b/tools/create-cim.ts @@ -0,0 +1,18 @@ +import TextSymbol from "@arcgis/core/symbols/TextSymbol"; +import { convertToCIMSymbol } from "@arcgis/core/symbols/support/cimConversionUtils"; +import { + highwaySignBackgroundColor, + highwaySignTextColor, +} from "../src/colors"; + +const simpleSymbol = new TextSymbol({ + color: highwaySignTextColor, + backgroundColor: highwaySignBackgroundColor, + text: "000SPABCDEF\n0000.00B", +}); + +const cimSymbol = convertToCIMSymbol( + simpleSymbol as unknown as __esri.SimpleMarkerSymbol, +); + +console.log(JSON.stringify(cimSymbol.toJSON())); diff --git a/vite.config.ts b/vite.config.ts index 3d7788aa..67f97f35 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,9 +1,11 @@ /// /// import browserslistToEsbuild from "browserslist-to-esbuild"; -import type { ExternalOption } from "rollup"; -import { defineConfig } from "vite"; +import { type BuildEnvironmentOptions, defineConfig } from "vite"; +type ExternalOption = NonNullable< + BuildEnvironmentOptions["rollupOptions"] +>["external"]; type ExternalFunction = Exclude; /**