From baa9c6c6ec87c16828fbf75b8491ced0a9a9d5bc Mon Sep 17 00:00:00 2001 From: tiye Date: Thu, 29 Feb 2024 02:42:19 +0800 Subject: [PATCH] connecting to gamepad --- calcit.cirru | 25 +++++++ compact.cirru | 7 ++ package.json | 6 +- src/config.mts | 9 +++ src/control.mts | 40 ++++++++++ src/gamepad.ts | 106 ++++++++++++++++++++++++++ src/setup.mts | 10 ++- yarn.lock | 194 ++++++++++++++++++++++++------------------------ 8 files changed, 294 insertions(+), 103 deletions(-) create mode 100644 src/gamepad.ts diff --git a/calcit.cirru b/calcit.cirru index b9b7da3..fa684a9 100644 --- a/calcit.cirru +++ b/calcit.cirru @@ -372,6 +372,31 @@ |b $ %{} :Leaf (:at 1706460593534) (:by |rJG4IHzWf) (:text |:lorenz83) |h $ %{} :Leaf (:at 1706460597111) (:by |rJG4IHzWf) (:text ||Lorenz83) |l $ %{} :Leaf (:at 1702230361864) (:by |rJG4IHzWf) (:text |:dark) + |threshold $ %{} :CodeEntry (:doc |) + :code $ %{} :Expr (:at 1709145122009) (:by |rJG4IHzWf) + :data $ {} + |T $ %{} :Leaf (:at 1709145144404) (:by |rJG4IHzWf) (:text |def) + |b $ %{} :Leaf (:at 1709145122009) (:by |rJG4IHzWf) (:text |threshold) + |h $ %{} :Expr (:at 1709145122009) (:by |rJG4IHzWf) + :data $ {} + |T $ %{} :Leaf (:at 1709145149293) (:by |rJG4IHzWf) (:text |js/parseFloat) + |b $ %{} :Expr (:at 1709145151331) (:by |rJG4IHzWf) + :data $ {} + |T $ %{} :Leaf (:at 1709145155765) (:by |rJG4IHzWf) (:text |or) + |b $ %{} :Expr (:at 1709145158533) (:by |rJG4IHzWf) + :data $ {} + |T $ %{} :Leaf (:at 1709145166013) (:by |rJG4IHzWf) (:text |get-env) + |b $ %{} :Leaf (:at 1709145163826) (:by |rJG4IHzWf) (:text "|\"threshold") + |h $ %{} :Leaf (:at 1709145170193) (:by |rJG4IHzWf) (:text "|\"0.016") + |use-gamepad? $ %{} :CodeEntry (:doc |) + :code $ %{} :Expr (:at 1709145115022) (:by |rJG4IHzWf) + :data $ {} + |T $ %{} :Leaf (:at 1709145132175) (:by |rJG4IHzWf) (:text |def) + |b $ %{} :Leaf (:at 1709145130497) (:by |rJG4IHzWf) (:text |use-gamepad?) + |h $ %{} :Expr (:at 1709145115022) (:by |rJG4IHzWf) + :data $ {} + |T $ %{} :Leaf (:at 1709145135535) (:by |rJG4IHzWf) (:text |get-env) + |b $ %{} :Leaf (:at 1709145137508) (:by |rJG4IHzWf) (:text "|\"gamepad") :ns $ %{} :CodeEntry (:doc |) :code $ %{} :Expr (:at 1527788237503) (:by |root) :data $ {} diff --git a/compact.cirru b/compact.cirru index 99b05a3..f4c3641 100644 --- a/compact.cirru +++ b/compact.cirru @@ -52,6 +52,13 @@ |tabs $ %{} :CodeEntry (:doc |) :code $ quote def tabs $ [] (:: :fireworks |Fireworks :dark) (:: :lorenz |Lorenz :dark) (:: :aizawa |Aizawa :dark) (:: :fourwing "|Four Wing" :dark) (:: :fractal |Fractal :dark) (:: :collision |Collision :dark) (:: :bounce |Bounce :dark) (:: :feday |FEDAY :dark) (:: :bifurcation "\"Bifurcation" :dark) (:: :ball-spin "\"Ball Spin" :dark) (:: :lifegame "\"Lifegame" :dark) (:: :lifegame-trail "\"Lifegame Trail" :dark) (:: :bounce-trail "|Bounce Trail" :dark) (:: :orbit-spark "|Orbit Spark" :dark) (:: :chen |Chen :dark) (:: :sprott |Sprott :dark) (:: :lorenz83 |Lorenz83 :dark) + |threshold $ %{} :CodeEntry (:doc |) + :code $ quote + def threshold $ js/parseFloat + or (get-env "\"threshold") "\"0.016" + |use-gamepad? $ %{} :CodeEntry (:doc |) + :code $ quote + def use-gamepad? $ get-env "\"gamepad" :ns $ %{} :CodeEntry (:doc |) :code $ quote ns app.config $ :require diff --git a/package.json b/package.json index 186e38b..d09a4d4 100644 --- a/package.json +++ b/package.json @@ -5,12 +5,12 @@ "devDependencies": { "@webgpu/types": "^0.1.40", "bottom-tip": "^0.1.5", - "query-string": "^8.1.0", + "query-string": "^9.0.0", "typescript": "^5.3.3", - "vite": "^5.0.12" + "vite": "^5.1.4" }, "dependencies": { - "@calcit/procs": "^0.8.19", + "@calcit/procs": "^0.8.37", "@triadica/touch-control": "^0.0.4-a1", "ismobilejs": "^1.1.1" }, diff --git a/src/config.mts b/src/config.mts index a68d070..c367947 100644 --- a/src/config.mts +++ b/src/config.mts @@ -1,3 +1,12 @@ import isMobilejs from "ismobilejs"; +import queryString from "query-string"; export let isMobile = isMobilejs(window.navigator).any; // TODO test + +const parsed = queryString.parse(location.search); + +export let useGamepad = parsed["gamepad"]; + +export let threshold = parseFloat((parsed["threshold"] as string) || "0.016"); + +export let useRemoveContrl = parsed["remote-control"]; diff --git a/src/control.mts b/src/control.mts index 5df1166..8a4e8f2 100644 --- a/src/control.mts +++ b/src/control.mts @@ -1,10 +1,13 @@ +import { setupGamepadControl } from "./gamepad"; import { moveViewerBy, rotateGlanceBy, spinGlanceBy, changeScaleBy, + atomViewerScale, } from "./perspective.mjs"; import { ControlStates } from "@triadica/touch-control"; +import { threshold } from "./config.mjs"; /** 2D point */ export type V2 = [number, number]; @@ -60,3 +63,40 @@ export function registerShaderResult( ) { window.__lagopusHandleCompilationInfo = f; } + +let someValue = (x: number) => { + return Math.abs(x) > threshold ? x : 0; +}; + +export let loadGamepadControl = () => { + console.log("loading gamepad control"); + setupGamepadControl((axes, buttons) => { + let scale = atomViewerScale.deref(); + let ss = 1 / scale; + // left/right, up/down, front/back + moveViewerBy( + someValue(axes.rightX) * 10 * ss, + -someValue(axes.rightY) * 10 * ss, + someValue(axes.leftY) * 10 * ss + ); + rotateGlanceBy( + -0.1 * someValue(axes.leftX), + 0.05 * (buttons.up.value - buttons.down.value) + ); + + spinGlanceBy(0.1 * (buttons.right.value - buttons.left.value)); + + if (buttons.l2.value > 0.5) { + changeScaleBy(0.01); + } + if (buttons.r2.value > 0.5) { + changeScaleBy(-0.01); + } + + registerShaderResult((e, code) => { + if (e.messages.length) { + console.error(e); + } + }); + }); +}; diff --git a/src/gamepad.ts b/src/gamepad.ts new file mode 100644 index 0000000..b3312e7 --- /dev/null +++ b/src/gamepad.ts @@ -0,0 +1,106 @@ +let controllers: Record = {}; + +let looper: any; + +export type GameAxes = { + leftX: number; + leftY: number; + rightX: number; + rightY: number; +}; + +export type GameButtons = { + face1: GamepadButton; + face2: GamepadButton; + face3: GamepadButton; + face4: GamepadButton; + l1: GamepadButton; + r1: GamepadButton; + l2: GamepadButton; + r2: GamepadButton; + select: GamepadButton; + start: GamepadButton; + l3: GamepadButton; + r3: GamepadButton; + up: GamepadButton; + down: GamepadButton; + left: GamepadButton; + right: GamepadButton; +}; + +let handler = (axes: GameAxes, buttons: GameButtons) => { + console.log("default..."); +}; + +export let setupGamepadControl = ( + f: (axes: GameAxes, buttons: GameButtons) => void +) => { + handler = f; + window.addEventListener("gamepadconnected", connecthandler); + window.addEventListener("gamepaddisconnected", disconnecthandler); +}; + +let connecthandler = (e: GamepadEvent) => { + console.log("Gamepad", e); + + controllers[e.gamepad.index] = e.gamepad; + gameLoop(); +}; + +let disconnecthandler = (e: GamepadEvent) => { + delete controllers[e.gamepad.index]; + cancelAnimationFrame(looper); +}; + +let gameLoop = () => { + const gamepads = navigator.getGamepads(); + let gp = gamepads[0]; + let [ + face1, + face2, + face3, + face4, + l1, + r1, + l2, + r2, + select, + start, + l3, + r3, + up, + down, + left, + right, + ] = gp.buttons; + let [leftX, leftY, rightX, rightY] = gp.axes; + + handler( + { + leftX, + leftY, + rightX, + rightY, + }, + { + // face1, + // face2, + // face3, + // face4, + l1, + r1, + l2, + r2, + // select, + // start, + // l3, + // r3, + up, + down, + left, + right, + } as GameButtons + ); + + looper = setTimeout(gameLoop, 10); +}; diff --git a/src/setup.mts b/src/setup.mts index 6ae7440..7eb5dd9 100644 --- a/src/setup.mts +++ b/src/setup.mts @@ -9,6 +9,8 @@ import { resetCanvasSize, setupRemoteControl, } from "./index.mjs"; +import { useGamepad, useRemoveContrl } from "./config.mjs"; +import { loadGamepadControl } from "./control.mjs"; export async function setupInitials(canvas: HTMLCanvasElement) { const adapter = await navigator.gpu.requestAdapter(); @@ -26,9 +28,11 @@ export async function setupInitials(canvas: HTMLCanvasElement) { renderControl(); startControlLoop(10, onControlEvent); - const parsed = queryString.parse(location.search); - - if (parsed["remote-control"]) { + if (useRemoveContrl) { setupRemoteControl(); } + + if (useGamepad) { + loadGamepadControl(); + } } diff --git a/yarn.lock b/yarn.lock index aa76dba..190eb3d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@calcit/procs@^0.8.19": - version "0.8.19" - resolved "https://registry.yarnpkg.com/@calcit/procs/-/procs-0.8.19.tgz#399ca0eb7b8a2c3bc6de39ced8f5b2a04281143b" - integrity sha512-FC+Nx+kdOGkHettUz2sd6EnuH5UovmN+8j7VhPJWzvYjHzEQRjz51IlqOxdoXxxjZ0IuMoehvNAJglan0iCA0g== +"@calcit/procs@^0.8.37": + version "0.8.37" + resolved "https://registry.yarnpkg.com/@calcit/procs/-/procs-0.8.37.tgz#d20682c66e49348cce46d71ce1386bd99052b769" + integrity sha512-2Du41yVZhA66VA8RbMU0p+d57XPDXgNcJQ2UZXlz+Uul9b/0veFLN6symYVvTr6H6WWG5z8PxpiM4IDd/yDktA== dependencies: "@calcit/ternary-tree" "0.0.23" "@cirru/parser.ts" "^0.0.6" @@ -141,70 +141,70 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== -"@rollup/rollup-android-arm-eabi@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz#66b8d9cb2b3a474d115500f9ebaf43e2126fe496" - integrity sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg== - -"@rollup/rollup-android-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz#46327d5b86420d2307946bec1535fdf00356e47d" - integrity sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw== - -"@rollup/rollup-darwin-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz#166987224d2f8b1e2fd28ee90c447d52271d5e90" - integrity sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw== - -"@rollup/rollup-darwin-x64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz#a2e6e096f74ccea6e2f174454c26aef6bcdd1274" - integrity sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog== - -"@rollup/rollup-linux-arm-gnueabihf@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz#09fcd4c55a2d6160c5865fec708a8e5287f30515" - integrity sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ== - -"@rollup/rollup-linux-arm64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz#19a3c0b6315c747ca9acf86e9b710cc2440f83c9" - integrity sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ== - -"@rollup/rollup-linux-arm64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz#94aaf95fdaf2ad9335983a4552759f98e6b2e850" - integrity sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ== - -"@rollup/rollup-linux-riscv64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz#160510e63f4b12618af4013bddf1761cf9fc9880" - integrity sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA== - -"@rollup/rollup-linux-x64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz#5ac5d068ce0726bd0a96ca260d5bd93721c0cb98" - integrity sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw== - -"@rollup/rollup-linux-x64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz#bafa759ab43e8eab9edf242a8259ffb4f2a57a5d" - integrity sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ== - -"@rollup/rollup-win32-arm64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz#1cc3416682e5a20d8f088f26657e6e47f8db468e" - integrity sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA== - -"@rollup/rollup-win32-ia32-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz#7d2251e1aa5e8a1e47c86891fe4547a939503461" - integrity sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ== - -"@rollup/rollup-win32-x64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6" - integrity sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ== +"@rollup/rollup-android-arm-eabi@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz#38c3abd1955a3c21d492af6b1a1dca4bb1d894d6" + integrity sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w== + +"@rollup/rollup-android-arm64@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz#3822e929f415627609e53b11cec9a4be806de0e2" + integrity sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ== + +"@rollup/rollup-darwin-arm64@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz#6c082de71f481f57df6cfa3701ab2a7afde96f69" + integrity sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ== + +"@rollup/rollup-darwin-x64@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz#c34ca0d31f3c46a22c9afa0e944403eea0edcfd8" + integrity sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg== + +"@rollup/rollup-linux-arm-gnueabihf@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz#48e899c1e438629c072889b824a98787a7c2362d" + integrity sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA== + +"@rollup/rollup-linux-arm64-gnu@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz#788c2698a119dc229062d40da6ada8a090a73a68" + integrity sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA== + +"@rollup/rollup-linux-arm64-musl@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz#3882a4e3a564af9e55804beeb67076857b035ab7" + integrity sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ== + +"@rollup/rollup-linux-riscv64-gnu@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz#0c6ad792e1195c12bfae634425a3d2aa0fe93ab7" + integrity sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw== + +"@rollup/rollup-linux-x64-gnu@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz#9d62485ea0f18d8674033b57aa14fb758f6ec6e3" + integrity sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA== + +"@rollup/rollup-linux-x64-musl@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz#50e8167e28b33c977c1f813def2b2074d1435e05" + integrity sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw== + +"@rollup/rollup-win32-arm64-msvc@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz#68d233272a2004429124494121a42c4aebdc5b8e" + integrity sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw== + +"@rollup/rollup-win32-ia32-msvc@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz#366ca62221d1689e3b55a03f4ae12ae9ba595d40" + integrity sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA== + +"@rollup/rollup-win32-x64-msvc@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz#9ffdf9ed133a7464f4ae187eb9e1294413fab235" + integrity sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg== "@triadica/touch-control@^0.0.4-a1": version "0.0.4-a1" @@ -354,10 +354,10 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -postcss@^8.4.32: - version "8.4.33" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" - integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== +postcss@^8.4.35: + version "8.4.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" + integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" @@ -368,35 +368,35 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -query-string@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-8.1.0.tgz#e7f95367737219544cd360a11a4f4ca03836e115" - integrity sha512-BFQeWxJOZxZGix7y+SByG3F36dA0AbTy9o6pSmKFcFz7DAj0re9Frkty3saBn3nHo3D0oZJ/+rx3r8H8r8Jbpw== +query-string@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-9.0.0.tgz#1fe177cd95545600f0deab93f5fb02fd4e3e7273" + integrity sha512-4EWwcRGsO2H+yzq6ddHcVqkCQ2EFUSfDMEjF8ryp8ReymyZhIuaFRGLomeOQLkrzacMHoyky2HW0Qe30UbzkKw== dependencies: decode-uri-component "^0.4.1" filter-obj "^5.1.0" split-on-first "^3.0.0" rollup@^4.2.0: - version "4.9.6" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.6.tgz#4515facb0318ecca254a2ee1315e22e09efc50a0" - integrity sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg== + version "4.12.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.12.0.tgz#0b6d1e5f3d46bbcf244deec41a7421dc54cc45b5" + integrity sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.9.6" - "@rollup/rollup-android-arm64" "4.9.6" - "@rollup/rollup-darwin-arm64" "4.9.6" - "@rollup/rollup-darwin-x64" "4.9.6" - "@rollup/rollup-linux-arm-gnueabihf" "4.9.6" - "@rollup/rollup-linux-arm64-gnu" "4.9.6" - "@rollup/rollup-linux-arm64-musl" "4.9.6" - "@rollup/rollup-linux-riscv64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-musl" "4.9.6" - "@rollup/rollup-win32-arm64-msvc" "4.9.6" - "@rollup/rollup-win32-ia32-msvc" "4.9.6" - "@rollup/rollup-win32-x64-msvc" "4.9.6" + "@rollup/rollup-android-arm-eabi" "4.12.0" + "@rollup/rollup-android-arm64" "4.12.0" + "@rollup/rollup-darwin-arm64" "4.12.0" + "@rollup/rollup-darwin-x64" "4.12.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.12.0" + "@rollup/rollup-linux-arm64-gnu" "4.12.0" + "@rollup/rollup-linux-arm64-musl" "4.12.0" + "@rollup/rollup-linux-riscv64-gnu" "4.12.0" + "@rollup/rollup-linux-x64-gnu" "4.12.0" + "@rollup/rollup-linux-x64-musl" "4.12.0" + "@rollup/rollup-win32-arm64-msvc" "4.12.0" + "@rollup/rollup-win32-ia32-msvc" "4.12.0" + "@rollup/rollup-win32-x64-msvc" "4.12.0" fsevents "~2.3.2" source-map-js@^1.0.2: @@ -433,13 +433,13 @@ virtual-dom@^2.1.1: x-is-array "0.1.0" x-is-string "0.1.0" -vite@^5.0.12: - version "5.0.12" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47" - integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w== +vite@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.1.4.tgz#14e9d3e7a6e488f36284ef13cebe149f060bcfb6" + integrity sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg== dependencies: esbuild "^0.19.3" - postcss "^8.4.32" + postcss "^8.4.35" rollup "^4.2.0" optionalDependencies: fsevents "~2.3.3"