diff --git a/config/webpack.config.js b/config/webpack.config.js index f276904db7..bf62c4e0fc 100644 --- a/config/webpack.config.js +++ b/config/webpack.config.js @@ -207,6 +207,9 @@ export default async (env) => { format: { comments: false, }, + compress: { + pure_funcs: ['console.debug'], // Removes console.debug + }, }, }), ] : [], diff --git a/package-lock.json b/package-lock.json index 0280a58c06..661b6b22ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,10 +8,6 @@ "name": "squadcalc", "version": "35.1.0", "license": "MIT", - "dependencies": { - "leaflet-arrowheads": "^1.4.0", - "leaflet-polylinedecorator": "^1.6.0" - }, "devDependencies": { "@types/leaflet": "^1.9.15", "@types/node": "^22.10.3", @@ -33,6 +29,7 @@ "leaflet": "^1.9.4", "leaflet-edgebuffer": "^1.0.6", "leaflet-loader": "^0.0.3", + "leaflet-polylinedecorator": "^1.6.0", "leaflet-spin": "^1.1.2", "mini-css-extract-plugin": "^2.9.2", "mkdirp": "^3.0.1", @@ -86,9 +83,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", - "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", "dev": true, "license": "MIT", "engines": { @@ -137,14 +134,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -167,13 +164,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", + "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", @@ -330,9 +327,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, "license": "MIT", "engines": { @@ -358,15 +355,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-member-expression-to-functions": "^7.25.9", "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/traverse": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -449,13 +446,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.26.3" + "@babel/types": "^7.26.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -663,13 +660,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1093,13 +1090,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.26.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1595,17 +1592,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.26.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", - "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.26.3", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", "@babel/template": "^7.25.9", - "@babel/types": "^7.26.3", + "@babel/types": "^7.26.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1624,9 +1621,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "dev": true, "license": "MIT", "dependencies": { @@ -1704,6 +1701,29 @@ "@csstools/css-tokenizer": "^3.0.3" } }, + "node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, "node_modules/@discoveryjs/json-ext": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", @@ -1794,9 +1814,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", - "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1831,9 +1851,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", - "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", "dev": true, "license": "MIT", "engines": { @@ -1851,12 +1871,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", - "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -2964,6 +2985,41 @@ "tslib": "2" } }, + "node_modules/@keyv/serialize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.0.2.tgz", + "integrity": "sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3" + } + }, + "node_modules/@keyv/serialize/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", @@ -3619,9 +3675,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.3.tgz", - "integrity": "sha512-JEhMNwUJt7bw728CydvYzntD0XJeTmDnvwLlbfbAhE7Tbslm/ax6bdIiUwTgeVlZTsJQPwZwKpAkyDtIjsvx3g==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.5.tgz", + "integrity": "sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==", "dev": true, "license": "MIT", "dependencies": { @@ -3710,9 +3766,9 @@ "license": "MIT" }, "node_modules/@types/leaflet": { - "version": "1.9.15", - "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.15.tgz", - "integrity": "sha512-7UuggAuAs+mva66gtf2OTB1nEhzU/9JED93TIaOEgvFMvG/dIGQaukHE7izHo1Zd+Ko1L4ETUw7TBc8yUxevpg==", + "version": "1.9.16", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.16.tgz", + "integrity": "sha512-wzZoyySUxkgMZ0ihJ7IaUIblG8Rdc8AbbZKLneyn+QjYsj5q1QU7TEKYqwTr10BGSzY5LI7tJk9Ifo+mEjdFRw==", "dev": true, "license": "MIT", "dependencies": { @@ -3734,9 +3790,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.3.tgz", - "integrity": "sha512-DifAyw4BkrufCILvD3ucnuN8eydUfc/C1GlyrnI+LK6543w5/L3VeVgf05o3B4fqSXP1dKYLOZsKfutpxPzZrw==", + "version": "22.10.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.6.tgz", + "integrity": "sha512-qNiuwC4ZDAUNcY47xgaSuS92cjf8JbSUoaKS77bmLG1rU7MlATVSiw/IlrjtIyyskXBZ8KkNfjK/P5na7rgXbQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3768,9 +3824,9 @@ "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.17", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", - "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", "dev": true, "license": "MIT" }, @@ -4585,9 +4641,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", - "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -4685,6 +4741,27 @@ "node": ">= 0.8" } }, + "node_modules/cacheable": { + "version": "1.8.7", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.8.7.tgz", + "integrity": "sha512-AbfG7dAuYNjYxFUtL1lAqmlWdxczCJ47w7cFjhGcnGnUdwSo6VgmSojfoW3tUI12HUkgTJ5kqj78yyq6TsFtlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.6.0", + "keyv": "^5.2.3" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.2.3.tgz", + "integrity": "sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.0.2" + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -4798,9 +4875,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001690", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", - "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", + "version": "1.0.30001692", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz", + "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==", "dev": true, "funding": [ { @@ -5169,13 +5246,13 @@ } }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.24.3" }, "funding": { "type": "opencollective", @@ -6057,9 +6134,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.76", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz", - "integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==", + "version": "1.5.82", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.82.tgz", + "integrity": "sha512-Zq16uk1hfQhyGx5GpwPAYDwddJuSGhtRhgOA2mCxANYaDT79nAeGnaXogMGng4KqLaJUVnOnuL0+TDop9nLOiA==", "dev": true, "license": "ISC" }, @@ -6141,9 +6218,9 @@ } }, "node_modules/es-abstract": { - "version": "1.23.8", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.8.tgz", - "integrity": "sha512-lfab8IzDn6EpI1ibZakcgS6WsfEBiB+43cuJo+wgylx1xKXf+Sp+YR3vFuQwC/u3sxYwV8Cxe3B0DpVUu/WiJQ==", + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, "license": "MIT", "dependencies": { @@ -6158,10 +6235,11 @@ "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", + "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.6", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", @@ -6182,11 +6260,12 @@ "object-inspect": "^1.13.3", "object-keys": "^1.1.1", "object.assign": "^4.1.7", - "own-keys": "^1.0.0", + "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.3", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", @@ -6232,9 +6311,9 @@ "license": "MIT" }, "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.0.tgz", + "integrity": "sha512-Ujz8Al/KfOVR7fkaghAB1WvnLsdYxHDWmfoi2vlA2jZWRg31XhIC1a4B+/I24muD8iSbHxJ1JkrfqmWb65P/Mw==", "dev": true, "license": "MIT", "dependencies": { @@ -6245,15 +6324,16 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.4", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -6308,19 +6388,19 @@ } }, "node_modules/eslint": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", - "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", + "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.17.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", @@ -6582,9 +6662,9 @@ "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -6592,7 +6672,7 @@ "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -6626,10 +6706,20 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz", + "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { @@ -7013,22 +7103,22 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", - "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", - "dunder-proto": "^1.0.0", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", + "get-proto": "^1.0.0", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "math-intrinsics": "^1.0.0" + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -7044,6 +7134,20 @@ "dev": true, "license": "ISC" }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-symbol-description": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", @@ -7366,6 +7470,13 @@ "he": "bin/he" } }, + "node_modules/hookified": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.6.0.tgz", + "integrity": "sha512-se7cpwTA+iA/eY548Bu03JJqBiEZAqU2jnyKdj5B5qurtBg64CZGHTgqCv4Yh7NWu6FGI09W61MCq+NoPj9GXA==", + "dev": true, + "license": "MIT" + }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -7633,9 +7744,9 @@ } }, "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", + "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", "dev": true, "license": "MIT" }, @@ -7703,9 +7814,9 @@ } }, "node_modules/i18next": { - "version": "24.2.0", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-24.2.0.tgz", - "integrity": "sha512-ArJJTS1lV6lgKH7yEf4EpgNZ7+THl7bsGxxougPYiXRTJ/Fe1j08/TBpV9QsXCIYVfdE/HWG/xLezJ5DOlfBOA==", + "version": "24.2.1", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-24.2.1.tgz", + "integrity": "sha512-Q2wC1TjWcSikn1VAJg13UGIjc+okpFxQTxjVAymOnSA3RpttBQNMPf2ovcgoFVsV4QNxTfNZMAxorXZXsk4fBA==", "dev": true, "funding": [ { @@ -7996,13 +8107,16 @@ "license": "MIT" }, "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", + "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -8181,13 +8295,16 @@ "license": "MIT" }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -8828,18 +8945,9 @@ "version": "1.9.4", "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "dev": true, "license": "BSD-2-Clause" }, - "node_modules/leaflet-arrowheads": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/leaflet-arrowheads/-/leaflet-arrowheads-1.4.0.tgz", - "integrity": "sha512-aIjsmoWe1VJXaGOpKpS6E8EzN2vpx3GGCNP/FxQteLVzAg5xMID7elf9hj/1CWLJo8FuGRjSvKkUQDj7mocrYA==", - "license": "MIT", - "dependencies": { - "leaflet": "^1.7.1", - "leaflet-geometryutil": "^0.10.0" - } - }, "node_modules/leaflet-edgebuffer": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/leaflet-edgebuffer/-/leaflet-edgebuffer-1.0.6.tgz", @@ -8847,15 +8955,6 @@ "dev": true, "license": "MIT" }, - "node_modules/leaflet-geometryutil": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/leaflet-geometryutil/-/leaflet-geometryutil-0.10.3.tgz", - "integrity": "sha512-Qeas+KsnenE0Km/ydt8km3AqFe7kJhVwuLdbCYM2xe2epsxv5UFEaVJiagvP9fnxS8QvBNbm7DJlDA0tkKo9VA==", - "license": "BSD-3-Clause", - "dependencies": { - "leaflet": "^1.6.0" - } - }, "node_modules/leaflet-loader": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/leaflet-loader/-/leaflet-loader-0.0.3.tgz", @@ -8867,6 +8966,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/leaflet-polylinedecorator/-/leaflet-polylinedecorator-1.6.0.tgz", "integrity": "sha512-kn3krmZRetgvN0wjhgYL8kvyLS0tUogAl0vtHuXQnwlYNjbl7aLQpkoFUo8UB8gVZoB0dhI4Tb55VdTJAcYzzQ==", + "dev": true, "license": "MIT", "dependencies": { "leaflet-rotatedmarker": "^0.2.0" @@ -8876,6 +8976,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/leaflet-rotatedmarker/-/leaflet-rotatedmarker-0.2.0.tgz", "integrity": "sha512-yc97gxLXwbZa+Gk9VCcqI0CkvIBC9oNTTjFsHqq4EQvANrvaboib4UdeQLyTnEqDpaXHCqzwwVIDHtvz2mUiDg==", + "dev": true, "license": "MIT" }, "node_modules/leaflet-spin": { @@ -9109,9 +9210,9 @@ } }, "node_modules/memfs": { - "version": "4.15.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.15.3.tgz", - "integrity": "sha512-vR/g1SgqvKJgAyYla+06G4p/EOcEmwhYuVb1yc1ixcKf8o/sh7Zngv63957ZSNd1xrZJoinmNyDf2LzuP8WJXw==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.17.0.tgz", + "integrity": "sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -10049,9 +10150,9 @@ } }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", "dev": true, "funding": [ { @@ -10069,7 +10170,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -10078,13 +10179,13 @@ } }, "node_modules/postcss-calc": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.0.2.tgz", - "integrity": "sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.0.tgz", + "integrity": "sha512-uQ/LDGsf3mgsSUEXmAt3VsCSHR3aKqtEIkmB+4PhzYwRYOW5MZs/GhCCFpsOtJJkP6EC6uGipbrnaTjqaJZcJw==", "dev": true, "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.1.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -10146,6 +10247,20 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-discard-comments/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-discard-duplicates": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.1.tgz", @@ -10228,6 +10343,20 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-minify-font-values": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.0.tgz", @@ -10297,6 +10426,20 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-modules-extract-imports": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", @@ -10328,20 +10471,6 @@ "postcss": "^8.1.0" } }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/postcss-modules-scope": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", @@ -10358,20 +10487,6 @@ "postcss": "^8.1.0" } }, - "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", @@ -10642,9 +10757,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10688,6 +10803,20 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-unique-selectors/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -11036,13 +11165,13 @@ } }, "node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 14.16.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -11077,19 +11206,19 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz", - "integrity": "sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "dunder-proto": "^1.0.1", - "es-abstract": "^1.23.6", + "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" }, "engines": { @@ -11137,15 +11266,17 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", "set-function-name": "^2.0.2" }, "engines": { @@ -11578,9 +11709,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.83.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.0.tgz", - "integrity": "sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==", + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.4.tgz", + "integrity": "sha512-B1bozCeNQiOgDcLd33e2Cs2U60wZwjUUXzh900ZyQF5qUasvMdDZYbQ566LJu7cqR+sAHlAfO6RMkaID5s6qpA==", "dev": true, "license": "MIT", "dependencies": { @@ -11942,6 +12073,21 @@ "node": ">= 0.4" } }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -12585,10 +12731,24 @@ "postcss": "^8.4.31" } }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/stylelint": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.12.0.tgz", - "integrity": "sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg==", + "version": "16.13.2", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.13.2.tgz", + "integrity": "sha512-wDlgh0mRO9RtSa3TdidqHd0nOG8MmUyVKl+dxA6C1j8aZRzpNeEgdhFmU5y4sZx4Fc6r46p0fI7p1vR5O2DZqA==", "dev": true, "funding": [ { @@ -12611,16 +12771,16 @@ "colord": "^2.9.3", "cosmiconfig": "^9.0.0", "css-functions-list": "^3.2.3", - "css-tree": "^3.0.1", + "css-tree": "^3.1.0", "debug": "^4.3.7", - "fast-glob": "^3.3.2", + "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^9.1.0", + "file-entry-cache": "^10.0.5", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^6.0.2", + "ignore": "^7.0.1", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "known-css-properties": "^0.35.0", @@ -12767,43 +12927,6 @@ "stylelint": "^16.0.2" } }, - "node_modules/stylelint-scss/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylelint/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, "node_modules/stylelint/node_modules/balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", @@ -12839,30 +12962,25 @@ } }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz", - "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==", + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.0.5.tgz", + "integrity": "sha512-umpQsJrBNsdMDgreSryMEXvJh66XeLtZUwA8Gj7rHGearGufUFv6rB/bcXRFsiGWw/VeSUgUofF4Rf2UKEOrTA==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^5.0.0" - }, - "engines": { - "node": ">=18" + "flat-cache": "^6.1.5" } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", - "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.5.tgz", + "integrity": "sha512-QR+2kN38f8nMfiIQ1LHYjuDEmZNZVjxuxY+HufbS3BW0EX01Q5OnH7iduOYRutmgiXb797HAKcXUeXrvRjjgSQ==", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.3.1", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=18" + "cacheable": "^1.8.7", + "flatted": "^3.3.2", + "hookified": "^1.6.0" } }, "node_modules/stylelint/node_modules/globby": { @@ -12897,9 +13015,9 @@ } }, "node_modules/stylelint/node_modules/ignore": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", - "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", + "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", "dev": true, "license": "MIT", "engines": { @@ -12919,20 +13037,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/stylelint/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -13114,9 +13218,9 @@ } }, "node_modules/svgo/node_modules/domutils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.1.tgz", - "integrity": "sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -13692,9 +13796,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "dev": true, "funding": [ { @@ -13713,7 +13817,7 @@ "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" diff --git a/package.json b/package.json index 46094f8a69..f0b8922640 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "squadcalc", - "version": "35.1.0", + "version": "36.0.0", "description": "A Complete Mortar Calculator and Map Lane Finder for Squad", "author": "Maxime 'sharkman' Boussard", "license": "MIT", diff --git a/public/icons/ally/deployables/rallypoint.webp b/public/icons/ally/deployables/rallypoint.webp new file mode 100644 index 0000000000..6fb1d80454 Binary files /dev/null and b/public/icons/ally/deployables/rallypoint.webp differ diff --git a/public/icons/enemy/deployables/rallypoint.webp b/public/icons/enemy/deployables/rallypoint.webp new file mode 100644 index 0000000000..3fd525183b Binary files /dev/null and b/public/icons/enemy/deployables/rallypoint.webp differ diff --git a/public/locales/en/deployables.json b/public/locales/en/deployables.json deleted file mode 100644 index 5461dd55e8..0000000000 --- a/public/locales/en/deployables.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "repairStation": "REPAIR STATION", - "ammoBox": "AMMOCRATES", - "hab": "HAB", - "tow": "TOW" -} \ No newline at end of file diff --git a/public/locales/en/settings.json b/public/locales/en/settings.json index 443ba0dc1d..5df9bd09e9 100644 --- a/public/locales/en/settings.json +++ b/public/locales/en/settings.json @@ -9,6 +9,7 @@ "useClassicCursor": "Use Classic Cursor", "mapAnimationSettings": "Pan/Zoom Animations", "highquality": "Very High quality maps", + "contextMenu": "Advanced Context Menu", "fontSize": "Font Size", "verySmall": "Very Small", "small": "Small", @@ -36,6 +37,7 @@ "revealLayerOnHover" : "Reveal layer when hovering a flag", "circlesFlags": "Show flag as circles", "copyNextFlags": "Auto-copy next flags to clipboard", + "showFlagsDistance": "Show distance between flags", "shortcuts": "Shortcuts", "enter": "Enter focus mode, hiding UI buttons", "deleteLastTarget": "Delete last placed target on the map", diff --git a/public/locales/en/tooltips.json b/public/locales/en/tooltips.json index a66b911c73..325745891e 100644 --- a/public/locales/en/tooltips.json +++ b/public/locales/en/tooltips.json @@ -38,5 +38,7 @@ "lowAndHighTooltip": "Show both high and low angle for weapons that can shoot in both modes", "autoLaneTooltip": "If only one flag is available on layer's next step, squadcalc will automatically try to avance to the next lane", "capZoneOnHoverTooltip": "Instead of showing capzones at all times, only show them when hovering over a flag", + "contextMenuTooltip": "Right click on the map reveal a context menu allowing you to place markers", "revealLayerOnHoverTooltip": "Hovering a flag will fade out the unreachable flags if this flag happens to be clicked" + } \ No newline at end of file diff --git a/public/locales/fr/settings.json b/public/locales/fr/settings.json index 28f5043c1d..3a43d60c80 100644 --- a/public/locales/fr/settings.json +++ b/public/locales/fr/settings.json @@ -9,6 +9,7 @@ "useClassicCursor": "Curseur classique", "mapAnimationSettings": "Animations de zoom", "highquality": "Carte haute qualité", + "contextMenu": "Menu contextuel avancé", "fontSize": "Taille de la police", "verySmall": "Très petite", "small": "Petite", @@ -36,6 +37,7 @@ "revealLayerOnHover": "Révéler le layer au survol des drapeaux", "circlesFlags": "Drapeaux en forme de cercles", "copyNextFlags": "Copier les prochains drapeaux", + "showFlagsDistance": "Afficher la distance entre les points", "shortcuts": "Raccourcis", "enter": "Entrer en mode focus, masquant les boutons de l'interface utilisateur", "deleteLastTarget": "Supprimer la dernière cible placée sur la carte", diff --git a/public/locales/fr/tooltips.json b/public/locales/fr/tooltips.json index dda6e8a479..b9a511510f 100644 --- a/public/locales/fr/tooltips.json +++ b/public/locales/fr/tooltips.json @@ -33,6 +33,7 @@ "targetAnimationTooltip": "Désactiver pour remplacer l'icône des marqueurs par des cercles minimalistes", "performanceWarning": "Peut causer des problèmes de performance", "markerDragTooltip": "Affiche la grille lors du déplacement", + "contextMenuTooltip": "Cliquez avec le bouton droit sur la carte pour révéler un menu permettant de placer des marqueurs", "copyNextFlagsTooltip": "Lorsque vous cliquez sur un drapeau, ajoute automatiquement les drapeaux suivants au presse-papiers", "copyTargetTooltip": "Après avoir placé/déplacé une cible, copie automatiquement les calculs dans le presse-papiers", "lowAndHighTooltip": "Afficher à la fois l'angle haut et bas pour les armes permettant de tirer dans les deux modes", diff --git a/public/locales/ru/settings.json b/public/locales/ru/settings.json index 616e5782b8..899a122d82 100644 --- a/public/locales/ru/settings.json +++ b/public/locales/ru/settings.json @@ -9,6 +9,7 @@ "useClassicCursor": "Классический курсор", "mapAnimationSettings": "Анимация панорамирования и зума", "highquality": "HQ карты", + "contextMenu": "Расширенное контекстное меню", "fontSize": "Размер шрифта", "verySmall": "Очень маленький", "small": "Маленький", @@ -36,6 +37,7 @@ "revealLayerOnHover": "Показать слой при наведении на флаг", "circlesFlags": "Показать флаги в виде кругов", "copyNextFlags": "Автокопирование следующих флагов", + "showFlagsDistance": "Показать расстояние между флагами", "shortcuts": "Ярлыки", "enter": "Войти в режим фокуса, скрыв кнопки интерфейса", "deleteLastTarget": "Удалить последнюю размещённую цель на карте", diff --git a/public/locales/ru/tooltips.json b/public/locales/ru/tooltips.json index 92a5f076e8..0080820a55 100644 --- a/public/locales/ru/tooltips.json +++ b/public/locales/ru/tooltips.json @@ -33,6 +33,7 @@ "targetAnimationTooltip": "Отключите, чтобы заменить значки маркеров минималистичными кругами", "performanceWarning": "Может вызвать проблемы с производительностью", "markerDragTooltip": "Показать сетку во время перетаскивания", + "contextMenuTooltip": "Щелкните правой кнопкой мыши по карте, чтобы открыть контекстное меню и разместить маркеры", "copyNextFlagsTooltip": "При нажатии на флаг автоматически добавлять следующие флаги в буфер обмена", "copyTargetTooltip": "После размещения/перетаскивания цели автоматически копировать вычисления в буфер обмена", "lowAndHighTooltip": "Показать как высокий, так и низкий угол для оружия, способного стрелять в обоих режимах", diff --git a/public/locales/uk/settings.json b/public/locales/uk/settings.json index 2f59f1be8d..06041ae186 100644 --- a/public/locales/uk/settings.json +++ b/public/locales/uk/settings.json @@ -9,6 +9,7 @@ "useClassicCursor": "классический слайдер", "mapAnimationSettings": "Анімації масштабування", "highquality": "Карта високої якості", + "contextMenu": "Розширене контекстне меню", "fontSize": "Розмір шрифту", "verySmall": "Дуже маленький", "small": "Маленький", @@ -36,6 +37,7 @@ "revealLayerOnHover": "Показати шар при наведенні на прапор", "circlesFlags": "Показати прапори у вигляді кіл", "copyNextFlags": "Автокопіювання наступних прапорів", + "showFlagsDistance": "Показати відстань між прапорами", "shortcuts": "Ярлики", "enter": "Увійти в режим фокусу, приховуючи кнопки інтерфейсу", "deleteLastTarget": "Видалити останню розміщену ціль на карті", diff --git a/public/locales/uk/tooltips.json b/public/locales/uk/tooltips.json index c747855812..46ecfb43c6 100644 --- a/public/locales/uk/tooltips.json +++ b/public/locales/uk/tooltips.json @@ -33,6 +33,7 @@ "targetAnimationTooltip": "Вимкніть, щоб замінити іконки маркерів мінімалістичними колами", "performanceWarning": "Може спричинити проблеми з продуктивністю", "markerDragTooltip": "Показати сітку під час перетягування", + "contextMenuTooltip": "Клацніть правою кнопкою миші по карті, щоб відкрити контекстне меню та розмістити маркери", "copyNextFlagsTooltip": "При натисканні на прапор автоматично додавати наступні прапори в буфер обміну", "copyTargetTooltip": "Після розміщення/перетягування цілі автоматично копіювати обчислення в буфер обміну", "lowAndHighTooltip": "Показати як високий, так і низький кут для зброї, яка може стріляти в обох режимах", diff --git a/public/locales/zh/settings.json b/public/locales/zh/settings.json index 2ab0cb228e..f478289ac8 100644 --- a/public/locales/zh/settings.json +++ b/public/locales/zh/settings.json @@ -9,6 +9,7 @@ "useClassicCursor": "不使用十字线光标", "mapAnimationSettings": "平移/缩放动画", "highquality": "高质量底图文件", + "contextMenu": "高级右键菜单", "fontSize": "字体大小", "verySmall": "非常小", "small": "小", @@ -36,6 +37,7 @@ "revealLayerOnHover": "悬停标志时显示图层", "circlesFlags": "将标志显示为圆形", "copyNextFlags": "自动复制下一个旗帜", + "showFlagsDistance": "显示旗帜之间的距离", "shortcuts": "快捷键", "enter": "进入聚焦模式,隐藏界面按钮", "deleteLastTarget": "删除地图上最后放置的目标", diff --git a/public/locales/zh/tooltips.json b/public/locales/zh/tooltips.json index 04f7b1a734..e75b62dd48 100644 --- a/public/locales/zh/tooltips.json +++ b/public/locales/zh/tooltips.json @@ -33,6 +33,7 @@ "targetAnimationTooltip": "禁用以将标记图标替换为简约的圆形", "performanceWarning": "可能会导致性能问题", "markerDragTooltip": "拖动时显示网格", + "contextMenuTooltip": "右键单击地图以显示上下文菜单,允许您放置标记", "copyNextFlagsTooltip": "单击旗帜时,自动将下一个旗帜添加到剪贴板", "copyTargetTooltip": "放置/拖动目标后,自动将计算复制到剪贴板", "lowAndHighTooltip": "显示可以以高角度和低角度射击的武器的两种角度", diff --git a/src/components/contextMenu/contextMenu.html b/src/components/contextMenu/contextMenu.html index 4718defd70..1dcbce2b56 100644 --- a/src/components/contextMenu/contextMenu.html +++ b/src/components/contextMenu/contextMenu.html @@ -12,8 +12,8 @@ - + @@ -198,8 +201,8 @@ - + diff --git a/src/components/contextMenu/contextMenu.scss b/src/components/contextMenu/contextMenu.scss index 56c5afd368..d8e4b2e0d9 100644 --- a/src/components/contextMenu/contextMenu.scss +++ b/src/components/contextMenu/contextMenu.scss @@ -62,10 +62,12 @@ // COMMON + .middleContext { background: url('../../../public/icons/shared/ctx/T_icon_Target.webp') no-repeat center center; background-size: contain; } + .arrowBlue, .arrowRed { background: url('../../../public/icons/shared/ctx/arrow.webp') no-repeat center center; background-size: contain; @@ -84,194 +86,243 @@ } // ALLY INFANTRY + .friendlyInf { - background: url('../../img/icons/map/ally/infantry/map_genericinfantry.webp') no-repeat center center; + background: url('../../../public/icons/ally/infantry/map_genericinfantry.webp') no-repeat center center; background-size: contain; } + .mapHAT { background: url('../../../public/icons/ally/infantry/map_hat.webp') no-repeat center center; background-size: contain; } + .mapInfAntiAir { background: url('../../../public/icons/ally/infantry/map_infantiair.webp') no-repeat center center; background-size: contain; } + .mapInfMG { background: url('../../../public/icons/ally/infantry/map_infmg.webp') no-repeat center center; background-size: contain; } + .mapLAT { background: url('../../../public/icons/ally/infantry/map_lat.webp') no-repeat center center; background-size: contain; } + .mapMarksmanSniper { background: url('../../../public/icons/ally/infantry/map_marksmansniper.webp') no-repeat center center; background-size: contain; } // ALLY DEPLOYABLES + .fob { background: url('../../../public/icons/ally/deployables/deployable_fob.webp') no-repeat center center; background-size: contain; } + +.hab { + background: url('../../../public/icons/ally/deployables/deployable_hab.webp') no-repeat center center; + background-size: contain; +} + +.rally { + background: url('../../../public/icons/ally/deployables/rallypoint.webp') no-repeat center center; + background-size: contain; +} + .repairStation { background: url('../../../public/icons/ally/deployables/deployable_repairstation.webp') no-repeat center center; background-size: contain; } + .ammoBox { background: url('../../../public/icons/ally/deployables/deployable_ammocrate.webp') no-repeat center center; background-size: contain; } + .allyhelipad { background: url('../../../public/icons/ally/deployables/deployable_helipad.webp') no-repeat center center; background-size: contain; } -.hab { - background: url('../../../public/icons/ally/deployables/deployable_hab.webp') no-repeat center center; - background-size: contain; -} + + + .airgun { background: url('../../../public/icons/ally/deployables/deployable_AntiAirGun.webp') no-repeat center center; background-size: contain; } + .antiTankGun { background: url('../../../public/icons/ally/deployables/deployable_anti_tank_gun.webp') no-repeat center center; background-size: contain; } + .tow { background: url('../../../public/icons/ally/deployables/deployable_anti_tank.webp') no-repeat center center; background-size: contain; } + .gmg { background: url('../../../public/icons/ally/deployables/deployable_GMG.webp') no-repeat center center; background-size: contain; } -.hab { - background: url('../../../public/icons/ally/deployables/deployable_hab.webp') no-repeat center center; - background-size: contain; -} + .hellcannon { background: url('../../../public/icons/ally/deployables/deployable_hellcannon.webp') no-repeat center center; background-size: contain; } + .hmg { background: url('../../../public/icons/ally/deployables/deployable_HMG.webp') no-repeat center center; background-size: contain; } + .mortars { background: url('../../../public/icons/ally/deployables/deployable_mortars.webp') no-repeat center center; background-size: contain; } + .ub32rockets { background: url('../../../public/icons/ally/deployables/deployable_ub32rockets.webp') no-repeat center center; background-size: contain; } + .mine { background: url('../../../public/icons/ally/deployables/map_mine.webp') no-repeat center center; background-size: contain; } // ALLY VEHICLES + .friendly { background: url('../../../public/icons/ally/vehicles/map_truck_logistics.webp') no-repeat center center; background-size: contain; } + .mapMotorcycle { background: url('../../../public/icons/ally/vehicles/map_motorcycle.webp') no-repeat center center; background-size: contain; } + .mapBoatLogistics { background: url('../../../public/icons/ally/vehicles/T_map_boat_logistics.webp') no-repeat center center; background-size: contain; } + .mapBoatOpenturret { background: url('../../../public/icons/ally/vehicles/T_map_boat_openturret.webp') no-repeat center center; background-size: contain; } + .mapJeepTransport { background: url('../../../public/icons/ally/vehicles/map_jeep_transport.webp') no-repeat center center; background-size: contain; } + .mapJeep { background: url('../../../public/icons/ally/vehicles/map_jeep.webp') no-repeat center center; background-size: contain; } + .mapJeepLogistics { background: url('../../../public/icons/ally/vehicles/map_jeep_logistics.webp') no-repeat center center; background-size: contain; } + .mapJeepAntitank { background: url('../../../public/icons/ally/vehicles/map_jeep_antitank.webp') no-repeat center center; background-size: contain; } + .mapJeepArtillery { background: url('../../../public/icons/ally/vehicles/map_jeep_artillery.webp') no-repeat center center; background-size: contain; } + .mapTruckTransport { background: url('../../../public/icons/ally/vehicles/map_truck_transport.webp') no-repeat center center; background-size: contain; } + .mapTruckTransportArmed { background: url('../../../public/icons/ally/vehicles/map_truck_transport_armed.webp') no-repeat center center; background-size: contain; } + .mapTruckLogistics, .vehicles { background: url('../../../public/icons/ally/vehicles/map_truck_logistics.webp') no-repeat center center; background-size: contain; } + .mapTruckAntiair { background: url('../../../public/icons/ally/vehicles/map_truck_antiair.webp') no-repeat center center; background-size: contain; } + .mapAPC { background: url('../../../public/icons/ally/vehicles/map_apc.webp') no-repeat center center; background-size: contain; } + .mapIFV { background: url('../../../public/icons/ally/vehicles/map_ifv.webp') no-repeat center center; background-size: contain; } + .mapAntiair { background: url('../../../public/icons/ally/vehicles/map_antiair.webp') no-repeat center center; background-size: contain; } + .mapTrackedapc { background: url('../../../public/icons/ally/vehicles/map_trackedapc.webp') no-repeat center center; background-size: contain; } + .mapTrackedifv { background: url('../../../public/icons/ally/vehicles/map_trackedifv.webp') no-repeat center center; background-size: contain; } + .trackedheavyIFV { background: url('../../../public/icons/ally/vehicles/map_trackedheavyifv.webp') no-repeat center center; background-size: contain; } + .mapTank { background: url('../../../public/icons/ally/vehicles/map_tank.webp') no-repeat center center; background-size: contain; } + .mapHandhelddrone { background: url('../../../public/icons/ally/vehicles/map_handhelddrone.webp') no-repeat center center; background-size: contain; } + .mapTransporthelo { background: url('../../../public/icons/ally/vehicles/map_transporthelo.webp') no-repeat center center; background-size: contain; } + .mapHelicopterLightcas { background: url('../../../public/icons/ally/vehicles/T_map_helicopter_lightcas.webp') no-repeat center center; background-size: contain; } + .mapAttackhelo { background: url('../../../public/icons/ally/vehicles/map_attackhelo.webp') no-repeat center center; background-size: contain; } + .mapJetA10 { background: url('../../../public/icons/ally/vehicles/map_jet_a10.webp') no-repeat center center; background-size: contain; } + .mapUAV { background: url('../../../public/icons/ally/vehicles/T_strategic_uav.webp') no-repeat center center; background-size: contain; @@ -279,186 +330,236 @@ // ENEMY INFANTRY + .enemyMapGenericInfantry, .enemy { background: url('../../../public/icons/enemy/infantry/map_genericinfantry.webp') no-repeat center center; background-size: contain; } + .enemyMapHAT { background: url('../../../public/icons/enemy/infantry/map_hat.webp') no-repeat center center; background-size: contain; } + .enemyMapInfAntiAir { background: url('../../../public/icons/enemy/infantry/map_infantiair.webp') no-repeat center center; background-size: contain; } + .enemyMapInfMG { background: url('../../../public/icons/enemy/infantry/map_infmg.webp') no-repeat center center; background-size: contain; } + .enemyMapLAT { background: url('../../../public/icons/enemy/infantry/map_lat.webp') no-repeat center center; background-size: contain; } + .enemyMapMarksmanSniper { background: url('../../../public/icons/enemy/infantry/map_marksmansniper.webp') no-repeat center center; background-size: contain; } // ENEMY DEPLOYABLES + .enemyrepairStation { background: url('../../../public/icons/enemy/deployables/deployable_repairstation.webp') no-repeat center center; background-size: contain; } -.enemyammoBox { - background: url('../../../public/icons/enemy/deployables/deployable_ammocrate.webp') no-repeat center center; - background-size: contain; -} + .enemyhab { background: url('../../../public/icons/enemy/deployables/deployable_hab.webp') no-repeat center center; background-size: contain; } + +.enemyrally { + background: url('../../../public/icons/enemy/deployables/rallypoint.webp') no-repeat center center; + background-size: contain; +} + +.enemyammoBox { + background: url('../../../public/icons/enemy/deployables/deployable_ammocrate.webp') no-repeat center center; + background-size: contain; +} + .enemyfob { background: url('../../../public/icons/enemy/deployables/deployable_fob.webp') no-repeat center center; background-size: contain; } + .enemymine { background: url('../../../public/icons/enemy/deployables/map_mine.webp') no-repeat center center; background-size: contain; } + .enemytow { background: url('../../../public/icons/enemy/deployables/deployable_anti_tank.webp') no-repeat center center; background-size: contain; } + .enemyhelipad { background: url('../../../public/icons/enemy/deployables/deployable_helipad.webp') no-repeat center center; background-size: contain; } + .enemyantiAirGun { background: url('../../../public/icons/enemy/deployables/deployable_AntiAirGun.webp') no-repeat center center; background-size: contain; } + .enemyub32rockets { background: url('../../../public/icons/enemy/deployables/deployable_ub32rockets.webp') no-repeat center center; background-size: contain; } + .enemyGMG { background: url('../../../public/icons/enemy/deployables/deployable_GMG.webp') no-repeat center center; background-size: contain; } + .enemyantiTankGun { background: url('../../../public/icons/enemy/deployables/deployable_anti_tank_gun.webp') no-repeat center center; background-size: contain; } + .enemyhellcannon { background: url('../../../public/icons/enemy/deployables/deployable_hellcannon.webp') no-repeat center center; background-size: contain; } + .enemyHMG { background: url('../../../public/icons/enemy/deployables/deployable_HMG.webp') no-repeat center center; background-size: contain; } + .enemymortars { background: url('../../../public/icons/enemy/deployables/deployable_mortars.webp') no-repeat center center; background-size: contain; } // ENEMY VEHICLES + .enemymapMotorcycle { background: url('../../../public/icons/enemy/vehicles/map_motorcycle.webp') no-repeat center center; background-size: contain; } + .enemymapBoatLogistics { background: url('../../../public/icons/enemy/vehicles/T_map_boat_logistics.webp') no-repeat center center; background-size: contain; } + .enemymapBoatOpenturret { background: url('../../../public/icons/enemy/vehicles/T_map_boat_openturret.webp') no-repeat center center; background-size: contain; } + .enemymapJeepTransport { background: url('../../../public/icons/enemy/vehicles/map_jeep_transport.webp') no-repeat center center; background-size: contain; } + .enemymapJeep { background: url('../../../public/icons/enemy/vehicles/map_jeep.webp') no-repeat center center; background-size: contain; } + .enemymapJeepLogistics { background: url('../../../public/icons/enemy/vehicles/map_jeep_logistics.webp') no-repeat center center; background-size: contain; } + .enemymapJeepAntitank { background: url('../../../public/icons/enemy/vehicles/map_jeep_antitank.webp') no-repeat center center; background-size: contain; } + .enemymapJeepArtillery { background: url('../../../public/icons/enemy/vehicles/map_jeep_artillery.webp') no-repeat center center; background-size: contain; } + .enemymapTruckTransport { background: url('../../../public/icons/enemy/vehicles/map_truck_transport.webp') no-repeat center center; background-size: contain; } + .enemymapTruckTransportArmed { background: url('../../../public/icons/enemy/vehicles/map_truck_transport_armed.webp') no-repeat center center; background-size: contain; } + .enemymapTruckLogistics, .enemyVehicles { background: url('../../../public/icons/enemy/vehicles/map_truck_logistics.webp') no-repeat center center; background-size: contain; } + .enemymapTruckAntiair { background: url('../../../public/icons/enemy/vehicles/map_truck_antiair.webp') no-repeat center center; background-size: contain; } + .enemymapAPC { background: url('../../../public/icons/enemy/vehicles/map_apc.webp') no-repeat center center; background-size: contain; } + .enemymapIFV { background: url('../../../public/icons/enemy/vehicles/map_ifv.webp') no-repeat center center; background-size: contain; } + .enemymapAntiair { background: url('../../../public/icons/enemy/vehicles/map_antiair.webp') no-repeat center center; background-size: contain; } + .enemymapTrackedapc { background: url('../../../public/icons/enemy/vehicles/map_trackedapc.webp') no-repeat center center; background-size: contain; } + .enemymapTrackedifv { background: url('../../../public/icons/enemy/vehicles/map_trackedifv.webp') no-repeat center center; background-size: contain; } + .enemytrackedheavyIFV { background: url('../../../public/icons/enemy/vehicles/map_trackedheavyifv.webp') no-repeat center center; background-size: contain; } + .enemymapTank { background: url('../../../public/icons/enemy/vehicles/map_tank.webp') no-repeat center center; background-size: contain; } + .enemymapHandhelddrone { background: url('../../../public/icons/enemy/vehicles/map_handhelddrone.webp') no-repeat center center; background-size: contain; } + .enemymapTransporthelo { background: url('../../../public/icons/enemy/vehicles/map_transporthelo.webp') no-repeat center center; background-size: contain; } + .enemymapHelicopterLightcas { background: url('../../../public/icons/enemy/vehicles/T_map_helicopter_lightcas.webp') no-repeat center center; background-size: contain; } + .enemymapAttackhelo { background: url('../../../public/icons/enemy/vehicles/map_attackhelo.webp') no-repeat center center; background-size: contain; } + .enemymapJetA10 { background: url('../../../public/icons/enemy/vehicles/map_jet_a10.webp') no-repeat center center; background-size: contain; } + .enemymapUAV { background: url('../../../public/icons/enemy/vehicles/T_strategic_uav.webp') no-repeat center center; background-size: contain; diff --git a/src/components/dialogs/settings.html b/src/components/dialogs/settings.html index 87876c293f..bf3f6a2f64 100644 --- a/src/components/dialogs/settings.html +++ b/src/components/dialogs/settings.html @@ -13,8 +13,6 @@

Settings

- -
- -