diff --git a/Extra Data/Addon_Texts.txt b/Extra Data/Addon_Texts.txt new file mode 100644 index 000000000..4a80ad9d3 --- /dev/null +++ b/Extra Data/Addon_Texts.txt @@ -0,0 +1,25 @@ +Add the following to your Texts json , and ofcourse when you are not Dutch change it to your lang. : + + "widget.chooser.checkall": "Selecteer meubels", + "widget.chooser.btn.pickall": "pak de geselecteerde items op!", + "gamecenter.players": "Spelers", + "gamecenter.players.2to6": "2 to 6 spelers", + "gamecenter.players.2to8": "2 to 8 spelers", + "gamecenter.players.4to12": "4 to 12 spelers", + "gamecenter.players.single": "Één speler", + "gamecenter.players.score": "Score:", + "gamecenter.players.theme": "Thema:", + "gamecenter.players.winner": "Winnaar!", + "gamecenter.amongus.description": "Among Us is een multiplayergame waarbij 4-10 spelers gestrand zijn op een ruimteschip in de ruimte. Elke speler heeft zijn eigen rol, als bemanningslid of bedrieger.", + "gamecenter.tombrunner.description": "Deze schatzoeker is vastbesloten om zoveel mogelijk oude munten te vinden terwijl hij door eeuwenoude gangen loopt en over enorme scheuren springt. Op je reis door dit eindeloze 3D-hardloopspel kom je ook onstabiele en kwetsbare bruggen tegen. Ontdek hoe lang je kunt overleven.", + "gamecenter.flappybirds.description": "Flappy Bird is een spel in arcadestijl waarin we de Faby-vogel besturen die naar rechts beweegt. Het is jouw taak om Faby door pijpen te loodsen die op willekeurige hoogte gelijke openingen hebben.", + "gamecenter.bargame.description": "Toon uw vaardigheden door in de beste bar van het hotel te werken en de beste drankjes te serveren aan de meest veeleisende klanten. Probeer de ober te zijn met de beste vaardigheden die glazen aflevert om het spel te winnen en demonstreer je vaardigheden bij het werken met cocktails.", + "gamecenter.roombuildergame.description": "Ben jij goed in het bouwen van kamers? Heb je voldoende fantasie? Ga de strijd aan en bouw in minder dan 6 minuten een kamer rond een thema. De mooiste kamer wint!", + "gamecenter.vote.description": "Stem op de kamers", + "gamecenter.vote.room.made.by": "Kamer gemaakt door", + "gamecenter.vote.room.bestihaveseen": "Dit is de mooiste kamer die ik ooit heb gezien!", + "gamecenter.vote.room.nice": "Prima kamer, leuk gedaan.", + "gamecenter.vote.room.normal": "Een OK kamer, niet slecht en niet super cool.", + "gamecenter.vote.room.couldbebetter": "Dit had veel beter gekund", + "gamecenter.vote.room.bad": "Help waar is de uitgang, mijn ogen doen pijn!", + "gamecenter.vote.room.wait": "De andere spelers zijn nu aan het stemmen op jou kamer, even geduld!", \ No newline at end of file diff --git a/README.md b/README.md index 98b590ef5..942c42acf 100644 --- a/README.md +++ b/README.md @@ -74,3 +74,10 @@ yarn build:prod - A `dist` folder will be generated, these are the files that must be uploaded to your webserver - Consult your CMS documentation for compatibility with Nitro and how to add the production files + + +# Custom Changes +Make the following changes + - ExternalTesxts.json + `"room.mute.button.text": "Hide chat",` + `"room.unmute.button.text": "Unhide chat",` \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 1ff87c5ab..000000000 --- a/package-lock.json +++ /dev/null @@ -1,4903 +0,0 @@ -{ - "name": "nitro-react", - "version": "2.1.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "nitro-react", - "version": "2.1.1", - "dependencies": { - "@nitrots/nitro-renderer": "^1.6.6", - "@tanstack/react-virtual": "^3.0.0-alpha.0", - "react": "^18.2.0", - "react-bootstrap": "^2.2.2", - "react-dom": "^18.2.0", - "react-icons": "^4.7.1", - "react-slider": "^2.0.0", - "react-youtube": "^7.13.1", - "typescript": "^4.3.5", - "use-between": "^1.3.4" - }, - "devDependencies": { - "@types/node": "^18.6.1", - "@types/react": "^18.0.15", - "@types/react-dom": "^18.0.6", - "@types/react-slider": "^1.3.1", - "@typescript-eslint/eslint-plugin": "^5.30.7", - "@typescript-eslint/parser": "^5.30.7", - "@vitejs/plugin-react": "^3.0.0", - "eslint": "^8.20.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.6.0", - "eslint-plugin-react": "^7.30.1", - "eslint-plugin-react-hooks": "^4.6.0", - "sass": "^1.56.2", - "vite": "^4.0.1" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", - "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", - "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.5", - "@babel/parser": "^7.20.5", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", - "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.5", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", - "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", - "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", - "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", - "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz", - "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==", - "dev": true, - "dependencies": { - "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", - "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.5", - "@babel/types": "^7.20.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", - "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.7.tgz", - "integrity": "sha512-yhzDbiVcmq6T1/XEvdcJIVcXHdLjDJ5cQ0Dp9R9p9ERMBTeO1dR5tc8YYv8zwDeBw1xZm+Eo3MRo8cwclhBS0g==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.7.tgz", - "integrity": "sha512-tYFw0lBJSEvLoGzzYh1kXuzoX1iPkbOk3O29VqzQb0HbOy7t/yw1hGkvwoJhXHwzQUPsShyYcTgRf6bDBcfnTw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.7.tgz", - "integrity": "sha512-3P2OuTxwAtM3k/yEWTNUJRjMPG1ce8rXs51GTtvEC5z1j8fC1plHeVVczdeHECU7aM2/Buc0MwZ6ciM/zysnWg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.7.tgz", - "integrity": "sha512-VUb9GK23z8jkosHU9yJNUgQpsfJn+7ZyBm6adi2Ec5/U241eR1tAn82QicnUzaFDaffeixiHwikjmnec/YXEZg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.7.tgz", - "integrity": "sha512-duterlv3tit3HI9vhzMWnSVaB1B6YsXpFq1Ntd6Fou82BB1l4tucYy3FI9dHv3tvtDuS0NiGf/k6XsdBqPZ01w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.7.tgz", - "integrity": "sha512-9kkycpBFes/vhi7B7o0cf+q2WdJi+EpVzpVTqtWFNiutARWDFFLcB93J8PR1cG228sucsl3B+7Ts27izE6qiaQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.7.tgz", - "integrity": "sha512-5Ahf6jzWXJ4J2uh9dpy5DKOO+PeRUE/9DMys6VuYfwgQzd6n5+pVFm58L2Z2gRe611RX6SdydnNaiIKM3svY7g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.7.tgz", - "integrity": "sha512-QqJnyCfu5OF78Olt7JJSZ7OSv/B4Hf+ZJWp4kkq9xwMsgu7yWq3crIic8gGOpDYTqVKKMDAVDgRXy5Wd/nWZyQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.7.tgz", - "integrity": "sha512-2wv0xYDskk2+MzIm/AEprDip39a23Chptc4mL7hsHg26P0gD8RUhzmDu0KCH2vMThUI1sChXXoK9uH0KYQKaDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.7.tgz", - "integrity": "sha512-APVYbEilKbD5ptmKdnIcXej2/+GdV65TfTjxR2Uk8t1EsOk49t6HapZW6DS/Bwlvh5hDwtLapdSumIVNGxgqLg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.7.tgz", - "integrity": "sha512-5wPUAGclplQrAW7EFr3F84Y/d++7G0KykohaF4p54+iNWhUnMVU8Bh2sxiEOXUy4zKIdpHByMgJ5/Ko6QhtTUw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.7.tgz", - "integrity": "sha512-hxzlXtWF6yWfkE/SMTscNiVqLOAn7fOuIF3q/kiZaXxftz1DhZW/HpnTmTTWrzrS7zJWQxHHT4QSxyAj33COmA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.7.tgz", - "integrity": "sha512-WM83Dac0LdXty5xPhlOuCD5Egfk1xLND/oRLYeB7Jb/tY4kzFSDgLlq91wYbHua/s03tQGA9iXvyjgymMw62Vw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.7.tgz", - "integrity": "sha512-3nkNnNg4Ax6MS/l8O8Ynq2lGEVJYyJ2EoY3PHjNJ4PuZ80EYLMrFTFZ4L/Hc16AxgtXKwmNP9TM0YKNiBzBiJQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.7.tgz", - "integrity": "sha512-3SA/2VJuv0o1uD7zuqxEP+RrAyRxnkGddq0bwHQ98v1KNlzXD/JvxwTO3T6GM5RH6JUd29RTVQTOJfyzMkkppA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.7.tgz", - "integrity": "sha512-xi/tbqCqvPIzU+zJVyrpz12xqciTAPMi2fXEWGnapZymoGhuL2GIWIRXg4O2v5BXaYA5TSaiKYE14L0QhUTuQg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.7.tgz", - "integrity": "sha512-NUsYbq3B+JdNKn8SXkItFvdes9qTwEoS3aLALtiWciW/ystiCKM20Fgv9XQBOXfhUHyh5CLEeZDXzLOrwBXuCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.7.tgz", - "integrity": "sha512-qjwzsgeve9I8Tbsko2FEkdSk2iiezuNGFgipQxY/736NePXDaDZRodIejYGWOlbYXugdxb0nif5yvypH6lKBmA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.7.tgz", - "integrity": "sha512-mFWDz4RoBTzPphTCkM7Kc7Qpa0o/Z01acajR+Ai7LdfKgcP/C6jYOaKwv7nKzD0+MjOT20j7You9g4ozYy1dKQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.7.tgz", - "integrity": "sha512-m39UmX19RvEIuC8sYZ0M+eQtdXw4IePDSZ78ZQmYyFaXY9krq4YzQCK2XWIJomNLtg4q+W5aXr8bW3AbqWNoVg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.7.tgz", - "integrity": "sha512-1cbzSEZA1fANwmT6rjJ4G1qQXHxCxGIcNYFYR9ctI82/prT38lnwSRZ0i5p/MVXksw9eMlHlet6pGu2/qkXFCg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.7.tgz", - "integrity": "sha512-QaQ8IH0JLacfGf5cf0HCCPnQuCTd/dAI257vXBgb/cccKGbH/6pVtI1gwhdAQ0Y48QSpTIFrh9etVyNdZY+zzw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@nitrots/nitro-renderer": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@nitrots/nitro-renderer/-/nitro-renderer-1.6.6.tgz", - "integrity": "sha512-VMxn4gAV49G1nnOrtL6koLnJglHdp83zILcKe8DTZsZXX6GOGU2wST1sSnHvdcH28KpesqrCP5dyJGKC/0ylYQ==", - "dependencies": { - "@pixi/app": "~6.5.0", - "@pixi/basis": "~6.5.0", - "@pixi/canvas-display": "~6.5.0", - "@pixi/canvas-extract": "~6.5.0", - "@pixi/canvas-renderer": "~6.5.0", - "@pixi/constants": "~6.5.0", - "@pixi/core": "~6.5.0", - "@pixi/display": "~6.5.0", - "@pixi/events": "~6.5.0", - "@pixi/extensions": "~6.5.0", - "@pixi/extract": "~6.5.0", - "@pixi/filter-alpha": "~6.5.0", - "@pixi/filter-color-matrix": "~6.5.0", - "@pixi/graphics": "~6.5.0", - "@pixi/graphics-extras": "~6.5.0", - "@pixi/interaction": "~6.5.0", - "@pixi/loaders": "~6.5.0", - "@pixi/math": "~6.5.0", - "@pixi/math-extras": "~6.5.0", - "@pixi/mixin-cache-as-bitmap": "~6.5.0", - "@pixi/mixin-get-child-by-name": "~6.5.0", - "@pixi/mixin-get-global-position": "~6.5.0", - "@pixi/polyfill": "~6.5.0", - "@pixi/runner": "~6.5.0", - "@pixi/settings": "~6.5.0", - "@pixi/sprite": "~6.5.0", - "@pixi/sprite-tiling": "~6.5.0", - "@pixi/spritesheet": "~6.5.0", - "@pixi/text": "~6.5.0", - "@pixi/ticker": "~6.5.0", - "@pixi/tilemap": "^3.2.2", - "@pixi/utils": "~6.5.0", - "gifuct-js": "^2.1.2", - "howler": "^2.2.3", - "pako": "^2.0.4" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pixi/app": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/app/-/app-6.5.8.tgz", - "integrity": "sha512-pDPkamtYDaPhscNxack+bHNqazCwrqw6cAotKyoz1mvLXeGhxqTntOcfgGLZR2fNbnY8EBmdduLvH7n2jI/LTg==", - "peerDependencies": { - "@pixi/core": "6.5.8", - "@pixi/display": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/basis": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/basis/-/basis-6.5.8.tgz", - "integrity": "sha512-j4j08fZsdg8b3F1Cs1cE478m6aVk6ix53pTrv+kxq0Givl3ctO+wwWEU07BFAuvsGGySKrhAEt4vmz78cRK9KQ==", - "peerDependencies": { - "@pixi/compressed-textures": "6.5.8", - "@pixi/constants": "6.5.8", - "@pixi/core": "6.5.8", - "@pixi/loaders": "6.5.8", - "@pixi/runner": "6.5.8", - "@pixi/settings": "6.5.8" - } - }, - "node_modules/@pixi/canvas-display": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/canvas-display/-/canvas-display-6.5.8.tgz", - "integrity": "sha512-7kgFmN2dCWBhgo+CEKpZDmgqRkYCQeHoVsyOSyxSvTqHDnMjFane1OwTBg6p4PlsE+Jn1BEx/3V2ja/XbR9XOg==", - "peerDependencies": { - "@pixi/display": "6.5.8" - } - }, - "node_modules/@pixi/canvas-extract": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/canvas-extract/-/canvas-extract-6.5.8.tgz", - "integrity": "sha512-9jRVlQpumyj0QWF9CQzsDqg7QkqYxLhX/Xu87o5bWfpwrocF6AlJJak0zc6WMLvDEJ1ZI3mNdV2P1AW9ba4+WA==", - "peerDependencies": { - "@pixi/canvas-renderer": "6.5.8", - "@pixi/core": "6.5.8", - "@pixi/display": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/canvas-renderer": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/canvas-renderer/-/canvas-renderer-6.5.8.tgz", - "integrity": "sha512-W+qp05VNtPIoE1/azAyAcYLYXONdql15ts72bsGssRvGJGmECzfhOKq389S4j9X5uVKm51CZhChE7yReWkbUEw==", - "peerDependencies": { - "@pixi/constants": "6.5.8", - "@pixi/core": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/settings": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/compressed-textures": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/compressed-textures/-/compressed-textures-6.5.8.tgz", - "integrity": "sha512-nW74kcvdEoe4a2U7Ekx4egqdH1tYKC2kCOZxKWYcUARqz26tS0ddwSRyIs05In6EChmXHXGy/MtShdueMH38TA==", - "peer": true, - "peerDependencies": { - "@pixi/constants": "6.5.8", - "@pixi/core": "6.5.8", - "@pixi/loaders": "6.5.8", - "@pixi/settings": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/constants": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-6.5.8.tgz", - "integrity": "sha512-yYRCebBPqajm1kn5f8QQTTvl7oDRDk1nppfO+JpqbrFXg0W7oqIMurec3KeG9RdZW5foOiXDoz1Gw+VtolYIEw==" - }, - "node_modules/@pixi/core": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/core/-/core-6.5.8.tgz", - "integrity": "sha512-Gconik7/PpFPMpCpOddXVIPx5C2StWKw7lQ4YX19yQ+cRRmecCea2cV0xTBtpEjjx0ilX7nBfIEuZ4zIlMmlbA==", - "dependencies": { - "@types/offscreencanvas": "^2019.6.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/pixijs" - }, - "peerDependencies": { - "@pixi/constants": "6.5.8", - "@pixi/extensions": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/runner": "6.5.8", - "@pixi/settings": "6.5.8", - "@pixi/ticker": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/display": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/display/-/display-6.5.8.tgz", - "integrity": "sha512-2K8YOG8s0iF8x/k2Q0RTFmoMJ9biI6PXEh76nH3EqUFdpyrIIgrG5aOMnCkVDvOxlgVRrKG8Q3JBHlSievTmuw==", - "peerDependencies": { - "@pixi/constants": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/settings": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/events": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/events/-/events-6.5.8.tgz", - "integrity": "sha512-9pnL1Z/YBynIEk2I5f3ZvcB+fnqxeZ0dP5m1OKZ8GpKnkZz6/2FZ9hbelyeZgW9iHUPNy98A+Nrfv4oE7lB5Dg==", - "peerDependencies": { - "@pixi/display": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/extensions": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/extensions/-/extensions-6.5.8.tgz", - "integrity": "sha512-6vEV801Vn/EkU/qjFiZ76OZWPq5KsBR2r+P5gfKv4YLnaDc3A+0IpUOJ7sLBAJqmr0iw68g6xV6MnuqVjNGjFg==" - }, - "node_modules/@pixi/extract": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-6.5.8.tgz", - "integrity": "sha512-qbuuD/iBA4J+TCBgrbMe8oDUFbCriyy9LTKEtQp+pghKD5MEMvJ3nO6Osumxqiqta2kYU6WldFLTldKyHEiQ7Q==", - "peerDependencies": { - "@pixi/core": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/filter-alpha": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-6.5.8.tgz", - "integrity": "sha512-W4IkFTLTP84H+DS9XIdBGunAEpaXLrasDc4CQBeyp4c4hBlGlzriUZp30vkmqm7GPmFhzPe7aiJtNYgUpxKQBQ==", - "peerDependencies": { - "@pixi/core": "6.5.8" - } - }, - "node_modules/@pixi/filter-color-matrix": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-6.5.8.tgz", - "integrity": "sha512-iix+a/KEi6HAwZwkUH3nkIzyLu0ln3HBuHEFLUUhug7xrQgQgGrTQZ32iWlfpJD/BZuKphIGfzlxMFfvyQmkVw==", - "peerDependencies": { - "@pixi/core": "6.5.8" - } - }, - "node_modules/@pixi/graphics": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-6.5.8.tgz", - "integrity": "sha512-DUuUXHO4t5fg+n+srMkHX38QEH3WtS1IMXtovBGFJkkopG0Z0xjxSp5XvsPPw1J//4fzkHZI5OBrlN613p9+sg==", - "peerDependencies": { - "@pixi/constants": "6.5.8", - "@pixi/core": "6.5.8", - "@pixi/display": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/sprite": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/graphics-extras": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/graphics-extras/-/graphics-extras-6.5.8.tgz", - "integrity": "sha512-RdrAucGr6etEzz64TiViPcxlEpUfwJTj62j8eMDU1BjCwSaNDs5TN3LerY/en7IRRsUsrVLMn/3z52B25P+rjQ==", - "peerDependencies": { - "@pixi/graphics": "6.5.8", - "@pixi/math": "6.5.8" - } - }, - "node_modules/@pixi/interaction": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-6.5.8.tgz", - "integrity": "sha512-uP247r0f47vo9WSpEnsUfeD1izxVGpjtg4iAyGT/02ezWse2vD1aEL8AbxFa65TL0IXOKsHEQudCVL+wjnbSKQ==", - "peerDependencies": { - "@pixi/core": "6.5.8", - "@pixi/display": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/ticker": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/loaders": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-6.5.8.tgz", - "integrity": "sha512-mj11UPKsqWaTEPMpCnFugr6heKkQeNFuVSddSwE8crg19l46zcMhk3ucpQX15RDpAdDJjtl3OraevQCHHbNENw==", - "peerDependencies": { - "@pixi/constants": "6.5.8", - "@pixi/core": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/math": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/math/-/math-6.5.8.tgz", - "integrity": "sha512-9493KEH5ITnjOZvQZbaU22lD0kcg/XhNh+309KYfwFX787zA1BN/7is06oHEgHBDb2NemqioYi6sw1WnECgQig==" - }, - "node_modules/@pixi/math-extras": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/math-extras/-/math-extras-6.5.8.tgz", - "integrity": "sha512-Vkc1OHPZKoVI89mHigAtpBma6bU3z6t4XJfXwG6RkHX/D955gtnZ80BBeu3wt482z1iMedYLgHv9eqW70ROtxg==", - "peerDependencies": { - "@pixi/math": "6.5.8" - } - }, - "node_modules/@pixi/mixin-cache-as-bitmap": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-6.5.8.tgz", - "integrity": "sha512-5TTv4w8v7guI6z3gKz5ppUCbNMRw+8RRNru/aq65qUl6kcUaJiYwQdBFJ/vJwpI9ePEScWrCuLVEc8QtX6xjNw==", - "peerDependencies": { - "@pixi/constants": "6.5.8", - "@pixi/core": "6.5.8", - "@pixi/display": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/settings": "6.5.8", - "@pixi/sprite": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/mixin-get-child-by-name": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-6.5.8.tgz", - "integrity": "sha512-b15HTdHpW4ErDBpf7wm1vvWHrTv5kQzElXrwAPBCnLgvronfSL9mL7npOUkZOybUorCoEBq/7oNVjkimsQc5gw==", - "peerDependencies": { - "@pixi/display": "6.5.8" - } - }, - "node_modules/@pixi/mixin-get-global-position": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-6.5.8.tgz", - "integrity": "sha512-Y5epEW5mRrgpDOHvfc92t0PaBgboBKXR4n/AzOOFt0h9GRNTmVKYBpUQPp/HO+r1Bxq+XbaGm1CyfkjUUxnORA==", - "peerDependencies": { - "@pixi/display": "6.5.8", - "@pixi/math": "6.5.8" - } - }, - "node_modules/@pixi/polyfill": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-6.5.8.tgz", - "integrity": "sha512-z2klHelxTZExMyO4oiLdxJMGzzXnToEIDn7Dwfy3FY+98LbxSa2dVFCgzDsYeiiS8fSMsni2Ru7aZT/DFsRDcA==", - "dependencies": { - "object-assign": "^4.1.1", - "promise-polyfill": "^8.2.0" - } - }, - "node_modules/@pixi/runner": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-6.5.8.tgz", - "integrity": "sha512-/9KVgQjTKiBa1qHdNmhP9I+AHgC/Eu9QiKcc+oakLCJtpYi79lx+nDFrpLUamIi2c7lP0hDWVe0XqlQeYmSwag==" - }, - "node_modules/@pixi/settings": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-6.5.8.tgz", - "integrity": "sha512-gmnwHkg9+tlQRuFNOdimzl73Dup2fdEo/VYaF7spT+8womE4KWAvARCBMqY/10aAx1iYeYuo5av/RfqrePB5Hg==", - "peerDependencies": { - "@pixi/constants": "6.5.8" - } - }, - "node_modules/@pixi/sprite": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-6.5.8.tgz", - "integrity": "sha512-ywvbrNgjK+K93X9cvHtDCnsBtU7B9JD/3wg+1G6v1Ktrr2E1gwVIQK1NANBrjzt6cYGphz5EqGAW68d0rMBliw==", - "peerDependencies": { - "@pixi/constants": "6.5.8", - "@pixi/core": "6.5.8", - "@pixi/display": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/settings": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/sprite-tiling": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-6.5.8.tgz", - "integrity": "sha512-PG3tiWI6uUest/d7HAz4/3I8NjpYyeMUL2WDy86nMXCJ6bLdTs/s9Nq3DLckaUsyIMTGsVbj/BXjE8LP1WDTog==", - "peerDependencies": { - "@pixi/constants": "6.5.8", - "@pixi/core": "6.5.8", - "@pixi/display": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/sprite": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/spritesheet": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-6.5.8.tgz", - "integrity": "sha512-WiJd4fKpSitD3A+/u5q8IPoHXMFT8++bsluhuJvDwzo//s0PHb9qExlF2xos7zUmekmydEFMkDnrl4+lWn2cyg==", - "peerDependencies": { - "@pixi/core": "6.5.8", - "@pixi/loaders": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/text": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/text/-/text-6.5.8.tgz", - "integrity": "sha512-7AZPj5+vWcUjK0QzQ3ehiEwEqywiWR8NhDmnnN5nRNHR9u5IOOnqCQtBTdDffYPN0uMgCi8MzUPwTJhGuyOeww==", - "peerDependencies": { - "@pixi/core": "6.5.8", - "@pixi/math": "6.5.8", - "@pixi/settings": "6.5.8", - "@pixi/sprite": "6.5.8", - "@pixi/utils": "6.5.8" - } - }, - "node_modules/@pixi/ticker": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-6.5.8.tgz", - "integrity": "sha512-7VKq5hfnRDSv6a16pATqZAmpQfEu4G171iUTloy3QZfbnPw0s3JervZSih1yJJD84GXEF4VzYB26pJ/x3arGjQ==", - "peerDependencies": { - "@pixi/extensions": "6.5.8", - "@pixi/settings": "6.5.8" - } - }, - "node_modules/@pixi/tilemap": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@pixi/tilemap/-/tilemap-3.2.2.tgz", - "integrity": "sha512-svdmMyJP63vdae3t66tCmE8IWeO/6lD1xXU+5gzfxqxJS5seTp2bm8mQok2c8PF0O6l/NYlLz6BRklOuEuHboQ==", - "peerDependencies": { - "@pixi/constants": "^6.0.4", - "@pixi/core": "^6.0.4", - "@pixi/display": "^6.0.4", - "@pixi/graphics": "^6.0.4", - "@pixi/math": "^6.0.4", - "@pixi/utils": "^6.0.4" - } - }, - "node_modules/@pixi/utils": { - "version": "6.5.8", - "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-6.5.8.tgz", - "integrity": "sha512-zLnvmVQBWPDnwkfvrSpBBF2XpWSMt+kQAsX562eqjuME63ic9M6fK4u/IaA8csdlG2wtcjBvSYWrpWmPq0bWag==", - "dependencies": { - "@types/earcut": "^2.1.0", - "earcut": "^2.2.4", - "eventemitter3": "^3.1.0", - "url": "^0.11.0" - }, - "peerDependencies": { - "@pixi/constants": "6.5.8", - "@pixi/settings": "6.5.8" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@reach/observe-rect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@reach/observe-rect/-/observe-rect-1.2.0.tgz", - "integrity": "sha512-Ba7HmkFgfQxZqqaeIWWkNK0rEhpxVQHIoVyW1YDSkGsGIXzcaW4deC8B0pZrNSSyLTdIk7y+5olKt5+g0GmFIQ==" - }, - "node_modules/@react-aria/ssr": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.4.0.tgz", - "integrity": "sha512-qzuGk14/fUyUAoW/EBwgFcuMkVNXJVGlezTgZ1HovpCZ+p9844E7MUFHE7CuzFzPEIkVeqhBNIoIu+VJJ8YCOA==", - "dependencies": { - "@babel/runtime": "^7.6.2" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@restart/hooks": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz", - "integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==", - "dependencies": { - "dequal": "^2.0.2" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@restart/ui": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.4.1.tgz", - "integrity": "sha512-J7wFOx2DcmkBqCqiZgDsggLO7faiNh4Nv1/v80FmbRgP+MYpwaVDKKXLC69DA4+ejgNIsBP5ORtC74EZqO1j8A==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@popperjs/core": "^2.11.5", - "@react-aria/ssr": "^3.2.0", - "@restart/hooks": "^0.4.7", - "@types/warning": "^3.0.0", - "dequal": "^2.0.2", - "dom-helpers": "^5.2.0", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - }, - "peerDependencies": { - "react": ">=16.14.0", - "react-dom": ">=16.14.0" - } - }, - "node_modules/@tanstack/react-virtual": { - "version": "3.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.0.0-alpha.0.tgz", - "integrity": "sha512-WpHU/dt34NwZZ8qtiE05TF+nX/b1W6qrWZarO+s8jJFpPVicrTbJKp5Bjt4eSJuk7aYw272oEfsH3ABBRgj+3A==", - "dependencies": { - "@babel/runtime": "^7.16.7", - "@reach/observe-rect": "^1.1.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": ">=16" - } - }, - "node_modules/@types/earcut": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.1.tgz", - "integrity": "sha512-w8oigUCDjElRHRRrMvn/spybSMyX8MTkKA5Dv+tS1IE/TgmNZPqUYtvYBXGY8cieSE66gm+szeK+bnbxC2xHTQ==" - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.15.tgz", - "integrity": "sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw==", - "dev": true - }, - "node_modules/@types/offscreencanvas": { - "version": "2019.7.0", - "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz", - "integrity": "sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "node_modules/@types/react": { - "version": "18.0.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", - "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.0.9", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", - "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-slider": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/react-slider/-/react-slider-1.3.1.tgz", - "integrity": "sha512-4X2yK7RyCIy643YCFL+bc6XNmcnBtt8n88uuyihvcn5G7Lut23eNQU3q3KmwF7MWIfKfsW5NxCjw0SeDZRtgaA==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "node_modules/@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.1.tgz", - "integrity": "sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.46.1", - "@typescript-eslint/type-utils": "5.46.1", - "@typescript-eslint/utils": "5.46.1", - "debug": "^4.3.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.46.1.tgz", - "integrity": "sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.46.1", - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/typescript-estree": "5.46.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.46.1.tgz", - "integrity": "sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/visitor-keys": "5.46.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.46.1.tgz", - "integrity": "sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.46.1", - "@typescript-eslint/utils": "5.46.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.46.1.tgz", - "integrity": "sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.1.tgz", - "integrity": "sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/visitor-keys": "5.46.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.46.1.tgz", - "integrity": "sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.46.1", - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/typescript-estree": "5.46.1", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.1.tgz", - "integrity": "sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.46.1", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.0.0.tgz", - "integrity": "sha512-1mvyPc0xYW5G8CHQvJIJXLoMjl5Ct3q2g5Y2s6Ccfgwm45y48LBvsla7az+GkkAtYikWQ4Lxqcsq5RHLcZgtNQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.20.5", - "@babel/plugin-transform-react-jsx-self": "^7.18.6", - "@babel/plugin-transform-react-jsx-source": "^7.19.6", - "magic-string": "^0.27.0", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.0.0" - } - }, - "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", - "dev": true - }, - "node_modules/axe-core": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.1.tgz", - "integrity": "sha512-lCZN5XRuOnpG4bpMq8v0khrWtUOn+i8lZSb6wHZH56ZfbIEv6XwJV84AAueh9/zi7qPVJ/E4yz6fmsiyOmXR4w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001441", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", - "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/core-js-pure": { - "version": "3.26.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", - "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/earcut": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/es-abstract": { - "version": "1.20.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", - "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.7.tgz", - "integrity": "sha512-P6OBFYFSQOGzfApqCeYKqfKRRbCIRsdppTXFo4aAvtiW3o8TTyiIplBvHJI171saPAiy3WlawJHCveJVIOIx1A==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.16.7", - "@esbuild/android-arm64": "0.16.7", - "@esbuild/android-x64": "0.16.7", - "@esbuild/darwin-arm64": "0.16.7", - "@esbuild/darwin-x64": "0.16.7", - "@esbuild/freebsd-arm64": "0.16.7", - "@esbuild/freebsd-x64": "0.16.7", - "@esbuild/linux-arm": "0.16.7", - "@esbuild/linux-arm64": "0.16.7", - "@esbuild/linux-ia32": "0.16.7", - "@esbuild/linux-loong64": "0.16.7", - "@esbuild/linux-mips64el": "0.16.7", - "@esbuild/linux-ppc64": "0.16.7", - "@esbuild/linux-riscv64": "0.16.7", - "@esbuild/linux-s390x": "0.16.7", - "@esbuild/linux-x64": "0.16.7", - "@esbuild/netbsd-x64": "0.16.7", - "@esbuild/openbsd-x64": "0.16.7", - "@esbuild/sunos-x64": "0.16.7", - "@esbuild/win32-arm64": "0.16.7", - "@esbuild/win32-ia32": "0.16.7", - "@esbuild/win32-x64": "0.16.7" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", - "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.15.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", - "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.18.9", - "aria-query": "^4.2.2", - "array-includes": "^3.1.5", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.4.3", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.2", - "language-tags": "^1.0.5", - "minimatch": "^3.1.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.31.11", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", - "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.8" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", - "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gifuct-js": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/gifuct-js/-/gifuct-js-2.1.2.tgz", - "integrity": "sha512-rI2asw77u0mGgwhV3qA+OEgYqaDn5UNqgs+Bx0FGwSpuqfYn+Ir6RQY5ENNQ8SbIiG/m5gVa7CD5RriO4f4Lsg==", - "dependencies": { - "js-binary-schema-parser": "^2.0.3" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/howler": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/howler/-/howler-2.2.3.tgz", - "integrity": "sha512-QM0FFkw0LRX1PR8pNzJVAY25JhIWvbKMBFM4gqk+QdV+kPXOhleWGCB6AiAF/goGjIHK2e/nIElplvjQwhr0jg==" - }, - "node_modules/ignore": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", - "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", - "dev": true - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/js-binary-schema-parser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz", - "integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg==" - }, - "node_modules/js-sdsl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", - "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true - }, - "node_modules/language-tags": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.7.tgz", - "integrity": "sha512-bSytju1/657hFjgUzPAPqszxH62ouE8nQFoFaVlIQfne4wO/wXC9A4+m8jYve7YBBvi59eq0SUpcshvG8h5Usw==", - "dev": true, - "dependencies": { - "language-subtag-registry": "^0.3.20" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/load-script": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", - "integrity": "sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.7.tgz", - "integrity": "sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.4.20", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", - "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/promise-polyfill": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", - "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==" - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types-extra": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", - "dependencies": { - "react-is": "^16.3.2", - "warning": "^4.0.0" - }, - "peerDependencies": { - "react": ">=0.14.0" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-bootstrap": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.7.0.tgz", - "integrity": "sha512-Jcrn6aUuRVBeSB6dzKODKZU1TONOdhAxu0IDm4Sv74SJUm98dMdhSotF2SNvFEADANoR+stV+7TK6SNX1wWu5w==", - "dependencies": { - "@babel/runtime": "^7.17.2", - "@restart/hooks": "^0.4.6", - "@restart/ui": "^1.4.1", - "@types/react-transition-group": "^4.4.4", - "classnames": "^2.3.1", - "dom-helpers": "^5.2.1", - "invariant": "^2.2.4", - "prop-types": "^15.8.1", - "prop-types-extra": "^1.1.0", - "react-transition-group": "^4.4.2", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - }, - "peerDependencies": { - "@types/react": ">=16.14.8", - "react": ">=16.14.0", - "react-dom": ">=16.14.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "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==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-icons": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.7.1.tgz", - "integrity": "sha512-yHd3oKGMgm7zxo3EA7H2n7vxSoiGmHk5t6Ou4bXsfcgWyhfDKMpyKfhHR6Bjnn63c+YXBLBPUql9H4wPJM6sXw==", - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-slider": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/react-slider/-/react-slider-2.0.4.tgz", - "integrity": "sha512-sWwQD01n6v+MbeLCYthJGZPc0kzOyhQHyd0bSo0edg+IAxTVQmj3Oy4SBK65eX6gNwS9meUn6Z5sIBUVmwAd9g==", - "dependencies": { - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "react": "^16 || ^17 || ^18" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/react-youtube": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/react-youtube/-/react-youtube-7.14.0.tgz", - "integrity": "sha512-SUHZ4F4pd1EHmQu0CV0KSQvAs5KHOT5cfYaq4WLCcDbU8fBo1ouTXaAOIASWbrz8fHwg+G1evfoSIYpV2AwSAg==", - "dependencies": { - "fast-deep-equal": "3.1.3", - "prop-types": "15.7.2", - "youtube-player": "5.5.2" - }, - "engines": { - "node": ">= 10.x" - }, - "peerDependencies": { - "react": ">=0.14.1" - } - }, - "node_modules/react-youtube/node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.7.4.tgz", - "integrity": "sha512-jN9rx3k5pfg9H9al0r0y1EYKSeiRANZRYX32SuNXAnKzh6cVyf4LZVto1KAuDnbHT03E1CpsgqDKaqQ8FZtgxw==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sass": { - "version": "1.56.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.2.tgz", - "integrity": "sha512-ciEJhnyCRwzlBCB+h5cCPM6ie/6f8HrhZMQOf5vlU60Y1bI1rx5Zb0vlDZvaycHsg/MqFfF1Eq2eokAa32iw8w==", - "dev": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sister": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/sister/-/sister-3.0.2.tgz", - "integrity": "sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/uncontrollable": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", - "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", - "dependencies": { - "@babel/runtime": "^7.6.3", - "@types/react": ">=16.9.11", - "invariant": "^2.2.4", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": ">=15.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" - }, - "node_modules/use-between": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/use-between/-/use-between-1.3.4.tgz", - "integrity": "sha512-jtLCBVeytJUjAc9+/r/0SREuNLyn3KO9VjvSi7eozeThPfnbOedKuH9qep/C+jgfJ9Ohx4bf714ri78Hev9BGA==", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/vite": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.1.tgz", - "integrity": "sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==", - "dev": true, - "dependencies": { - "esbuild": "^0.16.3", - "postcss": "^8.4.20", - "resolve": "^1.22.1", - "rollup": "^3.7.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/youtube-player": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/youtube-player/-/youtube-player-5.5.2.tgz", - "integrity": "sha512-ZGtsemSpXnDky2AUYWgxjaopgB+shFHgXVpiJFeNB5nWEugpW1KWYDaHKuLqh2b67r24GtP6HoSW5swvf0fFIQ==", - "dependencies": { - "debug": "^2.6.6", - "load-script": "^1.0.0", - "sister": "^3.0.0" - } - }, - "node_modules/youtube-player/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/youtube-player/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } -} diff --git a/package.json b/package.json index d0aa5eb10..535b8d5e4 100644 --- a/package.json +++ b/package.json @@ -1,40 +1,47 @@ { - "name": "nitro-react", - "version": "2.1.1", - "homepage": ".", - "private": true, - "scripts": { - "start": "vite", - "build": "vite build", - "build:prod": "npx browserslist@latest --update-db && yarn build", - "eslint": "eslint src --ext .ts,.tsx" - }, - "dependencies": { - "@nitrots/nitro-renderer": "^1.6.6", - "@tanstack/react-virtual": "^3.0.0-alpha.0", - "react": "^18.2.0", - "react-bootstrap": "^2.2.2", - "react-dom": "^18.2.0", - "react-icons": "^4.7.1", - "react-slider": "^2.0.0", - "react-youtube": "^7.13.1", - "typescript": "^4.3.5", - "use-between": "^1.3.4" - }, - "devDependencies": { - "@types/node": "^18.6.1", - "@types/react": "^18.0.15", - "@types/react-dom": "^18.0.6", - "@types/react-slider": "^1.3.1", - "@typescript-eslint/eslint-plugin": "^5.30.7", - "@typescript-eslint/parser": "^5.30.7", - "@vitejs/plugin-react": "^3.0.0", - "eslint": "^8.20.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.6.0", - "eslint-plugin-react": "^7.30.1", - "eslint-plugin-react-hooks": "^4.6.0", - "sass": "^1.56.2", - "vite": "^4.0.1" - } + "name": "nitro-react", + "version": "2.1.1", + "homepage": ".", + "private": true, + "scripts": { + "start": "vite --base=/client/ --host", + "build": "vite build --base=/client/", + "preview": "vite preview --base=/client/ --host", + "build:prod": "npx browserslist@latest --update-db && yarn build", + "eslint": "eslint src --ext .ts,.tsx" + }, + "dependencies": { + "@nitrots/nitro-renderer": "file:submodules/renderer", + "@tanstack/react-virtual": "^3.0.0-beta.60", + "react": "^18.2.0", + "react-bootstrap": "^2.7.2", + "react-color-palette": "7.1.1", + "react-confetti": "^6.1.0", + "react-countdown": "^2.3.5", + "react-dom": "^18.2.0", + "react-icons": "^5.0.1", + "react-slider": "^2.0.0", + "react-use-websocket": "^4.2.0", + "react-youtube": "^7.13.1", + "timers": "^0.1.1", + "typescript": "^4.3.5", + "use-between": "^1.3.4", + "yarn": "^1.22.19" + }, + "devDependencies": { + "@types/node": "^18.15.3", + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@types/react-slider": "^1.3.1", + "@typescript-eslint/eslint-plugin": "^5.55.0", + "@typescript-eslint/parser": "^5.55.0", + "@vitejs/plugin-react": "^4.2.1", + "eslint": "^8.36.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "sass": "1.64.2", + "vite": "^5.0.11" + } } diff --git a/src/api/avatar/AvatarEditorGridPartItem.ts b/src/api/avatar/AvatarEditorGridPartItem.ts index a3b16616d..25b9d5667 100644 --- a/src/api/avatar/AvatarEditorGridPartItem.ts +++ b/src/api/avatar/AvatarEditorGridPartItem.ts @@ -1,4 +1,4 @@ -import { AvatarFigurePartType, IAvatarImageListener, IAvatarRenderManager, IFigurePart, IFigurePartSet, IGraphicAsset, IPartColor, NitroAlphaFilter, NitroContainer, NitroSprite, TextureUtils } from '@nitrots/nitro-renderer'; +import { AvatarFigurePartType, IAvatarImageListener, IAvatarRenderManager, IFigurePart, IFigurePartSet, IGraphicAsset, IPartColor, NitroAlphaFilter, NitroContainer, NitroSprite, PartColor, TextureUtils } from '@nitrots/nitro-renderer'; import { GetAvatarRenderManager } from '../nitro'; import { FigureData } from './FigureData'; @@ -172,9 +172,11 @@ export class AvatarEditorGridPartItem implements IAvatarImageListener if(this._useColors && (part.colorLayerIndex > 0)) { - const color = this._partColors[(part.colorLayerIndex - 1)]; + /*const color = this._partColors[(part.colorLayerIndex - 1)]; - if(color) partColor = color; + if(color) partColor = color;*/ + + partColor = new PartColor(null, "FFFFFF", part.colorLayerIndex - 1); } const sprite = new NitroSprite(asset.texture); diff --git a/src/api/avatar/AvatarEditorUtilities.ts b/src/api/avatar/AvatarEditorUtilities.ts index 3626ab8e0..d09e1cc20 100644 --- a/src/api/avatar/AvatarEditorUtilities.ts +++ b/src/api/avatar/AvatarEditorUtilities.ts @@ -94,7 +94,10 @@ export class AvatarEditorUtilities while(i < colorIds.length) { - if(partColor.id === colorIds[i]) partColors[i] = partColor; + + if(partColor.id == colorIds[i]){ + partColors[i] = partColor; + } i++; } diff --git a/src/api/avatar/BodyModel.ts b/src/api/avatar/BodyModel.ts index 7cdb34cee..f0c33c7eb 100644 --- a/src/api/avatar/BodyModel.ts +++ b/src/api/avatar/BodyModel.ts @@ -24,6 +24,12 @@ export class BodyModel extends CategoryBaseModel this.updateSelectionsFromFigure(FigureData.FACE); } + public selectColorHex(category: string, colorHex: string, paletteId: number): void + { + super.selectColorHex(category, colorHex, paletteId); + } + + protected updateSelectionsFromFigure(name: string): void { if(!this._categories || !AvatarEditorUtilities.CURRENT_FIGURE) return; diff --git a/src/api/avatar/CategoryBaseModel.ts b/src/api/avatar/CategoryBaseModel.ts index 34dd93309..d7c164439 100644 --- a/src/api/avatar/CategoryBaseModel.ts +++ b/src/api/avatar/CategoryBaseModel.ts @@ -210,6 +210,19 @@ export class CategoryBaseModel implements IAvatarEditorCategoryModel AvatarEditorUtilities.CURRENT_FIGURE.savePartSetColourId(category, categoryData.getSelectedColorIds(), true); } + public selectColorHex(category: string, colorHex: string, paletteId: number): void + { + const categoryData = this._categories.get(category); + + if(!categoryData) return; + + const testSave: string = colorHex.replace("#", ""); + + categoryData.selectColorIndex(testSave, paletteId); + + AvatarEditorUtilities.CURRENT_FIGURE.savePartSetColourId(category, categoryData.getSelectedColorIds(), true); + } + public getCategoryData(category: string): CategoryData { if(!this._isInitalized) this.init(); diff --git a/src/api/avatar/CategoryData.ts b/src/api/avatar/CategoryData.ts index db82f0127..74cf0918c 100644 --- a/src/api/avatar/CategoryData.ts +++ b/src/api/avatar/CategoryData.ts @@ -1,4 +1,4 @@ -import { IPartColor } from '@nitrots/nitro-renderer'; +import { IPartColor, PartColor } from '@nitrots/nitro-renderer'; import { AvatarEditorGridColorItem } from './AvatarEditorGridColorItem'; import { AvatarEditorGridPartItem } from './AvatarEditorGridPartItem'; @@ -8,7 +8,7 @@ export class CategoryData private _parts: AvatarEditorGridPartItem[]; private _palettes: AvatarEditorGridColorItem[][]; private _selectedPartIndex: number = -1; - private _paletteIndexes: number[]; + private _paletteIndexes: any[]; constructor(name: string, partItems: AvatarEditorGridPartItem[], colorItems: AvatarEditorGridColorItem[][]) { @@ -18,7 +18,7 @@ export class CategoryData this._selectedPartIndex = -1; } - private static defaultColorId(palettes: AvatarEditorGridColorItem[], clubLevel: number): number + private static defaultColorId(palettes: AvatarEditorGridColorItem[], clubLevel: number): any { if(!palettes || !palettes.length) return -1; @@ -90,7 +90,7 @@ export class CategoryData } } - public selectColorIds(colorIds: number[]): void + public selectColorIds(colorIds: any[]): void { if(!colorIds || !this._palettes) return; @@ -104,7 +104,7 @@ export class CategoryData if(palette) { - let colorId = 0; + let colorId: any = 0; if(colorIds.length > i) { @@ -123,7 +123,7 @@ export class CategoryData { const colorItem = palette[j]; - if(colorItem.partColor.id === colorId) + if(colorItem.partColor.id == colorId) { this._paletteIndexes[i] = j; @@ -172,25 +172,31 @@ export class CategoryData return null; } - public selectColorIndex(colorIndex: number, paletteId: number): AvatarEditorGridColorItem + public selectColorIndex(colorIndex: any, paletteId: number): AvatarEditorGridColorItem { const palette = this.getPalette(paletteId); - if(!palette) return null; + if(!palette){ + return null; + } - if(palette.length <= colorIndex) return null; + /*if(palette.length <= colorIndex){ + return null; + }*/ this.deselectColorIndex(this._paletteIndexes[paletteId], paletteId); this._paletteIndexes[paletteId] = colorIndex; - const colorItem = palette[colorIndex]; + let colorItem = palette[colorIndex]; - if(!colorItem) return null; + if(!colorItem){ + colorItem = new AvatarEditorGridColorItem(new PartColor(null, colorIndex, paletteId), false) + } colorItem.isSelected = true; - this.updatePartColors(); + //this.updatePartColors(); return colorItem; } @@ -215,7 +221,7 @@ export class CategoryData colorItem.isSelected = false; } - public getSelectedColorIds(): number[] + public getSelectedColorIds(): any[] { if(!this._paletteIndexes || !this._paletteIndexes.length) return null; @@ -230,7 +236,7 @@ export class CategoryData if(!colorItem || !colorItem.partColor) return null; const colorId = colorItem.partColor.id; - const colorIds: number[] = []; + const colorIds: any[] = []; let i = 0; @@ -255,7 +261,7 @@ export class CategoryData } else { - colorIds.push(colorId); + colorIds.push(this._paletteIndexes[i]); } } @@ -285,7 +291,16 @@ export class CategoryData } else { - partColors.push(null); + const color = new PartColor(null, this._paletteIndexes[i], i) + + if(color) + { + partColors.push(color); + } + else + { + partColors.push(null); + } } i++; @@ -303,13 +318,27 @@ export class CategoryData return palette[this._paletteIndexes[paletteId]]; } - public getSelectedColorId(paletteId: number): number + public getSelectedColorId(paletteId: number): string { const colorItem = this.getSelectedColor(paletteId); if(colorItem && (colorItem.partColor)) return colorItem.partColor.id; - return 0; + return "0"; + } + + public getSelectedColorIdHex(paletteId: number): string + { + const colorItem = this.getSelectedColor(paletteId); + + if(colorItem && (colorItem.partColor)){ + return colorItem.partColor.hex; + } + else{ + + } + + return null; } public getPalette(paletteId: number): AvatarEditorGridColorItem[] @@ -333,7 +362,9 @@ export class CategoryData for(const partItem of this._parts) { - if(partItem) partItem.partColors = partColors; + if(partItem){ + partItem.partColors = partColors; + } } } @@ -405,7 +436,7 @@ export class CategoryData public stripClubColorsOverLevel(level: number): boolean { - const colorIds: number[] = []; + const colorIds: any[] = []; const partColors = this.getSelectedColors(); const colorItems = this.getPalette(0); diff --git a/src/api/avatar/FigureData.ts b/src/api/avatar/FigureData.ts index 78014d11e..2d1d5db68 100644 --- a/src/api/avatar/FigureData.ts +++ b/src/api/avatar/FigureData.ts @@ -26,7 +26,7 @@ export class FigureData public static SET_TYPES = [ FigureData.FACE, FigureData.HAIR, FigureData.HAT, FigureData.HEAD_ACCESSORIES, FigureData.EYE_ACCESSORIES, FigureData.FACE_ACCESSORIES, FigureData.JACKET, FigureData.SHIRT, FigureData.CHEST_ACCESSORIES, FigureData.CHEST_PRINTS, FigureData.TROUSERS, FigureData.SHOES, FigureData.TROUSERS ]; private _data: Map; - private _colors: Map; + private _colors: Map; private _gender: string = 'M'; private _direction: number = FigureData.DEFAULT_DIRECTION; private _avatarEffectType: number = -1; @@ -58,13 +58,13 @@ export class FigureData const setType = parts[0]; const setId = parseInt(parts[1]); - const colorIds: number[] = []; + const colorIds: any[] = []; let offset = 2; while(offset < parts.length) { - colorIds.push(parseInt(parts[offset])); + colorIds.push(parts[offset]); offset++; } @@ -85,13 +85,15 @@ export class FigureData return -1; } - public getColorIds(setType: string): number[] + public getColorIds(setType: string): string[] { const existing = this._colors.get(setType); - if(existing !== undefined) return existing; + if(existing !== undefined){ + return existing; + } - return [ AvatarEditorUtilities.avatarSetFirstSelectableColor(setType) ]; + return [ AvatarEditorUtilities.avatarSetFirstSelectableColor(setType).toLocaleString() ]; } public getFigureString(): string @@ -171,7 +173,7 @@ export class FigureData if(update) this.updateView(); } - public savePartSetColourId(setType: string, colorIds: number[], update: boolean = true): void + public savePartSetColourId(setType: string, colorIds: any[], update: boolean = true): void { switch(setType) { diff --git a/src/api/avatar/FigureGenerator.ts b/src/api/avatar/FigureGenerator.ts index b83a6616b..2f9ade1c6 100644 --- a/src/api/avatar/FigureGenerator.ts +++ b/src/api/avatar/FigureGenerator.ts @@ -76,7 +76,7 @@ export function generateRandomFigure(figureData: FigureData, gender: string, clu if(!selectedSet) continue; - let selectedColors: number[] = []; + let selectedColors: string[] = []; if(selectedSet.isColorable) { diff --git a/src/api/avatar/IAvatarEditorCategoryModel.ts b/src/api/avatar/IAvatarEditorCategoryModel.ts index dc9affae7..fdd9c8a69 100644 --- a/src/api/avatar/IAvatarEditorCategoryModel.ts +++ b/src/api/avatar/IAvatarEditorCategoryModel.ts @@ -8,6 +8,7 @@ export interface IAvatarEditorCategoryModel getCategoryData(category: string): CategoryData; selectPart(category: string, partIndex: number): void; selectColor(category: string, colorIndex: number, paletteId: number): void; + selectColorHex(category: string, colorHex: string, paletteId: number): void; hasClubSelectionsOverLevel(level: number): boolean; hasInvalidSelectedItems(ownedItems: number[]): boolean; stripClubItemsOverLevel(level: number): boolean; diff --git a/src/api/nitro/GetTicker.ts b/src/api/nitro/GetTicker.ts new file mode 100644 index 000000000..9d02551fd --- /dev/null +++ b/src/api/nitro/GetTicker.ts @@ -0,0 +1,6 @@ +import { GetNitroInstance } from './GetNitroInstance'; + +export function GetTicker() +{ + return GetNitroInstance().ticker; +} diff --git a/src/api/nitro/index.ts b/src/api/nitro/index.ts index c43e958d9..3d39e0440 100644 --- a/src/api/nitro/index.ts +++ b/src/api/nitro/index.ts @@ -8,6 +8,7 @@ export * from './GetConfiguration'; export * from './GetConnection'; export * from './GetLocalization'; export * from './GetNitroInstance'; +export * from './GetTicker'; export * from './OpenUrl'; export * from './RemoveLinkEventTracker'; export * from './room'; diff --git a/src/api/utils/RoomChatFormatter.ts b/src/api/utils/RoomChatFormatter.ts index a24cdf570..7a5ed3a1f 100644 --- a/src/api/utils/RoomChatFormatter.ts +++ b/src/api/utils/RoomChatFormatter.ts @@ -1,3 +1,5 @@ +import { GetConfiguration } from '../../api'; + const allowedColours: Map = new Map(); allowedColours.set('r', 'red'); @@ -37,39 +39,41 @@ const encodeHTML = (str: string) => }); } -export const RoomChatFormatter = (content: string) => -{ +export const RoomChatFormatter = (content: string) => { let result = ''; content = encodeHTML(content); - //content = (joypixels.shortnameToUnicode(content) as string) + content = content.replace(/\[tag\](.*?)\[\/tag\]/g, '$1'); - if(content.startsWith('@') && content.indexOf('@', 1) > -1) - { - let match = null; + // Youtube link + if (!GetConfiguration('youtube.publish.disabled', false)) { + content = content.replace( + /(?:http:\/\/|https:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?.*v=|shorts\/)?([a-zA-Z0-9_-]{11})/g, + ` +
+ YouTube IconYoutube Video has been send. +
+
Open Video
+ ` + ); + } - while((match = /@[a-zA-Z]+@/g.exec(content)) !== null) - { - const colorTag = match[0].toString(); - const colorName = colorTag.substr(1, colorTag.length - 2); - const text = content.replace(colorTag, ''); + const match = content.match(/@[a-zA-Z]+@/); + if (match) { + const colorTag = match[0].toString(); + const colorName = colorTag.substr(1, colorTag.length - 2); + const text = content.replace(colorTag, ''); - if(!allowedColours.has(colorName)) - { - result = text; - } - else - { - const color = allowedColours.get(colorName); - result = '' + text + ''; - } - break; + if (!allowedColours.has(colorName)) { + result = text; + } else { + const color = allowedColours.get(colorName); + result = `${text}`; } - } - else - { + } else { result = content; } return result; -} +} \ No newline at end of file diff --git a/src/assets/images/battleball/Battle_bomb.png b/src/assets/images/battleball/Battle_bomb.png new file mode 100644 index 000000000..3b2697de3 Binary files /dev/null and b/src/assets/images/battleball/Battle_bomb.png differ diff --git a/src/assets/images/battleball/Box_of_pins.png b/src/assets/images/battleball/Box_of_pins.png new file mode 100644 index 000000000..f47f74130 Binary files /dev/null and b/src/assets/images/battleball/Box_of_pins.png differ diff --git a/src/assets/images/battleball/Canon.png b/src/assets/images/battleball/Canon.png new file mode 100644 index 000000000..ab32e56f6 Binary files /dev/null and b/src/assets/images/battleball/Canon.png differ diff --git a/src/assets/images/battleball/Flashlight.png b/src/assets/images/battleball/Flashlight.png new file mode 100644 index 000000000..fa11f8324 Binary files /dev/null and b/src/assets/images/battleball/Flashlight.png differ diff --git a/src/assets/images/battleball/Lightbulb.png b/src/assets/images/battleball/Lightbulb.png new file mode 100644 index 000000000..9777249c4 Binary files /dev/null and b/src/assets/images/battleball/Lightbulb.png differ diff --git a/src/assets/images/battleball/Power_drill.png b/src/assets/images/battleball/Power_drill.png new file mode 100644 index 000000000..53442d11e Binary files /dev/null and b/src/assets/images/battleball/Power_drill.png differ diff --git a/src/assets/images/battleball/Spring.png b/src/assets/images/battleball/Spring.png new file mode 100644 index 000000000..4631fd53d Binary files /dev/null and b/src/assets/images/battleball/Spring.png differ diff --git a/src/assets/images/battleball/harle.png b/src/assets/images/battleball/harle.png new file mode 100644 index 000000000..c0317ab49 Binary files /dev/null and b/src/assets/images/battleball/harle.png differ diff --git a/src/assets/images/battleball/pwrup_qm.gif b/src/assets/images/battleball/pwrup_qm.gif new file mode 100644 index 000000000..76117a855 Binary files /dev/null and b/src/assets/images/battleball/pwrup_qm.gif differ diff --git a/src/assets/images/battleball/timer_0.png b/src/assets/images/battleball/timer_0.png new file mode 100644 index 000000000..79424ea3e Binary files /dev/null and b/src/assets/images/battleball/timer_0.png differ diff --git a/src/assets/images/battleball/timer_1.png b/src/assets/images/battleball/timer_1.png new file mode 100644 index 000000000..074f7a252 Binary files /dev/null and b/src/assets/images/battleball/timer_1.png differ diff --git a/src/assets/images/battleball/timer_10.png b/src/assets/images/battleball/timer_10.png new file mode 100644 index 000000000..eeeb249d5 Binary files /dev/null and b/src/assets/images/battleball/timer_10.png differ diff --git a/src/assets/images/battleball/timer_2.png b/src/assets/images/battleball/timer_2.png new file mode 100644 index 000000000..06ce50e63 Binary files /dev/null and b/src/assets/images/battleball/timer_2.png differ diff --git a/src/assets/images/battleball/timer_3.png b/src/assets/images/battleball/timer_3.png new file mode 100644 index 000000000..e17e3c163 Binary files /dev/null and b/src/assets/images/battleball/timer_3.png differ diff --git a/src/assets/images/battleball/timer_4.png b/src/assets/images/battleball/timer_4.png new file mode 100644 index 000000000..ec328a98d Binary files /dev/null and b/src/assets/images/battleball/timer_4.png differ diff --git a/src/assets/images/battleball/timer_5.png b/src/assets/images/battleball/timer_5.png new file mode 100644 index 000000000..ccdbe3920 Binary files /dev/null and b/src/assets/images/battleball/timer_5.png differ diff --git a/src/assets/images/battleball/timer_6.png b/src/assets/images/battleball/timer_6.png new file mode 100644 index 000000000..202bc4768 Binary files /dev/null and b/src/assets/images/battleball/timer_6.png differ diff --git a/src/assets/images/battleball/timer_7.png b/src/assets/images/battleball/timer_7.png new file mode 100644 index 000000000..ead2ac0c6 Binary files /dev/null and b/src/assets/images/battleball/timer_7.png differ diff --git a/src/assets/images/battleball/timer_8.png b/src/assets/images/battleball/timer_8.png new file mode 100644 index 000000000..257991bb8 Binary files /dev/null and b/src/assets/images/battleball/timer_8.png differ diff --git a/src/assets/images/battleball/timer_9.png b/src/assets/images/battleball/timer_9.png new file mode 100644 index 000000000..d751b6391 Binary files /dev/null and b/src/assets/images/battleball/timer_9.png differ diff --git a/src/assets/images/battleball/timer_default.png b/src/assets/images/battleball/timer_default.png new file mode 100644 index 000000000..cae4c4a16 Binary files /dev/null and b/src/assets/images/battleball/timer_default.png differ diff --git a/src/assets/images/boxes/ICONS.png b/src/assets/images/boxes/ICONS.png new file mode 100644 index 000000000..a8df5c4b0 Binary files /dev/null and b/src/assets/images/boxes/ICONS.png differ diff --git a/src/assets/images/boxes/Image 1356 at frame 1.png b/src/assets/images/boxes/Image 1356 at frame 1.png new file mode 100644 index 000000000..535c6ce0e Binary files /dev/null and b/src/assets/images/boxes/Image 1356 at frame 1.png differ diff --git a/src/assets/images/boxes/Image 1358 at frame 1.png b/src/assets/images/boxes/Image 1358 at frame 1.png new file mode 100644 index 000000000..f6b7c7558 Binary files /dev/null and b/src/assets/images/boxes/Image 1358 at frame 1.png differ diff --git a/src/assets/images/boxes/Image 1384 at frame 1.png b/src/assets/images/boxes/Image 1384 at frame 1.png new file mode 100644 index 000000000..ec5466e97 Binary files /dev/null and b/src/assets/images/boxes/Image 1384 at frame 1.png differ diff --git a/src/assets/images/boxes/Image 1386 at frame 1.png b/src/assets/images/boxes/Image 1386 at frame 1.png new file mode 100644 index 000000000..f13d2b3c5 Binary files /dev/null and b/src/assets/images/boxes/Image 1386 at frame 1.png differ diff --git a/src/assets/images/boxes/Image 1404 at frame 1.png b/src/assets/images/boxes/Image 1404 at frame 1.png new file mode 100644 index 000000000..f63184b6c Binary files /dev/null and b/src/assets/images/boxes/Image 1404 at frame 1.png differ diff --git a/src/assets/images/boxes/Image 1443 at frame 1.png b/src/assets/images/boxes/Image 1443 at frame 1.png new file mode 100644 index 000000000..4133a4a51 Binary files /dev/null and b/src/assets/images/boxes/Image 1443 at frame 1.png differ diff --git a/src/assets/images/boxes/Image 1444 at frame 1.png b/src/assets/images/boxes/Image 1444 at frame 1.png new file mode 100644 index 000000000..cda7bd045 Binary files /dev/null and b/src/assets/images/boxes/Image 1444 at frame 1.png differ diff --git a/src/assets/images/boxes/Mouse.png b/src/assets/images/boxes/Mouse.png new file mode 100644 index 000000000..42fa70385 Binary files /dev/null and b/src/assets/images/boxes/Mouse.png differ diff --git a/src/assets/images/boxes/UI-KIT.png b/src/assets/images/boxes/UI-KIT.png new file mode 100644 index 000000000..ebb285b96 Binary files /dev/null and b/src/assets/images/boxes/UI-KIT.png differ diff --git a/src/assets/images/boxes/UI-KIT2.png b/src/assets/images/boxes/UI-KIT2.png new file mode 100644 index 000000000..fae4a46c8 Binary files /dev/null and b/src/assets/images/boxes/UI-KIT2.png differ diff --git a/src/assets/images/boxes/boxfill.png b/src/assets/images/boxes/boxfill.png new file mode 100644 index 000000000..9c937b331 Binary files /dev/null and b/src/assets/images/boxes/boxfill.png differ diff --git a/src/assets/images/boxes/card/body.png b/src/assets/images/boxes/card/body.png new file mode 100644 index 000000000..db975abf3 Binary files /dev/null and b/src/assets/images/boxes/card/body.png differ diff --git a/src/assets/images/boxes/card/close.png b/src/assets/images/boxes/card/close.png new file mode 100644 index 000000000..b5347e31e Binary files /dev/null and b/src/assets/images/boxes/card/close.png differ diff --git a/src/assets/images/boxes/card/close_click.png b/src/assets/images/boxes/card/close_click.png new file mode 100644 index 000000000..27c54764c Binary files /dev/null and b/src/assets/images/boxes/card/close_click.png differ diff --git a/src/assets/images/boxes/card/close_hover.png b/src/assets/images/boxes/card/close_hover.png new file mode 100644 index 000000000..04d866863 Binary files /dev/null and b/src/assets/images/boxes/card/close_hover.png differ diff --git a/src/assets/images/boxes/card/dropdown.png b/src/assets/images/boxes/card/dropdown.png new file mode 100644 index 000000000..acae3a637 Binary files /dev/null and b/src/assets/images/boxes/card/dropdown.png differ diff --git a/src/assets/images/boxes/card/dropdown_button.png b/src/assets/images/boxes/card/dropdown_button.png new file mode 100644 index 000000000..876f9ee1e Binary files /dev/null and b/src/assets/images/boxes/card/dropdown_button.png differ diff --git a/src/assets/images/boxes/card/friend_req_bg.png b/src/assets/images/boxes/card/friend_req_bg.png new file mode 100644 index 000000000..8ba78fca6 Binary files /dev/null and b/src/assets/images/boxes/card/friend_req_bg.png differ diff --git a/src/assets/images/boxes/card/friend_req_pointer.png b/src/assets/images/boxes/card/friend_req_pointer.png new file mode 100644 index 000000000..27c5770c3 Binary files /dev/null and b/src/assets/images/boxes/card/friend_req_pointer.png differ diff --git a/src/assets/images/boxes/card/grey_card.png b/src/assets/images/boxes/card/grey_card.png new file mode 100644 index 000000000..39ca20554 Binary files /dev/null and b/src/assets/images/boxes/card/grey_card.png differ diff --git a/src/assets/images/boxes/card/input.png b/src/assets/images/boxes/card/input.png new file mode 100644 index 000000000..f254308f1 Binary files /dev/null and b/src/assets/images/boxes/card/input.png differ diff --git a/src/assets/images/boxes/card/mod_close.png b/src/assets/images/boxes/card/mod_close.png new file mode 100644 index 000000000..cfbd441d3 Binary files /dev/null and b/src/assets/images/boxes/card/mod_close.png differ diff --git a/src/assets/images/boxes/card/mod_window.png b/src/assets/images/boxes/card/mod_window.png new file mode 100644 index 000000000..8cf4df235 Binary files /dev/null and b/src/assets/images/boxes/card/mod_window.png differ diff --git a/src/assets/images/boxes/card/pen.png b/src/assets/images/boxes/card/pen.png new file mode 100644 index 000000000..3ca1c35f4 Binary files /dev/null and b/src/assets/images/boxes/card/pen.png differ diff --git a/src/assets/images/boxes/card/questionmark.png b/src/assets/images/boxes/card/questionmark.png new file mode 100644 index 000000000..1c9204df2 Binary files /dev/null and b/src/assets/images/boxes/card/questionmark.png differ diff --git a/src/assets/images/boxes/card/questionmark_click.png b/src/assets/images/boxes/card/questionmark_click.png new file mode 100644 index 000000000..226b1dbf3 Binary files /dev/null and b/src/assets/images/boxes/card/questionmark_click.png differ diff --git a/src/assets/images/boxes/card/questionmark_hover.png b/src/assets/images/boxes/card/questionmark_hover.png new file mode 100644 index 000000000..c0689d11e Binary files /dev/null and b/src/assets/images/boxes/card/questionmark_hover.png differ diff --git a/src/assets/images/boxes/card/room_info_bg.png b/src/assets/images/boxes/card/room_info_bg.png new file mode 100644 index 000000000..7831f6edf Binary files /dev/null and b/src/assets/images/boxes/card/room_info_bg.png differ diff --git a/src/assets/images/boxes/card/tabs.png b/src/assets/images/boxes/card/tabs.png new file mode 100644 index 000000000..9a585426b Binary files /dev/null and b/src/assets/images/boxes/card/tabs.png differ diff --git a/src/assets/images/boxes/card/tabs_active.png b/src/assets/images/boxes/card/tabs_active.png new file mode 100644 index 000000000..9f7b40088 Binary files /dev/null and b/src/assets/images/boxes/card/tabs_active.png differ diff --git a/src/assets/images/boxes/card/tabs_avatareditor.png b/src/assets/images/boxes/card/tabs_avatareditor.png new file mode 100644 index 000000000..ded2f5502 Binary files /dev/null and b/src/assets/images/boxes/card/tabs_avatareditor.png differ diff --git a/src/assets/images/boxes/card/tabs_hover.png b/src/assets/images/boxes/card/tabs_hover.png new file mode 100644 index 000000000..1c910a26a Binary files /dev/null and b/src/assets/images/boxes/card/tabs_hover.png differ diff --git a/src/assets/images/boxes/card/top.png b/src/assets/images/boxes/card/top.png new file mode 100644 index 000000000..42955b779 Binary files /dev/null and b/src/assets/images/boxes/card/top.png differ diff --git a/src/assets/images/boxes/close.png b/src/assets/images/boxes/close.png new file mode 100644 index 000000000..21bfe4c84 Binary files /dev/null and b/src/assets/images/boxes/close.png differ diff --git a/src/assets/images/buttons/accept.png b/src/assets/images/buttons/accept.png new file mode 100644 index 000000000..3e14c0552 Binary files /dev/null and b/src/assets/images/buttons/accept.png differ diff --git a/src/assets/images/buttons/button.png b/src/assets/images/buttons/button.png new file mode 100644 index 000000000..6b778ab19 Binary files /dev/null and b/src/assets/images/buttons/button.png differ diff --git a/src/assets/images/buttons/button_active.png b/src/assets/images/buttons/button_active.png new file mode 100644 index 000000000..449b5eac5 Binary files /dev/null and b/src/assets/images/buttons/button_active.png differ diff --git a/src/assets/images/buttons/button_gray.png b/src/assets/images/buttons/button_gray.png new file mode 100644 index 000000000..b2ca49c8d Binary files /dev/null and b/src/assets/images/buttons/button_gray.png differ diff --git a/src/assets/images/buttons/button_gray_active.png b/src/assets/images/buttons/button_gray_active.png new file mode 100644 index 000000000..0b60ede90 Binary files /dev/null and b/src/assets/images/buttons/button_gray_active.png differ diff --git a/src/assets/images/buttons/button_gray_hover.png b/src/assets/images/buttons/button_gray_hover.png new file mode 100644 index 000000000..c6170ec9b Binary files /dev/null and b/src/assets/images/buttons/button_gray_hover.png differ diff --git a/src/assets/images/buttons/button_hover.png b/src/assets/images/buttons/button_hover.png new file mode 100644 index 000000000..e708bbd3e Binary files /dev/null and b/src/assets/images/buttons/button_hover.png differ diff --git a/src/assets/images/buttons/button_inactive.png b/src/assets/images/buttons/button_inactive.png new file mode 100644 index 000000000..23f877e88 Binary files /dev/null and b/src/assets/images/buttons/button_inactive.png differ diff --git a/src/assets/images/buttons/button_success.png b/src/assets/images/buttons/button_success.png new file mode 100644 index 000000000..b788d0aa9 Binary files /dev/null and b/src/assets/images/buttons/button_success.png differ diff --git a/src/assets/images/buttons/button_success_active.png b/src/assets/images/buttons/button_success_active.png new file mode 100644 index 000000000..adb2d1bc1 Binary files /dev/null and b/src/assets/images/buttons/button_success_active.png differ diff --git a/src/assets/images/buttons/button_success_hover.png b/src/assets/images/buttons/button_success_hover.png new file mode 100644 index 000000000..e41d11524 Binary files /dev/null and b/src/assets/images/buttons/button_success_hover.png differ diff --git a/src/assets/images/buttons/checkbox.png b/src/assets/images/buttons/checkbox.png new file mode 100644 index 000000000..657dea8ac Binary files /dev/null and b/src/assets/images/buttons/checkbox.png differ diff --git a/src/assets/images/buttons/checkbox_checked.png b/src/assets/images/buttons/checkbox_checked.png new file mode 100644 index 000000000..606ea5ba8 Binary files /dev/null and b/src/assets/images/buttons/checkbox_checked.png differ diff --git a/src/assets/images/buttons/decline.png b/src/assets/images/buttons/decline.png new file mode 100644 index 000000000..5887342d8 Binary files /dev/null and b/src/assets/images/buttons/decline.png differ diff --git a/src/assets/images/buttons/toggle_bg.png b/src/assets/images/buttons/toggle_bg.png new file mode 100644 index 000000000..ffb1ca4b4 Binary files /dev/null and b/src/assets/images/buttons/toggle_bg.png differ diff --git a/src/assets/images/buttons/toggle_left.png b/src/assets/images/buttons/toggle_left.png new file mode 100644 index 000000000..52c4e587e Binary files /dev/null and b/src/assets/images/buttons/toggle_left.png differ diff --git a/src/assets/images/buttons/toggle_right.png b/src/assets/images/buttons/toggle_right.png new file mode 100644 index 000000000..0b28e7010 Binary files /dev/null and b/src/assets/images/buttons/toggle_right.png differ diff --git a/src/assets/images/buttons/volter_bold_btn.png b/src/assets/images/buttons/volter_bold_btn.png new file mode 100644 index 000000000..4a690a5ba Binary files /dev/null and b/src/assets/images/buttons/volter_bold_btn.png differ diff --git a/src/assets/images/buttons/volter_bold_btn_active.png b/src/assets/images/buttons/volter_bold_btn_active.png new file mode 100644 index 000000000..43b2ab110 Binary files /dev/null and b/src/assets/images/buttons/volter_bold_btn_active.png differ diff --git a/src/assets/images/buttons/volter_bold_btn_hover.png b/src/assets/images/buttons/volter_bold_btn_hover.png new file mode 100644 index 000000000..355bcce8f Binary files /dev/null and b/src/assets/images/buttons/volter_bold_btn_hover.png differ diff --git a/src/assets/images/buttons/volter_normal_btn.png b/src/assets/images/buttons/volter_normal_btn.png new file mode 100644 index 000000000..68d7468e5 Binary files /dev/null and b/src/assets/images/buttons/volter_normal_btn.png differ diff --git a/src/assets/images/buttons/volter_normal_btn_active.png b/src/assets/images/buttons/volter_normal_btn_active.png new file mode 100644 index 000000000..f7f81be60 Binary files /dev/null and b/src/assets/images/buttons/volter_normal_btn_active.png differ diff --git a/src/assets/images/buttons/volter_normal_btn_hover.png b/src/assets/images/buttons/volter_normal_btn_hover.png new file mode 100644 index 000000000..fbaf75c3e Binary files /dev/null and b/src/assets/images/buttons/volter_normal_btn_hover.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_39.png b/src/assets/images/chat/chatbubbles/bubble_39.png new file mode 100644 index 000000000..4dddcbabb Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_39.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_39_pointer.png b/src/assets/images/chat/chatbubbles/bubble_39_pointer.png new file mode 100644 index 000000000..b73b25b6e Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_39_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_40.png b/src/assets/images/chat/chatbubbles/bubble_40.png new file mode 100644 index 000000000..0c1478606 Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_40.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_40_pointer.png b/src/assets/images/chat/chatbubbles/bubble_40_pointer.png new file mode 100644 index 000000000..b73b25b6e Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_40_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_41.png b/src/assets/images/chat/chatbubbles/bubble_41.png new file mode 100644 index 000000000..e5d104979 Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_41.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_41_pointer.png b/src/assets/images/chat/chatbubbles/bubble_41_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_41_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_42.png b/src/assets/images/chat/chatbubbles/bubble_42.png new file mode 100644 index 000000000..0d0b56f1e Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_42.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_42_pointer.png b/src/assets/images/chat/chatbubbles/bubble_42_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_42_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_43.png b/src/assets/images/chat/chatbubbles/bubble_43.png new file mode 100644 index 000000000..d328a0239 Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_43.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_43_pointer.png b/src/assets/images/chat/chatbubbles/bubble_43_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_43_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_44.png b/src/assets/images/chat/chatbubbles/bubble_44.png new file mode 100644 index 000000000..9f092f7f5 Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_44.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_44_pointer.png b/src/assets/images/chat/chatbubbles/bubble_44_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_44_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_45.png b/src/assets/images/chat/chatbubbles/bubble_45.png new file mode 100644 index 000000000..79c77e461 Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_45.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_45_pointer.png b/src/assets/images/chat/chatbubbles/bubble_45_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_45_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_46.png b/src/assets/images/chat/chatbubbles/bubble_46.png new file mode 100644 index 000000000..0db754d8c Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_46.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_46_pointer.png b/src/assets/images/chat/chatbubbles/bubble_46_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_46_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_47.png b/src/assets/images/chat/chatbubbles/bubble_47.png new file mode 100644 index 000000000..7e566f451 Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_47.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_47_pointer.png b/src/assets/images/chat/chatbubbles/bubble_47_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_47_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_48.png b/src/assets/images/chat/chatbubbles/bubble_48.png new file mode 100644 index 000000000..74a575184 Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_48.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_48_pointer.png b/src/assets/images/chat/chatbubbles/bubble_48_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_48_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_49.png b/src/assets/images/chat/chatbubbles/bubble_49.png new file mode 100644 index 000000000..0dc74ec66 Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_49.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_49_pointer.png b/src/assets/images/chat/chatbubbles/bubble_49_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_49_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_50.png b/src/assets/images/chat/chatbubbles/bubble_50.png new file mode 100644 index 000000000..efe16809b Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_50.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_50_pointer.png b/src/assets/images/chat/chatbubbles/bubble_50_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_50_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_51.png b/src/assets/images/chat/chatbubbles/bubble_51.png new file mode 100644 index 000000000..9bdddcb15 Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_51.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_51_pointer.png b/src/assets/images/chat/chatbubbles/bubble_51_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_51_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_52.png b/src/assets/images/chat/chatbubbles/bubble_52.png new file mode 100644 index 000000000..baeed11c1 Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_52.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_52_pointer.png b/src/assets/images/chat/chatbubbles/bubble_52_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_52_pointer.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_53.png b/src/assets/images/chat/chatbubbles/bubble_53.png new file mode 100644 index 000000000..32eb3e42b Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_53.png differ diff --git a/src/assets/images/chat/chatbubbles/bubble_53_pointer.png b/src/assets/images/chat/chatbubbles/bubble_53_pointer.png new file mode 100644 index 000000000..fc2bead6f Binary files /dev/null and b/src/assets/images/chat/chatbubbles/bubble_53_pointer.png differ diff --git a/src/assets/images/chathistory/chathistory_toggle.png b/src/assets/images/chathistory/chathistory_toggle.png new file mode 100644 index 000000000..ac3bbd5e3 Binary files /dev/null and b/src/assets/images/chathistory/chathistory_toggle.png differ diff --git a/src/assets/images/gamecenter/amongus-description.png b/src/assets/images/gamecenter/amongus-description.png new file mode 100644 index 000000000..eb1abce4a Binary files /dev/null and b/src/assets/images/gamecenter/amongus-description.png differ diff --git a/src/assets/images/gamecenter/amongus.png b/src/assets/images/gamecenter/amongus.png new file mode 100644 index 000000000..28228611e Binary files /dev/null and b/src/assets/images/gamecenter/amongus.png differ diff --git a/src/assets/images/gamecenter/battlebanzai.png b/src/assets/images/gamecenter/battlebanzai.png new file mode 100644 index 000000000..7461b0ae0 Binary files /dev/null and b/src/assets/images/gamecenter/battlebanzai.png differ diff --git a/src/assets/images/gamecenter/battlebuild.png b/src/assets/images/gamecenter/battlebuild.png new file mode 100644 index 000000000..0b6b87a55 Binary files /dev/null and b/src/assets/images/gamecenter/battlebuild.png differ diff --git a/src/assets/images/gamecenter/defaultavatar.png b/src/assets/images/gamecenter/defaultavatar.png new file mode 100644 index 000000000..f31f3b1cd Binary files /dev/null and b/src/assets/images/gamecenter/defaultavatar.png differ diff --git a/src/assets/images/gamecenter/flappybirds-description.png b/src/assets/images/gamecenter/flappybirds-description.png new file mode 100644 index 000000000..840d2ad7f Binary files /dev/null and b/src/assets/images/gamecenter/flappybirds-description.png differ diff --git a/src/assets/images/gamecenter/flappybirds.png b/src/assets/images/gamecenter/flappybirds.png new file mode 100644 index 000000000..bd074234a Binary files /dev/null and b/src/assets/images/gamecenter/flappybirds.png differ diff --git a/src/assets/images/gamecenter/hamburger.png b/src/assets/images/gamecenter/hamburger.png new file mode 100644 index 000000000..1ef4bbd40 Binary files /dev/null and b/src/assets/images/gamecenter/hamburger.png differ diff --git a/src/assets/images/gamecenter/progressbubbles.gif b/src/assets/images/gamecenter/progressbubbles.gif new file mode 100644 index 000000000..6a113c63d Binary files /dev/null and b/src/assets/images/gamecenter/progressbubbles.gif differ diff --git a/src/assets/images/gamecenter/tombrunner-description.png b/src/assets/images/gamecenter/tombrunner-description.png new file mode 100644 index 000000000..c1063dbc0 Binary files /dev/null and b/src/assets/images/gamecenter/tombrunner-description.png differ diff --git a/src/assets/images/gamecenter/tombrunner.png b/src/assets/images/gamecenter/tombrunner.png new file mode 100644 index 000000000..b64c64e62 Binary files /dev/null and b/src/assets/images/gamecenter/tombrunner.png differ diff --git a/src/assets/images/gamecenter/winner.png b/src/assets/images/gamecenter/winner.png new file mode 100644 index 000000000..8efab7c0e Binary files /dev/null and b/src/assets/images/gamecenter/winner.png differ diff --git a/src/assets/images/icons/disablebubble.png b/src/assets/images/icons/disablebubble.png new file mode 100644 index 000000000..bbf1390d2 Binary files /dev/null and b/src/assets/images/icons/disablebubble.png differ diff --git a/src/assets/images/icons/enablebubble.png b/src/assets/images/icons/enablebubble.png new file mode 100644 index 000000000..217109c5f Binary files /dev/null and b/src/assets/images/icons/enablebubble.png differ diff --git a/src/assets/images/messenger/Chatinput.png b/src/assets/images/messenger/Chatinput.png new file mode 100644 index 000000000..73a491715 Binary files /dev/null and b/src/assets/images/messenger/Chatinput.png differ diff --git a/src/assets/images/messenger/avatar_head_bg.png b/src/assets/images/messenger/avatar_head_bg.png new file mode 100644 index 000000000..6d5fc86b4 Binary files /dev/null and b/src/assets/images/messenger/avatar_head_bg.png differ diff --git a/src/assets/images/messenger/button.png b/src/assets/images/messenger/button.png new file mode 100644 index 000000000..6e2064e8d Binary files /dev/null and b/src/assets/images/messenger/button.png differ diff --git a/src/assets/images/messenger/button_follow.png b/src/assets/images/messenger/button_follow.png new file mode 100644 index 000000000..43eb0363f Binary files /dev/null and b/src/assets/images/messenger/button_follow.png differ diff --git a/src/assets/images/messenger/button_profile.png b/src/assets/images/messenger/button_profile.png new file mode 100644 index 000000000..a88cc77d6 Binary files /dev/null and b/src/assets/images/messenger/button_profile.png differ diff --git a/src/assets/images/messenger/button_report.png b/src/assets/images/messenger/button_report.png new file mode 100644 index 000000000..f3fbdcd34 Binary files /dev/null and b/src/assets/images/messenger/button_report.png differ diff --git a/src/assets/images/messenger/chatform.png b/src/assets/images/messenger/chatform.png new file mode 100644 index 000000000..6216d1c7d Binary files /dev/null and b/src/assets/images/messenger/chatform.png differ diff --git a/src/assets/images/messenger/close.png b/src/assets/images/messenger/close.png new file mode 100644 index 000000000..9498eff3d Binary files /dev/null and b/src/assets/images/messenger/close.png differ diff --git a/src/assets/images/messenger/line.png b/src/assets/images/messenger/line.png new file mode 100644 index 000000000..ff67e560b Binary files /dev/null and b/src/assets/images/messenger/line.png differ diff --git a/src/assets/images/messenger/message_bubble.png b/src/assets/images/messenger/message_bubble.png new file mode 100644 index 000000000..587474c89 Binary files /dev/null and b/src/assets/images/messenger/message_bubble.png differ diff --git a/src/assets/images/messenger/pointer.png b/src/assets/images/messenger/pointer.png new file mode 100644 index 000000000..8ef4b7ad0 Binary files /dev/null and b/src/assets/images/messenger/pointer.png differ diff --git a/src/assets/images/messenger/pointer_right.png b/src/assets/images/messenger/pointer_right.png new file mode 100644 index 000000000..f0006e2d4 Binary files /dev/null and b/src/assets/images/messenger/pointer_right.png differ diff --git a/src/assets/images/messenger/scrollbar_frame.png b/src/assets/images/messenger/scrollbar_frame.png new file mode 100644 index 000000000..77690f8ab Binary files /dev/null and b/src/assets/images/messenger/scrollbar_frame.png differ diff --git a/src/assets/images/messenger/scrollbar_frame_bottom.png b/src/assets/images/messenger/scrollbar_frame_bottom.png new file mode 100644 index 000000000..7dceef815 Binary files /dev/null and b/src/assets/images/messenger/scrollbar_frame_bottom.png differ diff --git a/src/assets/images/messenger/scrollbar_frame_middle.png b/src/assets/images/messenger/scrollbar_frame_middle.png new file mode 100644 index 000000000..4502e1716 Binary files /dev/null and b/src/assets/images/messenger/scrollbar_frame_middle.png differ diff --git a/src/assets/images/messenger/scrollbar_frame_top.png b/src/assets/images/messenger/scrollbar_frame_top.png new file mode 100644 index 000000000..ed3f3d719 Binary files /dev/null and b/src/assets/images/messenger/scrollbar_frame_top.png differ diff --git a/src/assets/images/messenger/scrollbar_thumb.png b/src/assets/images/messenger/scrollbar_thumb.png new file mode 100644 index 000000000..b4fe5fb17 Binary files /dev/null and b/src/assets/images/messenger/scrollbar_thumb.png differ diff --git a/src/assets/images/messenger/scrollbar_thumb_middle.png b/src/assets/images/messenger/scrollbar_thumb_middle.png new file mode 100644 index 000000000..feb3af48c Binary files /dev/null and b/src/assets/images/messenger/scrollbar_thumb_middle.png differ diff --git a/src/assets/images/messenger/scrollbar_thumb_top.png b/src/assets/images/messenger/scrollbar_thumb_top.png new file mode 100644 index 000000000..46a520ecd Binary files /dev/null and b/src/assets/images/messenger/scrollbar_thumb_top.png differ diff --git a/src/assets/images/room/arrow-left.png b/src/assets/images/room/arrow-left.png new file mode 100644 index 000000000..1ca51d2c0 Binary files /dev/null and b/src/assets/images/room/arrow-left.png differ diff --git a/src/assets/images/room/arrow-right.png b/src/assets/images/room/arrow-right.png new file mode 100644 index 000000000..f7610eded Binary files /dev/null and b/src/assets/images/room/arrow-right.png differ diff --git a/src/assets/images/room/chatinput.png b/src/assets/images/room/chatinput.png new file mode 100644 index 000000000..235c3ceee Binary files /dev/null and b/src/assets/images/room/chatinput.png differ diff --git a/src/assets/images/room/chatstyles_selector.png b/src/assets/images/room/chatstyles_selector.png new file mode 100644 index 000000000..35c2f9a8c Binary files /dev/null and b/src/assets/images/room/chatstyles_selector.png differ diff --git a/src/assets/images/room/chatstyles_selector_window.png b/src/assets/images/room/chatstyles_selector_window.png new file mode 100644 index 000000000..f6357dbbc Binary files /dev/null and b/src/assets/images/room/chatstyles_selector_window.png differ diff --git a/src/assets/images/room/context_menu_arrow.png b/src/assets/images/room/context_menu_arrow.png new file mode 100644 index 000000000..f7e6a5fce Binary files /dev/null and b/src/assets/images/room/context_menu_arrow.png differ diff --git a/src/assets/images/room/context_menu_arrow_hover.png b/src/assets/images/room/context_menu_arrow_hover.png new file mode 100644 index 000000000..fe46347d0 Binary files /dev/null and b/src/assets/images/room/context_menu_arrow_hover.png differ diff --git a/src/assets/images/room/context_menu_arrow_up.png b/src/assets/images/room/context_menu_arrow_up.png new file mode 100644 index 000000000..82001bc26 Binary files /dev/null and b/src/assets/images/room/context_menu_arrow_up.png differ diff --git a/src/assets/images/room/context_menu_arrow_up_hover.png b/src/assets/images/room/context_menu_arrow_up_hover.png new file mode 100644 index 000000000..738fd811d Binary files /dev/null and b/src/assets/images/room/context_menu_arrow_up_hover.png differ diff --git a/src/assets/images/room/context_menu_bg.png b/src/assets/images/room/context_menu_bg.png new file mode 100644 index 000000000..ef1584361 Binary files /dev/null and b/src/assets/images/room/context_menu_bg.png differ diff --git a/src/assets/images/room/context_menu_btn_bg.png b/src/assets/images/room/context_menu_btn_bg.png new file mode 100644 index 000000000..6df4fd5ee Binary files /dev/null and b/src/assets/images/room/context_menu_btn_bg.png differ diff --git a/src/assets/images/room/context_pointer_after.png b/src/assets/images/room/context_pointer_after.png new file mode 100644 index 000000000..46c7fbac9 Binary files /dev/null and b/src/assets/images/room/context_pointer_after.png differ diff --git a/src/assets/images/room/infostand_buttons.png b/src/assets/images/room/infostand_buttons.png new file mode 100644 index 000000000..278e06559 Binary files /dev/null and b/src/assets/images/room/infostand_buttons.png differ diff --git a/src/assets/images/room/infostand_buttons_active.png b/src/assets/images/room/infostand_buttons_active.png new file mode 100644 index 000000000..48097811d Binary files /dev/null and b/src/assets/images/room/infostand_buttons_active.png differ diff --git a/src/assets/images/room/infostand_buttons_hover.png b/src/assets/images/room/infostand_buttons_hover.png new file mode 100644 index 000000000..307cbbe6c Binary files /dev/null and b/src/assets/images/room/infostand_buttons_hover.png differ diff --git a/src/assets/images/room/name_bg.png b/src/assets/images/room/name_bg.png new file mode 100644 index 000000000..d12d8fc6d Binary files /dev/null and b/src/assets/images/room/name_bg.png differ diff --git a/src/assets/images/room/pointer_after.png b/src/assets/images/room/pointer_after.png new file mode 100644 index 000000000..a2c6d514b Binary files /dev/null and b/src/assets/images/room/pointer_after.png differ diff --git a/src/assets/images/room/report-room.png b/src/assets/images/room/report-room.png new file mode 100644 index 000000000..37672aa67 Binary files /dev/null and b/src/assets/images/room/report-room.png differ diff --git a/src/assets/images/toolbar/collapse_left.png b/src/assets/images/toolbar/collapse_left.png new file mode 100644 index 000000000..ea4113734 Binary files /dev/null and b/src/assets/images/toolbar/collapse_left.png differ diff --git a/src/assets/images/toolbar/collapse_left_active.png b/src/assets/images/toolbar/collapse_left_active.png new file mode 100644 index 000000000..375e0664c Binary files /dev/null and b/src/assets/images/toolbar/collapse_left_active.png differ diff --git a/src/assets/images/toolbar/collapse_right.png b/src/assets/images/toolbar/collapse_right.png new file mode 100644 index 000000000..36d2007a2 Binary files /dev/null and b/src/assets/images/toolbar/collapse_right.png differ diff --git a/src/assets/images/toolbar/collapse_right_active.png b/src/assets/images/toolbar/collapse_right_active.png new file mode 100644 index 000000000..798b1d26a Binary files /dev/null and b/src/assets/images/toolbar/collapse_right_active.png differ diff --git a/src/assets/images/toolbar/findfriend-bg-hover.png b/src/assets/images/toolbar/findfriend-bg-hover.png new file mode 100644 index 000000000..476d09054 Binary files /dev/null and b/src/assets/images/toolbar/findfriend-bg-hover.png differ diff --git a/src/assets/images/toolbar/findfriend-bg.png b/src/assets/images/toolbar/findfriend-bg.png new file mode 100644 index 000000000..dafdd3fd3 Binary files /dev/null and b/src/assets/images/toolbar/findfriend-bg.png differ diff --git a/src/assets/images/toolbar/friend-bg-hover.png b/src/assets/images/toolbar/friend-bg-hover.png new file mode 100644 index 000000000..5eaeccf76 Binary files /dev/null and b/src/assets/images/toolbar/friend-bg-hover.png differ diff --git a/src/assets/images/toolbar/friend-bg.png b/src/assets/images/toolbar/friend-bg.png new file mode 100644 index 000000000..1f76b909d Binary files /dev/null and b/src/assets/images/toolbar/friend-bg.png differ diff --git a/src/assets/images/toolbar/friendbar_left.png b/src/assets/images/toolbar/friendbar_left.png new file mode 100644 index 000000000..d628649a3 Binary files /dev/null and b/src/assets/images/toolbar/friendbar_left.png differ diff --git a/src/assets/images/toolbar/friendbar_right.png b/src/assets/images/toolbar/friendbar_right.png new file mode 100644 index 000000000..f64c41f33 Binary files /dev/null and b/src/assets/images/toolbar/friendbar_right.png differ diff --git a/src/assets/images/toolbar/me_menu_bg.png b/src/assets/images/toolbar/me_menu_bg.png new file mode 100644 index 000000000..7e19fe4fc Binary files /dev/null and b/src/assets/images/toolbar/me_menu_bg.png differ diff --git a/src/assets/images/toolbar/notification-bg.png b/src/assets/images/toolbar/notification-bg.png new file mode 100644 index 000000000..d47dc26f0 Binary files /dev/null and b/src/assets/images/toolbar/notification-bg.png differ diff --git a/src/assets/styles/bootstrap/_accordion.scss b/src/assets/styles/bootstrap/_accordion.scss index fc62ceb88..2d6ab38b7 100644 --- a/src/assets/styles/bootstrap/_accordion.scss +++ b/src/assets/styles/bootstrap/_accordion.scss @@ -93,7 +93,6 @@ padding: $accordion-body-padding-y $accordion-body-padding-x; } - // Flush accordion items // // Remove borders and border-radius to keep accordion items edge-to-edge. @@ -108,8 +107,12 @@ border-left: 0; @include border-radius(0); - &:first-child { border-top: 0; } - &:last-child { border-bottom: 0; } + &:first-child { + border-top: 0; + } + &:last-child { + border-bottom: 0; + } .accordion-button { @include border-radius(0); diff --git a/src/assets/styles/bootstrap/_alert.scss b/src/assets/styles/bootstrap/_alert.scss index 34f1e84ed..670a7bfe2 100644 --- a/src/assets/styles/bootstrap/_alert.scss +++ b/src/assets/styles/bootstrap/_alert.scss @@ -1,3 +1,4 @@ +@use 'sass:math'; // // Base styles // @@ -21,7 +22,6 @@ font-weight: $alert-link-font-weight; } - // Dismissible alerts // // Expand the right padding and account for the close button's positioning. @@ -39,7 +39,6 @@ } } - // scss-docs-start alert-modifiers // Generate contextual modifier classes for colorizing the alert. @@ -48,7 +47,7 @@ $alert-border: shift-color($value, $alert-border-scale); $alert-color: shift-color($value, $alert-color-scale); @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) { - $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale)); + $alert-color: mix($value, color-contrast($alert-background), math.abs($alert-color-scale)); } .alert-#{$state} { @include alert-variant($alert-background, $alert-border, $alert-color); diff --git a/src/assets/styles/bootstrap/_breadcrumb.scss b/src/assets/styles/bootstrap/_breadcrumb.scss index f7fafe743..bbd55520c 100644 --- a/src/assets/styles/bootstrap/_breadcrumb.scss +++ b/src/assets/styles/bootstrap/_breadcrumb.scss @@ -18,7 +18,14 @@ float: left; // Suppress inline spacings and underlining of the separator padding-right: $breadcrumb-item-padding-x; color: $breadcrumb-divider-color; - content: var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"}; + content: var( + --#{$variable-prefix}breadcrumb-divider, + escape-svg($breadcrumb-divider) + ) + #{"/* rtl:"} var( + --#{$variable-prefix}breadcrumb-divider, + escape-svg($breadcrumb-divider-flipped) + ) #{"*/"}; } } diff --git a/src/assets/styles/bootstrap/_button-group.scss b/src/assets/styles/bootstrap/_button-group.scss index 13aa0569a..e7b961cad 100644 --- a/src/assets/styles/bootstrap/_button-group.scss +++ b/src/assets/styles/bootstrap/_button-group.scss @@ -61,17 +61,20 @@ // // Remix the default button sizing classes into new ones for easier manipulation. -.btn-group-sm > .btn { @extend .btn-sm; } -.btn-group-lg > .btn { @extend .btn-lg; } - +.btn-group-sm > .btn { + @extend .btn-sm; +} +.btn-group-lg > .btn { + @extend .btn-lg; +} // // Split button dropdowns // .dropdown-toggle-split { - padding-right: $btn-padding-x * .75; - padding-left: $btn-padding-x * .75; + padding-right: $btn-padding-x * 0.75; + padding-left: $btn-padding-x * 0.75; &::after, .dropup &::after, @@ -85,16 +88,15 @@ } .btn-sm + .dropdown-toggle-split { - padding-right: $btn-padding-x-sm * .75; - padding-left: $btn-padding-x-sm * .75; + padding-right: $btn-padding-x-sm * 0.75; + padding-left: $btn-padding-x-sm * 0.75; } .btn-lg + .dropdown-toggle-split { - padding-right: $btn-padding-x-lg * .75; - padding-left: $btn-padding-x-lg * .75; + padding-right: $btn-padding-x-lg * 0.75; + padding-left: $btn-padding-x-lg * 0.75; } - // The clickable button for toggling the menu // Set the same inset shadow as the :active state .btn-group.show .dropdown-toggle { @@ -106,7 +108,6 @@ } } - // // Vertical button groups // diff --git a/src/assets/styles/bootstrap/_buttons.scss b/src/assets/styles/bootstrap/_buttons.scss index c0d5fcf59..10fe0a5d0 100644 --- a/src/assets/styles/bootstrap/_buttons.scss +++ b/src/assets/styles/bootstrap/_buttons.scss @@ -3,88 +3,76 @@ // .btn { - border-image-source: url("@/assets/flash/buttons/button.png"); - border-image-slice: 4 4 4 4 fill; - border-image-width: 4px 4px 4px 4px; - padding: .375rem .75rem; - min-height: 22px; - color: #000; - font-size: 13px; - cursor: pointer; + display: inline-block; + font-family: $btn-font-family; + font-weight: $btn-font-weight; + line-height: $btn-line-height; + color: $body-color; + text-align: center; + text-decoration: if($link-decoration == none, null, none); + white-space: $btn-white-space; + vertical-align: middle; + cursor: if($enable-button-pointers, pointer, null); + user-select: none; + background-color: transparent; + border: $btn-border-width solid transparent; + @include button-size( + $btn-padding-y, + $btn-padding-x, + $btn-font-size, + $btn-border-radius + ); + @include transition($btn-transition); &:hover { - border-image-source: url("@/assets/flash/buttons/button_hover.png"); + color: $body-color; + text-decoration: if($link-hover-decoration == underline, none, null); } - &:active { - border-image-source: url("@/assets/flash/buttons/button_active.png"); + .btn-check:focus + &, + &:focus { + outline: 0; + box-shadow: $btn-focus-box-shadow; + } + + .btn-check:checked + &, + .btn-check:active + &, + &:active, + &.active { + @include box-shadow($btn-active-box-shadow); + &:focus { + @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow); + } } &:disabled, &.disabled, fieldset:disabled & { pointer-events: none; - border-image-source: url("@/assets/flash/buttons/button_inactive.png"); - border-image-slice: 4 4 4 4 fill; - border-image-width: 4px 4px 4px 4px; - color: #b1b1ac; + opacity: $btn-disabled-opacity; + @include box-shadow(none); } } - // // Alternate buttons // // scss-docs-start btn-variant-loops - -.btn-success { - border-image-source: url("@/assets/flash/buttons/button_success.png"); - color: #fff; - font-family: ubuntuBold; - - &:hover { - border-image-source: url("@/assets/flash/buttons/button_success_hover.png"); - } - - &:active { - border-image-source: url("@/assets/flash/buttons/button_success_active.png"); - } - -} - -.btn-gray { - border-image-source: url("@/assets/flash/buttons/button_gray.png"); - color: #fff; - font-family: ubuntuBold; - - &:hover { - border-image-source: url("@/assets/flash/buttons/button_gray_hover.png"); - } - - &:active { - border-image-source: url("@/assets/flash/buttons/button_gray_active.png"); +@each $color, $value in $theme-colors { + .btn-#{$color} { + @include button-variant($value, $value); } } -.btn-mod-tools { - border-image-source: url("@/assets/flash/modtools/button.png"); - color: #fff; - font-family: ubuntuBold; - - &:hover { - border-image-source: url("@/assets/flash/modtools/button_hover.png"); - } - - &:active { - border-image-source: url("@/assets/flash/modtools/button_active.png"); +@each $color, $value in $theme-colors { + .btn-outline-#{$color} { + @include button-outline-variant($value); } } - // scss-docs-end btn-variant-loops - // // Link buttons // @@ -117,13 +105,12 @@ // No need for an active state here } - // // Button Sizes // .btn-toggle { - border-image-source: url("@/assets/flash/buttons/toggle_bg.png"); + border-image-source: url("@/assets/images/buttons/toggle_bg.png"); border-image-slice: 6 6 6 6 fill; border-image-width: 6px 6px 6px 6px; cursor: pointer; @@ -134,76 +121,72 @@ height: 8px; &.left { - background-image: url("@/assets/flash/buttons/toggle_left.png"); + background-image: url("@/assets/images/buttons/toggle_left.png"); } &.right { - background-image: url("@/assets/flash/buttons/toggle_right.png"); + background-image: url("@/assets/images/buttons/toggle_right.png"); } } } .infostand-buttons { - border-image-source: url(@/assets/flash/room/infostand_buttons.png); + border-image-source: url(@/assets/images/room/infostand_buttons.png); border-image-slice: 3 3 3 3 fill; border-image-width: 3px 3px 3px 3px; - font-family: Goldfish; font-size: 9px; color: #ffffff; height: 25px; margin-top: 5px; &:hover { - border-image-source: url(@/assets/flash/room/infostand_buttons_hover.png); + border-image-source: url(@/assets/images/room/infostand_buttons_hover.png); } &:active { - border-image-source: url(@/assets/flash/room/infostand_buttons_active.png); + border-image-source: url(@/assets/images/room/infostand_buttons_active.png); } } .volter-bold-button { - border-image-source: url(@/assets/flash/buttons/volter_bold_btn.png); + border-image-source: url(@/assets/images/buttons/volter_bold_btn.png); border-image-slice: 6 6 6 6 fill; border-image-width: 6px 6px 6px 6px; - font-family: Goldfish-bold; - font-size: 9px; + font-size: 12px; height: 20px; margin-top: 5px; &:hover { - border-image-source: url(@/assets/flash/buttons/volter_bold_btn_hover.png); + border-image-source: url(@/assets/images/buttons/volter_bold_btn_hover.png); } &:active { - border-image-source: url(@/assets/flash/buttons/volter_bold_btn_active.png); + border-image-source: url(@/assets/images/buttons/volter_bold_btn_active.png); } } .volter-button { - border-image-source: url(@/assets/flash/buttons/volter_normal_btn.png); + border-image-source: url(@/assets/images/buttons/volter_normal_btn.png); border-image-slice: 4 4 4 4 fill; - border-image-width: 4px 4px 4px 4px; - font-family: Goldfish; - font-size: 9px; + border-image-width: 6px 6px 6px 6px; + font-size: 11px; height: 20px; margin-top: 5px; &:hover { - border-image-source: url(@/assets/flash/buttons/volter_normal_btn_hover.png); + border-image-source: url(@/assets/images/buttons/volter_normal_btn_hover.png); } &:active { - border-image-source: url(@/assets/flash/buttons/volter_normal_btn_active.png); + border-image-source: url(@/assets/images/buttons/volter_normal_btn_active.png); } - &.active { - border-image-source: url(@/assets/flash/buttons/volter_normal_btn_active.png); + border-image-source: url(@/assets/images/buttons/volter_normal_btn_active.png); } } .notification-buttons { - border-image-source: url(@/assets/flash/room/infostand_buttons.png); + border-image-source: url(@/assets/images/room/infostand_buttons.png); border-image-slice: 3 3 3 3 fill; border-image-width: 3px 3px 3px 3px; color: #ffffff; @@ -213,11 +196,11 @@ border-radius: 13px; &:hover { - border-image-source: url(@/assets/flash/room/infostand_buttons_hover.png); + border-image-source: url(@/assets/images/room/infostand_buttons_hover.png); } &:active { - border-image-source: url(@/assets/flash/room/infostand_buttons_active.png); + border-image-source: url(@/assets/images/room/infostand_buttons_active.png); } } @@ -229,9 +212,24 @@ outline: 1px solid #000; border: 3px solid #fff; min-height: 22px; - min-width: 27px; + min-width: 23px; - &.active { - border: 5px solid #fff; - } +} + +.btn-lg { + @include button-size( + $btn-padding-y-lg, + $btn-padding-x-lg, + $btn-font-size-lg, + $btn-border-radius-lg + ); +} + +.btn-sm { + @include button-size( + $btn-padding-y-sm, + $btn-padding-x-sm, + $btn-font-size-sm, + $btn-border-radius-sm + ); } diff --git a/src/assets/styles/bootstrap/_card.scss b/src/assets/styles/bootstrap/_card.scss index 22890f5c9..94f1b4c37 100644 --- a/src/assets/styles/bootstrap/_card.scss +++ b/src/assets/styles/bootstrap/_card.scss @@ -29,7 +29,7 @@ @include border-top-radius($card-inner-border-radius); } - &:last-child { + &:last-child { border-bottom-width: 0; @include border-bottom-radius($card-inner-border-radius); } @@ -56,7 +56,7 @@ } .card-subtitle { - margin-top: -$card-title-spacer-y * .5; + margin-top: -$card-title-spacer-y * 0.5; margin-bottom: 0; } @@ -86,7 +86,9 @@ border-bottom: $card-border-width solid $card-border-color; &:first-child { - @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0); + @include border-radius( + $card-inner-border-radius $card-inner-border-radius 0 0 + ); } } @@ -97,19 +99,20 @@ border-top: $card-border-width solid $card-border-color; &:last-child { - @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius); + @include border-radius( + 0 0 $card-inner-border-radius $card-inner-border-radius + ); } } - // // Header navs // .card-header-tabs { - margin-right: -$card-cap-padding-x * .5; + margin-right: -$card-cap-padding-x * 0.5; margin-bottom: -$card-cap-padding-y; - margin-left: -$card-cap-padding-x * .5; + margin-left: -$card-cap-padding-x * 0.5; border-bottom: 0; @if $nav-tabs-link-active-bg != $card-bg { @@ -121,8 +124,8 @@ } .card-header-pills { - margin-right: -$card-cap-padding-x * .5; - margin-left: -$card-cap-padding-x * .5; + margin-right: -$card-cap-padding-x * 0.5; + margin-left: -$card-cap-padding-x * 0.5; } // Card image @@ -152,7 +155,6 @@ @include border-bottom-radius($card-inner-border-radius); } - // // Card groups // diff --git a/src/assets/styles/bootstrap/_carousel.scss b/src/assets/styles/bootstrap/_carousel.scss index 3d8fb15a0..6ea3d65e4 100644 --- a/src/assets/styles/bootstrap/_carousel.scss +++ b/src/assets/styles/bootstrap/_carousel.scss @@ -55,7 +55,6 @@ /* rtl:end:ignore */ - // // Alternate transitions // @@ -82,7 +81,6 @@ } } - // // Left/right controls for nav // @@ -117,11 +115,19 @@ } .carousel-control-prev { left: 0; - background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null); + background-image: if( + $enable-gradients, + linear-gradient(90deg, rgba($black, 0.25), rgba($black, 0.001)), + null + ); } .carousel-control-next { right: 0; - background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null); + background-image: if( + $enable-gradients, + linear-gradient(270deg, rgba($black, 0.25), rgba($black, 0.001)), + null + ); } // Icons for within @@ -195,16 +201,15 @@ } } - // Optional captions // // .carousel-caption { position: absolute; - right: (100% - $carousel-caption-width) * .5; + right: (100% - $carousel-caption-width) * 0.5; bottom: $carousel-caption-spacer; - left: (100% - $carousel-caption-width) * .5; + left: (100% - $carousel-caption-width) * 0.5; padding-top: $carousel-caption-padding-y; padding-bottom: $carousel-caption-padding-y; color: $carousel-caption-color; diff --git a/src/assets/styles/bootstrap/_close.scss b/src/assets/styles/bootstrap/_close.scss index 32a0f68cc..27fc146b7 100644 --- a/src/assets/styles/bootstrap/_close.scss +++ b/src/assets/styles/bootstrap/_close.scss @@ -9,7 +9,8 @@ height: $btn-close-height; padding: $btn-close-padding-y $btn-close-padding-x; color: $btn-close-color; - background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements + background: transparent escape-svg($btn-close-bg) center / $btn-close-width + auto no-repeat; // include transparent for button elements border: 0; // for button elements @include border-radius(); opacity: $btn-close-opacity; diff --git a/src/assets/styles/bootstrap/_dropdown.scss b/src/assets/styles/bootstrap/_dropdown.scss index adc114327..d3fbf6806 100644 --- a/src/assets/styles/bootstrap/_dropdown.scss +++ b/src/assets/styles/bootstrap/_dropdown.scss @@ -116,7 +116,6 @@ } } - // Dividers (basically an `
`) within the dropdown .dropdown-divider { height: 0; diff --git a/src/assets/styles/bootstrap/_functions.scss b/src/assets/styles/bootstrap/_functions.scss index 977f0eed2..893c68235 100644 --- a/src/assets/styles/bootstrap/_functions.scss +++ b/src/assets/styles/bootstrap/_functions.scss @@ -1,3 +1,4 @@ +@use 'sass:math'; // Bootstrap functions // // Utility mixins and functions for evaluating source code across our variables, maps, and mixins. @@ -38,7 +39,10 @@ } @function rgba-css-var($identifier, $target) { - @return rgba(var(--#{$variable-prefix}#{$identifier}-rgb), var(--#{$variable-prefix}#{$target}-opacity)); + @return rgba( + var(--#{$variable-prefix}#{$identifier}-rgb), + var(--#{$variable-prefix}#{$target}-opacity) + ); } // stylelint-disable scss/dollar-variable-pattern @@ -49,10 +53,18 @@ // allow to pass the $key and $value of the map as an function argument $_args: (); @each $arg in $args { - $_args: append($_args, if($arg == "$key", $key, if($arg == "$value", $value, $arg))); + $_args: append( + $_args, + if($arg == "$key", $key, if($arg == "$value", $value, $arg)) + ); } - $_map: map-merge($_map, ($key: call(get-function($func), $_args...))); + $_map: map-merge( + $_map, + ( + $key: call(get-function($func), $_args...), + ) + ); } @return $_map; @@ -84,7 +96,12 @@ $result: (); @each $key, $value in $map { @if (index($values, $key) != null) { - $result: map-merge($result, ($key: $value)); + $result: map-merge( + $result, + ( + $key: $value, + ) + ); } } @return $result; @@ -112,7 +129,12 @@ $index: str-index($string, $search); @if $index { - @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); + @return str-slice($string, 1, $index - 1) + $replace + + str-replace( + str-slice($string, $index + str-length($search)), + $search, + $replace + ); } @return $string; @@ -142,9 +164,37 @@ // A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255) // stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern -$_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1; - -@function color-contrast($background, $color-contrast-dark: $color-contrast-dark, $color-contrast-light: $color-contrast-light, $min-contrast-ratio: $min-contrast-ratio) { +$_luminance-list: 0.0008 0.001 0.0011 0.0013 0.0015 0.0017 0.002 0.0022 0.0025 + 0.0027 0.003 0.0033 0.0037 0.004 0.0044 0.0048 0.0052 0.0056 0.006 0.0065 + 0.007 0.0075 0.008 0.0086 0.0091 0.0097 0.0103 0.011 0.0116 0.0123 0.013 + 0.0137 0.0144 0.0152 0.016 0.0168 0.0176 0.0185 0.0194 0.0203 0.0212 0.0222 + 0.0232 0.0242 0.0252 0.0262 0.0273 0.0284 0.0296 0.0307 0.0319 0.0331 0.0343 + 0.0356 0.0369 0.0382 0.0395 0.0409 0.0423 0.0437 0.0452 0.0467 0.0482 0.0497 + 0.0513 0.0529 0.0545 0.0561 0.0578 0.0595 0.0612 0.063 0.0648 0.0666 0.0685 + 0.0704 0.0723 0.0742 0.0762 0.0782 0.0802 0.0823 0.0844 0.0865 0.0887 0.0908 + 0.0931 0.0953 0.0976 0.0999 0.1022 0.1046 0.107 0.1095 0.1119 0.1144 0.117 + 0.1195 0.1221 0.1248 0.1274 0.1301 0.1329 0.1356 0.1384 0.1413 0.1441 0.147 + 0.15 0.1529 0.1559 0.159 0.162 0.1651 0.1683 0.1714 0.1746 0.1779 0.1812 + 0.1845 0.1878 0.1912 0.1946 0.1981 0.2016 0.2051 0.2086 0.2122 0.2159 0.2195 + 0.2232 0.227 0.2307 0.2346 0.2384 0.2423 0.2462 0.2502 0.2542 0.2582 0.2623 + 0.2664 0.2705 0.2747 0.2789 0.2831 0.2874 0.2918 0.2961 0.3005 0.305 0.3095 + 0.314 0.3185 0.3231 0.3278 0.3325 0.3372 0.3419 0.3467 0.3515 0.3564 0.3613 + 0.3663 0.3712 0.3763 0.3813 0.3864 0.3916 0.3968 0.402 0.4072 0.4125 0.4179 + 0.4233 0.4287 0.4342 0.4397 0.4452 0.4508 0.4564 0.4621 0.4678 0.4735 0.4793 + 0.4851 0.491 0.4969 0.5029 0.5089 0.5149 0.521 0.5271 0.5333 0.5395 0.5457 + 0.552 0.5583 0.5647 0.5711 0.5776 0.5841 0.5906 0.5972 0.6038 0.6105 0.6172 + 0.624 0.6308 0.6376 0.6445 0.6514 0.6584 0.6654 0.6724 0.6795 0.6867 0.6939 + 0.7011 0.7084 0.7157 0.7231 0.7305 0.7379 0.7454 0.7529 0.7605 0.7682 0.7758 + 0.7835 0.7913 0.7991 0.807 0.8148 0.8228 0.8308 0.8388 0.8469 0.855 0.8632 + 0.8714 0.8796 0.8879 0.8963 0.9047 0.9131 0.9216 0.9301 0.9387 0.9473 0.956 + 0.9647 0.9734 0.9823 0.9911 1; + +@function color-contrast( + $background, + $color-contrast-dark: $color-contrast-dark, + $color-contrast-light: $color-contrast-light, + $min-contrast-ratio: $min-contrast-ratio +) { $foregrounds: $color-contrast-light, $color-contrast-dark, $white, $black; $max-ratio: 0; $max-ratio-color: null; @@ -168,7 +218,11 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 $l1: luminance($background); $l2: luminance(opaque($background, $foreground)); - @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05)); + @return if( + $l1 > $l2, + divide($l1 + 0.05, $l2 + 0.05), + divide($l2 + 0.05, $l1 + 0.05) + ); } // Return WCAG2.0 relative luminance @@ -178,15 +232,25 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 $rgb: ( "r": red($color), "g": green($color), - "b": blue($color) + "b": blue($color), ); @each $name, $value in $rgb { - $value: if(divide($value, 255) < .03928, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1)); - $rgb: map-merge($rgb, ($name: $value)); + $value: if( + divide($value, 255) < 0.03928, + divide(divide($value, 255), 12.92), + nth($_luminance-list, $value + 1) + ); + $rgb: map-merge( + $rgb, + ( + $name: $value, + ) + ); } - @return (map-get($rgb, "r") * .2126) + (map-get($rgb, "g") * .7152) + (map-get($rgb, "b") * .0722); + @return (map-get($rgb, "r") * 0.2126) + (map-get($rgb, "g") * 0.7152) + + (map-get($rgb, "b") * 0.0722); } // Return opaque color @@ -208,7 +272,11 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 // Shade the color if the weight is positive, else tint it @function shift-color($color, $weight) { - @return if($weight * 1% > 0, shade-color($color, $weight), tint-color($color, -$weight)); + @return if( + $weight * 1% > 0, + shade-color($color, $weight), + tint-color($color, -$weight) + ); } // scss-docs-end color-functions @@ -222,11 +290,20 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 @return $value1; } - @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) { + @if type-of($value1) == + number and + type-of($value2) == + number and + comparable($value1, $value2) + { @return $value1 + $value2; } - @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(" + ") + $value2); + @return if( + $return-calc == true, + calc(#{$value1} + #{$value2}), + $value1 + unquote(" + ") + $value2 + ); } @function subtract($value1, $value2, $return-calc: true) { @@ -242,7 +319,12 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 @return $value1; } - @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) { + @if type-of($value1) == + number and + type-of($value2) == + number and + comparable($value1, $value2) + { @return $value1 - $value2; } @@ -250,13 +332,21 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 $value2: unquote("(") + $value2 + unquote(")"); } - @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2); + @return if( + $return-calc == true, + calc(#{$value1} - #{$value2}), + $value1 + unquote(" - ") + $value2 + ); } @function divide($dividend, $divisor, $precision: 10) { - $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1); - $dividend: abs($dividend); - $divisor: abs($divisor); + $sign: if( + $dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, + 1, + -1 + ); + $dividend: math.abs($dividend); + $divisor: math.abs($divisor); @if $dividend == 0 { @return 0; } @@ -273,7 +363,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 $quotient: $quotient + 1; } $result: $result * 10 + $quotient; - $factor: $factor * .1; + $factor: $factor * 0.1; $remainder: $remainder * 10; $precision: $precision - 1; @if ($precision < 0 and $remainder >= $divisor * 5) { @@ -287,9 +377,11 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 "px": 1px, "rem": 1rem, "em": 1em, - "%": 1% + "%": 1%, ); - @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) { + @if ( + $dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit) + ) { $result: $result * map-get($unit-map, $dividend-unit); } @return $result; diff --git a/src/assets/styles/bootstrap/_images.scss b/src/assets/styles/bootstrap/_images.scss index 3d6a1014c..61677acd2 100644 --- a/src/assets/styles/bootstrap/_images.scss +++ b/src/assets/styles/bootstrap/_images.scss @@ -9,7 +9,6 @@ @include img-fluid(); } - // Image thumbnails .img-thumbnail { padding: $thumbnail-padding; @@ -32,7 +31,7 @@ } .figure-img { - margin-bottom: $spacer * .5; + margin-bottom: $spacer * 0.5; line-height: 1; } diff --git a/src/assets/styles/bootstrap/_list-group.scss b/src/assets/styles/bootstrap/_list-group.scss index dcd61d2b5..b4a9730d4 100644 --- a/src/assets/styles/bootstrap/_list-group.scss +++ b/src/assets/styles/bootstrap/_list-group.scss @@ -1,3 +1,4 @@ +@use 'sass:math'; // Base class // // Easily usable on
    ,
      , or
      . @@ -23,7 +24,6 @@ } } - // Interactive list items // // Use anchor or button elements instead of `li`s or `div`s to create interactive @@ -49,7 +49,6 @@ } } - // Individual list items // // Use on `li`s or `div`s within the `.list-group` parent. @@ -96,7 +95,6 @@ } } - // Horizontal // // Change the layout of list group items from vertical (default) to horizontal. @@ -137,7 +135,6 @@ } } - // Flush list items // // Remove borders and border-radius to keep list group items edge-to-edge. Most @@ -155,7 +152,6 @@ } } - // scss-docs-start list-group-modifiers // List group contextual variants // @@ -165,10 +161,17 @@ @each $state, $value in $theme-colors { $list-group-variant-bg: shift-color($value, $list-group-item-bg-scale); $list-group-variant-color: shift-color($value, $list-group-item-color-scale); - @if (contrast-ratio($list-group-variant-bg, $list-group-variant-color) < $min-contrast-ratio) { - $list-group-variant-color: mix($value, color-contrast($list-group-variant-bg), abs($list-group-item-color-scale)); + @if ( + contrast-ratio($list-group-variant-bg, $list-group-variant-color) < + $min-contrast-ratio + ) { + $list-group-variant-color: mix($value, color-contrast($list-group-variant-bg), math.abs($list-group-item-color-scale)); } - @include list-group-item-variant($state, $list-group-variant-bg, $list-group-variant-color); + @include list-group-item-variant( + $state, + $list-group-variant-bg, + $list-group-variant-color + ); } // scss-docs-end list-group-modifiers diff --git a/src/assets/styles/bootstrap/_modal.scss b/src/assets/styles/bootstrap/_modal.scss index 21e1258f5..da87f9cf2 100644 --- a/src/assets/styles/bootstrap/_modal.scss +++ b/src/assets/styles/bootstrap/_modal.scss @@ -3,7 +3,6 @@ // .modal-dialog - positioning shell for the actual modal // .modal-content - actual modal w/ bg and corners and stuff - // Container that the modal scrolls within .modal { position: fixed; @@ -85,7 +84,11 @@ // Modal background .modal-backdrop { - @include overlay-backdrop($zindex-modal-backdrop, $modal-backdrop-bg, $modal-backdrop-opacity); + @include overlay-backdrop( + $zindex-modal-backdrop, + $modal-backdrop-bg, + $modal-backdrop-opacity + ); } // Modal header @@ -100,8 +103,9 @@ @include border-top-radius($modal-content-inner-border-radius); .btn-close { - padding: ($modal-header-padding-y * .5) ($modal-header-padding-x * .5); - margin: ($modal-header-padding-y * -.5) ($modal-header-padding-x * -.5) ($modal-header-padding-y * -.5) auto; + padding: ($modal-header-padding-y * 0.5) ($modal-header-padding-x * 0.5); + margin: ($modal-header-padding-y * -0.5) ($modal-header-padding-x * -0.5) + ($modal-header-padding-y * -0.5) auto; } } @@ -128,7 +132,7 @@ flex-shrink: 0; align-items: center; // vertically center justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items - padding: $modal-inner-padding - $modal-footer-margin-between * .5; + padding: $modal-inner-padding - $modal-footer-margin-between * 0.5; border-top: $modal-footer-border-width solid $modal-footer-border-color; @include border-bottom-radius($modal-content-inner-border-radius); @@ -136,7 +140,7 @@ // This solution is far from ideal because of the universal selector usage, // but is needed to fix https://github.com/twbs/bootstrap/issues/24800 > * { - margin: $modal-footer-margin-between * .5; + margin: $modal-footer-margin-between * 0.5; } } @@ -160,7 +164,9 @@ @include box-shadow($modal-content-box-shadow-sm-up); } - .modal-sm { max-width: $modal-sm; } + .modal-sm { + max-width: $modal-sm; + } } @include media-breakpoint-up(lg) { @@ -171,7 +177,9 @@ } @include media-breakpoint-up(xl) { - .modal-xl { max-width: $modal-xl; } + .modal-xl { + max-width: $modal-xl; + } } // scss-docs-start modal-fullscreen-loop diff --git a/src/assets/styles/bootstrap/_nav.scss b/src/assets/styles/bootstrap/_nav.scss index c7974dc65..365a143e0 100644 --- a/src/assets/styles/bootstrap/_nav.scss +++ b/src/assets/styles/bootstrap/_nav.scss @@ -4,37 +4,37 @@ // `
      + + { !hcDisabled && partItem.isHC && } + { partItem.isClear && } + { partItem.isSellable && } + { children } + ); } diff --git a/src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetView.tsx b/src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetView.tsx index 538d45b1c..87a43e672 100644 --- a/src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetView.tsx +++ b/src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetView.tsx @@ -4,6 +4,11 @@ import { AvatarEditorGridPartItem, CategoryData, CreateLinkEvent, GetSessionData import { AutoGrid } from '../../../../common'; import { AvatarEditorFigureSetItemView } from './AvatarEditorFigureSetItemView'; +const TSHIRT_FOOTBALL_GATE = [ 3111, 3110, 3109, 3030, 3114, 266, 265, 262, 3113, 3112, 691, 690, 667 ]; +const NUMBER_BEHIND_FOOTBALL_GATE = [ 3128, 3127, 3126, 3125, 3124, 3123, 3122, 3121, 3120, 3119 ]; +const PANTS_FOOTBALL_GATE = [ 3116, 281, 275, 715, 700, 696, 3006 ]; +const SHOES_FOOTBALL_GATE = [ 3115, 3068, 906 ]; + export interface AvatarEditorFigureSetViewProps { model: IAvatarEditorCategoryModel; @@ -13,7 +18,7 @@ export interface AvatarEditorFigureSetViewProps export const AvatarEditorFigureSetView: FC = props => { - const { model = null, category = null, setMaxPaletteCount = null } = props; + const { model = null, category = null, isFromFootballGate = false, setMaxPaletteCount = null } = props; const elementRef = useRef(null); const selectPart = useCallback((item: AvatarEditorGridPartItem) => @@ -22,9 +27,9 @@ export const AvatarEditorFigureSetView: FC = pro if(index === -1) return; - if (item.isHC && GetSessionDataManager().clubLevel === HabboClubLevelEnum.NO_CLUB) return CreateLinkEvent('habboUI/open/hccenter'); - - model.selectPart(category.name, index); + if (item.isHC && GetSessionDataManager().clubLevel === HabboClubLevelEnum.NO_CLUB) return CreateLinkEvent('habboUI/open/hccenter'); + + model.selectPart(category.name, index); const partItem = category.getCurrentPart(); @@ -39,10 +44,11 @@ export const AvatarEditorFigureSetView: FC = pro }, [ model, category ]); return ( - - { (category.parts.length > 0) && category.parts.map(item => - selectPart(item) } />) - } + + { (category.parts.length > 0) && category.parts.map((item, index) => + (!isFromFootballGate || (isFromFootballGate && TSHIRT_FOOTBALL_GATE.includes(item.id) || NUMBER_BEHIND_FOOTBALL_GATE.includes(item.id) || PANTS_FOOTBALL_GATE.includes(item.id) || SHOES_FOOTBALL_GATE.includes(item.id))) && + selectPart(item) } />) + } ); } diff --git a/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetItemView.tsx b/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetItemView.tsx index 610995dbe..638a9d18b 100644 --- a/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetItemView.tsx +++ b/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetItemView.tsx @@ -1,7 +1,6 @@ import { FC, useEffect, useState } from 'react'; import { AvatarEditorGridColorItem, GetConfiguration } from '../../../../api'; import { LayoutCurrencyIcon, LayoutGridItem, LayoutGridItemProps } from '../../../../common'; -import { LayoutGridColorPickerItem } from '../../../../common/layout/LayoutGridColorPickerItem'; export interface AvatarEditorPaletteSetItemProps extends LayoutGridItemProps { @@ -25,9 +24,9 @@ export const AvatarEditorPaletteSetItem: FC = p }, [ colorItem ]); return ( - - { !hcDisabled && colorItem.isHC && } + + { !hcDisabled && colorItem.isHC && } { children } - + ); } diff --git a/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetView.tsx b/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetView.tsx index 3fe0ff9de..919732c1b 100644 --- a/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetView.tsx +++ b/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetView.tsx @@ -1,56 +1,123 @@ -import { HabboClubLevelEnum } from '@nitrots/nitro-renderer'; -import { FC, useCallback, useEffect, useRef } from 'react'; -import { AvatarEditorGridColorItem, CategoryData, CreateLinkEvent, GetSessionDataManager, IAvatarEditorCategoryModel } from '../../../../api'; -import { AutoGrid } from '../../../../common'; -import { AvatarEditorPaletteSetItem } from './AvatarEditorPaletteSetItemView'; - -export interface AvatarEditorPaletteSetViewProps -{ +import { FC, useCallback, useEffect, useRef, useState } from 'react'; +import { AvatarEditorGridColorItem, AvatarEditorUtilities, CategoryData, IAvatarEditorCategoryModel } from '../../../../api'; +import { PartColor } from '@nitrots/nitro-renderer'; +import { HexColorPicker } from 'react-colorful'; +import { ColorPicker, Hue, IColor, Saturation, useColor } from 'react-color-palette'; +import "react-color-palette/css"; +import { color } from '@uiw/react-color'; + +export interface AvatarEditorPaletteSetViewProps { model: IAvatarEditorCategoryModel; category: CategoryData; paletteSet: AvatarEditorGridColorItem[]; paletteIndex: number; + isCustomHeight: boolean; } -export const AvatarEditorPaletteSetView: FC = props => -{ - const { model = null, category = null, paletteSet = [], paletteIndex = -1 } = props; +export const AvatarEditorPaletteSetView: FC = props => { + const { model = null, category = null, paletteSet = [], paletteIndex = -1, isCustomHeight = false } = props; const elementRef = useRef(null); + const COLOR_DEFAULT: string = "#FFFFFF" + const [colorValue, setColorValue] = useColor(COLOR_DEFAULT); - const selectColor = useCallback((item: AvatarEditorGridColorItem) => - { + const selectColor = useCallback((item: AvatarEditorGridColorItem) => { const index = paletteSet.indexOf(item); - if(index === -1) return; - - if (item.isHC && GetSessionDataManager().clubLevel === HabboClubLevelEnum.NO_CLUB) return CreateLinkEvent('habboUI/open/hccenter'); + if (index === -1) return; model.selectColor(category.name, index, paletteIndex); - }, [ model, category, paletteSet, paletteIndex ]); + }, [model, category, paletteSet, paletteIndex]); + + const selectColorHex = useCallback((item: IColor) => { + setColorValue(item) + model.selectColorHex(category.name, item.hex.slice(0, -2), paletteIndex); + }, [model, category, paletteSet, paletteIndex]); - useEffect(() => - { - if(!model || !category || !elementRef || !elementRef.current) return; + useEffect(() => { + if (!model || !category || !elementRef || !elementRef.current) return; elementRef.current.scrollTop = 0; - }, [ model, category ]); + }, [model, category]); + + useEffect(() => { + try { + let color: string = category.getSelectedColorIdHex(paletteIndex); + + if (color) { + const newColor: IColor = { + hex: color, + rgb: { + r: 0, + g: 0, + b: 0, + a: 0, + }, + hsv: { + h: 0, + s: 0, + v: 0, + a: 0, + } + }; + + setColorValue(newColor); + } else { + + const partType = category.getCurrentPart().partSet; + + if (partType != null) { + color = AvatarEditorUtilities.CURRENT_FIGURE.getColorIds(category.getCurrentPart().partSet.type)[paletteIndex]; + + const newColor: IColor = { + hex: color, + rgb: { + r: 0, + g: 0, + b: 0, + a: 0, + }, + hsv: { + h: 0, + s: 0, + v: 0, + a: 0, + } + }; + + setColorValue(newColor); + category.getPalette(paletteIndex).push(new AvatarEditorGridColorItem(new PartColor(null, color, paletteIndex))) + } else { + color = COLOR_DEFAULT; + + const newColor: IColor = { + hex: COLOR_DEFAULT, + rgb: { + r: 0, + g: 0, + b: 0, + a: 0, + }, + hsv: { + h: 0, + s: 0, + v: 0, + a: 0, + } + }; + + setColorValue(newColor); + } + } + } catch (e) { + } + }, [model, category]) return ( - - { paletteSet.length > 0 && - paletteSet.map((item, index) => ( - selectColor(item) } - /> - )) } - + <> +
      + + +
      + ); } diff --git a/src/components/camera/views/CameraWidgetShowPhotoView.tsx b/src/components/camera/views/CameraWidgetShowPhotoView.tsx index decb7cfd3..27e15e5ee 100644 --- a/src/components/camera/views/CameraWidgetShowPhotoView.tsx +++ b/src/components/camera/views/CameraWidgetShowPhotoView.tsx @@ -58,16 +58,23 @@ export const CameraWidgetShowPhotoView: FC = pro return ( - + { !currentImage.w && { LocalizeText('camera.loading') } } { currentImage.m && currentImage.m.length && { currentImage.m } } - - { new Date(currentImage.t * 1000).toLocaleDateString(undefined, { day: 'numeric', month: 'long', year: 'numeric' }) } - - - GetUserProfile(Number(getUserData(currentImage.s, Number(currentImage.u), 'id'))) }>{ getUserData(currentImage.s, Number(currentImage.u), 'username') } + + { new Date(currentImage.t * 1000).toLocaleDateString(undefined, { day: 'numeric', month: 'long', year: 'numeric' }) } + + { getUserData(currentImage.s, Number(currentImage.u), 'username') && ( + <> + GetUserProfile(Number(getUserData(currentImage.s, Number(currentImage.u), 'id')))} /> + GetUserProfile(Number(getUserData(currentImage.s, Number(currentImage.u), 'id')))}> + { getUserData(currentImage.s, Number(currentImage.u), 'username') } + + + )} + { (currentPhotos.length > 1) && <> @@ -80,4 +87,4 @@ export const CameraWidgetShowPhotoView: FC = pro } ); -} +} \ No newline at end of file diff --git a/src/components/catalog/CatalogView.scss b/src/components/catalog/CatalogView.scss index 71e01b399..274d71b7e 100644 --- a/src/components/catalog/CatalogView.scss +++ b/src/components/catalog/CatalogView.scss @@ -1,9 +1,6 @@ .nitro-catalog { width: $catalog-width; height: $catalog-height; - min-width: $catalog-width; - max-width: $catalog-width; - min-height: $catalog-height - 39px; font[size='16'] { font-size: 20px; @@ -85,7 +82,7 @@ } .item-not-picker { - width: calc(100% - 216px); + width: 64%; max-height: 30px; min-height: 30px; } diff --git a/src/components/catalog/CatalogView.tsx b/src/components/catalog/CatalogView.tsx index 2234ee158..23a1a1dbf 100644 --- a/src/components/catalog/CatalogView.tsx +++ b/src/components/catalog/CatalogView.tsx @@ -70,7 +70,7 @@ export const CatalogView: FC<{}> = props => return ( <> { isVisible && - + setIsVisible(false) } /> { rootNode && (rootNode.children.length > 0) && rootNode.children.map((child, index) => @@ -88,7 +88,7 @@ export const CatalogView: FC<{}> = props => } } > { GetConfiguration('catalog.tab.icons') && } - { child.localization } + {child.localization} ); diff --git a/src/components/chat-history/ChatHistoryView.scss b/src/components/chat-history/ChatHistoryView.scss index 0e58d9d30..992dd384e 100644 --- a/src/components/chat-history/ChatHistoryView.scss +++ b/src/components/chat-history/ChatHistoryView.scss @@ -3,8 +3,8 @@ position: absolute; padding-right: 20px; bottom: 0; - top: 0; - height: 100%; + top: 0.5%; + height: 91.4%; left: 0; width: 400px; border-right: 1px solid #000; @@ -15,11 +15,12 @@ width: 100%; background-color: #2e2e2c4f; border-right: 1px solid #3b3933; + padding-top: 45px; padding-bottom: 60px; } .chat-toggle { - background-image: url(@/assets/flash/chathistory/chathistory_toggle.png); + background-image: url(@/assets/images/chathistory/chathistory_toggle.png); width: 15px; height: 63px; cursor: pointer; @@ -28,4 +29,4 @@ bottom: 140px; border-left: 1px solid black; } -} +} \ No newline at end of file diff --git a/src/components/chat-history/ChatHistoryView.tsx b/src/components/chat-history/ChatHistoryView.tsx index cef668e4a..33f46882a 100644 --- a/src/components/chat-history/ChatHistoryView.tsx +++ b/src/components/chat-history/ChatHistoryView.tsx @@ -2,14 +2,16 @@ import { ILinkEventTracker } from '@nitrots/nitro-renderer'; import { FC, useEffect, useMemo, useRef, useState } from 'react'; import { AddEventLinkTracker, ChatEntryType, LocalizeText, RemoveLinkEventTracker } from '../../api'; import { Column, Flex, InfiniteScroll, NitroCardContentView, NitroCardHeaderView, NitroCardView, Text } from '../../common'; -import { useChatHistory } from '../../hooks'; +import { useChatHistory, useOnClickChat } from '../../hooks'; export const ChatHistoryView: FC<{}> = props => { + const { chatHistory = [] } = useChatHistory(); const [ isVisible, setIsVisible ] = useState(false); + const { onClickChat = null } = useOnClickChat(); const [ searchText, setSearchText ] = useState(''); - const { chatHistory = [] } = useChatHistory(); - const elementRef = useRef(null); + + const elementRef = useRef(null); const filteredChatHistory = useMemo(() => { @@ -63,7 +65,7 @@ export const ChatHistoryView: FC<{}> = props => - + { return ( @@ -79,14 +81,14 @@ export const ChatHistoryView: FC<{}> = props =>
      - + onClickChat(e) } />
      } { (row.type === ChatEntryType.TYPE_ROOM_INFO) && <> - { row.name } + { row.name } }
      ) diff --git a/src/components/floorplan-editor/FloorplanEditorView.scss b/src/components/floorplan-editor/FloorplanEditorView.scss index 3fe304151..28f970a18 100644 --- a/src/components/floorplan-editor/FloorplanEditorView.scss +++ b/src/components/floorplan-editor/FloorplanEditorView.scss @@ -4,6 +4,6 @@ } .floorplan-import-export { - width: 500px; + width: 630px; height: 475px; } diff --git a/src/components/floorplan-editor/FloorplanEditorView.tsx b/src/components/floorplan-editor/FloorplanEditorView.tsx index d0d39d20a..8efea48f7 100644 --- a/src/components/floorplan-editor/FloorplanEditorView.tsx +++ b/src/components/floorplan-editor/FloorplanEditorView.tsx @@ -3,11 +3,11 @@ import { FC, useEffect, useState } from 'react'; import { AddEventLinkTracker, LocalizeText, RemoveLinkEventTracker, SendMessageComposer } from '../../api'; import { Button, ButtonGroup, Flex, NitroCardContentView, NitroCardHeaderView, NitroCardView } from '../../common'; import { useMessageEvent, useRoomEngineEvent } from '../../hooks'; +import { FloorplanEditorContextProvider } from './FloorplanEditorContext'; import { FloorplanEditor } from './common/FloorplanEditor'; import { IFloorplanSettings } from './common/IFloorplanSettings'; import { IVisualizationSettings } from './common/IVisualizationSettings'; import { convertNumbersForSaving, convertSettingToNumber } from './common/Utils'; -import { FloorplanEditorContextProvider } from './FloorplanEditorContext'; import { FloorplanCanvasView } from './views/FloorplanCanvasView'; import { FloorplanImportExportView } from './views/FloorplanImportExportView'; import { FloorplanOptionsView } from './views/FloorplanOptionsView'; @@ -135,15 +135,10 @@ export const FloorplanEditorView: FC<{}> = props => return () => RemoveLinkEventTracker(linkTracker); }, []); - useEffect(() => - { - FloorplanEditor.instance.initialize(); - }, []); - return ( { isVisible && - + setIsVisible(false) } /> @@ -162,4 +157,4 @@ export const FloorplanEditorView: FC<{}> = props => setImportExportVisible(false) } /> } ); -} +} \ No newline at end of file diff --git a/src/components/floorplan-editor/common/Constants.ts b/src/components/floorplan-editor/common/Constants.ts index da66d515d..6a5711f29 100644 --- a/src/components/floorplan-editor/common/Constants.ts +++ b/src/components/floorplan-editor/common/Constants.ts @@ -1,5 +1,5 @@ export const TILE_SIZE = 32; -export const MAX_NUM_TILE_PER_AXIS = 64; +export const MAX_NUM_TILE_PER_AXIS = 100; export const HEIGHT_SCHEME: string = 'x0123456789abcdefghijklmnopq'; diff --git a/src/components/floorplan-editor/common/FloorplanEditor.ts b/src/components/floorplan-editor/common/FloorplanEditor.ts index 6fb0b08b8..8003e106a 100644 --- a/src/components/floorplan-editor/common/FloorplanEditor.ts +++ b/src/components/floorplan-editor/common/FloorplanEditor.ts @@ -1,10 +1,11 @@ -import { GetAssetManager, IGraphicAssetCollection, NitroPoint, NitroTilemap, PixiApplicationProxy, PixiInteractionEventProxy, POINT_STRUCT_SIZE } from '@nitrots/nitro-renderer'; +import { NitroPoint } from '@nitrots/nitro-renderer'; import { ActionSettings } from './ActionSettings'; import { FloorAction, HEIGHT_SCHEME, MAX_NUM_TILE_PER_AXIS, TILE_SIZE } from './Constants'; +import { imageBase64, spritesheet } from './FloorplanResource'; import { Tile } from './Tile'; -import { getScreenPositionForTile, getTileFromScreenPosition } from './Utils'; +import { getScreenPositionForTile } from './Utils'; -export class FloorplanEditor extends PixiApplicationProxy +export class FloorplanEditor { private static _INSTANCE: FloorplanEditor = null; @@ -14,160 +15,107 @@ export class FloorplanEditor extends PixiApplicationProxy private _tilemap: Tile[][]; private _width: number; private _height: number; - private _isHolding: boolean; + private _isPointerDown: boolean; private _doorLocation: NitroPoint; private _lastUsedTile: NitroPoint; - private _tilemapRenderer: NitroTilemap; + private _renderer: CanvasRenderingContext2D; private _actionSettings: ActionSettings; - private _isInitialized: boolean; - private _assetCollection: IGraphicAssetCollection; + private _image: HTMLImageElement; constructor() { const width = TILE_SIZE * MAX_NUM_TILE_PER_AXIS + 20; const height = (TILE_SIZE * MAX_NUM_TILE_PER_AXIS) / 2 + 100; - super({ - width: width, - height: height, - backgroundColor: 0x000000, - antialias: true, - autoDensity: true, - resolution: 1, - sharedLoader: true, - sharedTicker: true - }); + const canvas = document.createElement('canvas'); + + canvas.height = height; + canvas.width = width; + + canvas.style.touchAction = 'none'; + + this._renderer = canvas.getContext('2d'); + + this._image = new Image(); + + this._image.src = imageBase64; this._tilemap = []; this._doorLocation = new NitroPoint(0, 0); this._width = 0; this._height = 0; - this._isHolding = false; + this._isPointerDown = false; this._lastUsedTile = new NitroPoint(-1, -1); this._actionSettings = new ActionSettings(); } - public initialize(): void + public onPointerRelease(): void { - if(this._isInitialized) return; - - const collection = GetAssetManager().getCollection('floor_editor'); - - if(!collection) return; + this._isPointerDown = false; + } - this._assetCollection = collection; - this._tilemapRenderer = new NitroTilemap(collection.baseTexture); + public onPointerDown(event: PointerEvent): void + { + if(event.button === 2) return; - this.registerEventListeners(); + const location = new NitroPoint(event.offsetX, event.offsetY); - this.stage.addChild(this._tilemapRenderer); + this._isPointerDown = true; - this._isInitialized = true; + this.tileHitDetection(location, true); } - private registerEventListeners(): void + public onPointerMove(event: PointerEvent): void { - //this._tilemapRenderer.interactive = true; - - const tempPoint = new NitroPoint(); - // @ts-ignore - this._tilemapRenderer.containsPoint = (position) => - { - this._tilemapRenderer.worldTransform.applyInverse(position, tempPoint); - return this.tileHitDetection(tempPoint, false); - }; - - this._tilemapRenderer.on('pointerup', () => - { - this._isHolding = false; - }); - - this._tilemapRenderer.on('pointerout', () => - { - this._isHolding = false; - }); - - this._tilemapRenderer.on('pointerdown', (event: PixiInteractionEventProxy) => - { - if(!(event.data.originalEvent instanceof PointerEvent) && !(event.data.originalEvent instanceof TouchEvent)) return; - - const pointerEvent = event.data.originalEvent; - if((pointerEvent instanceof MouseEvent) && pointerEvent.button === 2) return; - - - const location = event.data.global; - this.tileHitDetection(location, true); - }); - - this._tilemapRenderer.on('click', (event: PixiInteractionEventProxy) => - { - if(!(event.data.originalEvent instanceof PointerEvent)) return; - - const pointerEvent = event.data.originalEvent; - if(pointerEvent.button === 2) return; - - const location = event.data.global; - this.tileHitDetection(location, true, true); - }); + if(!this._isPointerDown) return; + + const location = new NitroPoint(event.offsetX, event.offsetY); + this.tileHitDetection(location, false); } - private tileHitDetection(tempPoint: NitroPoint, setHolding: boolean, isClick: boolean = false): boolean + private tileHitDetection(tempPoint: NitroPoint, isClick: boolean = false): boolean { - // @ts-ignore - const buffer = this._tilemapRenderer.pointsBuf; - const bufSize = POINT_STRUCT_SIZE; - - const len = buffer.length; + const mousePositionX = Math.floor(tempPoint.x); + const mousePositionY = Math.floor(tempPoint.y); - if(setHolding) - { - this._isHolding = true; - } + const width = TILE_SIZE; + const height = TILE_SIZE / 2; - for(let j = 0; j < len; j += bufSize) + for(let y = 0; y < this._tilemap.length; y++) { - const bufIndex = j + bufSize; - const data = buffer.slice(j, bufIndex); - - const width = TILE_SIZE; - const height = TILE_SIZE / 2; - - const mousePositionX = Math.floor(tempPoint.x); - const mousePositionY = Math.floor(tempPoint.y); - - const tileStartX = data[2]; - const tileStartY = data[3]; + for(let x = 0; x < this.tilemap[y].length; x++) + { + const [ tileStartX, tileStartY ] = getScreenPositionForTile(x, y); - const centreX = tileStartX + (width / 2); - const centreY = tileStartY + (height / 2); + const centreX = tileStartX + (width / 2); + const centreY = tileStartY + (height / 2); - const dx = Math.abs(mousePositionX - centreX); - const dy = Math.abs(mousePositionY - centreY); + const dx = Math.abs(mousePositionX - centreX); + const dy = Math.abs(mousePositionY - centreY); - const solution = (dx / (width * 0.5) + dy / (height * 0.5) <= 1);//todo: improve this - if(solution) - { - if(this._isHolding) + const solution = (dx / (width * 0.5) + dy / (height * 0.5) <= 1);//todo: improve this + + if(solution) { - const [ realX, realY ] = getTileFromScreenPosition(tileStartX, tileStartY); - - if(isClick) + if(this._isPointerDown) { - this.onClick(realX, realY); - } + if(isClick) + { + this.onClick(x, y); + } - else if(this._lastUsedTile.x !== realX || this._lastUsedTile.y !== realY) - { - this._lastUsedTile.x = realX; - this._lastUsedTile.y = realY; - this.onClick(realX, realY); - } + else if(this._lastUsedTile.x !== x || this._lastUsedTile.y !== y) + { + this._lastUsedTile.x = x; + this._lastUsedTile.y = y; + this.onClick(x, y); + } + } + return true; } - return true; } - } return false; } @@ -221,7 +169,7 @@ export class FloorplanEditor extends PixiApplicationProxy if(!newHeight) return; - if(tile.isBlocked) return; + // if(tile.isBlocked) return; this._tilemap[y][x].height = newHeight; @@ -230,7 +178,7 @@ export class FloorplanEditor extends PixiApplicationProxy public renderTiles(): void { - this.tilemapRenderer.clear(); + this.clearCanvas(); for(let y = 0; y < this._tilemap.length; y++) { @@ -244,10 +192,19 @@ export class FloorplanEditor extends PixiApplicationProxy if(tile.isBlocked) assetName = FloorplanEditor.TILE_BLOCKED; - //if((tile.height === 'x') || tile.height === 'X') continue; - const [ positionX, positionY ] = getScreenPositionForTile(x, y); + if ((tile.height === 'x' || tile.height === 'X') && tile.isBlocked) assetName = 'x'; - this._tilemapRenderer.tile(this._assetCollection.getTexture(`floor_editor_${ assetName }`), positionX, positionY); + const [ positionX, positionY ] = getScreenPositionForTile(x, y); + + const asset = spritesheet.frames[assetName]; + + if (asset === undefined) + { + console.warn(`Asset "${ assetName }" not found in spritesheet.`); + continue; + } + + this.renderer.drawImage(this._image, asset.frame.x, asset.frame.y, asset.frame.w, asset.frame.h, positionX, positionY, asset.frame.w, asset.frame.h); } } } @@ -372,20 +329,25 @@ export class FloorplanEditor extends PixiApplicationProxy public clear(): void { - this._tilemapRenderer.interactive = false; this._tilemap = []; this._doorLocation.set(-1, -1); this._width = 0; this._height = 0; - this._isHolding = false; + this._isPointerDown = false; this._lastUsedTile.set(-1, -1); this._actionSettings.clear(); - this._tilemapRenderer.clear(); + this.clearCanvas(); + } + + public clearCanvas(): void + { + this.renderer.fillStyle = '0x000000'; + this.renderer.fillRect(0, 0, this._renderer.canvas.width, this._renderer.canvas.height); } - public get tilemapRenderer(): NitroTilemap + public get renderer(): CanvasRenderingContext2D { - return this._tilemapRenderer; + return this._renderer; } public get tilemap(): Tile[][] @@ -417,4 +379,4 @@ export class FloorplanEditor extends PixiApplicationProxy return FloorplanEditor._INSTANCE; } -} +} \ No newline at end of file diff --git a/src/components/floorplan-editor/common/FloorplanResource.ts b/src/components/floorplan-editor/common/FloorplanResource.ts new file mode 100644 index 000000000..f09922805 --- /dev/null +++ b/src/components/floorplan-editor/common/FloorplanResource.ts @@ -0,0 +1,248 @@ +export const imageBase64 = + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAAC+CAMAAADnThrbAAAAYFBMVEUAAAAiIiIAZf8A6P8A/5MZ/wCb/wD/tQD/MgD/AHr/APxDXocAkf8A/+oA/2hE/wDy/wD/iQD/BwD/AKXWAP////8AvP8A/78A/z1w/wD/4AD/XgD/ACP/ANGqAP8QEBBSz3qJAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAABJxJREFUeNrt1tuOszoMBeDpD7QFBloKDGf6/m+51UTj1PUhN1uWOup3vSQLkSzn6+vV4fAV9X9lLIcdDv/+xWKHw/d3PPPzE8k8Rj1osceoBz3z4yiZ31HauN9R2rjfUcq451HSuOdR0rjnUcK411HcuNdR3LjXUcw4btTrOG7U6zhu1Ms4adTzOGnU8zhpVBh30Eb5cQ/fKp/5UR1+51l9mfU/Mz6NxvfMuEGMu9G49f/y8vzLz4Ikif/8qopnhiF6FhNHP9aVo2cGR71lCZAvbAXkzADE/kgQvooqhM8MCNuMCUFLtiJoZiBI5ycsvD4qFs4MLLTNElFYjJUoZAYRPAsSlV/5lcpnBhU8C6y+zPqfGZ9G43tm3CDG3Wjc+p9N/Z7PgjSN//y6jmfGMXoWU0c/1rWjZ0ZHvWUpkC9sDeTMCMT+SBG+imqEz4wI24wpQUu2JmhmJEjnpyy8PmoWzowstM1SUViMtShkRhE8C1KVX/m1ymdGFTwLrL7M+p8Zn0bje2bcIMbdaNz6n039ns+CLIv//Mslnpmm6FnMHP1YXxw9MznqLcuAfGEvQM5MQOyPDOGr6ILwmQlhmzEjaMleCJqZCNL5GQuvjwsLZyYW2maZKCzGiyhkJhE8CzKVX/kXlc9MKngWWH2Z9T8zPo3G98y4QYy70bj1P5v6PZ8Fx2P851+v8cw8R8/i0dGP9dXRM7Oj3rIjkC/sFciZGYj9cUT4KroifGZG2GY8ErRkrwTNzATp/CMLr48rC2dmFtpmR1FYjFdRyMwieBYcVX7lX1U+M6vgWWD1Zdb/zPg0Gt8z4wYx7kbj1v9s6vd8FpxO8Z/fNPHMskTP4snRj3Xj6JnFUW/ZCcgXtgFyZgFif5wQvooahM8sCNuMJ4KWbEPQzEKQzj+x8PpoWDizsNA2O4nCYmxEIbOI4FlwUvmV36h8ZlHBs8Dqy6z/mfFpNL5nxg1i3I3Grf/Z1O/5LDif4z//dotn1jV6Fs+Ofqxvjp5ZHfWWnYF8YW9AzqxA7I8zwlfRDeEzK8I245mgJXsjaGYlSOefWXh93Fg4s7LQNjuLwmK8iUJmFcGz4KzyK/+m8plVBc8Cqy+z/mfGp9H4nhk3iHE3Grf+Z1O/57Mgz+M/v23jmW2LnsXc0Y916+iZzVFvWQ7kC9sCObMBsT9yhK+iFuEzG8I2Y07Qkm0JmtkI0vk5C6+PloUzGwtts1wUFmMrCplNBM+CXOVXfqvymU0FzwKrL7P+Z8an0fieGTeIcTcat/5nU7/ns6Ao4j+/6+KZfY+excLRj3Xn6JndUW9ZAeQL2wE5swOxPwqEr6IO4TM7wjZjQdCS7Qia2QnS+QULr4+OhTM7C22zQhQWYycKmV0Ez4JC5Vd+p/KZXQXPAqsvs/5nxqfR+J4ZN4hxNxq3/mdTv+ezoCzjP7/v45n7PXoWS0c/1r2jZ+6OestKIF/YHsiZOxD7o0T4KuoRPnNH2GYsCVqyPUEzd4J0fsnC66Nn4cydhbZZKQqLsReFzF0Ez4JS5Vd+r/KZuwqeBVZfZv3PjE+j8T0zbhDjbjRu/b+0PP8DZwi9QurvbfwAAAAASUVORK5CYII='; + +export const spritesheet = { + frames: { + '0': { + frame: { x: 1, y: 1, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + '1': { + frame: { x: 37, y: 1, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + '2': { + frame: { x: 73, y: 1, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + '3': { + frame: { x: 1, y: 20, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + '4': { + frame: { x: 37, y: 20, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + '5': { + frame: { x: 73, y: 20, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + '6': { + frame: { x: 1, y: 39, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + '7': { + frame: { x: 37, y: 39, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + '8': { + frame: { x: 73, y: 39, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + '9': { + frame: { x: 1, y: 58, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'a': { + frame: { x: 37, y: 58, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'b': { + frame: { x: 73, y: 58, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'c': { + frame: { x: 1, y: 77, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'd': { + frame: { x: 37, y: 77, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'e': { + frame: { x: 73, y: 77, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'f': { + frame: { x: 1, y: 96, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'g': { + frame: { x: 37, y: 96, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'h': { + frame: { x: 73, y: 96, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'i': { + frame: { x: 1, y: 115, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'j': { + frame: { x: 37, y: 115, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'k': { + frame: { x: 73, y: 115, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'l': { + frame: { x: 1, y: 134, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'm': { + frame: { x: 37, y: 134, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'n': { + frame: { x: 73, y: 134, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'o': { + frame: { x: 1, y: 153, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'p': { + frame: { x: 37, y: 153, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'q': { + frame: { x: 73, y: 153, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'r': { + frame: { x: 73, y: 153, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'r_blocked': { + frame: { x: 1, y: 172, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'r_door': { + frame: { x: 37, y: 172, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 's': { + frame: { x: 73, y: 153, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 't': { + frame: { x: 73, y: 153, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + 'x': { + frame: { x: 73, y: 172, w: 34, h: 17 }, + rotated: false, + trimmed: false, + spriteSourceSize: { x: 0, y: 0, w: 34, h: 17 }, + sourceSize: { w: 34, h: 17 }, + }, + }, + meta: { + app: 'https://www.codeandweb.com/texturepacker', + version: '1.0', + image: 'tiles.png', + format: 'RGBA8888', + size: { w: 108, h: 190 }, + scale: '1', + smartupdate: + '$TexturePacker:SmartUpdate:6d0f8373580629749f786a0b0f6c6bb9:96dff9df69bdc6938cf02f254bbe028b:accbe1e7e294ded8391337fc1c446319$', + }, +}; \ No newline at end of file diff --git a/src/components/floorplan-editor/common/Utils.ts b/src/components/floorplan-editor/common/Utils.ts index 841b1938d..78cc45251 100644 --- a/src/components/floorplan-editor/common/Utils.ts +++ b/src/components/floorplan-editor/common/Utils.ts @@ -5,14 +5,14 @@ export const getScreenPositionForTile = (x: number, y: number): [number , number let positionX = (x * TILE_SIZE / 2) - (y * TILE_SIZE / 2); const positionY = (x * TILE_SIZE / 4) + (y * TILE_SIZE / 4); - positionX = positionX + 1024; // center the map in the canvas + positionX = positionX + 1600; // center the map in the canvas return [ positionX, positionY ]; } export const getTileFromScreenPosition = (x: number, y: number): [number, number] => { - const translatedX = x - 1024; // after centering translation + const translatedX = x - 1600; // after centering translation const realX = ((translatedX /(TILE_SIZE / 2)) + (y / (TILE_SIZE / 4))) / 2; const realY = ((y /(TILE_SIZE / 4)) - (translatedX / (TILE_SIZE / 2))) / 2; diff --git a/src/components/floorplan-editor/views/FloorplanCanvasView.tsx b/src/components/floorplan-editor/views/FloorplanCanvasView.tsx index 6db052e47..1073f014c 100644 --- a/src/components/floorplan-editor/views/FloorplanCanvasView.tsx +++ b/src/components/floorplan-editor/views/FloorplanCanvasView.tsx @@ -4,8 +4,8 @@ import { FaArrowDown, FaArrowLeft, FaArrowRight, FaArrowUp } from 'react-icons/f import { SendMessageComposer } from '../../../api'; import { Base, Button, Column, ColumnProps, Flex, Grid } from '../../../common'; import { useMessageEvent } from '../../../hooks'; -import { FloorplanEditor } from '../common/FloorplanEditor'; import { useFloorplanEditorContext } from '../FloorplanEditorContext'; +import { FloorplanEditor } from '../common/FloorplanEditor'; export const FloorplanCanvasView: FC = props => { @@ -32,7 +32,7 @@ export const FloorplanCanvasView: FC = props => setOccupiedTilesReceived(true); - elementRef.current.scrollTo((FloorplanEditor.instance.view.width / 3), 0); + elementRef.current.scrollTo((FloorplanEditor.instance.renderer.canvas.width / 3), 0); }); useMessageEvent(RoomEntryTileMessageEvent, event => @@ -86,6 +86,25 @@ export const FloorplanCanvasView: FC = props => } } + const onPointerEvent = (event: PointerEvent) => + { + event.preventDefault(); + + switch(event.type) + { + case 'pointerout': + case 'pointerup': + FloorplanEditor.instance.onPointerRelease(); + break; + case 'pointerdown': + FloorplanEditor.instance.onPointerDown(event); + break; + case 'pointermove': + FloorplanEditor.instance.onPointerMove(event); + break; + } + } + useEffect(() => { return () => @@ -116,22 +135,46 @@ export const FloorplanCanvasView: FC = props => SendMessageComposer(new GetRoomEntryTileMessageComposer()); SendMessageComposer(new GetOccupiedTilesMessageComposer()); - FloorplanEditor.instance.tilemapRenderer.interactive = true; + const currentElement = elementRef.current; - if(!elementRef.current) return; + if(!currentElement) return; + + currentElement.appendChild(FloorplanEditor.instance.renderer.canvas); - elementRef.current.appendChild(FloorplanEditor.instance.renderer.view); + currentElement.addEventListener('pointerup', onPointerEvent); + + currentElement.addEventListener('pointerout', onPointerEvent); + + currentElement.addEventListener('pointerdown', onPointerEvent); + + currentElement.addEventListener('pointermove', onPointerEvent); + + return () => + { + if(currentElement) + { + currentElement.removeEventListener('pointerup', onPointerEvent); + + currentElement.removeEventListener('pointerout', onPointerEvent); + + currentElement.removeEventListener('pointerdown', onPointerEvent); + + currentElement.removeEventListener('pointermove', onPointerEvent); + } + } }, []); + const isSmallScreen = () => window.innerWidth < 768; + return ( - + - + - + @@ -153,4 +196,4 @@ export const FloorplanCanvasView: FC = props => { children } ); -} +} \ No newline at end of file diff --git a/src/components/floorplan-editor/views/FloorplanImportExportView.tsx b/src/components/floorplan-editor/views/FloorplanImportExportView.tsx index 99004359e..fada3b426 100644 --- a/src/components/floorplan-editor/views/FloorplanImportExportView.tsx +++ b/src/components/floorplan-editor/views/FloorplanImportExportView.tsx @@ -37,7 +37,7 @@ export const FloorplanImportExportView: FC = pro }); return ( - +