diff options
author | Iván Ávalos <avalos@disroot.org> | 2024-06-14 21:01:24 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2024-06-14 21:01:24 -0600 |
commit | e9cdc61de90ef44dc2edd1c82d10f2f29803715e (patch) | |
tree | a1a06704904d4322396908ff93881b2d61af2669 | |
parent | 1a7f95baad1939589e6a23bd31b42b8e094a736a (diff) | |
parent | e4840d26a26dd298dbd97be74373b85607a84add (diff) | |
download | trackermap-web-e9cdc61de90ef44dc2edd1c82d10f2f29803715e.tar.gz trackermap-web-e9cdc61de90ef44dc2edd1c82d10f2f29803715e.tar.bz2 trackermap-web-e9cdc61de90ef44dc2edd1c82d10f2f29803715e.zip |
Merge tag 'v6.2'
108 files changed, 2354 insertions, 1505 deletions
diff --git a/.vscode/launch.json b/.vscode/launch.json index 8bd51ee6..a334a1da 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -2,14 +2,18 @@ "version": "0.2.0", "configurations": [ { - "name": "Chrome", - "type": "chrome", + "name": "npm start", "request": "launch", - "url": "http://localhost:3000", - "webRoot": "${workspaceFolder}/src", - "sourceMapPathOverrides": { - "webpack:///src/*": "${webRoot}/*" - } + "runtimeArgs": ["start"], + "runtimeExecutable": "npm", + "type": "node" + }, + { + "name": "npm run build", + "request": "launch", + "runtimeArgs": ["run", "build"], + "runtimeExecutable": "npm", + "type": "node" } ] } diff --git a/package-lock.json b/package-lock.json index 96e8daae..fcb17eb1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,44 +1,48 @@ { "name": "traccar", - "version": "6.0.0", + "version": "6.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "traccar", - "version": "6.0.0", + "version": "6.2.0", "dependencies": { + "@emotion/cache": "^11.11.0", "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.5", - "@fontsource/roboto": "^5.0.12", + "@fontsource/roboto": "^5.0.13", "@mapbox/mapbox-gl-draw": "^1.4.3", + "@mapbox/mapbox-gl-rtl-text": "^0.2.3", "@maplibre/maplibre-gl-geocoder": "^1.5.0", - "@mui/icons-material": "^5.15.15", + "@mui/icons-material": "^5.15.19", "@mui/lab": "^5.0.0-alpha.170", - "@mui/material": "^5.15.15", - "@mui/styles": "^5.15.15", - "@reduxjs/toolkit": "^2.2.3", + "@mui/material": "^5.15.19", + "@mui/styles": "^5.15.19", + "@reduxjs/toolkit": "^2.2.5", "@tmcw/togeojson": "^5.8.1", "@turf/circle": "^6.5.0", "@turf/turf": "^6.5.0", - "@vitejs/plugin-react": "^4.2.1", - "dayjs": "^1.11.10", + "@vitejs/plugin-react": "^4.3.0", + "dayjs": "^1.11.11", "events": "^3.3.0", "mapbox-gl": "^1.13.3", - "maplibre-gl": "^4.1.2", - "react": "^18.2.0", + "maplibre-gl": "^4.3.2", + "react": "^18.3.1", "react-country-flag": "3.1.0", - "react-dom": "^18.2.0", + "react-dom": "^18.3.1", "react-draggable": "^4.4.6", "react-mui-dropzone": "^4.0.7", - "react-redux": "^9.1.0", - "react-router-dom": "^6.22.3", + "react-redux": "^9.1.2", + "react-router-dom": "^6.23.1", "react-virtualized-auto-sizer": "^1.0.24", "react-window": "^1.8.10", - "recharts": "^2.12.4", + "recharts": "^2.12.7", "redux": "^5.0.1", - "vite": "^5.2.8", - "vite-plugin-pwa": "^0.19.8", + "stylis": "^4.3.2", + "stylis-plugin-rtl": "^2.1.1", + "vite": "^5.2.12", + "vite-plugin-pwa": "^0.20.0", "vite-plugin-svgr": "^4.2.0", "wellknown": "^0.5.0" }, @@ -48,8 +52,8 @@ "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-react": "^7.34.1", - "eslint-plugin-react-hooks": "^4.6.0" + "eslint-plugin-react": "^7.34.2", + "eslint-plugin-react-hooks": "^4.6.2" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -99,40 +103,40 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.6", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", + "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", + "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helpers": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/traverse": "^7.24.6", + "@babel/types": "^7.24.6", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -153,13 +157,13 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.6.tgz", + "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -167,34 +171,34 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz", + "integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", - "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz", + "integrity": "sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==", "dependencies": { - "@babel/types": "^7.22.10" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", + "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", + "@babel/compat-data": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -204,18 +208,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz", - "integrity": "sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz", + "integrity": "sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", "semver": "^6.3.1" }, "engines": { @@ -226,11 +230,11 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", - "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz", + "integrity": "sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.6", "regexpu-core": "^5.3.1", "semver": "^6.3.1" }, @@ -242,9 +246,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", - "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -257,68 +261,68 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", + "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", + "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", + "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz", + "integrity": "sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", + "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", + "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -328,32 +332,32 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz", + "integrity": "sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz", + "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", - "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz", + "integrity": "sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-wrap-function": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -363,13 +367,13 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", - "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz", + "integrity": "sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -379,105 +383,105 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", + "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz", + "integrity": "sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", + "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", + "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", + "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", - "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz", + "integrity": "sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==", "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.10" + "@babel/helper-function-name": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", - "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", + "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.6", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", "bin": { "parser": "bin/babel-parser.js" }, @@ -485,12 +489,27 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz", + "integrity": "sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", - "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz", + "integrity": "sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -500,13 +519,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", - "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz", + "integrity": "sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -515,6 +534,21 @@ "@babel/core": "^7.13.0" } }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz", + "integrity": "sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", @@ -585,11 +619,11 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz", + "integrity": "sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -599,11 +633,11 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz", + "integrity": "sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -744,11 +778,11 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz", + "integrity": "sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -758,13 +792,13 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz", - "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz", + "integrity": "sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.9", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -775,13 +809,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz", + "integrity": "sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -791,11 +825,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz", + "integrity": "sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -805,11 +839,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", - "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz", + "integrity": "sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -819,12 +853,12 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz", + "integrity": "sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -834,12 +868,12 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", - "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz", + "integrity": "sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -850,18 +884,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", - "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz", + "integrity": "sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", "globals": "^11.1.0" }, "engines": { @@ -872,12 +905,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz", + "integrity": "sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/template": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -887,11 +920,11 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", - "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz", + "integrity": "sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -901,12 +934,12 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz", + "integrity": "sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -916,11 +949,11 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz", + "integrity": "sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -930,11 +963,11 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", - "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz", + "integrity": "sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -945,12 +978,12 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz", + "integrity": "sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -960,11 +993,11 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", - "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz", + "integrity": "sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -975,11 +1008,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", - "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz", + "integrity": "sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -989,13 +1023,13 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz", + "integrity": "sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1005,11 +1039,11 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", - "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz", + "integrity": "sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1020,11 +1054,11 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz", + "integrity": "sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1034,11 +1068,11 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", - "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz", + "integrity": "sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1049,11 +1083,11 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz", + "integrity": "sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1063,12 +1097,12 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", - "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz", + "integrity": "sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1078,13 +1112,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz", + "integrity": "sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1094,14 +1128,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", - "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz", + "integrity": "sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==", "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1111,12 +1145,12 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz", + "integrity": "sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1126,12 +1160,12 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz", + "integrity": "sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1141,11 +1175,11 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz", + "integrity": "sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1155,11 +1189,11 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", - "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz", + "integrity": "sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1170,11 +1204,11 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", - "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz", + "integrity": "sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1185,15 +1219,14 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", - "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz", + "integrity": "sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==", "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.5" + "@babel/plugin-transform-parameters": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1203,12 +1236,12 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz", + "integrity": "sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1218,11 +1251,11 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", - "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz", + "integrity": "sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1233,12 +1266,12 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz", - "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz", + "integrity": "sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1249,11 +1282,11 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", - "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz", + "integrity": "sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1263,12 +1296,12 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz", + "integrity": "sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1278,13 +1311,13 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", - "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz", + "integrity": "sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1295,11 +1328,11 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz", + "integrity": "sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1309,11 +1342,11 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", - "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz", + "integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1323,11 +1356,11 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", - "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz", + "integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1337,11 +1370,11 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz", + "integrity": "sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.6", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1352,11 +1385,11 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz", + "integrity": "sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1366,11 +1399,11 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz", + "integrity": "sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1380,12 +1413,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz", + "integrity": "sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1395,11 +1428,11 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz", + "integrity": "sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1409,11 +1442,11 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz", + "integrity": "sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1423,11 +1456,11 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz", + "integrity": "sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1437,11 +1470,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz", + "integrity": "sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1451,12 +1484,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz", + "integrity": "sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1466,12 +1499,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz", + "integrity": "sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1481,12 +1514,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz", + "integrity": "sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1496,24 +1529,26 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", - "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.10", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.6.tgz", + "integrity": "sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==", + "dependencies": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.6", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-assertions": "^7.24.6", + "@babel/plugin-syntax-import-attributes": "^7.24.6", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1525,59 +1560,58 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.10", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.10", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.6", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.10", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.5", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.5", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.5", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", - "@babel/plugin-transform-numeric-separator": "^7.22.5", - "@babel/plugin-transform-object-rest-spread": "^7.22.5", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.10", - "@babel/plugin-transform-parameters": "^7.22.5", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/plugin-transform-arrow-functions": "^7.24.6", + "@babel/plugin-transform-async-generator-functions": "^7.24.6", + "@babel/plugin-transform-async-to-generator": "^7.24.6", + "@babel/plugin-transform-block-scoped-functions": "^7.24.6", + "@babel/plugin-transform-block-scoping": "^7.24.6", + "@babel/plugin-transform-class-properties": "^7.24.6", + "@babel/plugin-transform-class-static-block": "^7.24.6", + "@babel/plugin-transform-classes": "^7.24.6", + "@babel/plugin-transform-computed-properties": "^7.24.6", + "@babel/plugin-transform-destructuring": "^7.24.6", + "@babel/plugin-transform-dotall-regex": "^7.24.6", + "@babel/plugin-transform-duplicate-keys": "^7.24.6", + "@babel/plugin-transform-dynamic-import": "^7.24.6", + "@babel/plugin-transform-exponentiation-operator": "^7.24.6", + "@babel/plugin-transform-export-namespace-from": "^7.24.6", + "@babel/plugin-transform-for-of": "^7.24.6", + "@babel/plugin-transform-function-name": "^7.24.6", + "@babel/plugin-transform-json-strings": "^7.24.6", + "@babel/plugin-transform-literals": "^7.24.6", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.6", + "@babel/plugin-transform-member-expression-literals": "^7.24.6", + "@babel/plugin-transform-modules-amd": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-modules-systemjs": "^7.24.6", + "@babel/plugin-transform-modules-umd": "^7.24.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.6", + "@babel/plugin-transform-new-target": "^7.24.6", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.6", + "@babel/plugin-transform-numeric-separator": "^7.24.6", + "@babel/plugin-transform-object-rest-spread": "^7.24.6", + "@babel/plugin-transform-object-super": "^7.24.6", + "@babel/plugin-transform-optional-catch-binding": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6", + "@babel/plugin-transform-parameters": "^7.24.6", + "@babel/plugin-transform-private-methods": "^7.24.6", + "@babel/plugin-transform-private-property-in-object": "^7.24.6", + "@babel/plugin-transform-property-literals": "^7.24.6", + "@babel/plugin-transform-regenerator": "^7.24.6", + "@babel/plugin-transform-reserved-words": "^7.24.6", + "@babel/plugin-transform-shorthand-properties": "^7.24.6", + "@babel/plugin-transform-spread": "^7.24.6", + "@babel/plugin-transform-sticky-regex": "^7.24.6", + "@babel/plugin-transform-template-literals": "^7.24.6", + "@babel/plugin-transform-typeof-symbol": "^7.24.6", + "@babel/plugin-transform-unicode-escapes": "^7.24.6", + "@babel/plugin-transform-unicode-property-regex": "^7.24.6", + "@babel/plugin-transform-unicode-regex": "^7.24.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.6", "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.22.10", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -1618,31 +1652,31 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", + "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.6.tgz", + "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==", + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1651,12 +1685,12 @@ } }, "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", + "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1687,6 +1721,11 @@ "stylis": "4.2.0" } }, + "node_modules/@emotion/babel-plugin/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, "node_modules/@emotion/cache": { "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", @@ -1699,6 +1738,11 @@ "stylis": "4.2.0" } }, + "node_modules/@emotion/cache/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, "node_modules/@emotion/hash": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", @@ -2265,9 +2309,9 @@ "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" }, "node_modules/@fontsource/roboto": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-5.0.12.tgz", - "integrity": "sha512-x0o17jvgoSSbS9OZnUX2+xJmVRvVCfeaYJjkS7w62iN7CuJWtMf5vJj8LqgC7ibqIkitOHVW+XssRjgrcHn62g==" + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-5.0.13.tgz", + "integrity": "sha512-j61DHjsdUCKMXSdNLTOxcG701FWnF0jcqNNQi2iPCDxU8seN/sMxeh62dC++UiagCWq9ghTypX+Pcy7kX+QOeQ==" }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", @@ -2303,13 +2347,13 @@ "dev": true }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -2324,20 +2368,20 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { @@ -2346,9 +2390,9 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2437,6 +2481,14 @@ "xtend": "^4.0.2" } }, + "node_modules/@mapbox/mapbox-gl-rtl-text": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-rtl-text/-/mapbox-gl-rtl-text-0.2.3.tgz", + "integrity": "sha512-RaCYfnxULUUUxNwcUimV9C/o2295ktTyLEUzD/+VWkqXqvaVfFcZ5slytGzb2Sd/Jj4MlbxD0DCZbfa6CzcmMw==", + "peerDependencies": { + "mapbox-gl": ">=0.32.1 <2.0.0" + } + }, "node_modules/@mapbox/mapbox-gl-supported": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", @@ -2494,16 +2546,18 @@ } }, "node_modules/@maplibre/maplibre-gl-style-spec": { - "version": "20.1.1", - "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.1.1.tgz", - "integrity": "sha512-z85ARNPCBI2Cs5cPOS3DSbraTN+ue8zrcYVoSWBuNrD/mA+2SKAJ+hIzI22uN7gac6jBMnCdpPKRxS/V0KSZVQ==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.3.0.tgz", + "integrity": "sha512-eSiQ3E5LUSxAOY9ABXGyfNhout2iEa6mUxKeaQ9nJ8NL1NuaQYU7zKqzx/LEYcXe1neT4uYAgM1wYZj3fTSXtA==", "dependencies": { "@mapbox/jsonlint-lines-primitives": "~2.0.2", "@mapbox/unitbezier": "^0.0.1", "json-stringify-pretty-compact": "^4.0.0", "minimist": "^1.2.8", + "quickselect": "^2.0.0", "rw": "^1.3.3", - "sort-object": "^3.0.3" + "sort-object": "^3.0.3", + "tinyqueue": "^2.0.3" }, "bin": { "gl-style-format": "dist/gl-style-format.mjs", @@ -2553,18 +2607,18 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.15.15", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.15.tgz", - "integrity": "sha512-aXnw29OWQ6I5A47iuWEI6qSSUfH6G/aCsW9KmW3LiFqr7uXZBK4Ks+z8G+qeIub8k0T5CMqlT2q0L+ZJTMrqpg==", + "version": "5.15.19", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.19.tgz", + "integrity": "sha512-tCHSi/Tomez9ERynFhZRvFO6n9ATyrPs+2N80DMDzp6xDVirbBjEwhPcE+x7Lj+nwYw0SqFkOxyvMP0irnm55w==", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" } }, "node_modules/@mui/icons-material": { - "version": "5.15.15", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.15.tgz", - "integrity": "sha512-kkeU/pe+hABcYDH6Uqy8RmIsr2S/y5bP2rp+Gat4CcRjCcVne6KudS1NrZQhUCRysrTDCAhcbcf9gt+/+pGO2g==", + "version": "5.15.19", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.19.tgz", + "integrity": "sha512-RsEiRxA5azN9b8gI7JRqekkgvxQUlitoBOtZglflb8cUDyP12/cP4gRwhb44Ea1/zwwGGjAj66ZJpGHhKfibNA==", "dependencies": { "@babel/runtime": "^7.23.9" }, @@ -2627,13 +2681,13 @@ } }, "node_modules/@mui/material": { - "version": "5.15.15", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.15.tgz", - "integrity": "sha512-3zvWayJ+E1kzoIsvwyEvkTUKVKt1AjchFFns+JtluHCuvxgKcLSRJTADw37k0doaRtVAsyh8bz9Afqzv+KYrIA==", + "version": "5.15.19", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.19.tgz", + "integrity": "sha512-lp5xQBbcRuxNtjpWU0BWZgIrv2XLUz4RJ0RqFXBdESIsKoGCQZ6P3wwU5ZPuj5TjssNiKv9AlM+vHopRxZhvVQ==", "dependencies": { "@babel/runtime": "^7.23.9", "@mui/base": "5.0.0-beta.40", - "@mui/core-downloads-tracker": "^5.15.15", + "@mui/core-downloads-tracker": "^5.15.19", "@mui/system": "^5.15.15", "@mui/types": "^7.2.14", "@mui/utils": "^5.15.14", @@ -2728,9 +2782,9 @@ } }, "node_modules/@mui/styles": { - "version": "5.15.15", - "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.15.15.tgz", - "integrity": "sha512-KBklDHNEddodEjcnZ+/3ieVcp+Mb/pzdQzAagUpt4RDd9m/mn+2JkqJh2rnrWUwS//YLsbL3IbUrONYn5yPxfQ==", + "version": "5.15.19", + "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.15.19.tgz", + "integrity": "sha512-WOYjZT6DL/StJv/vFR/tJPJuHC98lwWza7Gzj2RWZk123eCcSJ+3ruc62/ZyXaCx4PKCbE849mVl+CWhA2ecmw==", "dependencies": { "@babel/runtime": "^7.23.9", "@emotion/hash": "^0.9.1", @@ -2888,14 +2942,14 @@ } }, "node_modules/@reduxjs/toolkit": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.3.tgz", - "integrity": "sha512-76dll9EnJXg4EVcI5YNxZA/9hSAmZsFqzMmNRHvIlzw2WS/twfcVX3ysYrWGJMClwEmChQFC4yRq74tn6fdzRA==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.5.tgz", + "integrity": "sha512-aeFA/s5NCG7NoJe/MhmwREJxRkDs0ZaSqt0MxhWUrwCf1UQXpwR87RROJEql0uAkLI6U7snBOYOcKw83ew3FPg==", "dependencies": { "immer": "^10.0.3", "redux": "^5.0.1", "redux-thunk": "^3.1.0", - "reselect": "^5.0.1" + "reselect": "^5.1.0" }, "peerDependencies": { "react": "^16.9.0 || ^17.0.0 || ^18", @@ -2911,9 +2965,9 @@ } }, "node_modules/@remix-run/router": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", - "integrity": "sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.1.tgz", + "integrity": "sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==", "engines": { "node": ">=14.0.0" } @@ -2967,50 +3021,29 @@ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" }, "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", "is-module": "^1.0.0", - "resolve": "^1.19.0" + "resolve": "^1.22.1" }, "engines": { - "node": ">= 10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/plugin-node-resolve/node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" + "rollup": "^2.78.0||^3.0.0||^4.0.0" }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@rollup/plugin-node-resolve/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, - "node_modules/@rollup/plugin-node-resolve/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, "node_modules/@rollup/plugin-replace": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", @@ -3049,6 +3082,27 @@ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/pluginutils": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", @@ -5177,6 +5231,11 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/junit-report-builder": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/junit-report-builder/-/junit-report-builder-3.0.2.tgz", + "integrity": "sha512-R5M+SYhMbwBeQcNXYWNCZkl09vkVfAtcPIaCGdzIkkbeaTrVbGQ7HVgi4s+EmM/M1K4ZuWQH0jGcvMvNePfxYA==" + }, "node_modules/@types/mapbox__point-geometry": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", @@ -5192,15 +5251,10 @@ "@types/pbf": "*" } }, - "node_modules/@types/node": { - "version": "20.5.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", - "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==" - }, "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/pbf": { "version": "3.0.5", @@ -5231,12 +5285,9 @@ } }, "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dependencies": { - "@types/node": "*" - } + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==" }, "node_modules/@types/scheduler": { "version": "0.16.8", @@ -5252,9 +5303,9 @@ } }, "node_modules/@types/trusted-types": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", - "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" }, "node_modules/@types/use-sync-external-store": { "version": "0.0.3", @@ -5291,15 +5342,15 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", - "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.0.tgz", + "integrity": "sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==", "dependencies": { - "@babel/core": "^7.23.5", - "@babel/plugin-transform-react-jsx-self": "^7.23.3", - "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@babel/core": "^7.24.5", + "@babel/plugin-transform-react-jsx-self": "^7.24.5", + "@babel/plugin-transform-react-jsx-source": "^7.24.1", "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.0" + "react-refresh": "^0.14.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -5402,15 +5453,16 @@ } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -5556,9 +5608,9 @@ "dev": true }, "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -5629,12 +5681,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", - "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { @@ -5642,23 +5694,23 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", - "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.31.0" + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", - "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5744,9 +5796,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "funding": [ { "type": "opencollective", @@ -5762,8 +5814,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -5878,9 +5930,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001576", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", - "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", + "version": "1.0.30001625", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz", + "integrity": "sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==", "funding": [ { "type": "opencollective", @@ -6062,11 +6114,11 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/core-js-compat": { - "version": "3.32.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.1.tgz", - "integrity": "sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dependencies": { - "browserslist": "^4.21.10" + "browserslist": "^4.23.0" }, "funding": { "type": "opencollective", @@ -6129,6 +6181,14 @@ "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" }, + "node_modules/cssjanus": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cssjanus/-/cssjanus-2.1.0.tgz", + "integrity": "sha512-kAijbny3GmdOi9k+QT6DGIXqFvL96aksNlGr4Rhk9qXDZYWUojU4bRc3IHWxdaLNOqgEZHuXoe5Wl2l7dxLW5g==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -6328,9 +6388,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + "version": "1.11.11", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", + "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" }, "node_modules/debug": { "version": "4.3.4", @@ -6531,9 +6591,9 @@ "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" }, "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dependencies": { "jake": "^10.8.5" }, @@ -6545,9 +6605,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.630", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.630.tgz", - "integrity": "sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg==" + "version": "1.4.788", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.788.tgz", + "integrity": "sha512-ubp5+Ev/VV8KuRoWnfP2QF2Bg+O2ZFdb49DiiNbz2VmgkIqrnyYaqIOqj8A6K/3p1xV0QcU5hBQ1+BmB6ot1OA==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -6662,14 +6722,14 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", - "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", + "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", @@ -6773,9 +6833,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "engines": { "node": ">=6" } @@ -7015,29 +7075,29 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.34.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", - "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", + "version": "7.34.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.2.tgz", + "integrity": "sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==", "dev": true, "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlast": "^1.2.4", + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.2", "array.prototype.toreversed": "^1.1.2", "array.prototype.tosorted": "^1.1.3", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.17", + "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7", - "object.hasown": "^1.1.3", - "object.values": "^1.1.7", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.hasown": "^1.1.4", + "object.values": "^1.2.0", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.10" + "string.prototype.matchall": "^4.0.11" }, "engines": { "node": ">=4" @@ -7047,9 +7107,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", "dev": true, "engines": { "node": ">=10" @@ -7680,6 +7740,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7956,6 +8017,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8068,6 +8130,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -8416,9 +8492,9 @@ } }, "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", + "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -8496,38 +8572,6 @@ "node": ">=8" } }, - "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jiti": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", @@ -8910,9 +8954,9 @@ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" }, "node_modules/maplibre-gl": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.1.2.tgz", - "integrity": "sha512-98T+3BesL4w/N39q/rgs9q6HzHLG6pgbS9UaTqg6fMISfzy2WGKokjK205ENFDDmEljj54/LTfdXgqg2XfYU4A==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.3.2.tgz", + "integrity": "sha512-/oXDsb9I+LkjweL/28aFMLDZoIcXKNEhYNAZDLA4xgTNkfvKQmV/r0KZdxEMcVthincJzdyc6Y4N8YwZtHKNnQ==", "dependencies": { "@mapbox/geojson-rewind": "^0.5.2", "@mapbox/jsonlint-lines-primitives": "^2.0.2", @@ -8921,9 +8965,10 @@ "@mapbox/unitbezier": "^0.0.1", "@mapbox/vector-tile": "^1.3.1", "@mapbox/whoots-js": "^3.1.0", - "@maplibre/maplibre-gl-style-spec": "^20.1.1", + "@maplibre/maplibre-gl-style-spec": "^20.2.0", "@types/geojson": "^7946.0.14", "@types/geojson-vt": "3.2.5", + "@types/junit-report-builder": "^3.0.2", "@types/mapbox__point-geometry": "^0.1.4", "@types/mapbox__vector-tile": "^1.3.4", "@types/pbf": "^3.0.5", @@ -8982,11 +9027,6 @@ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -9217,28 +9257,29 @@ } }, "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -9277,14 +9318,14 @@ } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -9434,9 +9475,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -9646,9 +9687,9 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } @@ -9729,9 +9770,9 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dependencies": { "loose-envify": "^1.1.0" }, @@ -9751,15 +9792,15 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-draggable": { @@ -9837,9 +9878,9 @@ } }, "node_modules/react-redux": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.0.tgz", - "integrity": "sha512-6qoDzIO+gbrza8h3hjMA9aq4nwVFCKFtY2iLxCtVT38Swyy2C/dJCGBXHeHLtx6qlg/8qzc2MrhOeduf5K32wQ==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.2.tgz", + "integrity": "sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==", "dependencies": { "@types/use-sync-external-store": "^0.0.3", "use-sync-external-store": "^1.0.0" @@ -9847,35 +9888,31 @@ "peerDependencies": { "@types/react": "^18.2.25", "react": "^18.0", - "react-native": ">=0.69", "redux": "^5.0.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true }, - "react-native": { - "optional": true - }, "redux": { "optional": true } } }, "node_modules/react-refresh": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "engines": { "node": ">=0.10.0" } }, "node_modules/react-router": { - "version": "6.22.3", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.3.tgz", - "integrity": "sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==", + "version": "6.23.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.23.1.tgz", + "integrity": "sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==", "dependencies": { - "@remix-run/router": "1.15.3" + "@remix-run/router": "1.16.1" }, "engines": { "node": ">=14.0.0" @@ -9885,12 +9922,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.22.3", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.3.tgz", - "integrity": "sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==", + "version": "6.23.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.23.1.tgz", + "integrity": "sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==", "dependencies": { - "@remix-run/router": "1.15.3", - "react-router": "6.22.3" + "@remix-run/router": "1.16.1", + "react-router": "6.23.1" }, "engines": { "node": ">=14.0.0" @@ -9973,9 +10010,9 @@ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "node_modules/recharts": { - "version": "2.12.4", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.4.tgz", - "integrity": "sha512-dM4skmk4fDKEDjL9MNunxv6zcTxePGVEzRnLDXALRpfJ85JoQ0P0APJ/CoJlmnQI0gPjBlOkjzrwrfQrRST3KA==", + "version": "2.12.7", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.7.tgz", + "integrity": "sha512-hlLJMhPQfv4/3NBSAyq3gzGg4h2v69RJh6KU7b3pXYNNAELs9kEoXOjbkxdXpALqKBoVmVptGfLpxdaVYqjmXQ==", "dependencies": { "clsx": "^2.0.0", "eventemitter3": "^4.0.1", @@ -10046,9 +10083,9 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dependencies": { "regenerate": "^1.4.2" }, @@ -10179,6 +10216,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { "glob": "^7.1.3" @@ -10228,21 +10266,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -10323,9 +10346,9 @@ } }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dependencies": { "loose-envify": "^1.1.0" } @@ -10339,9 +10362,9 @@ } }, "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dependencies": { "randombytes": "^2.1.0" } @@ -10560,6 +10583,11 @@ "resolved": "https://registry.npmjs.org/skmeans/-/skmeans-0.9.7.tgz", "integrity": "sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==" }, + "node_modules/smob": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", + "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==" + }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -10820,9 +10848,20 @@ } }, "node_modules/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" + }, + "node_modules/stylis-plugin-rtl": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/stylis-plugin-rtl/-/stylis-plugin-rtl-2.1.1.tgz", + "integrity": "sha512-q6xIkri6fBufIO/sV55md2CbgS5c6gg9EhSVATtHHCdOnbN/jcI0u3lYhNVeuI65c4lQPo67g8xmq5jrREvzlg==", + "dependencies": { + "cssjanus": "^2.0.1" + }, + "peerDependencies": { + "stylis": "4.x" + } }, "node_modules/subtag": { "version": "0.5.0", @@ -10926,9 +10965,9 @@ } }, "node_modules/terser": { - "version": "5.19.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz", - "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -11284,9 +11323,9 @@ } }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "engines": { "node": ">= 10.0.0" } @@ -11301,9 +11340,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "funding": [ { "type": "opencollective", @@ -11319,8 +11358,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -11383,9 +11422,9 @@ } }, "node_modules/vite": { - "version": "5.2.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.8.tgz", - "integrity": "sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==", + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", "dependencies": { "esbuild": "^0.20.1", "postcss": "^8.4.38", @@ -11437,15 +11476,15 @@ } }, "node_modules/vite-plugin-pwa": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.19.8.tgz", - "integrity": "sha512-e1oK0dfhzhDhY3VBuML6c0h8Xfx6EkOVYqolj7g+u8eRfdauZe5RLteCIA/c5gH0CBQ0CNFAuv/AFTx4Z7IXTw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.20.0.tgz", + "integrity": "sha512-/kDZyqF8KqoXRpMUQtR5Atri/7BWayW8Gp7Kz/4bfstsV6zSFTxjREbXZYL7zSuRL40HGA+o2hvUAFRmC+bL7g==", "dependencies": { "debug": "^4.3.4", "fast-glob": "^3.3.2", "pretty-bytes": "^6.1.1", - "workbox-build": "^7.0.0", - "workbox-window": "^7.0.0" + "workbox-build": "^7.1.0", + "workbox-window": "^7.1.0" }, "engines": { "node": ">=16.0.0" @@ -11456,8 +11495,8 @@ "peerDependencies": { "@vite-pwa/assets-generator": "^0.2.4", "vite": "^3.1.0 || ^4.0.0 || ^5.0.0", - "workbox-build": "^7.0.0", - "workbox-window": "^7.0.0" + "workbox-build": "^7.1.0", + "workbox-window": "^7.1.0" }, "peerDependenciesMeta": { "@vite-pwa/assets-generator": { @@ -11610,34 +11649,35 @@ } }, "node_modules/workbox-background-sync": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.0.0.tgz", - "integrity": "sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", + "integrity": "sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==", "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.0.0" + "workbox-core": "7.1.0" } }, "node_modules/workbox-broadcast-update": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.0.0.tgz", - "integrity": "sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz", + "integrity": "sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==", "dependencies": { - "workbox-core": "7.0.0" + "workbox-core": "7.1.0" } }, "node_modules/workbox-build": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.0.0.tgz", - "integrity": "sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", + "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", + "@babel/core": "^7.24.4", "@babel/preset-env": "^7.11.0", "@babel/runtime": "^7.11.2", "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-replace": "^2.4.1", + "@rollup/plugin-terser": "^0.4.3", "@surma/rollup-plugin-off-main-thread": "^2.2.3", "ajv": "^8.6.0", "common-tags": "^1.8.0", @@ -11647,41 +11687,40 @@ "lodash": "^4.17.20", "pretty-bytes": "^5.3.0", "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", "source-map": "^0.8.0-beta.0", "stringify-object": "^3.3.0", "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "7.0.0", - "workbox-broadcast-update": "7.0.0", - "workbox-cacheable-response": "7.0.0", - "workbox-core": "7.0.0", - "workbox-expiration": "7.0.0", - "workbox-google-analytics": "7.0.0", - "workbox-navigation-preload": "7.0.0", - "workbox-precaching": "7.0.0", - "workbox-range-requests": "7.0.0", - "workbox-recipes": "7.0.0", - "workbox-routing": "7.0.0", - "workbox-strategies": "7.0.0", - "workbox-streams": "7.0.0", - "workbox-sw": "7.0.0", - "workbox-window": "7.0.0" + "workbox-background-sync": "7.1.0", + "workbox-broadcast-update": "7.1.0", + "workbox-cacheable-response": "7.1.0", + "workbox-core": "7.1.0", + "workbox-expiration": "7.1.0", + "workbox-google-analytics": "7.1.0", + "workbox-navigation-preload": "7.1.0", + "workbox-precaching": "7.1.0", + "workbox-range-requests": "7.1.0", + "workbox-recipes": "7.1.0", + "workbox-routing": "7.1.0", + "workbox-strategies": "7.1.0", + "workbox-streams": "7.1.0", + "workbox-sw": "7.1.0", + "workbox-window": "7.1.0" }, "engines": { "node": ">=16.0.0" } }, "node_modules/workbox-build/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.14.0.tgz", + "integrity": "sha512-oYs1UUtO97ZO2lJ4bwnWeQW8/zvOIQLGKcvPTsWmvc2SYgBb+upuNS5NxoLaMU4h8Ju3Nbj6Cq8mD2LQoqVKFA==", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -11730,114 +11769,114 @@ } }, "node_modules/workbox-cacheable-response": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.0.0.tgz", - "integrity": "sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz", + "integrity": "sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==", "dependencies": { - "workbox-core": "7.0.0" + "workbox-core": "7.1.0" } }, "node_modules/workbox-core": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.0.0.tgz", - "integrity": "sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.1.0.tgz", + "integrity": "sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==" }, "node_modules/workbox-expiration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.0.0.tgz", - "integrity": "sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.1.0.tgz", + "integrity": "sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==", "dependencies": { "idb": "^7.0.1", - "workbox-core": "7.0.0" + "workbox-core": "7.1.0" } }, "node_modules/workbox-google-analytics": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.0.0.tgz", - "integrity": "sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz", + "integrity": "sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==", "dependencies": { - "workbox-background-sync": "7.0.0", - "workbox-core": "7.0.0", - "workbox-routing": "7.0.0", - "workbox-strategies": "7.0.0" + "workbox-background-sync": "7.1.0", + "workbox-core": "7.1.0", + "workbox-routing": "7.1.0", + "workbox-strategies": "7.1.0" } }, "node_modules/workbox-navigation-preload": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.0.0.tgz", - "integrity": "sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz", + "integrity": "sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==", "dependencies": { - "workbox-core": "7.0.0" + "workbox-core": "7.1.0" } }, "node_modules/workbox-precaching": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.0.0.tgz", - "integrity": "sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.1.0.tgz", + "integrity": "sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==", "dependencies": { - "workbox-core": "7.0.0", - "workbox-routing": "7.0.0", - "workbox-strategies": "7.0.0" + "workbox-core": "7.1.0", + "workbox-routing": "7.1.0", + "workbox-strategies": "7.1.0" } }, "node_modules/workbox-range-requests": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.0.0.tgz", - "integrity": "sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz", + "integrity": "sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==", "dependencies": { - "workbox-core": "7.0.0" + "workbox-core": "7.1.0" } }, "node_modules/workbox-recipes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.0.0.tgz", - "integrity": "sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.1.0.tgz", + "integrity": "sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==", "dependencies": { - "workbox-cacheable-response": "7.0.0", - "workbox-core": "7.0.0", - "workbox-expiration": "7.0.0", - "workbox-precaching": "7.0.0", - "workbox-routing": "7.0.0", - "workbox-strategies": "7.0.0" + "workbox-cacheable-response": "7.1.0", + "workbox-core": "7.1.0", + "workbox-expiration": "7.1.0", + "workbox-precaching": "7.1.0", + "workbox-routing": "7.1.0", + "workbox-strategies": "7.1.0" } }, "node_modules/workbox-routing": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.0.0.tgz", - "integrity": "sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.1.0.tgz", + "integrity": "sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==", "dependencies": { - "workbox-core": "7.0.0" + "workbox-core": "7.1.0" } }, "node_modules/workbox-strategies": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.0.0.tgz", - "integrity": "sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.1.0.tgz", + "integrity": "sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==", "dependencies": { - "workbox-core": "7.0.0" + "workbox-core": "7.1.0" } }, "node_modules/workbox-streams": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.0.0.tgz", - "integrity": "sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.1.0.tgz", + "integrity": "sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==", "dependencies": { - "workbox-core": "7.0.0", - "workbox-routing": "7.0.0" + "workbox-core": "7.1.0", + "workbox-routing": "7.1.0" } }, "node_modules/workbox-sw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.0.0.tgz", - "integrity": "sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.1.0.tgz", + "integrity": "sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==" }, "node_modules/workbox-window": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.0.0.tgz", - "integrity": "sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.1.0.tgz", + "integrity": "sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==", "dependencies": { "@types/trusted-types": "^2.0.2", - "workbox-core": "7.0.0" + "workbox-core": "7.1.0" } }, "node_modules/wrappy": { diff --git a/package.json b/package.json index 82d35be0..30eb078e 100644 --- a/package.json +++ b/package.json @@ -1,40 +1,44 @@ { "name": "traccar", - "version": "6.0.0", + "version": "6.2.0", "type": "module", "private": true, "dependencies": { + "@emotion/cache": "^11.11.0", "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.5", - "@fontsource/roboto": "^5.0.12", + "@fontsource/roboto": "^5.0.13", "@mapbox/mapbox-gl-draw": "^1.4.3", + "@mapbox/mapbox-gl-rtl-text": "^0.2.3", "@maplibre/maplibre-gl-geocoder": "^1.5.0", - "@mui/icons-material": "^5.15.15", + "@mui/icons-material": "^5.15.19", "@mui/lab": "^5.0.0-alpha.170", - "@mui/material": "^5.15.15", - "@mui/styles": "^5.15.15", - "@reduxjs/toolkit": "^2.2.3", + "@mui/material": "^5.15.19", + "@mui/styles": "^5.15.19", + "@reduxjs/toolkit": "^2.2.5", "@tmcw/togeojson": "^5.8.1", "@turf/circle": "^6.5.0", "@turf/turf": "^6.5.0", - "@vitejs/plugin-react": "^4.2.1", - "dayjs": "^1.11.10", + "@vitejs/plugin-react": "^4.3.0", + "dayjs": "^1.11.11", "events": "^3.3.0", "mapbox-gl": "^1.13.3", - "maplibre-gl": "^4.1.2", - "react": "^18.2.0", + "maplibre-gl": "^4.3.2", + "react": "^18.3.1", "react-country-flag": "3.1.0", - "react-dom": "^18.2.0", + "react-dom": "^18.3.1", "react-draggable": "^4.4.6", "react-mui-dropzone": "^4.0.7", - "react-redux": "^9.1.0", - "react-router-dom": "^6.22.3", + "react-redux": "^9.1.2", + "react-router-dom": "^6.23.1", "react-virtualized-auto-sizer": "^1.0.24", "react-window": "^1.8.10", - "recharts": "^2.12.4", + "recharts": "^2.12.7", "redux": "^5.0.1", - "vite": "^5.2.8", - "vite-plugin-pwa": "^0.19.8", + "stylis": "^4.3.2", + "stylis-plugin-rtl": "^2.1.1", + "vite": "^5.2.12", + "vite-plugin-pwa": "^0.20.0", "vite-plugin-svgr": "^4.2.0", "wellknown": "^0.5.0" }, @@ -62,7 +66,7 @@ "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-react": "^7.34.1", - "eslint-plugin-react-hooks": "^4.6.0" + "eslint-plugin-react": "^7.34.2", + "eslint-plugin-react-hooks": "^4.6.2" } } diff --git a/src/App.jsx b/src/App.jsx index 4fe34f64..b6e864b2 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -6,9 +6,10 @@ import makeStyles from '@mui/styles/makeStyles'; import BottomMenu from './common/components/BottomMenu'; import SocketController from './SocketController'; import CachingController from './CachingController'; -import { useEffectAsync } from './reactHelper'; +import { useCatch, useEffectAsync } from './reactHelper'; import { sessionActions } from './store'; import UpdateController from './UpdateController'; +import TermsDialog from './common/components/TermsDialog'; const useStyles = makeStyles(() => ({ page: { @@ -29,10 +30,24 @@ const App = () => { const desktop = useMediaQuery(theme.breakpoints.up('md')); const newServer = useSelector((state) => state.session.server.newServer); - const initialized = useSelector((state) => !!state.session.user); + const termsUrl = useSelector((state) => state.session.server.attributes.termsUrl); + const user = useSelector((state) => state.session.user); + + const acceptTerms = useCatch(async () => { + const response = await fetch(`/api/users/${user.id}`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ ...user, attributes: { ...user.attributes, termsAccepted: true } }), + }); + if (response.ok) { + dispatch(sessionActions.updateUser(await response.json())); + } else { + throw Error(await response.text()); + } + }); useEffectAsync(async () => { - if (!initialized) { + if (!user) { const response = await fetch('/api/session'); if (response.ok) { dispatch(sessionActions.updateUser(await response.json())); @@ -43,9 +58,15 @@ const App = () => { } } return null; - }, [initialized]); + }, [user]); - return !initialized ? (<LinearProgress />) : ( + if (user == null) { + return (<LinearProgress />); + } + if (termsUrl && !user.attributes.termsAccepted) { + return (<TermsDialog open onCancel={() => navigate('/login')} onAccept={() => acceptTerms()} />); + } + return ( <> <SocketController /> <CachingController /> diff --git a/src/AppThemeProvider.jsx b/src/AppThemeProvider.jsx index 109d25c4..8f64b931 100644 --- a/src/AppThemeProvider.jsx +++ b/src/AppThemeProvider.jsx @@ -1,21 +1,40 @@ import React from 'react'; import { useSelector } from 'react-redux'; import { ThemeProvider, useMediaQuery } from '@mui/material'; +import { CacheProvider } from '@emotion/react'; +import createCache from '@emotion/cache'; +import { prefixer } from 'stylis'; +import rtlPlugin from 'stylis-plugin-rtl'; import theme from './common/theme'; +import { useLocalization } from './common/components/LocalizationProvider'; + +const cache = { + ltr: createCache({ + key: 'muiltr', + stylisPlugins: [prefixer], + }), + rtl: createCache({ + key: 'muirtl', + stylisPlugins: [prefixer, rtlPlugin], + }), +}; const AppThemeProvider = ({ children }) => { const server = useSelector((state) => state.session.server); + const { direction } = useLocalization(); const serverDarkMode = server?.attributes?.darkMode; const preferDarkMode = useMediaQuery('(prefers-color-scheme: dark)'); const darkMode = serverDarkMode !== undefined ? serverDarkMode : preferDarkMode; - const themeInstance = theme(server, darkMode); + const themeInstance = theme(server, darkMode, direction); return ( - <ThemeProvider theme={themeInstance}> - {children} - </ThemeProvider> + <CacheProvider value={cache[direction]}> + <ThemeProvider theme={themeInstance}> + {children} + </ThemeProvider> + </CacheProvider> ); }; diff --git a/src/Navigation.jsx b/src/Navigation.jsx index 37a6ddb5..fa3d9a24 100644 --- a/src/Navigation.jsx +++ b/src/Navigation.jsx @@ -57,6 +57,7 @@ import UserConnectionsPage from './settings/UserConnectionsPage'; import LogsPage from './reports/LogsPage'; import SharePage from './settings/SharePage'; import AnnouncementPage from './settings/AnnouncementPage'; +import EmulatorPage from './other/EmulatorPage'; const Navigation = () => { const navigate = useNavigate(); @@ -109,6 +110,7 @@ const Navigation = () => { <Route path="event/:id" element={<EventPage />} /> <Route path="replay" element={<ReplayPage />} /> <Route path="geofences" element={<GeofencesPage />} /> + <Route path="emulator" element={<EmulatorPage />} /> <Route path="settings"> <Route path="accumulators/:deviceId" element={<AccumulatorsPage />} /> diff --git a/src/common/attributes/useServerAttributes.js b/src/common/attributes/useServerAttributes.js index 80ac3c7d..f46f715c 100644 --- a/src/common/attributes/useServerAttributes.js +++ b/src/common/attributes/useServerAttributes.js @@ -39,6 +39,14 @@ export default (t) => useMemo(() => ({ name: t('settingsDarkMode'), type: 'boolean', }, + termsUrl: { + name: t('userTerms'), + type: 'string', + }, + privacyUrl: { + name: t('userPrivacy'), + type: 'string', + }, totpEnable: { name: t('settingsTotpEnable'), type: 'boolean', diff --git a/src/common/attributes/useUserAttributes.js b/src/common/attributes/useUserAttributes.js index 81230884..e819412c 100644 --- a/src/common/attributes/useUserAttributes.js +++ b/src/common/attributes/useUserAttributes.js @@ -57,4 +57,8 @@ export default (t) => useMemo(() => ({ name: t('attributeMailSmtpPassword'), type: 'string', }, + termsAccepted: { + name: t('userTermsAccepted'), + type: 'boolean', + }, }), [t]); diff --git a/src/common/components/LocalizationProvider.jsx b/src/common/components/LocalizationProvider.jsx index 4104c773..3af97cf0 100644 --- a/src/common/components/LocalizationProvider.jsx +++ b/src/common/components/LocalizationProvider.jsx @@ -152,8 +152,9 @@ const LocalizationContext = createContext({ export const LocalizationProvider = ({ children }) => { const [language, setLanguage] = usePersistedState('language', getDefaultLanguage()); + const direction = /^(ar|he|fa)$/.test(language) ? 'rtl' : 'ltr'; - const value = useMemo(() => ({ languages, language, setLanguage }), [languages, language, setLanguage]); + const value = useMemo(() => ({ languages, language, setLanguage, direction }), [languages, language, setLanguage, direction]); useEffect(() => { let selected; @@ -163,7 +164,8 @@ export const LocalizationProvider = ({ children }) => { selected = language; } dayjs.locale(selected); - }, [language]); + document.dir = direction; + }, [language, direction]); return ( <LocalizationContext.Provider value={value}> diff --git a/src/common/components/PositionValue.jsx b/src/common/components/PositionValue.jsx index 8be686e3..cad3132c 100644 --- a/src/common/components/PositionValue.jsx +++ b/src/common/components/PositionValue.jsx @@ -22,7 +22,7 @@ import { import { speedToKnots } from '../util/converter'; import { useAttributePreference, usePreference } from '../util/preferences'; import { useTranslation } from './LocalizationProvider'; -import { useAdministrator } from '../util/permissions'; +import { useDeviceReadonly } from '../util/permissions'; import AddressValue from './AddressValue'; import GeofencesValue from './GeofencesValue'; import DriverValue from './DriverValue'; @@ -30,7 +30,7 @@ import DriverValue from './DriverValue'; const PositionValue = ({ position, property, attribute }) => { const t = useTranslation(); - const admin = useAdministrator(); + const deviceReadonly = useDeviceReadonly(); const device = useSelector((state) => state.devices.items[position.deviceId]); @@ -42,14 +42,13 @@ const PositionValue = ({ position, property, attribute }) => { const speedUnit = useAttributePreference('speedUnit'); const volumeUnit = useAttributePreference('volumeUnit'); const coordinateFormat = usePreference('coordinateFormat'); - const hours12 = usePreference('twelveHourFormat'); const formatValue = () => { switch (key) { case 'fixTime': case 'deviceTime': case 'serverTime': - return formatTime(value, 'seconds', hours12); + return formatTime(value, 'seconds'); case 'latitude': return formatCoordinate('latitude', value, coordinateFormat); case 'longitude': @@ -108,7 +107,7 @@ const PositionValue = ({ position, property, attribute }) => { <> {formatValue(value)} - {admin && <Link component={RouterLink} underline="none" to={`/settings/accumulators/${position.deviceId}`}>⚙</Link>} + {!deviceReadonly && <Link component={RouterLink} underline="none" to={`/settings/accumulators/${position.deviceId}`}>⚙</Link>} </> ); case 'address': diff --git a/src/common/components/SelectField.jsx b/src/common/components/SelectField.jsx index db8c30b0..629af9e1 100644 --- a/src/common/components/SelectField.jsx +++ b/src/common/components/SelectField.jsx @@ -1,7 +1,7 @@ +import React, { useEffect, useState } from 'react'; import { FormControl, InputLabel, MenuItem, Select, Autocomplete, TextField, } from '@mui/material'; -import React, { useState } from 'react'; import { useEffectAsync } from '../../reactHelper'; const SelectField = ({ @@ -17,7 +17,7 @@ const SelectField = ({ keyGetter = (item) => item.id, titleGetter = (item) => item.name, }) => { - const [items, setItems] = useState(data); + const [items, setItems] = useState(); const getOptionLabel = (option) => { if (typeof option !== 'object') { @@ -26,6 +26,8 @@ const SelectField = ({ return option ? titleGetter(option) : emptyTitle; }; + useEffect(() => setItems(data), [data]); + useEffectAsync(async () => { if (endpoint) { const response = await fetch(endpoint); diff --git a/src/common/components/StatusCard.jsx b/src/common/components/StatusCard.jsx index a63d0f80..fd92c658 100644 --- a/src/common/components/StatusCard.jsx +++ b/src/common/components/StatusCard.jsx @@ -127,7 +127,7 @@ const StatusCard = ({ deviceId, position, onClose, disableActions, desktopPaddin const deviceImage = device?.attributes?.deviceImage; const positionAttributes = usePositionAttributes(t); - const positionItems = useAttributePreference('positionItems', 'speed,address,totalDistance,course'); + const positionItems = useAttributePreference('positionItems', 'fixTime,address,speed,totalDistance'); const [anchorEl, setAnchorEl] = useState(null); diff --git a/src/common/components/TermsDialog.jsx b/src/common/components/TermsDialog.jsx new file mode 100644 index 00000000..2ac74f2e --- /dev/null +++ b/src/common/components/TermsDialog.jsx @@ -0,0 +1,36 @@ +import React from 'react'; +import { useSelector } from 'react-redux'; +import { + Button, Dialog, DialogActions, DialogContent, DialogContentText, Link, +} from '@mui/material'; +import { useTranslation } from './LocalizationProvider'; + +const TermsDialog = ({ open, onCancel, onAccept }) => { + const t = useTranslation(); + + const termsUrl = useSelector((state) => state.session.server.attributes.termsUrl); + const privacyUrl = useSelector((state) => state.session.server.attributes.privacyUrl); + + return ( + <Dialog + open={open} + onClose={onCancel} + > + <DialogContent> + <DialogContentText> + {t('userTermsPrompt')} + <ul> + <li><Link href={termsUrl} target="_blank">{t('userTerms')}</Link></li> + <li><Link href={privacyUrl} target="_blank">{t('userPrivacy')}</Link></li> + </ul> + </DialogContentText> + </DialogContent> + <DialogActions> + <Button onClick={onCancel}>{t('sharedCancel')}</Button> + <Button onClick={onAccept}>{t('sharedAccept')}</Button> + </DialogActions> + </Dialog> + ); +}; + +export default TermsDialog; diff --git a/src/common/theme/index.js b/src/common/theme/index.js index e8ce698b..00958497 100644 --- a/src/common/theme/index.js +++ b/src/common/theme/index.js @@ -4,8 +4,9 @@ import palette from './palette'; import dimensions from './dimensions'; import components from './components'; -export default (server, darkMode) => useMemo(() => createTheme({ +export default (server, darkMode, direction) => useMemo(() => createTheme({ palette: palette(server, darkMode), + direction, dimensions, components, -}), [server, darkMode]); +}), [server, darkMode, direction]); diff --git a/src/common/util/formatter.js b/src/common/util/formatter.js index 7b7fc96d..b10d737a 100644 --- a/src/common/util/formatter.js +++ b/src/common/util/formatter.js @@ -1,6 +1,7 @@ import dayjs from 'dayjs'; import duration from 'dayjs/plugin/duration'; import relativeTime from 'dayjs/plugin/relativeTime'; +import localizedFormat from 'dayjs/plugin/localizedFormat'; import { altitudeFromMeters, @@ -16,6 +17,7 @@ import { prefixString } from './stringUtils'; dayjs.extend(duration); dayjs.extend(relativeTime); +dayjs.extend(localizedFormat); export const formatBoolean = (value, t) => (value ? t('sharedYes') : t('sharedNo')); @@ -23,24 +25,24 @@ export const formatNumber = (value, precision = 1) => Number(value.toFixed(preci export const formatPercentage = (value) => `${value}%`; -export const formatTemperature = (value) => `${value}°C`; +export const formatTemperature = (value) => `${value.toFixed(1)}°C`; -export const formatVoltage = (value, t) => `${value} ${t('sharedVoltAbbreviation')}`; +export const formatVoltage = (value, t) => `${value.toFixed(2)} ${t('sharedVoltAbbreviation')}`; -export const formatConsumption = (value, t) => `${value} ${t('sharedLiterPerHourAbbreviation')}`; +export const formatConsumption = (value, t) => `${value.toFixed(2)} ${t('sharedLiterPerHourAbbreviation')}`; -export const formatTime = (value, format, hours12) => { +export const formatTime = (value, format) => { if (value) { const d = dayjs(value); switch (format) { case 'date': - return d.format('YYYY-MM-DD'); + return d.format('L'); case 'time': - return d.format(hours12 ? 'hh:mm:ss A' : 'HH:mm:ss'); + return d.format('LTS'); case 'minutes': - return d.format(hours12 ? 'YYYY-MM-DD hh:mm A' : 'YYYY-MM-DD HH:mm'); + return d.format('L LT'); default: - return d.format(hours12 ? 'YYYY-MM-DD hh:mm:ss A' : 'YYYY-MM-DD HH:mm:ss'); + return d.format('L LTS'); } } return ''; diff --git a/src/main/EventsDrawer.jsx b/src/main/EventsDrawer.jsx index f9602e95..57a95eb2 100644 --- a/src/main/EventsDrawer.jsx +++ b/src/main/EventsDrawer.jsx @@ -9,7 +9,6 @@ import DeleteIcon from '@mui/icons-material/Delete'; import { formatNotificationTitle, formatTime } from '../common/util/formatter'; import { useTranslation } from '../common/components/LocalizationProvider'; import { eventsActions } from '../store'; -import { usePreference } from '../common/util/preferences'; const useStyles = makeStyles((theme) => ({ drawer: { @@ -30,8 +29,6 @@ const EventsDrawer = ({ open, onClose }) => { const dispatch = useDispatch(); const t = useTranslation(); - const hours12 = usePreference('twelveHourFormat'); - const devices = useSelector((state) => state.devices.items); const events = useSelector((state) => state.events.items); @@ -66,7 +63,7 @@ const EventsDrawer = ({ open, onClose }) => { > <ListItemText primary={`${devices[event.deviceId]?.name} • ${formatType(event)}`} - secondary={formatTime(event.eventTime, 'seconds', hours12)} + secondary={formatTime(event.eventTime, 'seconds')} /> <IconButton size="small" onClick={() => dispatch(eventsActions.delete(event))}> <DeleteIcon fontSize="small" className={classes.delete} /> diff --git a/src/main/MainToolbar.jsx b/src/main/MainToolbar.jsx index b029529c..c00fcd4b 100644 --- a/src/main/MainToolbar.jsx +++ b/src/main/MainToolbar.jsx @@ -90,8 +90,10 @@ const MainToolbar = ({ horizontal: Number(theme.spacing(2).slice(0, -2)), }} marginThreshold={0} - PaperProps={{ - style: { width: `calc(${toolbarRef.current?.clientWidth}px - ${theme.spacing(4)})` }, + slotProps={{ + paper: { + style: { width: `calc(${toolbarRef.current?.clientWidth}px - ${theme.spacing(4)})` }, + }, }} elevation={1} disableAutoFocus diff --git a/src/map/MapGeofence.js b/src/map/MapGeofence.js index 73b32724..ac83d5b4 100644 --- a/src/map/MapGeofence.js +++ b/src/map/MapGeofence.js @@ -2,7 +2,7 @@ import { useId, useEffect } from 'react'; import { useSelector } from 'react-redux'; import { useTheme } from '@mui/styles'; import { map } from './core/MapView'; -import { findFonts, geofenceToFeature } from './core/mapUtil'; +import { geofenceToFeature } from './core/mapUtil'; import { useAttributePreference } from '../common/util/preferences'; const MapGeofence = () => { @@ -52,7 +52,6 @@ const MapGeofence = () => { type: 'symbol', layout: { 'text-field': '{name}', - 'text-font': findFonts(map), 'text-size': 12, }, paint: { diff --git a/src/map/MapMarkers.js b/src/map/MapMarkers.js index 8fbe92b6..484c35a3 100644 --- a/src/map/MapMarkers.js +++ b/src/map/MapMarkers.js @@ -3,7 +3,6 @@ import { useTheme } from '@mui/styles'; import { useMediaQuery } from '@mui/material'; import { map } from './core/MapView'; import { useAttributePreference } from '../common/util/preferences'; -import { findFonts } from './core/mapUtil'; const MapMarkers = ({ markers, showTitles }) => { const id = useId(); @@ -35,7 +34,6 @@ const MapMarkers = ({ markers, showTitles }) => { 'text-allow-overlap': true, 'text-anchor': 'bottom', 'text-offset': [0, -2 * iconScale], - 'text-font': findFonts(map), 'text-size': 12, }, paint: { diff --git a/src/map/MapPositions.js b/src/map/MapPositions.js index 751c61b9..45e5fc0f 100644 --- a/src/map/MapPositions.js +++ b/src/map/MapPositions.js @@ -5,8 +5,8 @@ import { useTheme } from '@mui/styles'; import { map } from './core/MapView'; import { formatTime, getStatusColor } from '../common/util/formatter'; import { mapIconKey } from './core/preloadImages'; -import { findFonts } from './core/mapUtil'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; +import { useCatchCallback } from '../reactHelper'; const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleField }) => { const id = useId(); @@ -21,7 +21,6 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF const selectedDeviceId = useSelector((state) => state.devices.selectedId); const mapCluster = useAttributePreference('mapCluster', true); - const hours12 = usePreference('twelveHourFormat'); const directionType = useAttributePreference('mapDirection', 'selected'); const createFeature = (devices, position, selectedPositionId) => { @@ -32,17 +31,17 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF showDirection = false; break; case 'all': - showDirection = true; + showDirection = position.course > 0; break; default: - showDirection = selectedPositionId === position.id; + showDirection = selectedPositionId === position.id && position.course > 0; break; } return { id: position.id, deviceId: position.deviceId, name: device.name, - fixTime: formatTime(position.fixTime, 'seconds', hours12), + fixTime: formatTime(position.fixTime, 'seconds'), category: mapIconKey(device.category), color: showStatus ? position.attributes.color || getStatusColor(device.status) : 'neutral', rotation: position.course, @@ -55,7 +54,7 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF const onMapClick = useCallback((event) => { if (!event.defaultPrevented && onClick) { - onClick(); + onClick(event.lngLat.lat, event.lngLat.lng); } }, [onClick]); @@ -67,19 +66,16 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF } }, [onClick]); - const onClusterClick = useCallback((event) => { + const onClusterClick = useCatchCallback(async (event) => { event.preventDefault(); const features = map.queryRenderedFeatures(event.point, { layers: [clusters], }); const clusterId = features[0].properties.cluster_id; - map.getSource(id).getClusterExpansionZoom(clusterId, (error, zoom) => { - if (!error) { - map.easeTo({ - center: features[0].geometry.coordinates, - zoom, - }); - } + const zoom = await map.getSource(id).getClusterExpansionZoom(clusterId); + map.easeTo({ + center: features[0].geometry.coordinates, + zoom, }); }, [clusters]); @@ -115,7 +111,6 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF 'text-allow-overlap': true, 'text-anchor': 'bottom', 'text-offset': [0, -2 * iconScale], - 'text-font': findFonts(map), 'text-size': 12, }, paint: { @@ -154,7 +149,6 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF 'icon-image': 'background', 'icon-size': iconScale, 'text-field': '{point_count_abbreviated}', - 'text-font': findFonts(map), 'text-size': 14, }, }); diff --git a/src/map/MapRoutePath.js b/src/map/MapRoutePath.js index 18069a71..20269140 100644 --- a/src/map/MapRoutePath.js +++ b/src/map/MapRoutePath.js @@ -2,7 +2,6 @@ import { useTheme } from '@mui/styles'; import { useId, useEffect } from 'react'; import { useSelector } from 'react-redux'; import { map } from './core/MapView'; -import { findFonts } from './core/mapUtil'; const MapRoutePath = ({ name, positions, coordinates }) => { const id = useId(); @@ -54,7 +53,6 @@ const MapRoutePath = ({ name, positions, coordinates }) => { type: 'symbol', layout: { 'text-field': '{name}', - 'text-font': findFonts(map), 'text-size': 12, }, paint: { diff --git a/src/map/core/MapView.jsx b/src/map/core/MapView.jsx index 35b3a65a..6733bdde 100644 --- a/src/map/core/MapView.jsx +++ b/src/map/core/MapView.jsx @@ -1,3 +1,5 @@ +// eslint-disable-next-line import/no-unresolved +import mapboxglRtlTextUrl from '@mapbox/mapbox-gl-rtl-text/mapbox-gl-rtl-text.min?url'; import 'maplibre-gl/dist/maplibre-gl.css'; import maplibregl from 'maplibre-gl'; import React, { @@ -14,6 +16,8 @@ element.style.width = '100%'; element.style.height = '100%'; element.style.boxSizing = 'initial'; +maplibregl.setRTLTextPlugin(mapboxglRtlTextUrl); + export const map = new maplibregl.Map({ container: element, attributionControl: false, diff --git a/src/map/core/mapUtil.js b/src/map/core/mapUtil.js index 5cb0ef0d..fb7498aa 100644 --- a/src/map/core/mapUtil.js +++ b/src/map/core/mapUtil.js @@ -86,21 +86,3 @@ export const geofenceToFeature = (theme, item) => { }; export const geometryToArea = (geometry) => stringify(reverseCoordinates(geometry)); - -export const findFonts = (map) => { - const fontSet = new Set(); - const { layers } = map.getStyle(); - layers?.forEach?.((layer) => { - layer.layout?.['text-font']?.forEach?.(fontSet.add, fontSet); - }); - const availableFonts = [...fontSet]; - const regularFont = availableFonts.find((it) => it.includes('Regular')); - if (regularFont) { - return [regularFont]; - } - const anyFont = availableFonts.find(Boolean); - if (anyFont) { - return [anyFont]; - } - return ['Roboto Regular']; -}; diff --git a/src/map/draw/MapGeofenceEdit.js b/src/map/draw/MapGeofenceEdit.js index e547ea05..0f63509a 100644 --- a/src/map/draw/MapGeofenceEdit.js +++ b/src/map/draw/MapGeofenceEdit.js @@ -12,6 +12,11 @@ import { geofenceToFeature, geometryToArea } from '../core/mapUtil'; import { errorsActions, geofencesActions } from '../../store'; import { useCatchCallback } from '../../reactHelper'; import theme from './theme'; +import { useTranslation } from '../../common/components/LocalizationProvider'; + +MapboxDraw.constants.classes.CONTROL_BASE = 'maplibregl-ctrl'; +MapboxDraw.constants.classes.CONTROL_PREFIX = 'maplibregl-ctrl-'; +MapboxDraw.constants.classes.CONTROL_GROUP = 'maplibregl-ctrl-group'; const draw = new MapboxDraw({ displayControlsDefault: false, @@ -41,6 +46,7 @@ const MapGeofenceEdit = ({ selectedGeofenceId }) => { const theme = useTheme(); const dispatch = useDispatch(); const navigate = useNavigate(); + const t = useTranslation(); const geofences = useSelector((state) => state.geofences.items); @@ -63,7 +69,7 @@ const MapGeofenceEdit = ({ selectedGeofenceId }) => { useEffect(() => { const listener = async (event) => { const feature = event.features[0]; - const newItem = { name: '', area: geometryToArea(feature.geometry) }; + const newItem = { name: t('sharedGeofence'), area: geometryToArea(feature.geometry) }; draw.delete(feature.id); try { const response = await fetch('/api/geofences', { diff --git a/src/map/main/MapSelectedDevice.js b/src/map/main/MapSelectedDevice.js index caf40cf8..d17fb997 100644 --- a/src/map/main/MapSelectedDevice.js +++ b/src/map/main/MapSelectedDevice.js @@ -7,16 +7,18 @@ import { usePrevious } from '../../reactHelper'; import { useAttributePreference } from '../../common/util/preferences'; const MapSelectedDevice = () => { - const selectedDeviceId = useSelector((state) => state.devices.selectedId); - const previousDeviceId = usePrevious(selectedDeviceId); + const currentTime = useSelector((state) => state.devices.selectTime); + const currentId = useSelector((state) => state.devices.selectedId); + const previousTime = usePrevious(currentTime); + const previousId = usePrevious(currentId); const selectZoom = useAttributePreference('web.selectZoom', 10); const mapFollow = useAttributePreference('mapFollow', false); - const position = useSelector((state) => state.session.positions[selectedDeviceId]); + const position = useSelector((state) => state.session.positions[currentId]); useEffect(() => { - if ((selectedDeviceId !== previousDeviceId || mapFollow) && position) { + if ((currentId !== previousId || currentTime !== previousTime || mapFollow) && position) { map.easeTo({ center: [position.longitude, position.latitude], zoom: Math.max(map.getZoom(), selectZoom), diff --git a/src/map/main/PoiMap.js b/src/map/main/PoiMap.js index 07341183..e8aefd7e 100644 --- a/src/map/main/PoiMap.js +++ b/src/map/main/PoiMap.js @@ -4,7 +4,6 @@ import { useTheme } from '@mui/styles'; import { map } from '../core/MapView'; import { useEffectAsync } from '../../reactHelper'; import { usePreference } from '../../common/util/preferences'; -import { findFonts } from '../core/mapUtil'; const PoiMap = () => { const id = useId(); @@ -55,7 +54,6 @@ const PoiMap = () => { 'text-field': '{name}', 'text-anchor': 'bottom', 'text-offset': [0, -0.5], - 'text-font': findFonts(map), 'text-size': 12, }, paint: { diff --git a/src/other/EmulatorPage.jsx b/src/other/EmulatorPage.jsx new file mode 100644 index 00000000..9adc129f --- /dev/null +++ b/src/other/EmulatorPage.jsx @@ -0,0 +1,131 @@ +import React from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { + Divider, Typography, IconButton, useMediaQuery, Toolbar, + List, + ListItem, +} from '@mui/material'; +import makeStyles from '@mui/styles/makeStyles'; +import { useTheme } from '@mui/material/styles'; +import Drawer from '@mui/material/Drawer'; +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; +import { useNavigate } from 'react-router-dom'; +import MapView from '../map/core/MapView'; +import MapCurrentLocation from '../map/MapCurrentLocation'; +import { useTranslation } from '../common/components/LocalizationProvider'; +import MapGeocoder from '../map/geocoder/MapGeocoder'; +import SelectField from '../common/components/SelectField'; +import { devicesActions } from '../store'; +import MapPositions from '../map/MapPositions'; +import { useCatch } from '../reactHelper'; + +const useStyles = makeStyles((theme) => ({ + root: { + height: '100%', + display: 'flex', + flexDirection: 'column', + }, + content: { + flexGrow: 1, + overflow: 'hidden', + display: 'flex', + flexDirection: 'row', + [theme.breakpoints.down('sm')]: { + flexDirection: 'column-reverse', + }, + }, + drawer: { + zIndex: 1, + }, + drawerPaper: { + position: 'relative', + [theme.breakpoints.up('sm')]: { + width: theme.dimensions.drawerWidthDesktop, + }, + [theme.breakpoints.down('sm')]: { + height: theme.dimensions.drawerHeightPhone, + }, + }, + mapContainer: { + flexGrow: 1, + }, + title: { + flexGrow: 1, + }, +})); + +const EmulatorPage = () => { + const theme = useTheme(); + const classes = useStyles(); + const dispatch = useDispatch(); + const navigate = useNavigate(); + const t = useTranslation(); + + const isPhone = useMediaQuery(theme.breakpoints.down('sm')); + + const devices = useSelector((state) => state.devices.items); + const deviceId = useSelector((state) => state.devices.selectedId); + const positions = useSelector((state) => state.session.positions); + + const handleClick = useCatch(async (latitude, longitude) => { + if (deviceId) { + const params = new URLSearchParams(); + params.append('id', devices[deviceId].uniqueId); + params.append('lat', latitude); + params.append('lon', longitude); + + const response = await fetch(`http://${window.location.hostname}:5055?${params.toString()}`, { + method: 'GET', + mode: 'no-cors', + }); + if (!response.ok) { + throw Error(await response.text()); + } + } + }); + + return ( + <div className={classes.root}> + <div className={classes.content}> + <Drawer + className={classes.drawer} + anchor={isPhone ? 'bottom' : 'left'} + variant="permanent" + classes={{ paper: classes.drawerPaper }} + > + <Toolbar> + <IconButton edge="start" sx={{ mr: 2 }} onClick={() => navigate(-1)}> + <ArrowBackIcon /> + </IconButton> + <Typography variant="h6" className={classes.title}>{t('sharedEmulator')}</Typography> + </Toolbar> + <Divider /> + <List> + <ListItem> + <SelectField + label={t('reportDevice')} + data={Object.values(devices).sort((a, b) => a.name.localeCompare(b.name))} + value={deviceId} + onChange={(e) => dispatch(devicesActions.selectId(e.target.value))} + fullWidth + /> + </ListItem> + </List> + </Drawer> + <div className={classes.mapContainer}> + <MapView> + <MapPositions + positions={Object.values(positions)} + onClick={handleClick} + showStatus + /> + </MapView> + <MapCurrentLocation /> + <MapGeocoder /> + </div> + </div> + </div> + ); +}; + +export default EmulatorPage; diff --git a/src/other/GeofencesPage.jsx b/src/other/GeofencesPage.jsx index a27a6dca..438d31e5 100644 --- a/src/other/GeofencesPage.jsx +++ b/src/other/GeofencesPage.jsx @@ -39,7 +39,7 @@ const useStyles = makeStyles((theme) => ({ drawerPaper: { position: 'relative', [theme.breakpoints.up('sm')]: { - width: theme.dimensions.drawerWidthTablet, + width: theme.dimensions.drawerWidthDesktop, }, [theme.breakpoints.down('sm')]: { height: theme.dimensions.drawerHeightPhone, diff --git a/src/other/PositionPage.jsx b/src/other/PositionPage.jsx index f253cd2c..e64ee491 100644 --- a/src/other/PositionPage.jsx +++ b/src/other/PositionPage.jsx @@ -87,14 +87,14 @@ const PositionPage = () => { {item && Object.getOwnPropertyNames(item).filter((it) => it !== 'attributes').map((property) => ( <TableRow key={property}> <TableCell>{property}</TableCell> - <TableCell><strong>{positionAttributes[property]?.name || property}</strong></TableCell> + <TableCell><strong>{positionAttributes[property]?.name}</strong></TableCell> <TableCell><PositionValue position={item} property={property} /></TableCell> </TableRow> ))} {item && Object.getOwnPropertyNames(item.attributes).map((attribute) => ( <TableRow key={attribute}> <TableCell>{attribute}</TableCell> - <TableCell><strong>{positionAttributes[attribute]?.name || attribute}</strong></TableCell> + <TableCell><strong>{positionAttributes[attribute]?.name}</strong></TableCell> <TableCell><PositionValue position={item} attribute={attribute} /></TableCell> </TableRow> ))} diff --git a/src/other/ReplayPage.jsx b/src/other/ReplayPage.jsx index 1050b976..1425c495 100644 --- a/src/other/ReplayPage.jsx +++ b/src/other/ReplayPage.jsx @@ -25,7 +25,6 @@ import { useCatch } from '../reactHelper'; import MapCamera from '../map/MapCamera'; import MapGeofence from '../map/MapGeofence'; import StatusCard from '../common/components/StatusCard'; -import { usePreference } from '../common/util/preferences'; const useStyles = makeStyles((theme) => ({ root: { @@ -82,8 +81,6 @@ const ReplayPage = () => { const navigate = useNavigate(); const timerRef = useRef(); - const hours12 = usePreference('twelveHourFormat'); - const defaultDeviceId = useSelector((state) => state.devices.selectedId); const [positions, setPositions] = useState([]); @@ -210,7 +207,7 @@ const ReplayPage = () => { <IconButton onClick={() => setIndex((index) => index + 1)} disabled={playing || index >= positions.length - 1}> <FastForwardIcon /> </IconButton> - {formatTime(positions[index].fixTime, 'seconds', hours12)} + {formatTime(positions[index].fixTime, 'seconds')} </div> </> ) : ( diff --git a/src/reports/ChartReportPage.jsx b/src/reports/ChartReportPage.jsx index 6175e1d8..8a3d01b8 100644 --- a/src/reports/ChartReportPage.jsx +++ b/src/reports/ChartReportPage.jsx @@ -13,7 +13,7 @@ import PageLayout from '../common/components/PageLayout'; import ReportsMenu from './components/ReportsMenu'; import usePositionAttributes from '../common/attributes/usePositionAttributes'; import { useCatch } from '../reactHelper'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; import { altitudeFromMeters, distanceFromMeters, speedFromKnots, volumeFromLiters, } from '../common/util/converter'; @@ -29,7 +29,6 @@ const ChartReportPage = () => { const altitudeUnit = useAttributePreference('altitudeUnit'); const speedUnit = useAttributePreference('speedUnit'); const volumeUnit = useAttributePreference('volumeUnit'); - const hours12 = usePreference('twelveHourFormat'); const [items, setItems] = useState([]); const [types, setTypes] = useState(['speed']); @@ -126,7 +125,7 @@ const ChartReportPage = () => { <XAxis dataKey="fixTime" type="number" - tickFormatter={(value) => formatTime(value, 'time', hours12)} + tickFormatter={(value) => formatTime(value, 'time')} domain={['dataMin', 'dataMax']} scale="time" /> @@ -138,7 +137,7 @@ const ChartReportPage = () => { <CartesianGrid strokeDasharray="3 3" /> <Tooltip formatter={(value, key) => [value, positionAttributes[key]?.name || key]} - labelFormatter={(value) => formatTime(value, 'seconds', hours12)} + labelFormatter={(value) => formatTime(value, 'seconds')} /> <Line type="monotone" dataKey={type} /> </LineChart> diff --git a/src/reports/CombinedReportPage.jsx b/src/reports/CombinedReportPage.jsx index a5000839..32ad5df0 100644 --- a/src/reports/CombinedReportPage.jsx +++ b/src/reports/CombinedReportPage.jsx @@ -15,7 +15,6 @@ import TableShimmer from '../common/components/TableShimmer'; import MapCamera from '../map/MapCamera'; import MapGeofence from '../map/MapGeofence'; import { formatTime } from '../common/util/formatter'; -import { usePreference } from '../common/util/preferences'; import { prefixString } from '../common/util/stringUtils'; import MapMarkers from '../map/MapMarkers'; @@ -25,8 +24,6 @@ const CombinedReportPage = () => { const devices = useSelector((state) => state.devices.items); - const hours12 = usePreference('twelveHourFormat'); - const [items, setItems] = useState([]); const [loading, setLoading] = useState(false); @@ -76,7 +73,7 @@ const CombinedReportPage = () => { )} <div className={classes.containerMain}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} showOnly multiDevice includeGroups /> + <ReportFilter handleSubmit={handleSubmit} showOnly multiDevice includeGroups loading={loading} /> </div> <Table> <TableHead> @@ -90,7 +87,7 @@ const CombinedReportPage = () => { {!loading ? items.flatMap((item) => item.events.map((event, index) => ( <TableRow key={event.id}> <TableCell>{index ? '' : devices[item.deviceId].name}</TableCell> - <TableCell>{formatTime(event.eventTime, 'seconds', hours12)}</TableCell> + <TableCell>{formatTime(event.eventTime, 'seconds')}</TableCell> <TableCell>{t(prefixString('event', event.type))}</TableCell> </TableRow> ))) : (<TableShimmer columns={3} />)} diff --git a/src/reports/EventReportPage.jsx b/src/reports/EventReportPage.jsx index 5ffc8ac3..73e8a2e4 100644 --- a/src/reports/EventReportPage.jsx +++ b/src/reports/EventReportPage.jsx @@ -17,7 +17,7 @@ import ColumnSelect from './components/ColumnSelect'; import { useCatch, useEffectAsync } from '../reactHelper'; import useReportStyles from './common/useReportStyles'; import TableShimmer from '../common/components/TableShimmer'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; import MapView from '../map/core/MapView'; import MapGeofence from '../map/MapGeofence'; import MapPositions from '../map/MapPositions'; @@ -42,7 +42,6 @@ const EventReportPage = () => { const geofences = useSelector((state) => state.geofences.items); const speedUnit = useAttributePreference('speedUnit'); - const hours12 = usePreference('twelveHourFormat'); const [allEventTypes, setAllEventTypes] = useState([['allEvents', 'eventAll']]); @@ -120,19 +119,20 @@ const EventReportPage = () => { }); const formatValue = (item, key) => { + const value = item[key]; switch (key) { case 'eventTime': - return formatTime(item[key], 'seconds', hours12); + return formatTime(value, 'seconds'); case 'type': - return t(prefixString('event', item[key])); + return t(prefixString('event', value)); case 'geofenceId': - if (item[key] > 0) { - const geofence = geofences[item[key]]; + if (value > 0) { + const geofence = geofences[value]; return geofence && geofence.name; } return null; case 'maintenanceId': - return item[key] > 0 ? item[key] > 0 : null; + return value > 0 ? value : null; case 'attributes': switch (item.type) { case 'alarm': @@ -149,7 +149,7 @@ const EventReportPage = () => { return ''; } default: - return item[key]; + return value; } }; @@ -167,7 +167,7 @@ const EventReportPage = () => { )} <div className={classes.containerMain}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule}> + <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} loading={loading}> <div className={classes.filterItem}> <FormControl fullWidth> <InputLabel>{t('reportEventTypes')}</InputLabel> diff --git a/src/reports/RouteReportPage.jsx b/src/reports/RouteReportPage.jsx index 5003ff31..816e95cb 100644 --- a/src/reports/RouteReportPage.jsx +++ b/src/reports/RouteReportPage.jsx @@ -118,7 +118,7 @@ const RouteReportPage = () => { )} <div className={classes.containerMain}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} multiDevice> + <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} multiDevice loading={loading}> <ColumnSelect columns={columns} setColumns={setColumns} diff --git a/src/reports/StatisticsPage.jsx b/src/reports/StatisticsPage.jsx index 7b3f2879..9d6ebf96 100644 --- a/src/reports/StatisticsPage.jsx +++ b/src/reports/StatisticsPage.jsx @@ -12,7 +12,6 @@ import ColumnSelect from './components/ColumnSelect'; import { useCatch } from '../reactHelper'; import useReportStyles from './common/useReportStyles'; import TableShimmer from '../common/components/TableShimmer'; -import { usePreference } from '../common/util/preferences'; const columnsArray = [ ['captureTime', 'statisticsCaptureTime'], @@ -32,8 +31,6 @@ const StatisticsPage = () => { const classes = useReportStyles(); const t = useTranslation(); - const hours12 = usePreference('twelveHourFormat'); - const [columns, setColumns] = usePersistedState('statisticsColumns', ['captureTime', 'activeUsers', 'activeDevices', 'messagesStored']); const [items, setItems] = useState([]); const [loading, setLoading] = useState(false); @@ -56,7 +53,7 @@ const StatisticsPage = () => { return ( <PageLayout menu={<ReportsMenu />} breadcrumbs={['reportTitle', 'statisticsTitle']}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} showOnly ignoreDevice> + <ReportFilter handleSubmit={handleSubmit} showOnly ignoreDevice loading={loading}> <ColumnSelect columns={columns} setColumns={setColumns} columnsArray={columnsArray} /> </ReportFilter> </div> @@ -71,7 +68,7 @@ const StatisticsPage = () => { <TableRow key={item.id}> {columns.map((key) => ( <TableCell key={key}> - {key === 'captureTime' ? formatTime(item[key], 'date', hours12) : item[key]} + {key === 'captureTime' ? formatTime(item[key], 'date') : item[key]} </TableCell> ))} </TableRow> diff --git a/src/reports/StopReportPage.jsx b/src/reports/StopReportPage.jsx index 066b29a4..0fd6aba1 100644 --- a/src/reports/StopReportPage.jsx +++ b/src/reports/StopReportPage.jsx @@ -10,7 +10,7 @@ import { formatDistance, formatVolume, formatTime, formatNumericHours, } from '../common/util/formatter'; import ReportFilter from './components/ReportFilter'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; import { useTranslation } from '../common/components/LocalizationProvider'; import PageLayout from '../common/components/PageLayout'; import ReportsMenu from './components/ReportsMenu'; @@ -44,7 +44,6 @@ const StopReportPage = () => { const distanceUnit = useAttributePreference('distanceUnit'); const volumeUnit = useAttributePreference('volumeUnit'); - const hours12 = usePreference('twelveHourFormat'); const [columns, setColumns] = usePersistedState('stopColumns', ['startTime', 'endTime', 'startOdometer', 'address']); const [items, setItems] = useState([]); @@ -88,22 +87,23 @@ const StopReportPage = () => { }); const formatValue = (item, key) => { + const value = item[key]; switch (key) { case 'startTime': case 'endTime': - return formatTime(item[key], 'minutes', hours12); + return formatTime(value, 'minutes'); case 'startOdometer': - return formatDistance(item[key], distanceUnit, t); + return formatDistance(value, distanceUnit, t); case 'duration': - return formatNumericHours(item[key], t); + return formatNumericHours(value, t); case 'engineHours': - return formatNumericHours(item[key], t); + return value > 0 ? formatNumericHours(value, t) : null; case 'spentFuel': - return formatVolume(item[key], volumeUnit, t); + return value > 0 ? formatVolume(value, volumeUnit, t) : null; case 'address': - return (<AddressValue latitude={item.latitude} longitude={item.longitude} originalAddress={item[key]} />); + return (<AddressValue latitude={item.latitude} longitude={item.longitude} originalAddress={value} />); default: - return item[key]; + return value; } }; @@ -129,7 +129,7 @@ const StopReportPage = () => { )} <div className={classes.containerMain}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule}> + <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} loading={loading}> <ColumnSelect columns={columns} setColumns={setColumns} columnsArray={columnsArray} /> </ReportFilter> </div> diff --git a/src/reports/SummaryReportPage.jsx b/src/reports/SummaryReportPage.jsx index ae7e043e..9b9c00c9 100644 --- a/src/reports/SummaryReportPage.jsx +++ b/src/reports/SummaryReportPage.jsx @@ -8,7 +8,7 @@ import { formatDistance, formatSpeed, formatVolume, formatTime, formatNumericHours, } from '../common/util/formatter'; import ReportFilter from './components/ReportFilter'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; import { useTranslation } from '../common/components/LocalizationProvider'; import PageLayout from '../common/components/PageLayout'; import ReportsMenu from './components/ReportsMenu'; @@ -27,6 +27,8 @@ const columnsArray = [ ['averageSpeed', 'reportAverageSpeed'], ['maxSpeed', 'reportMaximumSpeed'], ['engineHours', 'reportEngineHours'], + ['startHours', 'reportStartEngineHours'], + ['endHours', 'reportEndEngineHours'], ['spentFuel', 'reportSpentFuel'], ]; const columnsMap = new Map(columnsArray); @@ -41,7 +43,6 @@ const SummaryReportPage = () => { const distanceUnit = useAttributePreference('distanceUnit'); const speedUnit = useAttributePreference('speedUnit'); const volumeUnit = useAttributePreference('volumeUnit'); - const hours12 = usePreference('twelveHourFormat'); const [columns, setColumns] = usePersistedState('summaryColumns', ['startTime', 'distance', 'averageSpeed']); const [daily, setDaily] = useState(false); @@ -88,31 +89,34 @@ const SummaryReportPage = () => { }); const formatValue = (item, key) => { + const value = item[key]; switch (key) { case 'deviceId': - return devices[item[key]].name; + return devices[value].name; case 'startTime': - return formatTime(item[key], 'date', hours12); + return formatTime(value, 'date'); case 'startOdometer': case 'endOdometer': case 'distance': - return formatDistance(item[key], distanceUnit, t); + return formatDistance(value, distanceUnit, t); case 'averageSpeed': case 'maxSpeed': - return formatSpeed(item[key], speedUnit, t); + return value > 0 ? formatSpeed(value, speedUnit, t) : null; case 'engineHours': - return formatNumericHours(item[key], t); + case 'startHours': + case 'endHours': + return value > 0 ? formatNumericHours(value, t) : null; case 'spentFuel': - return formatVolume(item[key], volumeUnit, t); + return value > 0 ? formatVolume(value, volumeUnit, t) : null; default: - return item[key]; + return value; } }; return ( <PageLayout menu={<ReportsMenu />} breadcrumbs={['reportTitle', 'reportSummary']}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} multiDevice includeGroups> + <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} multiDevice includeGroups loading={loading}> <div className={classes.filterItem}> <FormControl fullWidth> <InputLabel>{t('sharedType')}</InputLabel> diff --git a/src/reports/TripReportPage.jsx b/src/reports/TripReportPage.jsx index 897ee506..22fb9b91 100644 --- a/src/reports/TripReportPage.jsx +++ b/src/reports/TripReportPage.jsx @@ -9,7 +9,7 @@ import { formatDistance, formatSpeed, formatVolume, formatTime, formatNumericHours, } from '../common/util/formatter'; import ReportFilter from './components/ReportFilter'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; import { useTranslation } from '../common/components/LocalizationProvider'; import PageLayout from '../common/components/PageLayout'; import ReportsMenu from './components/ReportsMenu'; @@ -50,7 +50,6 @@ const TripReportPage = () => { const distanceUnit = useAttributePreference('distanceUnit'); const speedUnit = useAttributePreference('speedUnit'); const volumeUnit = useAttributePreference('volumeUnit'); - const hours12 = usePreference('twelveHourFormat'); const [columns, setColumns] = usePersistedState('tripColumns', ['startTime', 'endTime', 'distance', 'averageSpeed']); const [items, setItems] = useState([]); @@ -130,27 +129,28 @@ const TripReportPage = () => { }); const formatValue = (item, key) => { + const value = item[key]; switch (key) { case 'startTime': case 'endTime': - return formatTime(item[key], 'minutes', hours12); + return formatTime(value, 'minutes'); case 'startOdometer': case 'endOdometer': case 'distance': - return formatDistance(item[key], distanceUnit, t); + return formatDistance(value, distanceUnit, t); case 'averageSpeed': case 'maxSpeed': - return formatSpeed(item[key], speedUnit, t); + return value > 0 ? formatSpeed(value, speedUnit, t) : null; case 'duration': - return formatNumericHours(item[key], t); + return formatNumericHours(value, t); case 'spentFuel': - return formatVolume(item[key], volumeUnit, t); + return value > 0 ? formatVolume(value, volumeUnit, t) : null; case 'startAddress': - return (<AddressValue latitude={item.startLat} longitude={item.startLon} originalAddress={item[key]} />); + return (<AddressValue latitude={item.startLat} longitude={item.startLon} originalAddress={value} />); case 'endAddress': - return (<AddressValue latitude={item.endLat} longitude={item.endLon} originalAddress={item[key]} />); + return (<AddressValue latitude={item.endLat} longitude={item.endLon} originalAddress={value} />); default: - return item[key]; + return value; } }; @@ -173,7 +173,7 @@ const TripReportPage = () => { )} <div className={classes.containerMain}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule}> + <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} loading={loading}> <ColumnSelect columns={columns} setColumns={setColumns} columnsArray={columnsArray} /> </ReportFilter> </div> diff --git a/src/reports/components/ReportFilter.jsx b/src/reports/components/ReportFilter.jsx index e6e08f16..437a7487 100644 --- a/src/reports/components/ReportFilter.jsx +++ b/src/reports/components/ReportFilter.jsx @@ -11,7 +11,7 @@ import SplitButton from '../../common/components/SplitButton'; import SelectField from '../../common/components/SelectField'; import { useRestriction } from '../../common/util/permissions'; -const ReportFilter = ({ children, handleSubmit, handleSchedule, showOnly, ignoreDevice, multiDevice, includeGroups }) => { +const ReportFilter = ({ children, handleSubmit, handleSchedule, showOnly, ignoreDevice, multiDevice, includeGroups, loading }) => { const classes = useReportStyles(); const dispatch = useDispatch(); const t = useTranslation(); @@ -33,7 +33,7 @@ const ReportFilter = ({ children, handleSubmit, handleSchedule, showOnly, ignore const [calendarId, setCalendarId] = useState(); const scheduleDisabled = button === 'schedule' && (!description || !calendarId); - const disabled = (!ignoreDevice && !deviceId && !deviceIds.length && !groupIds.length) || scheduleDisabled; + const disabled = (!ignoreDevice && !deviceId && !deviceIds.length && !groupIds.length) || scheduleDisabled || loading; const handleClick = (type) => { if (type === 'schedule') { diff --git a/src/resources/l10n/af.json b/src/resources/l10n/af.json index 5ecd845e..8437b5a5 100644 --- a/src/resources/l10n/af.json +++ b/src/resources/l10n/af.json @@ -4,6 +4,7 @@ "sharedSave": "Stoor", "sharedUpload": "Upload", "sharedSet": "Stel", + "sharedAccept": "Accept", "sharedCancel": "Kanselleer", "sharedCopy": "Copy", "sharedAdd": "Sit by", @@ -34,6 +35,7 @@ "sharedName": "Naam", "sharedDescription": "Beskrywing", "sharedSearch": "Soek", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geografiese omheining", "sharedGeofences": "Geografiese omheinings", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Teken aan", "loginLanguage": "Taal", "loginReset": "Herstel Wagwoord", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Kaart", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Gemiddelde Spoed", "reportMaximumSpeed": "Maksimum Spoed", "reportEngineHours": "Engin Ure", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duur", "reportStartDate": "Begindatum", "reportStartTime": "Begin tyd", diff --git a/src/resources/l10n/ar.json b/src/resources/l10n/ar.json index 19f4c9d8..020b7e3e 100644 --- a/src/resources/l10n/ar.json +++ b/src/resources/l10n/ar.json @@ -4,6 +4,7 @@ "sharedSave": "حفظ", "sharedUpload": "Upload", "sharedSet": "ضبط", + "sharedAccept": "Accept", "sharedCancel": "إلغاء", "sharedCopy": "Copy", "sharedAdd": "إضافة", @@ -34,6 +35,7 @@ "sharedName": "الاسم", "sharedDescription": "الوصف", "sharedSearch": "بحث", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "السياج الجغرافي", "sharedGeofences": "السياجات الجغرافية", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "رمز", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "تسجيل الدخول", "loginLanguage": "اللغة", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "خريطة", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "متوسط السرعة", "reportMaximumSpeed": "السرعة القصوى", "reportEngineHours": "ساعات عمل المحرك", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "المدة الزمنية", "reportStartDate": "تاريخ البدء", "reportStartTime": "وقت البدء", diff --git a/src/resources/l10n/az.json b/src/resources/l10n/az.json index 02430a47..09cf30d6 100644 --- a/src/resources/l10n/az.json +++ b/src/resources/l10n/az.json @@ -4,6 +4,7 @@ "sharedSave": "Yadda saxlamaq", "sharedUpload": "Upload", "sharedSet": "Qurmaq", + "sharedAccept": "Accept", "sharedCancel": "Ləğv etmək", "sharedCopy": "Copy", "sharedAdd": "Əlavə etmək", @@ -34,6 +35,7 @@ "sharedName": "Ad", "sharedDescription": "Təsvir", "sharedSearch": "Axtarış", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geozona", "sharedGeofences": "Geozonalar", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Açar", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Giriş", "loginLanguage": "Dil", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Xəritə", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Orta sürət", "reportMaximumSpeed": "Maksimal sürə", "reportEngineHours": "Mühərrik saatları", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Davamiyyəti", "reportStartDate": "Start Date", "reportStartTime": "Başlanğıc vaxtı", diff --git a/src/resources/l10n/bg.json b/src/resources/l10n/bg.json index 299b7a15..8538bc50 100644 --- a/src/resources/l10n/bg.json +++ b/src/resources/l10n/bg.json @@ -4,6 +4,7 @@ "sharedSave": "Запази", "sharedUpload": "Upload", "sharedSet": "Настрой", + "sharedAccept": "Accept", "sharedCancel": "Отказ", "sharedCopy": "Copy", "sharedAdd": "Добави", @@ -34,6 +35,7 @@ "sharedName": "Име", "sharedDescription": "Описание", "sharedSearch": "Търси", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Зона", "sharedGeofences": "Зони", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Жетон", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Вход", "loginLanguage": "Език", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Карта", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Средна скорост", "reportMaximumSpeed": "Максимална скорост", "reportEngineHours": "Машиночас", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Продължителност", "reportStartDate": "Start Date", "reportStartTime": "Начален час", diff --git a/src/resources/l10n/bn.json b/src/resources/l10n/bn.json index 79d6c3d0..ddda55dd 100644 --- a/src/resources/l10n/bn.json +++ b/src/resources/l10n/bn.json @@ -4,6 +4,7 @@ "sharedSave": " সংরক্ষণ করুন", "sharedUpload": "Upload", "sharedSet": "স্থাপন করুন", + "sharedAccept": "Accept", "sharedCancel": " বাতিল করুন", "sharedCopy": "Copy", "sharedAdd": "যুক্ত করুন", @@ -34,6 +35,7 @@ "sharedName": "নাম", "sharedDescription": "বিবরণ / বর্ণনা", "sharedSearch": "অনুসন্ধান / খোঁজা", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "জিওফেন্স / ভৌগোলিক বেষ্টনী", "sharedGeofences": "জিওফেন্স / ভৌগোলিক বেষ্টনী", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "টোকেন", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "লগইন", "loginLanguage": "ভাষা", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "মানচিত্র", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "শুরুর সময় ", diff --git a/src/resources/l10n/ca.json b/src/resources/l10n/ca.json index 6ac0b872..6619412b 100644 --- a/src/resources/l10n/ca.json +++ b/src/resources/l10n/ca.json @@ -4,14 +4,15 @@ "sharedSave": "Guardar", "sharedUpload": "Carrega", "sharedSet": "Establir", + "sharedAccept": "Accept", "sharedCancel": "Cancel·lar", - "sharedCopy": "Copy", + "sharedCopy": "Còpia", "sharedAdd": "Afegir", "sharedEdit": "Editar", "sharedRemove": "Eliminar", "sharedRemoveConfirm": "Eliminar element?", "sharedNoData": "Sense dades", - "sharedSubject": "Subject", + "sharedSubject": "Assumpte", "sharedYes": "Sí", "sharedNo": "No", "sharedKm": "Km", @@ -34,6 +35,7 @@ "sharedName": "Nom", "sharedDescription": "Descripció", "sharedSearch": "Cercar", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geo-Zona", "sharedGeofences": "Geo-Zones", @@ -101,8 +103,9 @@ "sharedImport": "Importar", "sharedColumns": "Columnes", "sharedDropzoneText": "Arrossegueu i deixeu anar un fitxer aquí o feu clic", - "sharedLogs": "Logs", - "sharedLink": "Link", + "sharedLogs": "Registres", + "sharedLink": "Enllaç", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrència", "calendarOnce": "Una vegada", @@ -147,11 +150,11 @@ "attributeMailSmtpAuth": "Correu: Habilitar autenticació SMTP", "attributeMailSmtpUsername": "Correu: Nom d\\'usuari SMTP", "attributeMailSmtpPassword": "Correu: Contrasenya SMTP", - "attributeUiDisableSavedCommands": "UI: Disable Saved Commands", + "attributeUiDisableSavedCommands": "Interfície d'usuari: desactiva les ordres desades", "attributeUiDisableAttributes": "UI: Disable Attributes", "attributeUiDisableGroups": "UI: Deshabilitar Grups", "attributeUiDisableEvents": "UI: Deshabilitar esdeveniments", - "attributeUiDisableVehicleFeatures": "UI: Disable Vehicle Features", + "attributeUiDisableVehicleFeatures": "UI: Deshabilitar característiques del vehicle", "attributeUiDisableDrivers": "UI: Deshabilitar Conductors", "attributeUiDisableComputedAttributes": "UI: Deshabilitar Atributs calculats", "attributeUiDisableCalendars": "UI: Deshabilitar Calendari", @@ -178,7 +181,11 @@ "userFixedEmail": "No Email Change", "userToken": "Token Accés", "userDeleteAccount": "Delete Account", - "userTemporary": "Temporary", + "userTemporary": "Temporal", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Iniciar sessió", "loginLanguage": "Idioma", "loginReset": "Reiniciar contrasenya", @@ -235,7 +242,7 @@ "settingsTotpForce": "Força contrasenya d'un sol ús", "settingsServiceWorkerUpdateInterval": "Interval d'actualització del ServiceWorker", "settingsUpdateAvailable": "Hi ha una actualització disponible.", - "settingsSupport": "Support", + "settingsSupport": "Suport", "reportTitle": "Informes", "reportScheduled": "Informes programats", "reportDevice": "Dispositius", @@ -329,7 +336,8 @@ "serverLogo": "Imatge del logotip", "serverLogoInverted": "Imatge de logotip invertida", "serverChangeDisable": "Desactiva el canvi de servidor", - "serverDisableShare": "Disable Device Sharing", + "serverDisableShare": "Desactiva l'ús compartit de dispositius", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Mapes actius", "mapOverlay": "Capa sobre el mapa", @@ -363,7 +371,7 @@ "mapWikimedia": "Wikimedia", "mapOrdnanceSurvey": "Ordnance Survey", "mapMapboxStreets": "Mapbox Streets", - "mapMapboxStreetsDark": "Mapbox Streets Dark", + "mapMapboxStreetsDark": "Mapbox Streets Fosc", "mapMapboxOutdoors": "Mapbox Outdoors", "mapMapboxSatellite": "Mapbox Satellite", "mapMapboxKey": "Mapbox Access Token", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocitat Mitjana", "reportMaximumSpeed": "Velocitat Màxima", "reportEngineHours": "Hores de Motor", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Durada", "reportStartDate": "Data Inical", "reportStartTime": "Hora Inical", diff --git a/src/resources/l10n/cs.json b/src/resources/l10n/cs.json index 10a1f1fa..5c9e53f3 100644 --- a/src/resources/l10n/cs.json +++ b/src/resources/l10n/cs.json @@ -2,16 +2,17 @@ "sharedLoading": "Načítám...", "sharedHide": "Skrýt", "sharedSave": "Uložit", - "sharedUpload": "Upload", + "sharedUpload": "Nahrát", "sharedSet": "Nastavit", + "sharedAccept": "Akceptovat", "sharedCancel": "Zrušit", - "sharedCopy": "Copy", + "sharedCopy": "Kopírovat", "sharedAdd": "Přidat", "sharedEdit": "Změnit", "sharedRemove": "Odstranit", "sharedRemoveConfirm": "Odstranit položku?", - "sharedNoData": "No data", - "sharedSubject": "Subject", + "sharedNoData": "Žádná data", + "sharedSubject": "Předmět", "sharedYes": "Ano", "sharedNo": "Ne", "sharedKm": "km", @@ -34,10 +35,11 @@ "sharedName": "Jméno", "sharedDescription": "Popis", "sharedSearch": "Hledat", - "sharedIconScale": "Icon Scale", + "sharedPriority": "Priority", + "sharedIconScale": "Velikost ikony", "sharedGeofence": "Zóna", "sharedGeofences": "Zóny", - "sharedCreateGeofence": "Create Geofence", + "sharedCreateGeofence": "Vytvořte lokalitu", "sharedNotifications": "Upozornění", "sharedNotification": "Upozornění", "sharedAttributes": "Atributy", @@ -66,14 +68,14 @@ "sharedDevice": "Zařízení", "sharedTest": "Test", "sharedTestNotification": "Odeslat testovací oznámení", - "sharedTestNotificators": "Test Channels", - "sharedTestExpression": "Test Expression", + "sharedTestNotificators": "Testovací kanály", + "sharedTestExpression": "Testovací výraz", "sharedCalendar": "Kalendář", "sharedCalendars": "Kalendáře", "sharedFile": "Soubor", - "sharedSearchDevices": "Search Devices", - "sharedSortBy": "Sort By", - "sharedFilterMap": "Filter on Map", + "sharedSearchDevices": "Vyhledat zařízení", + "sharedSortBy": "Seřazeno podle", + "sharedFilterMap": "Filtr na mapě", "sharedSelectFile": "Vybrat soubor", "sharedPhone": "Telefon", "sharedRequired": "Povinné", @@ -81,8 +83,8 @@ "sharedPermissions": "Oprávnění", "sharedConnections": "Připojení", "sharedExtra": "Volitelné", - "sharedPrimary": "Primary", - "sharedSecondary": "Secondary", + "sharedPrimary": "Hlavní", + "sharedSecondary": "Sekundární", "sharedTypeString": "Řetězec", "sharedTypeNumber": "Číslo", "sharedTypeBoolean": "Logická hodnota", @@ -99,33 +101,34 @@ "sharedAlarms": "Alarmy", "sharedLocation": "Lokace", "sharedImport": "Import", - "sharedColumns": "Columns", - "sharedDropzoneText": "Drag and drop a file here or click", - "sharedLogs": "Logs", - "sharedLink": "Link", - "calendarSimple": "Simple", - "calendarRecurrence": "Recurrence", - "calendarOnce": "Once", - "calendarDaily": "Daily", - "calendarWeekly": "Weekly", - "calendarMonthly": "Monthly", - "calendarDays": "Days", - "calendarSunday": "Sunday", - "calendarMonday": "Monday", - "calendarTuesday": "Tuesday", - "calendarWednesday": "Wednesday", - "calendarThursday": "Thursday", - "calendarFriday": "Friday", - "calendarSaturday": "Saturday", - "attributeShowGeofences": "Show Geofences", + "sharedColumns": "Sloupce", + "sharedDropzoneText": "Přetáhněte soubor sem nebo klikněte", + "sharedLogs": "Protokoly", + "sharedLink": "Odkaz", + "sharedEmulator": "Emulator", + "calendarSimple": "Jednoduchý", + "calendarRecurrence": "Opakování", + "calendarOnce": "Jednou", + "calendarDaily": "Denně", + "calendarWeekly": "Denně", + "calendarMonthly": "Měsíční", + "calendarDays": "Dny", + "calendarSunday": "Neděle", + "calendarMonday": "Pondělí", + "calendarTuesday": "Úterý", + "calendarWednesday": "Středa", + "calendarThursday": "Čtvrtek", + "calendarFriday": "Pátek", + "calendarSaturday": "Sobota", + "attributeShowGeofences": "Ukázat lokality", "attributeSpeedLimit": "Rychlostní limit", - "attributeFuelDropThreshold": "Fuel Drop Threshold", - "attributeFuelIncreaseThreshold": "Fuel Increase Threshold", + "attributeFuelDropThreshold": "Práh poklesu paliva", + "attributeFuelIncreaseThreshold": "Práh zvýšení paliva", "attributePolylineDistance": "Vzdálenost křivky", "attributeReportIgnoreOdometer": "Report: Počítadlo kilometrů", "attributeWebReportColor": "Web: Barva reportu", "attributeDevicePassword": "Heslo zařízení", - "attributeDeviceImage": "Device Image", + "attributeDeviceImage": "Obrázek zařízení", "attributeDeviceInactivityStart": "Počátek nečinnosti zařízení", "attributeDeviceInactivityPeriod": "Období nečinnosti zařízení", "attributeProcessingCopyAttributes": "Procesuji: Kopírování vlastností", @@ -133,9 +136,9 @@ "attributeWebLiveRouteLength": "Web: Aktuální délka trasy", "attributeWebSelectZoom": "Web: Přiblížit při výběru", "attributeWebMaxZoom": "Web: Maximální přiblížení", - "attributeTelegramChatId": "Telegram Chat ID", - "attributePushoverUserKey": "Pushover User Key", - "attributePushoverDeviceNames": "Pushover Device Names", + "attributeTelegramChatId": "ID Telegramového chatu", + "attributePushoverUserKey": "Pushover uživatelský klíč", + "attributePushoverDeviceNames": "Názvy zařízení Pushover", "attributeMailSmtpHost": "Mail: SMTP server", "attributeMailSmtpPort": "Mail: SMTP port", "attributeMailSmtpStarttlsEnable": "Mail: SMTP STARTTLS povolit", @@ -147,19 +150,19 @@ "attributeMailSmtpAuth": "Mail: SMTP povolení ověřování", "attributeMailSmtpUsername": "Mail: SMTP uživatelské jméno", "attributeMailSmtpPassword": "Mail: SMTP heslo", - "attributeUiDisableSavedCommands": "UI: Disable Saved Commands", - "attributeUiDisableAttributes": "UI: Disable Attributes", - "attributeUiDisableGroups": "UI: Disable Groups", + "attributeUiDisableSavedCommands": "UI: Zakázat uložené příkazy", + "attributeUiDisableAttributes": "UI: Zakázat atributy", + "attributeUiDisableGroups": "UI: Zakázat skupiny", "attributeUiDisableEvents": "UI: Zakázat události", - "attributeUiDisableVehicleFeatures": "UI: Disable Vehicle Features", + "attributeUiDisableVehicleFeatures": "UI: Zakázat funkce vozidla", "attributeUiDisableDrivers": "UI: Zakázat řidiče", "attributeUiDisableComputedAttributes": "UI: Zakázat vypočítané vlastnosti", "attributeUiDisableCalendars": "UI: Zakázat kalendáře", "attributeUiDisableMaintenance": "UI: Zakázat údržbu", "attributeUiHidePositionAttributes": "UI: Skrýt atributy pozice", - "attributeUiDisableLoginLanguage": "UI: Disable Login Language", + "attributeUiDisableLoginLanguage": "UI: Zakázat jazyk přihlášení", "attributeNotificationTokens": "Notifikační tokeny", - "attributePopupInfo": "Popup Info", + "attributePopupInfo": "Vyskakovací okno", "errorTitle": "Chyba", "errorGeneral": "Nesprávné parametry nebo překročení omezení", "errorConnection": "Chyba spojení", @@ -174,30 +177,34 @@ "userUserLimit": "Limit uživatele", "userDeviceReadonly": "Zařízení pouze pro čtení", "userLimitCommands": "Limit příkazů", - "userDisableReports": "Disable Reports", - "userFixedEmail": "No Email Change", + "userDisableReports": "Zakázat přehledy", + "userFixedEmail": "Zakázat změnu e-mailu", "userToken": "Token", - "userDeleteAccount": "Delete Account", - "userTemporary": "Temporary", + "userDeleteAccount": "Smazat účet", + "userTemporary": "Dočasný", + "userTerms": "Podmínky služby", + "userPrivacy": "Zásady ochrany osobních údajů", + "userTermsPrompt": "Kliknutím na tlačítko \"Akceptovat\" souhlasíte s našimi Podmínkami služby a potvrzujete, že jste si přečetli naše Zásady ochrany osobních údajů.", + "userTermsAccepted": "Podmínky přijaty", "loginTitle": "Přihlášení", "loginLanguage": "Jazyk", "loginReset": "Obnovit Heslo", "loginRegister": "Registrace", "loginLogin": "Přihlášení", - "loginOpenId": "Login with OpenID", + "loginOpenId": "Přihlaste se pomocí OpenID", "loginFailed": "Nesprávný email nebo heslo", "loginCreated": "Nový uživatel byl zaregistrován", "loginResetSuccess": "Zkontroluj si email ", "loginUpdateSuccess": "Nové heslo je nastaveno", "loginLogout": "Odhlášení", "loginLogo": "Logo", - "loginTotpCode": "One-time Password Code", - "loginTotpKey": "One-time Password Key", + "loginTotpCode": "Dvoufaktorová autentifikace kód", + "loginTotpKey": "Dvoufaktorová autentifikace klíč", "devicesAndState": "Zařízení a stav", - "deviceSelected": "Selected Device", + "deviceSelected": "Vybrané zařízení", "deviceTitle": "Zařízení", - "devicePrimaryInfo": "Device Title", - "deviceSecondaryInfo": "Device Detail", + "devicePrimaryInfo": "Název zařízení", + "deviceSecondaryInfo": "Detail zařízení", "deviceIdentifier": "Identifikace", "deviceModel": "Model", "deviceContact": "Kontakt", @@ -210,9 +217,9 @@ "deviceStatusOnline": "Online", "deviceStatusOffline": "Offline", "deviceStatusUnknown": "Neznámý", - "deviceRegisterFirst": "Register your first device", - "deviceIdentifierHelp": "IMEI, serial number or other id. It has to match the identifier device reports to the server.", - "deviceShare": "Share Device", + "deviceRegisterFirst": "Zaregistrujte své první zařízení", + "deviceIdentifierHelp": "IMEI, sériové číslo nebo jiné ID. Musí se shodovat s identifikátorem zařízení na serveru.", + "deviceShare": "Sdílet zařízení", "groupDialog": "Skupina", "groupParent": "Skupina", "groupNoGroup": "Žádná skupina", @@ -222,34 +229,34 @@ "settingsServer": "Server", "settingsUsers": "Uživatelé", "settingsDistanceUnit": "Jednotka vzdálenosti", - "settingsAltitudeUnit": "Altitude Unit", + "settingsAltitudeUnit": "Výšková jednotka", "settingsSpeedUnit": "Jednotka rychlosti", "settingsVolumeUnit": "Jednotka objemu", "settingsTwelveHourFormat": "12-hodinový formát", "settingsCoordinateFormat": "Formát souřadnic", - "settingsServerVersion": "Server Version", - "settingsAppVersion": "App Version", - "settingsConnection": "Connection", - "settingsDarkMode": "Dark Mode", - "settingsTotpEnable": "Enable One-time Password", - "settingsTotpForce": "Force One-time Password", - "settingsServiceWorkerUpdateInterval": "ServiceWorker Update Interval", - "settingsUpdateAvailable": "There is an update available.", - "settingsSupport": "Support", + "settingsServerVersion": "Verze serveru", + "settingsAppVersion": "Verze aplikace", + "settingsConnection": "Spojení", + "settingsDarkMode": "Tmavý režim", + "settingsTotpEnable": "Povolit dvoufaktorové ověření", + "settingsTotpForce": "Vynutit dvoufaktorové ověření", + "settingsServiceWorkerUpdateInterval": "Interval aktualizace ServiceWorker", + "settingsUpdateAvailable": "K dispozici je aktualizace.", + "settingsSupport": "Podpora", "reportTitle": "Reporty", - "reportScheduled": "Scheduled Reports", + "reportScheduled": "Naplánované zprávy", "reportDevice": "Zařízení", "reportGroup": "Skupina", "reportFrom": "Od", "reportTo": "Komu", "reportShow": "Zobrazit", "reportClear": "Vyprázdnit", - "linkGoogleMaps": "Google Maps", - "linkAppleMaps": "Apple Maps", + "linkGoogleMaps": "Google Mapy", + "linkAppleMaps": "Apple Mapy", "linkStreetView": "Street View", - "positionFixTime": "Fix Time", - "positionDeviceTime": "Device Time", - "positionServerTime": "Server Time", + "positionFixTime": "Čas", + "positionDeviceTime": "Čas zařízení", + "positionServerTime": "Čas serveru", "positionValid": "Správný", "positionAccuracy": "Přesnost", "positionLatitude": "Šířka", @@ -283,7 +290,7 @@ "positionHours": "Hodiny", "positionSteps": "Kroky", "positionInput": "Vstup", - "positionHeartRate": "Heart Rate", + "positionHeartRate": "Tepová frekvence", "positionOutput": "Výstup", "positionBatteryLevel": "Úroveň baterie", "positionFuelConsumption": "Spotřeba paliva", @@ -301,18 +308,18 @@ "positionMotion": "Pohyb", "positionArmed": "Odjištěno", "positionAcceleration": "Akcelerace", - "positionTemp": "Temperature", + "positionTemp": "Teplota", "positionDeviceTemp": "Teplota zařízení", - "positionCoolantTemp": "Coolant Temperature", + "positionCoolantTemp": "Teplota chladicí kapaliny", "positionOperator": "Operátor", "positionCommand": "Příkaz", "positionBlocked": "Blokované", "positionDtcs": "DTC", "positionObdSpeed": "OBD rychlost", "positionObdOdometer": "OBD počítadlo kilometrů", - "positionDrivingTime": "Driving Time", + "positionDrivingTime": "Doba jízdy", "positionDriverUniqueId": "Unikátní ID ridiče", - "positionCard": "Card", + "positionCard": "Karta", "positionImage": "Obraz", "positionVideo": "Video", "positionAudio": "Zvuk", @@ -322,26 +329,27 @@ "serverReadonly": "Pouze pro čtení", "serverForceSettings": "Vynutit nastavení", "serverAnnouncement": "Oznámení", - "serverName": "Server Name", - "serverDescription": "Server Description", - "serverColorPrimary": "Color Primary", - "serverColorSecondary": "Color Secondary", - "serverLogo": "Logo Image", - "serverLogoInverted": "Inverted Logo Image", - "serverChangeDisable": "Disable Server Change", - "serverDisableShare": "Disable Device Sharing", + "serverName": "Název serveru", + "serverDescription": "Popis serveru", + "serverColorPrimary": "Barva primární", + "serverColorSecondary": "Barva sekundární", + "serverLogo": "Obrázek loga", + "serverLogoInverted": "Barevně obrácený obrázek loga", + "serverChangeDisable": "Zakázat změnu serveru", + "serverDisableShare": "Zakázat sdílení zařízení", + "serverReboot": "Reboot", "mapTitle": "Mapa", - "mapActive": "Active Maps", - "mapOverlay": "Map Overlay", - "mapOverlayCustom": "Custom Overlay", + "mapActive": "Aktivní mapy", + "mapOverlay": "Překrytí mapy", + "mapOverlayCustom": "Vlastní překrytí mapy", "mapOpenSeaMap": "OpenSeaMap", "mapOpenRailwayMap": "OpenRailwayMap", - "mapOpenWeatherKey": "OpenWeather API Key", + "mapOpenWeatherKey": "OpenWeather API Klíč", "mapOpenWeatherClouds": "OpenWeather Clouds", - "mapOpenWeatherPrecipitation": "OpenWeather Precipitation", - "mapOpenWeatherPressure": "OpenWeather Pressure", - "mapOpenWeatherWind": "OpenWeather Wind", - "mapOpenWeatherTemperature": "OpenWeather Temperature", + "mapOpenWeatherPrecipitation": "OpenWeather Srážky", + "mapOpenWeatherPressure": "OpenWeather Tlak", + "mapOpenWeatherWind": "OpenWeather Vítr", + "mapOpenWeatherTemperature": "OpenWeather Teplota", "mapLayer": "Vrstva mapy", "mapCustom": "Vlastní (XYZ)", "mapCustomArcgis": "Vlastní (ArcGIS)", @@ -350,7 +358,7 @@ "mapOsm": "OpenStreetMap", "mapGoogleRoad": "Google Road", "mapGoogleHybrid": "Google Hybrid", - "mapGoogleSatellite": "Google Satellite", + "mapGoogleSatellite": "Google Satelit", "mapOpenTopoMap": "OpenTopoMap", "mapBingKey": "Bing Maps klíč", "mapBingRoad": "Bing Maps silniční", @@ -363,35 +371,35 @@ "mapWikimedia": "Wikimedia", "mapOrdnanceSurvey": "Ordnance Survey", "mapMapboxStreets": "Mapbox ulice", - "mapMapboxStreetsDark": "Mapbox Streets Dark", + "mapMapboxStreetsDark": "Mapbox Streets Tmavé", "mapMapboxOutdoors": "Mapbox venkovní", "mapMapboxSatellite": "Mapbox satelit", "mapMapboxKey": "Mapbox Access Token", "mapMapTilerBasic": "MapTiler Základní", "mapMapTilerHybrid": "MapTiler Hybridní", - "mapMapTilerKey": "MapTiler API Key", + "mapMapTilerKey": "MapTiler API Klíč", "mapLocationIqStreets": "LocationIQ Streets", - "mapLocationIqDark": "LocationIQ Dark", - "mapLocationIqKey": "LocationIQ Access Token", + "mapLocationIqDark": "LocationIQ Tmavé", + "mapLocationIqKey": "LocationIQ Přístupový klíč", "mapTomTomBasic": "TomTom Basic", - "mapTomTomFlow": "TomTom Traffic Flow", - "mapTomTomIncidents": "TomTom Traffic Incidents", - "mapTomTomKey": "TomTom API Key", + "mapTomTomFlow": "TomTom Dopravní tok", + "mapTomTomIncidents": "TomTom Dopravní nehody", + "mapTomTomKey": "TomTom API Klíč", "mapHereBasic": "Here Basic", "mapHereHybrid": "Here Hybrid", "mapHereSatellite": "Here Satellite", - "mapHereFlow": "Here Traffic Flow", - "mapHereKey": "Here API Key", + "mapHereFlow": "Here Dopravní tok", + "mapHereKey": "Here API Klíč", "mapShapePolygon": "Mnohoúhelník", "mapShapeCircle": "Kruh", "mapShapePolyline": "Křivka", "mapLiveRoutes": "Trasy živě", - "mapDirection": "Show Direction", + "mapDirection": "Zobrazit směr", "mapCurrentLocation": "Současná pozice", "mapPoiLayer": "Vrstva s POI", - "mapClustering": "Markers Clustering", - "mapOnSelect": "Show Map on Selection", - "mapDefault": "Default Map", + "mapClustering": "Shlukování markerů", + "mapOnSelect": "Zobrazit mapu při výběru", + "mapDefault": "Výchozí mapa", "stateTitle": "Stav", "stateName": "Atribut", "stateValue": "Hodnota", @@ -433,16 +441,16 @@ "commandGetModemStatus": "Získat stav modemu", "commandGetDeviceStatus": "Získat stav zařízení", "commandSetSpeedLimit": "Nastavit rychlostní limit", - "commandModePowerSaving": "Power Saving Mode", - "commandModeDeepSleep": "Deep Sleep Mode", - "commandAlarmGeofence": "Set Geofence Alarm", - "commandAlarmBattery": "Set Battery Alarm", - "commandAlarmSos": "Set SOS Alarm", - "commandAlarmRemove": "Set Remove Alarm", - "commandAlarmClock": "Set Clock Alarm", - "commandAlarmSpeed": "Set Speed Alarm", - "commandAlarmFall": "Set Fall Alarm", - "commandAlarmVibration": "Set Vibration Alarm", + "commandModePowerSaving": "Úsporný režim", + "commandModeDeepSleep": "Režim hlubokého spánku", + "commandAlarmGeofence": "Nastavte alarm lokality", + "commandAlarmBattery": "Nastavte alarm baterie", + "commandAlarmSos": "Nastavte SOS alarm", + "commandAlarmRemove": "Nastavte odstranit alarm", + "commandAlarmClock": "Nastavte budík", + "commandAlarmSpeed": "Nastavte alarm rychlosti", + "commandAlarmFall": "Nastavte alarm pádu", + "commandAlarmVibration": "Nastavte vibrační alarm", "commandFrequency": "Frekvence", "commandTimezone": "Ofset časové zóny", "commandMessage": "Zpráva", @@ -458,12 +466,12 @@ "eventDeviceUnknown": "Status neznámý", "eventDeviceOffline": "Status offline", "eventDeviceInactive": "Zařízení je neaktivní", - "eventQueuedCommandSent": "Queued command sent", + "eventQueuedCommandSent": "Příkaz ve frontě odeslán", "eventDeviceMoving": "Zařízení se přesouvá", "eventDeviceStopped": "Zařízení bylo zastaveno", "eventDeviceOverspeed": "Rychlostní limit překročen", "eventDeviceFuelDrop": "Pokles paliva", - "eventDeviceFuelIncrease": "Fuel increase", + "eventDeviceFuelIncrease": "Zvýšení paliva", "eventCommandResult": "Výsledek příkazu", "eventGeofenceEnter": "Vstoupeno do geozóny", "eventGeofenceExit": "Geozóna opuštěna", @@ -473,10 +481,10 @@ "eventMaintenance": "Vyžadována údržba", "eventTextMessage": "Obdržena textová zpráva", "eventDriverChanged": "Řidič vyměněn", - "eventMedia": "Media", + "eventMedia": "Média", "eventsScrollToLast": "Posunout na poslední", - "eventsSoundEvents": "Sound Events", - "eventsSoundAlarms": "Sound Alarms", + "eventsSoundEvents": "Zvukové události", + "eventsSoundAlarms": "Zvukové alarmy", "alarmGeneral": "Hlavní", "alarmSos": "SOS", "alarmVibration": "Vibrace", @@ -518,7 +526,7 @@ "notificationType": "Typ oznámení", "notificationAlways": "Všechna zařízení", "notificationNotificators": "Kanály", - "notificatorCommand": "Command", + "notificatorCommand": "Příkaz", "notificatorWeb": "Web", "notificatorMail": "Mail", "notificatorSms": "SMS", @@ -527,7 +535,7 @@ "notificatorTelegram": "Telegram", "notificatorPushover": "Pushover", "reportReplay": "Přehrát", - "reportCombined": "Combined", + "reportCombined": "Kombinovaný", "reportRoute": "Trasa", "reportEvents": "Události", "reportTrips": "Cesty", @@ -541,7 +549,7 @@ "reportShowMarkers": "Zobrazit značky", "reportExport": "Exportovat", "reportEmail": "Zaslat report mailem", - "reportSchedule": "Schedule", + "reportSchedule": "Plán", "reportPeriod": "Období", "reportCustom": "Vlastní", "reportToday": "Dnes", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Průměrná rychlost", "reportMaximumSpeed": "Maximální rychlost", "reportEngineHours": "Motohodiny", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Trvání", "reportStartDate": "Počáteční datum", "reportStartTime": "Čas startu", @@ -579,7 +589,7 @@ "categoryBoat": "Loď", "categoryBus": "Autobus", "categoryCar": "Auto", - "categoryCamper": "Camper", + "categoryCamper": "Obytný vůz", "categoryCrane": "Jeřáb", "categoryHelicopter": "Helikoptéra", "categoryMotorcycle": "Motocykl", diff --git a/src/resources/l10n/da.json b/src/resources/l10n/da.json index 4c24a3c6..09e2546b 100644 --- a/src/resources/l10n/da.json +++ b/src/resources/l10n/da.json @@ -4,6 +4,7 @@ "sharedSave": "Gem", "sharedUpload": "Upload", "sharedSet": "Indstil", + "sharedAccept": "Accept", "sharedCancel": "Fortryd", "sharedCopy": "Copy", "sharedAdd": "Tilføj", @@ -34,6 +35,7 @@ "sharedName": "Navn", "sharedDescription": "Beskrivelse", "sharedSearch": "Søg", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geofence", "sharedGeofences": "Geofences", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Log på", "loginLanguage": "Sprog", "loginReset": "Nulstille kodeord", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Kort", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Gennemsnits hastighed", "reportMaximumSpeed": "Maximum hastighed", "reportEngineHours": "Motor aktiv timer", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Varighed", "reportStartDate": "Start dato", "reportStartTime": "Start tidspunkt", diff --git a/src/resources/l10n/de.json b/src/resources/l10n/de.json index 3e937ea0..3e252446 100644 --- a/src/resources/l10n/de.json +++ b/src/resources/l10n/de.json @@ -4,6 +4,7 @@ "sharedSave": "Speichern", "sharedUpload": "Upload", "sharedSet": "Speichern", + "sharedAccept": "Akzeptieren", "sharedCancel": "Abbrechen", "sharedCopy": "Kopieren", "sharedAdd": "Hinzufügen", @@ -34,6 +35,7 @@ "sharedName": "Name", "sharedDescription": "Beschreibung", "sharedSearch": "Suchen", + "sharedPriority": "Priority", "sharedIconScale": "Icon-Skalierung", "sharedGeofence": "Geo-Zaun", "sharedGeofences": "Geo-Zäune", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Datei hierhin ziehen oder klicken", "sharedLogs": "Protokolle", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Einfach", "calendarRecurrence": "Wiederholung", "calendarOnce": "Einmalig", @@ -147,7 +150,7 @@ "attributeMailSmtpAuth": "Mail: SMTP Authentifizierung aktivieren", "attributeMailSmtpUsername": "Mail: SMTP Benutzername", "attributeMailSmtpPassword": "Mail: SMTP Passwort", - "attributeUiDisableSavedCommands": "UI: Disable Saved Commands", + "attributeUiDisableSavedCommands": "UI: Gespeicherte Befehle deaktivieren", "attributeUiDisableAttributes": "UI: Attribute deaktivieren", "attributeUiDisableGroups": "UI: Gruppen deaktivieren", "attributeUiDisableEvents": "Oberfläche: Ereignisse deaktivieren", @@ -179,6 +182,10 @@ "userToken": "Schlüssel", "userDeleteAccount": "Account löschen", "userTemporary": "Temporär", + "userTerms": "Nutzungsbedingungen", + "userPrivacy": "Datenschutzerklärung", + "userTermsPrompt": "Durch den Klick auf „Akzeptieren“ erklären Sie sich mit unseren Nutzungsbedingungen und der Datenschutzerklärung einverstanden.", + "userTermsAccepted": "Nutzungsbedingungen akzeptiert", "loginTitle": "Anmeldung", "loginLanguage": "Sprache", "loginReset": "Passwort zurücksetzen", @@ -330,6 +337,7 @@ "serverLogoInverted": "Umgekehrte Logografik", "serverChangeDisable": "Serverwechsel deaktivieren", "serverDisableShare": "Gerätefreigabe deaktivieren", + "serverReboot": "Reboot", "mapTitle": "Karte", "mapActive": "Aktive Karte", "mapOverlay": "Karten Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Durchschnittsgeschwindigkeit", "reportMaximumSpeed": "Höchstgeschwindigkeit", "reportEngineHours": "Betriebsstunden", + "reportStartEngineHours": "Betriebsstunden Start", + "reportEndEngineHours": "Bestriebsstunden Ziel", "reportDuration": "Dauer", "reportStartDate": "Beginn", "reportStartTime": "Startzeit", diff --git a/src/resources/l10n/el.json b/src/resources/l10n/el.json index ad2f2cf1..5331f397 100644 --- a/src/resources/l10n/el.json +++ b/src/resources/l10n/el.json @@ -4,6 +4,7 @@ "sharedSave": "Αποθήκευση", "sharedUpload": "Upload", "sharedSet": "Θέσε", + "sharedAccept": "Accept", "sharedCancel": "Άκυρο", "sharedCopy": "Copy", "sharedAdd": "Προσθήκη", @@ -34,6 +35,7 @@ "sharedName": "Όνομα", "sharedDescription": "Περιγραφή", "sharedSearch": "Αναζήτηση", + "sharedPriority": "Priority", "sharedIconScale": "Κλίμακα εικονιδίων", "sharedGeofence": "Γεωφράχτης", "sharedGeofences": "Γεωφράχτες", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Σύρετε και αποθέστε ένα αρχείο εδώ ή κάντε κλικ", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Απλό", "calendarRecurrence": "Επανάληψη", "calendarOnce": "Μια φορά", @@ -179,6 +182,10 @@ "userToken": "Λεκτικό", "userDeleteAccount": "Διαγραφή λογαριασμού", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Σύνδεση", "loginLanguage": "Γλώσσα", "loginReset": "Επαναφορά κωδικού", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Χάρτης", "mapActive": "Ενεργοί Χάρτες", "mapOverlay": "Υπέρθεση Χάρτη", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Μέση ταχύτητα", "reportMaximumSpeed": "Μέγιστη ταχύτητα", "reportEngineHours": "Ώρες Μηχανής", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Διάρκεια", "reportStartDate": "Ημερομηνία έναρξης", "reportStartTime": "Ώρα έναρξης", diff --git a/src/resources/l10n/en.json b/src/resources/l10n/en.json index a9303f63..608c36d8 100644 --- a/src/resources/l10n/en.json +++ b/src/resources/l10n/en.json @@ -4,6 +4,7 @@ "sharedSave": "Save", "sharedUpload": "Upload", "sharedSet": "Set", + "sharedAccept": "Accept", "sharedCancel": "Cancel", "sharedCopy": "Copy", "sharedAdd": "Add", @@ -34,6 +35,7 @@ "sharedName": "Name", "sharedDescription": "Description", "sharedSearch": "Search", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geofence", "sharedGeofences": "Geofences", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Login", "loginLanguage": "Language", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Map", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "Start Time", diff --git a/src/resources/l10n/es.json b/src/resources/l10n/es.json index a0405eb1..8c9ce749 100644 --- a/src/resources/l10n/es.json +++ b/src/resources/l10n/es.json @@ -4,6 +4,7 @@ "sharedSave": "Guardar", "sharedUpload": "Cargar", "sharedSet": "Establecer", + "sharedAccept": "Aceptar", "sharedCancel": "Cancelar", "sharedCopy": "Copiar", "sharedAdd": "Añadir", @@ -34,6 +35,7 @@ "sharedName": "Nombre", "sharedDescription": "Descripción", "sharedSearch": "Buscar", + "sharedPriority": "Prioridad", "sharedIconScale": "Escala de los iconos", "sharedGeofence": "Geo-Zona", "sharedGeofences": "Geo-Zonas", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Arrastra y suelta el archivo aquí o pulsa", "sharedLogs": "Registros", "sharedLink": "Enlace", + "sharedEmulator": "Emulador", "calendarSimple": "Simple", "calendarRecurrence": "Recurrente", "calendarOnce": "Una vez", @@ -179,6 +182,10 @@ "userToken": "Token Acceso", "userDeleteAccount": "Borrar cuenta", "userTemporary": "Temporal", + "userTerms": "Condiciones del Servicio", + "userPrivacy": "Política de Privacidad", + "userTermsPrompt": "Al hacer clic en Aceptar, aceptas nuestras Condiciones del Servicio y confirmas que has leído nuestra Política de Privacidad", + "userTermsAccepted": "Condiciones Aceptadas", "loginTitle": "Iniciar sesión", "loginLanguage": "Idioma", "loginReset": "Reiniciar contraseña", @@ -330,6 +337,7 @@ "serverLogoInverted": "Imagen de logo invertida", "serverChangeDisable": "Deshabilitar el cambio de servidor", "serverDisableShare": "Deshabilitar poder Compartir Dispositivos", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Mapas activos", "mapOverlay": "Capa sobre el mapa", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocidad media", "reportMaximumSpeed": "Velocidad máxima", "reportEngineHours": "Horas motor", + "reportStartEngineHours": "Horas de motor en marcha", + "reportEndEngineHours": "Horas de motor parado", "reportDuration": "Duración", "reportStartDate": "Fecha de inicio", "reportStartTime": "Hora de Inicio", diff --git a/src/resources/l10n/fa.json b/src/resources/l10n/fa.json index 3507681c..50d949e2 100644 --- a/src/resources/l10n/fa.json +++ b/src/resources/l10n/fa.json @@ -4,6 +4,7 @@ "sharedSave": "ذخيره", "sharedUpload": "Upload", "sharedSet": "تنظیم", + "sharedAccept": "Accept", "sharedCancel": "انصراف", "sharedCopy": "Copy", "sharedAdd": "اضافه كردن", @@ -34,6 +35,7 @@ "sharedName": "نام", "sharedDescription": "توضیحات", "sharedSearch": "جستجو", + "sharedPriority": "Priority", "sharedIconScale": "اندازه آیکن", "sharedGeofence": "حصار جغرافیایی", "sharedGeofences": "حصارهای جغرافیایی", @@ -103,6 +105,7 @@ "sharedDropzoneText": "یک فایل را در اینجا بکشید و رها کنید یا کلیک کنید", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "ساده", "calendarRecurrence": "عکس العمل", "calendarOnce": "یکبار", @@ -179,6 +182,10 @@ "userToken": "رمز یکبار", "userDeleteAccount": "حذف اکانت", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ورود", "loginLanguage": "انتخاب زبان", "loginReset": "بازیابی رمز عبور", @@ -330,6 +337,7 @@ "serverLogoInverted": "معکوس سازی رنگ لوگو", "serverChangeDisable": "غیرفعال کردن تغییر سرور", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "نقشه", "mapActive": "نقشه های فعال", "mapOverlay": "لایه نقشه", @@ -554,6 +562,8 @@ "reportAverageSpeed": "سرعت میانگین", "reportMaximumSpeed": "حداکثر سرعت", "reportEngineHours": "مدت زمان روشن بودن وسیله", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "مسافت", "reportStartDate": "تاریخ آغاز", "reportStartTime": "زمان شروع", diff --git a/src/resources/l10n/fi.json b/src/resources/l10n/fi.json index f5459166..ba2c19ea 100644 --- a/src/resources/l10n/fi.json +++ b/src/resources/l10n/fi.json @@ -4,6 +4,7 @@ "sharedSave": "Tallenna", "sharedUpload": "Lataa palvelimelle", "sharedSet": "Aseta", + "sharedAccept": "Accept", "sharedCancel": "Peruuta", "sharedCopy": "Kopioi", "sharedAdd": "Lisää", @@ -34,6 +35,7 @@ "sharedName": "Nimi", "sharedDescription": "Kuvaus", "sharedSearch": "Haku", + "sharedPriority": "Priority", "sharedIconScale": "Kuvakkeiden skaalaus", "sharedGeofence": "Geoaita", "sharedGeofences": "Geoaidat", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Vedä ja pudota tiedosto tähän tai klikkaa", "sharedLogs": "Lokit", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Yksinkertainen", "calendarRecurrence": "Toisto", "calendarOnce": "Kerran", @@ -179,6 +182,10 @@ "userToken": "Todennustunnus", "userDeleteAccount": "Poista tili", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Kirjaudu", "loginLanguage": "Kieli", "loginReset": "Nollaa salasana", @@ -330,6 +337,7 @@ "serverLogoInverted": "Logo kuva negatiivinen", "serverChangeDisable": "Estä palvelimen vaihto", "serverDisableShare": "Estä laitteen jakaminen", + "serverReboot": "Reboot", "mapTitle": "Kartta", "mapActive": "Aktiiviset kartat", "mapOverlay": "Karttapäällys", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Keskinopeus", "reportMaximumSpeed": "Suurin nopeus", "reportEngineHours": "Käyttötunnit", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Kesto", "reportStartDate": "Aloituspäivä", "reportStartTime": "Aloitusaika", diff --git a/src/resources/l10n/fr.json b/src/resources/l10n/fr.json index 1e9147ae..84ed00fa 100644 --- a/src/resources/l10n/fr.json +++ b/src/resources/l10n/fr.json @@ -4,6 +4,7 @@ "sharedSave": "Enregistrer", "sharedUpload": "Upload", "sharedSet": "Régler", + "sharedAccept": "Accept", "sharedCancel": "Annuler", "sharedCopy": "Copy", "sharedAdd": "Ajouter", @@ -34,6 +35,7 @@ "sharedName": "Nom", "sharedDescription": "Description", "sharedSearch": "Recherche", + "sharedPriority": "Priority", "sharedIconScale": "Echelle des icônes", "sharedGeofence": "Périmètre virtuel", "sharedGeofences": "Périmètres virtuels", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Glissez et déposez un fichier ici ou cliquez", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Récurrence", "calendarOnce": "Une fois", @@ -179,6 +182,10 @@ "userToken": "Jeton", "userDeleteAccount": "Supprimer le compte", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Identification", "loginLanguage": "Langue", "loginReset": "Réinitialiser le mot de passe", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Carte", "mapActive": "Cartes actives", "mapOverlay": "Superposition de cartes", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Vitesse moyenne", "reportMaximumSpeed": "Vitesse maximum", "reportEngineHours": "Heures du moteur", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Durée", "reportStartDate": "Date de départ", "reportStartTime": "Heure de départ", diff --git a/src/resources/l10n/gl.json b/src/resources/l10n/gl.json index 8464e7bb..9c86834d 100644 --- a/src/resources/l10n/gl.json +++ b/src/resources/l10n/gl.json @@ -4,6 +4,7 @@ "sharedSave": "Gardar", "sharedUpload": "Upload", "sharedSet": "Establecer", + "sharedAccept": "Accept", "sharedCancel": "Cancelar", "sharedCopy": "Copy", "sharedAdd": "Engadir", @@ -34,6 +35,7 @@ "sharedName": "Nome", "sharedDescription": "Descrición", "sharedSearch": "Buscar", + "sharedPriority": "Priority", "sharedIconScale": "Escala das iconas", "sharedGeofence": "Xeocerca", "sharedGeofences": "Xeocercas", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Arrastra e solta un arquivo aquí ou fai clic", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recorrencia", "calendarOnce": "Unha vez", @@ -179,6 +182,10 @@ "userToken": "Token Acceso", "userDeleteAccount": "Eliminar conta", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Iniciar sesión", "loginLanguage": "Idioma", "loginReset": "Restablecer o contrasinal", @@ -330,6 +337,7 @@ "serverLogoInverted": "Imaxe do logotipo con cores inversos", "serverChangeDisable": "Desactivar o cambio de servidor", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Mapas activos", "mapOverlay": "Superposición de mapas", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocidade media", "reportMaximumSpeed": "Velocidade máxima", "reportEngineHours": "Horas do motor", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duración", "reportStartDate": "Data de inicio", "reportStartTime": "Hora de inicio", diff --git a/src/resources/l10n/he.json b/src/resources/l10n/he.json index 8a2a4eed..314ac5c6 100644 --- a/src/resources/l10n/he.json +++ b/src/resources/l10n/he.json @@ -4,6 +4,7 @@ "sharedSave": "שמירה", "sharedUpload": "Upload", "sharedSet": "הגדרה", + "sharedAccept": "Accept", "sharedCancel": "ביטול", "sharedCopy": "העתקה", "sharedAdd": "הוספה", @@ -34,6 +35,7 @@ "sharedName": "שם", "sharedDescription": "תיאור", "sharedSearch": "חיפוש", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "גדר וירטואלית", "sharedGeofences": "גדרות וירטואליות", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "פעם אחת", @@ -179,6 +182,10 @@ "userToken": "אסימון", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "כניסה", "loginLanguage": "שפה", "loginReset": "איפוס סיסמה", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "מפה", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "מהירות ממוצעת", "reportMaximumSpeed": "מהירות מירבית", "reportEngineHours": "שעות מנוע", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "משך הנסיעה", "reportStartDate": "Start Date", "reportStartTime": "זמן התחלה", diff --git a/src/resources/l10n/hi.json b/src/resources/l10n/hi.json index 1716dc99..879451dd 100644 --- a/src/resources/l10n/hi.json +++ b/src/resources/l10n/hi.json @@ -4,6 +4,7 @@ "sharedSave": "सुरक्षित करें", "sharedUpload": "Upload", "sharedSet": "स्वीकृति दें", + "sharedAccept": "Accept", "sharedCancel": "रद्द करें", "sharedCopy": "Copy", "sharedAdd": "जोड़ें", @@ -34,6 +35,7 @@ "sharedName": "नाम", "sharedDescription": "विवरण", "sharedSearch": "खोजें", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "जिओफेंस / भूगौलिक परिधि", "sharedGeofences": "जिओफेंसस / भूगौलिक परिधियां", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "टोकन", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "लॉगिन / प्रवेश करें", "loginLanguage": "भाषा", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "मानचित्र", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "औसत गति", "reportMaximumSpeed": "अधिकतम गति", "reportEngineHours": "इंजन के घंटे", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "अवधि", "reportStartDate": "Start Date", "reportStartTime": "समय का आरंभ", diff --git a/src/resources/l10n/hr.json b/src/resources/l10n/hr.json index f64cdb04..3ca14fcf 100644 --- a/src/resources/l10n/hr.json +++ b/src/resources/l10n/hr.json @@ -4,6 +4,7 @@ "sharedSave": "Spremi", "sharedUpload": "Upload", "sharedSet": "Postavi", + "sharedAccept": "Accept", "sharedCancel": "Poništi", "sharedCopy": "Copy", "sharedAdd": "Dodaj", @@ -34,6 +35,7 @@ "sharedName": "Ime", "sharedDescription": "Opis", "sharedSearch": "Pretraži", + "sharedPriority": "Priority", "sharedIconScale": "Skaliraj ikonu", "sharedGeofence": "Geo-ograda", "sharedGeofences": "Geo-ograde", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Dovuci i pusti datoteku ovdje ili klikni", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Jednostavno", "calendarRecurrence": "Ponavljajuće", "calendarOnce": "Jednom", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Obriši račun", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Prijava", "loginLanguage": "Jezik", "loginReset": "Ponovo postavi lozinku", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Karta", "mapActive": "Aktivna karta", "mapOverlay": "Prekrivajuća karta", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Prosječna brzina", "reportMaximumSpeed": "Maksimalna brzina", "reportEngineHours": "Sati rada motora", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Trajanje", "reportStartDate": "Početni datum", "reportStartTime": "Početno vrijeme", diff --git a/src/resources/l10n/hu.json b/src/resources/l10n/hu.json index f50b329c..a9520228 100644 --- a/src/resources/l10n/hu.json +++ b/src/resources/l10n/hu.json @@ -4,6 +4,7 @@ "sharedSave": "Mentés", "sharedUpload": "Upload", "sharedSet": "Beállít", + "sharedAccept": "Accept", "sharedCancel": "Mégse", "sharedCopy": "Copy", "sharedAdd": "Hozzáadás", @@ -34,6 +35,7 @@ "sharedName": "Név", "sharedDescription": "Leírás", "sharedSearch": "Keresés", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geokerítés", "sharedGeofences": "Geokerítések", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Bejelentkezés", "loginLanguage": "Nyelv", "loginReset": "Jelszó reset", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Térkép", "mapActive": "Aktív térképek", "mapOverlay": "Térkép réteg", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Átlagos sebesség", "reportMaximumSpeed": "Maximális sebesség", "reportEngineHours": "Motorjárat órák", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Időtartam", "reportStartDate": "Kezdés dátuma", "reportStartTime": "Indulás ideje", diff --git a/src/resources/l10n/id.json b/src/resources/l10n/id.json index c7883dae..0c1910a1 100644 --- a/src/resources/l10n/id.json +++ b/src/resources/l10n/id.json @@ -4,6 +4,7 @@ "sharedSave": "Simpan", "sharedUpload": "Upload", "sharedSet": "Setel", + "sharedAccept": "Accept", "sharedCancel": "Batal", "sharedCopy": "Copy", "sharedAdd": "Tambah", @@ -34,6 +35,7 @@ "sharedName": "Nama", "sharedDescription": "Deskripsi", "sharedSearch": "Cari", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Batas Wilayah", "sharedGeofences": "Semua Batas Wilayah", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Masuk", "loginLanguage": "Bahasa", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Peta", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Kecepatan Rata-rata", "reportMaximumSpeed": "Kecepatan Tertinggi", "reportEngineHours": "Durasi Mesin", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Durasi", "reportStartDate": "Start Date", "reportStartTime": "Waktu Awal", diff --git a/src/resources/l10n/it.json b/src/resources/l10n/it.json index 03fcbb16..93756f25 100644 --- a/src/resources/l10n/it.json +++ b/src/resources/l10n/it.json @@ -4,6 +4,7 @@ "sharedSave": "Salva", "sharedUpload": "Carica", "sharedSet": "Imposta", + "sharedAccept": "Accept", "sharedCancel": "Annulla", "sharedCopy": "Copia", "sharedAdd": "Aggiungi", @@ -34,6 +35,7 @@ "sharedName": "Nome", "sharedDescription": "Descrizione", "sharedSearch": "Cerca", + "sharedPriority": "Priority", "sharedIconScale": "Grandezza Icona", "sharedGeofence": "Geo Area", "sharedGeofences": "Geo Aree", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Trascina un file qui o clicca", "sharedLogs": "Registri", "sharedLink": "Collegamento", + "sharedEmulator": "Emulator", "calendarSimple": "Semplice", "calendarRecurrence": "Ricorrente", "calendarOnce": "Una volta", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Elimina Account", "userTemporary": "Temporaneo", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Accesso", "loginLanguage": "Lingua", "loginReset": "Resetta Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Immagine Logo Invertita", "serverChangeDisable": "Disattiva cambiamento Server", "serverDisableShare": "Disattiva la Condivisione del Dispositivo", + "serverReboot": "Reboot", "mapTitle": "Mappa", "mapActive": "Mappe Attive", "mapOverlay": "Soprapposizione Mappa", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocità Media", "reportMaximumSpeed": "Velocità Massima", "reportEngineHours": "Ore di Guida", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Durata", "reportStartDate": "Data di partenza", "reportStartTime": "Ora di Partenza", diff --git a/src/resources/l10n/ja.json b/src/resources/l10n/ja.json index 3c99b0c0..437fcfb0 100644 --- a/src/resources/l10n/ja.json +++ b/src/resources/l10n/ja.json @@ -4,6 +4,7 @@ "sharedSave": "保存", "sharedUpload": "Upload", "sharedSet": "設定", + "sharedAccept": "Accept", "sharedCancel": "キャンセル", "sharedCopy": "Copy", "sharedAdd": "追加", @@ -34,6 +35,7 @@ "sharedName": "名前", "sharedDescription": "説明", "sharedSearch": "検索", + "sharedPriority": "Priority", "sharedIconScale": "アイコンの大きさ", "sharedGeofence": "ジオフェンス", "sharedGeofences": "ジオフェンス", @@ -103,6 +105,7 @@ "sharedDropzoneText": "ファイルをドラッグ&ドロップするかクリック", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "シンプル", "calendarRecurrence": "再発", "calendarOnce": "一度", @@ -179,6 +182,10 @@ "userToken": "トークン", "userDeleteAccount": "アカウントを削除", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ログイン", "loginLanguage": "言語", "loginReset": "パスワードをリセット", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "地図", "mapActive": "アクティブなマップ", "mapOverlay": "マップのオーバーレイ", @@ -554,6 +562,8 @@ "reportAverageSpeed": "平均速度", "reportMaximumSpeed": "最高速度", "reportEngineHours": "エンジン稼働時間", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "期間", "reportStartDate": "開始日", "reportStartTime": "開始日時", diff --git a/src/resources/l10n/ka.json b/src/resources/l10n/ka.json index 5a6b4cb2..e4c154cc 100644 --- a/src/resources/l10n/ka.json +++ b/src/resources/l10n/ka.json @@ -4,6 +4,7 @@ "sharedSave": "შენახვა", "sharedUpload": "Upload", "sharedSet": "დაყენება", + "sharedAccept": "Accept", "sharedCancel": "უარყოფა", "sharedCopy": "Copy", "sharedAdd": "დამატება", @@ -34,6 +35,7 @@ "sharedName": "დასახელება", "sharedDescription": "აღწერილობა", "sharedSearch": "ძებნა", + "sharedPriority": "Priority", "sharedIconScale": "იკონკის მასშტაბი", "sharedGeofence": "გეოზონა", "sharedGeofences": "გეოზონები", @@ -103,6 +105,7 @@ "sharedDropzoneText": "გადმოათრიეთ ფაილი აქ ან დააწკაპუნეთ", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "მარტივი", "calendarRecurrence": "რეციდივი", "calendarOnce": "ერთხელ", @@ -179,6 +182,10 @@ "userToken": "ტოკენი", "userDeleteAccount": "Ანგარიშის წაშლა", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ავტორიზაცია", "loginLanguage": "ენა", "loginReset": "პაროლის განულება", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "რუკა", "mapActive": "აქტიური რუკა", "mapOverlay": "რუკის დაფარვა", @@ -554,6 +562,8 @@ "reportAverageSpeed": "საშუალო სიჩქარე", "reportMaximumSpeed": "მაქსიმალური სიჩქარე", "reportEngineHours": "მოტოსაათი", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "ხანგრძლივობა", "reportStartDate": "დაწყების თარიღი", "reportStartTime": "დაწყების დრო", diff --git a/src/resources/l10n/kk.json b/src/resources/l10n/kk.json index 706f2b78..94cec108 100644 --- a/src/resources/l10n/kk.json +++ b/src/resources/l10n/kk.json @@ -4,6 +4,7 @@ "sharedSave": "Сақтау", "sharedUpload": "Upload", "sharedSet": "Орнату", + "sharedAccept": "Accept", "sharedCancel": "Болдырмау", "sharedCopy": "Copy", "sharedAdd": "Енгізу", @@ -34,6 +35,7 @@ "sharedName": "Атауы", "sharedDescription": "Сипаттамасы", "sharedSearch": "Іздеу", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Геозона", "sharedGeofences": "Геозоналар", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Кілт", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Кіру", "loginLanguage": "Тіл", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Карта", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Орташа жылдамдық", "reportMaximumSpeed": "Максималды жылдамдық", "reportEngineHours": "Мотосағат", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Ұзақтығы", "reportStartDate": "Start Date", "reportStartTime": "Бастапқы уақыт", diff --git a/src/resources/l10n/km.json b/src/resources/l10n/km.json index d6d38ea8..bcd4d919 100644 --- a/src/resources/l10n/km.json +++ b/src/resources/l10n/km.json @@ -4,6 +4,7 @@ "sharedSave": "រក្សារទុក", "sharedUpload": "Upload", "sharedSet": "កំណត់", + "sharedAccept": "Accept", "sharedCancel": "បោះបង់", "sharedCopy": "Copy", "sharedAdd": "បន្ថែម", @@ -34,6 +35,7 @@ "sharedName": "ឈ្មោះ", "sharedDescription": "បរិយាយ", "sharedSearch": "ស្វែងរក", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "កំណត់ភូមិសាស្ត្រ", "sharedGeofences": "កំណត់ភូមិសាស្ត្រ", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "សញ្ញាសម្ងាត់", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ចូល", "loginLanguage": "ភាសា", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "ផែនទី", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "ល្បឿនមធ្យម", "reportMaximumSpeed": "ល្បឿនអតិបរមា", "reportEngineHours": "ម៉ោងម៉ាស៊ីន", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "រយៈពេល", "reportStartDate": "Start Date", "reportStartTime": "ម៉ោងចាប់ផ្តើម", diff --git a/src/resources/l10n/ko.json b/src/resources/l10n/ko.json index 0ba191cf..be65dd97 100644 --- a/src/resources/l10n/ko.json +++ b/src/resources/l10n/ko.json @@ -4,6 +4,7 @@ "sharedSave": "저장", "sharedUpload": "Upload", "sharedSet": "확인", + "sharedAccept": "Accept", "sharedCancel": "취소", "sharedCopy": "Copy", "sharedAdd": "추가", @@ -34,6 +35,7 @@ "sharedName": "이름", "sharedDescription": "내용", "sharedSearch": "검색", + "sharedPriority": "Priority", "sharedIconScale": "아이콘 크기", "sharedGeofence": "지오펜스", "sharedGeofences": "지오펜스", @@ -103,6 +105,7 @@ "sharedDropzoneText": "파일을 가져오거나 여기를 누르세요.", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "심플", "calendarRecurrence": "반복 주기", "calendarOnce": "한번", @@ -179,6 +182,10 @@ "userToken": "토큰", "userDeleteAccount": "계정 삭제", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "로그인", "loginLanguage": "언어", "loginReset": "비밀번호 초기화", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "지도", "mapActive": "활성화된 지도", "mapOverlay": "지도 오버레이", @@ -554,6 +562,8 @@ "reportAverageSpeed": "평균 속도", "reportMaximumSpeed": "최대 속도", "reportEngineHours": "엔진 시간", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "기간", "reportStartDate": "시작일", "reportStartTime": "시작시간", diff --git a/src/resources/l10n/lo.json b/src/resources/l10n/lo.json index d0a40085..64dd2864 100644 --- a/src/resources/l10n/lo.json +++ b/src/resources/l10n/lo.json @@ -4,6 +4,7 @@ "sharedSave": "ບັນທຶກ", "sharedUpload": "Upload", "sharedSet": "Set", + "sharedAccept": "Accept", "sharedCancel": "ຍົກເລີກ", "sharedCopy": "Copy", "sharedAdd": "ເພີ່ມ", @@ -34,6 +35,7 @@ "sharedName": "ຊື່", "sharedDescription": "ລັກສະນະ", "sharedSearch": "ຄົ້ນຫາ", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "ເຂດພື້ນທີ່", "sharedGeofences": "ເຂດພື້ນທີ່", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ເຂົ້າສູ່ລະບົບ", "loginLanguage": "ພາສາ", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "ແຜ່ນທີ", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "Start Time", diff --git a/src/resources/l10n/lt.json b/src/resources/l10n/lt.json index d4ae0530..43f61758 100644 --- a/src/resources/l10n/lt.json +++ b/src/resources/l10n/lt.json @@ -4,6 +4,7 @@ "sharedSave": "Išsaugoti", "sharedUpload": "Įkelti", "sharedSet": "Nustatyti", + "sharedAccept": "Accept", "sharedCancel": "Atšaukti", "sharedCopy": "Kopijuoti", "sharedAdd": "Pridėti", @@ -34,6 +35,7 @@ "sharedName": "Pavadinimas", "sharedDescription": "Aprašymas", "sharedSearch": "Paieška", + "sharedPriority": "Priority", "sharedIconScale": "Ikonos mastelis", "sharedGeofence": "Georiba", "sharedGeofences": "Georibos", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Nutempkite failą čia arba paspauskite", "sharedLogs": "Žurnalai", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Paprastas", "calendarRecurrence": "Pasikartojimas", "calendarOnce": "Vienkartinis", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Pašalinti vartotoją", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Prisijungimas", "loginLanguage": "Kalba", "loginReset": "Atstatyti slaptažodį", @@ -330,6 +337,7 @@ "serverLogoInverted": "Invertuotas logo vaizdas", "serverChangeDisable": "Uždrausti keisti serverį", "serverDisableShare": "Išjungti dalinimasi įrenginiais", + "serverReboot": "Reboot", "mapTitle": "Žemėlapis", "mapActive": "Aktyvūs žemėlapiai", "mapOverlay": "Žemėlapių sluoksniai", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Vidutinis greitis", "reportMaximumSpeed": "Maksimalus greitis", "reportEngineHours": "Variklio valandos", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Trukmė", "reportStartDate": "Pradžios data", "reportStartTime": "Pradžios laikas", diff --git a/src/resources/l10n/lv.json b/src/resources/l10n/lv.json index 5769fe30..cb15f446 100644 --- a/src/resources/l10n/lv.json +++ b/src/resources/l10n/lv.json @@ -4,6 +4,7 @@ "sharedSave": "Saglabāt", "sharedUpload": "Upload", "sharedSet": "Iestatīt", + "sharedAccept": "Accept", "sharedCancel": "Atcelt", "sharedCopy": "Copy", "sharedAdd": "Pievienot", @@ -34,6 +35,7 @@ "sharedName": "Vārds", "sharedDescription": "Apraksts", "sharedSearch": "Meklēt", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geolaukums", "sharedGeofences": "Geolaukumi", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Zīme", "userDeleteAccount": "Dzēst Kontu", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Lietotājvārds", "loginLanguage": "Valoda", "loginReset": "Atiestatīt paroli", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Karte", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Vidējais Ātrums", "reportMaximumSpeed": "Maksimālais Ātrums", "reportEngineHours": "Motorstundas", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Ilgums", "reportStartDate": "Sākuma Datums", "reportStartTime": "Sākuma Laiks", diff --git a/src/resources/l10n/mk.json b/src/resources/l10n/mk.json index 4aa2119e..998552f3 100644 --- a/src/resources/l10n/mk.json +++ b/src/resources/l10n/mk.json @@ -4,6 +4,7 @@ "sharedSave": "Зачувај", "sharedUpload": "Прикачи", "sharedSet": "Постави", + "sharedAccept": "Accept", "sharedCancel": "Откажи", "sharedCopy": "Копирај", "sharedAdd": "Додади", @@ -34,6 +35,7 @@ "sharedName": "Име", "sharedDescription": "Опис", "sharedSearch": "Пребарување", + "sharedPriority": "Priority", "sharedIconScale": "Размер на икони", "sharedGeofence": "Географска зона", "sharedGeofences": "Географски зони", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Повлечи фајл овде или кликни", "sharedLogs": "Логови", "sharedLink": "Линк", + "sharedEmulator": "Emulator", "calendarSimple": "Едноставно", "calendarRecurrence": "Повторување", "calendarOnce": "Еднаш", @@ -179,6 +182,10 @@ "userToken": "Токен", "userDeleteAccount": "Избриши Акаунт", "userTemporary": "Привремено", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Најава", "loginLanguage": "Јазик", "loginReset": "Ресетирај лозинка", @@ -330,6 +337,7 @@ "serverLogoInverted": "Инверзна слика за лого", "serverChangeDisable": "Оневозможи промена на сервер", "serverDisableShare": "Оневозможи споделување на уреди", + "serverReboot": "Reboot", "mapTitle": "Мапа", "mapActive": "Активни мапи", "mapOverlay": "Преклопени мапи", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Просечна брзина", "reportMaximumSpeed": "Максимална брзина", "reportEngineHours": "Работни саати", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Времетраење", "reportStartDate": "Почетен датум", "reportStartTime": "Почетно време", diff --git a/src/resources/l10n/ml.json b/src/resources/l10n/ml.json index 40dde8f2..98b869fe 100644 --- a/src/resources/l10n/ml.json +++ b/src/resources/l10n/ml.json @@ -4,6 +4,7 @@ "sharedSave": "സേവ്", "sharedUpload": "Upload", "sharedSet": "സെറ്റ്", + "sharedAccept": "Accept", "sharedCancel": "റദ്ദാക്കുക", "sharedCopy": "Copy", "sharedAdd": "ചേര്ക്കുക", @@ -34,6 +35,7 @@ "sharedName": "പേര്", "sharedDescription": "വിവരണം", "sharedSearch": "സെർച്ച് ", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "ജിയോഫെൻസ് ", "sharedGeofences": "ജിയോഫെൻസെസ് ", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ലോഗിൻ ചെയ്യുക ", "loginLanguage": "ഭാഷ", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "ഭൂപടം", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "Start Time", diff --git a/src/resources/l10n/mn.json b/src/resources/l10n/mn.json index ea3ecedb..c11686bf 100644 --- a/src/resources/l10n/mn.json +++ b/src/resources/l10n/mn.json @@ -4,6 +4,7 @@ "sharedSave": "Хадгалах", "sharedUpload": "Upload", "sharedSet": "Тааруулах", + "sharedAccept": "Accept", "sharedCancel": "Цуцлах", "sharedCopy": "Copy", "sharedAdd": "Нэмэх", @@ -34,6 +35,7 @@ "sharedName": "Нэр", "sharedDescription": "Тайлбар", "sharedSearch": "Хайх", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Хязгаарлалт", "sharedGeofences": "Хязгаарлалтууд", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Нэвтрэх", "loginLanguage": "Хэл", "loginReset": "Нууц үг сэргээх", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Map", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Дундаж хурд", "reportMaximumSpeed": "Дээд хурд", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Хугацаа", "reportStartDate": "Эхлэх өдөр", "reportStartTime": "Эхлэх цаг", diff --git a/src/resources/l10n/ms.json b/src/resources/l10n/ms.json index 50b4048a..4c787349 100644 --- a/src/resources/l10n/ms.json +++ b/src/resources/l10n/ms.json @@ -4,6 +4,7 @@ "sharedSave": "Simpan", "sharedUpload": "Upload", "sharedSet": "Set", + "sharedAccept": "Accept", "sharedCancel": "Batal", "sharedCopy": "Copy", "sharedAdd": "Tambah", @@ -34,6 +35,7 @@ "sharedName": "Name", "sharedDescription": "Description", "sharedSearch": "Search", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geofence", "sharedGeofences": "Geofences", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Log masuk", "loginLanguage": "Bahasa", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Peta", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "Start Time", diff --git a/src/resources/l10n/nb.json b/src/resources/l10n/nb.json index a3faa8c0..3d8d1613 100644 --- a/src/resources/l10n/nb.json +++ b/src/resources/l10n/nb.json @@ -4,6 +4,7 @@ "sharedSave": "Lagre", "sharedUpload": "Upload", "sharedSet": "Sett", + "sharedAccept": "Accept", "sharedCancel": "Avbryt", "sharedCopy": "Copy", "sharedAdd": "Legg til", @@ -34,6 +35,7 @@ "sharedName": "Navn", "sharedDescription": "Beskrivelse", "sharedSearch": "Søk", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "geo-gjerde", "sharedGeofences": "Geo-gjerder", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Symbol", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Logg inn", "loginLanguage": "Språk", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Kart", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Gjennomsnittshastighet ", "reportMaximumSpeed": "Maksimumshastighet", "reportEngineHours": "Motortimer", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Varighet", "reportStartDate": "Start Date", "reportStartTime": "Starttidspunkt", diff --git a/src/resources/l10n/ne.json b/src/resources/l10n/ne.json index 0c89df5d..c8bff3e6 100644 --- a/src/resources/l10n/ne.json +++ b/src/resources/l10n/ne.json @@ -4,6 +4,7 @@ "sharedSave": "सुरक्षित गर्ने ", "sharedUpload": "Upload", "sharedSet": "सेट गर्ने ", + "sharedAccept": "Accept", "sharedCancel": "रद्ध गर्ने ", "sharedCopy": "Copy", "sharedAdd": "थप्ने", @@ -34,6 +35,7 @@ "sharedName": "नाम ", "sharedDescription": "विवरण ", "sharedSearch": "खोज्ने ", + "sharedPriority": "Priority", "sharedIconScale": "आइकन स्केल", "sharedGeofence": "भू परिधि ", "sharedGeofences": "भू परिधिहरू ", @@ -103,6 +105,7 @@ "sharedDropzoneText": "यहाँ एउटा फाइल तान्नुहोस् र छोड्नुहोस् वा क्लिक गर्नुहोस्", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "सरल", "calendarRecurrence": "पुनरावृत्ति", "calendarOnce": "एक पटक", @@ -179,6 +182,10 @@ "userToken": "टोकन", "userDeleteAccount": "खाता मेटाउनुहोस्", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "लगिन गर्ने ", "loginLanguage": "भाषा ", "loginReset": "पासवर्ड रिसेट", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "नक्शा ", "mapActive": "सक्रिय नक्शा", "mapOverlay": "नक्सा ओभरले", @@ -554,6 +562,8 @@ "reportAverageSpeed": "औसत गति", "reportMaximumSpeed": "अधिकतम गति", "reportEngineHours": "इन्जिन घण्टा", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "अवधि", "reportStartDate": "सुरू मिति", "reportStartTime": "शुरु समय", diff --git a/src/resources/l10n/nl.json b/src/resources/l10n/nl.json index 224adc26..6a22a8d6 100644 --- a/src/resources/l10n/nl.json +++ b/src/resources/l10n/nl.json @@ -4,6 +4,7 @@ "sharedSave": "Opslaan", "sharedUpload": "Upload", "sharedSet": "Instellen", + "sharedAccept": "Accept", "sharedCancel": "Annuleren", "sharedCopy": "Copy", "sharedAdd": "Toevoegen", @@ -34,6 +35,7 @@ "sharedName": "Naam", "sharedDescription": "Omschrijving", "sharedSearch": "Zoeken", + "sharedPriority": "Priority", "sharedIconScale": "Schaal van iconen", "sharedGeofence": "Geografisch gebied", "sharedGeofences": "Geografische gebieden", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Sleep en plaats hier een bestand of klik hier", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Eenvoudig", "calendarRecurrence": "Herhaling", "calendarOnce": "Eenmalig", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Geen account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Inloggen", "loginLanguage": "Taal", "loginReset": "Wachtwoord herstellen", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Kaart", "mapActive": "Actieve kaarten", "mapOverlay": "Kaartlaag", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Gemiddelde snelheid", "reportMaximumSpeed": "Maximale snelheid", "reportEngineHours": "Draaiuren motor", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duur", "reportStartDate": "Startdatum", "reportStartTime": "Starttijd", diff --git a/src/resources/l10n/nn.json b/src/resources/l10n/nn.json index 2bdc5a9a..9e1a0815 100644 --- a/src/resources/l10n/nn.json +++ b/src/resources/l10n/nn.json @@ -4,6 +4,7 @@ "sharedSave": "Lagre", "sharedUpload": "Upload", "sharedSet": "Sett", + "sharedAccept": "Accept", "sharedCancel": "Avbryt", "sharedCopy": "Copy", "sharedAdd": "Legg til", @@ -34,6 +35,7 @@ "sharedName": "Namn", "sharedDescription": "Beskriving", "sharedSearch": "Søk", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geo-gjerde", "sharedGeofences": "Geo-gjerde", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Symbol", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Logg inn", "loginLanguage": "Språk", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Kart", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Gjennomsnittshastighet", "reportMaximumSpeed": "Maksimumshastighet", "reportEngineHours": "Motortimar", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Varigheit", "reportStartDate": "Start Date", "reportStartTime": "Starttidspunkt", diff --git a/src/resources/l10n/pl.json b/src/resources/l10n/pl.json index 6e0a57d4..cdd12bb0 100644 --- a/src/resources/l10n/pl.json +++ b/src/resources/l10n/pl.json @@ -4,6 +4,7 @@ "sharedSave": "Zapisz", "sharedUpload": "Wyślij", "sharedSet": "Ustaw", + "sharedAccept": "Accept", "sharedCancel": "Anuluj", "sharedCopy": "Copy", "sharedAdd": "Dodaj", @@ -34,6 +35,7 @@ "sharedName": "Nazwa", "sharedDescription": "Opis", "sharedSearch": "Szukaj", + "sharedPriority": "Priority", "sharedIconScale": "Skala ikon", "sharedGeofence": "Obszar monitorowany", "sharedGeofences": "Obszary monitorowane", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Przeciągnij i upuść plik tutaj lub kliknij", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Prosty", "calendarRecurrence": "Powtarzalny", "calendarOnce": "Jednorazowy", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Usuń konto", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Login", "loginLanguage": "Język", "loginReset": "Zresetuj hasło", @@ -330,6 +337,7 @@ "serverLogoInverted": "Odwrócony obraz logo", "serverChangeDisable": "Wyłącz zmianę serwera", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Aktywne mapy", "mapOverlay": "Nakładka mapy", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Średnia prędkość", "reportMaximumSpeed": "Maksymalna prędkość", "reportEngineHours": "Czas pracy silnika", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Czas trwania", "reportStartDate": "Data początkowa", "reportStartTime": "Czas uruchomienia", diff --git a/src/resources/l10n/pt.json b/src/resources/l10n/pt.json index 66181d39..3e68d191 100644 --- a/src/resources/l10n/pt.json +++ b/src/resources/l10n/pt.json @@ -4,6 +4,7 @@ "sharedSave": "Guardar", "sharedUpload": "Upload", "sharedSet": "Conjunto", + "sharedAccept": "Accept", "sharedCancel": "Cancelar", "sharedCopy": "Copy", "sharedAdd": "Adicionar", @@ -34,6 +35,7 @@ "sharedName": "Nome", "sharedDescription": "Descrição", "sharedSearch": "Pesquisar", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Cerca Geográfica", "sharedGeofences": "Cercas Geográficas", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Símbolo", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Entrar", "loginLanguage": "Idioma", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocidade Média", "reportMaximumSpeed": "Velocidade Máxima", "reportEngineHours": "Duração Ligado", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duração", "reportStartDate": "Data de Início", "reportStartTime": "Hora de Inicio", diff --git a/src/resources/l10n/pt_BR.json b/src/resources/l10n/pt_BR.json index 7f47050f..8b25df7c 100644 --- a/src/resources/l10n/pt_BR.json +++ b/src/resources/l10n/pt_BR.json @@ -4,14 +4,15 @@ "sharedSave": "Salvar", "sharedUpload": "Enviar", "sharedSet": "Aplicar", + "sharedAccept": "Accept", "sharedCancel": "Cancelar", - "sharedCopy": "Copy", + "sharedCopy": "Copia", "sharedAdd": "Adicionar", "sharedEdit": "Editar", "sharedRemove": "Remover", "sharedRemoveConfirm": "Remover item?", "sharedNoData": "Sem dados", - "sharedSubject": "Subject", + "sharedSubject": "Assunto", "sharedYes": "Sim", "sharedNo": "Não", "sharedKm": "km", @@ -34,6 +35,7 @@ "sharedName": "Nome", "sharedDescription": "Descrição", "sharedSearch": "Busca", + "sharedPriority": "Priority", "sharedIconScale": "Escala do ícone", "sharedGeofence": "Geocerca", "sharedGeofences": "Cerca Virtual", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Arraste e solte um arquivo aqui ou clique", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simples", "calendarRecurrence": "Recorrência", "calendarOnce": "Uma vez", @@ -147,11 +150,11 @@ "attributeMailSmtpAuth": "Email: Ativar Autenticação (SMTP)", "attributeMailSmtpUsername": "Email: Nome de Usuário (SMTP)", "attributeMailSmtpPassword": "Email: Senha (SMTP)", - "attributeUiDisableSavedCommands": "UI: Disable Saved Commands", + "attributeUiDisableSavedCommands": "UI: Desativar Comandos Salvos", "attributeUiDisableAttributes": "UI: Desativar atributos", "attributeUiDisableGroups": "UI: Desabilitar Grupos", "attributeUiDisableEvents": "UI: Eventos Desativados", - "attributeUiDisableVehicleFeatures": "UI: Disable Vehicle Features", + "attributeUiDisableVehicleFeatures": "UI: Desativar Recursos do Veículo", "attributeUiDisableDrivers": "UI: Desativar Motoristas", "attributeUiDisableComputedAttributes": "UI: Desativar Atributos Calculados", "attributeUiDisableCalendars": "UI: Desativar Calendários", @@ -178,7 +181,11 @@ "userFixedEmail": "Sem alteração de e-mail", "userToken": "Token", "userDeleteAccount": "Deletar conta", - "userTemporary": "Temporary", + "userTemporary": "Temporário", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Login", "loginLanguage": "Idioma", "loginReset": "Redefinir senha", @@ -235,7 +242,7 @@ "settingsTotpForce": "Forçar One-time Password", "settingsServiceWorkerUpdateInterval": "Intervalo de atualização do ServiceWorker", "settingsUpdateAvailable": "Existe uma atualização disponível.", - "settingsSupport": "Support", + "settingsSupport": "Suporte", "reportTitle": "Relatórios", "reportScheduled": "Agendamento de relatórios", "reportDevice": "Dispositivo", @@ -329,7 +336,8 @@ "serverLogo": "Imagem do Logo", "serverLogoInverted": "Imagem do logo invertida", "serverChangeDisable": "Desabilitar mudança de servidor", - "serverDisableShare": "Disable Device Sharing", + "serverDisableShare": "Desativar Compartilhamento de Dispositivos", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Mapas ativos", "mapOverlay": "Sobreposição de mapa", @@ -363,7 +371,7 @@ "mapWikimedia": "Wikimedia", "mapOrdnanceSurvey": "Levantamento de artilharia", "mapMapboxStreets": "Mapbox Ruas", - "mapMapboxStreetsDark": "Mapbox Streets Dark", + "mapMapboxStreetsDark": "Mapbox Streets Escuro", "mapMapboxOutdoors": "Mapbox ao ar livre", "mapMapboxSatellite": "Mapbox Satélite", "mapMapboxKey": "Mapbox Token de Acesso", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocidade Média", "reportMaximumSpeed": "Velocidade Máxima", "reportEngineHours": "Horas ligado", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duração", "reportStartDate": "Data de Início", "reportStartTime": "Hora inicial", diff --git a/src/resources/l10n/ro.json b/src/resources/l10n/ro.json index 84367c5b..6446b0ee 100644 --- a/src/resources/l10n/ro.json +++ b/src/resources/l10n/ro.json @@ -4,6 +4,7 @@ "sharedSave": "Salvează", "sharedUpload": "Încarcă", "sharedSet": "Configurare", + "sharedAccept": "Accept", "sharedCancel": "Anulează", "sharedCopy": "Copy", "sharedAdd": "Adaugă", @@ -34,6 +35,7 @@ "sharedName": "Nume", "sharedDescription": "Descriere", "sharedSearch": "Căutare", + "sharedPriority": "Priority", "sharedIconScale": "Scală pentru Iconiță", "sharedGeofence": "Perimetru Restricționat", "sharedGeofences": "Perimetre Restricționate", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop un fișier aici ori click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simplu", "calendarRecurrence": "Recurent", "calendarOnce": "O singură dată", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Șterge Cont", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Autentificare", "loginLanguage": "Limbă", "loginReset": "Reconfigurare Parolă", @@ -330,6 +337,7 @@ "serverLogoInverted": "Imagine Logo Inversată", "serverChangeDisable": "Dezactivează Schimbarea Serverului", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Hartă", "mapActive": "Hărți Active", "mapOverlay": "Suprapunere Hartă", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Viteza medie", "reportMaximumSpeed": "Viteză Maximă", "reportEngineHours": "Ore motor", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Durata", "reportStartDate": "Data Start", "reportStartTime": "Oră Start", diff --git a/src/resources/l10n/ru.json b/src/resources/l10n/ru.json index 4d70757d..e9beb53e 100644 --- a/src/resources/l10n/ru.json +++ b/src/resources/l10n/ru.json @@ -4,6 +4,7 @@ "sharedSave": "Сохранить", "sharedUpload": "Upload", "sharedSet": "Установить", + "sharedAccept": "Accept", "sharedCancel": "Отмена", "sharedCopy": "Copy", "sharedAdd": "Добавить", @@ -34,6 +35,7 @@ "sharedName": "Имя", "sharedDescription": "Описание", "sharedSearch": "Поиск", + "sharedPriority": "Priority", "sharedIconScale": "Иконка масштаба", "sharedGeofence": "Геозона", "sharedGeofences": "Геозоны", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Перетащите файл сюда или нажмите", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Простой", "calendarRecurrence": "Повторение", "calendarOnce": "Однократно", @@ -179,6 +182,10 @@ "userToken": "Ключ", "userDeleteAccount": "Удалить аккаунт", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Вход", "loginLanguage": "Язык", "loginReset": "Сброс пароля", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Карта", "mapActive": "Активные карты", "mapOverlay": "Слой карты", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Средняя скорость", "reportMaximumSpeed": "Максимальная скорость", "reportEngineHours": "Моточасы", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Длительность", "reportStartDate": "Дата начала", "reportStartTime": "Начальное время", diff --git a/src/resources/l10n/si.json b/src/resources/l10n/si.json index 9e8ad6af..c999d439 100644 --- a/src/resources/l10n/si.json +++ b/src/resources/l10n/si.json @@ -4,6 +4,7 @@ "sharedSave": "සුරකින්න", "sharedUpload": "Upload", "sharedSet": "සකසන්න", + "sharedAccept": "Accept", "sharedCancel": "සිදු කරන්න", "sharedCopy": "Copy", "sharedAdd": "එක් කරන්න", @@ -34,6 +35,7 @@ "sharedName": "නම", "sharedDescription": "සවිස්තරය", "sharedSearch": "සොයන්න", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "භූ වැටිය", "sharedGeofences": "භූ වැටි", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "ටෝකනය", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ඇතුල් වන්න", "loginLanguage": "භාෂාව", "loginReset": "මුරපදය නැවත සකසන්න", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "දක්වා", "mapActive": "ක්රියාකාරී සිතියම්", "mapOverlay": "සිතියම උඩ තට්ටුව", @@ -554,6 +562,8 @@ "reportAverageSpeed": "සාමාන්ය වේගය", "reportMaximumSpeed": "උපරිම වේගය", "reportEngineHours": "එන්ජින් පැය", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "කාලසීමාව", "reportStartDate": "ආරම්භක දිනය", "reportStartTime": "ආරම්භක වේලාව", diff --git a/src/resources/l10n/sk.json b/src/resources/l10n/sk.json index e4aebedc..d73e0efb 100644 --- a/src/resources/l10n/sk.json +++ b/src/resources/l10n/sk.json @@ -1,19 +1,20 @@ { - "sharedLoading": "Načítava...", + "sharedLoading": "Načítavam...", "sharedHide": "Schovať", "sharedSave": "Uložiť", - "sharedUpload": "Upload", + "sharedUpload": "Nahrať", "sharedSet": "Nastaviť", + "sharedAccept": "Súhlasím", "sharedCancel": "Zrušiť", - "sharedCopy": "Copy", + "sharedCopy": "Kopírovať", "sharedAdd": "Pridať", "sharedEdit": "Upraviť", "sharedRemove": "Odstrániť", "sharedRemoveConfirm": "Odstrániť položku?", - "sharedNoData": "No data", - "sharedSubject": "Subject", - "sharedYes": "Yes", - "sharedNo": "No", + "sharedNoData": "Žiadne dáta", + "sharedSubject": "Predmet", + "sharedYes": "Áno", + "sharedNo": "Nie", "sharedKm": "Km", "sharedMi": "mi", "sharedNmi": "nmi", @@ -34,10 +35,11 @@ "sharedName": "Meno", "sharedDescription": "Popis", "sharedSearch": "Hľadať", - "sharedIconScale": "Icon Scale", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedCreateGeofence": "Create Geofence", + "sharedPriority": "Priority", + "sharedIconScale": "Veľkosť ikonky", + "sharedGeofence": "Lokalita", + "sharedGeofences": "Lokality", + "sharedCreateGeofence": "Vytvoriť lokalitu", "sharedNotifications": "Notifikácie", "sharedNotification": "Notifikácia", "sharedAttributes": "Atribúty", @@ -59,30 +61,30 @@ "sharedUsGallon": "Americký galón", "sharedLiterPerHourAbbreviation": "l/h", "sharedGetMapState": "Získať mapu štátu", - "sharedComputedAttribute": "Computed Attribute", - "sharedComputedAttributes": "Computed Attributes", - "sharedCheckComputedAttribute": "Check Computed Attribute", + "sharedComputedAttribute": "Vypočítaný atribút", + "sharedComputedAttributes": "Vypočítané atribúty", + "sharedCheckComputedAttribute": "Skontrolujte vypočítaný atribút", "sharedExpression": "Výraz", "sharedDevice": "Zariadenie", - "sharedTest": "Test", - "sharedTestNotification": "Pošli skúšobnú notifikáciu", - "sharedTestNotificators": "Test Channels", - "sharedTestExpression": "Test Expression", + "sharedTest": "Otestovať", + "sharedTestNotification": "Odoslať skúšobnú notifikáciu", + "sharedTestNotificators": "Testovacie kanály", + "sharedTestExpression": "Testovací výraz", "sharedCalendar": "Kalendár", "sharedCalendars": "Kalendáre", "sharedFile": "Súbor", - "sharedSearchDevices": "Search Devices", - "sharedSortBy": "Sort By", - "sharedFilterMap": "Filter on Map", + "sharedSearchDevices": "Hľadať zariadenia", + "sharedSortBy": "Zoradiť podľa", + "sharedFilterMap": "Filtrovať na mape", "sharedSelectFile": "Vyberte súbor", "sharedPhone": "Telefón", "sharedRequired": "Požadované", "sharedPreferences": "Preferencie", "sharedPermissions": "Povolenia", - "sharedConnections": "Connections", + "sharedConnections": "Prepojenia", "sharedExtra": "Extra", - "sharedPrimary": "Primary", - "sharedSecondary": "Secondary", + "sharedPrimary": "Primárne", + "sharedSecondary": "Sekundárne", "sharedTypeString": "Reťazec", "sharedTypeNumber": "Číslo", "sharedTypeBoolean": "Binárna hodnota", @@ -92,117 +94,122 @@ "sharedSavedCommands": "Uložené príkazy", "sharedNew": "Nový...", "sharedShowAddress": "Zobraziť adresu", - "sharedShowDetails": "More Details", + "sharedShowDetails": "Viac detailov", "sharedDisabled": "Vypnuté", - "sharedMaintenance": "Maintenance", - "sharedDeviceAccumulators": "Accumulators", + "sharedMaintenance": "Údržba", + "sharedDeviceAccumulators": "Akumulátory", "sharedAlarms": "Upozornenia", - "sharedLocation": "Location", - "sharedImport": "Import", - "sharedColumns": "Columns", - "sharedDropzoneText": "Drag and drop a file here or click", - "sharedLogs": "Logs", - "sharedLink": "Link", - "calendarSimple": "Simple", - "calendarRecurrence": "Recurrence", - "calendarOnce": "Once", - "calendarDaily": "Daily", - "calendarWeekly": "Weekly", - "calendarMonthly": "Monthly", - "calendarDays": "Days", - "calendarSunday": "Sunday", - "calendarMonday": "Monday", - "calendarTuesday": "Tuesday", - "calendarWednesday": "Wednesday", - "calendarThursday": "Thursday", - "calendarFriday": "Friday", - "calendarSaturday": "Saturday", - "attributeShowGeofences": "Show Geofences", + "sharedLocation": "Poloha", + "sharedImport": "Importovať", + "sharedColumns": "Stĺpce", + "sharedDropzoneText": "Presuňte sem súbor alebo kliknite", + "sharedLogs": "Logy", + "sharedLink": "Odkaz", + "sharedEmulator": "Emulator", + "calendarSimple": "Jednoduché", + "calendarRecurrence": "Opakovanie", + "calendarOnce": "Raz", + "calendarDaily": "Denne", + "calendarWeekly": "Týždenne", + "calendarMonthly": "Mesačne", + "calendarDays": "Dni", + "calendarSunday": "Nedeľa", + "calendarMonday": "Pondelok", + "calendarTuesday": "Utorok", + "calendarWednesday": "Streda", + "calendarThursday": "Štvrtok", + "calendarFriday": "Piatok", + "calendarSaturday": "Sobota", + "attributeShowGeofences": "Zobraziť lokality", "attributeSpeedLimit": "Limit rýchlosti", - "attributeFuelDropThreshold": "Fuel Drop Threshold", - "attributeFuelIncreaseThreshold": "Fuel Increase Threshold", - "attributePolylineDistance": "Polyline Distance", + "attributeFuelDropThreshold": "Prah poklesu paliva", + "attributeFuelIncreaseThreshold": "Prah zvýšenia paliva", + "attributePolylineDistance": "Dĺžka čiary", "attributeReportIgnoreOdometer": "Report: Ignoruj kilometrovník", "attributeWebReportColor": "Web: Farba reportu", "attributeDevicePassword": "Heslo zaridenia", - "attributeDeviceImage": "Device Image", - "attributeDeviceInactivityStart": "Device Inactivity Start", - "attributeDeviceInactivityPeriod": "Device Inactivity Period", - "attributeProcessingCopyAttributes": "Processing: Copy Attributes", + "attributeDeviceImage": "Obrázok zariadenia", + "attributeDeviceInactivityStart": "Nečinnosť zariadenia Štart", + "attributeDeviceInactivityPeriod": "Obdobie nečinnosti zariadenia", + "attributeProcessingCopyAttributes": "Spracovanie: Kopírovať atribúty", "attributeColor": "Farba", - "attributeWebLiveRouteLength": "Web: Live Route Length", - "attributeWebSelectZoom": "Web: Zoom On Select", + "attributeWebLiveRouteLength": "Web: Dĺžka aktuálnej trasy", + "attributeWebSelectZoom": "Web: Priblížiť pri zakliknutí", "attributeWebMaxZoom": "Web: Maximálne priblíženie", - "attributeTelegramChatId": "Telegram Chat ID", - "attributePushoverUserKey": "Pushover User Key", - "attributePushoverDeviceNames": "Pushover Device Names", + "attributeTelegramChatId": "ID Telegram četu", + "attributePushoverUserKey": "Pushover API kľúč", + "attributePushoverDeviceNames": "Pushover názov zariadenia", "attributeMailSmtpHost": "E-Mail: SMTP Host", "attributeMailSmtpPort": "E-Mail: SMTP Port", "attributeMailSmtpStarttlsEnable": "E-Mail: SMTP STARTTLS Zapnuté", "attributeMailSmtpStarttlsRequired": "E-Mail: SMTP STARTTLS Povinná", "attributeMailSmtpSslEnable": "Mail: Povolenie SMTP SSL", - "attributeMailSmtpSslTrust": "Mail: SMTP SSL Trust", + "attributeMailSmtpSslTrust": "Mail: SMTP SSL dôverihodnosť", "attributeMailSmtpSslProtocols": "Mail: SMTP SSL Protokoly", "attributeMailSmtpFrom": "Mail: SMTP Od", - "attributeMailSmtpAuth": "Mail: SMTP Auth Enable", + "attributeMailSmtpAuth": "Mail: Povoliť overenie SMTP", "attributeMailSmtpUsername": "Mail: SMTP Používateľské meno", "attributeMailSmtpPassword": "Mail: SMTP Heslo", - "attributeUiDisableSavedCommands": "UI: Disable Saved Commands", - "attributeUiDisableAttributes": "UI: Disable Attributes", - "attributeUiDisableGroups": "UI: Disable Groups", + "attributeUiDisableSavedCommands": "UI: Zakázať uložené príkazy", + "attributeUiDisableAttributes": "UI: Zakázať atribúty", + "attributeUiDisableGroups": "UI: Zakázať skupiny", "attributeUiDisableEvents": "UI: Zakázať udalosti", - "attributeUiDisableVehicleFeatures": "UI: Disable Vehicle Features", + "attributeUiDisableVehicleFeatures": "UI: Zakázať funkcie vozidla", "attributeUiDisableDrivers": "UI: Zakázať vodičov", - "attributeUiDisableComputedAttributes": "UI: Disable Computed Attributes", + "attributeUiDisableComputedAttributes": "UI: Zakázať vypočítané atribúty", "attributeUiDisableCalendars": "UI: Zakázať kalendáre", - "attributeUiDisableMaintenance": "UI: Disable Maintenance", - "attributeUiHidePositionAttributes": "UI: Hide Position Attributes", - "attributeUiDisableLoginLanguage": "UI: Disable Login Language", - "attributeNotificationTokens": "Notification Tokens", - "attributePopupInfo": "Popup Info", + "attributeUiDisableMaintenance": "UI: Zakázať údržbu", + "attributeUiHidePositionAttributes": "UI: Skryť atribúty pozície", + "attributeUiDisableLoginLanguage": "UI: Zakázať zmenu jazyka", + "attributeNotificationTokens": "Tokeny upozornení", + "attributePopupInfo": "Vyskakovacie okno", "errorTitle": "Chyba", - "errorGeneral": "Invalid parameters or constraints violation", + "errorGeneral": "Neplatné parametre alebo porušenie obmedzení", "errorConnection": "Chyba pripojenia", "errorSocket": "Chyba pripojenia web konektora", - "errorZero": "Can't be zero", + "errorZero": "Nemôže byť nula", "userEmail": "E-mail", "userPassword": "Heslo", "userAdmin": "Admin", "userRemember": "Zapamätať", "userExpirationTime": "Uplynutie platnosti", - "userDeviceLimit": "Limit zariadenia", + "userDeviceLimit": "Limitovať zariadenia", "userUserLimit": "Obmedzenie používateľov", "userDeviceReadonly": "Zariadenie len na čítanie", - "userLimitCommands": "Limit Commands", - "userDisableReports": "Disable Reports", - "userFixedEmail": "No Email Change", + "userLimitCommands": "Obmedzenie príkazov", + "userDisableReports": "Zakázať prehľady", + "userFixedEmail": "Žiadna zmena e-mailu", "userToken": "Token", - "userDeleteAccount": "Delete Account", - "userTemporary": "Temporary", + "userDeleteAccount": "Zmazať účet", + "userTemporary": "Dočasné", + "userTerms": "Podmienky služby", + "userPrivacy": "Zásady ochrany osobných údajov", + "userTermsPrompt": "Kliknutím na tlačidlo \"Súhlasím\" súhlasíte s našimi zmluvnými podmienkami a potvrdzujete, že ste si prečítali naše zásady ochrany osobných údajov.", + "userTermsAccepted": "Podmienky prijaté", "loginTitle": "Prihlásenie", "loginLanguage": "Jazyk", - "loginReset": "Reset Password", + "loginReset": "Obnoviť heslo", "loginRegister": "Registrovať", "loginLogin": "Prihlásenie", - "loginOpenId": "Login with OpenID", + "loginOpenId": "Prihláste sa pomocou OpenID", "loginFailed": "Nesprávna e-mailová adresa alebo heslo", "loginCreated": "Nový užívateľ sa zaregistroval", - "loginResetSuccess": "Check your email", - "loginUpdateSuccess": "New password is set", + "loginResetSuccess": "Skontrolujte E-Mail", + "loginUpdateSuccess": "Nové heslo je nastavené", "loginLogout": "Odhlásiť", "loginLogo": "Logo", - "loginTotpCode": "One-time Password Code", - "loginTotpKey": "One-time Password Key", + "loginTotpCode": "Kód dvojfaktorového overovania", + "loginTotpKey": "Kľúč dvojfaktorového overovania", "devicesAndState": "Zariadenia a Status", - "deviceSelected": "Selected Device", + "deviceSelected": "Vybrané zariadenie", "deviceTitle": "Zariadena", - "devicePrimaryInfo": "Device Title", - "deviceSecondaryInfo": "Device Detail", + "devicePrimaryInfo": "Názov zariadenia", + "deviceSecondaryInfo": "Detaily zariadenia", "deviceIdentifier": "Identifikátor", "deviceModel": "Model", "deviceContact": "Kontakt", "deviceCategory": "Kategória", - "deviceLastUpdate": "Posledný update", + "deviceLastUpdate": "Posledná aktualizácia", "deviceCommand": "Príkaz", "deviceFollow": "Nasleduj", "deviceTotalDistance": "Celková vzdialenosť", @@ -210,9 +217,9 @@ "deviceStatusOnline": "Online", "deviceStatusOffline": "Offline", "deviceStatusUnknown": "Neznáme", - "deviceRegisterFirst": "Register your first device", - "deviceIdentifierHelp": "IMEI, serial number or other id. It has to match the identifier device reports to the server.", - "deviceShare": "Share Device", + "deviceRegisterFirst": "Zaregistrovať prvé zariadenie", + "deviceIdentifierHelp": "IMEI, sériové číslo alebo iné ID. Musí sa zhodovať s identifikátormi zariadenia nahlásenými na serveri.", + "deviceShare": "Zdieľať zariadenie", "groupDialog": "Skupina", "groupParent": "Skupina", "groupNoGroup": "Žiadna skupina", @@ -222,34 +229,34 @@ "settingsServer": "Server", "settingsUsers": "Používatelia", "settingsDistanceUnit": "Jednotka vzdialenosti", - "settingsAltitudeUnit": "Altitude Unit", + "settingsAltitudeUnit": "Jednotka nadmorskej výšky", "settingsSpeedUnit": "Jednotka rýchlosti", "settingsVolumeUnit": "Jednotka objemu", "settingsTwelveHourFormat": "12-hodinový formát", "settingsCoordinateFormat": "Formát koordinátov", - "settingsServerVersion": "Server Version", - "settingsAppVersion": "App Version", - "settingsConnection": "Connection", - "settingsDarkMode": "Dark Mode", - "settingsTotpEnable": "Enable One-time Password", - "settingsTotpForce": "Force One-time Password", - "settingsServiceWorkerUpdateInterval": "ServiceWorker Update Interval", - "settingsUpdateAvailable": "There is an update available.", - "settingsSupport": "Support", + "settingsServerVersion": "Verzia servera", + "settingsAppVersion": "Verzia aplikácie", + "settingsConnection": "Pripojenie", + "settingsDarkMode": "Tmavý režim", + "settingsTotpEnable": "Povoliť dvojfaktorové overovanie", + "settingsTotpForce": "Vynútiť dvojfaktorové overovanie", + "settingsServiceWorkerUpdateInterval": "Interval aktualizácie ServiceWorker", + "settingsUpdateAvailable": "K dispozícii je aktualizácia.", + "settingsSupport": "Podpora", "reportTitle": "Správy", - "reportScheduled": "Scheduled Reports", + "reportScheduled": "Plánované prehľady", "reportDevice": "Zariadenie", "reportGroup": "Skupina", "reportFrom": "Od", "reportTo": "Do", "reportShow": "Zobraziť", "reportClear": "Vyčistiť", - "linkGoogleMaps": "Google Maps", - "linkAppleMaps": "Apple Maps", - "linkStreetView": "Street View", - "positionFixTime": "Fix Time", - "positionDeviceTime": "Device Time", - "positionServerTime": "Server Time", + "linkGoogleMaps": "Google Mapy", + "linkAppleMaps": "Apple Mapy", + "linkStreetView": "Pohľad z ulice", + "positionFixTime": "Čas", + "positionDeviceTime": "Čas zariadenia", + "positionServerTime": "Čas servera", "positionValid": "Platný", "positionAccuracy": "Presnosť", "positionLatitude": "Šírka", @@ -264,7 +271,7 @@ "positionFuel": "Palivo", "positionPower": "Napätie", "positionBattery": "Baterka", - "positionRaw": "Raw", + "positionRaw": "Čisté dáta", "positionIndex": "Index", "positionHdop": "HDOP", "positionVdop": "VDOP", @@ -278,12 +285,12 @@ "positionAlarm": "Upozornenie", "positionStatus": "Stav", "positionOdometer": "Kilometrovník", - "positionServiceOdometer": "Service Odometer", - "positionTripOdometer": "Trip Odometer", + "positionServiceOdometer": "Servisné počítadlo kilometrov", + "positionTripOdometer": "Počítadlo kilometrov", "positionHours": "Hodiny", - "positionSteps": "Steps", + "positionSteps": "Kroky", "positionInput": "Vstup", - "positionHeartRate": "Heart Rate", + "positionHeartRate": "Frekvencia", "positionOutput": "Výstup", "positionBatteryLevel": "Stav batérie", "positionFuelConsumption": "Spotreba paliva", @@ -292,65 +299,66 @@ "positionVersionHw": "Verzia hardvéru", "positionIgnition": "Zapaľovanie", "positionFlags": "Značky", - "positionCharge": "Charge", + "positionCharge": "Zmena", "positionIp": "IP", "positionArchive": "Archív", "positionVin": "VIN", - "positionApproximate": "Approximate", - "positionThrottle": "Throttle", + "positionApproximate": "Približné", + "positionThrottle": "Plyn", "positionMotion": "Pohyb", - "positionArmed": "Armed", + "positionArmed": "Odistené", "positionAcceleration": "Zrýchlenie", - "positionTemp": "Temperature", + "positionTemp": "Teplota", "positionDeviceTemp": "Teplota zariadenia", - "positionCoolantTemp": "Coolant Temperature", + "positionCoolantTemp": "Teplota chladiacej kvapaliny", "positionOperator": "Operátor", "positionCommand": "Príkaz", "positionBlocked": "Blokované", - "positionDtcs": "DTCs", + "positionDtcs": "Diagnostické poruchové kódy", "positionObdSpeed": "OBD rýchlosť", "positionObdOdometer": "OBD kilometrovník", - "positionDrivingTime": "Driving Time", + "positionDrivingTime": "Čas jazdy", "positionDriverUniqueId": "Unikátne ID vodiča", - "positionCard": "Card", - "positionImage": "Image", + "positionCard": "Karta", + "positionImage": "Obrázok", "positionVideo": "Video", - "positionAudio": "Audio", + "positionAudio": "Zvuk", "serverTitle": "Nastavenie servera", "serverZoom": "Zoom", "serverRegistration": "Registrácia", "serverReadonly": "Iba na čítanie", "serverForceSettings": "Nastavenie sily", - "serverAnnouncement": "Announcement", - "serverName": "Server Name", - "serverDescription": "Server Description", - "serverColorPrimary": "Color Primary", - "serverColorSecondary": "Color Secondary", - "serverLogo": "Logo Image", - "serverLogoInverted": "Inverted Logo Image", - "serverChangeDisable": "Disable Server Change", - "serverDisableShare": "Disable Device Sharing", + "serverAnnouncement": "Oznámenie", + "serverName": "Názov serveru", + "serverDescription": "Popis serveru", + "serverColorPrimary": "Hlavná farba", + "serverColorSecondary": "Sekundárna farba", + "serverLogo": "Obrázok loga", + "serverLogoInverted": "Farebne obrátený obrázok loga", + "serverChangeDisable": "Zakázať zmenu servera", + "serverDisableShare": "Zakázať zdieľanie zariadení", + "serverReboot": "Reboot", "mapTitle": "Mapa", - "mapActive": "Active Maps", - "mapOverlay": "Map Overlay", - "mapOverlayCustom": "Custom Overlay", + "mapActive": "Aktívne mapy", + "mapOverlay": "Prekrytie mapy", + "mapOverlayCustom": "Vlastné prekrytie", "mapOpenSeaMap": "OpenSeaMap", "mapOpenRailwayMap": "OpenRailwayMap", "mapOpenWeatherKey": "OpenWeather API Key", - "mapOpenWeatherClouds": "OpenWeather Clouds", - "mapOpenWeatherPrecipitation": "OpenWeather Precipitation", - "mapOpenWeatherPressure": "OpenWeather Pressure", - "mapOpenWeatherWind": "OpenWeather Wind", - "mapOpenWeatherTemperature": "OpenWeather Temperature", + "mapOpenWeatherClouds": "OpenWeather Oblačnosť", + "mapOpenWeatherPrecipitation": "OpenWeather Zrážky", + "mapOpenWeatherPressure": "OpenWeather Tlak", + "mapOpenWeatherWind": "OpenWeather Vietor", + "mapOpenWeatherTemperature": "OpenWeather Teplota", "mapLayer": "Mapové vrstvy", - "mapCustom": "Custom (XYZ)", - "mapCustomArcgis": "Custom (ArcGIS)", - "mapCustomLabel": "Custom map", + "mapCustom": "Vlastné (XYZ)", + "mapCustomArcgis": "Vlastné (ArcGIS)", + "mapCustomLabel": "Vlastná mapa", "mapCarto": "Carto Basemaps", "mapOsm": "OpenStreetMap", "mapGoogleRoad": "Google Road", - "mapGoogleHybrid": "Google Hybrid", - "mapGoogleSatellite": "Google Satellite", + "mapGoogleHybrid": "Google Hybridná mapa", + "mapGoogleSatellite": "Google Satelitné snímky", "mapOpenTopoMap": "OpenTopoMap", "mapBingKey": "Klúč Bing Maps", "mapBingRoad": "Bing Maps Road", @@ -363,42 +371,42 @@ "mapWikimedia": "Wikimedia", "mapOrdnanceSurvey": "Ordnance Survey", "mapMapboxStreets": "Mapbox Streets", - "mapMapboxStreetsDark": "Mapbox Streets Dark", + "mapMapboxStreetsDark": "Mapbox Streets Tmavé", "mapMapboxOutdoors": "Mapbox Outdoors", - "mapMapboxSatellite": "Mapbox Satellite", - "mapMapboxKey": "Mapbox Access Token", + "mapMapboxSatellite": "Mapbox Satelitné snímky", + "mapMapboxKey": "Mapbox API kľuč", "mapMapTilerBasic": "MapTiler Basic", "mapMapTilerHybrid": "MapTiler Hybrid", - "mapMapTilerKey": "MapTiler API Key", + "mapMapTilerKey": "MapTiler API kľuč", "mapLocationIqStreets": "LocationIQ Streets", - "mapLocationIqDark": "LocationIQ Dark", - "mapLocationIqKey": "LocationIQ Access Token", + "mapLocationIqDark": "LocationIQ Tmavé", + "mapLocationIqKey": "LocationIQ API kľúč", "mapTomTomBasic": "TomTom Basic", - "mapTomTomFlow": "TomTom Traffic Flow", - "mapTomTomIncidents": "TomTom Traffic Incidents", - "mapTomTomKey": "TomTom API Key", + "mapTomTomFlow": "TomTom Dopravné zápchy", + "mapTomTomIncidents": "TomTom Dopravné nehody", + "mapTomTomKey": "TomTom API kľúč", "mapHereBasic": "Here Basic", "mapHereHybrid": "Here Hybrid", - "mapHereSatellite": "Here Satellite", - "mapHereFlow": "Here Traffic Flow", - "mapHereKey": "Here API Key", + "mapHereSatellite": "Here Satelitné snímky", + "mapHereFlow": "Here Dopravné zápchy", + "mapHereKey": "Here API kľúč", "mapShapePolygon": "Polygón", "mapShapeCircle": "Kruh", "mapShapePolyline": "Lomená čiara", - "mapLiveRoutes": "Live Routes", - "mapDirection": "Show Direction", - "mapCurrentLocation": "Current Location", - "mapPoiLayer": "POI Layer", - "mapClustering": "Markers Clustering", - "mapOnSelect": "Show Map on Selection", - "mapDefault": "Default Map", + "mapLiveRoutes": "Živá trasa", + "mapDirection": "Zobraziť smer", + "mapCurrentLocation": "Súčasná poloha", + "mapPoiLayer": "POI vrstva", + "mapClustering": "Zjednocovanie zariadení", + "mapOnSelect": "Zobraziť mapu pri výbere", + "mapDefault": "Predvolená mapa", "stateTitle": "Parametre", "stateName": "Parameter", "stateValue": "Hodnota", "commandTitle": "Príkaz", "commandSend": "Odoslať", "commandSent": "Príkaz odoslaný", - "commandQueued": "Command queued", + "commandQueued": "Príkaz vo fronte", "commandUnit": "Jednotka", "commandCustom": "Vlastný príkaz", "commandDeviceIdentification": "Identifikácia zariadenia", @@ -409,12 +417,12 @@ "commandEngineResume": "Spustenie motora", "commandAlarmArm": "Nastaviť upozornenie", "commandAlarmDisarm": "Zrušiť upozornenie", - "commandAlarmDismiss": "Dismiss Alarm", + "commandAlarmDismiss": "Zrušiť alarm", "commandSetTimezone": "Nastaviť časovú zónu", "commandRequestPhoto": "Poslať fotku", - "commandPowerOff": "Power Off Device", + "commandPowerOff": "Vypnutie zariadenia", "commandRebootDevice": "Rebootovať zariadenie", - "commandFactoryReset": "Factory Reset", + "commandFactoryReset": "Obnovenie továrenských nastavení", "commandSendSms": "Postať SMS", "commandSendUssd": "Postať USSD", "commandSosNumber": "Nastaviť čislo SOS", @@ -422,7 +430,7 @@ "commandSetPhonebook": "Nastav telefónny zoznam", "commandVoiceMessage": "Hlasové správy", "commandOutputControl": "Výstupná kontrola", - "commandVoiceMonitoring": "Voice Monitoring", + "commandVoiceMonitoring": "Hlasové monitorovanie", "commandSetAgps": "Nastaviť AGPS", "commandSetIndicator": "Nastavte ukazovateľ", "commandConfiguration": "Konfigurácia", @@ -432,17 +440,17 @@ "commandSetOdometer": "Nastaviť kilometrovník", "commandGetModemStatus": "Získať stav modemu", "commandGetDeviceStatus": "Získať stav zariadenia", - "commandSetSpeedLimit": "Set Speed Limit", - "commandModePowerSaving": "Power Saving Mode", - "commandModeDeepSleep": "Deep Sleep Mode", - "commandAlarmGeofence": "Set Geofence Alarm", - "commandAlarmBattery": "Set Battery Alarm", - "commandAlarmSos": "Set SOS Alarm", - "commandAlarmRemove": "Set Remove Alarm", - "commandAlarmClock": "Set Clock Alarm", - "commandAlarmSpeed": "Set Speed Alarm", - "commandAlarmFall": "Set Fall Alarm", - "commandAlarmVibration": "Set Vibration Alarm", + "commandSetSpeedLimit": "Nastavte rýchlostný limit", + "commandModePowerSaving": "Režim šetrenia elektrickej energie", + "commandModeDeepSleep": "Režim hlbokého spánku", + "commandAlarmGeofence": "Nastaviť upozornenie lokalít", + "commandAlarmBattery": "Nastaviť upozornenie batérie", + "commandAlarmSos": "Nastaviť upozornenie SOS", + "commandAlarmRemove": "Nastaviť odstránenie upozornenia", + "commandAlarmClock": "Nastaviť upozornenie času", + "commandAlarmSpeed": "Nastaviť upozornenie rýchlosti", + "commandAlarmFall": "Nastaviť upozornenie pádu", + "commandAlarmVibration": "Nastaviť upozornenie vibrácii ", "commandFrequency": "Frekvencia", "commandTimezone": "Časová zóna Offset", "commandMessage": "Správa", @@ -455,70 +463,70 @@ "commandPort": "Port", "eventAll": "Všetky akcie", "eventDeviceOnline": "Stav online", - "eventDeviceUnknown": "Status unknown", + "eventDeviceUnknown": "Stav neznámy", "eventDeviceOffline": "Stav offline", - "eventDeviceInactive": "Device inactive", - "eventQueuedCommandSent": "Queued command sent", + "eventDeviceInactive": "Neaktívne zariadenie", + "eventQueuedCommandSent": "Odoslaný príkaz vo fronte", "eventDeviceMoving": "Zariadenie sa hýbe", "eventDeviceStopped": "Zariadenie zastavilo", - "eventDeviceOverspeed": "Speed limit exceeded", - "eventDeviceFuelDrop": "Fuel drop", - "eventDeviceFuelIncrease": "Fuel increase", + "eventDeviceOverspeed": "Prekročená rýchlosť", + "eventDeviceFuelDrop": "Zníženie paliva", + "eventDeviceFuelIncrease": "Zvýšenie paliva", "eventCommandResult": "Výsledok príkazu", - "eventGeofenceEnter": "Geofence entered", - "eventGeofenceExit": "Geofence exited", + "eventGeofenceEnter": "Vstup do lokality", + "eventGeofenceExit": "Odchod z lokality", "eventAlarm": "Upozornenie", - "eventIgnitionOn": "Ignition on", - "eventIgnitionOff": "Ignition off", + "eventIgnitionOn": "Zapaľovanie zapnuté", + "eventIgnitionOff": "Zapaľovanie vypnuté", "eventMaintenance": "Vyžaduje sa údržba", "eventTextMessage": "Prijatá textová správa", "eventDriverChanged": "Zmena vodiča", - "eventMedia": "Media", - "eventsScrollToLast": "Scroll To Last", - "eventsSoundEvents": "Sound Events", - "eventsSoundAlarms": "Sound Alarms", + "eventMedia": "Média", + "eventsScrollToLast": "Prejdite na posledný", + "eventsSoundEvents": "Zvukové udalosti", + "eventsSoundAlarms": "Zvukové alarmy", "alarmGeneral": "Všeobecné", "alarmSos": "SOS", "alarmVibration": "Vibrácia", "alarmMovement": "Pobyb", - "alarmLowspeed": "Low Speed", + "alarmLowspeed": "Malá rýchlosť", "alarmOverspeed": "Prekročenie rýchlosti", - "alarmFallDown": "Fall Down", + "alarmFallDown": "Pád", "alarmLowPower": "Slabý prúd", "alarmLowBattery": "Slabá batéria", "alarmFault": "Chyba", - "alarmPowerOff": "Power Off", - "alarmPowerOn": "Power On", - "alarmDoor": "Door", + "alarmPowerOff": "Vypnúť", + "alarmPowerOn": "Zapnúť", + "alarmDoor": "Dvere", "alarmLock": "Zamknúť", "alarmUnlock": "Odomknúť", - "alarmGeofence": "Geofence", - "alarmGeofenceEnter": "Geofence Enter", - "alarmGeofenceExit": "Geofence Exit", - "alarmGpsAntennaCut": "GPS Antenna Cut", - "alarmAccident": "Accident", - "alarmTow": "Tow", - "alarmIdle": "Idle", - "alarmHighRpm": "High RPM", - "alarmHardAcceleration": "Hard Acceleration", - "alarmHardBraking": "Hard Braking", - "alarmHardCornering": "Hard Cornering", - "alarmLaneChange": "Lane Change", - "alarmFatigueDriving": "Fatigue Driving", - "alarmPowerCut": "Power Cut", + "alarmGeofence": "Lokalita", + "alarmGeofenceEnter": "Vstup do lokality", + "alarmGeofenceExit": "Odchod z lokality", + "alarmGpsAntennaCut": "Prerušenie GPS", + "alarmAccident": "Nehoda", + "alarmTow": "Ťahanie", + "alarmIdle": "Nečinný", + "alarmHighRpm": "Vysoké otáčky", + "alarmHardAcceleration": "Prudká akcelerácia", + "alarmHardBraking": "Prudké brzdenie", + "alarmHardCornering": "Prudké zatáčanie", + "alarmLaneChange": "Zmena jazdného pruhu", + "alarmFatigueDriving": "Únavová jazda", + "alarmPowerCut": "Odpojenie napájania", "alarmPowerRestored": "Napájanie obnovené", - "alarmJamming": "Jamming", + "alarmJamming": "Kradnutie", "alarmTemperature": "Teplota", "alarmParking": "Parkovanie", - "alarmBonnet": "Bonnet", - "alarmFootBrake": "Foot Brake", - "alarmFuelLeak": "Fuel Leak", - "alarmTampering": "Tampering", - "alarmRemoving": "Removing", + "alarmBonnet": "Kapota", + "alarmFootBrake": "Ručná brzda", + "alarmFuelLeak": "Únik paliva", + "alarmTampering": "Manipulácia", + "alarmRemoving": "Odstránenie", "notificationType": "Typ notifikácie", "notificationAlways": "Všetky zariadenia", - "notificationNotificators": "Channels", - "notificatorCommand": "Command", + "notificationNotificators": "Kanály", + "notificatorCommand": "Príkaz", "notificatorWeb": "Web", "notificatorMail": "Mail", "notificatorSms": "SMS", @@ -526,23 +534,23 @@ "notificatorTraccar": "Traccar", "notificatorTelegram": "Telegram", "notificatorPushover": "Pushover", - "reportReplay": "Replay", - "reportCombined": "Combined", + "reportReplay": "Prehrať", + "reportCombined": "Kombinované", "reportRoute": "Cesta", "reportEvents": "Udalosti", "reportTrips": "Cesty", "reportStops": "Zastávky", "reportSummary": "Zhrnutie", - "reportDaily": "Daily Summary", + "reportDaily": "Denný súhrn", "reportChart": "Graf", "reportConfigure": "Konfigurácia", "reportEventTypes": "Typy udalstí", "reportChartType": "Typ grafu", "reportShowMarkers": "Zobraziť značky", - "reportExport": "Export", - "reportEmail": "Email Report", - "reportSchedule": "Schedule", - "reportPeriod": "Period", + "reportExport": "Exportovať", + "reportEmail": "E-mailová správa", + "reportSchedule": "Rozvrh", + "reportPeriod": "Obdobie", "reportCustom": "Vlastné", "reportToday": "Dnes", "reportYesterday": "Včera", @@ -554,15 +562,17 @@ "reportAverageSpeed": "Priemerná rýchlosť", "reportMaximumSpeed": "Maximálna rýchlosť", "reportEngineHours": "Prevádzkové hodiny motora", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Trvanie", - "reportStartDate": "Start Date", + "reportStartDate": "Dátum začiatku", "reportStartTime": "Čas spustenia", "reportStartAddress": "Počiatočná adresa", "reportEndTime": "Čas ukončenia", "reportEndAddress": "Koncová adresa", "reportSpentFuel": "Spotrebované palivo", - "reportStartOdometer": "Odometer Start", - "reportEndOdometer": "Odometer End", + "reportStartOdometer": "Štart počítadla kilometrov", + "reportEndOdometer": "Koniec počítadla kilometrov", "statisticsTitle": "Štatistika", "statisticsCaptureTime": "Zachyť čas", "statisticsActiveUsers": "Aktívny používatelia", @@ -570,8 +580,8 @@ "statisticsRequests": "Požiadavka", "statisticsMessagesReceived": "Správa doručená", "statisticsMessagesStored": "Správa uložená", - "statisticsGeocoder": "Geocoder Requests", - "statisticsGeolocation": "Geolocation Requests", + "statisticsGeocoder": "Požiadavky geokódera", + "statisticsGeolocation": "Požiadavky na geolokáciu", "categoryArrow": "Šípka", "categoryDefault": "Základné", "categoryAnimal": "Zviera", @@ -579,7 +589,7 @@ "categoryBoat": "Loď", "categoryBus": "Autobus", "categoryCar": "Auto", - "categoryCamper": "Camper", + "categoryCamper": "Karavan", "categoryCrane": "Žeriav", "categoryHelicopter": "Helikoptéra", "categoryMotorcycle": "Motocykel", @@ -589,12 +599,12 @@ "categoryPlane": "Lietadlo", "categoryShip": "Loď", "categoryTractor": "Traktor", - "categoryTrain": "Train", - "categoryTram": "Tram", + "categoryTrain": "Vlak", + "categoryTram": "Električka", "categoryTrolleybus": "Trolleybus", "categoryTruck": "Nákladné auto", "categoryVan": "Dodávka", - "categoryScooter": "Scooter", - "maintenanceStart": "Start", - "maintenancePeriod": "Period" + "categoryScooter": "Skúter", + "maintenanceStart": "Štart", + "maintenancePeriod": "Obdobie" }
\ No newline at end of file diff --git a/src/resources/l10n/sl.json b/src/resources/l10n/sl.json index 3c55e91b..cd6be412 100644 --- a/src/resources/l10n/sl.json +++ b/src/resources/l10n/sl.json @@ -4,6 +4,7 @@ "sharedSave": "Shrani", "sharedUpload": "Naloži", "sharedSet": "Nastavi", + "sharedAccept": "Accept", "sharedCancel": "Prekini", "sharedCopy": "Copy", "sharedAdd": "Dodaj", @@ -34,6 +35,7 @@ "sharedName": "Ime", "sharedDescription": "Opis", "sharedSearch": "Išči", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Omejeno območje", "sharedGeofences": "Omejena območja", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Povlecite in spustite datoteko sem ali kliknite", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Preprost", "calendarRecurrence": "Ponovitev", "calendarOnce": "Enkrat", @@ -179,6 +182,10 @@ "userToken": "Žeton", "userDeleteAccount": "Izbriši račun", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Prijava", "loginLanguage": "Jezik", "loginReset": "Ponastavi geslo", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Zemljevid", "mapActive": "Aktivni zemljevidi", "mapOverlay": "Podatkovna plast", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Povprečna hitrost", "reportMaximumSpeed": "Najvišja hitrost", "reportEngineHours": "Motorinh ur", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Trajanje", "reportStartDate": "Datum začetka", "reportStartTime": "Začetni čas", diff --git a/src/resources/l10n/sq.json b/src/resources/l10n/sq.json index 8b77004a..72566a94 100644 --- a/src/resources/l10n/sq.json +++ b/src/resources/l10n/sq.json @@ -4,6 +4,7 @@ "sharedSave": "Ruaj", "sharedUpload": "Upload", "sharedSet": "Set", + "sharedAccept": "Accept", "sharedCancel": "Anullim", "sharedCopy": "Copy", "sharedAdd": "Shto", @@ -34,6 +35,7 @@ "sharedName": "Emri", "sharedDescription": "Description", "sharedSearch": "Kërkim", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geofence", "sharedGeofences": "Geofences", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Hyrje", "loginLanguage": "Gjuha", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Harta", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "Start Time", diff --git a/src/resources/l10n/sr.json b/src/resources/l10n/sr.json index a23fc3ee..f2b9d955 100644 --- a/src/resources/l10n/sr.json +++ b/src/resources/l10n/sr.json @@ -4,6 +4,7 @@ "sharedSave": "Sačuvaj", "sharedUpload": "Učitaj", "sharedSet": "Podesi", + "sharedAccept": "Prihvati", "sharedCancel": "Odustani", "sharedCopy": "Kopiraj", "sharedAdd": "Dodaj", @@ -34,6 +35,7 @@ "sharedName": "Ime", "sharedDescription": "Opis", "sharedSearch": "Traži", + "sharedPriority": "Prioritet", "sharedIconScale": "Razmera Ikonice", "sharedGeofence": "Geoograda", "sharedGeofences": "Geoograde", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Prevuci file i pusti ili klikni", "sharedLogs": "Dnevnici", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Jednostavno", "calendarRecurrence": "Ponavljanje", "calendarOnce": "Jednom", @@ -179,6 +182,10 @@ "userToken": "Znak", "userDeleteAccount": "Izbriši nalog", "userTemporary": "Privremeno", + "userTerms": "Uslovi korišćenja", + "userPrivacy": "Politika privatnosti", + "userTermsPrompt": "Klikom na Prihvati, prihvatate naše Uslove korišćenja usluge i potvrđujete da ste pročitali našu Politiku privatnosti.", + "userTermsAccepted": "Uslovi su prihvaćeni", "loginTitle": "Prijava", "loginLanguage": "Jezik", "loginReset": "Resetuj Lozinku", @@ -330,6 +337,7 @@ "serverLogoInverted": "Obrnuta logo slika", "serverChangeDisable": "Onemogući Server promene", "serverDisableShare": "Onemogući deljenje vozila", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Aktivne mape", "mapOverlay": "Preklapanje mape", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Prosečna brzina", "reportMaximumSpeed": "Maksimalna brzina", "reportEngineHours": "Radni sati", + "reportStartEngineHours": "Početak radnih sati motora", + "reportEndEngineHours": "Završetak radnih sati motora", "reportDuration": "Trajanje", "reportStartDate": "Početni datum", "reportStartTime": "Startno vreme", diff --git a/src/resources/l10n/sv.json b/src/resources/l10n/sv.json index e6ee943b..06191f31 100644 --- a/src/resources/l10n/sv.json +++ b/src/resources/l10n/sv.json @@ -4,6 +4,7 @@ "sharedSave": "Spara", "sharedUpload": "Upload", "sharedSet": "Set", + "sharedAccept": "Accept", "sharedCancel": "Avbryt", "sharedCopy": "Copy", "sharedAdd": "Lägg till", @@ -34,6 +35,7 @@ "sharedName": "Namn", "sharedDescription": "Beskrivning", "sharedSearch": "Sök", + "sharedPriority": "Priority", "sharedIconScale": "Ikonskala", "sharedGeofence": "Geofence", "sharedGeofences": "Geofences", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Dra och släpp en fil här eller klicka", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Enkel", "calendarRecurrence": "Upprepning", "calendarOnce": "En gång", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Ta bor Konto", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Logga in", "loginLanguage": "Språk", "loginReset": "Återställ Lösenord", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Karta", "mapActive": "Aktiva Kartor", "mapOverlay": "Kartöverlägg", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Genomsnittshastighet", "reportMaximumSpeed": "Maxhastighet", "reportEngineHours": "Motortimmar", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Varaktighet", "reportStartDate": "Startdatum", "reportStartTime": "Starttid", diff --git a/src/resources/l10n/ta.json b/src/resources/l10n/ta.json index 8cdbdc62..3182f00b 100644 --- a/src/resources/l10n/ta.json +++ b/src/resources/l10n/ta.json @@ -4,6 +4,7 @@ "sharedSave": "சேமி", "sharedUpload": "Upload", "sharedSet": "அமை", + "sharedAccept": "Accept", "sharedCancel": "ரத்து செய்", "sharedCopy": "Copy", "sharedAdd": "சேர்க்க", @@ -34,6 +35,7 @@ "sharedName": "பெயர்", "sharedDescription": "விளக்கம்", "sharedSearch": "தேடுக", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "பூகோள வேலி", "sharedGeofences": "பூகோள வேலிகள்", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "டோக்கன் ", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "உள் நுழை", "loginLanguage": "மொழி", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "வரைபடம்", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "சராசரி வேகம்", "reportMaximumSpeed": "அதிகபட்ச வேகம்", "reportEngineHours": "இயந்திர மணி", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "கால அளவு ", "reportStartDate": "Start Date", "reportStartTime": "துவக்க நேரம் ", diff --git a/src/resources/l10n/th.json b/src/resources/l10n/th.json index 95f783c4..a95f9e0c 100644 --- a/src/resources/l10n/th.json +++ b/src/resources/l10n/th.json @@ -4,6 +4,7 @@ "sharedSave": "จัดเก็บแฟ้มข้อมูล", "sharedUpload": "อัพโหลด", "sharedSet": "ตั้งค่า", + "sharedAccept": "ยอมรับ", "sharedCancel": "ยกเลิก", "sharedCopy": "คัดลอก", "sharedAdd": "เพิ่ม", @@ -34,6 +35,7 @@ "sharedName": "ชื่อ", "sharedDescription": "คำอธิบาย", "sharedSearch": "ค้นหา", + "sharedPriority": "ลำดับความสำคัญ", "sharedIconScale": "ขนาดไอคอน", "sharedGeofence": "เขตพื้นที่", "sharedGeofences": "เขตพื้นที่", @@ -103,6 +105,7 @@ "sharedDropzoneText": "ลากและวางไฟล์ที่นี่หรือคลิก", "sharedLogs": "Logs", "sharedLink": "ลิงก์", + "sharedEmulator": "อีมูเลเตอร์", "calendarSimple": "เรียบง่าย", "calendarRecurrence": "การเกิดซ้ำ", "calendarOnce": "ครั้งเดียว", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "ลบบัญชี", "userTemporary": "ชั่วคราว", + "userTerms": "เงื่อนไขการให้บริการ", + "userPrivacy": "นโยบายความเป็นส่วนตัว", + "userTermsPrompt": "เมื่อคลิกยอมรับ แสดงว่าคุณยอมรับข้อกำหนดในการให้บริการของเรา และยืนยันว่าคุณได้อ่านนโยบายความเป็นส่วนตัวของเราแล้ว", + "userTermsAccepted": "ยอมรับข้อกำหนดแล้ว", "loginTitle": "เข้าสู่ระบบ", "loginLanguage": "ภาษา", "loginReset": "รีเซ็ตรหัสผ่าน", @@ -330,6 +337,7 @@ "serverLogoInverted": "กลับด้านภาพโลโก้แล้ว", "serverChangeDisable": "ปิดใช้งานการเปลี่ยนแปลงเซิร์ฟเวอร์", "serverDisableShare": "ปิดใช้งานการแชร์อุปกรณ์", + "serverReboot": "Reboot", "mapTitle": "แผนที่", "mapActive": "แผนที่ที่ใช้งานอยู่", "mapOverlay": "การวางซ้อนแผนที่", @@ -554,6 +562,8 @@ "reportAverageSpeed": "ความเร็วเฉลี่ย", "reportMaximumSpeed": "ความเร็วสูงสุด", "reportEngineHours": "เวลาการทำงานเครื่องยนต์", + "reportStartEngineHours": "จำนวนชั่วโมงเครื่องยนต์ทำงาน", + "reportEndEngineHours": "จำนวนชั่วโมงเครื่องยนต์หยุดทำงาน", "reportDuration": "ช่วงเวลา", "reportStartDate": "วันที่เริ่ม", "reportStartTime": "เวลาเริ่มต้น", diff --git a/src/resources/l10n/tr.json b/src/resources/l10n/tr.json index ff534af7..252e9919 100644 --- a/src/resources/l10n/tr.json +++ b/src/resources/l10n/tr.json @@ -4,6 +4,7 @@ "sharedSave": "Kaydet", "sharedUpload": "Upload", "sharedSet": "Belirle", + "sharedAccept": "Accept", "sharedCancel": "İptal", "sharedCopy": "Copy", "sharedAdd": "Ekle", @@ -34,6 +35,7 @@ "sharedName": "İsim", "sharedDescription": "Açıklama", "sharedSearch": "Arama", + "sharedPriority": "Priority", "sharedIconScale": "Simge Ölçeği", "sharedGeofence": "Güvenli Bölge", "sharedGeofences": "Güvenli Bölgeler", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Bir dosyayı buraya sürükleyip bırakın veya tıklayın", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Basit", "calendarRecurrence": "Recurrence", "calendarOnce": "Bir kere", @@ -179,6 +182,10 @@ "userToken": "Kullanıcı Anahtarı", "userDeleteAccount": "Hesabı sil", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Oturum aç", "loginLanguage": "Lisan", "loginReset": "Şifreyi yenile", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Harita", "mapActive": "Aktif Haritalar", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Ortalama Hız", "reportMaximumSpeed": "En Fazla Hız", "reportEngineHours": "Motor Saatleri", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Süre", "reportStartDate": "Başlangıç Tarihi", "reportStartTime": "Başlama Zamanı", diff --git a/src/resources/l10n/uk.json b/src/resources/l10n/uk.json index 5e013dc6..9e7a11c2 100644 --- a/src/resources/l10n/uk.json +++ b/src/resources/l10n/uk.json @@ -4,6 +4,7 @@ "sharedSave": "Зберегти", "sharedUpload": "Upload", "sharedSet": "Встановити", + "sharedAccept": "Accept", "sharedCancel": "Відміна", "sharedCopy": "Copy", "sharedAdd": "Додати", @@ -34,6 +35,7 @@ "sharedName": "Назва пристрою", "sharedDescription": "Опис", "sharedSearch": "Пошук", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Геозон", "sharedGeofences": "Геозони", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Ключ", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Логiн", "loginLanguage": "Мова", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Карта", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Середня швидкість", "reportMaximumSpeed": "Максимальна швидкість", "reportEngineHours": "Мотогодинник", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Тривалість", "reportStartDate": "Start Date", "reportStartTime": "Початковий час", diff --git a/src/resources/l10n/uz.json b/src/resources/l10n/uz.json index 51b9364d..8f9c28e2 100644 --- a/src/resources/l10n/uz.json +++ b/src/resources/l10n/uz.json @@ -4,6 +4,7 @@ "sharedSave": "Сақлаш", "sharedUpload": "Upload", "sharedSet": "Ўрнатиш", + "sharedAccept": "Accept", "sharedCancel": "Бекор қилиш", "sharedCopy": "Copy", "sharedAdd": "Қўшиш", @@ -34,6 +35,7 @@ "sharedName": "Исм", "sharedDescription": "Тавсиф", "sharedSearch": "Қидирув", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Геозона", "sharedGeofences": "Геозоналар", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Калит", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Кириш", "loginLanguage": "Тил", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Харита", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Ўртача тезлик", "reportMaximumSpeed": "Максимал тезлик", "reportEngineHours": "Мотосоат", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Узунлиги", "reportStartDate": "Start Date", "reportStartTime": "Бошланиш вақти", diff --git a/src/resources/l10n/vi.json b/src/resources/l10n/vi.json index 87f0e236..e4cc407b 100644 --- a/src/resources/l10n/vi.json +++ b/src/resources/l10n/vi.json @@ -4,6 +4,7 @@ "sharedSave": "Lưu", "sharedUpload": "Upload", "sharedSet": "Thiết lập", + "sharedAccept": "Accept", "sharedCancel": "Hủy", "sharedCopy": "Copy", "sharedAdd": "Thêm mới", @@ -34,6 +35,7 @@ "sharedName": "Tên", "sharedDescription": "Mô tả", "sharedSearch": "Tìm kiếm", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Giới hạn địa lý", "sharedGeofences": "Giới hạn địa lý", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Đăng nhập", "loginLanguage": "Ngôn ngữ", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Bản đồ", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Tốc độ trung bình", "reportMaximumSpeed": "Tốc độ cao nhất", "reportEngineHours": "Thời gian nổ máy", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Khoảng thời gian", "reportStartDate": "Start Date", "reportStartTime": "Thời gian bắt đầu", diff --git a/src/resources/l10n/zh.json b/src/resources/l10n/zh.json index 65d9e723..df05c0e0 100644 --- a/src/resources/l10n/zh.json +++ b/src/resources/l10n/zh.json @@ -4,6 +4,7 @@ "sharedSave": "保存", "sharedUpload": "上传", "sharedSet": "设置", + "sharedAccept": "接受", "sharedCancel": "取消", "sharedCopy": "复制", "sharedAdd": "添加", @@ -34,6 +35,7 @@ "sharedName": "名称", "sharedDescription": "描述", "sharedSearch": "搜索", + "sharedPriority": "Priority", "sharedIconScale": "图标比例", "sharedGeofence": "围栏", "sharedGeofences": "围栏", @@ -103,6 +105,7 @@ "sharedDropzoneText": "将文件拖放到此处或者单击", "sharedLogs": "日志", "sharedLink": "关联", + "sharedEmulator": "Emulator", "calendarSimple": "简单", "calendarRecurrence": "复现", "calendarOnce": "单次", @@ -179,6 +182,10 @@ "userToken": "令牌", "userDeleteAccount": "删除账户", "userTemporary": "暂时", + "userTerms": "服务条款", + "userPrivacy": "隐私政策", + "userTermsPrompt": "点击“接受”,表示您同意我们的服务条款,并确认您已阅读我们的隐私政策。", + "userTermsAccepted": "接受条款", "loginTitle": "登录", "loginLanguage": "语言", "loginReset": "密码重设", @@ -330,6 +337,7 @@ "serverLogoInverted": "倒置标识图片", "serverChangeDisable": "禁用服务器更改", "serverDisableShare": "禁用设备共享", + "serverReboot": "Reboot", "mapTitle": "地图", "mapActive": "已选地图", "mapOverlay": "地图叠层", @@ -448,7 +456,7 @@ "commandMessage": "消息", "commandRadius": "半径", "commandEnable": "开启", - "commandData": "日期", + "commandData": "数据", "commandIndex": "索引", "commandPhone": "电话号码", "commandServer": "服务器", @@ -554,6 +562,8 @@ "reportAverageSpeed": "平均速度", "reportMaximumSpeed": "最大速度", "reportEngineHours": "发动机使用时间", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "持续时间", "reportStartDate": "开始日期", "reportStartTime": "开始时间", diff --git a/src/resources/l10n/zh_TW.json b/src/resources/l10n/zh_TW.json index 10cb88a8..eca52c09 100644 --- a/src/resources/l10n/zh_TW.json +++ b/src/resources/l10n/zh_TW.json @@ -4,6 +4,7 @@ "sharedSave": "存檔", "sharedUpload": "上傳", "sharedSet": "設定", + "sharedAccept": "Accept", "sharedCancel": "取消", "sharedCopy": "Copy", "sharedAdd": "新增", @@ -34,6 +35,7 @@ "sharedName": "名稱", "sharedDescription": "描述", "sharedSearch": "搜尋", + "sharedPriority": "Priority", "sharedIconScale": "圖標比例", "sharedGeofence": "地理圍籬", "sharedGeofences": "地理圍籬", @@ -103,6 +105,7 @@ "sharedDropzoneText": "將文件拖放到此處或者點擊", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "簡單", "calendarRecurrence": "復現", "calendarOnce": "僅一次", @@ -179,6 +182,10 @@ "userToken": "簽證", "userDeleteAccount": "刪除帳號", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "登入", "loginLanguage": "語言", "loginReset": "密碼重設", @@ -330,6 +337,7 @@ "serverLogoInverted": "倒置 Logo 圖片", "serverChangeDisable": "禁改伺服器", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "地圖", "mapActive": "啟用地圖", "mapOverlay": "地圖疊層", @@ -554,6 +562,8 @@ "reportAverageSpeed": "平均速率", "reportMaximumSpeed": "最高速率", "reportEngineHours": "引擎時數", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "持續時間", "reportStartDate": "起始日期", "reportStartTime": "起始時間", diff --git a/src/settings/AnnouncementPage.jsx b/src/settings/AnnouncementPage.jsx index 39488f02..87ccd498 100644 --- a/src/settings/AnnouncementPage.jsx +++ b/src/settings/AnnouncementPage.jsx @@ -62,7 +62,7 @@ const AnnouncementPage = () => { <SelectField value={notificator} onChange={(e) => setNotificator(e.target.value)} - endpoint="/api/notifications/notificators" + endpoint="/api/notifications/notificators?announcement=true" keyGetter={(it) => it.type} titleGetter={(it) => t(prefixString('notificator', it.type))} label={t('notificationNotificators')} diff --git a/src/settings/CalendarPage.jsx b/src/settings/CalendarPage.jsx index 8a3dc986..9dac9b95 100644 --- a/src/settings/CalendarPage.jsx +++ b/src/settings/CalendarPage.jsx @@ -178,7 +178,7 @@ const CalendarPage = () => { {rule.frequency === 'WEEKLY' ? ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'].map((it) => ( <MenuItem key={it} value={it.substring(0, 2).toUpperCase()}>{t(prefixString('calendar', it))}</MenuItem> )) : Array.from({ length: 31 }, (_, i) => i + 1).map((it) => ( - <MenuItem key={it} value={it}>{it}</MenuItem> + <MenuItem key={it} value={String(it)}>{it}</MenuItem> ))} </Select> </FormControl> diff --git a/src/settings/ComputedAttributePage.jsx b/src/settings/ComputedAttributePage.jsx index 1b19033c..bd236688 100644 --- a/src/settings/ComputedAttributePage.jsx +++ b/src/settings/ComputedAttributePage.jsx @@ -142,6 +142,21 @@ const ComputedAttributePage = () => { <Accordion> <AccordionSummary expandIcon={<ExpandMoreIcon />}> <Typography variant="subtitle1"> + {t('sharedExtra')} + </Typography> + </AccordionSummary> + <AccordionDetails className={classes.details}> + <TextField + type="number" + value={item.priority || 0} + onChange={(e) => setItem({ ...item, priority: Number(e.target.value) })} + label={t('sharedPriority')} + /> + </AccordionDetails> + </Accordion> + <Accordion> + <AccordionSummary expandIcon={<ExpandMoreIcon />}> + <Typography variant="subtitle1"> {t('sharedTest')} </Typography> </AccordionSummary> diff --git a/src/settings/DevicesPage.jsx b/src/settings/DevicesPage.jsx index c0da0ba7..831736e4 100644 --- a/src/settings/DevicesPage.jsx +++ b/src/settings/DevicesPage.jsx @@ -13,7 +13,6 @@ import CollectionFab from './components/CollectionFab'; import CollectionActions from './components/CollectionActions'; import TableShimmer from '../common/components/TableShimmer'; import SearchHeader, { filterByKeyword } from './components/SearchHeader'; -import { usePreference } from '../common/util/preferences'; import { formatTime } from '../common/util/formatter'; import { useDeviceReadonly } from '../common/util/permissions'; import useSettingsStyles from './common/useSettingsStyles'; @@ -25,8 +24,6 @@ const DevicesPage = () => { const groups = useSelector((state) => state.groups.items); - const hours12 = usePreference('twelveHourFormat'); - const deviceReadonly = useDeviceReadonly(); const [timestamp, setTimestamp] = useState(Date.now()); @@ -84,7 +81,7 @@ const DevicesPage = () => { <TableCell>{item.phone}</TableCell> <TableCell>{item.model}</TableCell> <TableCell>{item.contact}</TableCell> - <TableCell>{formatTime(item.expirationTime, 'date', hours12)}</TableCell> + <TableCell>{formatTime(item.expirationTime, 'date')}</TableCell> <TableCell className={classes.columnAction} padding="none"> <CollectionActions itemId={item.id} diff --git a/src/settings/MaintenancePage.jsx b/src/settings/MaintenancePage.jsx index 491a0d3b..c88c1ced 100644 --- a/src/settings/MaintenancePage.jsx +++ b/src/settings/MaintenancePage.jsx @@ -53,11 +53,14 @@ const MaintenancePage = () => { setLabels({ ...labels, start: null, period: t('sharedDays') }); } else if (attribute && attribute.dataType) { switch (attribute.dataType) { + case 'speed': + setLabels({ ...labels, start: t(prefixString('shared', speedUnit)), period: t(prefixString('shared', speedUnit)) }); + break; case 'distance': setLabels({ ...labels, start: t(prefixString('shared', distanceUnit)), period: t(prefixString('shared', distanceUnit)) }); break; - case 'speed': - setLabels({ ...labels, start: t(prefixString('shared', speedUnit)), period: t(prefixString('shared', speedUnit)) }); + case 'hours': + setLabels({ ...labels, start: t('sharedHours'), period: t('sharedHours') }); break; default: setLabels({ ...labels, start: null, period: null }); @@ -82,6 +85,8 @@ const MaintenancePage = () => { return speedFromKnots(value, speedUnit); case 'distance': return distanceFromMeters(value, distanceUnit); + case 'hours': + return value / 3600000; default: return value; } @@ -102,6 +107,8 @@ const MaintenancePage = () => { return speedToKnots(value, speedUnit); case 'distance': return distanceToMeters(value, distanceUnit); + case 'hours': + return value * 3600000; default: return value; } diff --git a/src/settings/MaintenancesPage.jsx b/src/settings/MaintenancesPage.jsx index 9241eb3e..4a78c057 100644 --- a/src/settings/MaintenancesPage.jsx +++ b/src/settings/MaintenancesPage.jsx @@ -57,6 +57,8 @@ const MaintenacesPage = () => { return formatSpeed(value, speedUnit, t); case 'distance': return formatDistance(value, distanceUnit, t); + case 'hours': + return `${value / 3600000} ${t('sharedHours')}`; default: return value; } diff --git a/src/settings/PreferencesPage.jsx b/src/settings/PreferencesPage.jsx index 2d6df62f..3b7fcaed 100644 --- a/src/settings/PreferencesPage.jsx +++ b/src/settings/PreferencesPage.jsx @@ -18,7 +18,7 @@ import useMapStyles from '../map/core/useMapStyles'; import useMapOverlays from '../map/overlay/useMapOverlays'; import { useCatch } from '../reactHelper'; import { sessionActions } from '../store'; -import { useRestriction } from '../common/util/permissions'; +import { useAdministrator, useRestriction } from '../common/util/permissions'; import useSettingsStyles from './common/useSettingsStyles'; const deviceFields = [ @@ -35,6 +35,7 @@ const PreferencesPage = () => { const navigate = useNavigate(); const t = useTranslation(); + const admin = useAdministrator(); const readonly = useRestriction('readonly'); const user = useSelector((state) => state.session.user); @@ -86,6 +87,13 @@ const PreferencesPage = () => { } }); + const handleReboot = useCatch(async () => { + const response = await fetch('/api/server/reboot', { method: 'POST' }); + if (!response.ok) { + throw Error(await response.text()); + } + }); + return ( <PageLayout menu={<SettingsMenu />} breadcrumbs={['settingsTitle', 'sharedPreferences']}> <Container maxWidth="xs" className={classes.container}> @@ -149,7 +157,7 @@ const PreferencesPage = () => { freeSolo options={Object.keys(positionAttributes)} getOptionLabel={(option) => (positionAttributes[option]?.name || option)} - value={attributes.positionItems?.split(',') || ['speed', 'address', 'totalDistance', 'course']} + value={attributes.positionItems?.split(',') || ['fixTime', 'address', 'speed', 'totalDistance']} onChange={(_, option) => { setAttributes({ ...attributes, positionItems: option.join(',') }); }} @@ -345,6 +353,22 @@ const PreferencesPage = () => { label={t('settingsConnection')} disabled /> + <Button + variant="outlined" + color="primary" + onClick={() => navigate('/emulator')} + > + {t('sharedEmulator')} + </Button> + {admin && ( + <Button + variant="outlined" + color="error" + onClick={handleReboot} + > + {t('serverReboot')} + </Button> + )} </AccordionDetails> </Accordion> <div className={classes.buttons}> diff --git a/src/settings/ServerPage.jsx b/src/settings/ServerPage.jsx index 0ac76334..26258733 100644 --- a/src/settings/ServerPage.jsx +++ b/src/settings/ServerPage.jsx @@ -191,10 +191,6 @@ const ServerPage = () => { /> <FormGroup> <FormControlLabel - control={<Checkbox checked={item.twelveHourFormat} onChange={(event) => setItem({ ...item, twelveHourFormat: event.target.checked })} />} - label={t('settingsTwelveHourFormat')} - /> - <FormControlLabel control={<Checkbox checked={item.forceSettings} onChange={(event) => setItem({ ...item, forceSettings: event.target.checked })} />} label={t('serverForceSettings')} /> diff --git a/src/settings/UserPage.jsx b/src/settings/UserPage.jsx index 6748dd31..03a016c1 100644 --- a/src/settings/UserPage.jsx +++ b/src/settings/UserPage.jsx @@ -270,12 +270,6 @@ const UserPage = () => { onChange={(e) => setItem({ ...item, poiLayer: e.target.value })} label={t('mapPoiLayer')} /> - <FormGroup> - <FormControlLabel - control={<Checkbox checked={item.twelveHourFormat} onChange={(e) => setItem({ ...item, twelveHourFormat: e.target.checked })} />} - label={t('settingsTwelveHourFormat')} - /> - </FormGroup> </AccordionDetails> </Accordion> <Accordion> diff --git a/src/settings/UsersPage.jsx b/src/settings/UsersPage.jsx index 2941965b..030f6a18 100644 --- a/src/settings/UsersPage.jsx +++ b/src/settings/UsersPage.jsx @@ -15,7 +15,6 @@ import CollectionActions from './components/CollectionActions'; import TableShimmer from '../common/components/TableShimmer'; import { useManager } from '../common/util/permissions'; import SearchHeader, { filterByKeyword } from './components/SearchHeader'; -import { usePreference } from '../common/util/preferences'; import useSettingsStyles from './common/useSettingsStyles'; const UsersPage = () => { @@ -25,8 +24,6 @@ const UsersPage = () => { const manager = useManager(); - const hours12 = usePreference('twelveHourFormat'); - const [timestamp, setTimestamp] = useState(Date.now()); const [items, setItems] = useState([]); const [searchKeyword, setSearchKeyword] = useState(''); @@ -91,7 +88,7 @@ const UsersPage = () => { <TableCell>{item.email}</TableCell> <TableCell>{formatBoolean(item.administrator, t)}</TableCell> <TableCell>{formatBoolean(item.disabled, t)}</TableCell> - <TableCell>{formatTime(item.expirationTime, 'date', hours12)}</TableCell> + <TableCell>{formatTime(item.expirationTime, 'date')}</TableCell> <TableCell className={classes.columnAction} padding="none"> <CollectionActions itemId={item.id} diff --git a/src/store/devices.js b/src/store/devices.js index f2f6263b..130b11c8 100644 --- a/src/store/devices.js +++ b/src/store/devices.js @@ -15,14 +15,13 @@ const { reducer, actions } = createSlice({ update(state, action) { action.payload.forEach((item) => state.items[item.id] = item); }, - select(state, action) { - state.selectedId = action.payload; - }, selectId(state, action) { + state.selectTime = Date.now(); state.selectedId = action.payload; state.selectedIds = state.selectedId ? [state.selectedId] : []; }, selectIds(state, action) { + state.selectTime = Date.now(); state.selectedIds = action.payload; [state.selectedId] = state.selectedIds; }, diff --git a/tools/translate.py b/tools/translate.py index 6fe22a92..14f19f45 100755 --- a/tools/translate.py +++ b/tools/translate.py @@ -26,5 +26,5 @@ for language in languages: print(language.code) url = transifex_api.ResourceTranslationsAsyncDownload.download(resource=resource, language=language) result = requests.get(url) - with open('..//src/resources/l10n/' + language.code + '.json', "w") as file: + with open('../src/resources/l10n/' + language.code + '.json', "w") as file: file.write(result.text) |