From 814b0af9c6f026ed2b2fa7cf0fdaeac1454f9fb1 Mon Sep 17 00:00:00 2001 From: Brian Beck Date: Wed, 25 Mar 2026 22:55:16 -0600 Subject: [PATCH] fix additive animations --- ...r-2bTNGdLP.js => AudioEmitter-Dk4R9QgT.js} | 2 +- ...nput-B9JdqF5v.js => ChatInput-BrDNmg1o.js} | 2 +- ...kJcKyFh.js => ChatSoundPlayer-DZxyjwrv.js} | 2 +- ...-DbcJj7CW.js => DebugElements-Dy-m_wVx.js} | 2 +- ...PI.js => DemoPlaybackControls-D--l_WXN.js} | 2 +- docs/assets/DemoPlaybackControls-D1aGRzqE.css | 1 + docs/assets/DemoPlaybackControls-V-lirz3V.css | 1 - ...-4Yii8rRq.js => FloatingLabel-Bm1LwAgd.js} | 2 +- ...eView-DOXRUG38.js => GameView-C7uJjiJd.js} | 6 +- docs/assets/GenericShape-BC0gDQiR.js | 9 - docs/assets/GenericShape-FZ5loHEW.js | 9 + .../{Html-BfjRWIZg.js => Html-DTt-Asp4.js} | 2 +- ...875z9z7.js => KeyboardOverlay-Du-YZ_-q.js} | 2 +- ...-BlS8j0JO.js => MapInfoDialog-C3Dk90R7.js} | 2 +- ...ission-Coy6f_9U.js => Mission-nILJLxCJ.js} | 2 +- ...rHUD-ZLAOgfFu.js => PlayerHUD-IFZkOeCb.js} | 4 +- ...el-CbQhsRlW.js => PlayerModel-Cm8DLHtl.js} | 2 +- ...es-DWQwPDtG.js => Projectiles-Uxzfj6xB.js} | 2 +- ...en-94psq8zp.js => ScoreScreen-oQegOqLS.js} | 2 +- ...-BK-yGyhv.js => ServerBrowser-DxPc-p2a.js} | 2 +- ...del-BCrUHJyp.js => ShapeModel-BMJjmLiG.js} | 2 +- ...NV4.js => StreamingController-CqQqOUzP.js} | 4 +- ...r-CV_1nnl6.js => TouchHandler-BGxxpP92.js} | 2 +- ...-vQjQowT8.js => demoStreaming-Tnv976xF.js} | 2 +- docs/assets/index-B1XI52_L.js | 12 -- docs/assets/index-DPUMrbG6.css | 1 + docs/assets/index-DfaykQpF.js | 12 ++ docs/assets/index-DvT5LFSb.css | 1 - ...y-NrPec9_7.js => useBaseQuery-Co62zxSo.js} | 2 +- docs/assets/useQuery-FY4YqwDi.js | 1 - docs/assets/useQuery-lKBLxuin.js | 1 + .../Classic_maps_v1.vl2/shapes/borg11.glb | Bin 6436 -> 6464 bytes .../TR2final105-client.vl2/shapes/TR2flag.glb | Bin 6808 -> 6836 bytes .../shapes/TR2heavy_male.glb | Bin 760140 -> 760384 bytes .../shapes/TR2light_female.glb | Bin 718016 -> 718256 bytes .../shapes/TR2light_male.glb | Bin 110796 -> 110904 bytes .../shapes/TR2medium_female.glb | Bin 729664 -> 729908 bytes .../shapes/TR2medium_male.glb | Bin 752724 -> 752972 bytes .../shapes/TR2weapon_chaingun.glb | Bin 55880 -> 55924 bytes .../shapes/TR2weapon_disc.glb | Bin 23396 -> 23456 bytes .../shapes/TR2weapon_grenade_launcher.glb | Bin 29764 -> 29800 bytes .../shapes/TR2weapon_mortar.glb | Bin 52584 -> 52616 bytes .../shapes/TR2weapon_shocklance.glb | Bin 41896 -> 41940 bytes .../@vl2/shapes.vl2/shapes/ammo_plasma.glb | Bin 12268 -> 12296 bytes .../@vl2/shapes.vl2/shapes/banner_honor.glb | Bin 6248 -> 6280 bytes .../shapes.vl2/shapes/banner_strength.glb | Bin 6256 -> 6288 bytes .../@vl2/shapes.vl2/shapes/banner_unity.glb | Bin 6248 -> 6280 bytes docs/base/@vl2/shapes.vl2/shapes/beacon.glb | Bin 7356 -> 7388 bytes .../@vl2/shapes.vl2/shapes/bioderm_heavy.glb | Bin 987716 -> 988000 bytes .../@vl2/shapes.vl2/shapes/bioderm_light.glb | Bin 941228 -> 941524 bytes .../@vl2/shapes.vl2/shapes/bioderm_medium.glb | Bin 972224 -> 972516 bytes docs/base/@vl2/shapes.vl2/shapes/borg12.glb | Bin 4420 -> 4452 bytes docs/base/@vl2/shapes.vl2/shapes/borg13.glb | Bin 8724 -> 8756 bytes docs/base/@vl2/shapes.vl2/shapes/borg2.glb | Bin 37848 -> 37880 bytes docs/base/@vl2/shapes.vl2/shapes/borg3.glb | Bin 5152 -> 5184 bytes docs/base/@vl2/shapes.vl2/shapes/camera.glb | Bin 18256 -> 18324 bytes .../@vl2/shapes.vl2/shapes/chaingun_shot.glb | Bin 7748 -> 7780 bytes .../@vl2/shapes.vl2/shapes/deploy_ammo.glb | Bin 32516 -> 32556 bytes .../shapes.vl2/shapes/deploy_inventory.glb | Bin 68292 -> 68348 bytes .../shapes/deploy_sensor_motion.glb | Bin 19160 -> 19212 bytes .../shapes.vl2/shapes/deploy_sensor_pulse.glb | Bin 24360 -> 24412 bytes docs/base/@vl2/shapes.vl2/shapes/disc.glb | Bin 11240 -> 11284 bytes .../@vl2/shapes.vl2/shapes/disc_explosion.glb | Bin 17268 -> 17296 bytes .../shapes/effect_plasma_explosion.glb | Bin 6732 -> 6764 bytes .../@vl2/shapes.vl2/shapes/energy_bolt.glb | Bin 9252 -> 9284 bytes .../shapes.vl2/shapes/energy_explosion.glb | Bin 3564 -> 3596 bytes .../@vl2/shapes.vl2/shapes/ext_flagstand.glb | Bin 22660 -> 22700 bytes docs/base/@vl2/shapes.vl2/shapes/flag.glb | Bin 8744 -> 8776 bytes .../@vl2/shapes.vl2/shapes/gravemarker_1.glb | Bin 23992 -> 24024 bytes docs/base/@vl2/shapes.vl2/shapes/grenade.glb | Bin 13496 -> 13532 bytes .../@vl2/shapes.vl2/shapes/grenade_flare.glb | Bin 24640 -> 24680 bytes .../@vl2/shapes.vl2/shapes/grenade_flash.glb | Bin 13864 -> 13896 bytes .../shapes.vl2/shapes/grenade_projectile.glb | Bin 5116 -> 5148 bytes .../@vl2/shapes.vl2/shapes/heavy_male.glb | Bin 841228 -> 841512 bytes .../@vl2/shapes.vl2/shapes/light_female.glb | Bin 883060 -> 883364 bytes .../@vl2/shapes.vl2/shapes/light_male.glb | Bin 829344 -> 829656 bytes .../@vl2/shapes.vl2/shapes/medium_female.glb | Bin 875600 -> 875896 bytes .../@vl2/shapes.vl2/shapes/medium_male.glb | Bin 840972 -> 841268 bytes docs/base/@vl2/shapes.vl2/shapes/mine.glb | Bin 30116 -> 30156 bytes .../shapes.vl2/shapes/mortar_explosion.glb | Bin 9576 -> 9608 bytes .../shapes.vl2/shapes/mortar_projectile.glb | Bin 6548 -> 6580 bytes .../@vl2/shapes.vl2/shapes/nexus_effect.glb | Bin 14184 -> 14228 bytes .../base/@vl2/shapes.vl2/shapes/nexusbase.glb | Bin 41728 -> 41772 bytes docs/base/@vl2/shapes.vl2/shapes/nexuscap.glb | Bin 42760 -> 42804 bytes .../shapes.vl2/shapes/pack_deploy_ammo.glb | Bin 10484 -> 10516 bytes .../shapes/pack_deploy_sensor_motion.glb | Bin 13680 -> 13712 bytes .../shapes/pack_deploy_sensor_pulse.glb | Bin 20636 -> 20668 bytes .../shapes/pack_upgrade_cloaking.glb | Bin 33504 -> 33536 bytes .../shapes.vl2/shapes/pack_upgrade_energy.glb | Bin 28312 -> 28344 bytes .../shapes.vl2/shapes/pack_upgrade_repair.glb | Bin 26868 -> 26900 bytes .../shapes/pack_upgrade_satchel.glb | Bin 31440 -> 31480 bytes .../shapes/pack_upgrade_sensorjammer.glb | Bin 21140 -> 21172 bytes .../shapes.vl2/shapes/pack_upgrade_shield.glb | Bin 22060 -> 22092 bytes .../@vl2/shapes.vl2/shapes/plasmabolt.glb | Bin 3096 -> 3128 bytes .../@vl2/shapes.vl2/shapes/repair_kit.glb | Bin 16904 -> 16936 bytes .../@vl2/shapes.vl2/shapes/repair_patch.glb | Bin 11000 -> 11032 bytes .../shapes.vl2/shapes/sensor_pulse_large.glb | Bin 31008 -> 31052 bytes .../shapes.vl2/shapes/sensor_pulse_medium.glb | Bin 24468 -> 24512 bytes .../@vl2/shapes.vl2/shapes/solarpanel.glb | Bin 21048 -> 21092 bytes .../shapes/station_generator_large.glb | Bin 54304 -> 54348 bytes .../shapes.vl2/shapes/station_inv_human.glb | Bin 41392 -> 41448 bytes .../shapes.vl2/shapes/station_inv_mpb.glb | Bin 12124 -> 12168 bytes .../shapes.vl2/shapes/station_teleport.glb | Bin 15484 -> 15536 bytes docs/base/@vl2/shapes.vl2/shapes/switch.glb | Bin 39604 -> 39636 bytes .../@vl2/shapes.vl2/shapes/teamlogo_bd.glb | Bin 9312 -> 9344 bytes .../@vl2/shapes.vl2/shapes/teamlogo_be.glb | Bin 8696 -> 8724 bytes .../@vl2/shapes.vl2/shapes/teamlogo_ds.glb | Bin 9060 -> 9092 bytes .../@vl2/shapes.vl2/shapes/teamlogo_hb.glb | Bin 9232 -> 9264 bytes .../@vl2/shapes.vl2/shapes/teamlogo_inf.glb | Bin 10368 -> 10400 bytes .../shapes.vl2/shapes/teamlogo_projector.glb | Bin 7816 -> 7848 bytes .../@vl2/shapes.vl2/shapes/teamlogo_storm.glb | Bin 8812 -> 8844 bytes .../@vl2/shapes.vl2/shapes/teamlogo_sw.glb | Bin 8132 -> 8164 bytes .../shapes.vl2/shapes/turret_aa_large.glb | Bin 37908 -> 37968 bytes .../shapes/turret_assaulttank_mortar.glb | Bin 28024 -> 28104 bytes .../shapes/turret_assaulttank_plasma.glb | Bin 21180 -> 21236 bytes .../shapes.vl2/shapes/turret_base_large.glb | Bin 59636 -> 59700 bytes .../shapes.vl2/shapes/turret_base_mpb.glb | Bin 37720 -> 37788 bytes .../shapes/turret_belly_barrell.glb | Bin 4112 -> 4148 bytes .../shapes/turret_belly_barrelr.glb | Bin 4112 -> 4152 bytes .../shapes.vl2/shapes/turret_belly_base.glb | Bin 15696 -> 15748 bytes .../shapes.vl2/shapes/turret_elf_large.glb | Bin 68504 -> 68548 bytes .../shapes.vl2/shapes/turret_fusion_large.glb | Bin 32324 -> 32376 bytes .../shapes/turret_indoor_deployc.glb | Bin 50056 -> 50132 bytes .../shapes/turret_indoor_deployf.glb | Bin 49948 -> 50020 bytes .../shapes/turret_indoor_deployw.glb | Bin 54180 -> 54252 bytes .../shapes/turret_missile_large.glb | Bin 36216 -> 36268 bytes .../shapes.vl2/shapes/turret_mortar_large.glb | Bin 71824 -> 71876 bytes .../shapes/turret_outdoor_deploy.glb | Bin 58776 -> 58848 bytes .../@vl2/shapes.vl2/shapes/turret_sentry.glb | Bin 51932 -> 51996 bytes .../shapes/turret_tank_barrelchain.glb | Bin 12732 -> 12784 bytes .../shapes/turret_tank_barrelmortar.glb | Bin 9064 -> 9112 bytes .../shapes.vl2/shapes/turret_tank_base.glb | Bin 7872 -> 7924 bytes .../shapes.vl2/shapes/vehicle_air_bomber.glb | Bin 62176 -> 62240 bytes .../shapes.vl2/shapes/vehicle_air_hapc.glb | Bin 67696 -> 67768 bytes .../shapes.vl2/shapes/vehicle_air_scout.glb | Bin 47168 -> 47232 bytes .../shapes.vl2/shapes/vehicle_grav_scout.glb | Bin 45392 -> 45436 bytes .../shapes.vl2/shapes/vehicle_grav_tank.glb | Bin 65348 -> 65400 bytes .../shapes/vehicle_grav_tank_wreck.glb | Bin 43232 -> 43272 bytes .../shapes/vehicle_land_assault.glb | Bin 30772 -> 30808 bytes .../shapes/vehicle_land_assault_wreck.glb | Bin 43232 -> 43272 bytes .../shapes.vl2/shapes/vehicle_land_mpbase.glb | Bin 414884 -> 415036 bytes .../@vl2/shapes.vl2/shapes/vehicle_pad.glb | Bin 119708 -> 119744 bytes .../shapes.vl2/shapes/vehicle_pad_station.glb | Bin 57440 -> 57492 bytes .../shapes.vl2/shapes/weapon_chaingun.glb | Bin 36804 -> 36848 bytes .../@vl2/shapes.vl2/shapes/weapon_disc.glb | Bin 24108 -> 24168 bytes .../@vl2/shapes.vl2/shapes/weapon_energy.glb | Bin 19464 -> 19516 bytes .../shapes/weapon_grenade_launcher.glb | Bin 22836 -> 22872 bytes .../@vl2/shapes.vl2/shapes/weapon_missile.glb | Bin 14976 -> 15008 bytes .../@vl2/shapes.vl2/shapes/weapon_mortar.glb | Bin 52840 -> 52872 bytes .../@vl2/shapes.vl2/shapes/weapon_plasma.glb | Bin 42284 -> 42336 bytes .../@vl2/shapes.vl2/shapes/weapon_repair.glb | Bin 43912 -> 43948 bytes .../shapes.vl2/shapes/weapon_shocklance.glb | Bin 43684 -> 43728 bytes .../@vl2/shapes.vl2/shapes/weapon_sniper.glb | Bin 23648 -> 23684 bytes docs/base/@vl2/shapes.vl2/shapes/xorg2.glb | Bin 8464 -> 8496 bytes docs/base/@vl2/shapes.vl2/shapes/xorg4.glb | Bin 5608 -> 5640 bytes .../CTF/Classic_maps_v1.vl2/shapes/borg11.glb | Bin 6436 -> 6464 bytes .../z_DMP2-V0.6.vl2/shapes/buildStation.glb | Bin 46168 -> 46204 bytes .../z_DMP2-V0.6.vl2/shapes/cannonTip.glb | Bin 10144 -> 10172 bytes .../z_DMP2-V0.6.vl2/shapes/dsFlame.glb | Bin 4176 -> 4204 bytes .../z_DMP2-V0.6.vl2/shapes/dsPlane.glb | Bin 111144 -> 111176 bytes .../z_DMP2-V0.6.vl2/shapes/faceBox.glb | Bin 957600 -> 957628 bytes .../z_DMP2-V0.6.vl2/shapes/faceSphere.glb | Bin 2540060 -> 2540092 bytes .../z_DMP2-V0.6.vl2/shapes/hellFireGun.glb | Bin 4780 -> 4808 bytes .../z_DMP2-V0.6.vl2/shapes/hellFireTurret.glb | Bin 36696 -> 36748 bytes .../z_DMP2-V0.6.vl2/shapes/t1CMDStation.glb | Bin 22272 -> 22316 bytes .../z_DMP2-V0.6.vl2/shapes/t1Chaingun.glb | Bin 14220 -> 14264 bytes .../z_DMP2-V0.6.vl2/shapes/t1DepAmmo.glb | Bin 51876 -> 51920 bytes .../z_DMP2-V0.6.vl2/shapes/t1DepInvy.glb | Bin 21316 -> 21360 bytes .../shapes/t1GrenadeLauncher.glb | Bin 7504 -> 7532 bytes .../z_DMP2-V0.6.vl2/shapes/t1LSensor.glb | Bin 35768 -> 35804 bytes .../z_DMP2-V0.6.vl2/shapes/t1MisTurret.glb | Bin 38968 -> 39020 bytes .../z_DMP2-V0.6.vl2/shapes/t1PowerGen.glb | Bin 16640 -> 16676 bytes .../z_DMP2-V0.6.vl2/shapes/t1RemoteTurret.glb | Bin 43052 -> 43100 bytes .../z_DMP2-V0.6.vl2/shapes/t1RepairPack.glb | Bin 14204 -> 14236 bytes .../shapes/t1RepairPackGun.glb | Bin 10528 -> 10560 bytes .../z_DMP2-V0.6.vl2/shapes/t1Sentry.glb | Bin 21596 -> 21644 bytes .../z_DMP2-V0.6.vl2/shapes/t1Solar.glb | Bin 18072 -> 18112 bytes .../z_DMP2-V0.6.vl2/shapes/t1TargetLaser.glb | Bin 7236 -> 7268 bytes .../z_DMP2-V0.6.vl2/shapes/t1VehPad.glb | Bin 26984 -> 27024 bytes .../z_DMP2-V0.6.vl2/shapes/t1VehStation.glb | Bin 35064 -> 35108 bytes .../z_DMP2-V0.6.vl2/shapes/t1ammopad.glb | Bin 31196 -> 31240 bytes .../z_DMP2-V0.6.vl2/shapes/t1blaster.glb | Bin 19064 -> 19096 bytes .../z_DMP2-V0.6.vl2/shapes/t1disc.glb | Bin 7764 -> 7824 bytes .../z_DMP2-V0.6.vl2/shapes/t1elfTurret.glb | Bin 26992 -> 27040 bytes .../z_DMP2-V0.6.vl2/shapes/t1flyer.glb | Bin 9744 -> 9776 bytes .../z_DMP2-V0.6.vl2/shapes/t1flyer2.glb | Bin 9748 -> 9776 bytes .../z_DMP2-V0.6.vl2/shapes/t1hpc.glb | Bin 15956 -> 15988 bytes .../shapes/t1inventorystation.glb | Bin 25220 -> 25212 bytes .../z_DMP2-V0.6.vl2/shapes/t1lpc.glb | Bin 12168 -> 12200 bytes .../z_DMP2-V0.6.vl2/shapes/t1mSensor.glb | Bin 25112 -> 25152 bytes .../z_DMP2-V0.6.vl2/shapes/t1mortar.glb | Bin 7032 -> 7064 bytes .../z_DMP2-V0.6.vl2/shapes/t1pGen.glb | Bin 24668 -> 24708 bytes .../z_DMP2-V0.6.vl2/shapes/t1plasma.glb | Bin 7524 -> 7556 bytes .../z_DMP2-V0.6.vl2/shapes/t2DepAmmo.glb | Bin 57100 -> 57144 bytes docs/index.html | 4 +- src/components/Button.module.css | 6 + src/components/CopyCoordinatesButton.tsx | 5 +- .../DemoPlaybackControls.module.css | 5 - src/components/GenericShape.tsx | 154 ++++++++++++++++-- src/components/MissionSelect.module.css | 4 +- src/components/ToggleSidebarButton.module.css | 7 +- src/state/gameEntityTypes.ts | 8 + src/stream/StreamEngine.ts | 49 ++++++ src/stream/entityBridge.ts | 4 + src/stream/types.ts | 8 + 205 files changed, 279 insertions(+), 73 deletions(-) rename docs/assets/{AudioEmitter-2bTNGdLP.js => AudioEmitter-Dk4R9QgT.js} (98%) rename docs/assets/{ChatInput-B9JdqF5v.js => ChatInput-BrDNmg1o.js} (86%) rename docs/assets/{ChatSoundPlayer-CkJcKyFh.js => ChatSoundPlayer-DZxyjwrv.js} (95%) rename docs/assets/{DebugElements-DbcJj7CW.js => DebugElements-Dy-m_wVx.js} (98%) rename docs/assets/{DemoPlaybackControls-B8inlhPI.js => DemoPlaybackControls-D--l_WXN.js} (91%) create mode 100644 docs/assets/DemoPlaybackControls-D1aGRzqE.css delete mode 100644 docs/assets/DemoPlaybackControls-V-lirz3V.css rename docs/assets/{FloatingLabel-4Yii8rRq.js => FloatingLabel-Bm1LwAgd.js} (95%) rename docs/assets/{GameView-DOXRUG38.js => GameView-C7uJjiJd.js} (97%) delete mode 100644 docs/assets/GenericShape-BC0gDQiR.js create mode 100644 docs/assets/GenericShape-FZ5loHEW.js rename docs/assets/{Html-BfjRWIZg.js => Html-DTt-Asp4.js} (98%) rename docs/assets/{KeyboardOverlay-D875z9z7.js => KeyboardOverlay-Du-YZ_-q.js} (99%) rename docs/assets/{MapInfoDialog-BlS8j0JO.js => MapInfoDialog-C3Dk90R7.js} (98%) rename docs/assets/{Mission-Coy6f_9U.js => Mission-nILJLxCJ.js} (98%) rename docs/assets/{PlayerHUD-ZLAOgfFu.js => PlayerHUD-IFZkOeCb.js} (98%) rename docs/assets/{PlayerModel-CbQhsRlW.js => PlayerModel-Cm8DLHtl.js} (99%) rename docs/assets/{Projectiles-DWQwPDtG.js => Projectiles-Uxzfj6xB.js} (98%) rename docs/assets/{ScoreScreen-94psq8zp.js => ScoreScreen-oQegOqLS.js} (99%) rename docs/assets/{ServerBrowser-BK-yGyhv.js => ServerBrowser-DxPc-p2a.js} (98%) rename docs/assets/{ShapeModel-BCrUHJyp.js => ShapeModel-BMJjmLiG.js} (98%) rename docs/assets/{StreamingController-DfXluNV4.js => StreamingController-CqQqOUzP.js} (74%) rename docs/assets/{TouchHandler-CV_1nnl6.js => TouchHandler-BGxxpP92.js} (95%) rename docs/assets/{demoStreaming-vQjQowT8.js => demoStreaming-Tnv976xF.js} (99%) delete mode 100644 docs/assets/index-B1XI52_L.js create mode 100644 docs/assets/index-DPUMrbG6.css create mode 100644 docs/assets/index-DfaykQpF.js delete mode 100644 docs/assets/index-DvT5LFSb.css rename docs/assets/{useBaseQuery-NrPec9_7.js => useBaseQuery-Co62zxSo.js} (99%) delete mode 100644 docs/assets/useQuery-FY4YqwDi.js create mode 100644 docs/assets/useQuery-lKBLxuin.js diff --git a/docs/assets/AudioEmitter-2bTNGdLP.js b/docs/assets/AudioEmitter-Dk4R9QgT.js similarity index 98% rename from docs/assets/AudioEmitter-2bTNGdLP.js rename to docs/assets/AudioEmitter-Dk4R9QgT.js index 51539921..61dd5760 100644 --- a/docs/assets/AudioEmitter-2bTNGdLP.js +++ b/docs/assets/AudioEmitter-Dk4R9QgT.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{r as t,t as n}from"./jsx-runtime-BpGWiA-R.js";import{i as r,o as i}from"./react-three-fiber.esm-CgPHUpXo.js";import{a,i as o}from"./SettingsProvider-CCHVZuSg.js";import{t as s}from"./logger-z_EpIdIa.js";import{Ut as c,bt as l,c as u}from"./three.module-07hRbor4.js";import{r as d}from"./engineStore-Dkm20jvr.js";import{r as f}from"./loaders-CIpiZadQ.js";import{n as p}from"./AudioContext-CMp1T7r9.js";import{t as m}from"./FloatingLabel-4Yii8rRq.js";var h=e(t(),1),g=n(),_=s(`AudioEmitter`),v=new Map,y=new Map;function b(e,t=1){y.set(e,t)}function x(e){y.delete(e)}var S=0;function C(){return S}function w(){S++;for(let[e]of y){try{e.stop()}catch{}try{e.disconnect()}catch{}}y.clear()}d.subscribe(e=>e.playback.rate,e=>{for(let[t,n]of y)try{t.setPlaybackRate(n*e)}catch{}});function T(e,t){let n=t(e),r=n?.filename;if(!r)return null;let i=r.endsWith(`.wav`)?r:`${r}.wav`,a=n.description,o=a==null?void 0:t(a);return{filename:i,is3D:o?.is3D??!0,isLooping:o?.isLooping??!1,refDist:o?.referenceDistance??20,maxDist:o?.maxDistance??100,volume:o?.volume??1}}function E(e,t,n,r,i){let a;try{a=f(e.filename)}catch{return}let o=d.getState().playback.rate,s=S;D(a,n,n=>{if(s===S)try{if(e.is3D&&i){let a=new l(t);a.setBuffer(n),a.setDistanceModel(`inverse`),a.setRefDistance(e.refDist),a.setMaxDistance(e.maxDist),a.setRolloffFactor(1),a.setVolume(e.volume),a.setPlaybackRate(o),r&&a.position.copy(r),i.add(a),y.set(a,1),a.play(),a.source.onended=()=>{y.delete(a);try{a.disconnect()}catch{}i.remove(a)}}else{let r=new u(t);r.setBuffer(n),r.setVolume(e.volume),r.setPlaybackRate(o),y.set(r,1),r.play(),r.source.onended=()=>{y.delete(r);try{r.disconnect()}catch{}}}}catch{}})}function D(e,t,n){v.has(e)?n(v.get(e)):t.load(e,t=>{v.set(e,t),n(t)},void 0,t=>{_.error(`Audio load error %s: %o`,e,t)})}var O=(0,h.memo)(function({entity:e}){let{debugMode:t}=o(),n=e.audioFileName??``,s=e.audioVolume??1,d=e.audioMinDistance??1,_=e.audioMaxDistance??1,v=e.audioMinLoopGap??0,y=e.audioMaxLoopGap??0,b=e.audioIs3D??!0?1:0,x=e.audioIsLooping??!0,[S,C,w]=e.position??[0,0,0],T=i(e=>e.scene),E=i(e=>e.camera),{audioLoader:O,audioListener:k}=p(),{audioEnabled:A}=a(),j=(0,h.useRef)(null),M=(0,h.useRef)(null),N=(0,h.useRef)(null),P=(0,h.useRef)(!1),F=(0,h.useRef)(!1),I=(0,h.useRef)(new c(S,C,w)),L=(0,h.useRef)(0),R=()=>{M.current!=null&&(clearTimeout(M.current),M.current=null),N.current!=null&&(clearTimeout(N.current),N.current=null)},[z]=(0,h.useState)(()=>Math.random());(0,h.useEffect)(()=>{if(!O||!k)return;L.current++;let e;if(b){let t=new l(k);t.position.copy(I.current),t.setDistanceModel(`inverse`),t.setRefDistance(d),t.setMaxDistance(_),t.setRolloffFactor(1),t.setVolume(s),e=t,T.add(e)}else e=new u(k),e.setVolume(s);return j.current=e,()=>{R();try{e.stop()}catch{}try{e.disconnect()}catch{}b&&T.remove(e),j.current=null,P.current=!1,F.current=!1}},[O,k,b,d,_,s,T]);let B=(e,t)=>{if(x)if(v>0||y>0){let n=Math.max(0,v),r=Math.max(n,y),i=n===r?n:z*(r-n)+n;e.loop=!1;let a=()=>{t===L.current&&(e.isPlaying===!1?M.current=setTimeout(()=>{if(t===L.current)try{e.play(),B(e,t)}catch{}},i):N.current=setTimeout(a,100))};N.current=setTimeout(a,100)}else e.setLoop(!0)},V=(0,h.useEffectEvent)(e=>{if(!O)return;let t=L.current;if(P.current)try{e.isPlaying||(e.play(),B(e,t))}catch{}else{let r;try{r=f(n)}catch{return}D(r,O,n=>{if(t===L.current&&!e.buffer){e.setBuffer(n),P.current=!0;try{e.play(),B(e,t)}catch{}}})}});return(0,h.useEffect)(()=>{let e=j.current;!e||b||!A||!n||V(e)},[A,b,n,O,k]),r(()=>{let e=j.current;if(!e||!b||!A||!n)return;let t=E.position.distanceTo(I.current),r=F.current,i=t<=_;if(i&&!r)F.current=!0,V(e);else if(!i&&r){F.current=!1,R();try{e.stop()}catch{}}}),(0,h.useEffect)(()=>{let e=j.current;if(e&&!A){R();try{e.stop()}catch{}F.current=!1}},[A]),t?(0,g.jsxs)(`mesh`,{position:I.current,children:[(0,g.jsx)(`sphereGeometry`,{args:[d,12,12]}),(0,g.jsx)(`meshBasicMaterial`,{color:`#00ff00`,wireframe:!0,opacity:.05,transparent:!0,toneMapped:!1}),(0,g.jsx)(m,{color:`#00ff00`,position:[0,d+1,0],children:n})]}):null});export{O as AudioEmitter,v as audioBufferCache,D as getCachedAudioBuffer,C as getSoundGeneration,E as playOneShotSound,T as resolveAudioProfile,w as stopAllTrackedSounds,b as trackSound,x as untrackSound}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{r as t,t as n}from"./jsx-runtime-BpGWiA-R.js";import{i as r,o as i}from"./react-three-fiber.esm-CgPHUpXo.js";import{a,i as o}from"./SettingsProvider-CCHVZuSg.js";import{t as s}from"./logger-z_EpIdIa.js";import{Ut as c,bt as l,c as u}from"./three.module-07hRbor4.js";import{r as d}from"./engineStore-Dkm20jvr.js";import{r as f}from"./loaders-CIpiZadQ.js";import{n as p}from"./AudioContext-CMp1T7r9.js";import{t as m}from"./FloatingLabel-Bm1LwAgd.js";var h=e(t(),1),g=n(),_=s(`AudioEmitter`),v=new Map,y=new Map;function b(e,t=1){y.set(e,t)}function x(e){y.delete(e)}var S=0;function C(){return S}function w(){S++;for(let[e]of y){try{e.stop()}catch{}try{e.disconnect()}catch{}}y.clear()}d.subscribe(e=>e.playback.rate,e=>{for(let[t,n]of y)try{t.setPlaybackRate(n*e)}catch{}});function T(e,t){let n=t(e),r=n?.filename;if(!r)return null;let i=r.endsWith(`.wav`)?r:`${r}.wav`,a=n.description,o=a==null?void 0:t(a);return{filename:i,is3D:o?.is3D??!0,isLooping:o?.isLooping??!1,refDist:o?.referenceDistance??20,maxDist:o?.maxDistance??100,volume:o?.volume??1}}function E(e,t,n,r,i){let a;try{a=f(e.filename)}catch{return}let o=d.getState().playback.rate,s=S;D(a,n,n=>{if(s===S)try{if(e.is3D&&i){let a=new l(t);a.setBuffer(n),a.setDistanceModel(`inverse`),a.setRefDistance(e.refDist),a.setMaxDistance(e.maxDist),a.setRolloffFactor(1),a.setVolume(e.volume),a.setPlaybackRate(o),r&&a.position.copy(r),i.add(a),y.set(a,1),a.play(),a.source.onended=()=>{y.delete(a);try{a.disconnect()}catch{}i.remove(a)}}else{let r=new u(t);r.setBuffer(n),r.setVolume(e.volume),r.setPlaybackRate(o),y.set(r,1),r.play(),r.source.onended=()=>{y.delete(r);try{r.disconnect()}catch{}}}}catch{}})}function D(e,t,n){v.has(e)?n(v.get(e)):t.load(e,t=>{v.set(e,t),n(t)},void 0,t=>{_.error(`Audio load error %s: %o`,e,t)})}var O=(0,h.memo)(function({entity:e}){let{debugMode:t}=o(),n=e.audioFileName??``,s=e.audioVolume??1,d=e.audioMinDistance??1,_=e.audioMaxDistance??1,v=e.audioMinLoopGap??0,y=e.audioMaxLoopGap??0,b=e.audioIs3D??!0?1:0,x=e.audioIsLooping??!0,[S,C,w]=e.position??[0,0,0],T=i(e=>e.scene),E=i(e=>e.camera),{audioLoader:O,audioListener:k}=p(),{audioEnabled:A}=a(),j=(0,h.useRef)(null),M=(0,h.useRef)(null),N=(0,h.useRef)(null),P=(0,h.useRef)(!1),F=(0,h.useRef)(!1),I=(0,h.useRef)(new c(S,C,w)),L=(0,h.useRef)(0),R=()=>{M.current!=null&&(clearTimeout(M.current),M.current=null),N.current!=null&&(clearTimeout(N.current),N.current=null)},[z]=(0,h.useState)(()=>Math.random());(0,h.useEffect)(()=>{if(!O||!k)return;L.current++;let e;if(b){let t=new l(k);t.position.copy(I.current),t.setDistanceModel(`inverse`),t.setRefDistance(d),t.setMaxDistance(_),t.setRolloffFactor(1),t.setVolume(s),e=t,T.add(e)}else e=new u(k),e.setVolume(s);return j.current=e,()=>{R();try{e.stop()}catch{}try{e.disconnect()}catch{}b&&T.remove(e),j.current=null,P.current=!1,F.current=!1}},[O,k,b,d,_,s,T]);let B=(e,t)=>{if(x)if(v>0||y>0){let n=Math.max(0,v),r=Math.max(n,y),i=n===r?n:z*(r-n)+n;e.loop=!1;let a=()=>{t===L.current&&(e.isPlaying===!1?M.current=setTimeout(()=>{if(t===L.current)try{e.play(),B(e,t)}catch{}},i):N.current=setTimeout(a,100))};N.current=setTimeout(a,100)}else e.setLoop(!0)},V=(0,h.useEffectEvent)(e=>{if(!O)return;let t=L.current;if(P.current)try{e.isPlaying||(e.play(),B(e,t))}catch{}else{let r;try{r=f(n)}catch{return}D(r,O,n=>{if(t===L.current&&!e.buffer){e.setBuffer(n),P.current=!0;try{e.play(),B(e,t)}catch{}}})}});return(0,h.useEffect)(()=>{let e=j.current;!e||b||!A||!n||V(e)},[A,b,n,O,k]),r(()=>{let e=j.current;if(!e||!b||!A||!n)return;let t=E.position.distanceTo(I.current),r=F.current,i=t<=_;if(i&&!r)F.current=!0,V(e);else if(!i&&r){F.current=!1,R();try{e.stop()}catch{}}}),(0,h.useEffect)(()=>{let e=j.current;if(e&&!A){R();try{e.stop()}catch{}F.current=!1}},[A]),t?(0,g.jsxs)(`mesh`,{position:I.current,children:[(0,g.jsx)(`sphereGeometry`,{args:[d,12,12]}),(0,g.jsx)(`meshBasicMaterial`,{color:`#00ff00`,wireframe:!0,opacity:.05,transparent:!0,toneMapped:!1}),(0,g.jsx)(m,{color:`#00ff00`,position:[0,d+1,0],children:n})]}):null});export{O as AudioEmitter,v as audioBufferCache,D as getCachedAudioBuffer,C as getSoundGeneration,E as playOneShotSound,T as resolveAudioProfile,w as stopAllTrackedSounds,b as trackSound,x as untrackSound}; \ No newline at end of file diff --git a/docs/assets/ChatInput-B9JdqF5v.js b/docs/assets/ChatInput-BrDNmg1o.js similarity index 86% rename from docs/assets/ChatInput-B9JdqF5v.js rename to docs/assets/ChatInput-BrDNmg1o.js index 68f7dabc..30685ce0 100644 --- a/docs/assets/ChatInput-B9JdqF5v.js +++ b/docs/assets/ChatInput-BrDNmg1o.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{k as i}from"./index-B1XI52_L.js";var a=t(),o=e(n(),1),s={InputForm:`_InputForm_18kom_1`,Input:`_Input_18kom_1`},c=r();function l(){let e=(0,a.c)(8),[t,n]=(0,o.useState)(``),r;e[0]===t?r=e[1]:(r=e=>{e.preventDefault();let r=t.trim();r&&(i.getState().sendCommand(`messageSent`,r),n(``))},e[0]=t,e[1]=r);let l=r,f;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=e=>n(e.target.value),e[2]=f):f=e[2];let p;e[3]===t?p=e[4]:(p=(0,c.jsx)(`input`,{className:s.Input,type:`text`,placeholder:`Say something…`,value:t,onChange:f,onKeyDown:d,onKeyUp:u,maxLength:255}),e[3]=t,e[4]=p);let m;return e[5]!==l||e[6]!==p?(m=(0,c.jsx)(`form`,{className:s.InputForm,onSubmit:l,children:p}),e[5]=l,e[6]=p,e[7]=m):m=e[7],m}function u(e){return e.stopPropagation()}function d(e){return e.stopPropagation()}export{l as ChatInput}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{k as i}from"./index-DfaykQpF.js";var a=t(),o=e(n(),1),s={InputForm:`_InputForm_18kom_1`,Input:`_Input_18kom_1`},c=r();function l(){let e=(0,a.c)(8),[t,n]=(0,o.useState)(``),r;e[0]===t?r=e[1]:(r=e=>{e.preventDefault();let r=t.trim();r&&(i.getState().sendCommand(`messageSent`,r),n(``))},e[0]=t,e[1]=r);let l=r,f;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=e=>n(e.target.value),e[2]=f):f=e[2];let p;e[3]===t?p=e[4]:(p=(0,c.jsx)(`input`,{className:s.Input,type:`text`,placeholder:`Say something…`,value:t,onChange:f,onKeyDown:d,onKeyUp:u,maxLength:255}),e[3]=t,e[4]=p);let m;return e[5]!==l||e[6]!==p?(m=(0,c.jsx)(`form`,{className:s.InputForm,onSubmit:l,children:p}),e[5]=l,e[6]=p,e[7]=m):m=e[7],m}function u(e){return e.stopPropagation()}function d(e){return e.stopPropagation()}export{l as ChatInput}; \ No newline at end of file diff --git a/docs/assets/ChatSoundPlayer-CkJcKyFh.js b/docs/assets/ChatSoundPlayer-DZxyjwrv.js similarity index 95% rename from docs/assets/ChatSoundPlayer-CkJcKyFh.js rename to docs/assets/ChatSoundPlayer-DZxyjwrv.js index f42989bf..62140ef0 100644 --- a/docs/assets/ChatSoundPlayer-CkJcKyFh.js +++ b/docs/assets/ChatSoundPlayer-DZxyjwrv.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{r as t}from"./jsx-runtime-BpGWiA-R.js";import{a as n}from"./SettingsProvider-CCHVZuSg.js";import{c as r}from"./three.module-07hRbor4.js";import{i,r as a}from"./engineStore-Dkm20jvr.js";import{r as o}from"./loaders-CIpiZadQ.js";import{n as s}from"./AudioContext-CMp1T7r9.js";import{getCachedAudioBuffer as c,getSoundGeneration as l,trackSound as u,untrackSound as d}from"./AudioEmitter-2bTNGdLP.js";var f=e(t(),1);function p(){let{audioLoader:e,audioListener:t}=s(),{audioEnabled:p}=n(),m=i(e=>e.playback.streamSnapshot?.chatMessages),h=i(e=>e.playback.streamSnapshot?.timeSec),g=(0,f.useRef)(new WeakSet),_=(0,f.useRef)(new Map);return(0,f.useEffect)(()=>{if(!p||!e||!t||!m?.length||h==null)return;let n=g.current,i=_.current;for(let s of m)if(!n.has(s)&&(n.add(s),s.soundPath&&!(Math.abs(h-s.timeSec)>2)))try{let n=o(s.soundPath),f=s.soundPitch??1,p=a.getState().playback.rate,m=s.sender,h=l();c(n,e,e=>{if(h!==l())return;if(m){let e=i.get(m);if(e){try{e.stop()}catch{}d(e);try{e.disconnect()}catch{}i.delete(m)}}let n=new r(t);n.setBuffer(e),n.setPlaybackRate(f*p),u(n,f),m&&i.set(m,n),n.play(),n.source.onended=()=>{d(n);try{n.disconnect()}catch{}m&&i.get(m)===n&&i.delete(m)}})}catch{}},[p,e,t,m,h]),null}export{p as ChatSoundPlayer}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{r as t}from"./jsx-runtime-BpGWiA-R.js";import{a as n}from"./SettingsProvider-CCHVZuSg.js";import{c as r}from"./three.module-07hRbor4.js";import{i,r as a}from"./engineStore-Dkm20jvr.js";import{r as o}from"./loaders-CIpiZadQ.js";import{n as s}from"./AudioContext-CMp1T7r9.js";import{getCachedAudioBuffer as c,getSoundGeneration as l,trackSound as u,untrackSound as d}from"./AudioEmitter-Dk4R9QgT.js";var f=e(t(),1);function p(){let{audioLoader:e,audioListener:t}=s(),{audioEnabled:p}=n(),m=i(e=>e.playback.streamSnapshot?.chatMessages),h=i(e=>e.playback.streamSnapshot?.timeSec),g=(0,f.useRef)(new WeakSet),_=(0,f.useRef)(new Map);return(0,f.useEffect)(()=>{if(!p||!e||!t||!m?.length||h==null)return;let n=g.current,i=_.current;for(let s of m)if(!n.has(s)&&(n.add(s),s.soundPath&&!(Math.abs(h-s.timeSec)>2)))try{let n=o(s.soundPath),f=s.soundPitch??1,p=a.getState().playback.rate,m=s.sender,h=l();c(n,e,e=>{if(h!==l())return;if(m){let e=i.get(m);if(e){try{e.stop()}catch{}d(e);try{e.disconnect()}catch{}i.delete(m)}}let n=new r(t);n.setBuffer(e),n.setPlaybackRate(f*p),u(n,f),m&&i.set(m,n),n.play(),n.source.onended=()=>{d(n);try{n.disconnect()}catch{}m&&i.get(m)===n&&i.delete(m)}})}catch{}},[p,e,t,m,h]),null}export{p as ChatSoundPlayer}; \ No newline at end of file diff --git a/docs/assets/DebugElements-DbcJj7CW.js b/docs/assets/DebugElements-Dy-m_wVx.js similarity index 98% rename from docs/assets/DebugElements-DbcJj7CW.js rename to docs/assets/DebugElements-Dy-m_wVx.js index 249f9c01..354fb594 100644 --- a/docs/assets/DebugElements-DbcJj7CW.js +++ b/docs/assets/DebugElements-Dy-m_wVx.js @@ -1 +1 @@ -import{r as e,t}from"./chunk-DECur_0Z.js";import{n,r,t as i}from"./jsx-runtime-BpGWiA-R.js";import{n as a,r as o}from"./react-three-fiber.esm-CgPHUpXo.js";import{t as s}from"./Html-BfjRWIZg.js";var c=t(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):n.Stats=r()})(e,function(){var e=function(){function t(e){return i.appendChild(e.dom),e}function n(e){for(var t=0;to+1e3&&(c.update(1e3*s/(e-o),100),o=e,s=0,u)){var t=performance.memory;u.update(t.usedJSHeapSize/1048576,t.jsHeapSizeLimit/1048576)}return e},update:function(){a=this.end()},domElement:i,setMode:n}};return e.Panel=function(e,t,n){var r=1/0,i=0,a=Math.round,o=a(window.devicePixelRatio||1),s=80*o,c=48*o,l=3*o,u=2*o,d=3*o,f=15*o,p=74*o,m=30*o,h=document.createElement(`canvas`);h.width=s,h.height=c,h.style.cssText=`width:80px;height:48px`;var g=h.getContext(`2d`);return g.font=`bold `+9*o+`px Helvetica,Arial,sans-serif`,g.textBaseline=`top`,g.fillStyle=n,g.fillRect(0,0,s,c),g.fillStyle=t,g.fillText(e,l,u),g.fillRect(d,f,p,m),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d,f,p,m),{dom:h,update:function(c,_){r=Math.min(r,c),i=Math.max(i,c),g.fillStyle=n,g.globalAlpha=1,g.fillRect(0,0,s,f),g.fillStyle=t,g.fillText(a(c)+` `+e+` (`+a(r)+`-`+a(i)+`)`,l,u),g.drawImage(h,d+o,f,p-o,m,d,f,p-o,m),g.fillRect(d+p-o,f,o,m),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d+p-o,f,o,a((1-c/_)*m))}}},e})})),l=e(r());function u(e,t){typeof e==`function`?e(t):e!=null&&(e.current=t)}function d(e,t=[],n){let[r,i]=l.useState();return l.useLayoutEffect(()=>{let t=e();return i(t),u(n,t),()=>u(n,null)},t),r}var f=e(c());function p({showPanel:e=0,className:t,parent:n}){let r=d(()=>new f.default,[]);return l.useEffect(()=>{if(r){let i=n&&n.current||document.body;r.showPanel(e),i?.appendChild(r.dom);let s=(t??``).split(` `).filter(e=>e);s.length&&r.dom.classList.add(...s);let c=o(()=>r.begin()),l=a(()=>r.end());return()=>{s.length&&r.dom.classList.remove(...s),i?.removeChild(r.dom),c(),l()}}},[n,r,t,e]),null}var m=n(),h={StatsPanel:`_StatsPanel_10m5i_1`,AxisLabel:`_AxisLabel_10m5i_8`},g=i();function _(){let e=(0,m.c)(10),t=(0,l.useRef)(null),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=()=>{let e=t.current;e&&e.setColors(`rgb(153, 255, 0)`,`rgb(0, 153, 255)`,`rgb(255, 153, 0)`)},e[0]=n):n=e[0],(0,l.useEffect)(n);let r;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,g.jsx)(p,{className:h.StatsPanel}),e[1]=r):r=e[1];let i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=[70],e[2]=i):i=e[2];let a;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,g.jsx)(`axesHelper`,{ref:t,args:i,renderOrder:999,children:(0,g.jsx)(`lineBasicMaterial`,{depthTest:!1,depthWrite:!1,fog:!1,vertexColors:!0})}),e[3]=a):a=e[3];let o;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=[80,0,0],e[4]=o):o=e[4];let c;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,g.jsx)(s,{position:o,center:!0,children:(0,g.jsx)(`span`,{className:h.AxisLabel,"data-axis":`y`,children:`Y`})}),e[5]=c):c=e[5];let u;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=[0,80,0],e[6]=u):u=e[6];let d;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(s,{position:u,center:!0,children:(0,g.jsx)(`span`,{className:h.AxisLabel,"data-axis":`z`,children:`Z`})}),e[7]=d):d=e[7];let f;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=[0,0,80],e[8]=f):f=e[8];let _;return e[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,g.jsxs)(g.Fragment,{children:[r,a,c,d,(0,g.jsx)(s,{position:f,center:!0,children:(0,g.jsx)(`span`,{className:h.AxisLabel,"data-axis":`x`,children:`X`})})]}),e[9]=_):_=e[9],_}export{_ as DebugElements}; \ No newline at end of file +import{r as e,t}from"./chunk-DECur_0Z.js";import{n,r,t as i}from"./jsx-runtime-BpGWiA-R.js";import{n as a,r as o}from"./react-three-fiber.esm-CgPHUpXo.js";import{t as s}from"./Html-DTt-Asp4.js";var c=t(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):n.Stats=r()})(e,function(){var e=function(){function t(e){return i.appendChild(e.dom),e}function n(e){for(var t=0;to+1e3&&(c.update(1e3*s/(e-o),100),o=e,s=0,u)){var t=performance.memory;u.update(t.usedJSHeapSize/1048576,t.jsHeapSizeLimit/1048576)}return e},update:function(){a=this.end()},domElement:i,setMode:n}};return e.Panel=function(e,t,n){var r=1/0,i=0,a=Math.round,o=a(window.devicePixelRatio||1),s=80*o,c=48*o,l=3*o,u=2*o,d=3*o,f=15*o,p=74*o,m=30*o,h=document.createElement(`canvas`);h.width=s,h.height=c,h.style.cssText=`width:80px;height:48px`;var g=h.getContext(`2d`);return g.font=`bold `+9*o+`px Helvetica,Arial,sans-serif`,g.textBaseline=`top`,g.fillStyle=n,g.fillRect(0,0,s,c),g.fillStyle=t,g.fillText(e,l,u),g.fillRect(d,f,p,m),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d,f,p,m),{dom:h,update:function(c,_){r=Math.min(r,c),i=Math.max(i,c),g.fillStyle=n,g.globalAlpha=1,g.fillRect(0,0,s,f),g.fillStyle=t,g.fillText(a(c)+` `+e+` (`+a(r)+`-`+a(i)+`)`,l,u),g.drawImage(h,d+o,f,p-o,m,d,f,p-o,m),g.fillRect(d+p-o,f,o,m),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d+p-o,f,o,a((1-c/_)*m))}}},e})})),l=e(r());function u(e,t){typeof e==`function`?e(t):e!=null&&(e.current=t)}function d(e,t=[],n){let[r,i]=l.useState();return l.useLayoutEffect(()=>{let t=e();return i(t),u(n,t),()=>u(n,null)},t),r}var f=e(c());function p({showPanel:e=0,className:t,parent:n}){let r=d(()=>new f.default,[]);return l.useEffect(()=>{if(r){let i=n&&n.current||document.body;r.showPanel(e),i?.appendChild(r.dom);let s=(t??``).split(` `).filter(e=>e);s.length&&r.dom.classList.add(...s);let c=o(()=>r.begin()),l=a(()=>r.end());return()=>{s.length&&r.dom.classList.remove(...s),i?.removeChild(r.dom),c(),l()}}},[n,r,t,e]),null}var m=n(),h={StatsPanel:`_StatsPanel_10m5i_1`,AxisLabel:`_AxisLabel_10m5i_8`},g=i();function _(){let e=(0,m.c)(10),t=(0,l.useRef)(null),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=()=>{let e=t.current;e&&e.setColors(`rgb(153, 255, 0)`,`rgb(0, 153, 255)`,`rgb(255, 153, 0)`)},e[0]=n):n=e[0],(0,l.useEffect)(n);let r;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,g.jsx)(p,{className:h.StatsPanel}),e[1]=r):r=e[1];let i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=[70],e[2]=i):i=e[2];let a;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,g.jsx)(`axesHelper`,{ref:t,args:i,renderOrder:999,children:(0,g.jsx)(`lineBasicMaterial`,{depthTest:!1,depthWrite:!1,fog:!1,vertexColors:!0})}),e[3]=a):a=e[3];let o;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=[80,0,0],e[4]=o):o=e[4];let c;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,g.jsx)(s,{position:o,center:!0,children:(0,g.jsx)(`span`,{className:h.AxisLabel,"data-axis":`y`,children:`Y`})}),e[5]=c):c=e[5];let u;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=[0,80,0],e[6]=u):u=e[6];let d;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(s,{position:u,center:!0,children:(0,g.jsx)(`span`,{className:h.AxisLabel,"data-axis":`z`,children:`Z`})}),e[7]=d):d=e[7];let f;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=[0,0,80],e[8]=f):f=e[8];let _;return e[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,g.jsxs)(g.Fragment,{children:[r,a,c,d,(0,g.jsx)(s,{position:f,center:!0,children:(0,g.jsx)(`span`,{className:h.AxisLabel,"data-axis":`x`,children:`X`})})]}),e[9]=_):_=e[9],_}export{_ as DebugElements}; \ No newline at end of file diff --git a/docs/assets/DemoPlaybackControls-B8inlhPI.js b/docs/assets/DemoPlaybackControls-D--l_WXN.js similarity index 91% rename from docs/assets/DemoPlaybackControls-B8inlhPI.js rename to docs/assets/DemoPlaybackControls-D--l_WXN.js index f57ad21e..2b4c9863 100644 --- a/docs/assets/DemoPlaybackControls-B8inlhPI.js +++ b/docs/assets/DemoPlaybackControls-D--l_WXN.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{C as i,D as a,E as o,O as s,S as c,T as l,u,w as d}from"./index-B1XI52_L.js";import{n as f,t as p}from"./gr-1PcjgMj0.js";var m=t(),h=e(n(),1),g={Root:`_Root_1sc8r_1`,PlayPause:`_PlayPause_1sc8r_16 _Button_1u47f_2`,Time:`_Time_1sc8r_41`,Seek:`_Seek_1sc8r_59`,Speed:`_Speed_1sc8r_66`,CameraMode:`_CameraMode_1sc8r_67`,Field:`_Field_1sc8r_85`},_=r();function v(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,`0`)}`}function y(){let e=(0,m.c)(42),t=a(),n=l(),r=i(),y=d(),x=s(),{play:S,pause:C,seek:w,setSpeed:T}=o(),E,D;e[0]!==n||e[1]!==C||e[2]!==S||e[3]!==t?(E=()=>{if(!t)return;let e=e=>{if(e.code!==`Space`)return;let t=e.target;t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.tagName===`BUTTON`||t.isContentEditable||(e.preventDefault(),n?C():S())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},D=[t,n,S,C],e[0]=n,e[1]=C,e[2]=S,e[3]=t,e[4]=E,e[5]=D):(E=e[4],D=e[5]),(0,h.useEffect)(E,D);let O;e[6]!==T||e[7]!==x?(O=()=>{let e=c.indexOf(x);e>0&&T(c[e-1])},e[6]=T,e[7]=x,e[8]=O):O=e[8],u(`decreasePlaybackSpeed`,O);let k;e[9]!==T||e[10]!==x?(k=()=>{let e=c.indexOf(x);e{w(parseFloat(e.target.value))},e[12]=w,e[13]=A);let j=A,M;e[14]===T?M=e[15]:(M=e=>{T(parseFloat(e.target.value))},e[14]=T,e[15]=M);let N=M;if(!t||!Number.isFinite(t.duration))return null;let P=n?C:S,F=n?`Pause`:`Play`,I;e[16]===n?I=e[17]:(I=n?(0,_.jsx)(p,{}):(0,_.jsx)(f,{}),e[16]=n,e[17]=I);let L;e[18]!==P||e[19]!==F||e[20]!==I?(L=(0,_.jsx)(`button`,{className:g.PlayPause,onClick:P,"aria-label":F,autoFocus:!0,children:I}),e[18]=P,e[19]=F,e[20]=I,e[21]=L):L=e[21];let R;e[22]===r?R=e[23]:(R=v(r),e[22]=r,e[23]=R);let z;e[24]===y?z=e[25]:(z=v(y),e[24]=y,e[25]=z);let B=`${R} / ${z}`,V;e[26]===B?V=e[27]:(V=(0,_.jsx)(`span`,{className:g.Time,children:B}),e[26]=B,e[27]=V);let H;e[28]!==r||e[29]!==y||e[30]!==j?(H=(0,_.jsx)(`input`,{className:g.Seek,type:`range`,min:0,max:y,step:.01,value:r,onChange:j}),e[28]=r,e[29]=y,e[30]=j,e[31]=H):H=e[31];let U;e[32]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,_.jsx)(`label`,{htmlFor:`playbackSpeed`,children:`Speed`}),e[32]=U):U=e[32];let W;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(W=c.map(b),e[33]=W):W=e[33];let G;e[34]!==N||e[35]!==x?(G=(0,_.jsxs)(`div`,{className:g.Field,children:[U,(0,_.jsx)(`select`,{id:`playbackSpeed`,className:g.Speed,value:x,onChange:N,children:W})]}),e[34]=N,e[35]=x,e[36]=G):G=e[36];let K;return e[37]!==V||e[38]!==H||e[39]!==G||e[40]!==L?(K=(0,_.jsxs)(`div`,{className:g.Root,children:[L,V,H,G]}),e[37]=V,e[38]=H,e[39]=G,e[40]=L,e[41]=K):K=e[41],K}function b(e){return(0,_.jsxs)(`option`,{value:e,children:[e,`x`]},e)}export{y as DemoPlaybackControls}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{C as i,D as a,E as o,O as s,S as c,T as l,u,w as d}from"./index-DfaykQpF.js";import{n as f,t as p}from"./gr-1PcjgMj0.js";var m=t(),h=e(n(),1),g={Root:`_Root_flggk_1`,PlayPause:`_PlayPause_flggk_16 _Button_p0g82_2`,Time:`_Time_flggk_36`,Seek:`_Seek_flggk_54`,Speed:`_Speed_flggk_61`,CameraMode:`_CameraMode_flggk_62`,Field:`_Field_flggk_80`},_=r();function v(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,`0`)}`}function y(){let e=(0,m.c)(42),t=a(),n=l(),r=i(),y=d(),x=s(),{play:S,pause:C,seek:w,setSpeed:T}=o(),E,D;e[0]!==n||e[1]!==C||e[2]!==S||e[3]!==t?(E=()=>{if(!t)return;let e=e=>{if(e.code!==`Space`)return;let t=e.target;t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.tagName===`BUTTON`||t.isContentEditable||(e.preventDefault(),n?C():S())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},D=[t,n,S,C],e[0]=n,e[1]=C,e[2]=S,e[3]=t,e[4]=E,e[5]=D):(E=e[4],D=e[5]),(0,h.useEffect)(E,D);let O;e[6]!==T||e[7]!==x?(O=()=>{let e=c.indexOf(x);e>0&&T(c[e-1])},e[6]=T,e[7]=x,e[8]=O):O=e[8],u(`decreasePlaybackSpeed`,O);let k;e[9]!==T||e[10]!==x?(k=()=>{let e=c.indexOf(x);e{w(parseFloat(e.target.value))},e[12]=w,e[13]=A);let j=A,M;e[14]===T?M=e[15]:(M=e=>{T(parseFloat(e.target.value))},e[14]=T,e[15]=M);let N=M;if(!t||!Number.isFinite(t.duration))return null;let P=n?C:S,F=n?`Pause`:`Play`,I;e[16]===n?I=e[17]:(I=n?(0,_.jsx)(p,{}):(0,_.jsx)(f,{}),e[16]=n,e[17]=I);let L;e[18]!==P||e[19]!==F||e[20]!==I?(L=(0,_.jsx)(`button`,{className:g.PlayPause,onClick:P,"aria-label":F,autoFocus:!0,children:I}),e[18]=P,e[19]=F,e[20]=I,e[21]=L):L=e[21];let R;e[22]===r?R=e[23]:(R=v(r),e[22]=r,e[23]=R);let z;e[24]===y?z=e[25]:(z=v(y),e[24]=y,e[25]=z);let B=`${R} / ${z}`,V;e[26]===B?V=e[27]:(V=(0,_.jsx)(`span`,{className:g.Time,children:B}),e[26]=B,e[27]=V);let H;e[28]!==r||e[29]!==y||e[30]!==j?(H=(0,_.jsx)(`input`,{className:g.Seek,type:`range`,min:0,max:y,step:.01,value:r,onChange:j}),e[28]=r,e[29]=y,e[30]=j,e[31]=H):H=e[31];let U;e[32]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,_.jsx)(`label`,{htmlFor:`playbackSpeed`,children:`Speed`}),e[32]=U):U=e[32];let W;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(W=c.map(b),e[33]=W):W=e[33];let G;e[34]!==N||e[35]!==x?(G=(0,_.jsxs)(`div`,{className:g.Field,children:[U,(0,_.jsx)(`select`,{id:`playbackSpeed`,className:g.Speed,value:x,onChange:N,children:W})]}),e[34]=N,e[35]=x,e[36]=G):G=e[36];let K;return e[37]!==V||e[38]!==H||e[39]!==G||e[40]!==L?(K=(0,_.jsxs)(`div`,{className:g.Root,children:[L,V,H,G]}),e[37]=V,e[38]=H,e[39]=G,e[40]=L,e[41]=K):K=e[41],K}function b(e){return(0,_.jsxs)(`option`,{value:e,children:[e,`x`]},e)}export{y as DemoPlaybackControls}; \ No newline at end of file diff --git a/docs/assets/DemoPlaybackControls-D1aGRzqE.css b/docs/assets/DemoPlaybackControls-D1aGRzqE.css new file mode 100644 index 00000000..1c16e222 --- /dev/null +++ b/docs/assets/DemoPlaybackControls-D1aGRzqE.css @@ -0,0 +1 @@ +@layer button{._Button_p0g82_2{color:#fff;cursor:pointer;background:#0062b3cc;border:1px solid #fff6;border-radius:5px;flex:auto;justify-content:center;align-items:center;gap:8px;width:auto;min-width:28px;height:auto;min-height:32px;margin:0;padding:4px 8px;font-family:inherit;font-size:18px;font-weight:500;transition:background .2s,border-color .2s;display:flex;position:relative;transform:translate(0);box-shadow:0 1px 2px #0006}._Button_p0g82_2 svg{opacity:.8;pointer-events:none;flex:none;transition:opacity .2s}._Button_p0g82_2:not(:has(._ButtonLabel_p0g82_37)) svg{opacity:1}._Button_p0g82_2:disabled{opacity:.6;color:#fffc;cursor:default;box-shadow:inset 0 0 12px 1px #36363680}@media (hover:hover){._Button_p0g82_2{color:#ffffffe6;background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_p0g82_2:not(:disabled):hover{color:#fff;background:#0062b3cc;border-color:#fff6}._Button_p0g82_2 svg{opacity:.6}._Button_p0g82_2:not(:disabled):hover svg{opacity:1}}._Button_p0g82_2:not(:disabled):active,._Button_p0g82_2[aria-expanded=true]{background:#0062b3b3;border-color:#ffffff4d;transform:translateY(1px)}._Button_p0g82_2[data-active=true]{background:#0075d5e6;border-color:#fff6}._ButtonLabel_p0g82_37{font-size:14px}._ButtonHint_p0g82_92{opacity:.7;font-size:10px}._ButtonGroup_p0g82_97{flex:1 0 auto;align-items:stretch;width:100%;display:flex}._ButtonGroup_p0g82_97 ._Button_p0g82_2{background:#1b4f87b3;flex-direction:column;flex:1 0 0;gap:1px;padding-top:8px;padding-bottom:8px;font-size:22px;box-shadow:inset 0 0 10px #04284780}._ButtonGroup_p0g82_97 ._Button_p0g82_2 svg{margin-bottom:3px}._ButtonGroup_p0g82_97 ._Button_p0g82_2[data-active=true]{background:#0065cbcc;box-shadow:inset 0 2px 3px #08bdff80,inset 0 -2px 6px #00122880}._ButtonGroup_p0g82_97 ._Button_p0g82_2[data-active=true] svg{opacity:1}._ButtonGroup_p0g82_97 ._Button_p0g82_2:not(:first-child){border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}._ButtonGroup_p0g82_97 ._Button_p0g82_2:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}._DestructiveActionButton_p0g82_141{background:#d5423ab3;flex:none;min-width:28px;min-height:28px;margin:0 10px 0 0;padding:2px;font-size:16px}@media (hover:hover){._DestructiveActionButton_p0g82_141:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_p0g82_141{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}}._Root_flggk_1{z-index:2;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}@media (pointer:coarse){._Root_flggk_1{padding:6px 8px}}._PlayPause_flggk_16{flex:none;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:12px;display:flex}@media (pointer:coarse){._PlayPause_flggk_16{width:40px;height:40px;font-size:14px}}._Time_flggk_36{font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}@media (width<=599px){._Time_flggk_36{font-size:12px}}@media (width<=399px){._Time_flggk_36{font-size:11px}}._Seek_flggk_54[type=range]{flex:1 0 20px;width:20px;min-width:20px;max-width:none}._Speed_flggk_61,._CameraMode_flggk_62{color:#fff;background:#0009;border:1px solid #ffffff4d;border-radius:3px;flex-shrink:0;padding:3px 4px;font-size:13px}@media (pointer:coarse){._Speed_flggk_61,._CameraMode_flggk_62{padding:8px;font-size:14px}}._Field_flggk_80{align-items:center;gap:8px;display:flex}._Field_flggk_80 label{text-transform:uppercase;color:#fff9;font-size:11px;font-weight:500} diff --git a/docs/assets/DemoPlaybackControls-V-lirz3V.css b/docs/assets/DemoPlaybackControls-V-lirz3V.css deleted file mode 100644 index fa239a1f..00000000 --- a/docs/assets/DemoPlaybackControls-V-lirz3V.css +++ /dev/null @@ -1 +0,0 @@ -@layer button{._Button_1u47f_2{color:#fff;cursor:pointer;background:#0062b3cc;border:1px solid #fff6;border-radius:5px;flex:auto;justify-content:center;align-items:center;gap:8px;width:auto;min-width:28px;height:auto;min-height:32px;margin:0;padding:4px 8px;font-family:inherit;font-size:18px;font-weight:500;transition:background .2s,border-color .2s;display:flex;position:relative;transform:translate(0);box-shadow:0 1px 2px #0006}._Button_1u47f_2 svg{opacity:.8;pointer-events:none;flex:none;transition:opacity .2s}._Button_1u47f_2:disabled{opacity:.6;color:#fffc;cursor:default;box-shadow:inset 0 0 12px 1px #36363680}@media (hover:hover){._Button_1u47f_2{background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_1u47f_2:not(:disabled):hover{background:#0062b3cc;border-color:#fff6}._Button_1u47f_2 svg{opacity:.6}._Button_1u47f_2:not(:disabled):hover svg{opacity:1}}._Button_1u47f_2:not(:disabled):active,._Button_1u47f_2[aria-expanded=true]{background:#0062b3b3;border-color:#ffffff4d;transform:translateY(1px)}._Button_1u47f_2[data-active=true]{background:#0075d5e6;border-color:#fff6}._ButtonLabel_1u47f_82{font-size:14px}._ButtonHint_1u47f_86{opacity:.7;font-size:10px}._ButtonGroup_1u47f_91{flex:1 0 auto;align-items:stretch;width:100%;display:flex}._ButtonGroup_1u47f_91 ._Button_1u47f_2{background:#1b4f87b3;flex-direction:column;flex:1 0 0;gap:1px;padding-top:8px;padding-bottom:8px;font-size:22px;box-shadow:inset 0 0 10px #04284780}._ButtonGroup_1u47f_91 ._Button_1u47f_2 svg{margin-bottom:3px}._ButtonGroup_1u47f_91 ._Button_1u47f_2[data-active=true]{background:#0065cbcc;box-shadow:inset 0 2px 3px #08bdff80,inset 0 -2px 6px #00122880}._ButtonGroup_1u47f_91 ._Button_1u47f_2[data-active=true] svg{opacity:1}._ButtonGroup_1u47f_91 ._Button_1u47f_2:not(:first-child){border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}._ButtonGroup_1u47f_91 ._Button_1u47f_2:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}._DestructiveActionButton_1u47f_135{background:#d5423ab3;flex:none;min-width:28px;min-height:28px;margin:0 10px 0 0;padding:2px;font-size:16px}@media (hover:hover){._DestructiveActionButton_1u47f_135:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_1u47f_135{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}}._Root_1sc8r_1{z-index:2;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}@media (pointer:coarse){._Root_1sc8r_1{padding:6px 8px}}._PlayPause_1sc8r_16{flex:none;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:12px;display:flex}@media (pointer:coarse){._PlayPause_1sc8r_16{width:40px;height:40px;font-size:14px}}._Time_1sc8r_41{font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}@media (width<=599px){._Time_1sc8r_41{font-size:12px}}@media (width<=399px){._Time_1sc8r_41{font-size:11px}}._Seek_1sc8r_59[type=range]{flex:1 0 20px;width:20px;min-width:20px;max-width:none}._Speed_1sc8r_66,._CameraMode_1sc8r_67{color:#fff;background:#0009;border:1px solid #ffffff4d;border-radius:3px;flex-shrink:0;padding:3px 4px;font-size:13px}@media (pointer:coarse){._Speed_1sc8r_66,._CameraMode_1sc8r_67{padding:8px;font-size:14px}}._Field_1sc8r_85{align-items:center;gap:8px;display:flex}._Field_1sc8r_85 label{text-transform:uppercase;color:#fff9;font-size:11px;font-weight:500} diff --git a/docs/assets/FloatingLabel-4Yii8rRq.js b/docs/assets/FloatingLabel-Bm1LwAgd.js similarity index 95% rename from docs/assets/FloatingLabel-4Yii8rRq.js rename to docs/assets/FloatingLabel-Bm1LwAgd.js index 8f426241..bea351a8 100644 --- a/docs/assets/FloatingLabel-4Yii8rRq.js +++ b/docs/assets/FloatingLabel-Bm1LwAgd.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{i}from"./react-three-fiber.esm-CgPHUpXo.js";import{Ut as a}from"./three.module-07hRbor4.js";import{t as o}from"./Html-BfjRWIZg.js";var s={Label:`_Label_8rn2m_1`},c=t(),l=e(n(),1),u=r(),d=[0,0,0],f=new a;function p(e,t,n,r){let i=e.matrixWorld.elements;return(t-i[12])*-i[8]+(n-i[13])*-i[9]+(r-i[14])*-i[10]<0}var m=(0,l.memo)(function(e){let t=(0,c.c)(12),{children:n,color:r,position:a,opacity:m}=e,h=r===void 0?`white`:r,g=a===void 0?d:a,_=m===void 0?`fadeWithDistance`:m,v=_===`fadeWithDistance`,y=(0,l.useRef)(null),[b,x]=(0,l.useState)(_!==0),S=(0,l.useRef)(null),C;t[0]!==v||t[1]!==b||t[2]!==_?(C=e=>{let{camera:t}=e,n=y.current;if(!n)return;n.getWorldPosition(f);let r=p(t,f.x,f.y,f.z);if(v){let e=r?1/0:t.position.distanceTo(f),n=e<200;if(b!==n&&x(n),S.current&&n){let t=Math.max(0,Math.min(1,1-e/200));S.current.style.opacity=t.toString()}}else{let e=!r&&_!==0;b!==e&&x(e),S.current&&(S.current.style.opacity=_.toString())}},t[0]=v,t[1]=b,t[2]=_,t[3]=C):C=t[3],i(C);let w;t[4]!==n||t[5]!==h||t[6]!==v||t[7]!==b||t[8]!==g?(w=b?(0,u.jsx)(o,{position:g,center:!0,children:(0,u.jsx)(`div`,{ref:S,className:s.Label,style:{color:h,opacity:v?0:void 0},children:n})}):null,t[4]=n,t[5]=h,t[6]=v,t[7]=b,t[8]=g,t[9]=w):w=t[9];let T;return t[10]===w?T=t[11]:(T=(0,u.jsx)(`group`,{ref:y,children:w}),t[10]=w,t[11]=T),T});export{m as t}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{i}from"./react-three-fiber.esm-CgPHUpXo.js";import{Ut as a}from"./three.module-07hRbor4.js";import{t as o}from"./Html-DTt-Asp4.js";var s={Label:`_Label_8rn2m_1`},c=t(),l=e(n(),1),u=r(),d=[0,0,0],f=new a;function p(e,t,n,r){let i=e.matrixWorld.elements;return(t-i[12])*-i[8]+(n-i[13])*-i[9]+(r-i[14])*-i[10]<0}var m=(0,l.memo)(function(e){let t=(0,c.c)(12),{children:n,color:r,position:a,opacity:m}=e,h=r===void 0?`white`:r,g=a===void 0?d:a,_=m===void 0?`fadeWithDistance`:m,v=_===`fadeWithDistance`,y=(0,l.useRef)(null),[b,x]=(0,l.useState)(_!==0),S=(0,l.useRef)(null),C;t[0]!==v||t[1]!==b||t[2]!==_?(C=e=>{let{camera:t}=e,n=y.current;if(!n)return;n.getWorldPosition(f);let r=p(t,f.x,f.y,f.z);if(v){let e=r?1/0:t.position.distanceTo(f),n=e<200;if(b!==n&&x(n),S.current&&n){let t=Math.max(0,Math.min(1,1-e/200));S.current.style.opacity=t.toString()}}else{let e=!r&&_!==0;b!==e&&x(e),S.current&&(S.current.style.opacity=_.toString())}},t[0]=v,t[1]=b,t[2]=_,t[3]=C):C=t[3],i(C);let w;t[4]!==n||t[5]!==h||t[6]!==v||t[7]!==b||t[8]!==g?(w=b?(0,u.jsx)(o,{position:g,center:!0,children:(0,u.jsx)(`div`,{ref:S,className:s.Label,style:{color:h,opacity:v?0:void 0},children:n})}):null,t[4]=n,t[5]=h,t[6]=v,t[7]=b,t[8]=g,t[9]=w):w=t[9];let T;return t[10]===w?T=t[11]:(T=(0,u.jsx)(`group`,{ref:y,children:w}),t[10]=w,t[11]=T),T});export{m as t}; \ No newline at end of file diff --git a/docs/assets/GameView-DOXRUG38.js b/docs/assets/GameView-C7uJjiJd.js similarity index 97% rename from docs/assets/GameView-DOXRUG38.js rename to docs/assets/GameView-C7uJjiJd.js index 0702f135..4b5e8a14 100644 --- a/docs/assets/GameView-DOXRUG38.js +++ b/docs/assets/GameView-C7uJjiJd.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PlayerModel-CbQhsRlW.js","assets/chunk-DECur_0Z.js","assets/GenericShape-BC0gDQiR.js","assets/Texture-CIsc25mc.js","assets/react-three-fiber.esm-CgPHUpXo.js","assets/jsx-runtime-BpGWiA-R.js","assets/three.module-07hRbor4.js","assets/traditional-BTL5qX2E.js","assets/useBaseQuery-NrPec9_7.js","assets/index-B1XI52_L.js","assets/preload-helper-CwUjIIrH.js","assets/mission-Bem2ztlS.js","assets/logger-z_EpIdIa.js","assets/streamHelpers-D2N8suZp.js","assets/SettingsProvider-CCHVZuSg.js","assets/manifest-CirqV3Ls.js","assets/stringUtils-EmGsjr9D.js","assets/iconBase-BCRUFbxq.js","assets/middleware-DPacZrFu.js","assets/JoystickContext-YJ6eVLFP.js","assets/scene-BdOVRsxo.js","assets/cameraTourStore-PEzPVGnX.js","assets/engineStore-Dkm20jvr.js","assets/index-DvT5LFSb.css","assets/FloatingLabel-4Yii8rRq.js","assets/Html-BfjRWIZg.js","assets/extends-COZGby3T.js","assets/FloatingLabel-DfptgH-Y.css","assets/globalFogUniforms-CtxQvsRj.js","assets/loaders-CIpiZadQ.js","assets/AudioContext-CMp1T7r9.js","assets/AudioEmitter-2bTNGdLP.js","assets/DebugSuspense-Dk4MzcWf.js","assets/ShapeErrorBoundary-CJ_4YTMy.js","assets/streamPlaybackStore-DhJekvnx.js","assets/ShapeModel-BCrUHJyp.js","assets/Projectiles-DWQwPDtG.js","assets/ForceFieldBare-BzZ8rEsl.js","assets/WaterBlock-C_DD6ULb.js","assets/StreamingController-DfXluNV4.js","assets/gameEntityTypes-B1KihaDt.js","assets/DebugElements-DbcJj7CW.js","assets/DebugElements-BP0b5jan.css","assets/Mission-Coy6f_9U.js","assets/useQuery-FY4YqwDi.js","assets/misToScene-DdnDTJru.js","assets/ChatSoundPlayer-CkJcKyFh.js"])))=>i.map(i=>d[i]); -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,i as a,o,t as s}from"./react-three-fiber.esm-CgPHUpXo.js";import{a as c,i as l}from"./SettingsProvider-CCHVZuSg.js";import{t as u}from"./useQuery-FY4YqwDi.js";import{C as d,D as f,E as p,T as m,d as h,n as g,r as _,t as v,u as y,w as b,x}from"./GenericShape-BC0gDQiR.js";import{t as S}from"./stringUtils-EmGsjr9D.js";import{t as C}from"./logger-z_EpIdIa.js";import{n as w,t as T}from"./cameraTourStore-PEzPVGnX.js";import{t as E,x as D}from"./streamHelpers-D2N8suZp.js";import{A as O,At as k,C as A,Dt as j,E as M,Et as ee,Gt as te,Ht as N,K as P,M as F,O as I,Ot as ne,S as re,St as ie,Ut as L,Vt as ae,_ as oe,b as R,f as z,h as se,k as ce,lt as B,m as V,nt as le,v as ue,w as H}from"./three.module-07hRbor4.js";import{n as U,r as de,t as fe}from"./scene-BdOVRsxo.js";import"./mission-Bem2ztlS.js";import{a as pe,i as me}from"./engineStore-Dkm20jvr.js";import{t as W}from"./preload-helper-CwUjIIrH.js";import{A as he,D as ge,F as _e,I as ve,M as ye,N as be,R as xe,_ as Se,a as Ce,c as we,g as Te,i as Ee,k as De,l as Oe,m as ke,n as Ae,o as je,p as Me,r as Ne,s as Pe,t as Fe,u as Ie,z as Le}from"./index-B1XI52_L.js";import{f as Re,o as ze,p as G,s as Be,t as Ve,u as He}from"./loaders-CIpiZadQ.js";import{t as Ue}from"./AudioContext-CMp1T7r9.js";import{t as We}from"./extends-COZGby3T.js";import{t as Ge}from"./Html-BfjRWIZg.js";import{t as Ke}from"./Texture-CIsc25mc.js";import{t as qe}from"./FloatingLabel-4Yii8rRq.js";import{t as Je}from"./DebugSuspense-Dk4MzcWf.js";import{t as Ye}from"./gameEntityTypes-B1KihaDt.js";import{n as Xe}from"./streamPlaybackStore-DhJekvnx.js";import{c as Ze,d as Qe,f as $e,i as et,n as tt,o as nt,r as rt,s as it,t as at}from"./globalFogUniforms-CtxQvsRj.js";import{t as ot}from"./ShapeErrorBoundary-CJ_4YTMy.js";var K=e(n());function st(e,t,n){let r=o(e=>e.size),i=o(e=>e.viewport),a=typeof e==`number`?e:r.width*i.dpr,s=typeof t==`number`?t:r.height*i.dpr,c=(typeof e==`number`?n:e)||{},{samples:l=0,depth:u,...d}=c,f=u??c.depthBuffer,p=K.useMemo(()=>{let e=new te(a,s,{minFilter:P,magFilter:P,type:F,...d});return f&&(e.depthTexture=new H(a,s,ce)),e.samples=l,e},[]);return K.useLayoutEffect(()=>{p.setSize(a,s),l&&(p.samples=l)},[l,p,a,s]),K.useEffect(()=>()=>p.dispose(),[]),p}var ct=e=>typeof e==`function`,lt=K.forwardRef(({envMap:e,resolution:t=256,frames:n=1/0,makeDefault:r,children:i,...s},c)=>{let l=o(({set:e})=>e),u=o(({camera:e})=>e),d=o(({size:e})=>e),f=K.useRef(null);K.useImperativeHandle(c,()=>f.current,[]);let p=K.useRef(null),m=st(t);K.useLayoutEffect(()=>{s.manual||(f.current.aspect=d.width/d.height)},[d,s]),K.useLayoutEffect(()=>{f.current.updateProjectionMatrix()});let h=0,g=null,_=ct(i);return a(t=>{_&&(n===1/0||h{if(r){let e=u;return l(()=>({camera:f.current})),()=>l(()=>({camera:e}))}},[f,r,l]),K.createElement(K.Fragment,null,K.createElement(`perspectiveCamera`,We({ref:f},s),!_&&i),K.createElement(`group`,{ref:p},_&&i(m.texture)))});function ut(e,{path:t}){let[n]=i(re,[e],e=>e.setPath(t));return n}ut.preload=(e,{path:t})=>i.preload(re,[e],e=>e.setPath(t));var q=t(),dt={sunLightPointsDown:{value:!0}};function ft(e){dt.sunLightPointsDown.value=e}var J=r(),pt=C(`SceneLighting`);function mt(){let e=(0,q.c)(6),t=ve(),n,r;if(e[0]===t?(n=e[1],r=e[2]):(n=()=>{t?pt.debug(`sunData: dir=(%s, %s, %s) color=(%s, %s, %s) ambient=(%s, %s, %s)`,t.direction.x.toFixed(3),t.direction.y.toFixed(3),t.direction.z.toFixed(3),t.color.r.toFixed(3),t.color.g.toFixed(3),t.color.b.toFixed(3),t.ambient.r.toFixed(3),t.ambient.g.toFixed(3),t.ambient.b.toFixed(3)):pt.debug(`No sunData — using fallback ambient #888`)},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,K.useEffect)(n,r),!t){let t;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(`ambientLight`,{color:`#888888`,intensity:1}),e[3]=t):t=e[3],t}let i;return e[4]===t?i=e[5]:(i=(0,J.jsx)(ht,{sunData:t}),e[4]=t,e[5]=i),i}function ht(e){let t=(0,q.c)(29),{sunData:n}=e,r;t[0]===n.direction?r=t[1]:(r=de(n.direction),t[0]=n.direction,t[1]=r);let[i,a,o]=r,s=Math.sqrt(i*i+a*a+o*o),c=i/s,l=a/s,u=o/s,d;t[2]!==c||t[3]!==l||t[4]!==u?(d=new L(c,l,u),t[2]=c,t[3]=l,t[4]=u,t[5]=d):d=t[5];let f=d,p=-f.x*5e3,m=-f.y*5e3,h=-f.z*5e3,g;t[6]!==p||t[7]!==m||t[8]!==h?(g=new L(p,m,h),t[6]=p,t[7]=m,t[8]=h,t[9]=g):g=t[9];let _=g,v;t[10]!==n.color.b||t[11]!==n.color.g||t[12]!==n.color.r?(v=new R(n.color.r,n.color.g,n.color.b),t[10]=n.color.b,t[11]=n.color.g,t[12]=n.color.r,t[13]=v):v=t[13];let y=v,b;t[14]!==n.ambient.b||t[15]!==n.ambient.g||t[16]!==n.ambient.r?(b=new R(n.ambient.r,n.ambient.g,n.ambient.b),t[14]=n.ambient.b,t[15]=n.ambient.g,t[16]=n.ambient.r,t[17]=b):b=t[17];let x=b,S=f.y<0,C,w;t[18]===S?(C=t[19],w=t[20]):(C=()=>{ft(S)},w=[S],t[18]=S,t[19]=C,t[20]=w),(0,K.useEffect)(C,w);let T;t[21]!==y||t[22]!==_?(T=(0,J.jsx)(`directionalLight`,{position:_,color:y,intensity:1,castShadow:!0,"shadow-mapSize-width":8192,"shadow-mapSize-height":8192,"shadow-camera-left":-4096,"shadow-camera-right":4096,"shadow-camera-top":4096,"shadow-camera-bottom":-4096,"shadow-camera-near":100,"shadow-camera-far":12e3,"shadow-bias":-1e-5,"shadow-normalBias":.4,"shadow-radius":2}),t[21]=y,t[22]=_,t[23]=T):T=t[23];let E;t[24]===x?E=t[25]:(E=(0,J.jsx)(`ambientLight`,{color:x,intensity:1}),t[24]=x,t[25]=E);let D;return t[26]!==T||t[27]!==E?(D=(0,J.jsxs)(J.Fragment,{children:[T,E]}),t[26]=T,t[27]=E,t[28]=D):D=t[28],D}function gt(){let e=(0,q.c)(4),{fpsLimit:t}=c(),n=o(_t),r,i;return e[0]!==t||e[1]!==n?(r=()=>{if(t==null)return;let e=1e3/t,r=0,i;function a(t){i=requestAnimationFrame(a),t-r>=e&&(r=t-(t-r)%e,n())}return i=requestAnimationFrame(a),()=>cancelAnimationFrame(i)},i=[t,n],e[0]=t,e[1]=n,e[2]=r,e[3]=i):(r=e[2],i=e[3]),(0,K.useEffect)(r,i),t}function _t(e){return e.invalidate}function vt(){return gt(),null}var yt={toneMapping:0,outputColorSpace:ne};function bt(e){let t=(0,q.c)(11),{children:n,renderOnDemand:r,dpr:i,onCreated:a}=e,o=r===void 0?!1:r,{renderOnDemand:u}=l(),d=o||u,{fpsLimit:f}=c(),p=f!=null&&!d,m=d||p?`demand`:`always`,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h={type:1},t[0]=h):h=t[0];let g;t[1]===n?g=t[2]:(g=(0,J.jsx)(K.Suspense,{children:n}),t[1]=n,t[2]=g);let _;t[3]===p?_=t[4]:(_=p?(0,J.jsx)(vt,{}):null,t[3]=p,t[4]=_);let v;return t[5]!==i||t[6]!==a||t[7]!==m||t[8]!==g||t[9]!==_?(v=(0,J.jsxs)(s,{frameloop:m,dpr:i,gl:yt,shadows:h,onCreated:a,children:[g,_]}),t[5]=i,t[6]=a,t[7]=m,t[8]=g,t[9]=_,t[10]=v):v=t[10],v}function xt(e){let t=(0,q.c)(12),{entity:n}=e,{registerCamera:r,unregisterCamera:i}=Se(),a=(0,K.useId)(),o=n.cameraDataBlock,s;t[0]===n.position?s=t[1]:(s=n.position?new L(...n.position):new L,t[0]=n.position,t[1]=s);let c=s,l;t[2]===n.rotation?l=t[3]:(l=n.rotation?new ie(...n.rotation):new ie,t[2]=n.rotation,t[3]=l);let u=l,d,f;return t[4]!==o||t[5]!==a||t[6]!==c||t[7]!==r||t[8]!==u||t[9]!==i?(d=()=>{if(o===`Observer`){let e={id:a,position:c,rotation:u};return r(e),()=>{i(e)}}},f=[a,o,r,i,c,u],t[4]=o,t[5]=a,t[6]=c,t[7]=r,t[8]=u,t[9]=i,t[10]=d,t[11]=f):(d=t[10],f=t[11]),(0,K.useEffect)(d,f),null}function St(e){let t=(0,q.c)(3),{entity:n}=e,r;return t[0]!==n.label||t[1]!==n.position?(r=n.label?(0,J.jsx)(qe,{position:n.position,opacity:.6,children:n.label}):null,t[0]=n.label,t[1]=n.position,t[2]=r):r=t[2],r}function Ct(e){let t=new Float32Array(e.length);for(let n=0;ni.map(i=>d[i]); +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,i as a,o,t as s}from"./react-three-fiber.esm-CgPHUpXo.js";import{a as c,i as l}from"./SettingsProvider-CCHVZuSg.js";import{t as u}from"./useQuery-lKBLxuin.js";import{C as d,D as f,E as p,T as m,d as h,n as g,r as _,t as v,u as y,w as b,x}from"./GenericShape-FZ5loHEW.js";import{t as S}from"./stringUtils-EmGsjr9D.js";import{t as C}from"./logger-z_EpIdIa.js";import{n as w,t as T}from"./cameraTourStore-PEzPVGnX.js";import{t as E,x as D}from"./streamHelpers-D2N8suZp.js";import{A as O,At as k,C as A,Dt as j,E as M,Et as ee,Gt as te,Ht as N,K as P,M as F,O as I,Ot as ne,S as re,St as ie,Ut as L,Vt as ae,_ as oe,b as R,f as z,h as se,k as ce,lt as B,m as V,nt as le,v as ue,w as H}from"./three.module-07hRbor4.js";import{n as U,r as de,t as fe}from"./scene-BdOVRsxo.js";import"./mission-Bem2ztlS.js";import{a as pe,i as me}from"./engineStore-Dkm20jvr.js";import{t as W}from"./preload-helper-CwUjIIrH.js";import{A as he,D as ge,F as _e,I as ve,M as ye,N as be,R as xe,_ as Se,a as Ce,c as we,g as Te,i as Ee,k as De,l as Oe,m as ke,n as Ae,o as je,p as Me,r as Ne,s as Pe,t as Fe,u as Ie,z as Le}from"./index-DfaykQpF.js";import{f as Re,o as ze,p as G,s as Be,t as Ve,u as He}from"./loaders-CIpiZadQ.js";import{t as Ue}from"./AudioContext-CMp1T7r9.js";import{t as We}from"./extends-COZGby3T.js";import{t as Ge}from"./Html-DTt-Asp4.js";import{t as Ke}from"./Texture-CIsc25mc.js";import{t as qe}from"./FloatingLabel-Bm1LwAgd.js";import{t as Je}from"./DebugSuspense-Dk4MzcWf.js";import{t as Ye}from"./gameEntityTypes-B1KihaDt.js";import{n as Xe}from"./streamPlaybackStore-DhJekvnx.js";import{c as Ze,d as Qe,f as $e,i as et,n as tt,o as nt,r as rt,s as it,t as at}from"./globalFogUniforms-CtxQvsRj.js";import{t as ot}from"./ShapeErrorBoundary-CJ_4YTMy.js";var K=e(n());function st(e,t,n){let r=o(e=>e.size),i=o(e=>e.viewport),a=typeof e==`number`?e:r.width*i.dpr,s=typeof t==`number`?t:r.height*i.dpr,c=(typeof e==`number`?n:e)||{},{samples:l=0,depth:u,...d}=c,f=u??c.depthBuffer,p=K.useMemo(()=>{let e=new te(a,s,{minFilter:P,magFilter:P,type:F,...d});return f&&(e.depthTexture=new H(a,s,ce)),e.samples=l,e},[]);return K.useLayoutEffect(()=>{p.setSize(a,s),l&&(p.samples=l)},[l,p,a,s]),K.useEffect(()=>()=>p.dispose(),[]),p}var ct=e=>typeof e==`function`,lt=K.forwardRef(({envMap:e,resolution:t=256,frames:n=1/0,makeDefault:r,children:i,...s},c)=>{let l=o(({set:e})=>e),u=o(({camera:e})=>e),d=o(({size:e})=>e),f=K.useRef(null);K.useImperativeHandle(c,()=>f.current,[]);let p=K.useRef(null),m=st(t);K.useLayoutEffect(()=>{s.manual||(f.current.aspect=d.width/d.height)},[d,s]),K.useLayoutEffect(()=>{f.current.updateProjectionMatrix()});let h=0,g=null,_=ct(i);return a(t=>{_&&(n===1/0||h{if(r){let e=u;return l(()=>({camera:f.current})),()=>l(()=>({camera:e}))}},[f,r,l]),K.createElement(K.Fragment,null,K.createElement(`perspectiveCamera`,We({ref:f},s),!_&&i),K.createElement(`group`,{ref:p},_&&i(m.texture)))});function ut(e,{path:t}){let[n]=i(re,[e],e=>e.setPath(t));return n}ut.preload=(e,{path:t})=>i.preload(re,[e],e=>e.setPath(t));var q=t(),dt={sunLightPointsDown:{value:!0}};function ft(e){dt.sunLightPointsDown.value=e}var J=r(),pt=C(`SceneLighting`);function mt(){let e=(0,q.c)(6),t=ve(),n,r;if(e[0]===t?(n=e[1],r=e[2]):(n=()=>{t?pt.debug(`sunData: dir=(%s, %s, %s) color=(%s, %s, %s) ambient=(%s, %s, %s)`,t.direction.x.toFixed(3),t.direction.y.toFixed(3),t.direction.z.toFixed(3),t.color.r.toFixed(3),t.color.g.toFixed(3),t.color.b.toFixed(3),t.ambient.r.toFixed(3),t.ambient.g.toFixed(3),t.ambient.b.toFixed(3)):pt.debug(`No sunData — using fallback ambient #888`)},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,K.useEffect)(n,r),!t){let t;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(`ambientLight`,{color:`#888888`,intensity:1}),e[3]=t):t=e[3],t}let i;return e[4]===t?i=e[5]:(i=(0,J.jsx)(ht,{sunData:t}),e[4]=t,e[5]=i),i}function ht(e){let t=(0,q.c)(29),{sunData:n}=e,r;t[0]===n.direction?r=t[1]:(r=de(n.direction),t[0]=n.direction,t[1]=r);let[i,a,o]=r,s=Math.sqrt(i*i+a*a+o*o),c=i/s,l=a/s,u=o/s,d;t[2]!==c||t[3]!==l||t[4]!==u?(d=new L(c,l,u),t[2]=c,t[3]=l,t[4]=u,t[5]=d):d=t[5];let f=d,p=-f.x*5e3,m=-f.y*5e3,h=-f.z*5e3,g;t[6]!==p||t[7]!==m||t[8]!==h?(g=new L(p,m,h),t[6]=p,t[7]=m,t[8]=h,t[9]=g):g=t[9];let _=g,v;t[10]!==n.color.b||t[11]!==n.color.g||t[12]!==n.color.r?(v=new R(n.color.r,n.color.g,n.color.b),t[10]=n.color.b,t[11]=n.color.g,t[12]=n.color.r,t[13]=v):v=t[13];let y=v,b;t[14]!==n.ambient.b||t[15]!==n.ambient.g||t[16]!==n.ambient.r?(b=new R(n.ambient.r,n.ambient.g,n.ambient.b),t[14]=n.ambient.b,t[15]=n.ambient.g,t[16]=n.ambient.r,t[17]=b):b=t[17];let x=b,S=f.y<0,C,w;t[18]===S?(C=t[19],w=t[20]):(C=()=>{ft(S)},w=[S],t[18]=S,t[19]=C,t[20]=w),(0,K.useEffect)(C,w);let T;t[21]!==y||t[22]!==_?(T=(0,J.jsx)(`directionalLight`,{position:_,color:y,intensity:1,castShadow:!0,"shadow-mapSize-width":8192,"shadow-mapSize-height":8192,"shadow-camera-left":-4096,"shadow-camera-right":4096,"shadow-camera-top":4096,"shadow-camera-bottom":-4096,"shadow-camera-near":100,"shadow-camera-far":12e3,"shadow-bias":-1e-5,"shadow-normalBias":.4,"shadow-radius":2}),t[21]=y,t[22]=_,t[23]=T):T=t[23];let E;t[24]===x?E=t[25]:(E=(0,J.jsx)(`ambientLight`,{color:x,intensity:1}),t[24]=x,t[25]=E);let D;return t[26]!==T||t[27]!==E?(D=(0,J.jsxs)(J.Fragment,{children:[T,E]}),t[26]=T,t[27]=E,t[28]=D):D=t[28],D}function gt(){let e=(0,q.c)(4),{fpsLimit:t}=c(),n=o(_t),r,i;return e[0]!==t||e[1]!==n?(r=()=>{if(t==null)return;let e=1e3/t,r=0,i;function a(t){i=requestAnimationFrame(a),t-r>=e&&(r=t-(t-r)%e,n())}return i=requestAnimationFrame(a),()=>cancelAnimationFrame(i)},i=[t,n],e[0]=t,e[1]=n,e[2]=r,e[3]=i):(r=e[2],i=e[3]),(0,K.useEffect)(r,i),t}function _t(e){return e.invalidate}function vt(){return gt(),null}var yt={toneMapping:0,outputColorSpace:ne};function bt(e){let t=(0,q.c)(11),{children:n,renderOnDemand:r,dpr:i,onCreated:a}=e,o=r===void 0?!1:r,{renderOnDemand:u}=l(),d=o||u,{fpsLimit:f}=c(),p=f!=null&&!d,m=d||p?`demand`:`always`,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h={type:1},t[0]=h):h=t[0];let g;t[1]===n?g=t[2]:(g=(0,J.jsx)(K.Suspense,{children:n}),t[1]=n,t[2]=g);let _;t[3]===p?_=t[4]:(_=p?(0,J.jsx)(vt,{}):null,t[3]=p,t[4]=_);let v;return t[5]!==i||t[6]!==a||t[7]!==m||t[8]!==g||t[9]!==_?(v=(0,J.jsxs)(s,{frameloop:m,dpr:i,gl:yt,shadows:h,onCreated:a,children:[g,_]}),t[5]=i,t[6]=a,t[7]=m,t[8]=g,t[9]=_,t[10]=v):v=t[10],v}function xt(e){let t=(0,q.c)(12),{entity:n}=e,{registerCamera:r,unregisterCamera:i}=Se(),a=(0,K.useId)(),o=n.cameraDataBlock,s;t[0]===n.position?s=t[1]:(s=n.position?new L(...n.position):new L,t[0]=n.position,t[1]=s);let c=s,l;t[2]===n.rotation?l=t[3]:(l=n.rotation?new ie(...n.rotation):new ie,t[2]=n.rotation,t[3]=l);let u=l,d,f;return t[4]!==o||t[5]!==a||t[6]!==c||t[7]!==r||t[8]!==u||t[9]!==i?(d=()=>{if(o===`Observer`){let e={id:a,position:c,rotation:u};return r(e),()=>{i(e)}}},f=[a,o,r,i,c,u],t[4]=o,t[5]=a,t[6]=c,t[7]=r,t[8]=u,t[9]=i,t[10]=d,t[11]=f):(d=t[10],f=t[11]),(0,K.useEffect)(d,f),null}function St(e){let t=(0,q.c)(3),{entity:n}=e,r;return t[0]!==n.label||t[1]!==n.position?(r=n.label?(0,J.jsx)(qe,{position:n.position,opacity:.6,children:n.label}):null,t[0]=n.label,t[1]=n.position,t[2]=r):r=t[2],r}function Ct(e){let t=new Float32Array(e.length);for(let n=0;ne.scene),r=o(e=>e.camera),i=(0,K.useRef)(null),s=(0,K.useMemo)(()=>tt(e.fogVolumes),[e.fogVolumes]);return(0,K.useEffect)(()=>{kn||=(it(),!0)},[]),(0,K.useEffect)(()=>{rt();let[t,a]=In(e,r.position.y),o=new O(e.fogColor,t,a);return n.fog=o,i.current=o,et(r.position.y,s),()=>{n.fog=null,i.current=null,rt()}},[n,r,e,s]),(0,K.useEffect)(()=>{let n=i.current;if(n)if(t){let[t,i]=In(e,r.position.y);n.near=t,n.far=i}else n.near=1e10,n.far=1e10},[t,e,r.position.y]),a(()=>{let n=i.current;if(!n)return;let a=r.position.y;if(et(a,s,t),t){let[t,r]=In(e,a);n.near=t,n.far=r,n.color.copy(e.fogColor)}}),null}var Rn=(0,K.memo)(function({entity:e}){let{skyData:t}=e;On.debug(`Rendering: materialList=%s, useSkyTextures=%s`,t.materialList,t.useSkyTextures);let{fogEnabled:n}=c(),r=t.materialList||void 0,i=(0,K.useMemo)(()=>An(t.skySolidColor),[t.skySolidColor]),a=t.useSkyTextures,s=(0,K.useMemo)(()=>Dn(t),[t]);On.debug(`fogState: fogColor=(%s, %s, %s) visibleDistance=%d fogDistance=%d enabled=%s volumes=%d`,t.fogColor.r.toFixed(3),t.fogColor.g.toFixed(3),t.fogColor.b.toFixed(3),t.visibleDistance,t.fogDistance,s.enabled,s.fogVolumes.length);let l=(0,K.useMemo)(()=>An(t.fogColor),[t.fogColor]),u=i||l,d=s.enabled&&n,f=s.fogColor,p=o(e=>e.scene),m=o(e=>e.gl);(0,K.useEffect)(()=>{if(d){let e=f.clone();p.background=e,m.setClearColor(e)}else if(u){let e=u[0].clone();p.background=e,m.setClearColor(e)}else p.background=null;return()=>{p.background=null}},[p,m,d,f,u]);let h=i?.[1];return(0,J.jsxs)(J.Fragment,{children:[r&&a&&r.length>0?(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(Pn,{materialList:r,fogColor:d?f:void 0,fogState:d?s:void 0},r)}):h?(0,J.jsx)(Fn,{skyColor:h,fogColor:d?f:void 0,fogState:d?s:void 0}):null,(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(wn,{scene:t})}),s.enabled?(0,J.jsx)(Ln,{fogState:s,enabled:n}):null]})});function zn(e){let t=(0,q.c)(3),{children:n}=e,{audioEnabled:r}=c(),i;return t[0]!==r||t[1]!==n?(i=r?(0,J.jsx)(K.Suspense,{children:n}):null,t[0]=r,t[1]=n,t[2]=i):i=t[2],i}function Z(e,t){let n=(0,K.lazy)(()=>t().then(t=>({default:t[e]}))),r=t=>{let r=(0,q.c)(5),{entity:i}=t,a=`${e}:${i.id}`,o;r[0]===i?o=r[1]:(o=(0,J.jsx)(n,{entity:i}),r[0]=i,r[1]=o);let s;return r[2]!==a||r[3]!==o?(s=(0,J.jsx)(Je,{name:a,children:o}),r[2]=a,r[3]=o,r[4]=s):s=r[4],s};return r.displayName=`createLazy(${e})`,r}var Bn=Z(`PlayerModel`,()=>W(()=>import(`./PlayerModel-CbQhsRlW.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]))),Vn=Z(`ExplosionShape`,()=>W(()=>import(`./ShapeModel-BCrUHJyp.js`),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34]))),Hn=Z(`TracerProjectile`,()=>W(()=>import(`./Projectiles-DWQwPDtG.js`),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]))),Un=Z(`SpriteProjectile`,()=>W(()=>import(`./Projectiles-DWQwPDtG.js`),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]))),Wn=Z(`ForceFieldBare`,()=>W(()=>import(`./ForceFieldBare-BzZ8rEsl.js`),__vite__mapDeps([37,1,3,4,5,6,7,14,15,16,32,12,29,11]))),Gn=Z(`AudioEmitter`,()=>W(()=>import(`./AudioEmitter-2bTNGdLP.js`),__vite__mapDeps([31,1,4,5,6,7,14,15,16,12,30,22,18,24,25,9,10,11,13,17,19,20,21,23,26,27,29]))),Kn=Z(`WaterBlock`,()=>W(()=>import(`./WaterBlock-C_DD6ULb.js`),__vite__mapDeps([38,1,26,3,4,5,6,7,14,15,16,28,29,11,12,20]))),qn=Z(`WeaponModel`,()=>W(()=>import(`./ShapeModel-BCrUHJyp.js`),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34]))),Jn=(0,K.memo)(function(e){let t=(0,q.c)(26),{entity:n}=e;switch(n.renderType){case`Shape`:{let e;return t[0]===n?e=t[1]:(e=(0,J.jsx)(Yn,{entity:n}),t[0]=n,t[1]=e),e}case`ForceFieldBare`:{let e;return t[2]===n?e=t[3]:(e=(0,J.jsx)(Wn,{entity:n}),t[2]=n,t[3]=e),e}case`Player`:{let e;return t[4]===n?e=t[5]:(e=(0,J.jsx)(Bn,{entity:n}),t[4]=n,t[5]=e),e}case`Explosion`:{let e;return t[6]===n?e=t[7]:(e=(0,J.jsx)(Vn,{entity:n}),t[6]=n,t[7]=e),e}case`Tracer`:{let e;return t[8]===n?e=t[9]:(e=(0,J.jsx)(Hn,{entity:n}),t[8]=n,t[9]=e),e}case`Sprite`:{let e;return t[10]===n?e=t[11]:(e=(0,J.jsx)(Un,{entity:n}),t[10]=n,t[11]=e),e}case`AudioEmitter`:{let e;return t[12]===n?e=t[13]:(e=(0,J.jsx)(zn,{children:(0,J.jsx)(Gn,{entity:n})}),t[12]=n,t[13]=e),e}case`Camera`:{let e;return t[14]===n?e=t[15]:(e=(0,J.jsx)(xt,{entity:n}),t[14]=n,t[15]=e),e}case`WayPoint`:{let e;return t[16]===n?e=t[17]:(e=(0,J.jsx)(St,{entity:n}),t[16]=n,t[17]=e),e}case`TerrainBlock`:{let e;return t[18]===n.terrainData?e=t[19]:(e=(0,J.jsx)(Kt,{scene:n.terrainData}),t[18]=n.terrainData,t[19]=e),e}case`InteriorInstance`:{let e;return t[20]===n.interiorData?e=t[21]:(e=(0,J.jsx)(cn,{scene:n.interiorData}),t[20]=n.interiorData,t[21]=e),e}case`Sky`:{let e;return t[22]===n?e=t[23]:(e=(0,J.jsx)(Rn,{entity:n}),t[22]=n,t[23]=e),e}case`Sun`:return null;case`WaterBlock`:{let e;return t[24]===n?e=t[25]:(e=(0,J.jsx)(Kn,{entity:n}),t[24]=n,t[25]=e),e}case`MissionArea`:return null;case`None`:return null;default:return null}});function Yn(e){let t=(0,q.c)(24),{entity:n}=e,{animationEnabled:r}=c(),i=(0,K.useRef)(null),o;if(t[0]!==r||t[1]!==n.rotate?(o=()=>{if(!i.current||!n.rotate||!r)return;let e=performance.now()/1e3;i.current.rotation.y=e/3*Math.PI*2},t[0]=r,t[1]=n.rotate,t[2]=o):o=t[2],a(o),!n.shapeName)throw Error(`Shape entity missing shapeName: ${n.id}`);let s=n.runtimeObject,l=n.shapeType??`StaticShape`,u=n.dataBlock?.toLowerCase()===`flag`,d=n.teamId&&n.teamId>0?S[n.teamId]:null,f=u&&d?`${d} Flag`:null,p=n.shapeType===`Item`?`pink`:n.threads?`#00ff88`:`yellow`,m=n.rotate?i:void 0,h=s?void 0:n,_;t[3]===f?_=t[4]:(_=f?(0,J.jsx)(qe,{opacity:.6,children:f}):null,t[3]=f,t[4]=_);let y;t[5]!==p||t[6]!==h||t[7]!==_?(y=(0,J.jsx)(g,{loadingColor:p,streamEntity:h,children:_}),t[5]=p,t[6]=h,t[7]=_,t[8]=y):y=t[8];let b;t[9]!==n.barrelShapeName||t[10]!==s?(b=n.barrelShapeName&&(0,J.jsx)(x,{object:s,shapeName:n.barrelShapeName,type:`Turret`,children:(0,J.jsx)(`group`,{position:[0,1.5,0],children:(0,J.jsx)(g,{})})}),t[9]=n.barrelShapeName,t[10]=s,t[11]=b):b=t[11];let C;t[12]===n?C=t[13]:(C=n.weaponShape&&(0,J.jsx)(ot,{fallback:(0,J.jsx)(v,{color:`red`,label:n.weaponShape}),children:(0,J.jsx)(Je,{name:`Weapon:${n.id}/${n.weaponShape}`,fallback:(0,J.jsx)(v,{color:`cyan`,label:n.weaponShape}),children:(0,J.jsx)(qn,{entity:n})})}),t[12]=n,t[13]=C);let w;t[14]!==m||t[15]!==y||t[16]!==b||t[17]!==C?(w=(0,J.jsxs)(`group`,{ref:m,children:[y,b,C]}),t[14]=m,t[15]=y,t[16]=b,t[17]=C,t[18]=w):w=t[18];let T;return t[19]!==n.shapeName||t[20]!==l||t[21]!==w||t[22]!==s?(T=(0,J.jsx)(x,{object:s,shapeName:n.shapeName,type:l,children:w}),t[19]=n.shapeName,t[20]=l,t[21]=w,t[22]=s,t[23]=T):T=t[23],T}var Xn={Root:`_Root_dlg08_1`,Top:`_Top_dlg08_9 _Root_dlg08_1`,Bottom:`_Bottom_dlg08_14 _Root_dlg08_1`,IffArrow:`_IffArrow_dlg08_19`,Name:`_Name_dlg08_26`,HealthBar:`_HealthBar_dlg08_34`,HealthFill:`_HealthFill_dlg08_43`},Zn=150,Qn=.1,$n=-.2,er=G(`gui/hud_alliedtriangle`),tr=G(`gui/hud_enemytriangle`),nr=new L,rr=[];function ir(e){let t=(0,q.c)(21),{entity:n}=e,r=_(n.shapeName??n.dataBlock),i=o(or),s=(0,K.useRef)(null),c=(0,K.useRef)(null),l=(0,K.useRef)(null),u=(0,K.useRef)(null),d=(0,K.useRef)(null),[f,p]=(0,K.useState)(!0),m=(0,K.useRef)(null),g;t[0]===r.scene?g=t[1]:(g=new z().setFromObject(r.scene),t[0]=r.scene,t[1]=g);let v=g.max.y+Qn,y=n.keyframes??rr,b;t[2]===y?b=t[3]:(b=y.some(ar),t[2]=y,t[3]=b);let x=b,S;t[4]!==i||t[5]!==n.id||t[6]!==n.iffColor||t[7]!==n.playerName||t[8]!==x||t[9]!==f||t[10]!==y?(S=()=>{let e=s.current;if(!e)return;e.getWorldPosition(nr);let t=i.position.distanceTo(nr),r=i.matrixWorld.elements,a=!((nr.x-r[12])*-r[8]+(nr.y-r[13])*-r[9]+(nr.z-r[14])*-r[10]<0)&&t=1){c.current&&(c.current.style.opacity=`0`),l.current&&(l.current.style.opacity=`0`);return}let _=Math.max(0,Math.min(1,1-t/Zn)).toString();if(c.current&&(c.current.style.opacity=_),l.current&&(l.current.style.opacity=_),m.current){let e=n.playerName??n.id;m.current.textContent!==e&&(m.current.textContent=e)}if(d.current&&n.iffColor){let e=n.iffColor.r>n.iffColor.g?tr:er;d.current.getAttribute(`src`)!==e&&(d.current.src=e)}u.current&&x&&(u.current.style.width=`${Math.max(0,Math.min(100,g*100))}%`,u.current.style.background=n.iffColor?`rgb(${n.iffColor.r}, ${n.iffColor.g}, ${n.iffColor.b})`:``)},t[4]=i,t[5]=n.id,t[6]=n.iffColor,t[7]=n.playerName,t[8]=x,t[9]=f,t[10]=y,t[11]=S):S=t[11],a(S);let C=n.iffColor&&n.iffColor.r>n.iffColor.g?tr:er,w;t[12]!==n.id||t[13]!==n.playerName||t[14]!==x||t[15]!==v||t[16]!==C||t[17]!==f?(w=f&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Ge,{position:[0,v,0],center:!0,children:(0,J.jsx)(`div`,{ref:c,className:Xn.Top,children:(0,J.jsx)(`img`,{ref:d,className:Xn.IffArrow,src:C,alt:``})})}),(0,J.jsx)(Ge,{position:[0,$n,0],center:!0,children:(0,J.jsxs)(`div`,{ref:l,className:Xn.Bottom,children:[(0,J.jsx)(`div`,{ref:m,className:Xn.Name,children:n.playerName??n.id}),x&&(0,J.jsx)(`div`,{className:Xn.HealthBar,children:(0,J.jsx)(`div`,{ref:u,className:Xn.HealthFill})})]})})]}),t[12]=n.id,t[13]=n.playerName,t[14]=x,t[15]=v,t[16]=C,t[17]=f,t[18]=w):w=t[18];let T;return t[19]===w?T=t[20]:(T=(0,J.jsx)(`group`,{ref:s,children:w}),t[19]=w,t[20]=T),T}function ar(e){return e.health!=null}function or(e){return e.camera}var sr={Root:`_Root_yuidw_1`,Distance:`_Distance_yuidw_9`,Icon:`_Icon_yuidw_18`},cr=1.5,lr=G(`commander/MiniIcons/com_flag_grey`),ur=new L;function dr(e){let t=(0,q.c)(9),{entity:n}=e,r=(0,K.useRef)(null),i=(0,K.useRef)(null),s=(0,K.useRef)(null),c=o(fr),l;t[0]!==c||t[1]!==n.iffColor?(l=()=>{if(i.current&&n.iffColor){let{r:e,g:t,b:r}=n.iffColor;i.current.style.backgroundColor=`rgb(${e},${t},${r})`}if(s.current&&r.current){r.current.getWorldPosition(ur);let e=c.position.distanceTo(ur);s.current.textContent=e.toFixed(1)}},t[0]=c,t[1]=n.iffColor,t[2]=l):l=t[2],a(l);let u=n.iffColor?`rgb(${n.iffColor.r},${n.iffColor.g},${n.iffColor.b})`:`rgb(200,200,200)`,d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=[0,cr,0],t[3]=d):d=t[3];let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsx)(`span`,{ref:s,className:sr.Distance}),t[4]=f):f=t[4];let p;t[5]===u?p=t[6]:(p={backgroundColor:u,"--flag-icon-url":`url(${lr})`},t[5]=u,t[6]=p);let m=p,h;return t[7]===m?h=t[8]:(h=(0,J.jsx)(`group`,{ref:r,children:(0,J.jsx)(Ge,{position:d,center:!0,children:(0,J.jsxs)(`div`,{className:sr.Root,children:[f,(0,J.jsx)(`div`,{ref:i,className:sr.Icon,style:m})]})})}),t[7]=m,t[8]=h),h}function fr(e){return e.camera}function pr(){let e=(0,q.c)(1),t=mr,n;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,J.jsx)(`group`,{ref:t,children:(0,J.jsx)(hr,{})}),e[0]=n):n=e[0],n}function mr(e){Xe.setState({root:e})}var hr=(0,K.memo)(function(){let e=ye(),t=(0,K.useRef)(new Map).current,n=new Set;for(let r of e)n.add(r.id),t.set(r.id,r);for(let e of t.keys())n.has(e)||t.delete(e);return(0,J.jsx)(J.Fragment,{children:[...t.values()].map(e=>(0,J.jsx)(gr,{entity:e},e.id))})}),gr=(0,K.memo)(function(e){let t=(0,q.c)(7),{entity:n}=e;if(Ye(n)){let e;t[0]===n?e=t[1]:(e=(0,J.jsx)(Jn,{entity:n}),t[0]=n,t[1]=e);let r;return t[2]!==n.id||t[3]!==e?(r=(0,J.jsx)(`group`,{name:n.id,children:e}),t[2]=n.id,t[3]=e,t[4]=r):r=t[4],r}if(n.renderType===`None`)return null;let r;return t[5]===n?r=t[6]:(r=(0,J.jsx)(br,{entity:n}),t[5]=n,t[6]=r),r});function _r(e){let t=(0,q.c)(2),{entity:n}=e,r=me(vr);if(n.id===r)return null;let i;return t[0]===n?i=t[1]:(i=(0,J.jsx)(ir,{entity:n}),t[0]=n,t[1]=i),i}function vr(e){return e.playback.streamSnapshot?.controlPlayerGhostId}function yr({entity:e}){let t=(0,K.useRef)(!1),[n,r]=(0,K.useState)(()=>(((`targetRenderFlags`in e?e.targetRenderFlags:void 0)??0)&2)!=0);return t.current=n,a(()=>{let n=(((`targetRenderFlags`in e?e.targetRenderFlags:void 0)??0)&2)!=0;n!==t.current&&(t.current=n,r(n))}),n?(0,J.jsx)(dr,{entity:e}):null}function br(e){let t=(0,q.c)(39),{entity:n}=e,r=n.position,i=n.scale,a;bb0:{if(!n.rotation){a=void 0;break bb0}let e;t[0]===n.rotation?e=t[1]:(e=new ie(...n.rotation),t[0]=n.rotation,t[1]=e),a=e}let o=a,s=n.renderType===`Player`;if(n.renderType===`Shape`&&!n.shapeName){let e=n.id,a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,J.jsx)(`sphereGeometry`,{args:[.3,6,4]}),t[2]=a):a=t[2];let s;t[3]===n.className?s=t[4]:(s=y(n.className),t[3]=n.className,t[4]=s);let c;t[5]===s?c=t[6]:(c=(0,J.jsxs)(`mesh`,{children:[a,(0,J.jsx)(`meshBasicMaterial`,{color:s,wireframe:!0})]}),t[5]=s,t[6]=c);let l;t[7]===n?l=t[8]:(l=(0,J.jsx)(yr,{entity:n}),t[7]=n,t[8]=l);let u;return t[9]!==n.id||t[10]!==r||t[11]!==o||t[12]!==i||t[13]!==c||t[14]!==l?(u=(0,J.jsxs)(`group`,{name:e,position:r,quaternion:o,scale:i,children:[c,l]}),t[9]=n.id,t[10]=r,t[11]=o,t[12]=i,t[13]=c,t[14]=l,t[15]=u):u=t[15],u}let c;t[16]!==n.className||t[17]!==n.renderType?(c=n.renderType===`Explosion`?null:(0,J.jsxs)(`mesh`,{children:[(0,J.jsx)(`sphereGeometry`,{args:[.5,8,6]}),(0,J.jsx)(`meshBasicMaterial`,{color:y(n.className),wireframe:!0})]}),t[16]=n.className,t[17]=n.renderType,t[18]=c):c=t[18];let l=c,u;t[19]===n?u=t[20]:(u=(0,J.jsx)(Jn,{entity:n}),t[19]=n,t[20]=u);let d;t[21]!==l||t[22]!==u?(d=(0,J.jsx)(ot,{fallback:l,children:u}),t[21]=l,t[22]=u,t[23]=d):d=t[23];let f;t[24]!==n||t[25]!==s?(f=s&&(0,J.jsx)(_r,{entity:n}),t[24]=n,t[25]=s,t[26]=f):f=t[26];let p;t[27]===n?p=t[28]:(p=(0,J.jsx)(yr,{entity:n}),t[27]=n,t[28]=p);let m;t[29]!==d||t[30]!==f||t[31]!==p?(m=(0,J.jsxs)(`group`,{name:`model`,children:[d,f,p]}),t[29]=d,t[30]=f,t[31]=p,t[32]=m):m=t[32];let h;return t[33]!==n.id||t[34]!==r||t[35]!==o||t[36]!==i||t[37]!==m?(h=(0,J.jsx)(`group`,{name:n.id,position:r,quaternion:o,scale:i,children:m}),t[33]=n.id,t[34]=r,t[35]=o,t[36]=i,t[37]=m,t[38]=h):h=t[38],h}function xr(){let e=(0,q.c)(3),{fov:t}=c(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[0,256,0],e[0]=n):n=e[0];let r;return e[1]===t?r=e[2]:(r=(0,J.jsx)(lt,{makeDefault:!0,position:n,fov:t}),e[1]=t,e[2]=r),r}function Sr(e){let t=(0,q.c)(3),{children:n}=e,{debugMode:r}=l(),i;return t[0]!==n||t[1]!==r?(i=r?(0,J.jsx)(K.Suspense,{children:n}):null,t[0]=n,t[1]=r,t[2]=i):i=t[2],i}var Cr=C(`InputConsumer`),wr=270,Tr=Math.PI/2-.01,Er=45,Dr=31,Or=40,kr=1/32,Ar=2*Math.PI;function jr(e){return((Math.round(e/Ar*65536)|0)<<16>>16)*Ar/65536}var Mr=new L,Nr=new L,Pr=new L,Fr=new M(0,0,0,`YXZ`);function Ir(e,t,n,r,i,a,o){if(r===0&&i===0&&a===0)return;let s=Math.sin(t),c=Math.cos(t),l=Math.sin(n),u=Math.cos(n),d=o*kr;e.x+=(c*r+s*u*i+s*l*a)*d,e.y+=(-s*r+c*u*i+c*l*a)*d,e.z+=(-l*i+u*a)*d}function Lr(){let{moveQueue:e,mode:t,setMode:n}=Me(),r=he(e=>e.adapter),i=he(e=>e.gameStatus),s=he(e=>e.liveReady),c=he(e=>e.sendMoves),l=pe(),u=o(e=>e.camera),d=m(),f=(0,K.useRef)(null),h=(0,K.useRef)([]),g=(0,K.useRef)(0),_=(0,K.useRef)(0),v=(0,K.useRef)(null),y=(0,K.useRef)(0),b=(0,K.useRef)(0),x=(0,K.useRef)({x:0,y:0,z:0}),S=(0,K.useRef)(0),C=(0,K.useRef)(0),w=(0,K.useRef)({x:0,y:0,z:0}),T=(0,K.useRef)(!1),D=(0,K.useRef)({x:0,y:0,z:0}),O=(0,K.useRef)({x:0,y:0,z:0}),k=(0,K.useRef)(!1),A=(0,K.useRef)(null),j=(0,K.useRef)(0),M=(0,K.useRef)(0),ee=(0,K.useRef)(0),te=(0,K.useRef)(0),N=(0,K.useRef)(0),P=(0,K.useRef)([!1,!1,!1,!1,!1,!1]),F=!!r&&(i===`connected`||i===`authenticating`);return(0,K.useEffect)(()=>{if(F&&r){if(f.current===r)return;Cr.info(`wiring adapter to engine store`);let e=De.getState(),t={source:`live`,duration:1/0,missionName:e.mapName??null,gameType:null,serverDisplayName:e.serverName??null,recorderName:e.warriorName??null,recordingDate:null,streamingPlayback:r};l.getState().setRecording(t),l.getState().setPlaybackStatus(`playing`),f.current=r,T.current=!1,k.current=!1,A.current=null,h.current.length=0,g.current=0,_.current=0,v.current=null,n(`fly`)}else !F&&f.current&&(l.getState().playback.recording?.source===`live`&&l.getState().setRecording(null),f.current=null,T.current=!1,k.current=!1,A.current=null,h.current.length=0,n(`local`))},[F,r,l,n]),(0,K.useEffect)(()=>{!s&&f.current&&(Cr.info(`mission change: resetting prediction state and mode`),T.current=!1,k.current=!1,A.current=null,h.current.length=0,g.current=0,_.current=0,v.current=null,j.current=0,M.current=0,ee.current=0,te.current=0,N.current=0,P.current.fill(!1),n(`fly`))},[s,n]),(0,K.useEffect)(()=>{if(!F)return Xe.subscribe(e=>{n(e.cameraMode===`orbitOverride`?`follow`:`local`)})},[F,n]),p(()=>{if(!f.current||i!==`connected`||!s)return;let e=j.current,t=M.current;j.current=0,M.current=0;let n=ee.current,r=te.current,a=N.current;ee.current=0,te.current=0,N.current=0;let o=[...P.current];P.current.fill(!1);let l=jr(e),u=jr(t);y.current+=l-e,b.current+=u-t,S.current=y.current,C.current=b.current,w.current={...x.current};let d=Or*2,p=y.current-l,m=b.current-u;Ir(x.current,p,m,n,r,a,d),o[1]=!0;let _=g.current++,v={x:n,y:r,z:a,yaw:e,pitch:t,roll:0,trigger:o,freeLook:!1},T=h.current;T.push({moveIndex:_,move:v,yaw:l,pitch:u,x:n,y:r,z:a}),T.length>Er&&T.splice(0,T.length-Er);let E=f.current.lastMoveAck;for(;T.length>0&&T[0].moveIndex0){let e=T.slice(0,Dr);c(e.map(e=>e.move),e[0].moveIndex)}let F=f.current.getSnapshot();if(F!==A.current){A.current=F;let e=F?.camera;if(e?.orbitTargetId){let t=F.entities.find(t=>t.id===e.orbitTargetId);t?.position&&(D.current={...O.current},O.current={x:t.position[0],y:t.position[1],z:t.position[2]},k.current||=(D.current={...O.current},!0))}}}),a((r,a)=>{let o=e.current;if(o.length>0){let t=0,n=0,r=0,a=0,c=0,l=0,d=[!1,!1,!1,!1,!1,!1];for(let e of o){t+=e.deltaYaw,n+=e.deltaPitch,Math.abs(e.x)>Math.abs(r)&&(r=e.x),Math.abs(e.y)>Math.abs(a)&&(a=e.y),Math.abs(e.z)>Math.abs(c)&&(c=e.z),l+=e.delta;for(let t=0;t_.current){_.current=e;let t=h.current;for(;t.length>0&&t[0].moveIndexe.id===p.orbitTargetId);if(e?.position){let t={x:e.position[0],y:e.position[1],z:e.position[2]};O.current=t,D.current={...t},k.current=!0}}}if(T.current){if(t===`fly`)zr(r.camera,w.current,x.current,y.current,b.current,d());else if(t===`follow`){if(!k.current)return;Br(r.camera,D.current,O.current,y.current,b.current,d(),p?.orbitDistance??4,p?.orbitTargetId)}}}),(0,K.useEffect)(()=>()=>{f.current&&=(l.getState().playback.recording?.source===`live`&&l.getState().setRecording(null),null)},[l]),null}function Rr(e,t,n,r,i,a,o){if((t!==0||n!==0)&&(Fr.setFromQuaternion(e.quaternion,`YXZ`),Fr.y-=t,Fr.x-=n,Fr.x=Math.max(-Tr,Math.min(Tr,Fr.x)),e.quaternion.setFromEuler(Fr)),r!==0||i!==0||a!==0){e.getWorldDirection(Mr),Mr.normalize(),Nr.crossVectors(e.up,Mr).normalize(),Pr.set(0,0,0),i!==0&&Pr.addScaledVector(Mr,i),r!==0&&Pr.addScaledVector(Nr,-r),a!==0&&(Pr.y+=a);let t=Pr.length();t>0&&(Pr.multiplyScalar(Math.min(1,t)/t*wr*o),e.position.add(Pr))}}function zr(e,t,n,r,i,a){let o=t.x+(n.x-t.x)*a,s=t.y+(n.y-t.y)*a,c=t.z+(n.z-t.z)*a;e.position.set(s,c,o);let[l,u,d,f]=D(r,i);e.quaternion.set(l,u,d,f)}function Br(e,t,n,r,i,a,o,s){let c=t.x+(n.x-t.x)*a,l=t.y+(n.y-t.y)*a,u=t.z+(n.z-t.z)*a+(s!=null&&Xe.getState().entities.get(s)?.renderType===`Player`?1:0),d=Math.sin(i),f=Math.cos(i),p=Math.sin(r),m=Math.cos(r),h=Math.max(.1,o),g=c-p*f*h,_=l-m*f*h,v=u+d*h;e.position.set(_,v,g);let[y,b,x,S]=D(r,i);e.quaternion.set(y,b,x,S)}var Vr=C(`CameraTourConsumer`);function Hr(e){return e<.5?4*e*e*e:1-(-2*e+2)**3/2}var Ur=3,Wr=2,Gr=1.8,Kr=1.8,qr=1.2,Jr=.6,Yr=3/4*(2*Math.PI),Xr=Yr/Jr,Zr=1.5,Qr=1.5,$r=6,ei=180,ti=1.4,ni=new z,ri=new z,ii=new z,ai=new le,oi=new L,si=new L,ci=new L,li=new L,ui=new L,Q=new ie,di=new ie,fi=new le,pi=new M;function mi(e){if(e.orbitCenter)return ui.set(e.orbitCenter[0],e.orbitCenter[1],e.orbitCenter[2]);let t=e.targets[e.currentIndex];return ui.set(t.position[0],t.position[1],t.position[2])}function hi(e){return e.orbitRadius??Ur}function gi(e){return hi(e)*(Wr/Ur)}function _i(e,t,n){let r=mi(e),i=hi(e),a=gi(e);return n.set(r.x+Math.cos(t)*i,r.y+a,r.z+Math.sin(t)*i)}function vi(e,t,n){let r=e.getObjectByName(t.entityId);if(r){ni.setFromObject(r),ni.getCenter(oi),n.orbitCenter=[oi.x,oi.y,oi.z];let e=fi.copy(r.matrixWorld).invert();ri.makeEmpty(),r.traverse(t=>{t.geometry&&(t.geometry.boundingBox||t.geometry.computeBoundingBox(),ii.copy(t.geometry.boundingBox),ai.multiplyMatrices(e,t.matrixWorld),ii.applyMatrix4(ai),ri.union(ii))}),ri.getSize(si);let i=si.y,a=Math.max(si.x,si.z),o=i/2+Kr,s=a/2+qr,c=Math.max(o,s);n.orbitRadius=Math.max(Gr,c);let l=o>=s?`height`:`spread`,u=c=e.phaseDuration&&(e.phase=`orbiting`,e.elapsed=0,e.orbitStartAngle=Si(t.position,e))}function Ti(e,t,n){let r=e.targets.length===1,i=e.currentIndex>=e.targets.length-1;e.elapsed+=n;let a=e.orbitStartAngle,o=Xr+Zr,s;if(e.elapsed<=Xr)s=a+e.elapsed*Jr;else{let t=e.elapsed-Xr,n=Math.min(1,t/Zr),r=t*Jr*(1-n/2);s=a+Yr+r}_i(e,s,ci),t.position.copy(ci);let c=bi(ci,mi(e));t.quaternion.copy(c),e.elapsed>=o&&(r||i?T.getState().cancel():T.getState().advanceTarget())}function Ei(){let e=(0,q.c)(4),t=o(ji),n=o(Ai),r=o(ki),i=(0,K.useRef)(null);Ie(`nextStop`,Oi),Ie(`exitTour`,Di);let s;return e[0]!==n||e[1]!==t||e[2]!==r?(s=(e,a)=>{let o=T.getState().animation;if(!o){i.current&&=(yi(n.quaternion),null);return}t(),i.current=o,o.phase===`traveling`?wi(o,n,a,r):Ti(o,n,a)},e[0]=n,e[1]=t,e[2]=r,e[3]=s):s=e[3],a(s),null}function Di(){T.getState().cancel()}function Oi(){let e=T.getState().animation;e&&(e.currentIndex>=e.targets.length-1?T.getState().cancel():T.getState().advanceTarget())}function ki(e){return e.scene}function Ai(e){return e.camera}function ji(e){return e.invalidate}var Mi=3;function $({map:e}){let t=je,n=o(e=>e.gl.domElement),r=(0,K.useMemo)(()=>{let n=e.map(e=>{let t=Array.isArray(e.keys)?e.keys:[e.keys];return{name:e.name,bindings:t.map(Oe)}}),r={};for(let e of n)r[e.name]=Ne(e.bindings[0]);let i=new Map,a=[],o=[],s=[],c=[],l=[];for(let e of n)for(let t of e.bindings)switch(t.type){case`key`:{let n=i.get(t.code);n||(n=[],i.set(t.code,n)),n.push({action:e,binding:t});break}case`click`:a.push({action:e,binding:t});break;case`drag`:o.push({action:e,binding:t});break;case`pointerLockMove`:s.push({action:e});break;case`scroll`:c.push({action:e});break;case`touch`:l.push({action:e});break}function u(e){return e==null?!0:e===!!document.pointerLockElement}function d(e){let{actions:n}=t.getState(),r={};for(let[,t]of i)for(let{action:i,binding:a}of t){let t=e.has(a.code)&&Pe(e,a.modifiers),o=n[i.name]?.pressed??!1;t&&!o?(r[i.name]={pressed:!0},we(i.name)):!t&&o&&(r[i.name]={pressed:!1})}Object.keys(r).length>0&&t.setState(e=>({...e,actions:{...e.actions,...r}}))}let f=-1,p=0,m=0,h=!1;function g(e,n){t.setState(t=>({...t,actions:{...t.actions,[e]:n}}))}function _(e){let t=!!document.pointerLockElement;for(let{action:t,binding:n}of a){if(!u(n.whenPointerLocked))continue;let r=n.button??0;e.button===r&&Ce(e,n.modifiers)&&g(t.name,{pressed:!0})}t||(f=e.button,p=e.clientX,m=e.clientY,h=!1)}function v(e){if(document.pointerLockElement){if(s.length>0){let{actions:n}=t.getState(),r={};for(let{action:t}of s){let i=n[t.name];r[t.name]={...i,deltaX:i.deltaX+e.movementX,deltaY:i.deltaY+e.movementY}}t.setState(e=>({...e,actions:{...e.actions,...r}}))}return}if(f<0)return;if(!h){let n=e.clientX-p,r=e.clientY-m;if(Math.abs(n)0&&t.setState(e=>({...e,actions:{...e.actions,...r}}))}function y(e){let n=!!document.pointerLockElement;for(let{action:n,binding:r}of a){if(!u(r.whenPointerLocked))continue;let i=r.button??0;e.button===i&&t.getState().actions[n.name].pressed&&(we(n.name),g(n.name,{pressed:!1}))}if(!n&&e.button===f){for(let{action:e,binding:n}of o)u(n.whenPointerLocked)&&(n.button??0)===f&&t.getState().actions[e.name].dragging&&g(e.name,Ae());f=-1,h=!1}}function b(e){for(let{action:t}of c)g(t.name,{deltaX:e.deltaX,deltaY:e.deltaY}),we(t.name)}let x=null,S=0,C=0;function w(e){if(x!==null||l.length===0)return;let t=e.changedTouches[0];if(t){x=t.identifier,S=t.clientX,C=t.clientY;for(let{action:e}of l)g(e.name,{touching:!0,dragging:!1,deltaX:0,deltaY:0})}}function T(e){if(x!==null)for(let n=0;ne.name),initialActions:r,deriveKeyActions:d,hasKeyBindings:i.size>0,handleMouseDown:_,handleMouseMove:v,handleMouseUp:y,handleWheel:b,handleTouchStart:w,handleTouchMove:T,handleTouchEnd:E,hasMouseBindings:a.length>0||o.length>0||s.length>0,hasScrollBindings:c.length>0,hasTouchBindings:l.length>0}},[e,t]);return(0,K.useEffect)(()=>{t.setState(e=>({...e,actions:{...e.actions,...r.initialActions}}));let e;return r.hasKeyBindings&&(r.deriveKeyActions(t.getState().keys),e=t.subscribe(e=>e.keys,e=>r.deriveKeyActions(e))),r.hasMouseBindings&&(n.addEventListener(`mousedown`,r.handleMouseDown),document.addEventListener(`mousemove`,r.handleMouseMove),document.addEventListener(`mouseup`,r.handleMouseUp)),r.hasScrollBindings&&n.addEventListener(`wheel`,r.handleWheel,{passive:!0}),r.hasTouchBindings&&(n.addEventListener(`touchstart`,r.handleTouchStart,{passive:!0}),document.addEventListener(`touchmove`,r.handleTouchMove,{passive:!0}),document.addEventListener(`touchend`,r.handleTouchEnd,{passive:!0}),document.addEventListener(`touchcancel`,r.handleTouchEnd,{passive:!0})),()=>{e?.(),r.hasMouseBindings&&(n.removeEventListener(`mousedown`,r.handleMouseDown),document.removeEventListener(`mousemove`,r.handleMouseMove),document.removeEventListener(`mouseup`,r.handleMouseUp)),r.hasScrollBindings&&n.removeEventListener(`wheel`,r.handleWheel),r.hasTouchBindings&&(n.removeEventListener(`touchstart`,r.handleTouchStart),document.removeEventListener(`touchmove`,r.handleTouchMove),document.removeEventListener(`touchend`,r.handleTouchEnd),document.removeEventListener(`touchcancel`,r.handleTouchEnd)),t.setState(e=>{let t={...e.actions};for(let e of r.actionNames)delete t[e];return{...e,actions:t}})}},[r,t,n]),null}var Ni=[{name:`moveForward`,keys:[`KeyW`]},{name:`moveBackward`,keys:[`KeyS`]},{name:`moveLeft`,keys:[`KeyA`]},{name:`moveRight`,keys:[`KeyD`]},{name:`moveUp`,keys:[`KeyE`]},{name:`moveDown`,keys:[`KeyQ`]},{name:`adjustSpeed`,keys:[{type:`scroll`}]}],Pi=[{name:`lookUp`,keys:[`ArrowUp`]},{name:`lookDown`,keys:[`ArrowDown`]},{name:`lookLeft`,keys:[`ArrowLeft`]},{name:`lookRight`,keys:[`ArrowRight`]},{name:`dragLook`,keys:[{type:`drag`,button:0}]},{name:`lockedLook`,keys:[{type:`pointerLockMove`}]},{name:`touchLook`,keys:[{type:`touch`}]}],Fi=[{name:`canvasClick`,keys:[{type:`click`,button:0,whenPointerLocked:!1}]}],Ii=[{name:`camera1`,keys:[`Digit1`]},{name:`camera2`,keys:[`Digit2`]},{name:`camera3`,keys:[`Digit3`]},{name:`camera4`,keys:[`Digit4`]},{name:`camera5`,keys:[`Digit5`]},{name:`camera6`,keys:[`Digit6`]},{name:`camera7`,keys:[`Digit7`]},{name:`camera8`,keys:[`Digit8`]},{name:`camera9`,keys:[`Digit9`]}],Li=[{name:`playPause`,keys:[`Space`]},{name:`decreasePlaybackSpeed`,keys:[`Comma`,`Shift-Comma`]},{name:`increasePlaybackSpeed`,keys:[`Period`,`Shift-Period`]}],Ri=[{name:`toggleObserverMode`,keys:[`Space`]}],zi=[{name:`nextPlayer`,keys:[{type:`click`,button:0,whenPointerLocked:!0}]}],Bi=[{name:`nextStop`,keys:[{type:`click`,button:0}]},{name:`exitTour`,keys:[`Escape`]}];function Vi(){let e=(0,q.c)(27),t=ge(),n=ke(),r=w(Hi),i=t?.source===`demo`,a=t?.source===`live`,o=!t,s=o&&!r||a&&n===`fly`,c=!r,l=!r,u;e[0]===s?u=e[1]:(u=s&&(0,J.jsx)($,{map:Ni}),e[0]=s,e[1]=u);let d;e[2]===c?d=e[3]:(d=c&&(0,J.jsx)($,{map:Pi}),e[2]=c,e[3]=d);let f;e[4]===l?f=e[5]:(f=l&&(0,J.jsx)($,{map:Fi}),e[4]=l,e[5]=f);let p;e[6]!==o||e[7]!==r?(p=o&&!r&&(0,J.jsx)($,{map:Ii}),e[6]=o,e[7]=r,e[8]=p):p=e[8];let m;e[9]===i?m=e[10]:(m=i&&(0,J.jsx)($,{map:Li}),e[9]=i,e[10]=m);let h;e[11]===a?h=e[12]:(h=a&&(0,J.jsx)($,{map:Ri}),e[11]=a,e[12]=h);let g;e[13]!==n||e[14]!==a?(g=a&&n===`follow`&&(0,J.jsx)($,{map:zi}),e[13]=n,e[14]=a,e[15]=g):g=e[15];let _;e[16]===r?_=e[17]:(_=r&&(0,J.jsx)($,{map:Bi}),e[16]=r,e[17]=_);let v;return e[18]!==u||e[19]!==d||e[20]!==f||e[21]!==p||e[22]!==m||e[23]!==h||e[24]!==g||e[25]!==_?(v=(0,J.jsxs)(J.Fragment,{children:[u,d,f,p,m,h,g,_]}),e[18]=u,e[19]=d,e[20]=f,e[21]=p,e[22]=m,e[23]=h,e[24]=g,e[25]=_,e[26]=v):v=e[26],v}function Hi(e){return e.animation!==null}function Ui(e,t){return(0,K.lazy)(()=>t().then(t=>({default:t[e]})))}var Wi=Ui(`StreamingController`,()=>W(()=>import(`./StreamingController-DfXluNV4.js`),__vite__mapDeps([39,1,9,10,11,12,4,5,6,7,13,14,15,16,17,18,19,20,21,22,23,2,3,8,24,25,26,27,28,29,30,31,0,32,33,34,40]))),Gi=Ui(`DebugElements`,()=>W(()=>import(`./DebugElements-DbcJj7CW.js`),__vite__mapDeps([41,1,25,9,10,11,12,4,5,6,7,13,14,15,16,17,18,19,20,21,22,23,26,42]))),Ki=Ui(`Mission`,()=>W(()=>import(`./Mission-Coy6f_9U.js`),__vite__mapDeps([43,1,9,10,11,12,4,5,6,7,13,14,15,16,17,18,19,20,21,22,23,44,8,29,45]))),qi=Ui(`ChatSoundPlayer`,()=>W(()=>import(`./ChatSoundPlayer-CkJcKyFh.js`),__vite__mapDeps([46,1,14,5,15,16,6,30,4,7,22,18,31,12,24,25,9,10,11,13,17,19,20,21,23,26,27,29]))),Ji=(0,K.memo)(function(e){let t=(0,q.c)(23),{dpr:n,onCreated:r,missionName:i,missionType:a,onLoadingChange:o}=e,s=ge(),c=be(),l=c===`demo`||c===`live`,u,d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(Vi,{}),d=(0,J.jsx)(Fe,{}),t[0]=u,t[1]=d):(u=t[0],d=t[1]);let f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsx)(mt,{}),t[2]=f):f=t[2];let p,m;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(pr,{})}),m=(0,J.jsx)(xr,{}),t[3]=p,t[4]=m):(p=t[3],m=t[4]);let h;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,J.jsx)(zn,{children:(0,J.jsx)(qi,{})}),t[5]=h):h=t[5];let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,J.jsx)(Sr,{children:(0,J.jsx)(Gi,{})}),t[6]=g):g=t[6];let _;t[7]===s?_=t[8]:(_=s?(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(Wi,{recording:s})}):null,t[7]=s,t[8]=_);let v;t[9]!==l||t[10]!==i||t[11]!==a||t[12]!==o?(v=l?null:(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(Ki,{name:i,missionType:a,onLoadingChange:o},`${i}~${a}`)}),t[9]=l,t[10]=i,t[11]=a,t[12]=o,t[13]=v):v=t[13];let y,x;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsx)(Ei,{}),x=(0,J.jsx)(Lr,{}),t[14]=y,t[15]=x):(y=t[14],x=t[15]);let S;t[16]!==_||t[17]!==v?(S=(0,J.jsx)(b,{children:(0,J.jsxs)(Te,{children:[u,d,(0,J.jsxs)(Ue,{children:[f,p,m,h,g,_,v,y,x]})]})}),t[16]=_,t[17]=v,t[18]=S):S=t[18];let C;return t[19]!==n||t[20]!==r||t[21]!==S?(C=(0,J.jsx)(bt,{dpr:n,onCreated:r,children:S}),t[19]=n,t[20]=r,t[21]=S,t[22]=C):C=t[22],C});export{Ji as GameView}; \ No newline at end of file + `,depthWrite:!1,depthTest:!1})]})}function In(e,t){let{fogDistance:n,visibleDistance:r}=e;return[n,r]}function Ln({fogState:e,enabled:t}){let n=o(e=>e.scene),r=o(e=>e.camera),i=(0,K.useRef)(null),s=(0,K.useMemo)(()=>tt(e.fogVolumes),[e.fogVolumes]);return(0,K.useEffect)(()=>{kn||=(it(),!0)},[]),(0,K.useEffect)(()=>{rt();let[t,a]=In(e,r.position.y),o=new O(e.fogColor,t,a);return n.fog=o,i.current=o,et(r.position.y,s),()=>{n.fog=null,i.current=null,rt()}},[n,r,e,s]),(0,K.useEffect)(()=>{let n=i.current;if(n)if(t){let[t,i]=In(e,r.position.y);n.near=t,n.far=i}else n.near=1e10,n.far=1e10},[t,e,r.position.y]),a(()=>{let n=i.current;if(!n)return;let a=r.position.y;if(et(a,s,t),t){let[t,r]=In(e,a);n.near=t,n.far=r,n.color.copy(e.fogColor)}}),null}var Rn=(0,K.memo)(function({entity:e}){let{skyData:t}=e;On.debug(`Rendering: materialList=%s, useSkyTextures=%s`,t.materialList,t.useSkyTextures);let{fogEnabled:n}=c(),r=t.materialList||void 0,i=(0,K.useMemo)(()=>An(t.skySolidColor),[t.skySolidColor]),a=t.useSkyTextures,s=(0,K.useMemo)(()=>Dn(t),[t]);On.debug(`fogState: fogColor=(%s, %s, %s) visibleDistance=%d fogDistance=%d enabled=%s volumes=%d`,t.fogColor.r.toFixed(3),t.fogColor.g.toFixed(3),t.fogColor.b.toFixed(3),t.visibleDistance,t.fogDistance,s.enabled,s.fogVolumes.length);let l=(0,K.useMemo)(()=>An(t.fogColor),[t.fogColor]),u=i||l,d=s.enabled&&n,f=s.fogColor,p=o(e=>e.scene),m=o(e=>e.gl);(0,K.useEffect)(()=>{if(d){let e=f.clone();p.background=e,m.setClearColor(e)}else if(u){let e=u[0].clone();p.background=e,m.setClearColor(e)}else p.background=null;return()=>{p.background=null}},[p,m,d,f,u]);let h=i?.[1];return(0,J.jsxs)(J.Fragment,{children:[r&&a&&r.length>0?(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(Pn,{materialList:r,fogColor:d?f:void 0,fogState:d?s:void 0},r)}):h?(0,J.jsx)(Fn,{skyColor:h,fogColor:d?f:void 0,fogState:d?s:void 0}):null,(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(wn,{scene:t})}),s.enabled?(0,J.jsx)(Ln,{fogState:s,enabled:n}):null]})});function zn(e){let t=(0,q.c)(3),{children:n}=e,{audioEnabled:r}=c(),i;return t[0]!==r||t[1]!==n?(i=r?(0,J.jsx)(K.Suspense,{children:n}):null,t[0]=r,t[1]=n,t[2]=i):i=t[2],i}function Z(e,t){let n=(0,K.lazy)(()=>t().then(t=>({default:t[e]}))),r=t=>{let r=(0,q.c)(5),{entity:i}=t,a=`${e}:${i.id}`,o;r[0]===i?o=r[1]:(o=(0,J.jsx)(n,{entity:i}),r[0]=i,r[1]=o);let s;return r[2]!==a||r[3]!==o?(s=(0,J.jsx)(Je,{name:a,children:o}),r[2]=a,r[3]=o,r[4]=s):s=r[4],s};return r.displayName=`createLazy(${e})`,r}var Bn=Z(`PlayerModel`,()=>W(()=>import(`./PlayerModel-Cm8DLHtl.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]))),Vn=Z(`ExplosionShape`,()=>W(()=>import(`./ShapeModel-BMJjmLiG.js`),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34]))),Hn=Z(`TracerProjectile`,()=>W(()=>import(`./Projectiles-Uxzfj6xB.js`),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]))),Un=Z(`SpriteProjectile`,()=>W(()=>import(`./Projectiles-Uxzfj6xB.js`),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]))),Wn=Z(`ForceFieldBare`,()=>W(()=>import(`./ForceFieldBare-BzZ8rEsl.js`),__vite__mapDeps([37,1,3,4,5,6,7,14,15,16,32,12,29,11]))),Gn=Z(`AudioEmitter`,()=>W(()=>import(`./AudioEmitter-Dk4R9QgT.js`),__vite__mapDeps([31,1,4,5,6,7,14,15,16,12,30,22,18,24,25,9,10,11,13,17,19,20,21,23,26,27,29]))),Kn=Z(`WaterBlock`,()=>W(()=>import(`./WaterBlock-C_DD6ULb.js`),__vite__mapDeps([38,1,26,3,4,5,6,7,14,15,16,28,29,11,12,20]))),qn=Z(`WeaponModel`,()=>W(()=>import(`./ShapeModel-BMJjmLiG.js`),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34]))),Jn=(0,K.memo)(function(e){let t=(0,q.c)(26),{entity:n}=e;switch(n.renderType){case`Shape`:{let e;return t[0]===n?e=t[1]:(e=(0,J.jsx)(Yn,{entity:n}),t[0]=n,t[1]=e),e}case`ForceFieldBare`:{let e;return t[2]===n?e=t[3]:(e=(0,J.jsx)(Wn,{entity:n}),t[2]=n,t[3]=e),e}case`Player`:{let e;return t[4]===n?e=t[5]:(e=(0,J.jsx)(Bn,{entity:n}),t[4]=n,t[5]=e),e}case`Explosion`:{let e;return t[6]===n?e=t[7]:(e=(0,J.jsx)(Vn,{entity:n}),t[6]=n,t[7]=e),e}case`Tracer`:{let e;return t[8]===n?e=t[9]:(e=(0,J.jsx)(Hn,{entity:n}),t[8]=n,t[9]=e),e}case`Sprite`:{let e;return t[10]===n?e=t[11]:(e=(0,J.jsx)(Un,{entity:n}),t[10]=n,t[11]=e),e}case`AudioEmitter`:{let e;return t[12]===n?e=t[13]:(e=(0,J.jsx)(zn,{children:(0,J.jsx)(Gn,{entity:n})}),t[12]=n,t[13]=e),e}case`Camera`:{let e;return t[14]===n?e=t[15]:(e=(0,J.jsx)(xt,{entity:n}),t[14]=n,t[15]=e),e}case`WayPoint`:{let e;return t[16]===n?e=t[17]:(e=(0,J.jsx)(St,{entity:n}),t[16]=n,t[17]=e),e}case`TerrainBlock`:{let e;return t[18]===n.terrainData?e=t[19]:(e=(0,J.jsx)(Kt,{scene:n.terrainData}),t[18]=n.terrainData,t[19]=e),e}case`InteriorInstance`:{let e;return t[20]===n.interiorData?e=t[21]:(e=(0,J.jsx)(cn,{scene:n.interiorData}),t[20]=n.interiorData,t[21]=e),e}case`Sky`:{let e;return t[22]===n?e=t[23]:(e=(0,J.jsx)(Rn,{entity:n}),t[22]=n,t[23]=e),e}case`Sun`:return null;case`WaterBlock`:{let e;return t[24]===n?e=t[25]:(e=(0,J.jsx)(Kn,{entity:n}),t[24]=n,t[25]=e),e}case`MissionArea`:return null;case`None`:return null;default:return null}});function Yn(e){let t=(0,q.c)(24),{entity:n}=e,{animationEnabled:r}=c(),i=(0,K.useRef)(null),o;if(t[0]!==r||t[1]!==n.rotate?(o=()=>{if(!i.current||!n.rotate||!r)return;let e=performance.now()/1e3;i.current.rotation.y=e/3*Math.PI*2},t[0]=r,t[1]=n.rotate,t[2]=o):o=t[2],a(o),!n.shapeName)throw Error(`Shape entity missing shapeName: ${n.id}`);let s=n.runtimeObject,l=n.shapeType??`StaticShape`,u=n.dataBlock?.toLowerCase()===`flag`,d=n.teamId&&n.teamId>0?S[n.teamId]:null,f=u&&d?`${d} Flag`:null,p=n.shapeType===`Item`?`pink`:n.threads?`#00ff88`:`yellow`,m=n.rotate?i:void 0,h=s?void 0:n,_;t[3]===f?_=t[4]:(_=f?(0,J.jsx)(qe,{opacity:.6,children:f}):null,t[3]=f,t[4]=_);let y;t[5]!==p||t[6]!==h||t[7]!==_?(y=(0,J.jsx)(g,{loadingColor:p,streamEntity:h,children:_}),t[5]=p,t[6]=h,t[7]=_,t[8]=y):y=t[8];let b;t[9]!==n.barrelShapeName||t[10]!==s?(b=n.barrelShapeName&&(0,J.jsx)(x,{object:s,shapeName:n.barrelShapeName,type:`Turret`,children:(0,J.jsx)(`group`,{position:[0,1.5,0],children:(0,J.jsx)(g,{})})}),t[9]=n.barrelShapeName,t[10]=s,t[11]=b):b=t[11];let C;t[12]===n?C=t[13]:(C=n.weaponShape&&(0,J.jsx)(ot,{fallback:(0,J.jsx)(v,{color:`red`,label:n.weaponShape}),children:(0,J.jsx)(Je,{name:`Weapon:${n.id}/${n.weaponShape}`,fallback:(0,J.jsx)(v,{color:`cyan`,label:n.weaponShape}),children:(0,J.jsx)(qn,{entity:n})})}),t[12]=n,t[13]=C);let w;t[14]!==m||t[15]!==y||t[16]!==b||t[17]!==C?(w=(0,J.jsxs)(`group`,{ref:m,children:[y,b,C]}),t[14]=m,t[15]=y,t[16]=b,t[17]=C,t[18]=w):w=t[18];let T;return t[19]!==n.shapeName||t[20]!==l||t[21]!==w||t[22]!==s?(T=(0,J.jsx)(x,{object:s,shapeName:n.shapeName,type:l,children:w}),t[19]=n.shapeName,t[20]=l,t[21]=w,t[22]=s,t[23]=T):T=t[23],T}var Xn={Root:`_Root_dlg08_1`,Top:`_Top_dlg08_9 _Root_dlg08_1`,Bottom:`_Bottom_dlg08_14 _Root_dlg08_1`,IffArrow:`_IffArrow_dlg08_19`,Name:`_Name_dlg08_26`,HealthBar:`_HealthBar_dlg08_34`,HealthFill:`_HealthFill_dlg08_43`},Zn=150,Qn=.1,$n=-.2,er=G(`gui/hud_alliedtriangle`),tr=G(`gui/hud_enemytriangle`),nr=new L,rr=[];function ir(e){let t=(0,q.c)(21),{entity:n}=e,r=_(n.shapeName??n.dataBlock),i=o(or),s=(0,K.useRef)(null),c=(0,K.useRef)(null),l=(0,K.useRef)(null),u=(0,K.useRef)(null),d=(0,K.useRef)(null),[f,p]=(0,K.useState)(!0),m=(0,K.useRef)(null),g;t[0]===r.scene?g=t[1]:(g=new z().setFromObject(r.scene),t[0]=r.scene,t[1]=g);let v=g.max.y+Qn,y=n.keyframes??rr,b;t[2]===y?b=t[3]:(b=y.some(ar),t[2]=y,t[3]=b);let x=b,S;t[4]!==i||t[5]!==n.id||t[6]!==n.iffColor||t[7]!==n.playerName||t[8]!==x||t[9]!==f||t[10]!==y?(S=()=>{let e=s.current;if(!e)return;e.getWorldPosition(nr);let t=i.position.distanceTo(nr),r=i.matrixWorld.elements,a=!((nr.x-r[12])*-r[8]+(nr.y-r[13])*-r[9]+(nr.z-r[14])*-r[10]<0)&&t=1){c.current&&(c.current.style.opacity=`0`),l.current&&(l.current.style.opacity=`0`);return}let _=Math.max(0,Math.min(1,1-t/Zn)).toString();if(c.current&&(c.current.style.opacity=_),l.current&&(l.current.style.opacity=_),m.current){let e=n.playerName??n.id;m.current.textContent!==e&&(m.current.textContent=e)}if(d.current&&n.iffColor){let e=n.iffColor.r>n.iffColor.g?tr:er;d.current.getAttribute(`src`)!==e&&(d.current.src=e)}u.current&&x&&(u.current.style.width=`${Math.max(0,Math.min(100,g*100))}%`,u.current.style.background=n.iffColor?`rgb(${n.iffColor.r}, ${n.iffColor.g}, ${n.iffColor.b})`:``)},t[4]=i,t[5]=n.id,t[6]=n.iffColor,t[7]=n.playerName,t[8]=x,t[9]=f,t[10]=y,t[11]=S):S=t[11],a(S);let C=n.iffColor&&n.iffColor.r>n.iffColor.g?tr:er,w;t[12]!==n.id||t[13]!==n.playerName||t[14]!==x||t[15]!==v||t[16]!==C||t[17]!==f?(w=f&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Ge,{position:[0,v,0],center:!0,children:(0,J.jsx)(`div`,{ref:c,className:Xn.Top,children:(0,J.jsx)(`img`,{ref:d,className:Xn.IffArrow,src:C,alt:``})})}),(0,J.jsx)(Ge,{position:[0,$n,0],center:!0,children:(0,J.jsxs)(`div`,{ref:l,className:Xn.Bottom,children:[(0,J.jsx)(`div`,{ref:m,className:Xn.Name,children:n.playerName??n.id}),x&&(0,J.jsx)(`div`,{className:Xn.HealthBar,children:(0,J.jsx)(`div`,{ref:u,className:Xn.HealthFill})})]})})]}),t[12]=n.id,t[13]=n.playerName,t[14]=x,t[15]=v,t[16]=C,t[17]=f,t[18]=w):w=t[18];let T;return t[19]===w?T=t[20]:(T=(0,J.jsx)(`group`,{ref:s,children:w}),t[19]=w,t[20]=T),T}function ar(e){return e.health!=null}function or(e){return e.camera}var sr={Root:`_Root_yuidw_1`,Distance:`_Distance_yuidw_9`,Icon:`_Icon_yuidw_18`},cr=1.5,lr=G(`commander/MiniIcons/com_flag_grey`),ur=new L;function dr(e){let t=(0,q.c)(9),{entity:n}=e,r=(0,K.useRef)(null),i=(0,K.useRef)(null),s=(0,K.useRef)(null),c=o(fr),l;t[0]!==c||t[1]!==n.iffColor?(l=()=>{if(i.current&&n.iffColor){let{r:e,g:t,b:r}=n.iffColor;i.current.style.backgroundColor=`rgb(${e},${t},${r})`}if(s.current&&r.current){r.current.getWorldPosition(ur);let e=c.position.distanceTo(ur);s.current.textContent=e.toFixed(1)}},t[0]=c,t[1]=n.iffColor,t[2]=l):l=t[2],a(l);let u=n.iffColor?`rgb(${n.iffColor.r},${n.iffColor.g},${n.iffColor.b})`:`rgb(200,200,200)`,d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=[0,cr,0],t[3]=d):d=t[3];let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsx)(`span`,{ref:s,className:sr.Distance}),t[4]=f):f=t[4];let p;t[5]===u?p=t[6]:(p={backgroundColor:u,"--flag-icon-url":`url(${lr})`},t[5]=u,t[6]=p);let m=p,h;return t[7]===m?h=t[8]:(h=(0,J.jsx)(`group`,{ref:r,children:(0,J.jsx)(Ge,{position:d,center:!0,children:(0,J.jsxs)(`div`,{className:sr.Root,children:[f,(0,J.jsx)(`div`,{ref:i,className:sr.Icon,style:m})]})})}),t[7]=m,t[8]=h),h}function fr(e){return e.camera}function pr(){let e=(0,q.c)(1),t=mr,n;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,J.jsx)(`group`,{ref:t,children:(0,J.jsx)(hr,{})}),e[0]=n):n=e[0],n}function mr(e){Xe.setState({root:e})}var hr=(0,K.memo)(function(){let e=ye(),t=(0,K.useRef)(new Map).current,n=new Set;for(let r of e)n.add(r.id),t.set(r.id,r);for(let e of t.keys())n.has(e)||t.delete(e);return(0,J.jsx)(J.Fragment,{children:[...t.values()].map(e=>(0,J.jsx)(gr,{entity:e},e.id))})}),gr=(0,K.memo)(function(e){let t=(0,q.c)(7),{entity:n}=e;if(Ye(n)){let e;t[0]===n?e=t[1]:(e=(0,J.jsx)(Jn,{entity:n}),t[0]=n,t[1]=e);let r;return t[2]!==n.id||t[3]!==e?(r=(0,J.jsx)(`group`,{name:n.id,children:e}),t[2]=n.id,t[3]=e,t[4]=r):r=t[4],r}if(n.renderType===`None`)return null;let r;return t[5]===n?r=t[6]:(r=(0,J.jsx)(br,{entity:n}),t[5]=n,t[6]=r),r});function _r(e){let t=(0,q.c)(2),{entity:n}=e,r=me(vr);if(n.id===r)return null;let i;return t[0]===n?i=t[1]:(i=(0,J.jsx)(ir,{entity:n}),t[0]=n,t[1]=i),i}function vr(e){return e.playback.streamSnapshot?.controlPlayerGhostId}function yr({entity:e}){let t=(0,K.useRef)(!1),[n,r]=(0,K.useState)(()=>(((`targetRenderFlags`in e?e.targetRenderFlags:void 0)??0)&2)!=0);return t.current=n,a(()=>{let n=(((`targetRenderFlags`in e?e.targetRenderFlags:void 0)??0)&2)!=0;n!==t.current&&(t.current=n,r(n))}),n?(0,J.jsx)(dr,{entity:e}):null}function br(e){let t=(0,q.c)(39),{entity:n}=e,r=n.position,i=n.scale,a;bb0:{if(!n.rotation){a=void 0;break bb0}let e;t[0]===n.rotation?e=t[1]:(e=new ie(...n.rotation),t[0]=n.rotation,t[1]=e),a=e}let o=a,s=n.renderType===`Player`;if(n.renderType===`Shape`&&!n.shapeName){let e=n.id,a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,J.jsx)(`sphereGeometry`,{args:[.3,6,4]}),t[2]=a):a=t[2];let s;t[3]===n.className?s=t[4]:(s=y(n.className),t[3]=n.className,t[4]=s);let c;t[5]===s?c=t[6]:(c=(0,J.jsxs)(`mesh`,{children:[a,(0,J.jsx)(`meshBasicMaterial`,{color:s,wireframe:!0})]}),t[5]=s,t[6]=c);let l;t[7]===n?l=t[8]:(l=(0,J.jsx)(yr,{entity:n}),t[7]=n,t[8]=l);let u;return t[9]!==n.id||t[10]!==r||t[11]!==o||t[12]!==i||t[13]!==c||t[14]!==l?(u=(0,J.jsxs)(`group`,{name:e,position:r,quaternion:o,scale:i,children:[c,l]}),t[9]=n.id,t[10]=r,t[11]=o,t[12]=i,t[13]=c,t[14]=l,t[15]=u):u=t[15],u}let c;t[16]!==n.className||t[17]!==n.renderType?(c=n.renderType===`Explosion`?null:(0,J.jsxs)(`mesh`,{children:[(0,J.jsx)(`sphereGeometry`,{args:[.5,8,6]}),(0,J.jsx)(`meshBasicMaterial`,{color:y(n.className),wireframe:!0})]}),t[16]=n.className,t[17]=n.renderType,t[18]=c):c=t[18];let l=c,u;t[19]===n?u=t[20]:(u=(0,J.jsx)(Jn,{entity:n}),t[19]=n,t[20]=u);let d;t[21]!==l||t[22]!==u?(d=(0,J.jsx)(ot,{fallback:l,children:u}),t[21]=l,t[22]=u,t[23]=d):d=t[23];let f;t[24]!==n||t[25]!==s?(f=s&&(0,J.jsx)(_r,{entity:n}),t[24]=n,t[25]=s,t[26]=f):f=t[26];let p;t[27]===n?p=t[28]:(p=(0,J.jsx)(yr,{entity:n}),t[27]=n,t[28]=p);let m;t[29]!==d||t[30]!==f||t[31]!==p?(m=(0,J.jsxs)(`group`,{name:`model`,children:[d,f,p]}),t[29]=d,t[30]=f,t[31]=p,t[32]=m):m=t[32];let h;return t[33]!==n.id||t[34]!==r||t[35]!==o||t[36]!==i||t[37]!==m?(h=(0,J.jsx)(`group`,{name:n.id,position:r,quaternion:o,scale:i,children:m}),t[33]=n.id,t[34]=r,t[35]=o,t[36]=i,t[37]=m,t[38]=h):h=t[38],h}function xr(){let e=(0,q.c)(3),{fov:t}=c(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[0,256,0],e[0]=n):n=e[0];let r;return e[1]===t?r=e[2]:(r=(0,J.jsx)(lt,{makeDefault:!0,position:n,fov:t}),e[1]=t,e[2]=r),r}function Sr(e){let t=(0,q.c)(3),{children:n}=e,{debugMode:r}=l(),i;return t[0]!==n||t[1]!==r?(i=r?(0,J.jsx)(K.Suspense,{children:n}):null,t[0]=n,t[1]=r,t[2]=i):i=t[2],i}var Cr=C(`InputConsumer`),wr=270,Tr=Math.PI/2-.01,Er=45,Dr=31,Or=40,kr=1/32,Ar=2*Math.PI;function jr(e){return((Math.round(e/Ar*65536)|0)<<16>>16)*Ar/65536}var Mr=new L,Nr=new L,Pr=new L,Fr=new M(0,0,0,`YXZ`);function Ir(e,t,n,r,i,a,o){if(r===0&&i===0&&a===0)return;let s=Math.sin(t),c=Math.cos(t),l=Math.sin(n),u=Math.cos(n),d=o*kr;e.x+=(c*r+s*u*i+s*l*a)*d,e.y+=(-s*r+c*u*i+c*l*a)*d,e.z+=(-l*i+u*a)*d}function Lr(){let{moveQueue:e,mode:t,setMode:n}=Me(),r=he(e=>e.adapter),i=he(e=>e.gameStatus),s=he(e=>e.liveReady),c=he(e=>e.sendMoves),l=pe(),u=o(e=>e.camera),d=m(),f=(0,K.useRef)(null),h=(0,K.useRef)([]),g=(0,K.useRef)(0),_=(0,K.useRef)(0),v=(0,K.useRef)(null),y=(0,K.useRef)(0),b=(0,K.useRef)(0),x=(0,K.useRef)({x:0,y:0,z:0}),S=(0,K.useRef)(0),C=(0,K.useRef)(0),w=(0,K.useRef)({x:0,y:0,z:0}),T=(0,K.useRef)(!1),D=(0,K.useRef)({x:0,y:0,z:0}),O=(0,K.useRef)({x:0,y:0,z:0}),k=(0,K.useRef)(!1),A=(0,K.useRef)(null),j=(0,K.useRef)(0),M=(0,K.useRef)(0),ee=(0,K.useRef)(0),te=(0,K.useRef)(0),N=(0,K.useRef)(0),P=(0,K.useRef)([!1,!1,!1,!1,!1,!1]),F=!!r&&(i===`connected`||i===`authenticating`);return(0,K.useEffect)(()=>{if(F&&r){if(f.current===r)return;Cr.info(`wiring adapter to engine store`);let e=De.getState(),t={source:`live`,duration:1/0,missionName:e.mapName??null,gameType:null,serverDisplayName:e.serverName??null,recorderName:e.warriorName??null,recordingDate:null,streamingPlayback:r};l.getState().setRecording(t),l.getState().setPlaybackStatus(`playing`),f.current=r,T.current=!1,k.current=!1,A.current=null,h.current.length=0,g.current=0,_.current=0,v.current=null,n(`fly`)}else !F&&f.current&&(l.getState().playback.recording?.source===`live`&&l.getState().setRecording(null),f.current=null,T.current=!1,k.current=!1,A.current=null,h.current.length=0,n(`local`))},[F,r,l,n]),(0,K.useEffect)(()=>{!s&&f.current&&(Cr.info(`mission change: resetting prediction state and mode`),T.current=!1,k.current=!1,A.current=null,h.current.length=0,g.current=0,_.current=0,v.current=null,j.current=0,M.current=0,ee.current=0,te.current=0,N.current=0,P.current.fill(!1),n(`fly`))},[s,n]),(0,K.useEffect)(()=>{if(!F)return Xe.subscribe(e=>{n(e.cameraMode===`orbitOverride`?`follow`:`local`)})},[F,n]),p(()=>{if(!f.current||i!==`connected`||!s)return;let e=j.current,t=M.current;j.current=0,M.current=0;let n=ee.current,r=te.current,a=N.current;ee.current=0,te.current=0,N.current=0;let o=[...P.current];P.current.fill(!1);let l=jr(e),u=jr(t);y.current+=l-e,b.current+=u-t,S.current=y.current,C.current=b.current,w.current={...x.current};let d=Or*2,p=y.current-l,m=b.current-u;Ir(x.current,p,m,n,r,a,d),o[1]=!0;let _=g.current++,v={x:n,y:r,z:a,yaw:e,pitch:t,roll:0,trigger:o,freeLook:!1},T=h.current;T.push({moveIndex:_,move:v,yaw:l,pitch:u,x:n,y:r,z:a}),T.length>Er&&T.splice(0,T.length-Er);let E=f.current.lastMoveAck;for(;T.length>0&&T[0].moveIndex0){let e=T.slice(0,Dr);c(e.map(e=>e.move),e[0].moveIndex)}let F=f.current.getSnapshot();if(F!==A.current){A.current=F;let e=F?.camera;if(e?.orbitTargetId){let t=F.entities.find(t=>t.id===e.orbitTargetId);t?.position&&(D.current={...O.current},O.current={x:t.position[0],y:t.position[1],z:t.position[2]},k.current||=(D.current={...O.current},!0))}}}),a((r,a)=>{let o=e.current;if(o.length>0){let t=0,n=0,r=0,a=0,c=0,l=0,d=[!1,!1,!1,!1,!1,!1];for(let e of o){t+=e.deltaYaw,n+=e.deltaPitch,Math.abs(e.x)>Math.abs(r)&&(r=e.x),Math.abs(e.y)>Math.abs(a)&&(a=e.y),Math.abs(e.z)>Math.abs(c)&&(c=e.z),l+=e.delta;for(let t=0;t_.current){_.current=e;let t=h.current;for(;t.length>0&&t[0].moveIndexe.id===p.orbitTargetId);if(e?.position){let t={x:e.position[0],y:e.position[1],z:e.position[2]};O.current=t,D.current={...t},k.current=!0}}}if(T.current){if(t===`fly`)zr(r.camera,w.current,x.current,y.current,b.current,d());else if(t===`follow`){if(!k.current)return;Br(r.camera,D.current,O.current,y.current,b.current,d(),p?.orbitDistance??4,p?.orbitTargetId)}}}),(0,K.useEffect)(()=>()=>{f.current&&=(l.getState().playback.recording?.source===`live`&&l.getState().setRecording(null),null)},[l]),null}function Rr(e,t,n,r,i,a,o){if((t!==0||n!==0)&&(Fr.setFromQuaternion(e.quaternion,`YXZ`),Fr.y-=t,Fr.x-=n,Fr.x=Math.max(-Tr,Math.min(Tr,Fr.x)),e.quaternion.setFromEuler(Fr)),r!==0||i!==0||a!==0){e.getWorldDirection(Mr),Mr.normalize(),Nr.crossVectors(e.up,Mr).normalize(),Pr.set(0,0,0),i!==0&&Pr.addScaledVector(Mr,i),r!==0&&Pr.addScaledVector(Nr,-r),a!==0&&(Pr.y+=a);let t=Pr.length();t>0&&(Pr.multiplyScalar(Math.min(1,t)/t*wr*o),e.position.add(Pr))}}function zr(e,t,n,r,i,a){let o=t.x+(n.x-t.x)*a,s=t.y+(n.y-t.y)*a,c=t.z+(n.z-t.z)*a;e.position.set(s,c,o);let[l,u,d,f]=D(r,i);e.quaternion.set(l,u,d,f)}function Br(e,t,n,r,i,a,o,s){let c=t.x+(n.x-t.x)*a,l=t.y+(n.y-t.y)*a,u=t.z+(n.z-t.z)*a+(s!=null&&Xe.getState().entities.get(s)?.renderType===`Player`?1:0),d=Math.sin(i),f=Math.cos(i),p=Math.sin(r),m=Math.cos(r),h=Math.max(.1,o),g=c-p*f*h,_=l-m*f*h,v=u+d*h;e.position.set(_,v,g);let[y,b,x,S]=D(r,i);e.quaternion.set(y,b,x,S)}var Vr=C(`CameraTourConsumer`);function Hr(e){return e<.5?4*e*e*e:1-(-2*e+2)**3/2}var Ur=3,Wr=2,Gr=1.8,Kr=1.8,qr=1.2,Jr=.6,Yr=3/4*(2*Math.PI),Xr=Yr/Jr,Zr=1.5,Qr=1.5,$r=6,ei=180,ti=1.4,ni=new z,ri=new z,ii=new z,ai=new le,oi=new L,si=new L,ci=new L,li=new L,ui=new L,Q=new ie,di=new ie,fi=new le,pi=new M;function mi(e){if(e.orbitCenter)return ui.set(e.orbitCenter[0],e.orbitCenter[1],e.orbitCenter[2]);let t=e.targets[e.currentIndex];return ui.set(t.position[0],t.position[1],t.position[2])}function hi(e){return e.orbitRadius??Ur}function gi(e){return hi(e)*(Wr/Ur)}function _i(e,t,n){let r=mi(e),i=hi(e),a=gi(e);return n.set(r.x+Math.cos(t)*i,r.y+a,r.z+Math.sin(t)*i)}function vi(e,t,n){let r=e.getObjectByName(t.entityId);if(r){ni.setFromObject(r),ni.getCenter(oi),n.orbitCenter=[oi.x,oi.y,oi.z];let e=fi.copy(r.matrixWorld).invert();ri.makeEmpty(),r.traverse(t=>{t.geometry&&(t.geometry.boundingBox||t.geometry.computeBoundingBox(),ii.copy(t.geometry.boundingBox),ai.multiplyMatrices(e,t.matrixWorld),ii.applyMatrix4(ai),ri.union(ii))}),ri.getSize(si);let i=si.y,a=Math.max(si.x,si.z),o=i/2+Kr,s=a/2+qr,c=Math.max(o,s);n.orbitRadius=Math.max(Gr,c);let l=o>=s?`height`:`spread`,u=c=e.phaseDuration&&(e.phase=`orbiting`,e.elapsed=0,e.orbitStartAngle=Si(t.position,e))}function Ti(e,t,n){let r=e.targets.length===1,i=e.currentIndex>=e.targets.length-1;e.elapsed+=n;let a=e.orbitStartAngle,o=Xr+Zr,s;if(e.elapsed<=Xr)s=a+e.elapsed*Jr;else{let t=e.elapsed-Xr,n=Math.min(1,t/Zr),r=t*Jr*(1-n/2);s=a+Yr+r}_i(e,s,ci),t.position.copy(ci);let c=bi(ci,mi(e));t.quaternion.copy(c),e.elapsed>=o&&(r||i?T.getState().cancel():T.getState().advanceTarget())}function Ei(){let e=(0,q.c)(4),t=o(ji),n=o(Ai),r=o(ki),i=(0,K.useRef)(null);Ie(`nextStop`,Oi),Ie(`exitTour`,Di);let s;return e[0]!==n||e[1]!==t||e[2]!==r?(s=(e,a)=>{let o=T.getState().animation;if(!o){i.current&&=(yi(n.quaternion),null);return}t(),i.current=o,o.phase===`traveling`?wi(o,n,a,r):Ti(o,n,a)},e[0]=n,e[1]=t,e[2]=r,e[3]=s):s=e[3],a(s),null}function Di(){T.getState().cancel()}function Oi(){let e=T.getState().animation;e&&(e.currentIndex>=e.targets.length-1?T.getState().cancel():T.getState().advanceTarget())}function ki(e){return e.scene}function Ai(e){return e.camera}function ji(e){return e.invalidate}var Mi=3;function $({map:e}){let t=je,n=o(e=>e.gl.domElement),r=(0,K.useMemo)(()=>{let n=e.map(e=>{let t=Array.isArray(e.keys)?e.keys:[e.keys];return{name:e.name,bindings:t.map(Oe)}}),r={};for(let e of n)r[e.name]=Ne(e.bindings[0]);let i=new Map,a=[],o=[],s=[],c=[],l=[];for(let e of n)for(let t of e.bindings)switch(t.type){case`key`:{let n=i.get(t.code);n||(n=[],i.set(t.code,n)),n.push({action:e,binding:t});break}case`click`:a.push({action:e,binding:t});break;case`drag`:o.push({action:e,binding:t});break;case`pointerLockMove`:s.push({action:e});break;case`scroll`:c.push({action:e});break;case`touch`:l.push({action:e});break}function u(e){return e==null?!0:e===!!document.pointerLockElement}function d(e){let{actions:n}=t.getState(),r={};for(let[,t]of i)for(let{action:i,binding:a}of t){let t=e.has(a.code)&&Pe(e,a.modifiers),o=n[i.name]?.pressed??!1;t&&!o?(r[i.name]={pressed:!0},we(i.name)):!t&&o&&(r[i.name]={pressed:!1})}Object.keys(r).length>0&&t.setState(e=>({...e,actions:{...e.actions,...r}}))}let f=-1,p=0,m=0,h=!1;function g(e,n){t.setState(t=>({...t,actions:{...t.actions,[e]:n}}))}function _(e){let t=!!document.pointerLockElement;for(let{action:t,binding:n}of a){if(!u(n.whenPointerLocked))continue;let r=n.button??0;e.button===r&&Ce(e,n.modifiers)&&g(t.name,{pressed:!0})}t||(f=e.button,p=e.clientX,m=e.clientY,h=!1)}function v(e){if(document.pointerLockElement){if(s.length>0){let{actions:n}=t.getState(),r={};for(let{action:t}of s){let i=n[t.name];r[t.name]={...i,deltaX:i.deltaX+e.movementX,deltaY:i.deltaY+e.movementY}}t.setState(e=>({...e,actions:{...e.actions,...r}}))}return}if(f<0)return;if(!h){let n=e.clientX-p,r=e.clientY-m;if(Math.abs(n)0&&t.setState(e=>({...e,actions:{...e.actions,...r}}))}function y(e){let n=!!document.pointerLockElement;for(let{action:n,binding:r}of a){if(!u(r.whenPointerLocked))continue;let i=r.button??0;e.button===i&&t.getState().actions[n.name].pressed&&(we(n.name),g(n.name,{pressed:!1}))}if(!n&&e.button===f){for(let{action:e,binding:n}of o)u(n.whenPointerLocked)&&(n.button??0)===f&&t.getState().actions[e.name].dragging&&g(e.name,Ae());f=-1,h=!1}}function b(e){for(let{action:t}of c)g(t.name,{deltaX:e.deltaX,deltaY:e.deltaY}),we(t.name)}let x=null,S=0,C=0;function w(e){if(x!==null||l.length===0)return;let t=e.changedTouches[0];if(t){x=t.identifier,S=t.clientX,C=t.clientY;for(let{action:e}of l)g(e.name,{touching:!0,dragging:!1,deltaX:0,deltaY:0})}}function T(e){if(x!==null)for(let n=0;ne.name),initialActions:r,deriveKeyActions:d,hasKeyBindings:i.size>0,handleMouseDown:_,handleMouseMove:v,handleMouseUp:y,handleWheel:b,handleTouchStart:w,handleTouchMove:T,handleTouchEnd:E,hasMouseBindings:a.length>0||o.length>0||s.length>0,hasScrollBindings:c.length>0,hasTouchBindings:l.length>0}},[e,t]);return(0,K.useEffect)(()=>{t.setState(e=>({...e,actions:{...e.actions,...r.initialActions}}));let e;return r.hasKeyBindings&&(r.deriveKeyActions(t.getState().keys),e=t.subscribe(e=>e.keys,e=>r.deriveKeyActions(e))),r.hasMouseBindings&&(n.addEventListener(`mousedown`,r.handleMouseDown),document.addEventListener(`mousemove`,r.handleMouseMove),document.addEventListener(`mouseup`,r.handleMouseUp)),r.hasScrollBindings&&n.addEventListener(`wheel`,r.handleWheel,{passive:!0}),r.hasTouchBindings&&(n.addEventListener(`touchstart`,r.handleTouchStart,{passive:!0}),document.addEventListener(`touchmove`,r.handleTouchMove,{passive:!0}),document.addEventListener(`touchend`,r.handleTouchEnd,{passive:!0}),document.addEventListener(`touchcancel`,r.handleTouchEnd,{passive:!0})),()=>{e?.(),r.hasMouseBindings&&(n.removeEventListener(`mousedown`,r.handleMouseDown),document.removeEventListener(`mousemove`,r.handleMouseMove),document.removeEventListener(`mouseup`,r.handleMouseUp)),r.hasScrollBindings&&n.removeEventListener(`wheel`,r.handleWheel),r.hasTouchBindings&&(n.removeEventListener(`touchstart`,r.handleTouchStart),document.removeEventListener(`touchmove`,r.handleTouchMove),document.removeEventListener(`touchend`,r.handleTouchEnd),document.removeEventListener(`touchcancel`,r.handleTouchEnd)),t.setState(e=>{let t={...e.actions};for(let e of r.actionNames)delete t[e];return{...e,actions:t}})}},[r,t,n]),null}var Ni=[{name:`moveForward`,keys:[`KeyW`]},{name:`moveBackward`,keys:[`KeyS`]},{name:`moveLeft`,keys:[`KeyA`]},{name:`moveRight`,keys:[`KeyD`]},{name:`moveUp`,keys:[`KeyE`]},{name:`moveDown`,keys:[`KeyQ`]},{name:`adjustSpeed`,keys:[{type:`scroll`}]}],Pi=[{name:`lookUp`,keys:[`ArrowUp`]},{name:`lookDown`,keys:[`ArrowDown`]},{name:`lookLeft`,keys:[`ArrowLeft`]},{name:`lookRight`,keys:[`ArrowRight`]},{name:`dragLook`,keys:[{type:`drag`,button:0}]},{name:`lockedLook`,keys:[{type:`pointerLockMove`}]},{name:`touchLook`,keys:[{type:`touch`}]}],Fi=[{name:`canvasClick`,keys:[{type:`click`,button:0,whenPointerLocked:!1}]}],Ii=[{name:`camera1`,keys:[`Digit1`]},{name:`camera2`,keys:[`Digit2`]},{name:`camera3`,keys:[`Digit3`]},{name:`camera4`,keys:[`Digit4`]},{name:`camera5`,keys:[`Digit5`]},{name:`camera6`,keys:[`Digit6`]},{name:`camera7`,keys:[`Digit7`]},{name:`camera8`,keys:[`Digit8`]},{name:`camera9`,keys:[`Digit9`]}],Li=[{name:`playPause`,keys:[`Space`]},{name:`decreasePlaybackSpeed`,keys:[`Comma`,`Shift-Comma`]},{name:`increasePlaybackSpeed`,keys:[`Period`,`Shift-Period`]}],Ri=[{name:`toggleObserverMode`,keys:[`Space`]}],zi=[{name:`nextPlayer`,keys:[{type:`click`,button:0,whenPointerLocked:!0}]}],Bi=[{name:`nextStop`,keys:[{type:`click`,button:0}]},{name:`exitTour`,keys:[`Escape`]}];function Vi(){let e=(0,q.c)(27),t=ge(),n=ke(),r=w(Hi),i=t?.source===`demo`,a=t?.source===`live`,o=!t,s=o&&!r||a&&n===`fly`,c=!r,l=!r,u;e[0]===s?u=e[1]:(u=s&&(0,J.jsx)($,{map:Ni}),e[0]=s,e[1]=u);let d;e[2]===c?d=e[3]:(d=c&&(0,J.jsx)($,{map:Pi}),e[2]=c,e[3]=d);let f;e[4]===l?f=e[5]:(f=l&&(0,J.jsx)($,{map:Fi}),e[4]=l,e[5]=f);let p;e[6]!==o||e[7]!==r?(p=o&&!r&&(0,J.jsx)($,{map:Ii}),e[6]=o,e[7]=r,e[8]=p):p=e[8];let m;e[9]===i?m=e[10]:(m=i&&(0,J.jsx)($,{map:Li}),e[9]=i,e[10]=m);let h;e[11]===a?h=e[12]:(h=a&&(0,J.jsx)($,{map:Ri}),e[11]=a,e[12]=h);let g;e[13]!==n||e[14]!==a?(g=a&&n===`follow`&&(0,J.jsx)($,{map:zi}),e[13]=n,e[14]=a,e[15]=g):g=e[15];let _;e[16]===r?_=e[17]:(_=r&&(0,J.jsx)($,{map:Bi}),e[16]=r,e[17]=_);let v;return e[18]!==u||e[19]!==d||e[20]!==f||e[21]!==p||e[22]!==m||e[23]!==h||e[24]!==g||e[25]!==_?(v=(0,J.jsxs)(J.Fragment,{children:[u,d,f,p,m,h,g,_]}),e[18]=u,e[19]=d,e[20]=f,e[21]=p,e[22]=m,e[23]=h,e[24]=g,e[25]=_,e[26]=v):v=e[26],v}function Hi(e){return e.animation!==null}function Ui(e,t){return(0,K.lazy)(()=>t().then(t=>({default:t[e]})))}var Wi=Ui(`StreamingController`,()=>W(()=>import(`./StreamingController-CqQqOUzP.js`),__vite__mapDeps([39,1,9,10,11,12,4,5,6,7,13,14,15,16,17,18,19,20,21,22,23,2,3,8,24,25,26,27,28,29,30,31,0,32,33,34,40]))),Gi=Ui(`DebugElements`,()=>W(()=>import(`./DebugElements-Dy-m_wVx.js`),__vite__mapDeps([41,1,25,9,10,11,12,4,5,6,7,13,14,15,16,17,18,19,20,21,22,23,26,42]))),Ki=Ui(`Mission`,()=>W(()=>import(`./Mission-nILJLxCJ.js`),__vite__mapDeps([43,1,9,10,11,12,4,5,6,7,13,14,15,16,17,18,19,20,21,22,23,44,8,29,45]))),qi=Ui(`ChatSoundPlayer`,()=>W(()=>import(`./ChatSoundPlayer-DZxyjwrv.js`),__vite__mapDeps([46,1,14,5,15,16,6,30,4,7,22,18,31,12,24,25,9,10,11,13,17,19,20,21,23,26,27,29]))),Ji=(0,K.memo)(function(e){let t=(0,q.c)(23),{dpr:n,onCreated:r,missionName:i,missionType:a,onLoadingChange:o}=e,s=ge(),c=be(),l=c===`demo`||c===`live`,u,d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(Vi,{}),d=(0,J.jsx)(Fe,{}),t[0]=u,t[1]=d):(u=t[0],d=t[1]);let f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsx)(mt,{}),t[2]=f):f=t[2];let p,m;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(pr,{})}),m=(0,J.jsx)(xr,{}),t[3]=p,t[4]=m):(p=t[3],m=t[4]);let h;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,J.jsx)(zn,{children:(0,J.jsx)(qi,{})}),t[5]=h):h=t[5];let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,J.jsx)(Sr,{children:(0,J.jsx)(Gi,{})}),t[6]=g):g=t[6];let _;t[7]===s?_=t[8]:(_=s?(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(Wi,{recording:s})}):null,t[7]=s,t[8]=_);let v;t[9]!==l||t[10]!==i||t[11]!==a||t[12]!==o?(v=l?null:(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(Ki,{name:i,missionType:a,onLoadingChange:o},`${i}~${a}`)}),t[9]=l,t[10]=i,t[11]=a,t[12]=o,t[13]=v):v=t[13];let y,x;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsx)(Ei,{}),x=(0,J.jsx)(Lr,{}),t[14]=y,t[15]=x):(y=t[14],x=t[15]);let S;t[16]!==_||t[17]!==v?(S=(0,J.jsx)(b,{children:(0,J.jsxs)(Te,{children:[u,d,(0,J.jsxs)(Ue,{children:[f,p,m,h,g,_,v,y,x]})]})}),t[16]=_,t[17]=v,t[18]=S):S=t[18];let C;return t[19]!==n||t[20]!==r||t[21]!==S?(C=(0,J.jsx)(bt,{dpr:n,onCreated:r,children:S}),t[19]=n,t[20]=r,t[21]=S,t[22]=C):C=t[22],C});export{Ji as GameView}; \ No newline at end of file diff --git a/docs/assets/GenericShape-BC0gDQiR.js b/docs/assets/GenericShape-BC0gDQiR.js deleted file mode 100644 index 40577650..00000000 --- a/docs/assets/GenericShape-BC0gDQiR.js +++ /dev/null @@ -1,9 +0,0 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,i as a}from"./react-three-fiber.esm-CgPHUpXo.js";import{a as o,i as s}from"./SettingsProvider-CCHVZuSg.js";import{n as c,r as l,t as u}from"./useBaseQuery-NrPec9_7.js";import{t as d}from"./logger-z_EpIdIa.js";import{$ as f,B as p,Ct as m,D as h,Dt as g,F as _,Ft as v,G as y,H as b,Ht as x,I as S,J as C,K as w,L as T,Mt as E,N as D,Nt as O,Ot as k,P as ee,Q as te,R as ne,Rt as re,St as ie,T as ae,U as oe,Ut as A,W as se,Wt as ce,X as le,Z as j,_t as ue,a as de,at as M,b as N,ct as fe,d as pe,dt as me,et as he,f as ge,ft as _e,g as ve,h as ye,ht as be,it as P,j as xe,jt as Se,lt as Ce,m as F,mt as we,nt as I,o as Te,ot as L,pt as Ee,q as De,rt as Oe,st as ke,tt as Ae,ut as je,v as R,vt as Me,xt as Ne,yt as Pe,z as Fe,zt as Ie}from"./three.module-07hRbor4.js";import{i as Le,n as Re,r as ze}from"./engineStore-Dkm20jvr.js";import{a as Be,c as Ve,d as He,p as Ue,t as We}from"./loaders-CIpiZadQ.js";import{t as Ge}from"./Texture-CIsc25mc.js";import{t as Ke}from"./FloatingLabel-4Yii8rRq.js";import{c as qe,f as Je,l as Ye,o as Xe,t as Ze,u as Qe}from"./globalFogUniforms-CtxQvsRj.js";function $e(e,t){return u({...e,enabled:!0,suspense:!0,throwOnError:c,placeholderData:void 0},l,t)}var et=parseInt(`182`.replace(/\D+/g,``));function tt(e,t){if(t===0)return console.warn(`THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.`),e;if(t===2||t===1){let n=e.getIndex();if(n===null){let t=[],r=e.getAttribute(`position`);if(r!==void 0){for(let e=0;e=2.0 are supported.`));return}let s=new Jt(i,{path:t||this.resourcePath||``,crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});s.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&o[t]===void 0&&console.warn(`THREE.GLTFLoader: Unknown extension "`+t+`".`)}}s.setExtensions(a),s.setPlugins(o),s.parse(n,r)}parseAsync(e,t){let n=this;return new Promise(function(r,i){n.parse(e,t,r,i)})}};function ot(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}var V={KHR_BINARY_GLTF:`KHR_binary_glTF`,KHR_DRACO_MESH_COMPRESSION:`KHR_draco_mesh_compression`,KHR_LIGHTS_PUNCTUAL:`KHR_lights_punctual`,KHR_MATERIALS_CLEARCOAT:`KHR_materials_clearcoat`,KHR_MATERIALS_DISPERSION:`KHR_materials_dispersion`,KHR_MATERIALS_IOR:`KHR_materials_ior`,KHR_MATERIALS_SHEEN:`KHR_materials_sheen`,KHR_MATERIALS_SPECULAR:`KHR_materials_specular`,KHR_MATERIALS_TRANSMISSION:`KHR_materials_transmission`,KHR_MATERIALS_IRIDESCENCE:`KHR_materials_iridescence`,KHR_MATERIALS_ANISOTROPY:`KHR_materials_anisotropy`,KHR_MATERIALS_UNLIT:`KHR_materials_unlit`,KHR_MATERIALS_VOLUME:`KHR_materials_volume`,KHR_TEXTURE_BASISU:`KHR_texture_basisu`,KHR_TEXTURE_TRANSFORM:`KHR_texture_transform`,KHR_MESH_QUANTIZATION:`KHR_mesh_quantization`,KHR_MATERIALS_EMISSIVE_STRENGTH:`KHR_materials_emissive_strength`,EXT_MATERIALS_BUMP:`EXT_materials_bump`,EXT_TEXTURE_WEBP:`EXT_texture_webp`,EXT_TEXTURE_AVIF:`EXT_texture_avif`,EXT_MESHOPT_COMPRESSION:`EXT_meshopt_compression`,EXT_MESH_GPU_INSTANCING:`EXT_mesh_gpu_instancing`},st=class{constructor(e){this.parser=e,this.name=V.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let n=0,r=t.length;n=0)throw Error(`THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures`);return null}return t.loadTextureImage(e,i.source,a)}},xt=class{constructor(e){this.parser=e,this.name=V.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=r.images[a.source],s=n.textureLoader;if(o.uri){let e=n.options.manager.getHandler(o.uri);e!==null&&(s=e)}return this.detectSupport().then(function(i){if(i)return n.loadTextureImage(e,a.source,s);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw Error(`THREE.GLTFLoader: WebP required by asset but unsupported.`);return n.loadTexture(e)})}detectSupport(){return this.isSupported||=new Promise(function(e){let t=new Image;t.src=`data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA`,t.onload=t.onerror=function(){e(t.height===1)}}),this.isSupported}},St=class{constructor(e){this.parser=e,this.name=V.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=r.images[a.source],s=n.textureLoader;if(o.uri){let e=n.options.manager.getHandler(o.uri);e!==null&&(s=e)}return this.detectSupport().then(function(i){if(i)return n.loadTextureImage(e,a.source,s);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw Error(`THREE.GLTFLoader: AVIF required by asset but unsupported.`);return n.loadTexture(e)})}detectSupport(){return this.isSupported||=new Promise(function(e){let t=new Image;t.src=`data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=`,t.onload=t.onerror=function(){e(t.height===1)}}),this.isSupported}},Ct=class{constructor(e){this.name=V.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){let e=n.extensions[this.name],r=this.parser.getDependency(`buffer`,e.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw Error(`THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files`);return null}return r.then(function(t){let n=e.byteOffset||0,r=e.byteLength||0,a=e.count,o=e.byteStride,s=new Uint8Array(t,n,r);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(a,o,s,e.mode,e.filter).then(function(e){return e.buffer}):i.ready.then(function(){let t=new ArrayBuffer(a*o);return i.decodeGltfBuffer(new Uint8Array(t),a,o,s,e.mode,e.filter),t})})}else return null}},wt=class{constructor(e){this.name=V.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||n.mesh===void 0)return null;let r=t.meshes[n.mesh];for(let e of r.primitives)if(e.mode!==U.TRIANGLES&&e.mode!==U.TRIANGLE_STRIP&&e.mode!==U.TRIANGLE_FAN&&e.mode!==void 0)return null;let i=n.extensions[this.name].attributes,a=[],o={};for(let e in i)a.push(this.parser.getDependency(`accessor`,i[e]).then(t=>(o[e]=t,o[e])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(e=>{let t=e.pop(),n=t.isGroup?t.children:[t],r=e[0].count,i=[];for(let e of n){let t=new I,n=new A,a=new ie,s=new A(1,1,1),c=new _(e.geometry,e.material,r);for(let e=0;e=152?{TEXCOORD_0:`uv`,TEXCOORD_1:`uv1`,TEXCOORD_2:`uv2`,TEXCOORD_3:`uv3`}:{TEXCOORD_0:`uv`,TEXCOORD_1:`uv2`},COLOR_0:`color`,WEIGHTS_0:`skinWeight`,JOINTS_0:`skinIndex`},G={scale:`scale`,translation:`position`,rotation:`quaternion`,weights:`morphTargetInfluences`},Rt={CUBICSPLINE:void 0,LINEAR:p,STEP:Fe},zt={OPAQUE:`OPAQUE`,MASK:`MASK`,BLEND:`BLEND`};function Bt(e){return e.DefaultMaterial===void 0&&(e.DefaultMaterial=new ke({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),e.DefaultMaterial}function K(e,t,n){for(let r in n.extensions)e[r]===void 0&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=n.extensions[r])}function q(e,t){t.extras!==void 0&&(typeof t.extras==`object`?Object.assign(e.userData,t.extras):console.warn(`THREE.GLTFLoader: Ignoring primitive type .extras, `+t.extras))}function Vt(e,t,n){let r=!1,i=!1,a=!1;for(let e=0,n=t.length;e0||e.search(/^data\:image\/jpeg/)===0?`image/jpeg`:e.search(/\.webp($|\?)/i)>0||e.search(/^data\:image\/webp/)===0?`image/webp`:`image/png`}var qt=new I,Jt=class{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new ot,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,r=!1,i=-1;typeof navigator<`u`&&navigator.userAgent!==void 0&&(n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,r=navigator.userAgent.indexOf(`Firefox`)>-1,i=r?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>`u`||n||r&&i<98?this.textureLoader=new Ie(this.options.manager):this.textureLoader=new D(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new h(this.options.manager),this.fileLoader.setResponseType(`arraybuffer`),this.options.crossOrigin===`use-credentials`&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let n=this,r=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([n.getDependencies(`scene`),n.getDependencies(`animation`),n.getDependencies(`camera`)])}).then(function(t){let a={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:n,userData:{}};return K(i,a,r),q(a,r),Promise.all(n._invokeAll(function(e){return e.afterRoot&&e.afterRoot(a)})).then(function(){for(let e of a.scenes)e.updateMatrixWorld();e(a)})}).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let n=0,r=t.length;n{let n=this.associations.get(e);n!=null&&this.associations.set(t,n);for(let[n,r]of e.children.entries())i(r,t.children[n])};return i(n,r),r.name+=`_instance_`+ e.uses[t]++,r}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let n=0;n=2&&p.setY(t,u[e*a+1]),a>=3&&p.setZ(t,u[e*a+2]),a>=4&&p.setW(t,u[e*a+3]),a>=5)throw Error(`THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.`)}}return p})}loadTexture(e){let t=this.json,n=this.options,r=t.textures[e].source,i=t.images[r],a=this.textureLoader;if(i.uri){let e=n.manager.getHandler(i.uri);e!==null&&(a=e)}return this.loadTextureImage(e,r,a)}loadTextureImage(e,t,n){let r=this,i=this.json,a=i.textures[e],o=i.images[t],s=(o.uri||o.bufferView)+`:`+a.sampler;if(this.textureCache[s])return this.textureCache[s];let c=this.loadImageSource(t,n).then(function(t){t.flipY=!1,t.name=a.name||o.name||``,t.name===``&&typeof o.uri==`string`&&o.uri.startsWith(`data:image/`)===!1&&(t.name=o.uri);let n=(i.samplers||{})[a.sampler]||{};return t.magFilter=Pt[n.magFilter]||1006,t.minFilter=Pt[n.minFilter]||1008,t.wrapS=Ft[n.wrapS]||1e3,t.wrapT=Ft[n.wrapT]||1e3,r.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[s]=c,c}loadImageSource(e,t){let n=this,r=this.json,i=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(e=>e.clone());let a=r.images[e],o=self.URL||self.webkitURL,s=a.uri||``,c=!1;if(a.bufferView!==void 0)s=n.getDependency(`bufferView`,a.bufferView).then(function(e){c=!0;let t=new Blob([e],{type:a.mimeType});return s=o.createObjectURL(t),s});else if(a.uri===void 0)throw Error(`THREE.GLTFLoader: Image `+e+` is missing URI and bufferView`);let l=Promise.resolve(s).then(function(e){return new Promise(function(n,r){let a=n;t.isImageBitmapLoader===!0&&(a=function(e){let t=new re(e);t.needsUpdate=!0,n(t)}),t.load(j.resolveURL(e,i.path),a,void 0,r)})}).then(function(e){return c===!0&&o.revokeObjectURL(s),q(e,a),e.userData.mimeType=a.mimeType||Kt(a.uri),e}).catch(function(e){throw console.error(`THREE.GLTFLoader: Couldn't load texture`,s),e});return this.sourceCache[e]=l,l}assignTexture(e,t,n,r){let i=this;return this.getDependency(`texture`,n.index).then(function(a){if(!a)return null;if(n.texCoord!==void 0&&n.texCoord>0&&(a=a.clone(),a.channel=n.texCoord),i.extensions[V.KHR_TEXTURE_TRANSFORM]){let e=n.extensions===void 0?void 0:n.extensions[V.KHR_TEXTURE_TRANSFORM];if(e){let t=i.associations.get(a);a=i.extensions[V.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),i.associations.set(a,t)}}return r!==void 0&&(typeof r==`number`&&(r=r===rt?z:B),`colorSpace`in a?a.colorSpace=r:a.encoding=r===z?rt:it),e[t]=a,a})}assignFinalMaterial(e){let t=e.geometry,n=e.material,r=t.attributes.tangent===void 0,i=t.attributes.color!==void 0,a=t.attributes.normal===void 0;if(e.isPoints){let e=`PointsMaterial:`+n.uuid,t=this.cache.get(e);t||(t=new Pe,he.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){let e=`LineBasicMaterial:`+n.uuid,t=this.cache.get(e);t||(t=new oe,he.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(r||i||a){let e=`ClonedMaterial:`+n.uuid+`:`;r&&(e+=`derivative-tangents:`),i&&(e+=`vertex-colors:`),a&&(e+=`flat-shading:`);let t=this.cache.get(e);t||(t=n.clone(),i&&(t.vertexColors=!0),a&&(t.flatShading=!0),r&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return ke}loadMaterial(e){let t=this,n=this.json,r=this.extensions,i=n.materials[e],a,o={},s=i.extensions||{},c=[];if(s[V.KHR_MATERIALS_UNLIT]){let e=r[V.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),c.push(e.extendParams(o,i,t))}else{let n=i.pbrMetallicRoughness||{};if(o.color=new N(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){let e=n.baseColorFactor;o.color.setRGB(e[0],e[1],e[2],B),o.opacity=e[3]}n.baseColorTexture!==void 0&&c.push(t.assignTexture(o,`map`,n.baseColorTexture,z)),o.metalness=n.metallicFactor===void 0?1:n.metallicFactor,o.roughness=n.roughnessFactor===void 0?1:n.roughnessFactor,n.metallicRoughnessTexture!==void 0&&(c.push(t.assignTexture(o,`metalnessMap`,n.metallicRoughnessTexture)),c.push(t.assignTexture(o,`roughnessMap`,n.metallicRoughnessTexture))),a=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)})))}i.doubleSided===!0&&(o.side=2);let l=i.alphaMode||zt.OPAQUE;if(l===zt.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,l===zt.MASK&&(o.alphaTest=i.alphaCutoff===void 0?.5:i.alphaCutoff)),i.normalTexture!==void 0&&a!==P&&(c.push(t.assignTexture(o,`normalMap`,i.normalTexture)),o.normalScale=new x(1,1),i.normalTexture.scale!==void 0)){let e=i.normalTexture.scale;o.normalScale.set(e,e)}if(i.occlusionTexture!==void 0&&a!==P&&(c.push(t.assignTexture(o,`aoMap`,i.occlusionTexture)),i.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=i.occlusionTexture.strength)),i.emissiveFactor!==void 0&&a!==P){let e=i.emissiveFactor;o.emissive=new N().setRGB(e[0],e[1],e[2],B)}return i.emissiveTexture!==void 0&&a!==P&&c.push(t.assignTexture(o,`emissiveMap`,i.emissiveTexture,z)),Promise.all(c).then(function(){let n=new a(o);return i.name&&(n.name=i.name),q(n,i),t.associations.set(n,{materials:e}),i.extensions&&K(r,n,i),n})}createUniqueName(e){let t=Ne.sanitizeNodeName(e||``);return t in this.nodeNamesUsed?t+`_`+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,n=this.extensions,r=this.primitiveCache;function i(e){return n[V.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(n){return Xt(n,e,t)})}let a=[];for(let n=0,o=e.length;n0&&Ht(d,i),d.name=t.createUniqueName(i.name||`mesh_`+e),q(d,i),u.extensions&&K(r,d,u),t.assignFinalMaterial(d),c.push(d)}for(let n=0,r=c.length;n1?new xe:t.length===1?t[0]:new Ee,o!==t[0])for(let e=0,n=t.length;e{let t=new Map;for(let[e,n]of r.associations)(e instanceof he||e instanceof re)&&t.set(e,n);return e.traverse(e=>{let n=r.associations.get(e);n!=null&&t.set(e,n)}),t})(i),i})}_createAnimationTracks(e,t,n,r,i){let a=[],o=e.name?e.name:e.uuid,s=[];G[i.path]===G.weights?e.traverse(function(e){e.morphTargetInfluences&&s.push(e.name?e.name:e.uuid)}):s.push(o);let c;switch(G[i.path]){case G.weights:c=_e;break;case G.rotation:c=m;break;case G.position:case G.scale:c=ce;break;default:switch(n.itemSize){case 1:c=_e;break;default:c=ce;break}break}let l=r.interpolation===void 0?p:Rt[r.interpolation],u=this._getArrayFromAccessor(n);for(let e=0,n=s.length;e{let n={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,n).then(t).catch(r)},n,r)}decodeDracoFile(e,t,n,r){let i={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:r||this.defaultAttributeTypes,useUniqueIDs:!!n};this.decodeGeometry(e,i).then(t)}decodeGeometry(e,t){for(let e in t.attributeTypes){let n=t.attributeTypes[e];n.BYTES_PER_ELEMENT!==void 0&&(t.attributeTypes[e]=n.name)}let n=JSON.stringify(t);if(Zt.has(e)){let t=Zt.get(e);if(t.key===n)return t.promise;if(e.byteLength===0)throw Error(`THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.`)}let r,i=this.workerNextTaskID++,a=e.byteLength,o=this._getWorker(i,a).then(n=>(r=n,new Promise((n,a)=>{r._callbacks[i]={resolve:n,reject:a},r.postMessage({type:`decode`,id:i,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return o.catch(()=>!0).then(()=>{r&&i&&this._releaseTask(r,i)}),Zt.set(e,{key:n,promise:o}),o}_createGeometry(e){let t=new ye;e.index&&t.setIndex(new F(e.index.array,1));for(let n=0;n{n.load(e,t,void 0,r)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e=typeof WebAssembly!=`object`||this.decoderConfig.type===`js`,t=[];return e?t.push(this._loadLibrary(`draco_decoder.js`,`text`)):(t.push(this._loadLibrary(`draco_wasm_wrapper.js`,`text`)),t.push(this._loadLibrary(`draco_decoder.wasm`,`arraybuffer`))),this.decoderPending=Promise.all(t).then(t=>{let n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);let r=$t.toString(),i=[`/* draco decoder */`,n,``,`/* worker */`,r.substring(r.indexOf(`{`)+1,r.lastIndexOf(`}`))].join(` -`);this.workerSourceURL=URL.createObjectURL(new Blob([i]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.lengtht._taskLoad?-1:1});let n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log(`Task load: `,this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{let t=e.draco,o=new t.Decoder,s=new t.DecoderBuffer;s.Init(new Int8Array(r),r.byteLength);try{let e=n(t,o,s,a),r=e.attributes.map(e=>e.array.buffer);e.index&&r.push(e.index.array.buffer),self.postMessage({type:`decode`,id:i.id,geometry:e},r)}catch(e){console.error(e),self.postMessage({type:`error`,id:i.id,error:e.message})}finally{t.destroy(s),t.destroy(o)}});break}};function n(e,t,n,a){let o=a.attributeIDs,s=a.attributeTypes,c,l,u=t.GetEncodedGeometryType(n);if(u===e.TRIANGULAR_MESH)c=new e.Mesh,l=t.DecodeBufferToMesh(n,c);else if(u===e.POINT_CLOUD)c=new e.PointCloud,l=t.DecodeBufferToPointCloud(n,c);else throw Error(`THREE.DRACOLoader: Unexpected geometry type.`);if(!l.ok()||c.ptr===0)throw Error(`THREE.DRACOLoader: Decoding failed: `+l.error_msg());let d={index:null,attributes:[]};for(let n in o){let r=self[s[n]],l,u;if(a.useUniqueIDs)u=o[n],l=t.GetAttributeByUniqueId(c,u);else{if(u=t.GetAttributeId(c,e[o[n]]),u===-1)continue;l=t.GetAttribute(c,u)}d.attributes.push(i(e,t,c,n,r,l))}return u===e.TRIANGULAR_MESH&&(d.index=r(e,t,c)),e.destroy(c),d}function r(e,t,n){let r=n.num_faces()*3,i=r*4,a=e._malloc(i);t.GetTrianglesUInt32Array(n,i,a);let o=new Uint32Array(e.HEAPF32.buffer,a,r).slice();return e._free(a),{array:o,itemSize:1}}function i(e,t,n,r,i,o){let s=o.num_components(),c=n.num_points()*s,l=c*i.BYTES_PER_ELEMENT,u=a(e,i),d=e._malloc(l);t.GetAttributeDataArrayForAllPoints(n,o,u,l,d);let f=new i(e.HEAPF32.buffer,d,c).slice();return e._free(d),{name:r,array:f,itemSize:s}}function a(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}}var en,tn=()=>{if(en)return en;let e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if(typeof WebAssembly!=`object`)return{supported:!1};let n=`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`;WebAssembly.validate(e)&&(n=`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`);let r,i=WebAssembly.instantiate(a(n),{}).then(e=>{r=e.instance,r.exports.__wasm_call_ctors()});function a(e){let n=new Uint8Array(e.length);for(let t=0;t96?r-71:r>64?r-65:r>47?r+4:r>46?63:62}let r=0;for(let i=0;i{n&&n(r),e&&(nn||=new Qt,nn.setDecoderPath(typeof e==`string`?e:rn),r.setDRACOLoader(nn)),t&&r.setMeshoptDecoder(typeof tn==`function`?tn():tn)}}var Y=(e,t,n,r)=>i(at,e,an(t,n,r));Y.preload=(e,t,n,r)=>i.preload(at,e,an(t,n,r)),Y.clear=e=>i.clear(at,e),Y.setDecoderPath=e=>{rn=e};var X=t(),Z=r(),on=1/32,sn=(0,J.createContext)(null);function cn({children:e}){let t=(0,J.useRef)(void 0),n=(0,J.useRef)(0),r=(0,J.useRef)(0);a((e,i)=>{for(n.current+=i;n.current>=on;)if(n.current-=on,r.current++,t.current)for(let e of t.current)e(r.current)});let i=(0,J.useCallback)(e=>(t.current??=new Set,t.current.add(e),()=>{t.current.delete(e)}),[]),o=(0,J.useCallback)(()=>r.current,[]),s=(0,J.useCallback)(()=>n.current/on,[]),c=(0,J.useMemo)(()=>({subscribe:i,getTick:o,getTickFraction:s}),[i,o,s]);return(0,Z.jsx)(sn.Provider,{value:c,children:e})}function ln(e){let t=(0,X.c)(5),n=(0,J.useContext)(sn);if(!n)throw Error(`useTick must be used within a TickProvider`);let r=(0,J.useEffectEvent)(e),i;t[0]!==n||t[1]!==r?(i=()=>n.subscribe(r),t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=[n],t[3]=n,t[4]=a),(0,J.useEffect)(i,a)}function un(){let e=(0,J.useContext)(sn);if(!e)throw Error(`useGetTickFraction must be used within a TickProvider`);return e.getTickFraction}var dn=(0,J.createContext)(null),fn={didCatch:!1,error:null},pn=class extends J.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=fn}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(...e){let{error:t}=this.state;t!==null&&(this.props.onReset?.({args:e,reason:`imperative-api`}),this.setState(fn))}componentDidCatch(e,t){this.props.onError?.(e,t)}componentDidUpdate(e,t){let{didCatch:n}=this.state,{resetKeys:r}=this.props;n&&t.error!==null&&mn(e.resetKeys,r)&&(this.props.onReset?.({next:r,prev:e.resetKeys,reason:`keys`}),this.setState(fn))}render(){let{children:e,fallbackRender:t,FallbackComponent:n,fallback:r}=this.props,{didCatch:i,error:a}=this.state,o=e;if(i){let e={error:a,resetErrorBoundary:this.resetErrorBoundary};if(typeof t==`function`)o=t(e);else if(n)o=(0,J.createElement)(n,e);else if(r!==void 0)o=r;else throw a}return(0,J.createElement)(dn.Provider,{value:{didCatch:i,error:a,resetErrorBoundary:this.resetErrorBoundary}},o)}};function mn(e=[],t=[]){return e.length!==t.length||e.some((e,n)=>!Object.is(e,t[n]))}function hn(e){let t=new Map,n=new Map,r=e.clone();return gn(e,r,function(e,r){t.set(r,e),n.set(e,r)}),r.traverse(function(e){if(!e.isSkinnedMesh)return;let r=e,i=t.get(e),a=i.skeleton.bones;r.skeleton=i.skeleton.clone(),r.bindMatrix.copy(i.bindMatrix),r.skeleton.bones=a.map(function(e){return n.get(e)}),r.bind(r.skeleton,r.bindMatrix)}),r}function gn(e,t,n){n(e,t);for(let r=0;r{let n=t%o,a=Math.floor(t/o);l.drawImage(e.image,n*r,a*i)});let u=new ve(c);return u.colorSpace=k,u.generateMipmaps=!1,u.minFilter=Ce,u.magFilter=Ce,u.wrapS=R,u.wrapT=R,u.repeat.set(1/o,1/s),{texture:u,columns:o,rows:s,slotCount:a,frameToSlot:t,frameOffsetSeconds:[],totalDurationSeconds:0,lastSlot:-1}}function En(e,t){let n=0;e.frameOffsetSeconds=t.map(e=>(n+=e.frameCount*Sn,n)),e.totalDurationSeconds=n}function Q(e,t){let n=e.frameToSlot[t]??0;if(n===e.lastSlot)return;e.lastSlot=n;let r=n%e.columns,i=e.rows-1-Math.floor(n/e.columns);e.texture.offset.set(r/e.columns,i/e.rows)}function Dn(e,t){let n=e.totalDurationSeconds;if(n<=0)return 0;let r=t;r>n&&(r-=n*Math.floor(r/n));for(let t=0;tBe(t,e)),o=Tn(await Promise.all(a.map(Qe)),i);return En(o,n),Cn.set(e,o),o}function kn(e){let t=(0,X.c)(17),{animationEnabled:n}=o(),r;t[0]===e?r=t[1]:(r={queryKey:[`ifl`,e],queryFn:()=>Ve(e)},t[0]=e,t[1]=r);let{data:i}=$e(r),a;t[2]===i?a=t[3]:(a=wn(i),t[2]=i,t[3]=a);let{uniqueNames:s,frameToSlot:c}=a,l;if(t[4]!==e||t[5]!==s){let n;t[7]===e?n=t[8]:(n=t=>Be(t,e),t[7]=e,t[8]=n),l=s.map(n),t[4]=e,t[5]=s,t[6]=l}else l=t[6];let u=Ge(l),d;t[9]!==c||t[10]!==i||t[11]!==e||t[12]!==u?(d=Cn.get(e),d||(d=Tn(u,c),Cn.set(e,d)),En(d,i),t[9]=c,t[10]=i,t[11]=e,t[12]=u,t[13]=d):d=t[13];let f=d,p;return t[14]!==n||t[15]!==f?(p=e=>{let t=e/32;Q(f,n?Dn(f,t):0)},t[14]=n,t[15]=f,t[16]=p):p=t[16],ln(p),f.texture}var An={directional:1,ambient:1.5};function jn(e){e.uniforms.shapeDirectionalFactor={value:An.directional},e.uniforms.shapeAmbientFactor={value:An.ambient},e.fragmentShader=e.fragmentShader.replace(`#include `,`#include -uniform float shapeDirectionalFactor; -uniform float shapeAmbientFactor; -`),e.fragmentShader=e.fragmentShader.replace(`#include `,`#include - // Apply shape-specific lighting multipliers - reflectedLight.directDiffuse *= shapeDirectionalFactor; - reflectedLight.indirectDiffuse *= shapeAmbientFactor; -`)}function Mn(e){let t=new Set;return e.bones.forEach((e,n)=>{e.name.match(/^Hulk/i)&&t.add(n)}),t}var Nn=2.1,Pn=.25,Fn=32/1e3,$=new A,In=new A,Ln=new I,Rn=new A(0,1,0),zn=new ie().setFromAxisAngle(new A(0,1,0),Math.PI/2),Bn=zn.clone().invert();function Vn(e,t){let n=Number.isFinite(t)&&t>1e-6?t:4/3,r=Math.max(.01,Math.min(179.99,e))*Math.PI/180;return 2*Math.atan(Math.tan(r/2)/n)*180/Math.PI}function Hn(e){e.wrapS=R,e.wrapT=R,e.minFilter=w,e.magFilter=w,e.colorSpace=``,e.flipY=!1,e.needsUpdate=!0}function Un(e,t){return t.set(e[1],e[2],e[0])}function Wn(e,t){$.crossVectors(e,Rn),$.lengthSq()<1e-8&&$.set(-1,0,0),$.normalize(),In.crossVectors($,e).normalize(),Ln.set($.x,e.x,In.x,0,$.y,e.y,In.y,0,$.z,e.z,In.z,0,0,0,0,1),t.setFromRotationMatrix(Ln)}function Gn(e,t){if(e.length===0)return null;if(t<=e[0].time)return e[0];if(t>=e[e.length-1].time)return e[e.length-1];let n=0,r=e.length-1;for(;r-n>1;){let i=n+r>>1;e[i].time<=t?n=i:r=i}return e[n]}function Kn(e,t,n,r){let i=e.clone(!0),a=t.find(e=>e.name===`Root`);if(a){let e=new Te(i);if(e.clipAction(a).play(),r)for(let n of r){let r=t.find(e=>e.name.toLowerCase()===n.toLowerCase());if(r){let t=e.clipAction(r);t.time=r.duration/2,t.setEffectiveTimeScale(0),t.play()}}e.setTime(0)}i.updateMatrixWorld(!0);let o=null,s=null;return i.traverse(e=>{!o&&e.name===n&&(o=new A,s=new ie,e.getWorldPosition(o),e.getWorldQuaternion(s))}),!o||!s?null:{position:o,quaternion:s}}function qn(e,t){if(t.size===0||!e.attributes.skinIndex)return;let n=e.attributes.skinIndex,r=e.attributes.skinWeight,i=e.index;if(!i)return;let a=Array(n.count).fill(!1);for(let e=0;e.01&&t.has(o)){a[e]=!0;break}}let o=[],s=i.array;for(let e=0;e1){let t=0,n=0,r=0;for(let a of e)t+=i[a*3],n+=i[a*3+1],r+=i[a*3+2];let a=Math.sqrt(t*t+n*n+r*r);a>0&&(t/=a,n/=a,r/=a);for(let a of e)i[a*3]=t,i[a*3+1]=n,i[a*3+2]=r}n.needsUpdate=!0}function Yn(e,t,n=!1,r={}){let i=e.userData?.resource_path,a=new Set(e.userData?.flag_names??[]);if(!i){let t=new M({color:e.color,side:2,reflectivity:0});return ir(t),{material:t}}if(a.has(`IflMaterial`)){let r=ar(e,null,a,n,t);if(Array.isArray(r)){let e=r[1];return{material:e,backMaterial:r[0],initialize:(t,n)=>Xn(e,i,t,n)}}return{material:r,initialize:(e,t)=>Xn(r,i,e,t)}}let o=Ye(Ue(i)),s=a.has(`Translucent`);n||s?Je(o,{disableMipmaps:!0,anisotropy:r.anisotropy}):Je(o,{anisotropy:r.anisotropy});let c=ar(e,o,a,n,t);return Array.isArray(c)?{material:c[1],backMaterial:c[0]}:{material:c}}async function Xn(e,t,n,r){let i=await On(`textures/${t}.ifl`);e.map=i.texture,e.needsUpdate=!0;let a=!1,o=n.onBeforeRender;return n.onBeforeRender=function(...e){o?.apply(this,e),!a&&Q(i,Dn(i,r()))},()=>{a=!0,n.onBeforeRender=o??(()=>{})}}function Zn(e,t,n={}){let r=[],i=t?vn(t):!1,a=null;e.traverse(e=>{!a&&e.skeleton&&(a=e.skeleton)});let o=a?Mn(a):new Set,s=[];e.traverse(e=>{if(!e.isMesh)return;if(e.name.match(/^Hulk/i)||e.material?.name===`Unassigned`){e.visible=!1;return}let t=!!e.userData?.vis_sequence;(e.userData?.vis??1)<.01&&(e.visible=!1),e.geometry&&(qn(e.geometry,o),Jn(e.geometry));let a=t?1:e.userData?.vis??1;if(Array.isArray(e.material))e.material=e.material.map(t=>{let o=Yn(t,a,i,n);if(o.initialize&&r.push({mesh:e,initialize:o.initialize}),o.backMaterial&&e.parent){let t=e.clone();t.material=o.backMaterial,s.push({parent:e.parent,mesh:t})}return o.material});else if(e.material){let t=Yn(e.material,a,i,n);if(t.initialize&&r.push({mesh:e,initialize:t.initialize}),e.material=t.material,t.backMaterial&&e.parent){let n=e.clone();n.material=t.backMaterial,s.push({parent:e.parent,mesh:n})}}});for(let{parent:e,mesh:t}of s)e.add(t);return r}function Qn(e){e.traverse(e=>{if(e.geometry&&e.geometry.dispose(),e.material){let t=Array.isArray(e.material)?e.material:[e.material];for(let e of t)e.dispose()}})}function $n(e){switch(e.toLowerCase()){case`player`:return`#00ff88`;case`vehicle`:return`#ff8800`;case`projectile`:return`#ff0044`;case`deployable`:return`#ffcc00`;default:return`#8888ff`}}var er=d(`GenericShape`);function tr(){let{recording:e}=ze.getState().playback;return e==null?performance.now()/1e3:Re()/1e3}var nr=e=>{Xe(e,Ze),jn(e)},rr=e=>{Xe(e,Ze)};function ir(e){e.onBeforeCompile=e instanceof M?nr:rr}function ar(e,t,n,r,i=1,a=!1){let o=n.has(`Translucent`),s=n.has(`Additive`),c=n.has(`SelfIlluminating`),l=i<1||a;if(c||s){let e=s||o||l,n=new P({map:t,side:2,transparent:e,depthWrite:!e,alphaTest:0,fog:!0,...l&&{opacity:i},...s&&{blending:2}});return ir(n),n}if(r||o){let e={map:t,transparent:l,alphaTest:l?0:.5,...l&&{opacity:i,depthWrite:!1},reflectivity:0},n=new M({...e,side:1,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1}),r=new M({...e,side:0});return ir(n),ir(r),[n,r]}let u=new M({map:t,side:2,reflectivity:0,...l&&{transparent:!0,opacity:i,depthWrite:!1}});return ir(u),u}function or(e){let t=(0,X.c)(2),n;return t[0]===e?n=t[1]:(n=He(e),t[0]=e,t[1]=n),Y(n)}var sr=(0,J.memo)(function(e){let t=(0,X.c)(35),{material:n,shapeName:r,geometry:i,backGeometry:a,castShadow:o,receiveShadow:s,vis:c,animated:l}=e,u=o===void 0?!1:o,d=s===void 0?!1:s,f=c===void 0?1:c,p=l===void 0?!1:l,m=n.userData.resource_path,h;t[0]===n.userData.flag_names?h=t[1]:(h=n.userData.flag_names?new Set(n.userData.flag_names):ur,t[0]=n.userData.flag_names,t[1]=h);let g=h,_=kn(`textures/${m}.ifl`),v;t[2]===r?v=t[3]:(v=r&&vn(r),t[2]=r,t[3]=v);let y=!!v,b;t[4]!==p||t[5]!==g||t[6]!==y||t[7]!==n||t[8]!==_||t[9]!==f?(b=ar(n,_,g,y,f,p),t[4]=p,t[5]=g,t[6]=y,t[7]=n,t[8]=_,t[9]=f,t[10]=b):b=t[10];let x=b;if(cr(x),Array.isArray(x)){let e=a||i,n;t[11]===x[0]?n=t[12]:(n=(0,Z.jsx)(`primitive`,{object:x[0],attach:`material`}),t[11]=x[0],t[12]=n);let r;t[13]!==u||t[14]!==d||t[15]!==e||t[16]!==n?(r=(0,Z.jsx)(`mesh`,{geometry:e,castShadow:u,receiveShadow:d,children:n}),t[13]=u,t[14]=d,t[15]=e,t[16]=n,t[17]=r):r=t[17];let o;t[18]===x[1]?o=t[19]:(o=(0,Z.jsx)(`primitive`,{object:x[1],attach:`material`}),t[18]=x[1],t[19]=o);let s;t[20]!==u||t[21]!==i||t[22]!==d||t[23]!==o?(s=(0,Z.jsx)(`mesh`,{geometry:i,castShadow:u,receiveShadow:d,children:o}),t[20]=u,t[21]=i,t[22]=d,t[23]=o,t[24]=s):s=t[24];let c;return t[25]!==r||t[26]!==s?(c=(0,Z.jsxs)(Z.Fragment,{children:[r,s]}),t[25]=r,t[26]=s,t[27]=c):c=t[27],c}let S;t[28]===x?S=t[29]:(S=(0,Z.jsx)(`primitive`,{object:x,attach:`material`}),t[28]=x,t[29]=S);let C;return t[30]!==u||t[31]!==i||t[32]!==d||t[33]!==S?(C=(0,Z.jsx)(`mesh`,{geometry:i,castShadow:u,receiveShadow:d,children:S}),t[30]=u,t[31]=i,t[32]=d,t[33]=S,t[34]=C):C=t[34],C});function cr(e){let t=(0,X.c)(3),n,r;t[0]===e?(n=t[1],r=t[2]):(n=()=>()=>{Array.isArray(e)?e.forEach(lr):e.dispose()},r=[e],t[0]=e,t[1]=n,t[2]=r),(0,J.useEffect)(n,r)}function lr(e){return e.dispose()}var ur=new Set,dr=(0,J.memo)(function(e){let t=(0,X.c)(43),{material:n,shapeName:r,geometry:i,backGeometry:a,castShadow:o,receiveShadow:s,vis:c,animated:l}=e,u=o===void 0?!1:o,d=s===void 0?!1:s,f=c===void 0?1:c,p=l===void 0?!1:l,m=n.userData.resource_path,h;t[0]===n.userData.flag_names?h=t[1]:(h=n.userData.flag_names?new Set(n.userData.flag_names):ur,t[0]=n.userData.flag_names,t[1]=h);let g=h;m||er.warn(`No resource_path found on "%s" — rendering fallback`,r);let _;t[2]===m?_=t[3]:(_=m?Ue(m):We,t[2]=m,t[3]=_);let v=_,y;t[4]===r?y=t[5]:(y=r&&vn(r),t[4]=r,t[5]=y);let b=!!y,x;t[6]===g?x=t[7]:(x=g.has(`Translucent`),t[6]=g,t[7]=x);let S=x,C=qe(),w;t[8]!==C||t[9]!==b||t[10]!==S?(w=e=>b||S?Je(e,{disableMipmaps:!0,anisotropy:C}):Je(e,{anisotropy:C}),t[8]=C,t[9]=b,t[10]=S,t[11]=w):w=t[11];let T=Ge(v,w),E;t[12]!==p||t[13]!==g||t[14]!==b||t[15]!==n||t[16]!==T||t[17]!==f?(E=ar(n,T,g,b,f,p),t[12]=p,t[13]=g,t[14]=b,t[15]=n,t[16]=T,t[17]=f,t[18]=E):E=t[18];let D=E;if(cr(D),Array.isArray(D)){let e=a||i,n;t[19]===D[0]?n=t[20]:(n=(0,Z.jsx)(`primitive`,{object:D[0],attach:`material`}),t[19]=D[0],t[20]=n);let r;t[21]!==u||t[22]!==d||t[23]!==e||t[24]!==n?(r=(0,Z.jsx)(`mesh`,{geometry:e,castShadow:u,receiveShadow:d,children:n}),t[21]=u,t[22]=d,t[23]=e,t[24]=n,t[25]=r):r=t[25];let o;t[26]===D[1]?o=t[27]:(o=(0,Z.jsx)(`primitive`,{object:D[1],attach:`material`}),t[26]=D[1],t[27]=o);let s;t[28]!==u||t[29]!==i||t[30]!==d||t[31]!==o?(s=(0,Z.jsx)(`mesh`,{geometry:i,castShadow:u,receiveShadow:d,children:o}),t[28]=u,t[29]=i,t[30]=d,t[31]=o,t[32]=s):s=t[32];let c;return t[33]!==r||t[34]!==s?(c=(0,Z.jsxs)(Z.Fragment,{children:[r,s]}),t[33]=r,t[34]=s,t[35]=c):c=t[35],c}let O;t[36]===D?O=t[37]:(O=(0,Z.jsx)(`primitive`,{object:D,attach:`material`}),t[36]=D,t[37]=O);let k;return t[38]!==u||t[39]!==i||t[40]!==d||t[41]!==O?(k=(0,Z.jsx)(`mesh`,{geometry:i,castShadow:u,receiveShadow:d,children:O}),t[38]=u,t[39]=i,t[40]=d,t[41]=O,t[42]=k):k=t[42],k});(0,J.memo)(function(e){let t=(0,X.c)(18),{material:n,shapeName:r,geometry:i,backGeometry:a,castShadow:o,receiveShadow:s,vis:c,animated:l}=e,u=o===void 0?!1:o,d=s===void 0?!1:s,f=c===void 0?1:c,p=l===void 0?!1:l,m=new Set(n.userData.flag_names??[]).has(`IflMaterial`),h=n.userData.resource_path;if(m&&h){let e;return t[0]!==p||t[1]!==a||t[2]!==u||t[3]!==i||t[4]!==n||t[5]!==d||t[6]!==r||t[7]!==f?(e=(0,Z.jsx)(sr,{material:n,shapeName:r,geometry:i,backGeometry:a,castShadow:u,receiveShadow:d,vis:f,animated:p}),t[0]=p,t[1]=a,t[2]=u,t[3]=i,t[4]=n,t[5]=d,t[6]=r,t[7]=f,t[8]=e):e=t[8],e}else if(n.name){let e;return t[9]!==p||t[10]!==a||t[11]!==u||t[12]!==i||t[13]!==n||t[14]!==d||t[15]!==r||t[16]!==f?(e=(0,Z.jsx)(dr,{material:n,shapeName:r,geometry:i,backGeometry:a,castShadow:u,receiveShadow:d,vis:f,animated:p}),t[9]=p,t[10]=a,t[11]=u,t[12]=i,t[13]=n,t[14]=d,t[15]=r,t[16]=f,t[17]=e):e=t[17],e}else return null});function fr(e){let t=(0,X.c)(9),{color:n,label:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Z.jsx)(`boxGeometry`,{args:[10,10,10]}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,Z.jsx)(`meshStandardMaterial`,{color:n,wireframe:!0}),t[1]=n,t[2]=a);let o;t[3]!==n||t[4]!==r?(o=r?(0,Z.jsx)(Ke,{color:n,children:r}):null,t[3]=n,t[4]=r,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,Z.jsxs)(`mesh`,{children:[i,a,o]}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function pr(e){let t=(0,X.c)(4),{color:n,label:r}=e,{debugMode:i}=s(),a;return t[0]!==n||t[1]!==i||t[2]!==r?(a=i?(0,Z.jsx)(fr,{color:n,label:r}):null,t[0]=n,t[1]=i,t[2]=r,t[3]=a):a=t[3],a}var mr=(0,J.memo)(function(e){let t=(0,X.c)(15),{loadingColor:n,streamEntity:r,children:i}=e,a=n===void 0?`yellow`:n,{object:o,shapeName:s}=bn();if(!s){let e=`${o?._id}: `,n;return t[0]===e?n=t[1]:(n=(0,Z.jsx)(pr,{color:`orange`,label:e}),t[0]=e,t[1]=n),n}let c=`${o?._id}: ${s}`,l;t[2]===c?l=t[3]:(l=(0,Z.jsx)(pr,{color:`red`,label:c}),t[2]=c,t[3]=l);let u;t[4]===a?u=t[5]:(u=(0,Z.jsx)(fr,{color:a}),t[4]=a,t[5]=u);let d;t[6]===r?d=t[7]:(d=(0,Z.jsx)(gr,{streamEntity:r}),t[6]=r,t[7]=d);let f;t[8]!==i||t[9]!==u||t[10]!==d?(f=(0,Z.jsxs)(J.Suspense,{fallback:u,children:[d,i]}),t[8]=i,t[9]=u,t[10]=d,t[11]=f):f=t[11];let p;return t[12]!==l||t[13]!==f?(p=(0,Z.jsx)(pn,{fallback:l,children:f}),t[12]=l,t[13]=f,t[14]=p):p=t[14],p}),hr=(0,J.memo)(function({gltf:e,streamEntity:t}){let{object:n,shapeName:r}=bn(),{debugMode:i}=s(),{animationEnabled:c}=o(),l=Le(e=>e.runtime.runtime),u=qe(),{clonedScene:d,mixer:p,clipsByName:m,visNodesBySequence:h,iflMeshes:g}=(0,J.useMemo)(()=>{let t=hn(e.scene),n=[];t.traverse(e=>{if(!e.isMesh||!e.material)return;let t=Array.isArray(e.material)?e.material[0]:e.material;if(!t?.userData)return;let r=new Set(t.userData.flag_names??[]),i=t.userData.resource_path;if(r.has(`IflMaterial`)&&i){let t=e.userData,r=t?.ifl_sequence?String(t.ifl_sequence).toLowerCase():void 0,a=t?.ifl_duration?Number(t.ifl_duration):void 0,o=t?.ifl_sequence?!!t.ifl_cyclic:void 0,s=t?.ifl_tool_begin==null?void 0:Number(t.ifl_tool_begin);n.push({mesh:e,iflPath:`textures/${i}.ifl`,hasVisSequence:!!t?.vis_sequence,iflSequence:r,iflDuration:a,iflCyclic:o,iflToolBegin:s})}}),Zn(t,r??void 0,{anisotropy:u});for(let{mesh:e,hasVisSequence:t}of n)t||(e.visible=!0);let i=new Map;t.traverse(e=>{if(!e.isMesh)return;let t=e.userData;if(!t)return;let n=t.vis_keyframes,r=t.vis_duration,a=(t.vis_sequence??``).toLowerCase();if(!a||!Array.isArray(n)||n.length<=1||!r||r<=0)return;let o=i.get(a);o||(o=[],i.set(a,o)),o.push({mesh:e,keyframes:n,duration:r,cyclic:!!t.vis_cyclic})});let a=new Map;for(let t of e.animations)a.set(t.name.toLowerCase(),t);return{clonedScene:t,mixer:a.size>0?new Te(t):null,clipsByName:a,visNodesBySequence:i,iflMeshes:n}},[e,u]);(0,J.useEffect)(()=>()=>{Qn(d),p?.uncacheRoot(d)},[d,p]);let _=(0,J.useRef)(new Map),v=(0,J.useRef)(new Map),y=(0,J.useRef)([]),b=(0,J.useRef)(0),x=(0,J.useRef)(c);x.current=c;let S=(0,J.useRef)(t);S.current=t;let C=(0,J.useRef)(null),w=(0,J.useRef)(null),T=(0,J.useRef)(void 0);(0,J.useEffect)(()=>{y.current=[],v.current.clear();for(let e of g)On(e.iflPath).then(t=>{let n=Array.isArray(e.mesh.material)?e.mesh.material[0]:e.mesh.material;n&&(n.map=t.texture,n.needsUpdate=!0);let r={atlas:t,sequenceName:e.iflSequence,sequenceDuration:e.iflDuration,cyclic:e.iflCyclic,toolBegin:e.iflToolBegin};y.current.push(r),v.current.set(e.mesh,t)}).catch(t=>{er.warn(`Failed to load IFL atlas for %s: %o`,e.iflPath,t)})},[g]);let E=(0,J.useMemo)(()=>{let t=new Map,n=e.scene.userData?.dts_sequence_names,r=e.scene.userData?.dts_sequence_cyclic;if(typeof n==`string`&&typeof r==`string`)try{let e=JSON.parse(n),i=JSON.parse(r);for(let n=0;n{let e=_.current,t=S.current==null;function r(e){if(e.mesh.visible=!0,e.mesh.material?.isMeshStandardMaterial){let t=e.mesh.material,n=Yn(t,e.mesh.userData?.vis??0);e.mesh.material=n.material}e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.transparent=!0,e.mesh.material.depthWrite=!1);let t=v.current.get(e.mesh);t&&e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.map=t.texture,e.mesh.material.needsUpdate=!0)}function i(t,n){let i=n.toLowerCase();a(t);let o=m.get(i),s=h.get(i),c={sequence:i,startTime:tr()};if(o&&p){let e=p.clipAction(o);E.get(i)??!0?e.setLoop(f,1/0):(e.setLoop(te,1),e.clampWhenFinished=!0),e.reset().play(),c.action=e}if(s){for(let e of s)r(e);c.visNodes=s}e.set(t,c)}function a(t){let n=e.get(t);if(n){if(n.action&&n.action.stop(),n.visNodes)for(let e of n.visNodes)e.mesh.visible=!1,e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.opacity=e.keyframes[0]);e.delete(t)}}if(C.current=i,w.current=a,!t)return()=>{C.current=null,w.current=null,T.current=void 0;for(let t of[...e.keys()])a(t)};let o=[];l&&(o.push(l.$.onMethodCalled(`ShapeBase`,`playThread`,(e,t,r)=>{e._id===n?._id&&i(Number(t),String(r))})),o.push(l.$.onMethodCalled(`ShapeBase`,`stopThread`,(e,t)=>{e._id===n?._id&&a(Number(t))})),o.push(l.$.onMethodCalled(`ShapeBase`,`pauseThread`,(t,r)=>{if(t._id!==n?._id)return;let i=e.get(Number(r));i?.action&&(i.action.paused=!0)})));for(let[e,t]of[[0,`power`],[1,`ambient`]])(m.has(t)||h.has(t))&&i(e,t);return()=>{o.forEach(e=>e()),C.current=null,w.current=null,T.current=void 0;for(let t of[...e.keys()])a(t)}},[p,m,h,E,n,l]);let D=(0,J.useMemo)(()=>{let t=e.scene.userData?.dts_sequence_names;if(typeof t==`string`)try{return JSON.parse(t).map(e=>e.toLowerCase())}catch{}return e.animations.map(e=>e.name.toLowerCase())},[e]);return a((e,t)=>{let n=_.current,r=S.current!=null,i=ze.getState().playback,a=r?i.status===`playing`?t*i.rate:0:t,o=S.current?.threads,s=T.current;if(o!==s){let e=C.current,t=w.current;if(e&&t){T.current=o;let r=[];if(o)for(let e of o)r[e.index]=e;let i=[];if(s)for(let e of s)i[e.index]=e;let a=Math.max(r.length,i.length);for(let o=0;o0){b.current+=a;for(let e of l){if(!c){Q(e.atlas,0);continue}if(e.sequenceName&&e.sequenceDuration){let t=0;for(let[,r]of n)if(r.sequence===e.sequenceName){let n=tr()-r.startTime,i=e.sequenceDuration;t=(e.cyclic?n/i%1:Math.min(n/i,1))*i+(e.toolBegin??0);break}Q(e.atlas,Dn(e.atlas,t))}else Q(e.atlas,Dn(e.atlas,b.current))}}}),(0,Z.jsxs)(`group`,{rotation:[0,Math.PI/2,0],children:[(0,Z.jsx)(`primitive`,{object:d}),i?(0,Z.jsxs)(Ke,{children:[n?._id,`: `,r]}):null]})});function gr(e){let t=(0,X.c)(3),{streamEntity:n}=e,{shapeName:r}=bn(),i=or(r),a;return t[0]!==i||t[1]!==n?(a=(0,Z.jsx)(hr,{gltf:i,streamEntity:n}),t[0]=i,t[1]=n,t[2]=a):a=t[2],a}export{pn as C,Y as D,ln as E,hn as S,un as T,Un as _,Nn as a,Q as b,Bn as c,Gn as d,Kn as f,Vn as g,Hn as h,Pn as i,Qn as l,Wn as m,mr as n,Fn as o,Zn as p,or as r,zn as s,fr as t,$n as u,Dn as v,cn as w,xn as x,On as y}; \ No newline at end of file diff --git a/docs/assets/GenericShape-FZ5loHEW.js b/docs/assets/GenericShape-FZ5loHEW.js new file mode 100644 index 00000000..293f184f --- /dev/null +++ b/docs/assets/GenericShape-FZ5loHEW.js @@ -0,0 +1,9 @@ +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,i as a}from"./react-three-fiber.esm-CgPHUpXo.js";import{a as o,i as s}from"./SettingsProvider-CCHVZuSg.js";import{n as c,r as l,t as u}from"./useBaseQuery-Co62zxSo.js";import{t as d}from"./logger-z_EpIdIa.js";import{$ as f,B as p,Ct as m,D as h,Dt as g,F as _,Ft as v,G as y,H as b,Ht as x,I as S,J as C,K as w,L as T,Mt as E,N as D,Nt as O,Ot as k,P as ee,Q as A,R as te,Rt as ne,St as re,T as ie,U as ae,Ut as j,W as oe,Wt as se,X as ce,Z as M,_t as le,a as ue,at as N,b as P,ct as de,d as fe,dt as pe,et as me,f as he,ft as ge,g as _e,h as ve,ht as ye,i as be,it as F,j as xe,jt as Se,lt as Ce,m as I,mt as we,nt as L,o as Te,ot as R,pt as Ee,q as De,rt as Oe,st as ke,tt as Ae,ut as je,v as z,vt as Me,xt as Ne,yt as Pe,z as Fe,zt as Ie}from"./three.module-07hRbor4.js";import{i as Le,n as Re,r as ze}from"./engineStore-Dkm20jvr.js";import{a as Be,c as Ve,d as He,p as Ue,t as We}from"./loaders-CIpiZadQ.js";import{t as Ge}from"./Texture-CIsc25mc.js";import{t as Ke}from"./FloatingLabel-Bm1LwAgd.js";import{c as qe,f as Je,l as Ye,o as Xe,t as Ze,u as Qe}from"./globalFogUniforms-CtxQvsRj.js";function $e(e,t){return u({...e,enabled:!0,suspense:!0,throwOnError:c,placeholderData:void 0},l,t)}var et=parseInt(`182`.replace(/\D+/g,``));function tt(e,t){if(t===0)return console.warn(`THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.`),e;if(t===2||t===1){let n=e.getIndex();if(n===null){let t=[],r=e.getAttribute(`position`);if(r!==void 0){for(let e=0;e=2.0 are supported.`));return}let s=new Jt(i,{path:t||this.resourcePath||``,crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});s.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&o[t]===void 0&&console.warn(`THREE.GLTFLoader: Unknown extension "`+t+`".`)}}s.setExtensions(a),s.setPlugins(o),s.parse(n,r)}parseAsync(e,t){let n=this;return new Promise(function(r,i){n.parse(e,t,r,i)})}};function ot(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}var H={KHR_BINARY_GLTF:`KHR_binary_glTF`,KHR_DRACO_MESH_COMPRESSION:`KHR_draco_mesh_compression`,KHR_LIGHTS_PUNCTUAL:`KHR_lights_punctual`,KHR_MATERIALS_CLEARCOAT:`KHR_materials_clearcoat`,KHR_MATERIALS_DISPERSION:`KHR_materials_dispersion`,KHR_MATERIALS_IOR:`KHR_materials_ior`,KHR_MATERIALS_SHEEN:`KHR_materials_sheen`,KHR_MATERIALS_SPECULAR:`KHR_materials_specular`,KHR_MATERIALS_TRANSMISSION:`KHR_materials_transmission`,KHR_MATERIALS_IRIDESCENCE:`KHR_materials_iridescence`,KHR_MATERIALS_ANISOTROPY:`KHR_materials_anisotropy`,KHR_MATERIALS_UNLIT:`KHR_materials_unlit`,KHR_MATERIALS_VOLUME:`KHR_materials_volume`,KHR_TEXTURE_BASISU:`KHR_texture_basisu`,KHR_TEXTURE_TRANSFORM:`KHR_texture_transform`,KHR_MESH_QUANTIZATION:`KHR_mesh_quantization`,KHR_MATERIALS_EMISSIVE_STRENGTH:`KHR_materials_emissive_strength`,EXT_MATERIALS_BUMP:`EXT_materials_bump`,EXT_TEXTURE_WEBP:`EXT_texture_webp`,EXT_TEXTURE_AVIF:`EXT_texture_avif`,EXT_MESHOPT_COMPRESSION:`EXT_meshopt_compression`,EXT_MESH_GPU_INSTANCING:`EXT_mesh_gpu_instancing`},st=class{constructor(e){this.parser=e,this.name=H.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let n=0,r=t.length;n=0)throw Error(`THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures`);return null}return t.loadTextureImage(e,i.source,a)}},xt=class{constructor(e){this.parser=e,this.name=H.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=r.images[a.source],s=n.textureLoader;if(o.uri){let e=n.options.manager.getHandler(o.uri);e!==null&&(s=e)}return this.detectSupport().then(function(i){if(i)return n.loadTextureImage(e,a.source,s);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw Error(`THREE.GLTFLoader: WebP required by asset but unsupported.`);return n.loadTexture(e)})}detectSupport(){return this.isSupported||=new Promise(function(e){let t=new Image;t.src=`data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA`,t.onload=t.onerror=function(){e(t.height===1)}}),this.isSupported}},St=class{constructor(e){this.parser=e,this.name=H.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=r.images[a.source],s=n.textureLoader;if(o.uri){let e=n.options.manager.getHandler(o.uri);e!==null&&(s=e)}return this.detectSupport().then(function(i){if(i)return n.loadTextureImage(e,a.source,s);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw Error(`THREE.GLTFLoader: AVIF required by asset but unsupported.`);return n.loadTexture(e)})}detectSupport(){return this.isSupported||=new Promise(function(e){let t=new Image;t.src=`data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=`,t.onload=t.onerror=function(){e(t.height===1)}}),this.isSupported}},Ct=class{constructor(e){this.name=H.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){let e=n.extensions[this.name],r=this.parser.getDependency(`buffer`,e.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw Error(`THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files`);return null}return r.then(function(t){let n=e.byteOffset||0,r=e.byteLength||0,a=e.count,o=e.byteStride,s=new Uint8Array(t,n,r);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(a,o,s,e.mode,e.filter).then(function(e){return e.buffer}):i.ready.then(function(){let t=new ArrayBuffer(a*o);return i.decodeGltfBuffer(new Uint8Array(t),a,o,s,e.mode,e.filter),t})})}else return null}},wt=class{constructor(e){this.name=H.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||n.mesh===void 0)return null;let r=t.meshes[n.mesh];for(let e of r.primitives)if(e.mode!==W.TRIANGLES&&e.mode!==W.TRIANGLE_STRIP&&e.mode!==W.TRIANGLE_FAN&&e.mode!==void 0)return null;let i=n.extensions[this.name].attributes,a=[],o={};for(let e in i)a.push(this.parser.getDependency(`accessor`,i[e]).then(t=>(o[e]=t,o[e])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(e=>{let t=e.pop(),n=t.isGroup?t.children:[t],r=e[0].count,i=[];for(let e of n){let t=new L,n=new j,a=new re,s=new j(1,1,1),c=new _(e.geometry,e.material,r);for(let e=0;e=152?{TEXCOORD_0:`uv`,TEXCOORD_1:`uv1`,TEXCOORD_2:`uv2`,TEXCOORD_3:`uv3`}:{TEXCOORD_0:`uv`,TEXCOORD_1:`uv2`},COLOR_0:`color`,WEIGHTS_0:`skinWeight`,JOINTS_0:`skinIndex`},K={scale:`scale`,translation:`position`,rotation:`quaternion`,weights:`morphTargetInfluences`},Rt={CUBICSPLINE:void 0,LINEAR:p,STEP:Fe},zt={OPAQUE:`OPAQUE`,MASK:`MASK`,BLEND:`BLEND`};function Bt(e){return e.DefaultMaterial===void 0&&(e.DefaultMaterial=new ke({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),e.DefaultMaterial}function q(e,t,n){for(let r in n.extensions)e[r]===void 0&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=n.extensions[r])}function J(e,t){t.extras!==void 0&&(typeof t.extras==`object`?Object.assign(e.userData,t.extras):console.warn(`THREE.GLTFLoader: Ignoring primitive type .extras, `+t.extras))}function Vt(e,t,n){let r=!1,i=!1,a=!1;for(let e=0,n=t.length;e0||e.search(/^data\:image\/jpeg/)===0?`image/jpeg`:e.search(/\.webp($|\?)/i)>0||e.search(/^data\:image\/webp/)===0?`image/webp`:`image/png`}var qt=new L,Jt=class{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new ot,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,r=!1,i=-1;typeof navigator<`u`&&navigator.userAgent!==void 0&&(n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,r=navigator.userAgent.indexOf(`Firefox`)>-1,i=r?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>`u`||n||r&&i<98?this.textureLoader=new Ie(this.options.manager):this.textureLoader=new D(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new h(this.options.manager),this.fileLoader.setResponseType(`arraybuffer`),this.options.crossOrigin===`use-credentials`&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let n=this,r=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([n.getDependencies(`scene`),n.getDependencies(`animation`),n.getDependencies(`camera`)])}).then(function(t){let a={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:n,userData:{}};return q(i,a,r),J(a,r),Promise.all(n._invokeAll(function(e){return e.afterRoot&&e.afterRoot(a)})).then(function(){for(let e of a.scenes)e.updateMatrixWorld();e(a)})}).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let n=0,r=t.length;n{let n=this.associations.get(e);n!=null&&this.associations.set(t,n);for(let[n,r]of e.children.entries())i(r,t.children[n])};return i(n,r),r.name+=`_instance_`+ e.uses[t]++,r}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let n=0;n=2&&p.setY(t,u[e*a+1]),a>=3&&p.setZ(t,u[e*a+2]),a>=4&&p.setW(t,u[e*a+3]),a>=5)throw Error(`THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.`)}}return p})}loadTexture(e){let t=this.json,n=this.options,r=t.textures[e].source,i=t.images[r],a=this.textureLoader;if(i.uri){let e=n.manager.getHandler(i.uri);e!==null&&(a=e)}return this.loadTextureImage(e,r,a)}loadTextureImage(e,t,n){let r=this,i=this.json,a=i.textures[e],o=i.images[t],s=(o.uri||o.bufferView)+`:`+a.sampler;if(this.textureCache[s])return this.textureCache[s];let c=this.loadImageSource(t,n).then(function(t){t.flipY=!1,t.name=a.name||o.name||``,t.name===``&&typeof o.uri==`string`&&o.uri.startsWith(`data:image/`)===!1&&(t.name=o.uri);let n=(i.samplers||{})[a.sampler]||{};return t.magFilter=Pt[n.magFilter]||1006,t.minFilter=Pt[n.minFilter]||1008,t.wrapS=Ft[n.wrapS]||1e3,t.wrapT=Ft[n.wrapT]||1e3,r.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[s]=c,c}loadImageSource(e,t){let n=this,r=this.json,i=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(e=>e.clone());let a=r.images[e],o=self.URL||self.webkitURL,s=a.uri||``,c=!1;if(a.bufferView!==void 0)s=n.getDependency(`bufferView`,a.bufferView).then(function(e){c=!0;let t=new Blob([e],{type:a.mimeType});return s=o.createObjectURL(t),s});else if(a.uri===void 0)throw Error(`THREE.GLTFLoader: Image `+e+` is missing URI and bufferView`);let l=Promise.resolve(s).then(function(e){return new Promise(function(n,r){let a=n;t.isImageBitmapLoader===!0&&(a=function(e){let t=new ne(e);t.needsUpdate=!0,n(t)}),t.load(M.resolveURL(e,i.path),a,void 0,r)})}).then(function(e){return c===!0&&o.revokeObjectURL(s),J(e,a),e.userData.mimeType=a.mimeType||Kt(a.uri),e}).catch(function(e){throw console.error(`THREE.GLTFLoader: Couldn't load texture`,s),e});return this.sourceCache[e]=l,l}assignTexture(e,t,n,r){let i=this;return this.getDependency(`texture`,n.index).then(function(a){if(!a)return null;if(n.texCoord!==void 0&&n.texCoord>0&&(a=a.clone(),a.channel=n.texCoord),i.extensions[H.KHR_TEXTURE_TRANSFORM]){let e=n.extensions===void 0?void 0:n.extensions[H.KHR_TEXTURE_TRANSFORM];if(e){let t=i.associations.get(a);a=i.extensions[H.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),i.associations.set(a,t)}}return r!==void 0&&(typeof r==`number`&&(r=r===rt?B:V),`colorSpace`in a?a.colorSpace=r:a.encoding=r===B?rt:it),e[t]=a,a})}assignFinalMaterial(e){let t=e.geometry,n=e.material,r=t.attributes.tangent===void 0,i=t.attributes.color!==void 0,a=t.attributes.normal===void 0;if(e.isPoints){let e=`PointsMaterial:`+n.uuid,t=this.cache.get(e);t||(t=new Pe,me.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){let e=`LineBasicMaterial:`+n.uuid,t=this.cache.get(e);t||(t=new ae,me.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(r||i||a){let e=`ClonedMaterial:`+n.uuid+`:`;r&&(e+=`derivative-tangents:`),i&&(e+=`vertex-colors:`),a&&(e+=`flat-shading:`);let t=this.cache.get(e);t||(t=n.clone(),i&&(t.vertexColors=!0),a&&(t.flatShading=!0),r&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return ke}loadMaterial(e){let t=this,n=this.json,r=this.extensions,i=n.materials[e],a,o={},s=i.extensions||{},c=[];if(s[H.KHR_MATERIALS_UNLIT]){let e=r[H.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),c.push(e.extendParams(o,i,t))}else{let n=i.pbrMetallicRoughness||{};if(o.color=new P(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){let e=n.baseColorFactor;o.color.setRGB(e[0],e[1],e[2],V),o.opacity=e[3]}n.baseColorTexture!==void 0&&c.push(t.assignTexture(o,`map`,n.baseColorTexture,B)),o.metalness=n.metallicFactor===void 0?1:n.metallicFactor,o.roughness=n.roughnessFactor===void 0?1:n.roughnessFactor,n.metallicRoughnessTexture!==void 0&&(c.push(t.assignTexture(o,`metalnessMap`,n.metallicRoughnessTexture)),c.push(t.assignTexture(o,`roughnessMap`,n.metallicRoughnessTexture))),a=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)})))}i.doubleSided===!0&&(o.side=2);let l=i.alphaMode||zt.OPAQUE;if(l===zt.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,l===zt.MASK&&(o.alphaTest=i.alphaCutoff===void 0?.5:i.alphaCutoff)),i.normalTexture!==void 0&&a!==F&&(c.push(t.assignTexture(o,`normalMap`,i.normalTexture)),o.normalScale=new x(1,1),i.normalTexture.scale!==void 0)){let e=i.normalTexture.scale;o.normalScale.set(e,e)}if(i.occlusionTexture!==void 0&&a!==F&&(c.push(t.assignTexture(o,`aoMap`,i.occlusionTexture)),i.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=i.occlusionTexture.strength)),i.emissiveFactor!==void 0&&a!==F){let e=i.emissiveFactor;o.emissive=new P().setRGB(e[0],e[1],e[2],V)}return i.emissiveTexture!==void 0&&a!==F&&c.push(t.assignTexture(o,`emissiveMap`,i.emissiveTexture,B)),Promise.all(c).then(function(){let n=new a(o);return i.name&&(n.name=i.name),J(n,i),t.associations.set(n,{materials:e}),i.extensions&&q(r,n,i),n})}createUniqueName(e){let t=Ne.sanitizeNodeName(e||``);return t in this.nodeNamesUsed?t+`_`+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,n=this.extensions,r=this.primitiveCache;function i(e){return n[H.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(n){return Xt(n,e,t)})}let a=[];for(let n=0,o=e.length;n0&&Ht(d,i),d.name=t.createUniqueName(i.name||`mesh_`+e),J(d,i),u.extensions&&q(r,d,u),t.assignFinalMaterial(d),c.push(d)}for(let n=0,r=c.length;n1?new xe:t.length===1?t[0]:new Ee,o!==t[0])for(let e=0,n=t.length;e{let t=new Map;for(let[e,n]of r.associations)(e instanceof me||e instanceof ne)&&t.set(e,n);return e.traverse(e=>{let n=r.associations.get(e);n!=null&&t.set(e,n)}),t})(i),i})}_createAnimationTracks(e,t,n,r,i){let a=[],o=e.name?e.name:e.uuid,s=[];K[i.path]===K.weights?e.traverse(function(e){e.morphTargetInfluences&&s.push(e.name?e.name:e.uuid)}):s.push(o);let c;switch(K[i.path]){case K.weights:c=ge;break;case K.rotation:c=m;break;case K.position:case K.scale:c=se;break;default:switch(n.itemSize){case 1:c=ge;break;default:c=se;break}break}let l=r.interpolation===void 0?p:Rt[r.interpolation],u=this._getArrayFromAccessor(n);for(let e=0,n=s.length;e{let n={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,n).then(t).catch(r)},n,r)}decodeDracoFile(e,t,n,r){let i={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:r||this.defaultAttributeTypes,useUniqueIDs:!!n};this.decodeGeometry(e,i).then(t)}decodeGeometry(e,t){for(let e in t.attributeTypes){let n=t.attributeTypes[e];n.BYTES_PER_ELEMENT!==void 0&&(t.attributeTypes[e]=n.name)}let n=JSON.stringify(t);if(Zt.has(e)){let t=Zt.get(e);if(t.key===n)return t.promise;if(e.byteLength===0)throw Error(`THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.`)}let r,i=this.workerNextTaskID++,a=e.byteLength,o=this._getWorker(i,a).then(n=>(r=n,new Promise((n,a)=>{r._callbacks[i]={resolve:n,reject:a},r.postMessage({type:`decode`,id:i,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return o.catch(()=>!0).then(()=>{r&&i&&this._releaseTask(r,i)}),Zt.set(e,{key:n,promise:o}),o}_createGeometry(e){let t=new ve;e.index&&t.setIndex(new I(e.index.array,1));for(let n=0;n{n.load(e,t,void 0,r)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e=typeof WebAssembly!=`object`||this.decoderConfig.type===`js`,t=[];return e?t.push(this._loadLibrary(`draco_decoder.js`,`text`)):(t.push(this._loadLibrary(`draco_wasm_wrapper.js`,`text`)),t.push(this._loadLibrary(`draco_decoder.wasm`,`arraybuffer`))),this.decoderPending=Promise.all(t).then(t=>{let n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);let r=$t.toString(),i=[`/* draco decoder */`,n,``,`/* worker */`,r.substring(r.indexOf(`{`)+1,r.lastIndexOf(`}`))].join(` +`);this.workerSourceURL=URL.createObjectURL(new Blob([i]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.lengtht._taskLoad?-1:1});let n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log(`Task load: `,this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{let t=e.draco,o=new t.Decoder,s=new t.DecoderBuffer;s.Init(new Int8Array(r),r.byteLength);try{let e=n(t,o,s,a),r=e.attributes.map(e=>e.array.buffer);e.index&&r.push(e.index.array.buffer),self.postMessage({type:`decode`,id:i.id,geometry:e},r)}catch(e){console.error(e),self.postMessage({type:`error`,id:i.id,error:e.message})}finally{t.destroy(s),t.destroy(o)}});break}};function n(e,t,n,a){let o=a.attributeIDs,s=a.attributeTypes,c,l,u=t.GetEncodedGeometryType(n);if(u===e.TRIANGULAR_MESH)c=new e.Mesh,l=t.DecodeBufferToMesh(n,c);else if(u===e.POINT_CLOUD)c=new e.PointCloud,l=t.DecodeBufferToPointCloud(n,c);else throw Error(`THREE.DRACOLoader: Unexpected geometry type.`);if(!l.ok()||c.ptr===0)throw Error(`THREE.DRACOLoader: Decoding failed: `+l.error_msg());let d={index:null,attributes:[]};for(let n in o){let r=self[s[n]],l,u;if(a.useUniqueIDs)u=o[n],l=t.GetAttributeByUniqueId(c,u);else{if(u=t.GetAttributeId(c,e[o[n]]),u===-1)continue;l=t.GetAttribute(c,u)}d.attributes.push(i(e,t,c,n,r,l))}return u===e.TRIANGULAR_MESH&&(d.index=r(e,t,c)),e.destroy(c),d}function r(e,t,n){let r=n.num_faces()*3,i=r*4,a=e._malloc(i);t.GetTrianglesUInt32Array(n,i,a);let o=new Uint32Array(e.HEAPF32.buffer,a,r).slice();return e._free(a),{array:o,itemSize:1}}function i(e,t,n,r,i,o){let s=o.num_components(),c=n.num_points()*s,l=c*i.BYTES_PER_ELEMENT,u=a(e,i),d=e._malloc(l);t.GetAttributeDataArrayForAllPoints(n,o,u,l,d);let f=new i(e.HEAPF32.buffer,d,c).slice();return e._free(d),{name:r,array:f,itemSize:s}}function a(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}}var en,tn=()=>{if(en)return en;let e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if(typeof WebAssembly!=`object`)return{supported:!1};let n=`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`;WebAssembly.validate(e)&&(n=`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`);let r,i=WebAssembly.instantiate(a(n),{}).then(e=>{r=e.instance,r.exports.__wasm_call_ctors()});function a(e){let n=new Uint8Array(e.length);for(let t=0;t96?r-71:r>64?r-65:r>47?r+4:r>46?63:62}let r=0;for(let i=0;i{n&&n(r),e&&(nn||=new Qt,nn.setDecoderPath(typeof e==`string`?e:rn),r.setDRACOLoader(nn)),t&&r.setMeshoptDecoder(typeof tn==`function`?tn():tn)}}var on=(e,t,n,r)=>i(at,e,an(t,n,r));on.preload=(e,t,n,r)=>i.preload(at,e,an(t,n,r)),on.clear=e=>i.clear(at,e),on.setDecoderPath=e=>{rn=e};var X=t(),Z=r(),sn=1/32,cn=(0,Y.createContext)(null);function ln({children:e}){let t=(0,Y.useRef)(void 0),n=(0,Y.useRef)(0),r=(0,Y.useRef)(0);a((e,i)=>{for(n.current+=i;n.current>=sn;)if(n.current-=sn,r.current++,t.current)for(let e of t.current)e(r.current)});let i=(0,Y.useCallback)(e=>(t.current??=new Set,t.current.add(e),()=>{t.current.delete(e)}),[]),o=(0,Y.useCallback)(()=>r.current,[]),s=(0,Y.useCallback)(()=>n.current/sn,[]),c=(0,Y.useMemo)(()=>({subscribe:i,getTick:o,getTickFraction:s}),[i,o,s]);return(0,Z.jsx)(cn.Provider,{value:c,children:e})}function un(e){let t=(0,X.c)(5),n=(0,Y.useContext)(cn);if(!n)throw Error(`useTick must be used within a TickProvider`);let r=(0,Y.useEffectEvent)(e),i;t[0]!==n||t[1]!==r?(i=()=>n.subscribe(r),t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=[n],t[3]=n,t[4]=a),(0,Y.useEffect)(i,a)}function dn(){let e=(0,Y.useContext)(cn);if(!e)throw Error(`useGetTickFraction must be used within a TickProvider`);return e.getTickFraction}var fn=(0,Y.createContext)(null),pn={didCatch:!1,error:null},mn=class extends Y.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=pn}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(...e){let{error:t}=this.state;t!==null&&(this.props.onReset?.({args:e,reason:`imperative-api`}),this.setState(pn))}componentDidCatch(e,t){this.props.onError?.(e,t)}componentDidUpdate(e,t){let{didCatch:n}=this.state,{resetKeys:r}=this.props;n&&t.error!==null&&hn(e.resetKeys,r)&&(this.props.onReset?.({next:r,prev:e.resetKeys,reason:`keys`}),this.setState(pn))}render(){let{children:e,fallbackRender:t,FallbackComponent:n,fallback:r}=this.props,{didCatch:i,error:a}=this.state,o=e;if(i){let e={error:a,resetErrorBoundary:this.resetErrorBoundary};if(typeof t==`function`)o=t(e);else if(n)o=(0,Y.createElement)(n,e);else if(r!==void 0)o=r;else throw a}return(0,Y.createElement)(fn.Provider,{value:{didCatch:i,error:a,resetErrorBoundary:this.resetErrorBoundary}},o)}};function hn(e=[],t=[]){return e.length!==t.length||e.some((e,n)=>!Object.is(e,t[n]))}function gn(e){let t=new Map,n=new Map,r=e.clone();return _n(e,r,function(e,r){t.set(r,e),n.set(e,r)}),r.traverse(function(e){if(!e.isSkinnedMesh)return;let r=e,i=t.get(e),a=i.skeleton.bones;r.skeleton=i.skeleton.clone(),r.bindMatrix.copy(i.bindMatrix),r.skeleton.bones=a.map(function(e){return n.get(e)}),r.bind(r.skeleton,r.bindMatrix)}),r}function _n(e,t,n){n(e,t);for(let r=0;r{let n=t%o,a=Math.floor(t/o);l.drawImage(e.image,n*r,a*i)});let u=new _e(c);return u.colorSpace=k,u.generateMipmaps=!1,u.minFilter=Ce,u.magFilter=Ce,u.wrapS=z,u.wrapT=z,u.repeat.set(1/o,1/s),{texture:u,columns:o,rows:s,slotCount:a,frameToSlot:t,frameOffsetSeconds:[],totalDurationSeconds:0,lastSlot:-1}}function Dn(e,t){let n=0;e.frameOffsetSeconds=t.map(e=>(n+=e.frameCount*Cn,n)),e.totalDurationSeconds=n}function Q(e,t){let n=e.frameToSlot[t]??0;if(n===e.lastSlot)return;e.lastSlot=n;let r=n%e.columns,i=e.rows-1-Math.floor(n/e.columns);e.texture.offset.set(r/e.columns,i/e.rows)}function On(e,t){let n=e.totalDurationSeconds;if(n<=0)return 0;let r=t;r>n&&(r-=n*Math.floor(r/n));for(let t=0;tBe(t,e)),o=En(await Promise.all(a.map(Qe)),i);return Dn(o,n),wn.set(e,o),o}function An(e){let t=(0,X.c)(17),{animationEnabled:n}=o(),r;t[0]===e?r=t[1]:(r={queryKey:[`ifl`,e],queryFn:()=>Ve(e)},t[0]=e,t[1]=r);let{data:i}=$e(r),a;t[2]===i?a=t[3]:(a=Tn(i),t[2]=i,t[3]=a);let{uniqueNames:s,frameToSlot:c}=a,l;if(t[4]!==e||t[5]!==s){let n;t[7]===e?n=t[8]:(n=t=>Be(t,e),t[7]=e,t[8]=n),l=s.map(n),t[4]=e,t[5]=s,t[6]=l}else l=t[6];let u=Ge(l),d;t[9]!==c||t[10]!==i||t[11]!==e||t[12]!==u?(d=wn.get(e),d||(d=En(u,c),wn.set(e,d)),Dn(d,i),t[9]=c,t[10]=i,t[11]=e,t[12]=u,t[13]=d):d=t[13];let f=d,p;return t[14]!==n||t[15]!==f?(p=e=>{let t=e/32;Q(f,n?On(f,t):0)},t[14]=n,t[15]=f,t[16]=p):p=t[16],un(p),f.texture}var jn={directional:1,ambient:1.5};function Mn(e){e.uniforms.shapeDirectionalFactor={value:jn.directional},e.uniforms.shapeAmbientFactor={value:jn.ambient},e.fragmentShader=e.fragmentShader.replace(`#include `,`#include +uniform float shapeDirectionalFactor; +uniform float shapeAmbientFactor; +`),e.fragmentShader=e.fragmentShader.replace(`#include `,`#include + // Apply shape-specific lighting multipliers + reflectedLight.directDiffuse *= shapeDirectionalFactor; + reflectedLight.indirectDiffuse *= shapeAmbientFactor; +`)}function Nn(e){let t=new Set;return e.bones.forEach((e,n)=>{e.name.match(/^Hulk/i)&&t.add(n)}),t}var Pn=2.1,Fn=.25,In=32/1e3,$=new j,Ln=new j,Rn=new L,zn=new j(0,1,0),Bn=new re().setFromAxisAngle(new j(0,1,0),Math.PI/2),Vn=Bn.clone().invert();function Hn(e,t){let n=Number.isFinite(t)&&t>1e-6?t:4/3,r=Math.max(.01,Math.min(179.99,e))*Math.PI/180;return 2*Math.atan(Math.tan(r/2)/n)*180/Math.PI}function Un(e){e.wrapS=z,e.wrapT=z,e.minFilter=w,e.magFilter=w,e.colorSpace=``,e.flipY=!1,e.needsUpdate=!0}function Wn(e,t){return t.set(e[1],e[2],e[0])}function Gn(e,t){$.crossVectors(e,zn),$.lengthSq()<1e-8&&$.set(-1,0,0),$.normalize(),Ln.crossVectors($,e).normalize(),Rn.set($.x,e.x,Ln.x,0,$.y,e.y,Ln.y,0,$.z,e.z,Ln.z,0,0,0,0,1),t.setFromRotationMatrix(Rn)}function Kn(e,t){if(e.length===0)return null;if(t<=e[0].time)return e[0];if(t>=e[e.length-1].time)return e[e.length-1];let n=0,r=e.length-1;for(;r-n>1;){let i=n+r>>1;e[i].time<=t?n=i:r=i}return e[n]}function qn(e,t,n,r){let i=e.clone(!0),a=t.find(e=>e.name===`Root`);if(a){let e=new Te(i);if(e.clipAction(a).play(),r)for(let n of r){let r=t.find(e=>e.name.toLowerCase()===n.toLowerCase());if(r){let t=e.clipAction(r);t.time=r.duration/2,t.setEffectiveTimeScale(0),t.play()}}e.setTime(0)}i.updateMatrixWorld(!0);let o=null,s=null;return i.traverse(e=>{!o&&e.name===n&&(o=new j,s=new re,e.getWorldPosition(o),e.getWorldQuaternion(s))}),!o||!s?null:{position:o,quaternion:s}}function Jn(e,t){if(t.size===0||!e.attributes.skinIndex)return;let n=e.attributes.skinIndex,r=e.attributes.skinWeight,i=e.index;if(!i)return;let a=Array(n.count).fill(!1);for(let e=0;e.01&&t.has(o)){a[e]=!0;break}}let o=[],s=i.array;for(let e=0;e1){let t=0,n=0,r=0;for(let a of e)t+=i[a*3],n+=i[a*3+1],r+=i[a*3+2];let a=Math.sqrt(t*t+n*n+r*r);a>0&&(t/=a,n/=a,r/=a);for(let a of e)i[a*3]=t,i[a*3+1]=n,i[a*3+2]=r}n.needsUpdate=!0}function Xn(e,t,n=!1,r={}){let i=e.userData?.resource_path,a=new Set(e.userData?.flag_names??[]);if(!i){let t=new N({color:e.color,side:2,reflectivity:0});return ar(t),{material:t}}if(a.has(`IflMaterial`)){let r=or(e,null,a,n,t);if(Array.isArray(r)){let e=r[1];return{material:e,backMaterial:r[0],initialize:(t,n)=>Zn(e,i,t,n)}}return{material:r,initialize:(e,t)=>Zn(r,i,e,t)}}let o=Ye(Ue(i)),s=a.has(`Translucent`);n||s?Je(o,{disableMipmaps:!0,anisotropy:r.anisotropy}):Je(o,{anisotropy:r.anisotropy});let c=or(e,o,a,n,t);return Array.isArray(c)?{material:c[1],backMaterial:c[0]}:{material:c}}async function Zn(e,t,n,r){let i=await kn(`textures/${t}.ifl`);e.map=i.texture,e.needsUpdate=!0;let a=!1,o=n.onBeforeRender;return n.onBeforeRender=function(...e){o?.apply(this,e),!a&&Q(i,On(i,r()))},()=>{a=!0,n.onBeforeRender=o??(()=>{})}}function Qn(e,t,n={}){let r=[],i=t?yn(t):!1,a=null;e.traverse(e=>{!a&&e.skeleton&&(a=e.skeleton)});let o=a?Nn(a):new Set,s=[];e.traverse(e=>{if(!e.isMesh)return;if(e.name.match(/^Hulk/i)||e.material?.name===`Unassigned`){e.visible=!1;return}let t=!!e.userData?.vis_sequence;(e.userData?.vis??1)<.01&&(e.visible=!1),e.geometry&&(Jn(e.geometry,o),Yn(e.geometry));let a=t?1:e.userData?.vis??1;if(Array.isArray(e.material))e.material=e.material.map(t=>{let o=Xn(t,a,i,n);if(o.initialize&&r.push({mesh:e,initialize:o.initialize}),o.backMaterial&&e.parent){let t=e.clone();t.material=o.backMaterial,s.push({parent:e.parent,mesh:t})}return o.material});else if(e.material){let t=Xn(e.material,a,i,n);if(t.initialize&&r.push({mesh:e,initialize:t.initialize}),e.material=t.material,t.backMaterial&&e.parent){let n=e.clone();n.material=t.backMaterial,s.push({parent:e.parent,mesh:n})}}});for(let{parent:e,mesh:t}of s)e.add(t);return r}function $n(e){e.traverse(e=>{if(e.geometry&&e.geometry.dispose(),e.material){let t=Array.isArray(e.material)?e.material:[e.material];for(let e of t)e.dispose()}})}function er(e){switch(e.toLowerCase()){case`player`:return`#00ff88`;case`vehicle`:return`#ff8800`;case`projectile`:return`#ff0044`;case`deployable`:return`#ffcc00`;default:return`#8888ff`}}var tr=d(`GenericShape`);function nr(){let{recording:e}=ze.getState().playback;return e==null?performance.now()/1e3:Re()/1e3}var rr=e=>{Xe(e,Ze),Mn(e)},ir=e=>{Xe(e,Ze)};function ar(e){e.onBeforeCompile=e instanceof N?rr:ir}function or(e,t,n,r,i=1,a=!1){let o=n.has(`Translucent`),s=n.has(`Additive`),c=n.has(`SelfIlluminating`),l=i<1||a;if(c||s){let e=s||o||l,n=new F({map:t,side:2,transparent:e,depthWrite:!e,alphaTest:0,fog:!0,...l&&{opacity:i},...s&&{blending:2}});return ar(n),n}if(r||o){let e={map:t,transparent:l,alphaTest:l?0:.5,...l&&{opacity:i,depthWrite:!1},reflectivity:0},n=new N({...e,side:1,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1}),r=new N({...e,side:0});return ar(n),ar(r),[n,r]}let u=new N({map:t,side:2,reflectivity:0,...l&&{transparent:!0,opacity:i,depthWrite:!1}});return ar(u),u}function sr(e){let t=(0,X.c)(2),n;return t[0]===e?n=t[1]:(n=He(e),t[0]=e,t[1]=n),on(n)}var cr=(0,Y.memo)(function(e){let t=(0,X.c)(35),{material:n,shapeName:r,geometry:i,backGeometry:a,castShadow:o,receiveShadow:s,vis:c,animated:l}=e,u=o===void 0?!1:o,d=s===void 0?!1:s,f=c===void 0?1:c,p=l===void 0?!1:l,m=n.userData.resource_path,h;t[0]===n.userData.flag_names?h=t[1]:(h=n.userData.flag_names?new Set(n.userData.flag_names):dr,t[0]=n.userData.flag_names,t[1]=h);let g=h,_=An(`textures/${m}.ifl`),v;t[2]===r?v=t[3]:(v=r&&yn(r),t[2]=r,t[3]=v);let y=!!v,b;t[4]!==p||t[5]!==g||t[6]!==y||t[7]!==n||t[8]!==_||t[9]!==f?(b=or(n,_,g,y,f,p),t[4]=p,t[5]=g,t[6]=y,t[7]=n,t[8]=_,t[9]=f,t[10]=b):b=t[10];let x=b;if(lr(x),Array.isArray(x)){let e=a||i,n;t[11]===x[0]?n=t[12]:(n=(0,Z.jsx)(`primitive`,{object:x[0],attach:`material`}),t[11]=x[0],t[12]=n);let r;t[13]!==u||t[14]!==d||t[15]!==e||t[16]!==n?(r=(0,Z.jsx)(`mesh`,{geometry:e,castShadow:u,receiveShadow:d,children:n}),t[13]=u,t[14]=d,t[15]=e,t[16]=n,t[17]=r):r=t[17];let o;t[18]===x[1]?o=t[19]:(o=(0,Z.jsx)(`primitive`,{object:x[1],attach:`material`}),t[18]=x[1],t[19]=o);let s;t[20]!==u||t[21]!==i||t[22]!==d||t[23]!==o?(s=(0,Z.jsx)(`mesh`,{geometry:i,castShadow:u,receiveShadow:d,children:o}),t[20]=u,t[21]=i,t[22]=d,t[23]=o,t[24]=s):s=t[24];let c;return t[25]!==r||t[26]!==s?(c=(0,Z.jsxs)(Z.Fragment,{children:[r,s]}),t[25]=r,t[26]=s,t[27]=c):c=t[27],c}let S;t[28]===x?S=t[29]:(S=(0,Z.jsx)(`primitive`,{object:x,attach:`material`}),t[28]=x,t[29]=S);let C;return t[30]!==u||t[31]!==i||t[32]!==d||t[33]!==S?(C=(0,Z.jsx)(`mesh`,{geometry:i,castShadow:u,receiveShadow:d,children:S}),t[30]=u,t[31]=i,t[32]=d,t[33]=S,t[34]=C):C=t[34],C});function lr(e){let t=(0,X.c)(3),n,r;t[0]===e?(n=t[1],r=t[2]):(n=()=>()=>{Array.isArray(e)?e.forEach(ur):e.dispose()},r=[e],t[0]=e,t[1]=n,t[2]=r),(0,Y.useEffect)(n,r)}function ur(e){return e.dispose()}var dr=new Set,fr=(0,Y.memo)(function(e){let t=(0,X.c)(43),{material:n,shapeName:r,geometry:i,backGeometry:a,castShadow:o,receiveShadow:s,vis:c,animated:l}=e,u=o===void 0?!1:o,d=s===void 0?!1:s,f=c===void 0?1:c,p=l===void 0?!1:l,m=n.userData.resource_path,h;t[0]===n.userData.flag_names?h=t[1]:(h=n.userData.flag_names?new Set(n.userData.flag_names):dr,t[0]=n.userData.flag_names,t[1]=h);let g=h;m||tr.warn(`No resource_path found on "%s" — rendering fallback`,r);let _;t[2]===m?_=t[3]:(_=m?Ue(m):We,t[2]=m,t[3]=_);let v=_,y;t[4]===r?y=t[5]:(y=r&&yn(r),t[4]=r,t[5]=y);let b=!!y,x;t[6]===g?x=t[7]:(x=g.has(`Translucent`),t[6]=g,t[7]=x);let S=x,C=qe(),w;t[8]!==C||t[9]!==b||t[10]!==S?(w=e=>b||S?Je(e,{disableMipmaps:!0,anisotropy:C}):Je(e,{anisotropy:C}),t[8]=C,t[9]=b,t[10]=S,t[11]=w):w=t[11];let T=Ge(v,w),E;t[12]!==p||t[13]!==g||t[14]!==b||t[15]!==n||t[16]!==T||t[17]!==f?(E=or(n,T,g,b,f,p),t[12]=p,t[13]=g,t[14]=b,t[15]=n,t[16]=T,t[17]=f,t[18]=E):E=t[18];let D=E;if(lr(D),Array.isArray(D)){let e=a||i,n;t[19]===D[0]?n=t[20]:(n=(0,Z.jsx)(`primitive`,{object:D[0],attach:`material`}),t[19]=D[0],t[20]=n);let r;t[21]!==u||t[22]!==d||t[23]!==e||t[24]!==n?(r=(0,Z.jsx)(`mesh`,{geometry:e,castShadow:u,receiveShadow:d,children:n}),t[21]=u,t[22]=d,t[23]=e,t[24]=n,t[25]=r):r=t[25];let o;t[26]===D[1]?o=t[27]:(o=(0,Z.jsx)(`primitive`,{object:D[1],attach:`material`}),t[26]=D[1],t[27]=o);let s;t[28]!==u||t[29]!==i||t[30]!==d||t[31]!==o?(s=(0,Z.jsx)(`mesh`,{geometry:i,castShadow:u,receiveShadow:d,children:o}),t[28]=u,t[29]=i,t[30]=d,t[31]=o,t[32]=s):s=t[32];let c;return t[33]!==r||t[34]!==s?(c=(0,Z.jsxs)(Z.Fragment,{children:[r,s]}),t[33]=r,t[34]=s,t[35]=c):c=t[35],c}let O;t[36]===D?O=t[37]:(O=(0,Z.jsx)(`primitive`,{object:D,attach:`material`}),t[36]=D,t[37]=O);let k;return t[38]!==u||t[39]!==i||t[40]!==d||t[41]!==O?(k=(0,Z.jsx)(`mesh`,{geometry:i,castShadow:u,receiveShadow:d,children:O}),t[38]=u,t[39]=i,t[40]=d,t[41]=O,t[42]=k):k=t[42],k});(0,Y.memo)(function(e){let t=(0,X.c)(18),{material:n,shapeName:r,geometry:i,backGeometry:a,castShadow:o,receiveShadow:s,vis:c,animated:l}=e,u=o===void 0?!1:o,d=s===void 0?!1:s,f=c===void 0?1:c,p=l===void 0?!1:l,m=new Set(n.userData.flag_names??[]).has(`IflMaterial`),h=n.userData.resource_path;if(m&&h){let e;return t[0]!==p||t[1]!==a||t[2]!==u||t[3]!==i||t[4]!==n||t[5]!==d||t[6]!==r||t[7]!==f?(e=(0,Z.jsx)(cr,{material:n,shapeName:r,geometry:i,backGeometry:a,castShadow:u,receiveShadow:d,vis:f,animated:p}),t[0]=p,t[1]=a,t[2]=u,t[3]=i,t[4]=n,t[5]=d,t[6]=r,t[7]=f,t[8]=e):e=t[8],e}else if(n.name){let e;return t[9]!==p||t[10]!==a||t[11]!==u||t[12]!==i||t[13]!==n||t[14]!==d||t[15]!==r||t[16]!==f?(e=(0,Z.jsx)(fr,{material:n,shapeName:r,geometry:i,backGeometry:a,castShadow:u,receiveShadow:d,vis:f,animated:p}),t[9]=p,t[10]=a,t[11]=u,t[12]=i,t[13]=n,t[14]=d,t[15]=r,t[16]=f,t[17]=e):e=t[17],e}else return null});function pr(e){let t=(0,X.c)(9),{color:n,label:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Z.jsx)(`boxGeometry`,{args:[10,10,10]}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,Z.jsx)(`meshStandardMaterial`,{color:n,wireframe:!0}),t[1]=n,t[2]=a);let o;t[3]!==n||t[4]!==r?(o=r?(0,Z.jsx)(Ke,{color:n,children:r}):null,t[3]=n,t[4]=r,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,Z.jsxs)(`mesh`,{children:[i,a,o]}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function mr(e){let t=(0,X.c)(4),{color:n,label:r}=e,{debugMode:i}=s(),a;return t[0]!==n||t[1]!==i||t[2]!==r?(a=i?(0,Z.jsx)(pr,{color:n,label:r}):null,t[0]=n,t[1]=i,t[2]=r,t[3]=a):a=t[3],a}var hr=(0,Y.memo)(function(e){let t=(0,X.c)(15),{loadingColor:n,streamEntity:r,children:i}=e,a=n===void 0?`yellow`:n,{object:o,shapeName:s}=xn();if(!s){let e=`${o?._id}: `,n;return t[0]===e?n=t[1]:(n=(0,Z.jsx)(mr,{color:`orange`,label:e}),t[0]=e,t[1]=n),n}let c=`${o?._id}: ${s}`,l;t[2]===c?l=t[3]:(l=(0,Z.jsx)(mr,{color:`red`,label:c}),t[2]=c,t[3]=l);let u;t[4]===a?u=t[5]:(u=(0,Z.jsx)(pr,{color:a}),t[4]=a,t[5]=u);let d;t[6]===r?d=t[7]:(d=(0,Z.jsx)(_r,{streamEntity:r}),t[6]=r,t[7]=d);let f;t[8]!==i||t[9]!==u||t[10]!==d?(f=(0,Z.jsxs)(Y.Suspense,{fallback:u,children:[d,i]}),t[8]=i,t[9]=u,t[10]=d,t[11]=f):f=t[11];let p;return t[12]!==l||t[13]!==f?(p=(0,Z.jsx)(mn,{fallback:l,children:f}),t[12]=l,t[13]=f,t[14]=p):p=t[14],p}),gr=(0,Y.memo)(function({gltf:e,streamEntity:t}){let{object:n,shapeName:r}=xn(),{debugMode:i}=s(),{animationEnabled:c}=o(),l=Le(e=>e.runtime.runtime),u=qe(),{clonedScene:d,mixer:p,clipsByName:m,visNodesBySequence:h,iflMeshes:g}=(0,Y.useMemo)(()=>{let t=gn(e.scene),n=[];t.traverse(e=>{if(!e.isMesh||!e.material)return;let t=Array.isArray(e.material)?e.material[0]:e.material;if(!t?.userData)return;let r=new Set(t.userData.flag_names??[]),i=t.userData.resource_path;if(r.has(`IflMaterial`)&&i){let t=e.userData,r=t?.ifl_sequence?String(t.ifl_sequence).toLowerCase():void 0,a=t?.ifl_duration?Number(t.ifl_duration):void 0,o=t?.ifl_sequence?!!t.ifl_cyclic:void 0,s=t?.ifl_tool_begin==null?void 0:Number(t.ifl_tool_begin);n.push({mesh:e,iflPath:`textures/${i}.ifl`,hasVisSequence:!!t?.vis_sequence,iflSequence:r,iflDuration:a,iflCyclic:o,iflToolBegin:s})}}),Qn(t,r??void 0,{anisotropy:u});for(let{mesh:e,hasVisSequence:t}of n)t||(e.visible=!0);let i=new Map;t.traverse(e=>{if(!e.isMesh)return;let t=e.userData;if(!t)return;let n=t.vis_keyframes,r=t.vis_duration,a=(t.vis_sequence??``).toLowerCase();if(!a||!Array.isArray(n)||n.length<=1||!r||r<=0)return;let o=i.get(a);o||(o=[],i.set(a,o)),o.push({mesh:e,keyframes:n,duration:r,cyclic:!!t.vis_cyclic})});let a=new Map;for(let t of e.animations)a.set(t.name.toLowerCase(),t);return{clonedScene:t,mixer:a.size>0?new Te(t):null,clipsByName:a,visNodesBySequence:i,iflMeshes:n}},[e,u]);(0,Y.useEffect)(()=>()=>{$n(d),p?.uncacheRoot(d)},[d,p]);let _=(0,Y.useRef)(new Map),v=(0,Y.useRef)(new Map),y=(0,Y.useRef)([]),b=(0,Y.useRef)(0),x=(0,Y.useRef)(c);x.current=c;let S=(0,Y.useRef)(null),C=(0,Y.useRef)(t);C.current=t;let w=(0,Y.useRef)(null),T=(0,Y.useRef)(null),E=(0,Y.useRef)(void 0);(0,Y.useEffect)(()=>{y.current=[],v.current.clear();for(let e of g)kn(e.iflPath).then(t=>{let n=Array.isArray(e.mesh.material)?e.mesh.material[0]:e.mesh.material;n&&(n.map=t.texture,n.needsUpdate=!0);let r={atlas:t,sequenceName:e.iflSequence,sequenceDuration:e.iflDuration,cyclic:e.iflCyclic,toolBegin:e.iflToolBegin};y.current.push(r),v.current.set(e.mesh,t)}).catch(t=>{tr.warn(`Failed to load IFL atlas for %s: %o`,e.iflPath,t)})},[g]);let{seqCyclicByName:D,seqBlendByName:O}=(0,Y.useMemo)(()=>{let t=new Map,n=new Map,r=e.scene.userData?.dts_sequence_names,i=e.scene.userData?.dts_sequence_cyclic,a=e.scene.userData?.dts_sequence_blend;if(typeof r==`string`)try{let e=JSON.parse(r),o=typeof i==`string`?JSON.parse(i):[],s=typeof a==`string`?JSON.parse(a):[];for(let r=0;r{let e=_.current,t=C.current==null;function r(e){if(e.mesh.visible=!0,e.mesh.material?.isMeshStandardMaterial){let t=e.mesh.material,n=Xn(t,e.mesh.userData?.vis??0);e.mesh.material=n.material}e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.transparent=!0,e.mesh.material.depthWrite=!1);let t=v.current.get(e.mesh);t&&e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.map=t.texture,e.mesh.material.needsUpdate=!0)}function i(t,n){let i=n.toLowerCase();a(t);let o=m.get(i),s=h.get(i),c={sequence:i,startTime:nr()};if(o&&p){let e=p.clipAction(o);D.get(i)??!0?e.setLoop(f,1/0):(e.setLoop(A,1),e.clampWhenFinished=!0),O.has(i)&&(e.blendMode=be),e.reset().play(),c.action=e}if(s){for(let e of s)r(e);c.visNodes=s}e.set(t,c)}function a(t){let n=e.get(t);if(n){if(n.action&&n.action.stop(),n.visNodes)for(let e of n.visNodes)e.mesh.visible=!1,e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.opacity=e.keyframes[0]);e.delete(t)}}if(w.current=i,T.current=a,!t)return()=>{w.current=null,T.current=null,E.current=void 0;for(let t of[...e.keys()])a(t)};let o=[];l&&(o.push(l.$.onMethodCalled(`ShapeBase`,`playThread`,(e,t,r)=>{e._id===n?._id&&i(Number(t),String(r))})),o.push(l.$.onMethodCalled(`ShapeBase`,`stopThread`,(e,t)=>{e._id===n?._id&&a(Number(t))})),o.push(l.$.onMethodCalled(`ShapeBase`,`pauseThread`,(t,r)=>{if(t._id!==n?._id)return;let i=e.get(Number(r));i?.action&&(i.action.paused=!0)})));for(let[e,t]of[[0,`power`],[1,`ambient`]])(m.has(t)||h.has(t))&&i(e,t);if(p&&m.has(`wheel0`)){let e=[];for(let t=0;t<6;t++){let n={rotation:0},r=m.get(`wheel${t}`);if(r){let e=p.clipAction(r);e.setLoop(A,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),n.wheelAction=e}let i=m.get(`spring${t}`);if(i){let e=p.clipAction(i);e.setLoop(A,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),e.time=0,n.springAction=e}let a=m.get(`turn${t}`);if(a){let e=p.clipAction(a);e.setLoop(A,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),e.time=a.duration*.5,n.turnAction=e}e.push(n)}S.current=e}else S.current=null;return()=>{o.forEach(e=>e()),w.current=null,T.current=null,E.current=void 0,S.current=null;for(let t of[...e.keys()])a(t)}},[p,m,h,D,O,n,l]);let k=(0,Y.useMemo)(()=>{let t=e.scene.userData?.dts_sequence_names;if(typeof t==`string`)try{return JSON.parse(t).map(e=>e.toLowerCase())}catch{}return e.animations.map(e=>e.name.toLowerCase())},[e]);return a((e,t)=>{let n=_.current,r=C.current!=null,i=ze.getState().playback,a=r?i.status===`playing`?t*i.rate:0:t,o=C.current?.threads,s=E.current;if(o!==s){let e=w.current,t=T.current;if(e&&t){E.current=o;let r=[];if(o)for(let e of o)r[e.index]=e;let i=[];if(s)for(let e of s)i[e.index]=e;let a=Math.max(r.length,i.length);for(let o=0;o0){b.current+=a;for(let e of u){if(!c){Q(e.atlas,0);continue}if(e.sequenceName&&e.sequenceDuration){let t=0;for(let[,r]of n)if(r.sequence===e.sequenceName){let n=nr()-r.startTime,i=e.sequenceDuration;t=(e.cyclic?n/i%1:Math.min(n/i,1))*i+(e.toolBegin??0);break}Q(e.atlas,On(e.atlas,t))}else Q(e.atlas,On(e.atlas,b.current))}}}),(0,Z.jsxs)(`group`,{rotation:[0,Math.PI/2,0],children:[(0,Z.jsx)(`primitive`,{object:d}),i?(0,Z.jsxs)(Ke,{children:[n?._id,`: `,r]}):null]})});function _r(e){let t=(0,X.c)(3),{streamEntity:n}=e,{shapeName:r}=xn(),i=sr(r),a;return t[0]!==i||t[1]!==n?(a=(0,Z.jsx)(gr,{gltf:i,streamEntity:n}),t[0]=i,t[1]=n,t[2]=a):a=t[2],a}export{mn as C,on as D,un as E,gn as S,dn as T,Wn as _,Pn as a,Q as b,Vn as c,Kn as d,qn as f,Hn as g,Un as h,Fn as i,$n as l,Gn as m,hr as n,In as o,Qn as p,sr as r,Bn as s,pr as t,er as u,On as v,ln as w,Sn as x,kn as y}; \ No newline at end of file diff --git a/docs/assets/Html-BfjRWIZg.js b/docs/assets/Html-DTt-Asp4.js similarity index 98% rename from docs/assets/Html-BfjRWIZg.js rename to docs/assets/Html-DTt-Asp4.js index f73062a0..308f5581 100644 --- a/docs/assets/Html-BfjRWIZg.js +++ b/docs/assets/Html-DTt-Asp4.js @@ -1,4 +1,4 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{r as t}from"./jsx-runtime-BpGWiA-R.js";import{i as n,o as r}from"./react-three-fiber.esm-CgPHUpXo.js";import{Ht as i,Ut as a,ht as o,mt as s}from"./three.module-07hRbor4.js";import{dt as c}from"./index-B1XI52_L.js";import{t as l}from"./extends-COZGby3T.js";var u=e(t()),d=e(c()),f=new a,p=new a,m=new a,h=new i;function ee(e,t,n){let r=f.setFromMatrixPosition(e.matrixWorld);r.project(t);let i=n.width/2,a=n.height/2;return[r.x*i+i,-(r.y*a)+a]}function te(e,t){let n=f.setFromMatrixPosition(e.matrixWorld),r=p.setFromMatrixPosition(t.matrixWorld),i=n.sub(r),a=t.getWorldDirection(m);return i.angleTo(a)>Math.PI/2}function g(e,t,n,r){let i=f.setFromMatrixPosition(e.matrixWorld),a=i.clone();a.project(t),h.set(a.x,a.y),n.setFromCamera(h,t);let o=n.intersectObjects(r,!0);if(o.length){let e=o[0].distance;return i.distanceTo(n.ray.origin)Math.abs(e)<1e-10?0:e;function b(e,t,n=``){let r=`matrix3d(`;for(let n=0;n!==16;n++)r+=y(t[n]*e.elements[n])+(n===15?`)`:`,`);return n+r}var x=(e=>t=>b(t,e))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),S=(e=>(t,n)=>b(t,e(n),`translate(-50%,-50%)`))(e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1]);function ne(e){return e&&typeof e==`object`&&`current`in e}var C=u.forwardRef(({children:e,eps:t=.001,style:i,className:o,prepend:s,center:c,fullscreen:f,portal:p,distanceFactor:m,sprite:h=!1,transform:b=!1,occlude:C,onOcclude:w,castShadow:re,receiveShadow:ie,material:ae,geometry:T,zIndexRange:E=[16777271,0],calculatePosition:D=ee,as:O=`div`,wrapperClass:k,pointerEvents:A=`auto`,...j},M)=>{let{gl:N,camera:P,scene:F,size:I,raycaster:L,events:R,viewport:z}=r(),[B]=u.useState(()=>document.createElement(O)),V=u.useRef(null),H=u.useRef(null),U=u.useRef(0),W=u.useRef([0,0]),G=u.useRef(null),K=u.useRef(null),q=p?.current||R.connected||N.domElement.parentNode,J=u.useRef(null),Y=u.useRef(!1),X=u.useMemo(()=>C&&C!==`blending`||Array.isArray(C)&&C.length&&ne(C[0]),[C]);u.useLayoutEffect(()=>{let e=N.domElement;C&&C===`blending`?(e.style.zIndex=`${Math.floor(E[0]/2)}`,e.style.position=`absolute`,e.style.pointerEvents=`none`):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)},[C]),u.useLayoutEffect(()=>{if(H.current){let e=V.current=d.createRoot(B);if(F.updateMatrixWorld(),b)B.style.cssText=`position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;`;else{let e=D(H.current,P,I);B.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return q&&(s?q.prepend(B):q.appendChild(B)),()=>{q&&q.removeChild(B),e.unmount()}}},[q,b]),u.useLayoutEffect(()=>{k&&(B.className=k)},[k]);let Z=u.useMemo(()=>b?{position:`absolute`,top:0,left:0,width:I.width,height:I.height,transformStyle:`preserve-3d`,pointerEvents:`none`}:{position:`absolute`,transform:c?`translate3d(-50%,-50%,0)`:`none`,...f&&{top:-I.height/2,left:-I.width/2,width:I.width,height:I.height},...i},[i,c,f,I,b]),oe=u.useMemo(()=>({position:`absolute`,pointerEvents:A}),[A]);u.useLayoutEffect(()=>{if(Y.current=!1,b){var t;(t=V.current)==null||t.render(u.createElement(`div`,{ref:G,style:Z},u.createElement(`div`,{ref:K,style:oe},u.createElement(`div`,{ref:M,className:o,style:i,children:e}))))}else{var n;(n=V.current)==null||n.render(u.createElement(`div`,{ref:M,style:Z,className:o,children:e}))}});let Q=u.useRef(!0);n(e=>{if(H.current){P.updateMatrixWorld(),H.current.updateWorldMatrix(!0,!1);let e=b?W.current:D(H.current,P,I);if(b||Math.abs(U.current-P.zoom)>t||Math.abs(W.current[0]-e[0])>t||Math.abs(W.current[1]-e[1])>t){let t=te(H.current,P),n=!1;X&&(Array.isArray(C)?n=C.map(e=>e.current):C!==`blending`&&(n=[F]));let r=Q.current;n?Q.current=g(H.current,P,L,n)&&!t:Q.current=!t,r!==Q.current&&(w?w(!Q.current):B.style.display=Q.current?`block`:`none`);let i=Math.floor(E[0]/2),a=C?X?[E[0],i]:[i-1,0]:E;if(B.style.zIndex=`${v(H.current,P,a)}`,b){let[e,t]=[I.width/2,I.height/2],n=P.projectionMatrix.elements[5]*t,{isOrthographicCamera:r,top:i,left:a,bottom:o,right:s}=P,c=x(P.matrixWorldInverse),l=r?`scale(${n})translate(${y(-(s+a)/2)}px,${y((i+o)/2)}px)`:`translateZ(${n}px)`,u=H.current.matrixWorld;h&&(u=P.matrixWorldInverse.clone().transpose().copyPosition(u).scale(H.current.scale),u.elements[3]=u.elements[7]=u.elements[11]=0,u.elements[15]=1),B.style.width=I.width+`px`,B.style.height=I.height+`px`,B.style.perspective=r?``:`${n}px`,G.current&&K.current&&(G.current.style.transform=`${l}${c}translate(${e}px,${t}px)`,K.current.style.transform=S(u,1/((m||10)/400)))}else{let t=m===void 0?1:_(H.current,P)*m;B.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}W.current=e,U.current=P.zoom}}if(!X&&J.current&&!Y.current)if(b){if(G.current){let e=G.current.children[0];if(e!=null&&e.clientWidth&&e!=null&&e.clientHeight){let{isOrthographicCamera:t}=P;if(t||T)j.scale&&(Array.isArray(j.scale)?j.scale instanceof a?J.current.scale.copy(j.scale.clone().divideScalar(1)):J.current.scale.set(1/j.scale[0],1/j.scale[1],1/j.scale[2]):J.current.scale.setScalar(1/j.scale));else{let t=(m||10)/400,n=e.clientWidth*t,r=e.clientHeight*t;J.current.scale.set(n,r,1)}Y.current=!0}}}else{let t=B.children[0];if(t!=null&&t.clientWidth&&t!=null&&t.clientHeight){let e=1/z.factor,n=t.clientWidth*e,r=t.clientHeight*e;J.current.scale.set(n,r,1),Y.current=!0}J.current.lookAt(e.camera.position)}});let $=u.useMemo(()=>({vertexShader:b?void 0:` +import{r as e}from"./chunk-DECur_0Z.js";import{r as t}from"./jsx-runtime-BpGWiA-R.js";import{i as n,o as r}from"./react-three-fiber.esm-CgPHUpXo.js";import{Ht as i,Ut as a,ht as o,mt as s}from"./three.module-07hRbor4.js";import{dt as c}from"./index-DfaykQpF.js";import{t as l}from"./extends-COZGby3T.js";var u=e(t()),d=e(c()),f=new a,p=new a,m=new a,h=new i;function ee(e,t,n){let r=f.setFromMatrixPosition(e.matrixWorld);r.project(t);let i=n.width/2,a=n.height/2;return[r.x*i+i,-(r.y*a)+a]}function te(e,t){let n=f.setFromMatrixPosition(e.matrixWorld),r=p.setFromMatrixPosition(t.matrixWorld),i=n.sub(r),a=t.getWorldDirection(m);return i.angleTo(a)>Math.PI/2}function g(e,t,n,r){let i=f.setFromMatrixPosition(e.matrixWorld),a=i.clone();a.project(t),h.set(a.x,a.y),n.setFromCamera(h,t);let o=n.intersectObjects(r,!0);if(o.length){let e=o[0].distance;return i.distanceTo(n.ray.origin)Math.abs(e)<1e-10?0:e;function b(e,t,n=``){let r=`matrix3d(`;for(let n=0;n!==16;n++)r+=y(t[n]*e.elements[n])+(n===15?`)`:`,`);return n+r}var x=(e=>t=>b(t,e))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),S=(e=>(t,n)=>b(t,e(n),`translate(-50%,-50%)`))(e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1]);function ne(e){return e&&typeof e==`object`&&`current`in e}var C=u.forwardRef(({children:e,eps:t=.001,style:i,className:o,prepend:s,center:c,fullscreen:f,portal:p,distanceFactor:m,sprite:h=!1,transform:b=!1,occlude:C,onOcclude:w,castShadow:re,receiveShadow:ie,material:ae,geometry:T,zIndexRange:E=[16777271,0],calculatePosition:D=ee,as:O=`div`,wrapperClass:k,pointerEvents:A=`auto`,...j},M)=>{let{gl:N,camera:P,scene:F,size:I,raycaster:L,events:R,viewport:z}=r(),[B]=u.useState(()=>document.createElement(O)),V=u.useRef(null),H=u.useRef(null),U=u.useRef(0),W=u.useRef([0,0]),G=u.useRef(null),K=u.useRef(null),q=p?.current||R.connected||N.domElement.parentNode,J=u.useRef(null),Y=u.useRef(!1),X=u.useMemo(()=>C&&C!==`blending`||Array.isArray(C)&&C.length&&ne(C[0]),[C]);u.useLayoutEffect(()=>{let e=N.domElement;C&&C===`blending`?(e.style.zIndex=`${Math.floor(E[0]/2)}`,e.style.position=`absolute`,e.style.pointerEvents=`none`):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)},[C]),u.useLayoutEffect(()=>{if(H.current){let e=V.current=d.createRoot(B);if(F.updateMatrixWorld(),b)B.style.cssText=`position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;`;else{let e=D(H.current,P,I);B.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return q&&(s?q.prepend(B):q.appendChild(B)),()=>{q&&q.removeChild(B),e.unmount()}}},[q,b]),u.useLayoutEffect(()=>{k&&(B.className=k)},[k]);let Z=u.useMemo(()=>b?{position:`absolute`,top:0,left:0,width:I.width,height:I.height,transformStyle:`preserve-3d`,pointerEvents:`none`}:{position:`absolute`,transform:c?`translate3d(-50%,-50%,0)`:`none`,...f&&{top:-I.height/2,left:-I.width/2,width:I.width,height:I.height},...i},[i,c,f,I,b]),oe=u.useMemo(()=>({position:`absolute`,pointerEvents:A}),[A]);u.useLayoutEffect(()=>{if(Y.current=!1,b){var t;(t=V.current)==null||t.render(u.createElement(`div`,{ref:G,style:Z},u.createElement(`div`,{ref:K,style:oe},u.createElement(`div`,{ref:M,className:o,style:i,children:e}))))}else{var n;(n=V.current)==null||n.render(u.createElement(`div`,{ref:M,style:Z,className:o,children:e}))}});let Q=u.useRef(!0);n(e=>{if(H.current){P.updateMatrixWorld(),H.current.updateWorldMatrix(!0,!1);let e=b?W.current:D(H.current,P,I);if(b||Math.abs(U.current-P.zoom)>t||Math.abs(W.current[0]-e[0])>t||Math.abs(W.current[1]-e[1])>t){let t=te(H.current,P),n=!1;X&&(Array.isArray(C)?n=C.map(e=>e.current):C!==`blending`&&(n=[F]));let r=Q.current;n?Q.current=g(H.current,P,L,n)&&!t:Q.current=!t,r!==Q.current&&(w?w(!Q.current):B.style.display=Q.current?`block`:`none`);let i=Math.floor(E[0]/2),a=C?X?[E[0],i]:[i-1,0]:E;if(B.style.zIndex=`${v(H.current,P,a)}`,b){let[e,t]=[I.width/2,I.height/2],n=P.projectionMatrix.elements[5]*t,{isOrthographicCamera:r,top:i,left:a,bottom:o,right:s}=P,c=x(P.matrixWorldInverse),l=r?`scale(${n})translate(${y(-(s+a)/2)}px,${y((i+o)/2)}px)`:`translateZ(${n}px)`,u=H.current.matrixWorld;h&&(u=P.matrixWorldInverse.clone().transpose().copyPosition(u).scale(H.current.scale),u.elements[3]=u.elements[7]=u.elements[11]=0,u.elements[15]=1),B.style.width=I.width+`px`,B.style.height=I.height+`px`,B.style.perspective=r?``:`${n}px`,G.current&&K.current&&(G.current.style.transform=`${l}${c}translate(${e}px,${t}px)`,K.current.style.transform=S(u,1/((m||10)/400)))}else{let t=m===void 0?1:_(H.current,P)*m;B.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}W.current=e,U.current=P.zoom}}if(!X&&J.current&&!Y.current)if(b){if(G.current){let e=G.current.children[0];if(e!=null&&e.clientWidth&&e!=null&&e.clientHeight){let{isOrthographicCamera:t}=P;if(t||T)j.scale&&(Array.isArray(j.scale)?j.scale instanceof a?J.current.scale.copy(j.scale.clone().divideScalar(1)):J.current.scale.set(1/j.scale[0],1/j.scale[1],1/j.scale[2]):J.current.scale.setScalar(1/j.scale));else{let t=(m||10)/400,n=e.clientWidth*t,r=e.clientHeight*t;J.current.scale.set(n,r,1)}Y.current=!0}}}else{let t=B.children[0];if(t!=null&&t.clientWidth&&t!=null&&t.clientHeight){let e=1/z.factor,n=t.clientWidth*e,r=t.clientHeight*e;J.current.scale.set(n,r,1),Y.current=!0}J.current.lookAt(e.camera.position)}});let $=u.useMemo(()=>({vertexShader:b?void 0:` /* This shader is from the THREE's SpriteMaterial. We need to turn the backing plane into a Sprite diff --git a/docs/assets/KeyboardOverlay-D875z9z7.js b/docs/assets/KeyboardOverlay-Du-YZ_-q.js similarity index 99% rename from docs/assets/KeyboardOverlay-D875z9z7.js rename to docs/assets/KeyboardOverlay-Du-YZ_-q.js index dbafbfd0..e00e550d 100644 --- a/docs/assets/KeyboardOverlay-D875z9z7.js +++ b/docs/assets/KeyboardOverlay-Du-YZ_-q.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{r as i}from"./SettingsProvider-CCHVZuSg.js";import{n as a}from"./cameraTourStore-PEzPVGnX.js";import{B as o,D as s,G as c,H as l,J as u,K as d,N as f,O as p,P as m,S as h,T as g,V as _,b as v,d as y,m as b,q as x,x as S}from"./index-B1XI52_L.js";import{n as C,t as w}from"./gr-1PcjgMj0.js";var T=t(),E=e(n(),1);function D(e){return document.addEventListener(`pointerlockchange`,e),()=>document.removeEventListener(`pointerlockchange`,e)}function O(){return document.pointerLockElement!==null}function k(){return(0,E.useSyncExternalStore)(D,O,A)}function A(){return!1}var j={Root:`_Root_88qkf_1`,Column:`_Column_88qkf_13`,Row:`_Row_88qkf_25`,Spacer:`_Spacer_88qkf_31`,Sep:`_Sep_88qkf_35`,Key:`_Key_88qkf_39`,Label:`_Label_88qkf_78`,MultiInput:`_MultiInput_88qkf_120`,Input:`_Input_88qkf_128`,ColumnLabel:`_ColumnLabel_88qkf_161`,PlayPauseIcon:`_PlayPauseIcon_88qkf_170`,MouseIcon:`_MouseIcon_88qkf_174`},M=r();function N(e,t){let n=e[t];return n!=null&&`pressed`in n&&n.pressed}function P(e){let t=(0,T.c)(24),{action:n,input:r,label:i,labelPosition:a,labelSize:o,inputSize:s,size:c,disabled:l,debounce:u}=e,d=a===void 0?`hidden`:a,f=o===void 0?`fill`:o,p=s===void 0?`fill`:s,m=c===void 0?`fill`:c,h=l===void 0?!1:l,g=(0,E.useRef)(void 0),[_,v]=(0,E.useState)(!1),b;t[0]===n?b=t[1]:(b=typeof n==`function`?n:e=>N(e,n),t[0]=n,t[1]=b);let x=y(b),S,C;t[2]!==u||t[3]!==x?(S=()=>{if(u)if(x)clearTimeout(g.current),g.current=void 0,v(!0);else return g.current=setTimeout(()=>{g.current=void 0,v(!1)},u),()=>clearTimeout(g.current)},C=[x,u],t[2]=u,t[3]=x,t[4]=S,t[5]=C):(S=t[4],C=t[5]),(0,E.useEffect)(S,C);let w=u?_:x,D;t[6]!==i||t[7]!==d||t[8]!==f?(D=d===`left`?(0,M.jsx)(`span`,{className:j.Label,"data-size":f,children:i}):null,t[6]=i,t[7]=d,t[8]=f,t[9]=D):D=t[9];let O;t[10]!==r||t[11]!==p?(O=Array.isArray(r)?(0,M.jsx)(`div`,{className:j.MultiInput,"data-size":p,children:r.map(F)}):(0,M.jsx)(`span`,{className:j.Input,"data-size":p,children:r}),t[10]=r,t[11]=p,t[12]=O):O=t[12];let k;t[13]!==i||t[14]!==d||t[15]!==f?(k=d===`right`?(0,M.jsx)(`span`,{className:j.Label,"data-size":f,children:i}):null,t[13]=i,t[14]=d,t[15]=f,t[16]=k):k=t[16];let A;return t[17]!==h||t[18]!==w||t[19]!==m||t[20]!==O||t[21]!==k||t[22]!==D?(A=(0,M.jsxs)(`div`,{className:j.Key,"data-pressed":w,"data-size":m,"data-disabled":h,children:[D,O,k]}),t[17]=h,t[18]=w,t[19]=m,t[20]=O,t[21]=k,t[22]=D,t[23]=A):A=t[23],A}function F(e,t){return(0,M.jsx)(`span`,{className:j.Input,children:e},t)}function I(){let e=(0,T.c)(12),t=k(),[n,r]=(0,E.useState)(!1),i=(0,E.useRef)(!1),a,o;e[0]===t?(a=e[1],o=e[2]):(a=()=>{if(i.current&&!t){r(!0);let e=setTimeout(()=>r(!1),150);return()=>clearTimeout(e)}i.current=t},o=[t],e[0]=t,e[1]=a,e[2]=o),(0,E.useEffect)(a,o);let s=t||n,c;e[3]!==n||e[4]!==s?(c=s?()=>n:`canvasClick`,e[3]=n,e[4]=s,e[5]=c):c=e[5];let l=s?`Unlock mouse`:`Capture mouse`,u;e[6]===s?u=e[7]:(u=s?`Esc`:(0,M.jsx)(v,{className:j.MouseIcon}),e[6]=s,e[7]=u);let d;return e[8]!==c||e[9]!==l||e[10]!==u?(d=(0,M.jsx)(P,{action:c,label:l,input:u,labelPosition:`right`,inputSize:`auto`}),e[8]=c,e[9]=l,e[10]=u,e[11]=d):d=e[11],d}function L(){let e=(0,T.c)(4),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsxs)(`div`,{className:j.Row,children:[(0,M.jsx)(`div`,{className:j.Spacer}),(0,M.jsx)(P,{action:`moveForward`,input:`W`,label:`Forward`}),(0,M.jsx)(`div`,{className:j.Spacer})]}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,M.jsxs)(`div`,{className:j.Column,children:[t,(0,M.jsxs)(`div`,{className:j.Row,children:[(0,M.jsx)(P,{action:`moveLeft`,input:`A`,label:`Strafe left`}),(0,M.jsx)(P,{action:`moveBackward`,input:`S`,label:`Backward`}),(0,M.jsx)(P,{action:`moveRight`,input:`D`,label:`Strafe right`})]})]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`moveUp`,input:`E`,label:(0,M.jsx)(l,{}),labelPosition:`left`,labelSize:`auto`})}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsxs)(M.Fragment,{children:[n,(0,M.jsxs)(`div`,{className:j.Column,children:[r,(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`moveDown`,input:`Q`,label:(0,M.jsx)(_,{}),labelPosition:`left`,labelSize:`auto`})})]})]}),e[3]=i):i=e[3],i}function R(){let e=(0,T.c)(5),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(`div`,{className:j.Spacer}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,M.jsxs)(`div`,{className:j.Row,children:[t,(0,M.jsx)(P,{action:`lookUp`,input:(0,M.jsx)(u,{}),label:`Look up`}),(0,M.jsx)(`div`,{className:j.Spacer})]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,M.jsx)(P,{action:`lookLeft`,input:(0,M.jsx)(d,{}),label:`Look left`}),e[2]=r):r=e[2];let i;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsx)(P,{action:`lookDown`,input:(0,M.jsx)(c,{}),label:`Look down`}),e[3]=i):i=e[3];let a;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,M.jsxs)(`div`,{className:j.Column,children:[n,(0,M.jsxs)(`div`,{className:j.Row,children:[r,i,(0,M.jsx)(P,{action:`lookRight`,input:(0,M.jsx)(x,{}),label:`Look right`})]})]}),e[4]=a):a=e[4],a}function z(){let e=(0,T.c)(8),{speedMultiplier:t}=i(),[n,r]=(0,E.useState)(null),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{r(B);let e=setTimeout(()=>{r(!1)},100);return()=>clearTimeout(e)},e[0]=a):a=e[0];let o;e[1]===t?o=e[2]:(o=[t],e[1]=t,e[2]=o),(0,E.useEffect)(a,o);let s;e[3]===n?s=e[4]:(s=e=>(e.adjustSpeed?.deltaY??0)!==0&&(n??!1),e[3]=n,e[4]=s);let c;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,M.jsx)(S,{className:j.MouseIcon}),e[5]=c):c=e[5];let l;return e[6]===s?l=e[7]:(l=(0,M.jsx)(P,{action:s,debounce:50,label:`Adjust speed`,input:c,labelPosition:`right`,inputSize:`auto`}),e[6]=s,e[7]=l),l}function B(e){return e!=null}function V(){let e=(0,T.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(P,{action:H,input:(0,M.jsx)(o,{className:j.MouseIcon}),label:`Rotate camera`,labelPosition:`right`,inputSize:`auto`}),e[0]=t):t=e[0],t}function H(e){return e.dragLook?.dragging??!1}function U(){let e=(0,T.c)(6),t=f()===`map`,n=m(`Camera`),r=t?n.length:0,i,a;e[0]===r?(i=e[1],a=e[2]):(i=e=>Array.from({length:r},(t,n)=>N(e,`camera${n+1}`)).some(W),a=r===1?`1`:(0,M.jsxs)(M.Fragment,{children:[`1 – `,r]}),e[0]=r,e[1]=i,e[2]=a);let o;return e[3]!==i||e[4]!==a?(o=(0,M.jsx)(P,{action:i,input:a,label:`Select camera`,labelPosition:`right`}),e[3]=i,e[4]=a,e[5]=o):o=e[5],o}function W(e){return e}function G(){let e=(0,T.c)(11),t=k(),n=f()===`map`,r=m(`Camera`),i=n?r.length:0,a,o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,M.jsx)(L,{}),o=(0,M.jsx)(R,{}),e[0]=a,e[1]=o):(a=e[0],o=e[1]);let s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(z,{})}),e[2]=s):s=e[2];let c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[s,(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})})]}),e[3]=c):c=e[3];let l;e[4]===t?l=e[5]:(l=t?null:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(V,{})}),e[4]=t,e[5]=l);let u;e[6]===i?u=e[7]:(u=i>0&&(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(U,{})}),e[6]=i,e[7]=u);let d;return e[8]!==l||e[9]!==u?(d=(0,M.jsxs)(M.Fragment,{children:[a,o,c,(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[l,u]})]}),e[8]=l,e[9]=u,e[10]=d):d=e[10],d}function K(){let e=(0,T.c)(15),t=g(),n=p(),r=h.indexOf(n)+1,i=h.indexOf(n)-1,a=r>=h.length,o=i<0,s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=[`<`,`,`],e[0]=s):s=e[0];let c;e[1]===o?c=e[2]:(c=(0,M.jsx)(P,{action:`decreasePlaybackSpeed`,label:`Slow down`,input:s,labelPosition:`right`,disabled:o}),e[1]=o,e[2]=c);let l;e[3]===t?l=e[4]:(l=(0,M.jsx)(P,{action:`playPause`,label:t?(0,M.jsx)(w,{className:j.PlayPauseIcon}):(0,M.jsx)(C,{className:j.PlayPauseIcon}),input:`Space`,labelPosition:`left`,size:`auto`}),e[3]=t,e[4]=l);let u;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=[`>`,`.`],e[5]=u):u=e[5];let d;e[6]===a?d=e[7]:(d=(0,M.jsx)(P,{action:`increasePlaybackSpeed`,input:u,label:`Speed up`,labelPosition:`left`,disabled:a}),e[6]=a,e[7]=d);let f;e[8]!==c||e[9]!==l||e[10]!==d?(f=(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsxs)(`div`,{className:j.Row,children:[c,l,d]})}),e[8]=c,e[9]=l,e[10]=d,e[11]=f):f=e[11];let m;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})})}),e[12]=m):m=e[12];let _;return e[13]===f?_=e[14]:(_=(0,M.jsxs)(M.Fragment,{children:[f,m]}),e[13]=f,e[14]=_),_}function q(){let e=(0,T.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(M.Fragment,{children:(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsxs)(`div`,{className:j.Row,children:[(0,M.jsx)(P,{action:`nextStop`,label:`Skip to next stop`,input:(0,M.jsx)(v,{className:j.MouseIcon}),labelPosition:`right`}),(0,M.jsx)(P,{action:`exitTour`,label:`Exit tour`,input:`Esc`,labelPosition:`right`})]})})}),e[0]=t):t=e[0],t}function J(){let e=(0,T.c)(23),t=b(),n=k(),r;e[0]===t?r=e[1]:(r=t===`fly`?(0,M.jsx)(L,{}):null,e[0]=t,e[1]=r);let i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsx)(R,{}),e[2]=i):i=e[2];let a;e[3]===t?a=e[4]:(a=t===`fly`?(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(z,{})}):null,e[3]=t,e[4]=a);let o;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})}),e[5]=o):o=e[5];let s;e[6]===a?s=e[7]:(s=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[a,o]}),e[6]=a,e[7]=s);let c;e[8]===n?c=e[9]:(c=n?null:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(V,{})}),e[8]=n,e[9]=c);let l;e[10]!==t||e[11]!==n?(l=t===`follow`&&n?(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`nextPlayer`,label:`Next player`,input:(0,M.jsx)(v,{className:j.MouseIcon}),labelPosition:`right`,inputSize:`auto`})}):null,e[10]=t,e[11]=n,e[12]=l):l=e[12];let u=t===`follow`?`Fly mode`:`Follow mode`,d;e[13]===u?d=e[14]:(d=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`toggleObserverMode`,label:u,input:`Space`,labelPosition:`right`,inputSize:`auto`})}),e[13]=u,e[14]=d);let f;e[15]!==c||e[16]!==l||e[17]!==d?(f=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[c,l,d]}),e[15]=c,e[16]=l,e[17]=d,e[18]=f):f=e[18];let p;return e[19]!==r||e[20]!==s||e[21]!==f?(p=(0,M.jsxs)(M.Fragment,{children:[r,i,s,f]}),e[19]=r,e[20]=s,e[21]=f,e[22]=p):p=e[22],p}function Y(){let e=(0,T.c)(13),t=s(),n=b(),r=a(X),i=t?.source===`demo`,o=t?.source===`live`,c=!t,l=o&&(n===`fly`||n===`follow`),u=c&&!r,d;e[0]===u?d=e[1]:(d=u&&(0,M.jsx)(G,{}),e[0]=u,e[1]=d);let f;e[2]===l?f=e[3]:(f=l&&(0,M.jsx)(J,{}),e[2]=l,e[3]=f);let p;e[4]===i?p=e[5]:(p=i&&(0,M.jsx)(K,{}),e[4]=i,e[5]=p);let m;e[6]===r?m=e[7]:(m=r&&(0,M.jsx)(q,{}),e[6]=r,e[7]=m);let h;return e[8]!==d||e[9]!==f||e[10]!==p||e[11]!==m?(h=(0,M.jsxs)(`div`,{className:j.Root,children:[d,f,p,m]}),e[8]=d,e[9]=f,e[10]=p,e[11]=m,e[12]=h):h=e[12],h}function X(e){return e.animation!==null}export{Y as KeyboardOverlay}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{r as i}from"./SettingsProvider-CCHVZuSg.js";import{n as a}from"./cameraTourStore-PEzPVGnX.js";import{B as o,D as s,G as c,H as l,J as u,K as d,N as f,O as p,P as m,S as h,T as g,V as _,b as v,d as y,m as b,q as x,x as S}from"./index-DfaykQpF.js";import{n as C,t as w}from"./gr-1PcjgMj0.js";var T=t(),E=e(n(),1);function D(e){return document.addEventListener(`pointerlockchange`,e),()=>document.removeEventListener(`pointerlockchange`,e)}function O(){return document.pointerLockElement!==null}function k(){return(0,E.useSyncExternalStore)(D,O,A)}function A(){return!1}var j={Root:`_Root_88qkf_1`,Column:`_Column_88qkf_13`,Row:`_Row_88qkf_25`,Spacer:`_Spacer_88qkf_31`,Sep:`_Sep_88qkf_35`,Key:`_Key_88qkf_39`,Label:`_Label_88qkf_78`,MultiInput:`_MultiInput_88qkf_120`,Input:`_Input_88qkf_128`,ColumnLabel:`_ColumnLabel_88qkf_161`,PlayPauseIcon:`_PlayPauseIcon_88qkf_170`,MouseIcon:`_MouseIcon_88qkf_174`},M=r();function N(e,t){let n=e[t];return n!=null&&`pressed`in n&&n.pressed}function P(e){let t=(0,T.c)(24),{action:n,input:r,label:i,labelPosition:a,labelSize:o,inputSize:s,size:c,disabled:l,debounce:u}=e,d=a===void 0?`hidden`:a,f=o===void 0?`fill`:o,p=s===void 0?`fill`:s,m=c===void 0?`fill`:c,h=l===void 0?!1:l,g=(0,E.useRef)(void 0),[_,v]=(0,E.useState)(!1),b;t[0]===n?b=t[1]:(b=typeof n==`function`?n:e=>N(e,n),t[0]=n,t[1]=b);let x=y(b),S,C;t[2]!==u||t[3]!==x?(S=()=>{if(u)if(x)clearTimeout(g.current),g.current=void 0,v(!0);else return g.current=setTimeout(()=>{g.current=void 0,v(!1)},u),()=>clearTimeout(g.current)},C=[x,u],t[2]=u,t[3]=x,t[4]=S,t[5]=C):(S=t[4],C=t[5]),(0,E.useEffect)(S,C);let w=u?_:x,D;t[6]!==i||t[7]!==d||t[8]!==f?(D=d===`left`?(0,M.jsx)(`span`,{className:j.Label,"data-size":f,children:i}):null,t[6]=i,t[7]=d,t[8]=f,t[9]=D):D=t[9];let O;t[10]!==r||t[11]!==p?(O=Array.isArray(r)?(0,M.jsx)(`div`,{className:j.MultiInput,"data-size":p,children:r.map(F)}):(0,M.jsx)(`span`,{className:j.Input,"data-size":p,children:r}),t[10]=r,t[11]=p,t[12]=O):O=t[12];let k;t[13]!==i||t[14]!==d||t[15]!==f?(k=d===`right`?(0,M.jsx)(`span`,{className:j.Label,"data-size":f,children:i}):null,t[13]=i,t[14]=d,t[15]=f,t[16]=k):k=t[16];let A;return t[17]!==h||t[18]!==w||t[19]!==m||t[20]!==O||t[21]!==k||t[22]!==D?(A=(0,M.jsxs)(`div`,{className:j.Key,"data-pressed":w,"data-size":m,"data-disabled":h,children:[D,O,k]}),t[17]=h,t[18]=w,t[19]=m,t[20]=O,t[21]=k,t[22]=D,t[23]=A):A=t[23],A}function F(e,t){return(0,M.jsx)(`span`,{className:j.Input,children:e},t)}function I(){let e=(0,T.c)(12),t=k(),[n,r]=(0,E.useState)(!1),i=(0,E.useRef)(!1),a,o;e[0]===t?(a=e[1],o=e[2]):(a=()=>{if(i.current&&!t){r(!0);let e=setTimeout(()=>r(!1),150);return()=>clearTimeout(e)}i.current=t},o=[t],e[0]=t,e[1]=a,e[2]=o),(0,E.useEffect)(a,o);let s=t||n,c;e[3]!==n||e[4]!==s?(c=s?()=>n:`canvasClick`,e[3]=n,e[4]=s,e[5]=c):c=e[5];let l=s?`Unlock mouse`:`Capture mouse`,u;e[6]===s?u=e[7]:(u=s?`Esc`:(0,M.jsx)(v,{className:j.MouseIcon}),e[6]=s,e[7]=u);let d;return e[8]!==c||e[9]!==l||e[10]!==u?(d=(0,M.jsx)(P,{action:c,label:l,input:u,labelPosition:`right`,inputSize:`auto`}),e[8]=c,e[9]=l,e[10]=u,e[11]=d):d=e[11],d}function L(){let e=(0,T.c)(4),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsxs)(`div`,{className:j.Row,children:[(0,M.jsx)(`div`,{className:j.Spacer}),(0,M.jsx)(P,{action:`moveForward`,input:`W`,label:`Forward`}),(0,M.jsx)(`div`,{className:j.Spacer})]}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,M.jsxs)(`div`,{className:j.Column,children:[t,(0,M.jsxs)(`div`,{className:j.Row,children:[(0,M.jsx)(P,{action:`moveLeft`,input:`A`,label:`Strafe left`}),(0,M.jsx)(P,{action:`moveBackward`,input:`S`,label:`Backward`}),(0,M.jsx)(P,{action:`moveRight`,input:`D`,label:`Strafe right`})]})]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`moveUp`,input:`E`,label:(0,M.jsx)(l,{}),labelPosition:`left`,labelSize:`auto`})}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsxs)(M.Fragment,{children:[n,(0,M.jsxs)(`div`,{className:j.Column,children:[r,(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`moveDown`,input:`Q`,label:(0,M.jsx)(_,{}),labelPosition:`left`,labelSize:`auto`})})]})]}),e[3]=i):i=e[3],i}function R(){let e=(0,T.c)(5),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(`div`,{className:j.Spacer}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,M.jsxs)(`div`,{className:j.Row,children:[t,(0,M.jsx)(P,{action:`lookUp`,input:(0,M.jsx)(u,{}),label:`Look up`}),(0,M.jsx)(`div`,{className:j.Spacer})]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,M.jsx)(P,{action:`lookLeft`,input:(0,M.jsx)(d,{}),label:`Look left`}),e[2]=r):r=e[2];let i;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsx)(P,{action:`lookDown`,input:(0,M.jsx)(c,{}),label:`Look down`}),e[3]=i):i=e[3];let a;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,M.jsxs)(`div`,{className:j.Column,children:[n,(0,M.jsxs)(`div`,{className:j.Row,children:[r,i,(0,M.jsx)(P,{action:`lookRight`,input:(0,M.jsx)(x,{}),label:`Look right`})]})]}),e[4]=a):a=e[4],a}function z(){let e=(0,T.c)(8),{speedMultiplier:t}=i(),[n,r]=(0,E.useState)(null),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{r(B);let e=setTimeout(()=>{r(!1)},100);return()=>clearTimeout(e)},e[0]=a):a=e[0];let o;e[1]===t?o=e[2]:(o=[t],e[1]=t,e[2]=o),(0,E.useEffect)(a,o);let s;e[3]===n?s=e[4]:(s=e=>(e.adjustSpeed?.deltaY??0)!==0&&(n??!1),e[3]=n,e[4]=s);let c;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,M.jsx)(S,{className:j.MouseIcon}),e[5]=c):c=e[5];let l;return e[6]===s?l=e[7]:(l=(0,M.jsx)(P,{action:s,debounce:50,label:`Adjust speed`,input:c,labelPosition:`right`,inputSize:`auto`}),e[6]=s,e[7]=l),l}function B(e){return e!=null}function V(){let e=(0,T.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(P,{action:H,input:(0,M.jsx)(o,{className:j.MouseIcon}),label:`Rotate camera`,labelPosition:`right`,inputSize:`auto`}),e[0]=t):t=e[0],t}function H(e){return e.dragLook?.dragging??!1}function U(){let e=(0,T.c)(6),t=f()===`map`,n=m(`Camera`),r=t?n.length:0,i,a;e[0]===r?(i=e[1],a=e[2]):(i=e=>Array.from({length:r},(t,n)=>N(e,`camera${n+1}`)).some(W),a=r===1?`1`:(0,M.jsxs)(M.Fragment,{children:[`1 – `,r]}),e[0]=r,e[1]=i,e[2]=a);let o;return e[3]!==i||e[4]!==a?(o=(0,M.jsx)(P,{action:i,input:a,label:`Select camera`,labelPosition:`right`}),e[3]=i,e[4]=a,e[5]=o):o=e[5],o}function W(e){return e}function G(){let e=(0,T.c)(11),t=k(),n=f()===`map`,r=m(`Camera`),i=n?r.length:0,a,o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,M.jsx)(L,{}),o=(0,M.jsx)(R,{}),e[0]=a,e[1]=o):(a=e[0],o=e[1]);let s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(z,{})}),e[2]=s):s=e[2];let c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[s,(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})})]}),e[3]=c):c=e[3];let l;e[4]===t?l=e[5]:(l=t?null:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(V,{})}),e[4]=t,e[5]=l);let u;e[6]===i?u=e[7]:(u=i>0&&(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(U,{})}),e[6]=i,e[7]=u);let d;return e[8]!==l||e[9]!==u?(d=(0,M.jsxs)(M.Fragment,{children:[a,o,c,(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[l,u]})]}),e[8]=l,e[9]=u,e[10]=d):d=e[10],d}function K(){let e=(0,T.c)(15),t=g(),n=p(),r=h.indexOf(n)+1,i=h.indexOf(n)-1,a=r>=h.length,o=i<0,s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=[`<`,`,`],e[0]=s):s=e[0];let c;e[1]===o?c=e[2]:(c=(0,M.jsx)(P,{action:`decreasePlaybackSpeed`,label:`Slow down`,input:s,labelPosition:`right`,disabled:o}),e[1]=o,e[2]=c);let l;e[3]===t?l=e[4]:(l=(0,M.jsx)(P,{action:`playPause`,label:t?(0,M.jsx)(w,{className:j.PlayPauseIcon}):(0,M.jsx)(C,{className:j.PlayPauseIcon}),input:`Space`,labelPosition:`left`,size:`auto`}),e[3]=t,e[4]=l);let u;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=[`>`,`.`],e[5]=u):u=e[5];let d;e[6]===a?d=e[7]:(d=(0,M.jsx)(P,{action:`increasePlaybackSpeed`,input:u,label:`Speed up`,labelPosition:`left`,disabled:a}),e[6]=a,e[7]=d);let f;e[8]!==c||e[9]!==l||e[10]!==d?(f=(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsxs)(`div`,{className:j.Row,children:[c,l,d]})}),e[8]=c,e[9]=l,e[10]=d,e[11]=f):f=e[11];let m;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})})}),e[12]=m):m=e[12];let _;return e[13]===f?_=e[14]:(_=(0,M.jsxs)(M.Fragment,{children:[f,m]}),e[13]=f,e[14]=_),_}function q(){let e=(0,T.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(M.Fragment,{children:(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsxs)(`div`,{className:j.Row,children:[(0,M.jsx)(P,{action:`nextStop`,label:`Skip to next stop`,input:(0,M.jsx)(v,{className:j.MouseIcon}),labelPosition:`right`}),(0,M.jsx)(P,{action:`exitTour`,label:`Exit tour`,input:`Esc`,labelPosition:`right`})]})})}),e[0]=t):t=e[0],t}function J(){let e=(0,T.c)(23),t=b(),n=k(),r;e[0]===t?r=e[1]:(r=t===`fly`?(0,M.jsx)(L,{}):null,e[0]=t,e[1]=r);let i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsx)(R,{}),e[2]=i):i=e[2];let a;e[3]===t?a=e[4]:(a=t===`fly`?(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(z,{})}):null,e[3]=t,e[4]=a);let o;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})}),e[5]=o):o=e[5];let s;e[6]===a?s=e[7]:(s=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[a,o]}),e[6]=a,e[7]=s);let c;e[8]===n?c=e[9]:(c=n?null:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(V,{})}),e[8]=n,e[9]=c);let l;e[10]!==t||e[11]!==n?(l=t===`follow`&&n?(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`nextPlayer`,label:`Next player`,input:(0,M.jsx)(v,{className:j.MouseIcon}),labelPosition:`right`,inputSize:`auto`})}):null,e[10]=t,e[11]=n,e[12]=l):l=e[12];let u=t===`follow`?`Fly mode`:`Follow mode`,d;e[13]===u?d=e[14]:(d=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`toggleObserverMode`,label:u,input:`Space`,labelPosition:`right`,inputSize:`auto`})}),e[13]=u,e[14]=d);let f;e[15]!==c||e[16]!==l||e[17]!==d?(f=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[c,l,d]}),e[15]=c,e[16]=l,e[17]=d,e[18]=f):f=e[18];let p;return e[19]!==r||e[20]!==s||e[21]!==f?(p=(0,M.jsxs)(M.Fragment,{children:[r,i,s,f]}),e[19]=r,e[20]=s,e[21]=f,e[22]=p):p=e[22],p}function Y(){let e=(0,T.c)(13),t=s(),n=b(),r=a(X),i=t?.source===`demo`,o=t?.source===`live`,c=!t,l=o&&(n===`fly`||n===`follow`),u=c&&!r,d;e[0]===u?d=e[1]:(d=u&&(0,M.jsx)(G,{}),e[0]=u,e[1]=d);let f;e[2]===l?f=e[3]:(f=l&&(0,M.jsx)(J,{}),e[2]=l,e[3]=f);let p;e[4]===i?p=e[5]:(p=i&&(0,M.jsx)(K,{}),e[4]=i,e[5]=p);let m;e[6]===r?m=e[7]:(m=r&&(0,M.jsx)(q,{}),e[6]=r,e[7]=m);let h;return e[8]!==d||e[9]!==f||e[10]!==p||e[11]!==m?(h=(0,M.jsxs)(`div`,{className:j.Root,children:[d,f,p,m]}),e[8]=d,e[9]=f,e[10]=p,e[11]=m,e[12]=h):h=e[12],h}function X(e){return e.animation!==null}export{Y as KeyboardOverlay}; \ No newline at end of file diff --git a/docs/assets/MapInfoDialog-BlS8j0JO.js b/docs/assets/MapInfoDialog-C3Dk90R7.js similarity index 98% rename from docs/assets/MapInfoDialog-BlS8j0JO.js rename to docs/assets/MapInfoDialog-C3Dk90R7.js index 67132721..7a844527 100644 --- a/docs/assets/MapInfoDialog-BlS8j0JO.js +++ b/docs/assets/MapInfoDialog-C3Dk90R7.js @@ -1,4 +1,4 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{t as i}from"./useQuery-FY4YqwDi.js";import{c as a}from"./manifest-CirqV3Ls.js";import{U as o,W as s}from"./index-B1XI52_L.js";import{i as c,l,n as u}from"./loaders-CIpiZadQ.js";var d=t(),f=e(n(),1),p={GuiMarkup:`_GuiMarkup_jg4va_1`,Bullet:`_Bullet_jg4va_12`},m=r(),h=new Set([`spop`,`spush`,`lmargin`,`font`,`color`,`bitmap`,`a`,`/a`]);function g(e){return e.split(/<([^><]+)>/g).map((e,t)=>{if(t%2==0)return e?{type:`text`,value:e}:null;{let[t,...n]=e.split(`:`);return h.has(t.toLowerCase())?{type:`tag`,name:t,args:n}:{type:`text`,value:`<${e}>`}}}).filter(e=>e!=null)}function _(e){let[t,n]=e;return{fontDescription:t,fontSize:n?Math.max(11,Math.min(parseInt(n.trim(),10),16)):void 0}}function v(e){let t=g(e),n={type:`span`,source:`root`,style:{},children:[]},r=n,i=[r],a=e=>e.children!=null&&e.children.some(e=>typeof e==`string`||a(e));for(let e of t)switch(e.type){case`text`:r.children.push(e.value);break;case`tag`:switch(e.name){case`spush`:{let e={type:`span`,source:`spush`,style:{},children:[]};r.children.push(e),r=e,i.push(r);break}case`spop`:if(r.source!==`root`){let e=i.pop();for(;e.source!==`spush`;)e=i.pop();r=i[i.length-1]}break;case`lmargin`:break;case`font`:{let t=_(e.args).fontSize;if(!a(r))r.style.fontSize=t;else{let e={type:`span`,source:`spush`,style:{fontSize:t},children:[]};r.children.push(e),r=e,i.push(r)}break}case`color`:if(!a(r))r.style.color=`#${e.args[0].trim()}`;else{let t={type:`span`,source:`spush`,style:{color:`#${e.args[0].trim()}`},children:[]};r.children.push(t),r=t,i.push(r)}break;case`bitmap`:{let t={type:`bitmap`,value:e.args[0]};r.children.push(t);break}case`a`:{let t=e.args[0].trim().split(` `),n={type:`a`,source:`a`,value:`http://${t.length===2&&t[0]===`wwwlink`?t[1]:t[0]}`,style:{},children:[]};r.children.push(n),r=n,i.push(r);break}case`/a`:{let e=i.pop();for(;e.source!==`a`;)e=i.pop();r=i[i.length-1];break}}}return y(n)}function y(e){switch(e.type){case`span`:return f.createElement(`span`,{style:Object.keys(e.style).length===0?void 0:e.style},...e.children.map(e=>typeof e==`string`?e:y(e)));case`a`:return f.createElement(`a`,{href:e.value,style:Object.keys(e.style).length===0?void 0:e.style,rel:`noopener noreferrer`,target:`_blank`},...e.children.map(e=>typeof e==`string`?e:y(e)));case`bitmap`:return(0,m.jsx)(S,{name:e.value})}}var b=new Map;function x(e){if(b.has(e))return b.get(e);let t;try{t=c(a(`textures/gui/${e}`))}catch{t=null}return b.set(e,t),t}function S(e){let t=(0,d.c)(5),{name:n}=e,r;t[0]===n?r=t[1]:(r=x(n),t[0]=n,t[1]=r);let i=r;if(i){let e;return t[2]===i?e=t[3]:(e=(0,m.jsx)(`img`,{src:i,alt:``,className:p.Bitmap}),t[2]=i,t[3]=e),e}if(/bullet/i.test(n)){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,m.jsx)(`span`,{className:p.Bullet,children:`•`}),t[4]=e):e=t[4],e}return null}var C=/<(?:font|color|bitmap|just|lmargin|a):/i;function w(e){return C.test(e)}function T(e,t){let n=t.toUpperCase();return e.split(` +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{t as i}from"./useQuery-lKBLxuin.js";import{c as a}from"./manifest-CirqV3Ls.js";import{U as o,W as s}from"./index-DfaykQpF.js";import{i as c,l,n as u}from"./loaders-CIpiZadQ.js";var d=t(),f=e(n(),1),p={GuiMarkup:`_GuiMarkup_jg4va_1`,Bullet:`_Bullet_jg4va_12`},m=r(),h=new Set([`spop`,`spush`,`lmargin`,`font`,`color`,`bitmap`,`a`,`/a`]);function g(e){return e.split(/<([^><]+)>/g).map((e,t)=>{if(t%2==0)return e?{type:`text`,value:e}:null;{let[t,...n]=e.split(`:`);return h.has(t.toLowerCase())?{type:`tag`,name:t,args:n}:{type:`text`,value:`<${e}>`}}}).filter(e=>e!=null)}function _(e){let[t,n]=e;return{fontDescription:t,fontSize:n?Math.max(11,Math.min(parseInt(n.trim(),10),16)):void 0}}function v(e){let t=g(e),n={type:`span`,source:`root`,style:{},children:[]},r=n,i=[r],a=e=>e.children!=null&&e.children.some(e=>typeof e==`string`||a(e));for(let e of t)switch(e.type){case`text`:r.children.push(e.value);break;case`tag`:switch(e.name){case`spush`:{let e={type:`span`,source:`spush`,style:{},children:[]};r.children.push(e),r=e,i.push(r);break}case`spop`:if(r.source!==`root`){let e=i.pop();for(;e.source!==`spush`;)e=i.pop();r=i[i.length-1]}break;case`lmargin`:break;case`font`:{let t=_(e.args).fontSize;if(!a(r))r.style.fontSize=t;else{let e={type:`span`,source:`spush`,style:{fontSize:t},children:[]};r.children.push(e),r=e,i.push(r)}break}case`color`:if(!a(r))r.style.color=`#${e.args[0].trim()}`;else{let t={type:`span`,source:`spush`,style:{color:`#${e.args[0].trim()}`},children:[]};r.children.push(t),r=t,i.push(r)}break;case`bitmap`:{let t={type:`bitmap`,value:e.args[0]};r.children.push(t);break}case`a`:{let t=e.args[0].trim().split(` `),n={type:`a`,source:`a`,value:`http://${t.length===2&&t[0]===`wwwlink`?t[1]:t[0]}`,style:{},children:[]};r.children.push(n),r=n,i.push(r);break}case`/a`:{let e=i.pop();for(;e.source!==`a`;)e=i.pop();r=i[i.length-1];break}}}return y(n)}function y(e){switch(e.type){case`span`:return f.createElement(`span`,{style:Object.keys(e.style).length===0?void 0:e.style},...e.children.map(e=>typeof e==`string`?e:y(e)));case`a`:return f.createElement(`a`,{href:e.value,style:Object.keys(e.style).length===0?void 0:e.style,rel:`noopener noreferrer`,target:`_blank`},...e.children.map(e=>typeof e==`string`?e:y(e)));case`bitmap`:return(0,m.jsx)(S,{name:e.value})}}var b=new Map;function x(e){if(b.has(e))return b.get(e);let t;try{t=c(a(`textures/gui/${e}`))}catch{t=null}return b.set(e,t),t}function S(e){let t=(0,d.c)(5),{name:n}=e,r;t[0]===n?r=t[1]:(r=x(n),t[0]=n,t[1]=r);let i=r;if(i){let e;return t[2]===i?e=t[3]:(e=(0,m.jsx)(`img`,{src:i,alt:``,className:p.Bitmap}),t[2]=i,t[3]=e),e}if(/bullet/i.test(n)){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,m.jsx)(`span`,{className:p.Bullet,children:`•`}),t[4]=e):e=t[4],e}return null}var C=/<(?:font|color|bitmap|just|lmargin|a):/i;function w(e){return C.test(e)}function T(e,t){let n=t.toUpperCase();return e.split(` `).flatMap(e=>{let t=e.match(/^\[([^\]]+)\]/);return t&&!t[1].toUpperCase().split(/\s+/).includes(n)?[]:[e.replace(/^\[[^\]]+\]/,``)]}).join(` `)}function E(e){let t=(0,d.c)(4),{markup:n}=e,r;t[0]===n?r=t[1]:(r=v(n),t[0]=n,t[1]=r);let i=r,a;return t[2]===i?a=t[3]:(a=(0,m.jsx)(`div`,{className:p.GuiMarkup,children:i}),t[2]=i,t[3]=a),a}var D={Dialog:`_Dialog_tbn5d_1 _Dialog_1t9wa_1`,Overlay:`_Overlay_tbn5d_10 _Overlay_1t9wa_22`,Body:`_Body_tbn5d_14`,Left:`_Left_tbn5d_22`,PreviewImage:`_PreviewImage_tbn5d_29`,PreviewImageFloating:`_PreviewImageFloating_tbn5d_35`,Title:`_Title_tbn5d_45`,MapMeta:`_MapMeta_tbn5d_53`,MapPlanet:`_MapPlanet_tbn5d_63`,MapQuote:`_MapQuote_tbn5d_67`,MapBlurb:`_MapBlurb_tbn5d_86`,Section:`_Section_tbn5d_91`,SectionTitle:`_SectionTitle_tbn5d_95`,MusicTrack:`_MusicTrack_tbn5d_105`,MusicButton:`_MusicButton_tbn5d_119`,Footer:`_Footer_tbn5d_146`,CloseButton:`_CloseButton_tbn5d_158 _DialogButton_1t9wa_33`,Hint:`_Hint_tbn5d_162`,MusicTrackName:`_MusicTrackName_tbn5d_168`};function ee(e){let t=(0,d.c)(2),n;return t[0]===e?n=t[1]:(n={queryKey:[`parsedMission`,e],queryFn:()=>l(e)},t[0]=e,t[1]=n),i(n)}function te(e){for(let t of e.body){if(t.type!==`ObjectDeclaration`)continue;let{instanceName:e,body:n}=t;if(e&&e.type===`Identifier`&&e.name.toLowerCase()===`missiongroup`){let e={};for(let t of n){if(t.type!==`Assignment`)continue;let{target:n,value:r}=t;n.type===`Identifier`&&r.type===`StringLiteral`&&(e[n.name.toLowerCase()]=r.value)}return e}}return{}}function ne(e,t){if(e)try{return c(a(`textures/gui/${e}`))}catch{}try{return c(a(`textures/gui/Load_${t}`))}catch{}return null}function re(e){let t=(0,d.c)(7),{src:n,alt:r,className:i}=e,a=i===void 0?D.PreviewImage:i,[o,s]=(0,f.useState)(null),c,l;if(t[0]===n?(c=t[1],l=t[2]):(c=()=>{let e=!1,t;return fetch(n).then(j).then(A).then(k).then(n=>{e||!n||(t=URL.createObjectURL(n),s(t))}).catch(O),()=>{e=!0,t&&URL.revokeObjectURL(t)}},l=[n],t[0]=n,t[1]=c,t[2]=l),(0,f.useEffect)(c,l),!o)return null;let u;return t[3]!==r||t[4]!==a||t[5]!==o?(u=(0,m.jsx)(`img`,{src:o,alt:r,className:a}),t[3]=r,t[4]=a,t[5]=o,t[6]=u):u=t[6],u}function O(){}function k(e){return new Promise(t=>{let n=document.createElement(`canvas`);n.width=e.width,n.height=e.height,n.getContext(`2d`)?.drawImage(e,0,0),e.close(),n.toBlob(t)})}function A(e){return createImageBitmap(e,{colorSpaceConversion:`none`})}function j(e){return e.blob()}function ie(e){let t=(0,d.c)(22),{track:n}=e,[r,i]=(0,f.useState)(!1),[a,c]=(0,f.useState)(!0),l=(0,f.useRef)(null),p;t[0]===n?p=t[1]:(p=n.toLowerCase(),t[0]=n,t[1]=p);let h=`${u}music/${p}.mp3`,g,_;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>{let e=l.current;if(e)return()=>{e.pause()}},_=[],t[2]=g,t[3]=_):(g=t[2],_=t[3]),(0,f.useEffect)(g,_);let v;t[4]===r?v=t[5]:(v=()=>{let e=l.current;e&&(r?e.pause():e.play().catch(()=>c(!1)))},t[4]=r,t[5]=v);let y=v,b,x,S;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>i(!0),x=()=>i(!1),S=()=>c(!1),t[6]=b,t[7]=x,t[8]=S):(b=t[6],x=t[7],S=t[8]);let C;t[9]===h?C=t[10]:(C=(0,m.jsx)(`audio`,{ref:l,src:h,loop:!0,onPlay:b,onPause:x,onError:S}),t[9]=h,t[10]=C);let w;t[11]===n?w=t[12]:(w=(0,m.jsx)(`span`,{className:D.MusicTrackName,children:n}),t[11]=n,t[12]=w);let T;t[13]!==a||t[14]!==r||t[15]!==y?(T=a&&(0,m.jsx)(`button`,{className:D.MusicButton,onClick:y,"aria-label":r?`Pause music`:`Play music`,children:r?(0,m.jsx)(s,{}):(0,m.jsx)(o,{})}),t[13]=a,t[14]=r,t[15]=y,t[16]=T):T=t[16];let E;return t[17]!==r||t[18]!==T||t[19]!==C||t[20]!==w?(E=(0,m.jsxs)(`div`,{className:D.MusicTrack,"data-playing":r,children:[C,w,T]}),t[17]=r,t[18]=T,t[19]=C,t[20]=w,t[21]=E):E=t[21],E}function M(e){let t=(0,d.c)(100),{onClose:n,missionName:r,missionType:i}=e,{data:a}=ee(r),o=(0,f.useRef)(null),s,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{o.current?.focus();try{document.exitPointerLock()}catch{}},c=[],t[0]=s,t[1]=c):(s=t[0],c=t[1]),(0,f.useEffect)(s,c);let l,u;t[2]===n?(l=t[3],u=t[4]):(l=()=>{let e=e=>{if(e.key===`Escape`)n();else if(e.key===`k`&&(e.metaKey||e.ctrlKey)){n();return}e.stopImmediatePropagation()},t=se;return window.addEventListener(`keydown`,e,{capture:!0}),window.addEventListener(`keyup`,t,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0}),window.removeEventListener(`keyup`,t,{capture:!0})}},u=[n],t[2]=n,t[3]=l,t[4]=u),(0,f.useEffect)(l,u);let p;t[5]===a?p=t[6]:(p=a?te(a.ast):{},t[5]=a,t[6]=p);let h=p,g;t[7]!==r||t[8]!==a?(g=a?ne(a.bitmap,r):null,t[7]=r,t[8]=a,t[9]=g):g=t[9];let _=g,v=a?.displayName??r,y;t[10]===i?y=t[11]:(y=i.toLowerCase(),t[10]=i,t[11]=y);let b=y===`singleplayer`,x=h.musictrack,S,C,O,k,A,j,M,N,P,F,I,L,R,z,B,V,H,U;if(t[12]!==_||t[13]!==v||t[14]!==b||t[15]!==i||t[16]!==n||t[17]!==a){let e=a?.missionString?T(a.missionString,i):null,r,s,c,l;if(t[36]!==a?.missionQuote){if(l=a?.missionQuote?.trim()??``,s=w(l),c=``,r=``,!s)for(let e of l.split(` `)){let t=e.trim();t.match(/^--[^-]/)?r=t.replace(/^-+\s*/,``).trim():t&&(c+=(c?` diff --git a/docs/assets/Mission-Coy6f_9U.js b/docs/assets/Mission-nILJLxCJ.js similarity index 98% rename from docs/assets/Mission-Coy6f_9U.js rename to docs/assets/Mission-nILJLxCJ.js index fdd0a206..10f88b68 100644 --- a/docs/assets/Mission-Coy6f_9U.js +++ b/docs/assets/Mission-nILJLxCJ.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{t as i}from"./useQuery-FY4YqwDi.js";import{a,i as o,o as s,s as c}from"./manifest-CirqV3Ls.js";import{t as l}from"./logger-z_EpIdIa.js";import{a as u,i as d,n as f,o as p,r as m,t as h}from"./misToScene-DdnDTJru.js";import{c as g,l as _,n as v,o as y,r as b,s as x,t as S}from"./mission-Bem2ztlS.js";import{r as C}from"./engineStore-Dkm20jvr.js";import{j as w}from"./index-B1XI52_L.js";import{i as T,l as E}from"./loaders-CIpiZadQ.js";var D=e(_(),1),O=t(),k=l(`scriptLoader`);function A(){return async e=>{let t;try{t=T(e)}catch(t){return k.warn(`Script not in manifest: %s (%s)`,e,t),null}try{let n=await fetch(t);return n.ok?await n.text():(k.error(`Script fetch failed: %s (%d)`,e,n.status),null)}catch(t){return k.error(`Script fetch error: %s %o`,e,t),null}}}var j=e(n(),1),M=r(),N=(0,j.createContext)(null);function P(e){let t=(0,O.c)(3),{runtime:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,M.jsx)(N.Provider,{value:n,children:r}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}var F=(0,j.createContext)(null).Provider,I=[`scripts/admin.cs`,`scripts/ai.cs`,`scripts/aiBotProfiles.cs`,`scripts/aiBountyGame.cs`,`scripts/aiChat.cs`,`scripts/aiCnH.cs`,`scripts/aiCTF.cs`,`scripts/aiDeathMatch.cs`,`scripts/aiDebug.cs`,`scripts/aiDefaultTasks.cs`,`scripts/aiDnD.cs`,`scripts/aiHumanTasks.cs`,`scripts/aiHunters.cs`,`scripts/aiInventory.cs`,`scripts/aiObjectiveBuilder.cs`,`scripts/aiObjectives.cs`,`scripts/aiRabbit.cs`,`scripts/aiSiege.cs`,`scripts/aiTDM.cs`,`scripts/aiTeamHunters.cs`,`scripts/deathMessages.cs`,`scripts/graphBuild.cs`,`scripts/navGraph.cs`,`scripts/serverTasks.cs`,`scripts/spdialog.cs`];function L(e,t){if(t)return e.state.datablocks.get(t)}function R(e){if(typeof e==`string`){let t=e.toLowerCase();return t!==`0`&&t!==`false`&&t!==``}return!!e}function z(e){let t=e.split(` `).map(e=>parseFloat(e));return[t[0]??0,t[1]??0,t[2]??0]}function B(e){let[t,n,r,i]=e.split(` `).map(parseFloat),a=-(i||0)*Math.PI/360,o=Math.sin(a),s=Math.cos(a),c=Math.sqrt((n||0)*(n||0)+(r||0)*(r||0)+(t||0)*(t||0));return c<1e-8?[0,0,0,1]:[(n||0)/c*o,(r||0)/c*o,(t||0)/c*o,s]}function V(e,t,n){let r=e._className,i=`mission_${e._id}`,a=S(e),o=b(e),s=B(e.rotation??`1 0 0 0`),c=v(e,`dataBlock`)??``,l=L(t,c),g={id:i,className:r,runtimeObject:e,missionTypesList:v(e,`missionTypesList`)},_={...g,position:a,rotation:s,scale:o};switch(r){case`TerrainBlock`:return{...g,renderType:`TerrainBlock`,terrainData:u(e)};case`InteriorInstance`:return{...g,renderType:`InteriorInstance`,interiorData:h(e)};case`Sky`:return{...g,renderType:`Sky`,skyData:m(e)};case`Sun`:return{...g,renderType:`Sun`,sunData:d(e)};case`WaterBlock`:return{...g,renderType:`WaterBlock`,waterData:p(e)};case`MissionArea`:return{...g,renderType:`MissionArea`,missionAreaData:f(e)};case`StaticShape`:case`Item`:case`Turret`:case`TSStatic`:{let i=v(e,`team`);return H(_,e,l,t,r,i!=null&&i!==``?parseInt(i,10):n,c)}case`ForceFieldBare`:return U(_,e,l,o);case`AudioEmitter`:return{..._,renderType:`AudioEmitter`,audioFileName:v(e,`fileName`)??void 0,audioVolume:parseFloat(v(e,`volume`))||1,audioIs3D:(v(e,`is3D`)??`0`)!==`0`,audioIsLooping:(v(e,`isLooping`)??`0`)!==`0`,audioMinDistance:parseFloat(v(e,`minDistance`))||1,audioMaxDistance:parseFloat(v(e,`maxDistance`))||1,audioMinLoopGap:parseFloat(v(e,`minLoopGap`))||0,audioMaxLoopGap:parseFloat(v(e,`maxLoopGap`))||0};case`Camera`:return{..._,renderType:`Camera`,cameraDataBlock:c||void 0};case`WayPoint`:return{..._,renderType:`WayPoint`,label:v(e,`name`)||void 0};default:return null}}function H(e,t,n,r,i,a,o){let s=i===`TSStatic`?v(t,`shapeName`):v(n,`shapeFile`),c=i===`Turret`?`Turret`:i===`Item`?`Item`:i===`TSStatic`?`TSStatic`:`StaticShape`,l={...e,renderType:`Shape`,shapeName:s,shapeType:c,dataBlock:o||void 0,teamId:a};if(i===`Item`&&(l.rotate=R(v(t,`rotate`)??v(n,`rotate`))),i===`Turret`){let e=v(t,`initialBarrel`);e&&(l.barrelShapeName=v(L(r,e),`shapeFile`))}return l}function U(e,t,n,r){let i=v(n,`color`),a=i?z(i):[1,1,1],o=parseFloat(v(n,`baseTranslucency`))||1,s=parseInt(v(n,`numFrames`),10)||1,c=parseFloat(v(n,`framesPerSec`))||1,l=parseFloat(v(n,`scrollSpeed`))||0,u=parseFloat(v(n,`umapping`))||1,d=parseFloat(v(n,`vmapping`))||1,f=[];for(let e=0;e{let t=(0,D.default)(e,{nocase:!0});return a().filter(e=>t(e)).map(e=>{let[,t]=c(e);return t})},isFile:e=>s()[o(e)]!=null};function X(e){let t=(0,O.c)(2),n;return t[0]===e?n=t[1]:(n={queryKey:[`parsedMission`,e],queryFn:()=>E(e)},t[0]=e,t[1]=n),i(n)}function Z(e,t,n){let r=(0,O.c)(6),i;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={ready:!1,runtime:void 0,progress:0},r[0]=i):i=r[0];let[a,o]=(0,j.useState)(i),s,c;return r[1]!==e||r[2]!==t||r[3]!==n?(s=()=>{if(!n)return;let r=new AbortController,i=!1,a=null,s=x(),c=()=>{o(e=>({...e,progress:s.progress}))};s.on(`update`,c);let{runtime:l,ready:u}=y({missionName:e,missionType:t,runtimeOptions:{loadScript:q,fileSystem:Y,cache:J,signal:r.signal,progress:s,ignoreScripts:I}});return u.then(()=>{if(i||r.signal.aborted)return;C.getState().setRuntime(l);let n=l.getObjectByName(`MissionGroup`);if(n){let r=G(n,l,t);w.getState().setAllEntities(r),w.getState().setMissionInfo({missionName:e,missionType:t??void 0})}o({ready:!0,runtime:l,progress:1})}).catch($),a=l.subscribeRuntimeEvents(Q),C.getState().setRuntime(l),()=>{i=!0,s.off(`update`,c),r.abort(),a?.(),C.getState().clearRuntime(),w.getState().clearEntities(),l.destroy()}},c=[e,t,n],r[1]=e,r[2]=t,r[3]=n,r[4]=s,r[5]=c):(s=r[4],c=r[5]),(0,j.useEffect)(s,c),a}function Q(e){e.type===`batch.flushed`&&C.getState().applyRuntimeBatch(e.events,{tick:e.tick})}function $(e){e instanceof Error&&e.name===`AbortError`||K.error(`Mission runtime failed to become ready: %o`,e)}var ee=(0,j.memo)(function(e){let t=(0,O.c)(13),{name:n,missionType:r,onLoadingChange:i}=e,{data:a}=X(n),{ready:o,runtime:s,progress:c}=Z(n,r,a),l=!a||!o||!s,u;t[0]!==r||t[1]!==a?(u={metadata:a,missionType:r},t[0]=r,t[1]=a,t[2]=u):u=t[2];let d=u,f,p;if(t[3]!==l||t[4]!==i||t[5]!==c?(f=()=>{i?.(l,c)},p=[l,c,i],t[3]=l,t[4]=i,t[5]=c,t[6]=f,t[7]=p):(f=t[6],p=t[7]),(0,j.useEffect)(f,p),l)return null;let m;t[8]===s?m=t[9]:(m=(0,M.jsx)(P,{runtime:s}),t[8]=s,t[9]=m);let h;return t[10]!==d||t[11]!==m?(h=(0,M.jsx)(F,{value:d,children:m}),t[10]=d,t[11]=m,t[12]=h):h=t[12],h});export{ee as Mission}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{t as i}from"./useQuery-lKBLxuin.js";import{a,i as o,o as s,s as c}from"./manifest-CirqV3Ls.js";import{t as l}from"./logger-z_EpIdIa.js";import{a as u,i as d,n as f,o as p,r as m,t as h}from"./misToScene-DdnDTJru.js";import{c as g,l as _,n as v,o as y,r as b,s as x,t as S}from"./mission-Bem2ztlS.js";import{r as C}from"./engineStore-Dkm20jvr.js";import{j as w}from"./index-DfaykQpF.js";import{i as T,l as E}from"./loaders-CIpiZadQ.js";var D=e(_(),1),O=t(),k=l(`scriptLoader`);function A(){return async e=>{let t;try{t=T(e)}catch(t){return k.warn(`Script not in manifest: %s (%s)`,e,t),null}try{let n=await fetch(t);return n.ok?await n.text():(k.error(`Script fetch failed: %s (%d)`,e,n.status),null)}catch(t){return k.error(`Script fetch error: %s %o`,e,t),null}}}var j=e(n(),1),M=r(),N=(0,j.createContext)(null);function P(e){let t=(0,O.c)(3),{runtime:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,M.jsx)(N.Provider,{value:n,children:r}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}var F=(0,j.createContext)(null).Provider,I=[`scripts/admin.cs`,`scripts/ai.cs`,`scripts/aiBotProfiles.cs`,`scripts/aiBountyGame.cs`,`scripts/aiChat.cs`,`scripts/aiCnH.cs`,`scripts/aiCTF.cs`,`scripts/aiDeathMatch.cs`,`scripts/aiDebug.cs`,`scripts/aiDefaultTasks.cs`,`scripts/aiDnD.cs`,`scripts/aiHumanTasks.cs`,`scripts/aiHunters.cs`,`scripts/aiInventory.cs`,`scripts/aiObjectiveBuilder.cs`,`scripts/aiObjectives.cs`,`scripts/aiRabbit.cs`,`scripts/aiSiege.cs`,`scripts/aiTDM.cs`,`scripts/aiTeamHunters.cs`,`scripts/deathMessages.cs`,`scripts/graphBuild.cs`,`scripts/navGraph.cs`,`scripts/serverTasks.cs`,`scripts/spdialog.cs`];function L(e,t){if(t)return e.state.datablocks.get(t)}function R(e){if(typeof e==`string`){let t=e.toLowerCase();return t!==`0`&&t!==`false`&&t!==``}return!!e}function z(e){let t=e.split(` `).map(e=>parseFloat(e));return[t[0]??0,t[1]??0,t[2]??0]}function B(e){let[t,n,r,i]=e.split(` `).map(parseFloat),a=-(i||0)*Math.PI/360,o=Math.sin(a),s=Math.cos(a),c=Math.sqrt((n||0)*(n||0)+(r||0)*(r||0)+(t||0)*(t||0));return c<1e-8?[0,0,0,1]:[(n||0)/c*o,(r||0)/c*o,(t||0)/c*o,s]}function V(e,t,n){let r=e._className,i=`mission_${e._id}`,a=S(e),o=b(e),s=B(e.rotation??`1 0 0 0`),c=v(e,`dataBlock`)??``,l=L(t,c),g={id:i,className:r,runtimeObject:e,missionTypesList:v(e,`missionTypesList`)},_={...g,position:a,rotation:s,scale:o};switch(r){case`TerrainBlock`:return{...g,renderType:`TerrainBlock`,terrainData:u(e)};case`InteriorInstance`:return{...g,renderType:`InteriorInstance`,interiorData:h(e)};case`Sky`:return{...g,renderType:`Sky`,skyData:m(e)};case`Sun`:return{...g,renderType:`Sun`,sunData:d(e)};case`WaterBlock`:return{...g,renderType:`WaterBlock`,waterData:p(e)};case`MissionArea`:return{...g,renderType:`MissionArea`,missionAreaData:f(e)};case`StaticShape`:case`Item`:case`Turret`:case`TSStatic`:{let i=v(e,`team`);return H(_,e,l,t,r,i!=null&&i!==``?parseInt(i,10):n,c)}case`ForceFieldBare`:return U(_,e,l,o);case`AudioEmitter`:return{..._,renderType:`AudioEmitter`,audioFileName:v(e,`fileName`)??void 0,audioVolume:parseFloat(v(e,`volume`))||1,audioIs3D:(v(e,`is3D`)??`0`)!==`0`,audioIsLooping:(v(e,`isLooping`)??`0`)!==`0`,audioMinDistance:parseFloat(v(e,`minDistance`))||1,audioMaxDistance:parseFloat(v(e,`maxDistance`))||1,audioMinLoopGap:parseFloat(v(e,`minLoopGap`))||0,audioMaxLoopGap:parseFloat(v(e,`maxLoopGap`))||0};case`Camera`:return{..._,renderType:`Camera`,cameraDataBlock:c||void 0};case`WayPoint`:return{..._,renderType:`WayPoint`,label:v(e,`name`)||void 0};default:return null}}function H(e,t,n,r,i,a,o){let s=i===`TSStatic`?v(t,`shapeName`):v(n,`shapeFile`),c=i===`Turret`?`Turret`:i===`Item`?`Item`:i===`TSStatic`?`TSStatic`:`StaticShape`,l={...e,renderType:`Shape`,shapeName:s,shapeType:c,dataBlock:o||void 0,teamId:a};if(i===`Item`&&(l.rotate=R(v(t,`rotate`)??v(n,`rotate`))),i===`Turret`){let e=v(t,`initialBarrel`);e&&(l.barrelShapeName=v(L(r,e),`shapeFile`))}return l}function U(e,t,n,r){let i=v(n,`color`),a=i?z(i):[1,1,1],o=parseFloat(v(n,`baseTranslucency`))||1,s=parseInt(v(n,`numFrames`),10)||1,c=parseFloat(v(n,`framesPerSec`))||1,l=parseFloat(v(n,`scrollSpeed`))||0,u=parseFloat(v(n,`umapping`))||1,d=parseFloat(v(n,`vmapping`))||1,f=[];for(let e=0;e{let t=(0,D.default)(e,{nocase:!0});return a().filter(e=>t(e)).map(e=>{let[,t]=c(e);return t})},isFile:e=>s()[o(e)]!=null};function X(e){let t=(0,O.c)(2),n;return t[0]===e?n=t[1]:(n={queryKey:[`parsedMission`,e],queryFn:()=>E(e)},t[0]=e,t[1]=n),i(n)}function Z(e,t,n){let r=(0,O.c)(6),i;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={ready:!1,runtime:void 0,progress:0},r[0]=i):i=r[0];let[a,o]=(0,j.useState)(i),s,c;return r[1]!==e||r[2]!==t||r[3]!==n?(s=()=>{if(!n)return;let r=new AbortController,i=!1,a=null,s=x(),c=()=>{o(e=>({...e,progress:s.progress}))};s.on(`update`,c);let{runtime:l,ready:u}=y({missionName:e,missionType:t,runtimeOptions:{loadScript:q,fileSystem:Y,cache:J,signal:r.signal,progress:s,ignoreScripts:I}});return u.then(()=>{if(i||r.signal.aborted)return;C.getState().setRuntime(l);let n=l.getObjectByName(`MissionGroup`);if(n){let r=G(n,l,t);w.getState().setAllEntities(r),w.getState().setMissionInfo({missionName:e,missionType:t??void 0})}o({ready:!0,runtime:l,progress:1})}).catch($),a=l.subscribeRuntimeEvents(Q),C.getState().setRuntime(l),()=>{i=!0,s.off(`update`,c),r.abort(),a?.(),C.getState().clearRuntime(),w.getState().clearEntities(),l.destroy()}},c=[e,t,n],r[1]=e,r[2]=t,r[3]=n,r[4]=s,r[5]=c):(s=r[4],c=r[5]),(0,j.useEffect)(s,c),a}function Q(e){e.type===`batch.flushed`&&C.getState().applyRuntimeBatch(e.events,{tick:e.tick})}function $(e){e instanceof Error&&e.name===`AbortError`||K.error(`Mission runtime failed to become ready: %o`,e)}var ee=(0,j.memo)(function(e){let t=(0,O.c)(13),{name:n,missionType:r,onLoadingChange:i}=e,{data:a}=X(n),{ready:o,runtime:s,progress:c}=Z(n,r,a),l=!a||!o||!s,u;t[0]!==r||t[1]!==a?(u={metadata:a,missionType:r},t[0]=r,t[1]=a,t[2]=u):u=t[2];let d=u,f,p;if(t[3]!==l||t[4]!==i||t[5]!==c?(f=()=>{i?.(l,c)},p=[l,c,i],t[3]=l,t[4]=i,t[5]=c,t[6]=f,t[7]=p):(f=t[6],p=t[7]),(0,j.useEffect)(f,p),l)return null;let m;t[8]===s?m=t[9]:(m=(0,M.jsx)(P,{runtime:s}),t[8]=s,t[9]=m);let h;return t[10]!==d||t[11]!==m?(h=(0,M.jsx)(F,{value:d,children:m}),t[10]=d,t[11]=m,t[12]=h):h=t[12],h});export{ee as Mission}; \ No newline at end of file diff --git a/docs/assets/PlayerHUD-ZLAOgfFu.js b/docs/assets/PlayerHUD-IFZkOeCb.js similarity index 98% rename from docs/assets/PlayerHUD-ZLAOgfFu.js rename to docs/assets/PlayerHUD-IFZkOeCb.js index f45f7943..aebbcca5 100644 --- a/docs/assets/PlayerHUD-ZLAOgfFu.js +++ b/docs/assets/PlayerHUD-IFZkOeCb.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatInput-B9JdqF5v.js","assets/chunk-DECur_0Z.js","assets/index-B1XI52_L.js","assets/preload-helper-CwUjIIrH.js","assets/mission-Bem2ztlS.js","assets/logger-z_EpIdIa.js","assets/react-three-fiber.esm-CgPHUpXo.js","assets/jsx-runtime-BpGWiA-R.js","assets/three.module-07hRbor4.js","assets/traditional-BTL5qX2E.js","assets/streamHelpers-D2N8suZp.js","assets/SettingsProvider-CCHVZuSg.js","assets/manifest-CirqV3Ls.js","assets/stringUtils-EmGsjr9D.js","assets/iconBase-BCRUFbxq.js","assets/middleware-DPacZrFu.js","assets/JoystickContext-YJ6eVLFP.js","assets/scene-BdOVRsxo.js","assets/cameraTourStore-PEzPVGnX.js","assets/engineStore-Dkm20jvr.js","assets/index-DvT5LFSb.css","assets/ChatInput-bC9wt42K.css"])))=>i.map(i=>d[i]); -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{t as i}from"./stringUtils-EmGsjr9D.js";import{i as a}from"./engineStore-Dkm20jvr.js";import{t as o}from"./preload-helper-CwUjIIrH.js";import{p as s}from"./loaders-CIpiZadQ.js";import{n as c}from"./streamPlaybackStore-DhJekvnx.js";var l=e(n(),1),u=e=>e;function d(e,t=u){let n=l.useSyncExternalStore(e.subscribe,l.useCallback(()=>t(e.getState()),[e,t]),l.useCallback(()=>t(e.getInitialState()),[e,t]));return l.useDebugValue(n),n}var f=t(),p={PlayerHUD:`_PlayerHUD_13ssv_1`,Compass:`_Compass_13ssv_11`,CompassRing:`_CompassRing_13ssv_20`,CompassNSEW:`_CompassNSEW_13ssv_29`,CompassClock:`_CompassClock_13ssv_38`,Bars:`_Bars_13ssv_51`,BarTrack:`_BarTrack_13ssv_63`,BarFillHealth:`_BarFillHealth_13ssv_71`,BarFillEnergy:`_BarFillEnergy_13ssv_77`,WeaponHUD:`_WeaponHUD_13ssv_85`,PackInvItem:`_PackInvItem_13ssv_95`,WeaponSeparator:`_WeaponSeparator_13ssv_105`,TeamScores:`_TeamScores_13ssv_111`,ObserverCount:`_ObserverCount_13ssv_126`,TeamRow:`_TeamRow_13ssv_136`,TeamName:`_TeamName_13ssv_145`,TeamNameFriendly:`_TeamNameFriendly_13ssv_152 _TeamName_13ssv_145`,TeamNameEnemy:`_TeamNameEnemy_13ssv_157 _TeamName_13ssv_145`,TeamScore:`_TeamScore_13ssv_111`,TeamCount:`_TeamCount_13ssv_170`,PackInventoryHUD:`_PackInventoryHUD_13ssv_179`,PackInvIcon:`_PackInvIcon_13ssv_210`,PackInvCount:`_PackInvCount_13ssv_215`,PackInvInfinity:`_PackInvInfinity_13ssv_222`,Reticle:`_Reticle_13ssv_230`,ReticleImage:`_ReticleImage_13ssv_237`,ReticleDot:`_ReticleDot_13ssv_242`},m={ChatContainer:`_ChatContainer_qc3qt_1`,ChatWindow:`_ChatWindow_qc3qt_14`,ChatMessage:`_ChatMessage_qc3qt_39`,ChatColor0:`_ChatColor0_qc3qt_46`,ChatColor1:`_ChatColor1_qc3qt_49`,ChatColor2:`_ChatColor2_qc3qt_52`,ChatColor3:`_ChatColor3_qc3qt_55`,ChatColor4:`_ChatColor4_qc3qt_58`,ChatColor5:`_ChatColor5_qc3qt_61`,ChatColor6:`_ChatColor6_qc3qt_64`,ChatColor7:`_ChatColor7_qc3qt_67`,ChatColor8:`_ChatColor8_qc3qt_70`,ChatColor9:`_ChatColor9_qc3qt_73`},h=r(),g=(0,l.lazy)(()=>o(()=>import(`./ChatInput-B9JdqF5v.js`).then(e=>({default:e.ChatInput})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]))),_=[],v={0:m.ChatColor0,1:m.ChatColor1,2:m.ChatColor2,3:m.ChatColor3,4:m.ChatColor4,5:m.ChatColor5,6:m.ChatColor6,7:m.ChatColor7,8:m.ChatColor8,9:m.ChatColor9};function ee(e){return v[e]??v[0]}function te(e){return e.colorCode!=null&&v[e.colorCode]?v[e.colorCode]:v[0]}var y=(0,l.memo)(function(){let e=(0,f.c)(12),t=a(b),n=a(x),r=(0,l.useRef)(null),i=n[n.length-1]?.id,o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{r.current&&(r.current.scrollTop=r.current.scrollHeight)},e[0]=o):o=e[0];let s;e[1]===i?s=e[2]:(s=[i],e[1]=i,e[2]=s),(0,l.useEffect)(o,s);let c;e[3]===n?c=e[4]:(c=n.map(C),e[3]=n,e[4]=c);let u;e[5]===c?u=e[6]:(u=(0,h.jsx)(`div`,{ref:r,className:m.ChatWindow,children:c}),e[5]=c,e[6]=u);let d;e[7]===t?d=e[8]:(d=t&&(0,h.jsx)(l.Suspense,{children:(0,h.jsx)(g,{})}),e[7]=t,e[8]=d);let p;return e[9]!==u||e[10]!==d?(p=(0,h.jsxs)(`div`,{className:m.ChatContainer,children:[u,d]}),e[9]=u,e[10]=d,e[11]=p):p=e[11],p});function b(e){return e.playback.recording?.source===`live`}function x(e){return e.playback.streamSnapshot?.chatMessages??_}function S(e,t){return(0,h.jsx)(`span`,{className:ee(e.colorCode),children:e.text},t)}function C(e){return(0,h.jsx)(`div`,{className:m.ChatMessage,hidden:!e.text,children:e.segments?e.segments.map(S):(0,h.jsxs)(`span`,{className:te(e),children:[e.sender?`${e.sender}: `:``,e.text]})},e.id)}var w=s(`gui/hud_new_compass`),T=s(`gui/hud_new_NSEW`);function E(e){let t=Math.abs(e)/1e3,n=e<0?Math.ceil(t):Math.floor(t),r=Math.floor(n/60),i=n%60;return`${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`}function D(){let e=(0,f.c)(8),t=a(k),n=a(O);if(t==null)return null;let r=t*180/Math.PI,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,h.jsx)(`img`,{src:w,alt:``,className:p.CompassRing}),e[0]=i):i=e[0];let o=`rotate(${-r}deg)`,s;e[1]===o?s=e[2]:(s=(0,h.jsx)(`img`,{src:T,alt:``,className:p.CompassNSEW,style:{transform:o}}),e[1]=o,e[2]=s);let c;e[3]===n?c=e[4]:(c=n!=null&&(0,h.jsx)(`span`,{className:p.CompassClock,children:E(n)}),e[3]=n,e[4]=c);let l;return e[5]!==s||e[6]!==c?(l=(0,h.jsxs)(`div`,{className:p.Compass,children:[i,s,c]}),e[5]=s,e[6]=c,e[7]=l):l=e[7],l}function O(e){return e.playback.streamSnapshot?.matchClockMs}function k(e){return e.playback.streamSnapshot?.camera?.yaw}function A(){let e=(0,f.c)(2),t=a(j);if(t==null)return null;let n=`${Math.max(0,Math.min(100,t*100))}%`,r;return e[0]===n?r=e[1]:(r=(0,h.jsx)(`div`,{className:p.BarTrack,children:(0,h.jsx)(`div`,{className:p.BarFillHealth,style:{width:n}})}),e[0]=n,e[1]=r),r}function j(e){return e.playback.streamSnapshot?.status?.health}function M(){let e=(0,f.c)(2),t=a(N);if(t==null)return null;let n=`${Math.max(0,Math.min(100,t*100))}%`,r;return e[0]===n?r=e[1]:(r=(0,h.jsx)(`div`,{className:p.BarTrack,children:(0,h.jsx)(`div`,{className:p.BarFillEnergy,style:{width:n}})}),e[0]=n,e[1]=r),r}function N(e){return e.playback.streamSnapshot?.status?.energy}var P={weapon_energy:`gui/ret_blaster`,weapon_plasma:`gui/ret_plasma`,weapon_chaingun:`gui/ret_chaingun`,weapon_disc:`gui/ret_disc`,weapon_grenade_launcher:`gui/ret_grenade`,weapon_sniper:`gui/hud_ret_sniper`,weapon_elf:`gui/ret_elf`,weapon_mortar:`gui/ret_mortor`,weapon_missile:`gui/ret_missile`,weapon_targeting:`gui/hud_ret_targlaser`,weapon_shocklance:`gui/hud_ret_shocklance`};function F(e){return e?e.replace(/\.dts$/i,``).toLowerCase():``}function I(){let e=(0,f.c)(5),t=a(L);if(t===void 0)return null;let n=P[F(t)];if(n){let t;e[0]===n?t=e[1]:(t=s(n),e[0]=n,e[1]=t);let r;return e[2]===t?r=e[3]:(r=(0,h.jsx)(`div`,{className:p.Reticle,children:(0,h.jsx)(`img`,{src:t,alt:``,className:p.ReticleImage})}),e[2]=t,e[3]=r),r}let r;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,h.jsx)(`div`,{className:p.Reticle,children:(0,h.jsx)(`div`,{className:p.ReticleDot})}),e[4]=r):r=e[4],r}function L(e){let t=e.playback.streamSnapshot;if(!t||t.camera?.mode!==`first-person`)return;let n=t.controlPlayerGhostId;if(n)return t.entities.find(e=>e.id===n)?.weaponShape}var R={0:{icon:`gui/hud_blaster`,label:`Blaster`},1:{icon:`gui/hud_plasma`,label:`Plasma`},2:{icon:`gui/hud_chaingun`,label:`Chaingun`},3:{icon:`gui/hud_disc`,label:`Spinfusor`},4:{icon:`gui/hud_grenlaunch`,label:`GL`},5:{icon:`gui/hud_sniper`,label:`Laser Rifle`},6:{icon:`gui/hud_elfgun`,label:`ELF Gun`},7:{icon:`gui/hud_new_mortar`,label:`Mortar`},8:{icon:`gui/hud_missiles`,label:`Missile`},9:{icon:`gui/hud_targetlaser`,label:`Targeting`},10:{icon:`gui/hud_shocklance`,label:`Shocklance`},11:{icon:`gui/hud_disc`,label:`Spinfusor`},12:{icon:`gui/hud_grenlaunch`,label:`GL`},13:{icon:`gui/hud_chaingun`,label:`Chaingun`},14:{icon:`gui/hud_targetlaser`,label:`Targeting`},15:{icon:`gui/hud_targetlaser`,label:`Targeting`},16:{icon:`gui/hud_shocklance`,label:`Shocklance`},17:{icon:`gui/hud_new_mortar`,label:`Mortar`}},ne=new Map(Object.entries(R).map(([e,t])=>[Number(e),s(t.icon)])),z=new Set([9,14,15]),B=s(`gui/hud_infinity`);function V(e){let t=(0,f.c)(12),{slot:n,isSelected:r}=e,i=R[n.index];if(!i)return null;let a=n.ammo<0,o;t[0]===n.index?o=t[1]:(o=ne.get(n.index),t[0]=n.index,t[1]=o);let s;t[2]!==i.label||t[3]!==o?(s=(0,h.jsx)(`img`,{src:o,alt:i.label,className:p.PackInvIcon}),t[2]=i.label,t[3]=o,t[4]=s):s=t[4];let c;t[5]!==a||t[6]!==n.ammo?(c=a?(0,h.jsx)(`img`,{src:B,alt:`\\u221E`,className:p.PackInvInfinity}):(0,h.jsx)(`span`,{className:p.PackInvCount,children:n.ammo}),t[5]=a,t[6]=n.ammo,t[7]=c):c=t[7];let l;return t[8]!==r||t[9]!==s||t[10]!==c?(l=(0,h.jsxs)(`div`,{className:p.PackInvItem,"data-active":r,children:[s,c]}),t[8]=r,t[9]=s,t[10]=c,t[11]=l):l=t[11],l}function H(){let e=(0,f.c)(15),t=a(U);if(!t||!t.slots.length)return null;let n,r;if(e[0]!==t.slots){r=[],n=[];for(let e of t.slots)z.has(e.index)?n.push(e):r.push(e);e[0]=t.slots,e[1]=n,e[2]=r}else n=e[1],r=e[2];let i;e[3]!==r||e[4]!==t?(i=r.map(e=>(0,h.jsx)(V,{slot:e,isSelected:e.index===t.activeIndex},e.index)),e[3]=r,e[4]=t,e[5]=i):i=e[5];let o;e[6]===n.length?o=e[7]:(o=n.length>0&&(0,h.jsx)(`div`,{className:p.WeaponSeparator}),e[6]=n.length,e[7]=o);let s;e[8]!==n||e[9]!==t?(s=n.map(e=>(0,h.jsx)(V,{slot:e,isSelected:e.index===t.activeIndex},e.index)),e[8]=n,e[9]=t,e[10]=s):s=e[10];let c;return e[11]!==i||e[12]!==o||e[13]!==s?(c=(0,h.jsxs)(`div`,{className:p.WeaponHUD,children:[i,o,s]}),e[11]=i,e[12]=o,e[13]=s,e[14]=c):c=e[14],c}function U(e){return e.playback.streamSnapshot?.weaponsHud}function W(){let e=(0,f.c)(18),t=a(J),n=a(q),r=a(G);if(!t?.length)return null;let o,s,c;if(e[0]!==r||e[1]!==n||e[2]!==t){let a;e[6]===n?a=e[7]:(a=(e,t)=>{if(n){if(e.teamId===n)return-1;if(t.teamId===n)return 1}return e.teamId-t.teamId},e[6]=n,e[7]=a);let l=[...t].sort(a);c=p.TeamScores,e[8]===r?o=e[9]:(o=r>0&&(0,h.jsx)(`tr`,{children:(0,h.jsxs)(`td`,{className:p.ObserverCount,colSpan:3,children:[r,` `,r===1?`observer`:`observers`]})}),e[8]=r,e[9]=o);let u;e[10]===n?u=e[11]:(u=e=>{let t=n!=null&&n>0&&e.teamId===n,r=e.name||(i[e.teamId]??`Team ${e.teamId}`);return(0,h.jsxs)(`tr`,{className:p.TeamRow,children:[(0,h.jsx)(`td`,{className:t?p.TeamNameFriendly:p.TeamNameEnemy,children:r}),(0,h.jsxs)(`td`,{className:p.TeamCount,children:[`(`,e.playerCount.toLocaleString(),`)`]}),(0,h.jsx)(`td`,{className:p.TeamScore,children:e.score.toLocaleString()})]},e.teamId)},e[10]=n,e[11]=u),s=l.map(u),e[0]=r,e[1]=n,e[2]=t,e[3]=o,e[4]=s,e[5]=c}else o=e[3],s=e[4],c=e[5];let l;e[12]!==o||e[13]!==s?(l=(0,h.jsxs)(`tbody`,{children:[o,s]}),e[12]=o,e[13]=s,e[14]=l):l=e[14];let u;return e[15]!==c||e[16]!==l?(u=(0,h.jsx)(`table`,{className:c,children:l}),e[15]=c,e[16]=l,e[17]=u):u=e[17],u}function G(e){return e.playback.streamSnapshot?.playerRoster?.filter(K).length??0}function K(e){return e.teamId<=0}function q(e){return e.playback.streamSnapshot?.playerSensorGroup}function J(e){return e.playback.streamSnapshot?.teamScores}var Y={0:`gui/hud_new_packammo`,1:`gui/hud_new_packcloak`,2:`gui/hud_new_packenergy`,3:`gui/hud_new_packrepair`,4:`gui/hud_new_packsatchel`,5:`gui/hud_new_packshield`,6:`gui/hud_new_packinventory`,7:`gui/hud_new_packmotionsens`,8:`gui/hud_new_packradar`,9:`gui/hud_new_packturretout`,10:`gui/hud_new_packturretin`,11:`gui/hud_new_packsensjam`,12:`gui/hud_new_packturret`,13:`gui/hud_new_packturret`,14:`gui/hud_new_packturret`,15:`gui/hud_new_packturret`,16:`gui/hud_new_packturret`,17:`gui/hud_new_packturret`,18:`gui/hud_satchel_unarmed`,19:`gui/hud_new_packenergy`},X={1:`gui/hud_new_packcloak_armed`,3:`gui/hud_new_packrepair_armed`,4:`gui/hud_satchel_armed`,5:`gui/hud_new_packshield_armed`,11:`gui/hud_new_packsensjam_armed`},Z=new Map(Object.entries(Y).map(([e,t])=>[Number(e),s(t)])),re=new Map(Object.entries(X).map(([e,t])=>[Number(e),s(t)])),Q={0:{icon:`gui/hud_handgren`,label:`Grenade`},1:{icon:`gui/hud_mine`,label:`Mine`},2:{icon:`gui/hud_beacon`,label:`Beacon`},3:{icon:`gui/hud_medpack`,label:`Repair Kit`}},ie=new Map(Object.entries(Q).map(([e,t])=>[Number(e),s(t.icon)]));function ae(){let e=(0,f.c)(25),t=a(ce),n=a(se),r=t&&t.packIndex>=0,i;if(r){let n;e[0]!==t.active||e[1]!==t.packIndex?(n=t.active?re.get(t.packIndex):void 0,e[0]=t.active,e[1]=t.packIndex,e[2]=n):n=e[2];let r=n,a;e[3]!==r||e[4]!==t.packIndex?(a=r??Z.get(t.packIndex),e[3]=r,e[4]=t.packIndex,e[5]=a):a=e[5],i=a}let o;if(e[6]!==n){if(o=new Map,n)for(let e of n.slots)o.set(e.slot,e.count);e[6]=n,e[7]=o}else o=e[7];let s,c,l,u;if(e[8]!==t||e[9]!==o||e[10]!==r||e[11]!==i){u=Symbol.for(`react.early_return_sentinel`);bb0:{let n=Object.keys(Q).map(Number).sort(oe);if(!r&&!o.size){u=null;break bb0}s=p.PackInventoryHUD,e[16]!==t||e[17]!==i?(c=i&&(0,h.jsxs)(`div`,{className:p.PackInvItem,"data-active":t.active??!1,children:[(0,h.jsx)(`img`,{src:i,alt:``,className:p.PackInvIcon}),(0,h.jsx)(`span`,{className:p.PackInvCount,children:t.text||`\xA0`})]}),e[16]=t,e[17]=i,e[18]=c):c=e[18];let a;e[19]===o?a=e[20]:(a=e=>{let t=Q[e],n=ie.get(e);return!t||!n?null:(0,h.jsxs)(`div`,{className:p.PackInvItem,children:[(0,h.jsx)(`img`,{src:n,alt:t.label,className:p.PackInvIcon}),(0,h.jsx)(`span`,{className:p.PackInvCount,children:o.get(e)??0})]},e)},e[19]=o,e[20]=a),l=n.map(a)}e[8]=t,e[9]=o,e[10]=r,e[11]=i,e[12]=s,e[13]=c,e[14]=l,e[15]=u}else s=e[12],c=e[13],l=e[14],u=e[15];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d;return e[21]!==s||e[22]!==c||e[23]!==l?(d=(0,h.jsxs)(`div`,{className:s,children:[c,l]}),e[21]=s,e[22]=c,e[23]=l,e[24]=d):d=e[24],d}function oe(e,t){return e-t}function se(e){return e.playback.streamSnapshot?.inventoryHud}function ce(e){return e.playback.streamSnapshot?.backpackHud}function le(){let e=(0,f.c)(10),t=a(ue),n=d(c,$),r=t&&n!==`freeFly`,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,h.jsx)(y,{}),e[0]=i):i=e[0];let o;e[1]===r?o=e[2]:(o=r&&(0,h.jsxs)(`div`,{className:p.Bars,children:[(0,h.jsx)(A,{}),(0,h.jsx)(M,{})]}),e[1]=r,e[2]=o);let s;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,h.jsx)(D,{}),e[3]=s):s=e[3];let l;e[4]===r?l=e[5]:(l=r&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(H,{}),(0,h.jsx)(ae,{}),(0,h.jsx)(I,{})]}),e[4]=r,e[5]=l);let u;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,h.jsx)(W,{}),e[6]=u):u=e[6];let m;return e[7]!==o||e[8]!==l?(m=(0,h.jsxs)(`div`,{className:p.PlayerHUD,children:[i,o,s,l,u]}),e[7]=o,e[8]=l,e[9]=m):m=e[9],m}function $(e){return e.cameraMode}function ue(e){return!!e.playback.streamSnapshot?.controlPlayerGhostId}export{le as PlayerHUD}; \ No newline at end of file +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatInput-BrDNmg1o.js","assets/chunk-DECur_0Z.js","assets/index-DfaykQpF.js","assets/preload-helper-CwUjIIrH.js","assets/mission-Bem2ztlS.js","assets/logger-z_EpIdIa.js","assets/react-three-fiber.esm-CgPHUpXo.js","assets/jsx-runtime-BpGWiA-R.js","assets/three.module-07hRbor4.js","assets/traditional-BTL5qX2E.js","assets/streamHelpers-D2N8suZp.js","assets/SettingsProvider-CCHVZuSg.js","assets/manifest-CirqV3Ls.js","assets/stringUtils-EmGsjr9D.js","assets/iconBase-BCRUFbxq.js","assets/middleware-DPacZrFu.js","assets/JoystickContext-YJ6eVLFP.js","assets/scene-BdOVRsxo.js","assets/cameraTourStore-PEzPVGnX.js","assets/engineStore-Dkm20jvr.js","assets/index-DPUMrbG6.css","assets/ChatInput-bC9wt42K.css"])))=>i.map(i=>d[i]); +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{t as i}from"./stringUtils-EmGsjr9D.js";import{i as a}from"./engineStore-Dkm20jvr.js";import{t as o}from"./preload-helper-CwUjIIrH.js";import{p as s}from"./loaders-CIpiZadQ.js";import{n as c}from"./streamPlaybackStore-DhJekvnx.js";var l=e(n(),1),u=e=>e;function d(e,t=u){let n=l.useSyncExternalStore(e.subscribe,l.useCallback(()=>t(e.getState()),[e,t]),l.useCallback(()=>t(e.getInitialState()),[e,t]));return l.useDebugValue(n),n}var f=t(),p={PlayerHUD:`_PlayerHUD_13ssv_1`,Compass:`_Compass_13ssv_11`,CompassRing:`_CompassRing_13ssv_20`,CompassNSEW:`_CompassNSEW_13ssv_29`,CompassClock:`_CompassClock_13ssv_38`,Bars:`_Bars_13ssv_51`,BarTrack:`_BarTrack_13ssv_63`,BarFillHealth:`_BarFillHealth_13ssv_71`,BarFillEnergy:`_BarFillEnergy_13ssv_77`,WeaponHUD:`_WeaponHUD_13ssv_85`,PackInvItem:`_PackInvItem_13ssv_95`,WeaponSeparator:`_WeaponSeparator_13ssv_105`,TeamScores:`_TeamScores_13ssv_111`,ObserverCount:`_ObserverCount_13ssv_126`,TeamRow:`_TeamRow_13ssv_136`,TeamName:`_TeamName_13ssv_145`,TeamNameFriendly:`_TeamNameFriendly_13ssv_152 _TeamName_13ssv_145`,TeamNameEnemy:`_TeamNameEnemy_13ssv_157 _TeamName_13ssv_145`,TeamScore:`_TeamScore_13ssv_111`,TeamCount:`_TeamCount_13ssv_170`,PackInventoryHUD:`_PackInventoryHUD_13ssv_179`,PackInvIcon:`_PackInvIcon_13ssv_210`,PackInvCount:`_PackInvCount_13ssv_215`,PackInvInfinity:`_PackInvInfinity_13ssv_222`,Reticle:`_Reticle_13ssv_230`,ReticleImage:`_ReticleImage_13ssv_237`,ReticleDot:`_ReticleDot_13ssv_242`},m={ChatContainer:`_ChatContainer_qc3qt_1`,ChatWindow:`_ChatWindow_qc3qt_14`,ChatMessage:`_ChatMessage_qc3qt_39`,ChatColor0:`_ChatColor0_qc3qt_46`,ChatColor1:`_ChatColor1_qc3qt_49`,ChatColor2:`_ChatColor2_qc3qt_52`,ChatColor3:`_ChatColor3_qc3qt_55`,ChatColor4:`_ChatColor4_qc3qt_58`,ChatColor5:`_ChatColor5_qc3qt_61`,ChatColor6:`_ChatColor6_qc3qt_64`,ChatColor7:`_ChatColor7_qc3qt_67`,ChatColor8:`_ChatColor8_qc3qt_70`,ChatColor9:`_ChatColor9_qc3qt_73`},h=r(),g=(0,l.lazy)(()=>o(()=>import(`./ChatInput-BrDNmg1o.js`).then(e=>({default:e.ChatInput})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]))),_=[],v={0:m.ChatColor0,1:m.ChatColor1,2:m.ChatColor2,3:m.ChatColor3,4:m.ChatColor4,5:m.ChatColor5,6:m.ChatColor6,7:m.ChatColor7,8:m.ChatColor8,9:m.ChatColor9};function ee(e){return v[e]??v[0]}function te(e){return e.colorCode!=null&&v[e.colorCode]?v[e.colorCode]:v[0]}var y=(0,l.memo)(function(){let e=(0,f.c)(12),t=a(b),n=a(x),r=(0,l.useRef)(null),i=n[n.length-1]?.id,o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{r.current&&(r.current.scrollTop=r.current.scrollHeight)},e[0]=o):o=e[0];let s;e[1]===i?s=e[2]:(s=[i],e[1]=i,e[2]=s),(0,l.useEffect)(o,s);let c;e[3]===n?c=e[4]:(c=n.map(C),e[3]=n,e[4]=c);let u;e[5]===c?u=e[6]:(u=(0,h.jsx)(`div`,{ref:r,className:m.ChatWindow,children:c}),e[5]=c,e[6]=u);let d;e[7]===t?d=e[8]:(d=t&&(0,h.jsx)(l.Suspense,{children:(0,h.jsx)(g,{})}),e[7]=t,e[8]=d);let p;return e[9]!==u||e[10]!==d?(p=(0,h.jsxs)(`div`,{className:m.ChatContainer,children:[u,d]}),e[9]=u,e[10]=d,e[11]=p):p=e[11],p});function b(e){return e.playback.recording?.source===`live`}function x(e){return e.playback.streamSnapshot?.chatMessages??_}function S(e,t){return(0,h.jsx)(`span`,{className:ee(e.colorCode),children:e.text},t)}function C(e){return(0,h.jsx)(`div`,{className:m.ChatMessage,hidden:!e.text,children:e.segments?e.segments.map(S):(0,h.jsxs)(`span`,{className:te(e),children:[e.sender?`${e.sender}: `:``,e.text]})},e.id)}var w=s(`gui/hud_new_compass`),T=s(`gui/hud_new_NSEW`);function E(e){let t=Math.abs(e)/1e3,n=e<0?Math.ceil(t):Math.floor(t),r=Math.floor(n/60),i=n%60;return`${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`}function D(){let e=(0,f.c)(8),t=a(k),n=a(O);if(t==null)return null;let r=t*180/Math.PI,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,h.jsx)(`img`,{src:w,alt:``,className:p.CompassRing}),e[0]=i):i=e[0];let o=`rotate(${-r}deg)`,s;e[1]===o?s=e[2]:(s=(0,h.jsx)(`img`,{src:T,alt:``,className:p.CompassNSEW,style:{transform:o}}),e[1]=o,e[2]=s);let c;e[3]===n?c=e[4]:(c=n!=null&&(0,h.jsx)(`span`,{className:p.CompassClock,children:E(n)}),e[3]=n,e[4]=c);let l;return e[5]!==s||e[6]!==c?(l=(0,h.jsxs)(`div`,{className:p.Compass,children:[i,s,c]}),e[5]=s,e[6]=c,e[7]=l):l=e[7],l}function O(e){return e.playback.streamSnapshot?.matchClockMs}function k(e){return e.playback.streamSnapshot?.camera?.yaw}function A(){let e=(0,f.c)(2),t=a(j);if(t==null)return null;let n=`${Math.max(0,Math.min(100,t*100))}%`,r;return e[0]===n?r=e[1]:(r=(0,h.jsx)(`div`,{className:p.BarTrack,children:(0,h.jsx)(`div`,{className:p.BarFillHealth,style:{width:n}})}),e[0]=n,e[1]=r),r}function j(e){return e.playback.streamSnapshot?.status?.health}function M(){let e=(0,f.c)(2),t=a(N);if(t==null)return null;let n=`${Math.max(0,Math.min(100,t*100))}%`,r;return e[0]===n?r=e[1]:(r=(0,h.jsx)(`div`,{className:p.BarTrack,children:(0,h.jsx)(`div`,{className:p.BarFillEnergy,style:{width:n}})}),e[0]=n,e[1]=r),r}function N(e){return e.playback.streamSnapshot?.status?.energy}var P={weapon_energy:`gui/ret_blaster`,weapon_plasma:`gui/ret_plasma`,weapon_chaingun:`gui/ret_chaingun`,weapon_disc:`gui/ret_disc`,weapon_grenade_launcher:`gui/ret_grenade`,weapon_sniper:`gui/hud_ret_sniper`,weapon_elf:`gui/ret_elf`,weapon_mortar:`gui/ret_mortor`,weapon_missile:`gui/ret_missile`,weapon_targeting:`gui/hud_ret_targlaser`,weapon_shocklance:`gui/hud_ret_shocklance`};function F(e){return e?e.replace(/\.dts$/i,``).toLowerCase():``}function I(){let e=(0,f.c)(5),t=a(L);if(t===void 0)return null;let n=P[F(t)];if(n){let t;e[0]===n?t=e[1]:(t=s(n),e[0]=n,e[1]=t);let r;return e[2]===t?r=e[3]:(r=(0,h.jsx)(`div`,{className:p.Reticle,children:(0,h.jsx)(`img`,{src:t,alt:``,className:p.ReticleImage})}),e[2]=t,e[3]=r),r}let r;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,h.jsx)(`div`,{className:p.Reticle,children:(0,h.jsx)(`div`,{className:p.ReticleDot})}),e[4]=r):r=e[4],r}function L(e){let t=e.playback.streamSnapshot;if(!t||t.camera?.mode!==`first-person`)return;let n=t.controlPlayerGhostId;if(n)return t.entities.find(e=>e.id===n)?.weaponShape}var R={0:{icon:`gui/hud_blaster`,label:`Blaster`},1:{icon:`gui/hud_plasma`,label:`Plasma`},2:{icon:`gui/hud_chaingun`,label:`Chaingun`},3:{icon:`gui/hud_disc`,label:`Spinfusor`},4:{icon:`gui/hud_grenlaunch`,label:`GL`},5:{icon:`gui/hud_sniper`,label:`Laser Rifle`},6:{icon:`gui/hud_elfgun`,label:`ELF Gun`},7:{icon:`gui/hud_new_mortar`,label:`Mortar`},8:{icon:`gui/hud_missiles`,label:`Missile`},9:{icon:`gui/hud_targetlaser`,label:`Targeting`},10:{icon:`gui/hud_shocklance`,label:`Shocklance`},11:{icon:`gui/hud_disc`,label:`Spinfusor`},12:{icon:`gui/hud_grenlaunch`,label:`GL`},13:{icon:`gui/hud_chaingun`,label:`Chaingun`},14:{icon:`gui/hud_targetlaser`,label:`Targeting`},15:{icon:`gui/hud_targetlaser`,label:`Targeting`},16:{icon:`gui/hud_shocklance`,label:`Shocklance`},17:{icon:`gui/hud_new_mortar`,label:`Mortar`}},ne=new Map(Object.entries(R).map(([e,t])=>[Number(e),s(t.icon)])),z=new Set([9,14,15]),B=s(`gui/hud_infinity`);function V(e){let t=(0,f.c)(12),{slot:n,isSelected:r}=e,i=R[n.index];if(!i)return null;let a=n.ammo<0,o;t[0]===n.index?o=t[1]:(o=ne.get(n.index),t[0]=n.index,t[1]=o);let s;t[2]!==i.label||t[3]!==o?(s=(0,h.jsx)(`img`,{src:o,alt:i.label,className:p.PackInvIcon}),t[2]=i.label,t[3]=o,t[4]=s):s=t[4];let c;t[5]!==a||t[6]!==n.ammo?(c=a?(0,h.jsx)(`img`,{src:B,alt:`\\u221E`,className:p.PackInvInfinity}):(0,h.jsx)(`span`,{className:p.PackInvCount,children:n.ammo}),t[5]=a,t[6]=n.ammo,t[7]=c):c=t[7];let l;return t[8]!==r||t[9]!==s||t[10]!==c?(l=(0,h.jsxs)(`div`,{className:p.PackInvItem,"data-active":r,children:[s,c]}),t[8]=r,t[9]=s,t[10]=c,t[11]=l):l=t[11],l}function H(){let e=(0,f.c)(15),t=a(U);if(!t||!t.slots.length)return null;let n,r;if(e[0]!==t.slots){r=[],n=[];for(let e of t.slots)z.has(e.index)?n.push(e):r.push(e);e[0]=t.slots,e[1]=n,e[2]=r}else n=e[1],r=e[2];let i;e[3]!==r||e[4]!==t?(i=r.map(e=>(0,h.jsx)(V,{slot:e,isSelected:e.index===t.activeIndex},e.index)),e[3]=r,e[4]=t,e[5]=i):i=e[5];let o;e[6]===n.length?o=e[7]:(o=n.length>0&&(0,h.jsx)(`div`,{className:p.WeaponSeparator}),e[6]=n.length,e[7]=o);let s;e[8]!==n||e[9]!==t?(s=n.map(e=>(0,h.jsx)(V,{slot:e,isSelected:e.index===t.activeIndex},e.index)),e[8]=n,e[9]=t,e[10]=s):s=e[10];let c;return e[11]!==i||e[12]!==o||e[13]!==s?(c=(0,h.jsxs)(`div`,{className:p.WeaponHUD,children:[i,o,s]}),e[11]=i,e[12]=o,e[13]=s,e[14]=c):c=e[14],c}function U(e){return e.playback.streamSnapshot?.weaponsHud}function W(){let e=(0,f.c)(18),t=a(J),n=a(q),r=a(G);if(!t?.length)return null;let o,s,c;if(e[0]!==r||e[1]!==n||e[2]!==t){let a;e[6]===n?a=e[7]:(a=(e,t)=>{if(n){if(e.teamId===n)return-1;if(t.teamId===n)return 1}return e.teamId-t.teamId},e[6]=n,e[7]=a);let l=[...t].sort(a);c=p.TeamScores,e[8]===r?o=e[9]:(o=r>0&&(0,h.jsx)(`tr`,{children:(0,h.jsxs)(`td`,{className:p.ObserverCount,colSpan:3,children:[r,` `,r===1?`observer`:`observers`]})}),e[8]=r,e[9]=o);let u;e[10]===n?u=e[11]:(u=e=>{let t=n!=null&&n>0&&e.teamId===n,r=e.name||(i[e.teamId]??`Team ${e.teamId}`);return(0,h.jsxs)(`tr`,{className:p.TeamRow,children:[(0,h.jsx)(`td`,{className:t?p.TeamNameFriendly:p.TeamNameEnemy,children:r}),(0,h.jsxs)(`td`,{className:p.TeamCount,children:[`(`,e.playerCount.toLocaleString(),`)`]}),(0,h.jsx)(`td`,{className:p.TeamScore,children:e.score.toLocaleString()})]},e.teamId)},e[10]=n,e[11]=u),s=l.map(u),e[0]=r,e[1]=n,e[2]=t,e[3]=o,e[4]=s,e[5]=c}else o=e[3],s=e[4],c=e[5];let l;e[12]!==o||e[13]!==s?(l=(0,h.jsxs)(`tbody`,{children:[o,s]}),e[12]=o,e[13]=s,e[14]=l):l=e[14];let u;return e[15]!==c||e[16]!==l?(u=(0,h.jsx)(`table`,{className:c,children:l}),e[15]=c,e[16]=l,e[17]=u):u=e[17],u}function G(e){return e.playback.streamSnapshot?.playerRoster?.filter(K).length??0}function K(e){return e.teamId<=0}function q(e){return e.playback.streamSnapshot?.playerSensorGroup}function J(e){return e.playback.streamSnapshot?.teamScores}var Y={0:`gui/hud_new_packammo`,1:`gui/hud_new_packcloak`,2:`gui/hud_new_packenergy`,3:`gui/hud_new_packrepair`,4:`gui/hud_new_packsatchel`,5:`gui/hud_new_packshield`,6:`gui/hud_new_packinventory`,7:`gui/hud_new_packmotionsens`,8:`gui/hud_new_packradar`,9:`gui/hud_new_packturretout`,10:`gui/hud_new_packturretin`,11:`gui/hud_new_packsensjam`,12:`gui/hud_new_packturret`,13:`gui/hud_new_packturret`,14:`gui/hud_new_packturret`,15:`gui/hud_new_packturret`,16:`gui/hud_new_packturret`,17:`gui/hud_new_packturret`,18:`gui/hud_satchel_unarmed`,19:`gui/hud_new_packenergy`},X={1:`gui/hud_new_packcloak_armed`,3:`gui/hud_new_packrepair_armed`,4:`gui/hud_satchel_armed`,5:`gui/hud_new_packshield_armed`,11:`gui/hud_new_packsensjam_armed`},Z=new Map(Object.entries(Y).map(([e,t])=>[Number(e),s(t)])),re=new Map(Object.entries(X).map(([e,t])=>[Number(e),s(t)])),Q={0:{icon:`gui/hud_handgren`,label:`Grenade`},1:{icon:`gui/hud_mine`,label:`Mine`},2:{icon:`gui/hud_beacon`,label:`Beacon`},3:{icon:`gui/hud_medpack`,label:`Repair Kit`}},ie=new Map(Object.entries(Q).map(([e,t])=>[Number(e),s(t.icon)]));function ae(){let e=(0,f.c)(25),t=a(ce),n=a(se),r=t&&t.packIndex>=0,i;if(r){let n;e[0]!==t.active||e[1]!==t.packIndex?(n=t.active?re.get(t.packIndex):void 0,e[0]=t.active,e[1]=t.packIndex,e[2]=n):n=e[2];let r=n,a;e[3]!==r||e[4]!==t.packIndex?(a=r??Z.get(t.packIndex),e[3]=r,e[4]=t.packIndex,e[5]=a):a=e[5],i=a}let o;if(e[6]!==n){if(o=new Map,n)for(let e of n.slots)o.set(e.slot,e.count);e[6]=n,e[7]=o}else o=e[7];let s,c,l,u;if(e[8]!==t||e[9]!==o||e[10]!==r||e[11]!==i){u=Symbol.for(`react.early_return_sentinel`);bb0:{let n=Object.keys(Q).map(Number).sort(oe);if(!r&&!o.size){u=null;break bb0}s=p.PackInventoryHUD,e[16]!==t||e[17]!==i?(c=i&&(0,h.jsxs)(`div`,{className:p.PackInvItem,"data-active":t.active??!1,children:[(0,h.jsx)(`img`,{src:i,alt:``,className:p.PackInvIcon}),(0,h.jsx)(`span`,{className:p.PackInvCount,children:t.text||`\xA0`})]}),e[16]=t,e[17]=i,e[18]=c):c=e[18];let a;e[19]===o?a=e[20]:(a=e=>{let t=Q[e],n=ie.get(e);return!t||!n?null:(0,h.jsxs)(`div`,{className:p.PackInvItem,children:[(0,h.jsx)(`img`,{src:n,alt:t.label,className:p.PackInvIcon}),(0,h.jsx)(`span`,{className:p.PackInvCount,children:o.get(e)??0})]},e)},e[19]=o,e[20]=a),l=n.map(a)}e[8]=t,e[9]=o,e[10]=r,e[11]=i,e[12]=s,e[13]=c,e[14]=l,e[15]=u}else s=e[12],c=e[13],l=e[14],u=e[15];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d;return e[21]!==s||e[22]!==c||e[23]!==l?(d=(0,h.jsxs)(`div`,{className:s,children:[c,l]}),e[21]=s,e[22]=c,e[23]=l,e[24]=d):d=e[24],d}function oe(e,t){return e-t}function se(e){return e.playback.streamSnapshot?.inventoryHud}function ce(e){return e.playback.streamSnapshot?.backpackHud}function le(){let e=(0,f.c)(10),t=a(ue),n=d(c,$),r=t&&n!==`freeFly`,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,h.jsx)(y,{}),e[0]=i):i=e[0];let o;e[1]===r?o=e[2]:(o=r&&(0,h.jsxs)(`div`,{className:p.Bars,children:[(0,h.jsx)(A,{}),(0,h.jsx)(M,{})]}),e[1]=r,e[2]=o);let s;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,h.jsx)(D,{}),e[3]=s):s=e[3];let l;e[4]===r?l=e[5]:(l=r&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(H,{}),(0,h.jsx)(ae,{}),(0,h.jsx)(I,{})]}),e[4]=r,e[5]=l);let u;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,h.jsx)(W,{}),e[6]=u):u=e[6];let m;return e[7]!==o||e[8]!==l?(m=(0,h.jsxs)(`div`,{className:p.PlayerHUD,children:[i,o,s,l,u]}),e[7]=o,e[8]=l,e[9]=m):m=e[9],m}function $(e){return e.cameraMode}function ue(e){return!!e.playback.streamSnapshot?.controlPlayerGhostId}export{le as PlayerHUD}; \ No newline at end of file diff --git a/docs/assets/PlayerModel-CbQhsRlW.js b/docs/assets/PlayerModel-Cm8DLHtl.js similarity index 99% rename from docs/assets/PlayerModel-CbQhsRlW.js rename to docs/assets/PlayerModel-Cm8DLHtl.js index ad284d69..ed0708f6 100644 --- a/docs/assets/PlayerModel-CbQhsRlW.js +++ b/docs/assets/PlayerModel-Cm8DLHtl.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{i}from"./react-three-fiber.esm-CgPHUpXo.js";import{a}from"./SettingsProvider-CCHVZuSg.js";import{S as o,a as s,d as c,f as l,i as u,l as d,p as f,r as p,t as m}from"./GenericShape-BC0gDQiR.js";import{$ as h,Q as g,bt as _,i as v,o as y,s as b}from"./three.module-07hRbor4.js";import{a as x,i as S,o as C}from"./engineStore-Dkm20jvr.js";import{r as ee}from"./loaders-CIpiZadQ.js";import{n as te}from"./AudioContext-CMp1T7r9.js";import{getCachedAudioBuffer as ne,getSoundGeneration as w,playOneShotSound as T,resolveAudioProfile as re,trackSound as ie,untrackSound as E}from"./AudioEmitter-2bTNGdLP.js";import{t as D}from"./DebugSuspense-Dk4MzcWf.js";import{n as O}from"./streamPlaybackStore-DhJekvnx.js";import{c as k}from"./globalFogUniforms-CtxQvsRj.js";import{t as A}from"./ShapeErrorBoundary-CJ_4YTMy.js";var j=t(),M=e(n(),1),N=.1,P=20;function F(e){return-2*Math.atan2(e[1],e[3])}function ae(e,t,n,r){if(n)return{animation:`fall`,timeScale:1};if(!e)return{animation:`root`,timeScale:1};let[i,a,o]=e,s=i*i+a*a;if(Math.abs(o)>2||s>P*P)return r?{animation:`jet`,timeScale:1}:{animation:`root`,timeScale:1};let c=F(t),l=Math.cos(c),u=Math.sin(c),d=i*l+a*u,f=-i*u+a*l,p=f,m=-f,h=-d,g=Math.max(p,m,h,d);return g0&&(this.delayTime=e[0].timeoutValue??0)}get stateIndex(){return this.currentStateIndex}reset(){this.currentStateIndex=0,this.delayTime=this.states.length>0?this.states[0].timeoutValue??0:0,this.lastFireCount=-1}tick(e,t){if(this.states.length===0)return{sequenceName:null,isFiring:!1,spinTimeScale:0,reverse:!1,scaleAnimation:!1,timeoutValue:0,transitioned:!1,soundDataBlockIds:[],stateIndex:-1};let n=this.lastFireCount>=0&&t.fireCount!==this.lastFireCount;this.lastFireCount=t.fireCount;let r=[];if(n){let e=this.states.findIndex(e=>e.fire);if(e>=0&&e!==this.currentStateIndex){this.currentStateIndex=e,this.delayTime=this.states[e].timeoutValue??0;let t=this.states[e].soundDataBlockId;t>=0&&r.push(t)}}this.delayTime-=e;let i=n,a=this.evaluateTickTransitions(t),o=0;for(;a>=0&&o=0&&r.push(c),this.states[a].spin){case R:this.spinTimeScale=0;break;case V:this.spinTimeScale=1;break;case z:e===B&&s>0&&(this.delayTime*=1-n/s);break;case B:e===z&&s>0&&(this.delayTime*=1-n/s);break}a=this.evaluateEntryTransitions(t)}let s=this.states[this.currentStateIndex],c=s.timeoutValue??0;switch(s.spin){case R:this.spinTimeScale=0;break;case z:this.spinTimeScale=c>0?Math.max(0,1-this.delayTime/c):1;break;case V:this.spinTimeScale=1;break;case B:this.spinTimeScale=c>0?Math.max(0,this.delayTime/c):0;break}return{sequenceName:this.resolveSequenceName(s),isFiring:s.fire,spinTimeScale:this.spinTimeScale,reverse:!s.direction,scaleAnimation:s.scaleAnimation,timeoutValue:s.timeoutValue??0,transitioned:i,soundDataBlockIds:r,stateIndex:this.currentStateIndex}}evaluateTickTransitions(e){let t=this.states[this.currentStateIndex],n=this.delayTime<=0;if(!(n||!t.waitForTimeout))return-1;let r=this.evaluateConditions(t,e);if(r!==-1)return r;if(n){let e=t.transitionOnTimeout;if(e!==I)return e}return-1}evaluateEntryTransitions(e){let t=this.states[this.currentStateIndex];return this.evaluateConditions(t,e)}evaluateConditions(e,t){let n=t.loaded?e.transitionOnLoaded:e.transitionOnNotLoaded;if(n!==I)return n;let r=t.ammo?e.transitionOnAmmo:e.transitionOnNoAmmo;if(r!==I)return r;let i=t.target?e.transitionOnTarget:e.transitionOnNoTarget;if(i!==I)return i;let a=t.wet?e.transitionOnWet:e.transitionOnNotWet;if(a!==I)return a;let o=t.triggerDown?e.transitionOnTriggerDown:e.transitionOnTriggerUp;return o===I?-1:o}resolveSequenceName(e){return e.sequence==null||e.sequence<0?null:this.seqIndexToName[e.sequence]??null}},U=r();function oe(e){if(!e)return`lookde`;let t=e.toLowerCase();return t.includes(`missile`)?`lookms`:t.includes(`sniper`)?`looksn`:`lookde`}var W=8,G=[`root`,`run`,`back`,`side`,`fall`,`jet`,`jump`,`land`];function K(e,t,n=0){let r=new Map,i=[];for(let n of e){let e=n.indexOf(` `);if(e===-1)continue;let r=n.slice(0,e).toLowerCase(),a=n.slice(e+1).trim().toLowerCase();if(!a||!r.startsWith(t)||!r.endsWith(`.dsq`))continue;let o=r.slice(t.length,-4);o&&i.push({clipName:o,alias:a})}let a=new Set;for(let e=0;e{let t=n?.toLowerCase();return t?e.runtime.sequenceAliases.get(t):void 0}),l=k(),{clonedScene:w,mixer:T,mount0:j,mount1:N,mount2:P,iflInitializers:F}=(0,M.useMemo)(()=>{let e=o(r.scene),t=f(e,void 0,{anisotropy:l});e.traverse(e=>{if(e.isMesh&&e.material){let t=Array.isArray(e.material)?e.material:[e.material];for(let e of t)e.side=0}});let n=new y(e),i=null,a=null,s=null;return e.traverse(e=>{!i&&e.name===`Mount0`&&(i=e),!a&&e.name===`Mount1`&&(a=e),!s&&e.name===`Mount2`&&(s=e)}),{clonedScene:e,mixer:n,mount0:i,mount1:a,mount2:s,iflInitializers:t}},[r,l]);(0,M.useEffect)(()=>()=>{d(w),T.uncacheRoot(w)},[w,T]);let I=(0,M.useRef)(new Map),L=(0,M.useRef)({head:null,headside:null}),R=(0,M.useRef)(new Map),z=(0,M.useRef)(null),B=(0,M.useRef)({name:`root`,timeScale:1}),V=(0,M.useRef)(!1),H=(0,M.useRef)(void 0),G=(0,M.useMemo)(()=>{let e=t.getState().playback.recording?.streamingPlayback,i=n?.toLowerCase();if(!e||!i)return new Map;let a=e.getShapeConstructorSequences(i);if(!a)return new Map;let o=i.replace(/\.dts$/i,``)+`_`;return K(a,o,se(r.scene,a,o))},[t,n,r.scene]),q=(0,M.useMemo)(()=>{let e=new Map,t=r.scene.userData?.dts_sequence_names,n=r.scene.userData?.dts_sequence_cyclic;if(typeof t==`string`&&typeof n==`string`)try{let r=JSON.parse(t),i=JSON.parse(n),a=new Map;for(let e=0;e{let e=C(r.animations,T,s);I.current=e;let t=e.get(`root`);t&&t.play(),B.current={name:`root`,timeScale:1};let n={head:null,headside:null};for(let{key:e,names:t}of[{key:`head`,names:[`head`]},{key:`headside`,names:[`headside`]}]){let i=r.animations.find(e=>t.includes(e.name.toLowerCase()));if(!i)continue;let a=i.clone(),o=Math.round(i.duration*30/2);b.makeClipAdditive(a,o,i,30);let s=T.clipAction(a);s.blendMode=v,s.timeScale=0,s.weight=1,s.play(),n[e]=s}L.current=n;let i=new Map,a=r.animations.find(e=>e.name.toLowerCase()===`lookde`),o=a?Math.round(a.duration*30/2):0;for(let e of[`lookde`,`lookms`,`looksn`]){let t=r.animations.find(t=>t.name.toLowerCase()===e);if(!t)continue;let n=t.clone(),s=a??t;b.makeClipAdditive(n,o,s,30);let c=T.clipAction(n);c.blendMode=v,c.timeScale=0,c.weight=0,c.play(),i.set(e,c)}R.current=i;let c=i.get(`lookde`);return c&&(c.weight=1,z.current=`lookde`),T.update(0),()=>{T.stopAllAction(),I.current=new Map,L.current={head:null,headside:null},R.current=new Map,z.current=null}},[T,r.animations,s]),(0,M.useEffect)(()=>{let e=[];for(let{mesh:t,initialize:n}of F)n(t,()=>O.getState().time).then(t=>e.push(t)).catch(()=>{});return()=>e.forEach(e=>e())},[F]);let ce=(0,M.useRef)(e.weaponShape),[J,le]=(0,M.useState)(e.weaponShape),de=(0,M.useRef)(e.packShape),[Y,fe]=(0,M.useState)(e.packShape),pe=(0,M.useRef)(e.flagShape),[X,Z]=(0,M.useState)(e.flagShape),{audioLoader:Q,audioListener:$}=te(),he=a()?.audioEnabled??!1,ge=(0,M.useRef)(null),_e=(0,M.useRef)(null),ve=(0,M.useRef)(null);return(0,M.useEffect)(()=>{if(!Q)return;let n=t.getState().playback.recording?.streamingPlayback;if(!n||!e.dataBlockId)return;let r=n.getDataBlockData.bind(n),i=r(e.dataBlockId)?.sounds?.[0];if(i==null)return;let a=re(i,r);if(a){ve.current=a;try{ne(ee(a.filename),Q,e=>{_e.current=e})}catch{}}},[Q,t,e.dataBlockId]),(0,M.useEffect)(()=>()=>{let e=ge.current;if(e){E(e);try{e.stop()}catch{}try{e.disconnect()}catch{}e.parent?.remove(e),ge.current=null}},[]),i((n,r)=>{e.weaponShape!==ce.current&&(ce.current=e.weaponShape,le(e.weaponShape)),e.packShape!==de.current&&(de.current=e.packShape,fe(e.packShape)),e.flagShape!==pe.current&&(pe.current=e.flagShape,Z(e.flagShape));let i=t.getState().playback,a=i.status===`playing`,o=O.getState().time,s=c(e.keyframes??[],o),l=s?.damageState!=null&&s.damageState>=1,d=I.current;if(l&&!V.current){V.current=!0;let e=s.actionAnim==null?void 0:G.get(s.actionAnim);if(e){let t=d.get(e.clipName);if(t){let n=d.get(B.current.name.toLowerCase());n&&n.fadeOut(u),t.setLoop(g,1),t.clampWhenFinished=!0,t.reset().fadeIn(u).play(),B.current={name:e.clipName,timeScale:1},H.current=s.actionAnim}}}if(!l&&V.current){V.current=!1,H.current=void 0;let e=d.get(B.current.name.toLowerCase());e&&(e.stop(),e.setLoop(h,1/0),e.clampWhenFinished=!1),B.current={name:`root`,timeScale:1};let t=d.get(`root`);t&&t.reset().play()}let f=s?.actionAnim,p=H.current;if(!V.current&&f!==p){H.current=f;let e=f!=null&&f>=W,t=p!=null&&p>=W;if(e){let e=G.get(f);if(e){let t=d.get(e.clipName);if(t){let n=d.get(B.current.name.toLowerCase());n&&n.fadeOut(u),t.setLoop(g,1),t.clampWhenFinished=!0,t.reset().fadeIn(u).play(),B.current={name:e.clipName,timeScale:1}}}}else if(t){let e=G.get(p);if(e){let t=d.get(e.clipName);t&&(t.fadeOut(u),t.setLoop(h,1/0),t.clampWhenFinished=!1)}B.current={name:`root`,timeScale:1};let t=d.get(`root`);t&&t.reset().fadeIn(u).play()}}if(f!=null&&f>=W&&s?.actionAtEnd){let e=G.get(f);if(e){let t=d.get(e.clipName);t&&(t.paused=!0)}}let m=H.current!=null&&H.current>=W;if(!V.current&&!m){let t=ae(s?.velocity,s?.rotation??[0,0,0,1],e.falling,e.jetting),n=B.current;if(t.animation!==n.name||t.timeScale!==n.timeScale){let e=d.get(n.name.toLowerCase()),r=d.get(t.animation.toLowerCase());r&&(q.get(t.animation)??!0?(r.setLoop(h,1/0),r.clampWhenFinished=!1):(r.setLoop(g,1),r.clampWhenFinished=!0),a&&e&&e!==r?(e.fadeOut(u),r.reset().fadeIn(u).play()):(e&&e!==r&&e.stop(),r.reset().play()),r.timeScale=t.timeScale,B.current={name:t.animation,timeScale:t.timeScale})}}let v=oe(e.weaponShape);if(v!==z.current){let e=R.current,t=z.current?e.get(z.current):null,n=e.get(v);n&&(t&&(t.weight=0),n.weight=l?0:1,z.current=v)}let{head:y,headside:b}=L.current,x=z.current?R.current.get(z.current):null,S=l?0:1,C=e.headPitch??0,ee=e.headYaw??0,te=(C+1)/2,ne=(ee+1)/2;x&&(x.time=te*x.getClip().duration,x.weight=S),y&&(y.time=te*y.getClip().duration,y.weight=S),b&&(b.time=ne*b.getClip().duration,b.weight=S);let re=!!e.jetting&&!l,D=ve.current,k=ge.current,A=k?.isPlaying??!1;if(re&&!A){if(he&&$&&_e.current&&D){let e=k;e||(e=new _($),e.setDistanceModel(`inverse`),e.setRefDistance(D.refDist),e.setMaxDistance(D.maxDist),e.setRolloffFactor(1),e.setVolume(D.volume),w.add(e),ge.current=e);try{e.setBuffer(_e.current),e.setLoop(!0),e.setPlaybackRate(i.rate),e.play(),ie(e,1)}catch{}}}else if(!re&&A&&k){E(k);try{k.stop()}catch{}}a?T.update(r*i.rate):T.update(0)}),(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`group`,{rotation:[0,Math.PI/2,0],children:(0,U.jsx)(`primitive`,{object:w})}),J&&j&&(0,U.jsx)(A,{fallback:(0,U.jsx)(m,{color:`red`,label:J}),children:(0,U.jsx)(D,{name:`Weapon:${e.id}/${J}`,fallback:(0,U.jsx)(m,{color:`cyan`,label:J}),children:(0,U.jsx)(ue,{entity:e,weaponShape:J,mount0:j})})},J),Y&&N&&(0,U.jsx)(A,{fallback:(0,U.jsx)(m,{color:`red`,label:Y}),children:(0,U.jsx)(D,{name:`Pack:${e.id}/${Y}`,fallback:(0,U.jsx)(m,{color:`cyan`,label:Y}),children:(0,U.jsx)(me,{packShape:Y,mountBone:N})})},Y),X&&P&&(0,U.jsx)(A,{fallback:(0,U.jsx)(m,{color:`red`,label:X}),children:(0,U.jsx)(D,{name:`Flag:${e.id}/${X}`,fallback:(0,U.jsx)(m,{color:`cyan`,label:X}),children:(0,U.jsx)(me,{packShape:X,mountBone:P})})},X)]})}function le(e,t){let n=e.userData?.dts_sequence_names;if(typeof n==`string`)try{return JSON.parse(n).map(e=>e.toLowerCase())}catch{}return t.map(e=>e.name.toLowerCase())}function ue(e){let t=(0,j.c)(43),{entity:n,weaponShape:r,mount0:s}=e,c=x(),u=p(r),m=k(),g,v,b,S;if(t[0]!==m||t[1]!==u.animations||t[2]!==u.scene){g=o(u.scene),v=f(g,void 0,{anisotropy:m});let e=l(u.scene,u.animations,`Mountpoint`);if(e){let t=e.quaternion.clone().invert(),n=e.position.clone().negate().applyQuaternion(t);g.position.copy(n),g.quaternion.copy(t)}S=new Map,g.traverse(e=>{if(!e.isMesh)return;let t=(e.userData?.vis_sequence??``).toLowerCase();if(!t)return;let n=S.get(t);n||(n=[],S.set(t,n)),n.push(e)}),b=new y(g),t[0]=m,t[1]=u.animations,t[2]=u.scene,t[3]=g,t[4]=v,t[5]=b,t[6]=S}else g=t[3],v=t[4],b=t[5],S=t[6];let C=b,E=u.scene,D;t[7]!==E||t[8]!==u.animations?(D=le(E,u.animations),t[7]=E,t[8]=u.animations,t[9]=D):D=t[9];let O=D,A;t[10]!==g||t[11]!==v||t[12]!==C||t[13]!==O||t[14]!==S?(A={weaponClone:g,weaponMixer:C,seqIndexToName:O,visNodesBySequence:S,weaponIflInitializers:v},t[10]=g,t[11]=v,t[12]=C,t[13]=O,t[14]=S,t[15]=A):A=t[15];let{weaponClone:N,weaponMixer:P,seqIndexToName:F,visNodesBySequence:ae,weaponIflInitializers:I}=A,L,R;t[16]!==N||t[17]!==P?(L=()=>()=>{d(N),P.uncacheRoot(N)},R=[N,P],t[16]=N,t[17]=P,t[18]=L,t[19]=R):(L=t[18],R=t[19]),(0,M.useEffect)(L,R);let z;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(z=new Map,t[20]=z):z=t[20];let B=(0,M.useRef)(z),V=(0,M.useRef)(null),U,oe;t[21]!==u.animations||t[22]!==P?(U=()=>{let e=new Map;for(let t of u.animations)e.set(t.name.toLowerCase(),P.clipAction(t));B.current=e;let t=e.get(`spin`);return t&&(t.setLoop(h,1/0),t.timeScale=0,t.play()),V.current=t??null,P.update(0),()=>{P.stopAllAction(),B.current=new Map,V.current=null,ce(X,Z)}},oe=[P,u.animations],t[21]=u.animations,t[22]=P,t[23]=U,t[24]=oe):(U=t[23],oe=t[24]),(0,M.useEffect)(U,oe);let W,G;t[25]===I?(W=t[26],G=t[27]):(W=()=>{let e=[];for(let{mesh:t,initialize:n}of I)n(t,fe).then(t=>e.push(t)).catch(Y);return()=>e.forEach(de)},G=[I],t[25]=I,t[26]=W,t[27]=G),(0,M.useEffect)(W,G);let{audioLoader:K,audioListener:q}=te(),se=a()?.audioEnabled??!1,J=(0,M.useRef)(null),ue=(0,M.useRef)(null),me=(0,M.useRef)(n.weaponImageStates),X=(0,M.useRef)(null),Z=(0,M.useRef)(-1),Q,$;t[28]!==s||t[29]!==N?(Q=()=>(s.add(N),()=>{s.remove(N)}),$=[N,s],t[28]=s,t[29]=N,t[30]=Q,t[31]=$):(Q=t[30],$=t[31]),(0,M.useEffect)(Q,$);let he;return t[32]!==se||t[33]!==q||t[34]!==K||t[35]!==c||t[36]!==n.weaponImageState||t[37]!==n.weaponImageStates||t[38]!==F||t[39]!==ae||t[40]!==N||t[41]!==P?(he=(e,t)=>{let r=c.getState().playback,i=r.status===`playing`,a=B.current,o=n.weaponImageState,s=n.weaponImageStates;s!==me.current&&(me.current=s,s&&s.length>0?J.current=new H(s,F):J.current=null,ue.current=null,ce(X,Z,N)),!J.current&&s&&s.length>0&&(J.current=new H(s,F));let l=J.current;if(l&&o&&i){let e=t*r.rate,n=l.tick(e,o);if(pe(n,a,ue,ae),X.current&&n.stateIndex!==Z.current&&ce(X,Z,N),se&&K&&q&&n.soundDataBlockIds.length>0){let e=r.recording?.streamingPlayback.getDataBlockData.bind(r.recording.streamingPlayback);if(e)for(let t of n.soundDataBlockIds){let n=re(t,e);if(n)if(n.isLooping){if(!X.current)try{let e=ee(n.filename),t=w();ne(e,K,e=>{if(t!==w()||X.current)return;let i=l.stateIndex,a=new _(q);a.setBuffer(e),a.setDistanceModel(`inverse`),a.setRefDistance(n.refDist),a.setMaxDistance(n.maxDist),a.setRolloffFactor(1),a.setVolume(n.volume),a.setPlaybackRate(r.rate),a.setLoop(!0),N.add(a),ie(a),a.play(),X.current=a,Z.current=i})}catch{}}else T(n,q,K,void 0,N)}}V.current&&(V.current.timeScale=n.spinTimeScale)}i?P.update(t*r.rate):P.update(0)},t[32]=se,t[33]=q,t[34]=K,t[35]=c,t[36]=n.weaponImageState,t[37]=n.weaponImageStates,t[38]=F,t[39]=ae,t[40]=N,t[41]=P,t[42]=he):he=t[42],i(he),null}function de(e){return e()}function Y(){}function fe(){return O.getState().time}function pe(e,t,n,r){let i=e.sequenceName,a=n.current;if(i===a&&!e.transitioned)return;if(i!==a){if(a){let e=r.get(a);if(e)for(let t of e)t.visible=!1}if(i){let e=r.get(i);if(e)for(let t of e)t.visible=!0}}if(!i){if(a){let e=t.get(a);e&&e.fadeOut(u),n.current=null}return}let o=t.get(i);if(o&&(e.transitioned||i!==a)){let r=a?t.get(a):null;if(e.isFiring||e.timeoutValue>0?(o.setLoop(g,1),o.clampWhenFinished=!0):(o.setLoop(h,1/0),o.clampWhenFinished=!1),e.scaleAnimation&&e.timeoutValue>0){let t=o.getClip().duration;o.timeScale=t>0?t/e.timeoutValue:1}else o.timeScale=e.reverse?-1:1;r&&r!==o?(r.fadeOut(u),o.reset().fadeIn(u).play()):o.reset().play(),n.current=i}}function me(e){let t=(0,j.c)(15),{packShape:n,mountBone:r}=e,i=p(n),a=k(),s,c;if(t[0]!==a||t[1]!==i.animations||t[2]!==i.scene){s=o(i.scene),c=f(s,void 0,{anisotropy:a});let e=l(i.scene,i.animations,`Mountpoint`);if(e){let t=e.quaternion.clone().invert(),n=e.position.clone().negate().applyQuaternion(t);s.position.copy(n),s.quaternion.copy(t)}t[0]=a,t[1]=i.animations,t[2]=i.scene,t[3]=s,t[4]=c}else s=t[3],c=t[4];let u;t[5]!==s||t[6]!==c?(u={packClone:s,packIflInitializers:c},t[5]=s,t[6]=c,t[7]=u):u=t[7];let{packClone:m,packIflInitializers:h}=u,g,_;t[8]!==r||t[9]!==m?(g=()=>(r.add(m),()=>{r.remove(m),d(m)}),_=[m,r],t[8]=r,t[9]=m,t[10]=g,t[11]=_):(g=t[10],_=t[11]),(0,M.useEffect)(g,_);let v,y;return t[12]===h?(v=t[13],y=t[14]):(v=()=>{let e=[];for(let{mesh:t,initialize:n}of h)n(t,Q).then(t=>e.push(t)).catch(Z);return()=>e.forEach(X)},y=[h],t[12]=h,t[13]=v,t[14]=y),(0,M.useEffect)(v,y),null}function X(e){return e()}function Z(){}function Q(){return O.getState().time}function $(e){let t=(0,j.c)(7),{shapeName:n,eyeOffsetRef:r}=e,i=p(n),a;t[0]!==r||t[1]!==i.animations||t[2]!==i.scene?(a=()=>{let e=l(i.scene,i.animations,`Eye`);e?r.current.set(e.position.z,e.position.y,-e.position.x):r.current.set(0,s,0)},t[0]=r,t[1]=i.animations,t[2]=i.scene,t[3]=a):a=t[3];let o;return t[4]!==r||t[5]!==i?(o=[i,r],t[4]=r,t[5]=i,t[6]=o):o=t[6],(0,M.useEffect)(a,o),null}export{$ as PlayerEyeOffset,J as PlayerModel}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{i}from"./react-three-fiber.esm-CgPHUpXo.js";import{a}from"./SettingsProvider-CCHVZuSg.js";import{S as o,a as s,d as c,f as l,i as u,l as d,p as f,r as p,t as m}from"./GenericShape-FZ5loHEW.js";import{$ as h,Q as g,bt as _,i as v,o as y,s as b}from"./three.module-07hRbor4.js";import{a as x,i as S,o as C}from"./engineStore-Dkm20jvr.js";import{r as ee}from"./loaders-CIpiZadQ.js";import{n as te}from"./AudioContext-CMp1T7r9.js";import{getCachedAudioBuffer as ne,getSoundGeneration as w,playOneShotSound as T,resolveAudioProfile as re,trackSound as ie,untrackSound as E}from"./AudioEmitter-Dk4R9QgT.js";import{t as D}from"./DebugSuspense-Dk4MzcWf.js";import{n as O}from"./streamPlaybackStore-DhJekvnx.js";import{c as k}from"./globalFogUniforms-CtxQvsRj.js";import{t as A}from"./ShapeErrorBoundary-CJ_4YTMy.js";var j=t(),M=e(n(),1),N=.1,P=20;function F(e){return-2*Math.atan2(e[1],e[3])}function ae(e,t,n,r){if(n)return{animation:`fall`,timeScale:1};if(!e)return{animation:`root`,timeScale:1};let[i,a,o]=e,s=i*i+a*a;if(Math.abs(o)>2||s>P*P)return r?{animation:`jet`,timeScale:1}:{animation:`root`,timeScale:1};let c=F(t),l=Math.cos(c),u=Math.sin(c),d=i*l+a*u,f=-i*u+a*l,p=f,m=-f,h=-d,g=Math.max(p,m,h,d);return g0&&(this.delayTime=e[0].timeoutValue??0)}get stateIndex(){return this.currentStateIndex}reset(){this.currentStateIndex=0,this.delayTime=this.states.length>0?this.states[0].timeoutValue??0:0,this.lastFireCount=-1}tick(e,t){if(this.states.length===0)return{sequenceName:null,isFiring:!1,spinTimeScale:0,reverse:!1,scaleAnimation:!1,timeoutValue:0,transitioned:!1,soundDataBlockIds:[],stateIndex:-1};let n=this.lastFireCount>=0&&t.fireCount!==this.lastFireCount;this.lastFireCount=t.fireCount;let r=[];if(n){let e=this.states.findIndex(e=>e.fire);if(e>=0&&e!==this.currentStateIndex){this.currentStateIndex=e,this.delayTime=this.states[e].timeoutValue??0;let t=this.states[e].soundDataBlockId;t>=0&&r.push(t)}}this.delayTime-=e;let i=n,a=this.evaluateTickTransitions(t),o=0;for(;a>=0&&o=0&&r.push(c),this.states[a].spin){case R:this.spinTimeScale=0;break;case V:this.spinTimeScale=1;break;case z:e===B&&s>0&&(this.delayTime*=1-n/s);break;case B:e===z&&s>0&&(this.delayTime*=1-n/s);break}a=this.evaluateEntryTransitions(t)}let s=this.states[this.currentStateIndex],c=s.timeoutValue??0;switch(s.spin){case R:this.spinTimeScale=0;break;case z:this.spinTimeScale=c>0?Math.max(0,1-this.delayTime/c):1;break;case V:this.spinTimeScale=1;break;case B:this.spinTimeScale=c>0?Math.max(0,this.delayTime/c):0;break}return{sequenceName:this.resolveSequenceName(s),isFiring:s.fire,spinTimeScale:this.spinTimeScale,reverse:!s.direction,scaleAnimation:s.scaleAnimation,timeoutValue:s.timeoutValue??0,transitioned:i,soundDataBlockIds:r,stateIndex:this.currentStateIndex}}evaluateTickTransitions(e){let t=this.states[this.currentStateIndex],n=this.delayTime<=0;if(!(n||!t.waitForTimeout))return-1;let r=this.evaluateConditions(t,e);if(r!==-1)return r;if(n){let e=t.transitionOnTimeout;if(e!==I)return e}return-1}evaluateEntryTransitions(e){let t=this.states[this.currentStateIndex];return this.evaluateConditions(t,e)}evaluateConditions(e,t){let n=t.loaded?e.transitionOnLoaded:e.transitionOnNotLoaded;if(n!==I)return n;let r=t.ammo?e.transitionOnAmmo:e.transitionOnNoAmmo;if(r!==I)return r;let i=t.target?e.transitionOnTarget:e.transitionOnNoTarget;if(i!==I)return i;let a=t.wet?e.transitionOnWet:e.transitionOnNotWet;if(a!==I)return a;let o=t.triggerDown?e.transitionOnTriggerDown:e.transitionOnTriggerUp;return o===I?-1:o}resolveSequenceName(e){return e.sequence==null||e.sequence<0?null:this.seqIndexToName[e.sequence]??null}},U=r();function oe(e){if(!e)return`lookde`;let t=e.toLowerCase();return t.includes(`missile`)?`lookms`:t.includes(`sniper`)?`looksn`:`lookde`}var W=8,G=[`root`,`run`,`back`,`side`,`fall`,`jet`,`jump`,`land`];function K(e,t,n=0){let r=new Map,i=[];for(let n of e){let e=n.indexOf(` `);if(e===-1)continue;let r=n.slice(0,e).toLowerCase(),a=n.slice(e+1).trim().toLowerCase();if(!a||!r.startsWith(t)||!r.endsWith(`.dsq`))continue;let o=r.slice(t.length,-4);o&&i.push({clipName:o,alias:a})}let a=new Set;for(let e=0;e{let t=n?.toLowerCase();return t?e.runtime.sequenceAliases.get(t):void 0}),l=k(),{clonedScene:w,mixer:T,mount0:j,mount1:N,mount2:P,iflInitializers:F}=(0,M.useMemo)(()=>{let e=o(r.scene),t=f(e,void 0,{anisotropy:l});e.traverse(e=>{if(e.isMesh&&e.material){let t=Array.isArray(e.material)?e.material:[e.material];for(let e of t)e.side=0}});let n=new y(e),i=null,a=null,s=null;return e.traverse(e=>{!i&&e.name===`Mount0`&&(i=e),!a&&e.name===`Mount1`&&(a=e),!s&&e.name===`Mount2`&&(s=e)}),{clonedScene:e,mixer:n,mount0:i,mount1:a,mount2:s,iflInitializers:t}},[r,l]);(0,M.useEffect)(()=>()=>{d(w),T.uncacheRoot(w)},[w,T]);let I=(0,M.useRef)(new Map),L=(0,M.useRef)({head:null,headside:null}),R=(0,M.useRef)(new Map),z=(0,M.useRef)(null),B=(0,M.useRef)({name:`root`,timeScale:1}),V=(0,M.useRef)(!1),H=(0,M.useRef)(void 0),G=(0,M.useMemo)(()=>{let e=t.getState().playback.recording?.streamingPlayback,i=n?.toLowerCase();if(!e||!i)return new Map;let a=e.getShapeConstructorSequences(i);if(!a)return new Map;let o=i.replace(/\.dts$/i,``)+`_`;return K(a,o,se(r.scene,a,o))},[t,n,r.scene]),q=(0,M.useMemo)(()=>{let e=new Map,t=r.scene.userData?.dts_sequence_names,n=r.scene.userData?.dts_sequence_cyclic;if(typeof t==`string`&&typeof n==`string`)try{let r=JSON.parse(t),i=JSON.parse(n),a=new Map;for(let e=0;e{let e=C(r.animations,T,s);I.current=e;let t=e.get(`root`);t&&t.play(),B.current={name:`root`,timeScale:1};let n={head:null,headside:null};for(let{key:e,names:t}of[{key:`head`,names:[`head`]},{key:`headside`,names:[`headside`]}]){let i=r.animations.find(e=>t.includes(e.name.toLowerCase()));if(!i)continue;let a=i.clone(),o=Math.round(i.duration*30/2);b.makeClipAdditive(a,o,i,30);let s=T.clipAction(a);s.blendMode=v,s.timeScale=0,s.weight=1,s.play(),n[e]=s}L.current=n;let i=new Map,a=r.animations.find(e=>e.name.toLowerCase()===`lookde`),o=a?Math.round(a.duration*30/2):0;for(let e of[`lookde`,`lookms`,`looksn`]){let t=r.animations.find(t=>t.name.toLowerCase()===e);if(!t)continue;let n=t.clone(),s=a??t;b.makeClipAdditive(n,o,s,30);let c=T.clipAction(n);c.blendMode=v,c.timeScale=0,c.weight=0,c.play(),i.set(e,c)}R.current=i;let c=i.get(`lookde`);return c&&(c.weight=1,z.current=`lookde`),T.update(0),()=>{T.stopAllAction(),I.current=new Map,L.current={head:null,headside:null},R.current=new Map,z.current=null}},[T,r.animations,s]),(0,M.useEffect)(()=>{let e=[];for(let{mesh:t,initialize:n}of F)n(t,()=>O.getState().time).then(t=>e.push(t)).catch(()=>{});return()=>e.forEach(e=>e())},[F]);let ce=(0,M.useRef)(e.weaponShape),[J,le]=(0,M.useState)(e.weaponShape),de=(0,M.useRef)(e.packShape),[Y,fe]=(0,M.useState)(e.packShape),pe=(0,M.useRef)(e.flagShape),[X,Z]=(0,M.useState)(e.flagShape),{audioLoader:Q,audioListener:$}=te(),he=a()?.audioEnabled??!1,ge=(0,M.useRef)(null),_e=(0,M.useRef)(null),ve=(0,M.useRef)(null);return(0,M.useEffect)(()=>{if(!Q)return;let n=t.getState().playback.recording?.streamingPlayback;if(!n||!e.dataBlockId)return;let r=n.getDataBlockData.bind(n),i=r(e.dataBlockId)?.sounds?.[0];if(i==null)return;let a=re(i,r);if(a){ve.current=a;try{ne(ee(a.filename),Q,e=>{_e.current=e})}catch{}}},[Q,t,e.dataBlockId]),(0,M.useEffect)(()=>()=>{let e=ge.current;if(e){E(e);try{e.stop()}catch{}try{e.disconnect()}catch{}e.parent?.remove(e),ge.current=null}},[]),i((n,r)=>{e.weaponShape!==ce.current&&(ce.current=e.weaponShape,le(e.weaponShape)),e.packShape!==de.current&&(de.current=e.packShape,fe(e.packShape)),e.flagShape!==pe.current&&(pe.current=e.flagShape,Z(e.flagShape));let i=t.getState().playback,a=i.status===`playing`,o=O.getState().time,s=c(e.keyframes??[],o),l=s?.damageState!=null&&s.damageState>=1,d=I.current;if(l&&!V.current){V.current=!0;let e=s.actionAnim==null?void 0:G.get(s.actionAnim);if(e){let t=d.get(e.clipName);if(t){let n=d.get(B.current.name.toLowerCase());n&&n.fadeOut(u),t.setLoop(g,1),t.clampWhenFinished=!0,t.reset().fadeIn(u).play(),B.current={name:e.clipName,timeScale:1},H.current=s.actionAnim}}}if(!l&&V.current){V.current=!1,H.current=void 0;let e=d.get(B.current.name.toLowerCase());e&&(e.stop(),e.setLoop(h,1/0),e.clampWhenFinished=!1),B.current={name:`root`,timeScale:1};let t=d.get(`root`);t&&t.reset().play()}let f=s?.actionAnim,p=H.current;if(!V.current&&f!==p){H.current=f;let e=f!=null&&f>=W,t=p!=null&&p>=W;if(e){let e=G.get(f);if(e){let t=d.get(e.clipName);if(t){let n=d.get(B.current.name.toLowerCase());n&&n.fadeOut(u),t.setLoop(g,1),t.clampWhenFinished=!0,t.reset().fadeIn(u).play(),B.current={name:e.clipName,timeScale:1}}}}else if(t){let e=G.get(p);if(e){let t=d.get(e.clipName);t&&(t.fadeOut(u),t.setLoop(h,1/0),t.clampWhenFinished=!1)}B.current={name:`root`,timeScale:1};let t=d.get(`root`);t&&t.reset().fadeIn(u).play()}}if(f!=null&&f>=W&&s?.actionAtEnd){let e=G.get(f);if(e){let t=d.get(e.clipName);t&&(t.paused=!0)}}let m=H.current!=null&&H.current>=W;if(!V.current&&!m){let t=ae(s?.velocity,s?.rotation??[0,0,0,1],e.falling,e.jetting),n=B.current;if(t.animation!==n.name||t.timeScale!==n.timeScale){let e=d.get(n.name.toLowerCase()),r=d.get(t.animation.toLowerCase());r&&(q.get(t.animation)??!0?(r.setLoop(h,1/0),r.clampWhenFinished=!1):(r.setLoop(g,1),r.clampWhenFinished=!0),a&&e&&e!==r?(e.fadeOut(u),r.reset().fadeIn(u).play()):(e&&e!==r&&e.stop(),r.reset().play()),r.timeScale=t.timeScale,B.current={name:t.animation,timeScale:t.timeScale})}}let v=oe(e.weaponShape);if(v!==z.current){let e=R.current,t=z.current?e.get(z.current):null,n=e.get(v);n&&(t&&(t.weight=0),n.weight=l?0:1,z.current=v)}let{head:y,headside:b}=L.current,x=z.current?R.current.get(z.current):null,S=l?0:1,C=e.headPitch??0,ee=e.headYaw??0,te=(C+1)/2,ne=(ee+1)/2;x&&(x.time=te*x.getClip().duration,x.weight=S),y&&(y.time=te*y.getClip().duration,y.weight=S),b&&(b.time=ne*b.getClip().duration,b.weight=S);let re=!!e.jetting&&!l,D=ve.current,k=ge.current,A=k?.isPlaying??!1;if(re&&!A){if(he&&$&&_e.current&&D){let e=k;e||(e=new _($),e.setDistanceModel(`inverse`),e.setRefDistance(D.refDist),e.setMaxDistance(D.maxDist),e.setRolloffFactor(1),e.setVolume(D.volume),w.add(e),ge.current=e);try{e.setBuffer(_e.current),e.setLoop(!0),e.setPlaybackRate(i.rate),e.play(),ie(e,1)}catch{}}}else if(!re&&A&&k){E(k);try{k.stop()}catch{}}a?T.update(r*i.rate):T.update(0)}),(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`group`,{rotation:[0,Math.PI/2,0],children:(0,U.jsx)(`primitive`,{object:w})}),J&&j&&(0,U.jsx)(A,{fallback:(0,U.jsx)(m,{color:`red`,label:J}),children:(0,U.jsx)(D,{name:`Weapon:${e.id}/${J}`,fallback:(0,U.jsx)(m,{color:`cyan`,label:J}),children:(0,U.jsx)(ue,{entity:e,weaponShape:J,mount0:j})})},J),Y&&N&&(0,U.jsx)(A,{fallback:(0,U.jsx)(m,{color:`red`,label:Y}),children:(0,U.jsx)(D,{name:`Pack:${e.id}/${Y}`,fallback:(0,U.jsx)(m,{color:`cyan`,label:Y}),children:(0,U.jsx)(me,{packShape:Y,mountBone:N})})},Y),X&&P&&(0,U.jsx)(A,{fallback:(0,U.jsx)(m,{color:`red`,label:X}),children:(0,U.jsx)(D,{name:`Flag:${e.id}/${X}`,fallback:(0,U.jsx)(m,{color:`cyan`,label:X}),children:(0,U.jsx)(me,{packShape:X,mountBone:P})})},X)]})}function le(e,t){let n=e.userData?.dts_sequence_names;if(typeof n==`string`)try{return JSON.parse(n).map(e=>e.toLowerCase())}catch{}return t.map(e=>e.name.toLowerCase())}function ue(e){let t=(0,j.c)(43),{entity:n,weaponShape:r,mount0:s}=e,c=x(),u=p(r),m=k(),g,v,b,S;if(t[0]!==m||t[1]!==u.animations||t[2]!==u.scene){g=o(u.scene),v=f(g,void 0,{anisotropy:m});let e=l(u.scene,u.animations,`Mountpoint`);if(e){let t=e.quaternion.clone().invert(),n=e.position.clone().negate().applyQuaternion(t);g.position.copy(n),g.quaternion.copy(t)}S=new Map,g.traverse(e=>{if(!e.isMesh)return;let t=(e.userData?.vis_sequence??``).toLowerCase();if(!t)return;let n=S.get(t);n||(n=[],S.set(t,n)),n.push(e)}),b=new y(g),t[0]=m,t[1]=u.animations,t[2]=u.scene,t[3]=g,t[4]=v,t[5]=b,t[6]=S}else g=t[3],v=t[4],b=t[5],S=t[6];let C=b,E=u.scene,D;t[7]!==E||t[8]!==u.animations?(D=le(E,u.animations),t[7]=E,t[8]=u.animations,t[9]=D):D=t[9];let O=D,A;t[10]!==g||t[11]!==v||t[12]!==C||t[13]!==O||t[14]!==S?(A={weaponClone:g,weaponMixer:C,seqIndexToName:O,visNodesBySequence:S,weaponIflInitializers:v},t[10]=g,t[11]=v,t[12]=C,t[13]=O,t[14]=S,t[15]=A):A=t[15];let{weaponClone:N,weaponMixer:P,seqIndexToName:F,visNodesBySequence:ae,weaponIflInitializers:I}=A,L,R;t[16]!==N||t[17]!==P?(L=()=>()=>{d(N),P.uncacheRoot(N)},R=[N,P],t[16]=N,t[17]=P,t[18]=L,t[19]=R):(L=t[18],R=t[19]),(0,M.useEffect)(L,R);let z;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(z=new Map,t[20]=z):z=t[20];let B=(0,M.useRef)(z),V=(0,M.useRef)(null),U,oe;t[21]!==u.animations||t[22]!==P?(U=()=>{let e=new Map;for(let t of u.animations)e.set(t.name.toLowerCase(),P.clipAction(t));B.current=e;let t=e.get(`spin`);return t&&(t.setLoop(h,1/0),t.timeScale=0,t.play()),V.current=t??null,P.update(0),()=>{P.stopAllAction(),B.current=new Map,V.current=null,ce(X,Z)}},oe=[P,u.animations],t[21]=u.animations,t[22]=P,t[23]=U,t[24]=oe):(U=t[23],oe=t[24]),(0,M.useEffect)(U,oe);let W,G;t[25]===I?(W=t[26],G=t[27]):(W=()=>{let e=[];for(let{mesh:t,initialize:n}of I)n(t,fe).then(t=>e.push(t)).catch(Y);return()=>e.forEach(de)},G=[I],t[25]=I,t[26]=W,t[27]=G),(0,M.useEffect)(W,G);let{audioLoader:K,audioListener:q}=te(),se=a()?.audioEnabled??!1,J=(0,M.useRef)(null),ue=(0,M.useRef)(null),me=(0,M.useRef)(n.weaponImageStates),X=(0,M.useRef)(null),Z=(0,M.useRef)(-1),Q,$;t[28]!==s||t[29]!==N?(Q=()=>(s.add(N),()=>{s.remove(N)}),$=[N,s],t[28]=s,t[29]=N,t[30]=Q,t[31]=$):(Q=t[30],$=t[31]),(0,M.useEffect)(Q,$);let he;return t[32]!==se||t[33]!==q||t[34]!==K||t[35]!==c||t[36]!==n.weaponImageState||t[37]!==n.weaponImageStates||t[38]!==F||t[39]!==ae||t[40]!==N||t[41]!==P?(he=(e,t)=>{let r=c.getState().playback,i=r.status===`playing`,a=B.current,o=n.weaponImageState,s=n.weaponImageStates;s!==me.current&&(me.current=s,s&&s.length>0?J.current=new H(s,F):J.current=null,ue.current=null,ce(X,Z,N)),!J.current&&s&&s.length>0&&(J.current=new H(s,F));let l=J.current;if(l&&o&&i){let e=t*r.rate,n=l.tick(e,o);if(pe(n,a,ue,ae),X.current&&n.stateIndex!==Z.current&&ce(X,Z,N),se&&K&&q&&n.soundDataBlockIds.length>0){let e=r.recording?.streamingPlayback.getDataBlockData.bind(r.recording.streamingPlayback);if(e)for(let t of n.soundDataBlockIds){let n=re(t,e);if(n)if(n.isLooping){if(!X.current)try{let e=ee(n.filename),t=w();ne(e,K,e=>{if(t!==w()||X.current)return;let i=l.stateIndex,a=new _(q);a.setBuffer(e),a.setDistanceModel(`inverse`),a.setRefDistance(n.refDist),a.setMaxDistance(n.maxDist),a.setRolloffFactor(1),a.setVolume(n.volume),a.setPlaybackRate(r.rate),a.setLoop(!0),N.add(a),ie(a),a.play(),X.current=a,Z.current=i})}catch{}}else T(n,q,K,void 0,N)}}V.current&&(V.current.timeScale=n.spinTimeScale)}i?P.update(t*r.rate):P.update(0)},t[32]=se,t[33]=q,t[34]=K,t[35]=c,t[36]=n.weaponImageState,t[37]=n.weaponImageStates,t[38]=F,t[39]=ae,t[40]=N,t[41]=P,t[42]=he):he=t[42],i(he),null}function de(e){return e()}function Y(){}function fe(){return O.getState().time}function pe(e,t,n,r){let i=e.sequenceName,a=n.current;if(i===a&&!e.transitioned)return;if(i!==a){if(a){let e=r.get(a);if(e)for(let t of e)t.visible=!1}if(i){let e=r.get(i);if(e)for(let t of e)t.visible=!0}}if(!i){if(a){let e=t.get(a);e&&e.fadeOut(u),n.current=null}return}let o=t.get(i);if(o&&(e.transitioned||i!==a)){let r=a?t.get(a):null;if(e.isFiring||e.timeoutValue>0?(o.setLoop(g,1),o.clampWhenFinished=!0):(o.setLoop(h,1/0),o.clampWhenFinished=!1),e.scaleAnimation&&e.timeoutValue>0){let t=o.getClip().duration;o.timeScale=t>0?t/e.timeoutValue:1}else o.timeScale=e.reverse?-1:1;r&&r!==o?(r.fadeOut(u),o.reset().fadeIn(u).play()):o.reset().play(),n.current=i}}function me(e){let t=(0,j.c)(15),{packShape:n,mountBone:r}=e,i=p(n),a=k(),s,c;if(t[0]!==a||t[1]!==i.animations||t[2]!==i.scene){s=o(i.scene),c=f(s,void 0,{anisotropy:a});let e=l(i.scene,i.animations,`Mountpoint`);if(e){let t=e.quaternion.clone().invert(),n=e.position.clone().negate().applyQuaternion(t);s.position.copy(n),s.quaternion.copy(t)}t[0]=a,t[1]=i.animations,t[2]=i.scene,t[3]=s,t[4]=c}else s=t[3],c=t[4];let u;t[5]!==s||t[6]!==c?(u={packClone:s,packIflInitializers:c},t[5]=s,t[6]=c,t[7]=u):u=t[7];let{packClone:m,packIflInitializers:h}=u,g,_;t[8]!==r||t[9]!==m?(g=()=>(r.add(m),()=>{r.remove(m),d(m)}),_=[m,r],t[8]=r,t[9]=m,t[10]=g,t[11]=_):(g=t[10],_=t[11]),(0,M.useEffect)(g,_);let v,y;return t[12]===h?(v=t[13],y=t[14]):(v=()=>{let e=[];for(let{mesh:t,initialize:n}of h)n(t,Q).then(t=>e.push(t)).catch(Z);return()=>e.forEach(X)},y=[h],t[12]=h,t[13]=v,t[14]=y),(0,M.useEffect)(v,y),null}function X(e){return e()}function Z(){}function Q(){return O.getState().time}function $(e){let t=(0,j.c)(7),{shapeName:n,eyeOffsetRef:r}=e,i=p(n),a;t[0]!==r||t[1]!==i.animations||t[2]!==i.scene?(a=()=>{let e=l(i.scene,i.animations,`Eye`);e?r.current.set(e.position.z,e.position.y,-e.position.x):r.current.set(0,s,0)},t[0]=r,t[1]=i.animations,t[2]=i.scene,t[3]=a):a=t[3];let o;return t[4]!==r||t[5]!==i?(o=[i,r],t[4]=r,t[5]=i,t[6]=o):o=t[6],(0,M.useEffect)(a,o),null}export{$ as PlayerEyeOffset,J as PlayerModel}; \ No newline at end of file diff --git a/docs/assets/Projectiles-DWQwPDtG.js b/docs/assets/Projectiles-Uxzfj6xB.js similarity index 98% rename from docs/assets/Projectiles-DWQwPDtG.js rename to docs/assets/Projectiles-Uxzfj6xB.js index 6c7ea912..d0c3dcc0 100644 --- a/docs/assets/Projectiles-DWQwPDtG.js +++ b/docs/assets/Projectiles-Uxzfj6xB.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{i}from"./react-three-fiber.esm-CgPHUpXo.js";import{_ as a,h as o,m as s}from"./GenericShape-BC0gDQiR.js";import{Ot as c,St as l,Ut as u,b as d}from"./three.module-07hRbor4.js";import{p as f}from"./loaders-CIpiZadQ.js";import{t as p}from"./Texture-CIsc25mc.js";var m=t(),h=e(n(),1),g=r(),_=new u,v=new u,y=new u,b=new u,x=new u,S=new u,C=new u(0,1,0);function w(e){let t=(0,m.c)(14),{entity:n}=e,{visual:r}=n,i;t[0]===r.texture?i=t[1]:(i=f(r.texture),t[0]=r.texture,t[1]=i);let a=p(i,T),o=Array.isArray(a)?a[0]:a,s;t[2]!==r.color.b||t[3]!==r.color.g||t[4]!==r.color.r?(s=new d().setRGB(r.color.r,r.color.g,r.color.b,c),t[2]=r.color.b,t[3]=r.color.g,t[4]=r.color.r,t[5]=s):s=t[5];let l=s,u;t[6]===r.size?u=t[7]:(u=[r.size,r.size,1],t[6]=r.size,t[7]=u);let h;t[8]!==l||t[9]!==o?(h=(0,g.jsx)(`spriteMaterial`,{map:o,color:l,transparent:!0,blending:2,depthWrite:!1,toneMapped:!1}),t[8]=l,t[9]=o,t[10]=h):h=t[10];let _;return t[11]!==u||t[12]!==h?(_=(0,g.jsx)(`sprite`,{scale:u,children:h}),t[11]=u,t[12]=h,t[13]=_):_=t[13],_}function T(e){o(Array.isArray(e)?e[0]:e)}function E(e){let t=(0,m.c)(29),{entity:n}=e,{visual:r}=n,o=(0,h.useRef)(null),c=(0,h.useRef)(null),u=(0,h.useRef)(null),d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=new l,t[0]=d):d=t[0];let w=(0,h.useRef)(d),T;t[1]===r.texture?T=t[2]:(T=f(r.texture),t[1]=r.texture,t[2]=T);let E=r.crossTexture??r.texture,O;t[3]===E?O=t[4]:(O=f(E),t[3]=E,t[4]=O);let k;t[5]!==T||t[6]!==O?(k=[T,O],t[5]=T,t[6]=O,t[7]=k):k=t[7];let A=p(k,D),j;t[8]===A?j=t[9]:(j=Array.isArray(A)?A:[A,A],t[8]=A,t[9]=j);let[M,N]=j,P;t[10]!==n.direction||t[11]!==n.keyframes?.[0]||t[12]!==r.crossSize||t[13]!==r.crossViewAng||t[14]!==r.renderCross||t[15]!==r.tracerLength||t[16]!==r.tracerWidth?(P=e=>{let{camera:t}=e,i=o.current,l=c.current;if(!i||!l)return;let d=n.keyframes?.[0],f=d?.position,p=n.direction??d?.velocity;if(!f||!p){i.visible=!1,u.current&&(u.current.visible=!1);return}if(a(p,_),_.lengthSq()<1e-8){i.visible=!1,u.current&&(u.current.visible=!1);return}_.normalize(),i.visible=!0,a(f,S),v.copy(S).sub(t.position),y.crossVectors(v,_),y.lengthSq()<1e-8&&(y.crossVectors(C,_),y.lengthSq()<1e-8&&y.set(1,0,0)),y.normalize().multiplyScalar(r.tracerWidth);let m=r.tracerLength*.5;b.copy(_).multiplyScalar(-m),x.copy(_).multiplyScalar(m);let h=l.array;h[0]=b.x+y.x,h[1]=b.y+y.y,h[2]=b.z+y.z,h[3]=b.x-y.x,h[4]=b.y-y.y,h[5]=b.z-y.z,h[6]=x.x-y.x,h[7]=x.y-y.y,h[8]=x.z-y.z,h[9]=x.x+y.x,h[10]=x.y+y.y,h[11]=x.z+y.z,l.needsUpdate=!0;let g=u.current;if(!g)return;if(!r.renderCross){g.visible=!1;return}v.normalize();let T=_.dot(v);if(T>-r.crossViewAng&&T{let{camera:t}=e,i=o.current,l=c.current;if(!i||!l)return;let d=n.keyframes?.[0],f=d?.position,p=n.direction??d?.velocity;if(!f||!p){i.visible=!1,u.current&&(u.current.visible=!1);return}if(a(p,_),_.lengthSq()<1e-8){i.visible=!1,u.current&&(u.current.visible=!1);return}_.normalize(),i.visible=!0,a(f,S),v.copy(S).sub(t.position),y.crossVectors(v,_),y.lengthSq()<1e-8&&(y.crossVectors(C,_),y.lengthSq()<1e-8&&y.set(1,0,0)),y.normalize().multiplyScalar(r.tracerWidth);let m=r.tracerLength*.5;b.copy(_).multiplyScalar(-m),x.copy(_).multiplyScalar(m);let h=l.array;h[0]=b.x+y.x,h[1]=b.y+y.y,h[2]=b.z+y.z,h[3]=b.x-y.x,h[4]=b.y-y.y,h[5]=b.z-y.z,h[6]=x.x-y.x,h[7]=x.y-y.y,h[8]=x.z-y.z,h[9]=x.x+y.x,h[10]=x.y+y.y,h[11]=x.z+y.z,l.needsUpdate=!0;let g=u.current;if(!g)return;if(!r.renderCross){g.visible=!1;return}v.normalize();let T=_.dot(v);if(T>-r.crossViewAng&&Te.ping),n=t.reduce((e,t)=>e+t,0)/t.length,r=t.reduce((e,t)=>e+(t-n)**2,0)/t.length;return{avg:Math.round(n),dev:Math.round(Math.sqrt(r))}}function h(e){let t=e<0?`-`:``,n=Math.abs(e),r=Math.floor(n/60),i=Math.floor(n%60);return`${t}${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`}function g(e){let t=(0,u.c)(5),{clockMs:n}=e,r=Math.abs(n)/1e3,i=n<0?Math.ceil(r):Math.floor(r),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,p.jsx)(c,{className:f.ClockIcon}),t[0]=a):a=t[0];let o;t[1]===i?o=t[2]:(o=h(i),t[1]=i,t[2]=o);let s;return t[3]===o?s=t[4]:(s=(0,p.jsxs)(`span`,{className:f.MatchClock,children:[a,` `,(0,p.jsx)(`span`,{className:f.Time,children:o})]}),t[3]=o,t[4]=s),s}function _(e){return e.name||i[e.teamId]||`Team ${e.teamId}`}function v(e){let t=(0,u.c)(56),{onClose:n}=e,r=(0,d.useRef)(null),i=o()===`live`,{connectedClientId:s,teamScores:c,playerRoster:h,matchClockMs:v}=a(se,oe),y,b;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>{r.current?.focus();try{document.exitPointerLock()}catch{}},b=[],t[0]=y,t[1]=b):(y=t[0],b=t[1]),(0,d.useEffect)(y,b);let x,S;t[2]===n?(x=t[3],S=t[4]):(x=()=>{let e=e=>{e.key===`Escape`&&n(),e.stopImmediatePropagation()},t=ae;return window.addEventListener(`keydown`,e,{capture:!0}),window.addEventListener(`keyup`,t,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0}),window.removeEventListener(`keyup`,t,{capture:!0})}},S=[n],t[2]=n,t[3]=x,t[4]=S),(0,d.useEffect)(x,S);let C,w;t[5]===i?(C=t[6],w=t[7]):(C=()=>{if(!i)return;let e=ie;e();let t=setInterval(e,4e3);return()=>clearInterval(t)},w=[i],t[5]=i,t[6]=C,t[7]=w),(0,d.useEffect)(C,w);let T;if(t[8]!==h){let e=new Map,n=[];if(h)for(let t of h)if(t.teamId>0){let n=e.get(t.teamId);n?n.push(t):e.set(t.teamId,[t])}else n.push(t);for(let t of e.values())t.sort(re);n.sort(ne),T={teamPlayers:e,observers:n},t[8]=h,t[9]=T}else T=t[9];let{teamPlayers:E,observers:D}=T,O;bb0:{if(!c?.length){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[10]=e):e=t[10],O=e;break bb0}let e;t[11]===c?e=t[12]:(e=[...c].sort(te),t[11]=c,t[12]=e),O=e}let k=O,A=k.length>=2,j=k[0],M=k[1],N;t[13]!==j||t[14]!==E?(N=j?E.get(j.teamId)??[]:[],t[13]=j,t[14]=E,t[15]=N):N=t[15];let P=N,F;t[16]!==M||t[17]!==E?(F=M?E.get(M.teamId)??[]:[],t[16]=M,t[17]=E,t[18]=F):F=t[18];let I=F,L;t[19]===P?L=t[20]:(L=m(P),t[19]=P,t[20]=L);let R=L,z;t[21]===I?z=t[22]:(z=m(I),t[21]=I,t[22]=z);let B=z,V=Math.max(P.length,I.length),H;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,p.jsx)(`h2`,{className:f.Title,children:`Score`}),t[23]=H):H=t[23];let U;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,p.jsx)(l,{className:f.PlayersIcon}),t[24]=U):U=t[24];let W=h?.length??0,G;t[25]===W?G=t[26]:(G=(0,p.jsxs)(`span`,{className:f.PlayerTotal,children:[U,` `,W,` players`]}),t[25]=W,t[26]=G);let K;t[27]===v?K=t[28]:(K=v!=null&&(0,p.jsx)(g,{clockMs:v}),t[27]=v,t[28]=K);let q;t[29]!==G||t[30]!==K?(q=(0,p.jsxs)(`header`,{className:f.TitleBar,children:[H,` `,G,` `,K]}),t[29]=G,t[30]=K,t[31]=q):q=t[31];let J;t[32]!==s||t[33]!==A||t[34]!==V||t[35]!==D||t[36]!==h?.length||t[37]!==j||t[38]!==R||t[39]!==P||t[40]!==M||t[41]!==B||t[42]!==I?(J=A?(0,p.jsx)(`div`,{className:f.TableWrapper,children:(0,p.jsxs)(`table`,{className:f.Table,children:[(0,p.jsxs)(`thead`,{children:[(0,p.jsxs)(`tr`,{className:f.TeamHeaderRow,children:[(0,p.jsx)(`th`,{className:f.TeamName,children:_(j)}),(0,p.jsx)(`th`,{className:f.TeamScore,children:j.score}),(0,p.jsx)(`th`,{className:f.TeamName,children:_(M)}),(0,p.jsx)(`th`,{className:f.TeamScore,children:M.score})]}),(0,p.jsxs)(`tr`,{className:f.ColumnHeaderRow,children:[(0,p.jsxs)(`th`,{className:f.ColumnHeader,children:[(0,p.jsxs)(`span`,{children:[`Players (`,P.length,`)`]}),P.length>0&&(0,p.jsxs)(`span`,{className:f.ColumnPing,children:[` `,`PING: `,R.avg,` ± `,R.dev,` ms`]})]}),(0,p.jsx)(`th`,{className:f.ColumnHeaderScore,children:`Score`}),(0,p.jsxs)(`th`,{className:f.ColumnHeader,children:[(0,p.jsxs)(`span`,{children:[`Players (`,I.length,`)`]}),I.length>0&&(0,p.jsxs)(`span`,{className:f.ColumnPing,children:[` `,`PING: `,B.avg,` ± `,B.dev,` ms`]})]}),(0,p.jsx)(`th`,{className:f.ColumnHeaderScore,children:`Score`})]})]}),(0,p.jsx)(`tbody`,{className:f.PlayerBody,children:Array.from({length:V},(e,t)=>{let n=P[t],r=I[t],i=s!=null&&n?.clientId===s,a=s!=null&&r?.clientId===s;return(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{className:i?f.PlayerNameLocal:f.PlayerName,children:n?.name||(n?`...`:``)}),(0,p.jsx)(`td`,{className:i?f.PlayerScoreLocal:f.PlayerScore,children:n==null?``:n.score}),(0,p.jsx)(`td`,{className:a?f.PlayerNameLocal:f.PlayerName,children:r?.name||(r?`...`:``)}),(0,p.jsx)(`td`,{className:a?f.PlayerScoreLocal:f.PlayerScore,children:r==null?``:r.score})]},`${n?.clientId??``}-${r?.clientId??``}`)})}),D.length>0&&(()=>{let e=Math.ceil(D.length/2),t=Math.ceil(D.length/2);return(0,p.jsxs)(`tbody`,{className:f.ObserverBody,children:[(0,p.jsxs)(`tr`,{className:f.ColumnHeaderRow,children:[(0,p.jsxs)(`th`,{colSpan:2,className:f.ColumnHeader,children:[`Observers (`,D.length,`)`]}),(0,p.jsx)(`th`,{colSpan:2,className:f.ColumnHeader,children:`\xA0`})]}),Array.from({length:t},(t,n)=>{let r=D[n],i=D[n+e],a=s!=null&&r?.clientId===s,o=s!=null&&i?.clientId===s;return(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{className:a?f.PlayerNameLocal:f.PlayerName,children:r?.name||(r?`...`:``)}),(0,p.jsx)(`td`,{className:a?f.PlayerScoreLocal:f.PlayerScore,children:r==null?``:r.score}),(0,p.jsx)(`td`,{className:o?f.PlayerNameLocal:f.PlayerName,children:i?.name||``}),(0,p.jsx)(`td`,{className:o?f.PlayerScoreLocal:f.PlayerScore,children:i==null?``:i.score})]},`${r?.clientId??``}-${i?.clientId??``}`)})]})})()]})}):(0,p.jsx)(`div`,{className:f.Empty,children:h?.length?`No team data available`:`Waiting for player data…`}),t[32]=s,t[33]=A,t[34]=V,t[35]=D,t[36]=h?.length,t[37]=j,t[38]=R,t[39]=P,t[40]=M,t[41]=B,t[42]=I,t[43]=J):J=t[43];let Y;t[44]===n?Y=t[45]:(Y=(0,p.jsx)(`button`,{className:f.CloseButton,onClick:n,children:`Close`}),t[44]=n,t[45]=Y);let X;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,p.jsx)(`span`,{className:f.Hint,children:`Esc to close`}),t[46]=X):X=t[46];let Z;t[47]===Y?Z=t[48]:(Z=(0,p.jsxs)(`div`,{className:f.Footer,children:[Y,X]}),t[47]=Y,t[48]=Z);let Q;t[49]!==q||t[50]!==J||t[51]!==Z?(Q=(0,p.jsxs)(`div`,{ref:r,className:f.Dialog,onClick:ee,role:`dialog`,"aria-modal":`true`,"aria-label":`Score Screen`,tabIndex:-1,children:[q,J,Z]}),t[49]=q,t[50]=J,t[51]=Z,t[52]=Q):Q=t[52];let $;return t[53]!==n||t[54]!==Q?($=(0,p.jsx)(`div`,{className:f.Overlay,onClick:n,children:Q}),t[53]=n,t[54]=Q,t[55]=$):$=t[55],$}function ee(e){return e.stopPropagation()}function te(e,t){return e.teamId-t.teamId}function ne(e,t){return(e.name??``).localeCompare(t.name??``)}function re(e,t){return t.score-e.score||(e.name??``).localeCompare(t.name??``)}function ie(){s.getState().sendCommand(`getScores`)}function ae(e){e.stopImmediatePropagation()}function oe(e,t){return e.connectedClientId===t.connectedClientId&&e.teamScores===t.teamScores&&e.playerRoster===t.playerRoster&&e.matchClockMs===t.matchClockMs}function se(e){let t=e.playback.streamSnapshot;return{connectedClientId:t?.connectedClientId,teamScores:t?.teamScores,playerRoster:t?.playerRoster,matchClockMs:t?.matchClockMs}}export{v as ScoreScreen}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{t as i}from"./stringUtils-EmGsjr9D.js";import{i as a}from"./engineStore-Dkm20jvr.js";import{N as o,k as s,v as c,y as l}from"./index-DfaykQpF.js";var u=t(),d=e(n(),1),f={Dialog:`_Dialog_4rdu6_1 _Dialog_1t9wa_1`,Overlay:`_Overlay_4rdu6_11 _Overlay_1t9wa_22`,TitleBar:`_TitleBar_4rdu6_15`,PlayerTotal:`_PlayerTotal_4rdu6_27`,Title:`_Title_4rdu6_15`,MatchClock:`_MatchClock_4rdu6_46`,Time:`_Time_4rdu6_56`,PlayersIcon:`_PlayersIcon_4rdu6_60`,ClockIcon:`_ClockIcon_4rdu6_64`,TableWrapper:`_TableWrapper_4rdu6_69`,Table:`_Table_4rdu6_69`,TeamHeaderRow:`_TeamHeaderRow_4rdu6_92`,TeamName:`_TeamName_4rdu6_99`,TeamScore:`_TeamScore_4rdu6_109`,ColumnHeaderRow:`_ColumnHeaderRow_4rdu6_117`,ColumnHeader:`_ColumnHeader_4rdu6_117`,ColumnHeaderScore:`_ColumnHeaderScore_4rdu6_134`,PlayerScore:`_PlayerScore_4rdu6_141`,ColumnPing:`_ColumnPing_4rdu6_145`,PlayerBody:`_PlayerBody_4rdu6_154`,PlayerName:`_PlayerName_4rdu6_168`,PlayerNameLocal:`_PlayerNameLocal_4rdu6_179 _PlayerName_4rdu6_168`,PlayerScoreLocal:`_PlayerScoreLocal_4rdu6_193 _PlayerScore_4rdu6_141`,ObserverBody:`_ObserverBody_4rdu6_202`,Footer:`_Footer_4rdu6_223`,CloseButton:`_CloseButton_4rdu6_233 _DialogButton_1t9wa_33`,Hint:`_Hint_4rdu6_237`,Empty:`_Empty_4rdu6_243`},p=r();function m(e){if(!e.length)return{avg:0,dev:0};let t=e.map(e=>e.ping),n=t.reduce((e,t)=>e+t,0)/t.length,r=t.reduce((e,t)=>e+(t-n)**2,0)/t.length;return{avg:Math.round(n),dev:Math.round(Math.sqrt(r))}}function h(e){let t=e<0?`-`:``,n=Math.abs(e),r=Math.floor(n/60),i=Math.floor(n%60);return`${t}${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`}function g(e){let t=(0,u.c)(5),{clockMs:n}=e,r=Math.abs(n)/1e3,i=n<0?Math.ceil(r):Math.floor(r),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,p.jsx)(c,{className:f.ClockIcon}),t[0]=a):a=t[0];let o;t[1]===i?o=t[2]:(o=h(i),t[1]=i,t[2]=o);let s;return t[3]===o?s=t[4]:(s=(0,p.jsxs)(`span`,{className:f.MatchClock,children:[a,` `,(0,p.jsx)(`span`,{className:f.Time,children:o})]}),t[3]=o,t[4]=s),s}function _(e){return e.name||i[e.teamId]||`Team ${e.teamId}`}function v(e){let t=(0,u.c)(56),{onClose:n}=e,r=(0,d.useRef)(null),i=o()===`live`,{connectedClientId:s,teamScores:c,playerRoster:h,matchClockMs:v}=a(se,oe),y,b;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>{r.current?.focus();try{document.exitPointerLock()}catch{}},b=[],t[0]=y,t[1]=b):(y=t[0],b=t[1]),(0,d.useEffect)(y,b);let x,S;t[2]===n?(x=t[3],S=t[4]):(x=()=>{let e=e=>{e.key===`Escape`&&n(),e.stopImmediatePropagation()},t=ae;return window.addEventListener(`keydown`,e,{capture:!0}),window.addEventListener(`keyup`,t,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0}),window.removeEventListener(`keyup`,t,{capture:!0})}},S=[n],t[2]=n,t[3]=x,t[4]=S),(0,d.useEffect)(x,S);let C,w;t[5]===i?(C=t[6],w=t[7]):(C=()=>{if(!i)return;let e=ie;e();let t=setInterval(e,4e3);return()=>clearInterval(t)},w=[i],t[5]=i,t[6]=C,t[7]=w),(0,d.useEffect)(C,w);let T;if(t[8]!==h){let e=new Map,n=[];if(h)for(let t of h)if(t.teamId>0){let n=e.get(t.teamId);n?n.push(t):e.set(t.teamId,[t])}else n.push(t);for(let t of e.values())t.sort(re);n.sort(ne),T={teamPlayers:e,observers:n},t[8]=h,t[9]=T}else T=t[9];let{teamPlayers:E,observers:D}=T,O;bb0:{if(!c?.length){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[10]=e):e=t[10],O=e;break bb0}let e;t[11]===c?e=t[12]:(e=[...c].sort(te),t[11]=c,t[12]=e),O=e}let k=O,A=k.length>=2,j=k[0],M=k[1],N;t[13]!==j||t[14]!==E?(N=j?E.get(j.teamId)??[]:[],t[13]=j,t[14]=E,t[15]=N):N=t[15];let P=N,F;t[16]!==M||t[17]!==E?(F=M?E.get(M.teamId)??[]:[],t[16]=M,t[17]=E,t[18]=F):F=t[18];let I=F,L;t[19]===P?L=t[20]:(L=m(P),t[19]=P,t[20]=L);let R=L,z;t[21]===I?z=t[22]:(z=m(I),t[21]=I,t[22]=z);let B=z,V=Math.max(P.length,I.length),H;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,p.jsx)(`h2`,{className:f.Title,children:`Score`}),t[23]=H):H=t[23];let U;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,p.jsx)(l,{className:f.PlayersIcon}),t[24]=U):U=t[24];let W=h?.length??0,G;t[25]===W?G=t[26]:(G=(0,p.jsxs)(`span`,{className:f.PlayerTotal,children:[U,` `,W,` players`]}),t[25]=W,t[26]=G);let K;t[27]===v?K=t[28]:(K=v!=null&&(0,p.jsx)(g,{clockMs:v}),t[27]=v,t[28]=K);let q;t[29]!==G||t[30]!==K?(q=(0,p.jsxs)(`header`,{className:f.TitleBar,children:[H,` `,G,` `,K]}),t[29]=G,t[30]=K,t[31]=q):q=t[31];let J;t[32]!==s||t[33]!==A||t[34]!==V||t[35]!==D||t[36]!==h?.length||t[37]!==j||t[38]!==R||t[39]!==P||t[40]!==M||t[41]!==B||t[42]!==I?(J=A?(0,p.jsx)(`div`,{className:f.TableWrapper,children:(0,p.jsxs)(`table`,{className:f.Table,children:[(0,p.jsxs)(`thead`,{children:[(0,p.jsxs)(`tr`,{className:f.TeamHeaderRow,children:[(0,p.jsx)(`th`,{className:f.TeamName,children:_(j)}),(0,p.jsx)(`th`,{className:f.TeamScore,children:j.score}),(0,p.jsx)(`th`,{className:f.TeamName,children:_(M)}),(0,p.jsx)(`th`,{className:f.TeamScore,children:M.score})]}),(0,p.jsxs)(`tr`,{className:f.ColumnHeaderRow,children:[(0,p.jsxs)(`th`,{className:f.ColumnHeader,children:[(0,p.jsxs)(`span`,{children:[`Players (`,P.length,`)`]}),P.length>0&&(0,p.jsxs)(`span`,{className:f.ColumnPing,children:[` `,`PING: `,R.avg,` ± `,R.dev,` ms`]})]}),(0,p.jsx)(`th`,{className:f.ColumnHeaderScore,children:`Score`}),(0,p.jsxs)(`th`,{className:f.ColumnHeader,children:[(0,p.jsxs)(`span`,{children:[`Players (`,I.length,`)`]}),I.length>0&&(0,p.jsxs)(`span`,{className:f.ColumnPing,children:[` `,`PING: `,B.avg,` ± `,B.dev,` ms`]})]}),(0,p.jsx)(`th`,{className:f.ColumnHeaderScore,children:`Score`})]})]}),(0,p.jsx)(`tbody`,{className:f.PlayerBody,children:Array.from({length:V},(e,t)=>{let n=P[t],r=I[t],i=s!=null&&n?.clientId===s,a=s!=null&&r?.clientId===s;return(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{className:i?f.PlayerNameLocal:f.PlayerName,children:n?.name||(n?`...`:``)}),(0,p.jsx)(`td`,{className:i?f.PlayerScoreLocal:f.PlayerScore,children:n==null?``:n.score}),(0,p.jsx)(`td`,{className:a?f.PlayerNameLocal:f.PlayerName,children:r?.name||(r?`...`:``)}),(0,p.jsx)(`td`,{className:a?f.PlayerScoreLocal:f.PlayerScore,children:r==null?``:r.score})]},`${n?.clientId??``}-${r?.clientId??``}`)})}),D.length>0&&(()=>{let e=Math.ceil(D.length/2),t=Math.ceil(D.length/2);return(0,p.jsxs)(`tbody`,{className:f.ObserverBody,children:[(0,p.jsxs)(`tr`,{className:f.ColumnHeaderRow,children:[(0,p.jsxs)(`th`,{colSpan:2,className:f.ColumnHeader,children:[`Observers (`,D.length,`)`]}),(0,p.jsx)(`th`,{colSpan:2,className:f.ColumnHeader,children:`\xA0`})]}),Array.from({length:t},(t,n)=>{let r=D[n],i=D[n+e],a=s!=null&&r?.clientId===s,o=s!=null&&i?.clientId===s;return(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{className:a?f.PlayerNameLocal:f.PlayerName,children:r?.name||(r?`...`:``)}),(0,p.jsx)(`td`,{className:a?f.PlayerScoreLocal:f.PlayerScore,children:r==null?``:r.score}),(0,p.jsx)(`td`,{className:o?f.PlayerNameLocal:f.PlayerName,children:i?.name||``}),(0,p.jsx)(`td`,{className:o?f.PlayerScoreLocal:f.PlayerScore,children:i==null?``:i.score})]},`${r?.clientId??``}-${i?.clientId??``}`)})]})})()]})}):(0,p.jsx)(`div`,{className:f.Empty,children:h?.length?`No team data available`:`Waiting for player data…`}),t[32]=s,t[33]=A,t[34]=V,t[35]=D,t[36]=h?.length,t[37]=j,t[38]=R,t[39]=P,t[40]=M,t[41]=B,t[42]=I,t[43]=J):J=t[43];let Y;t[44]===n?Y=t[45]:(Y=(0,p.jsx)(`button`,{className:f.CloseButton,onClick:n,children:`Close`}),t[44]=n,t[45]=Y);let X;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,p.jsx)(`span`,{className:f.Hint,children:`Esc to close`}),t[46]=X):X=t[46];let Z;t[47]===Y?Z=t[48]:(Z=(0,p.jsxs)(`div`,{className:f.Footer,children:[Y,X]}),t[47]=Y,t[48]=Z);let Q;t[49]!==q||t[50]!==J||t[51]!==Z?(Q=(0,p.jsxs)(`div`,{ref:r,className:f.Dialog,onClick:ee,role:`dialog`,"aria-modal":`true`,"aria-label":`Score Screen`,tabIndex:-1,children:[q,J,Z]}),t[49]=q,t[50]=J,t[51]=Z,t[52]=Q):Q=t[52];let $;return t[53]!==n||t[54]!==Q?($=(0,p.jsx)(`div`,{className:f.Overlay,onClick:n,children:Q}),t[53]=n,t[54]=Q,t[55]=$):$=t[55],$}function ee(e){return e.stopPropagation()}function te(e,t){return e.teamId-t.teamId}function ne(e,t){return(e.name??``).localeCompare(t.name??``)}function re(e,t){return t.score-e.score||(e.name??``).localeCompare(t.name??``)}function ie(){s.getState().sendCommand(`getScores`)}function ae(e){e.stopImmediatePropagation()}function oe(e,t){return e.connectedClientId===t.connectedClientId&&e.teamScores===t.teamScores&&e.playerRoster===t.playerRoster&&e.matchClockMs===t.matchClockMs}function se(e){let t=e.playback.streamSnapshot;return{connectedClientId:t?.connectedClientId,teamScores:t?.teamScores,playerRoster:t?.playerRoster,matchClockMs:t?.matchClockMs}}export{v as ScoreScreen}; \ No newline at end of file diff --git a/docs/assets/ServerBrowser-BK-yGyhv.js b/docs/assets/ServerBrowser-DxPc-p2a.js similarity index 98% rename from docs/assets/ServerBrowser-BK-yGyhv.js rename to docs/assets/ServerBrowser-DxPc-p2a.js index a59707e6..b0a7e094 100644 --- a/docs/assets/ServerBrowser-BK-yGyhv.js +++ b/docs/assets/ServerBrowser-DxPc-p2a.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as ee}from"./SettingsProvider-CCHVZuSg.js";import{A as i,y as te}from"./index-B1XI52_L.js";var ne=t(),a=e(n(),1),o={Dialog:`_Dialog_1s844_1 _Dialog_1t9wa_1`,Overlay:`_Overlay_1s844_10 _Overlay_1t9wa_22`,Header:`_Header_1s844_14`,Title:`_Title_1s844_22`,HiddenRadio:`_HiddenRadio_1s844_31`,RefreshButton:`_RefreshButton_1s844_41 _DialogButton_1t9wa_33`,ServerCount:`_ServerCount_1s844_47`,TableWrapper:`_TableWrapper_1s844_52`,Table:`_Table_1s844_52`,CompactHidden:`_CompactHidden_1s844_118`,EmptyServer:`_EmptyServer_1s844_169`,Empty:`_Empty_1s844_169`,PasswordIcon:`_PasswordIcon_1s844_186`,PlayersIcon:`_PlayersIcon_1s844_198`,Footer:`_Footer_1s844_209`,JoinButton:`_JoinButton_1s844_220 _DialogButton_1t9wa_33`,CloseButton:`_CloseButton_1s844_225 _Secondary_1t9wa_72 _DialogButton_1t9wa_33`,WarriorField:`_WarriorField_1s844_229`,WarriorLabel:`_WarriorLabel_1s844_235`,WarriorInput:`_WarriorInput_1s844_241`,Hint:`_Hint_1s844_261`,Actions:`_Actions_1s844_267 _Actions_1t9wa_86`},s=r();function c(e){let t=(0,ne.c)(102),{onClose:n}=e,r=i(le),c=i(ce),l=i(se),u=i(oe),d=i(ae),{warriorName:f,setWarriorName:ue}=ee(),[p,de]=(0,a.useState)(null),m;t[0]!==d||t[1]!==n||t[2]!==p||t[3]!==f?(m=()=>{p&&(d(p,f),n())},t[0]=d,t[1]=n,t[2]=p,t[3]=f,t[4]=m):m=t[4];let h=m,fe;t[5]!==d||t[6]!==n||t[7]!==f?(fe=e=>{d(e,f),n()},t[5]=d,t[6]=n,t[7]=f,t[8]=fe):fe=t[8];let g=fe,[_,pe]=(0,a.useState)(`ping`),[v,me]=(0,a.useState)(`asc`),he=(0,a.useRef)(null),y,b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>{he.current?.focus();try{document.exitPointerLock()}catch{}},b=[],t[9]=y,t[10]=b):(y=t[9],b=t[10]),(0,a.useEffect)(y,b);let x,S;t[11]===u?(x=t[12],S=t[13]):(x=()=>{u()},S=[u],t[11]=u,t[12]=x,t[13]=S),(0,a.useEffect)(x,S);let ge,C;t[14]===n?(ge=t[15],C=t[16]):(ge=()=>{let e=e=>{e.stopPropagation(),e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},C=[n],t[14]=n,t[15]=ge,t[16]=C),(0,a.useEffect)(ge,C);let w;t[17]===_?w=t[18]:(w=e=>{_===e?me(ie):(pe(e),me(`desc`))},t[17]=_,t[18]=w);let T=w,E;if(t[19]!==r||t[20]!==v||t[21]!==_){let e;t[23]!==v||t[24]!==_?(e=(e,t)=>{let n=e[_],r=t[_],ee=typeof n==`number`&&typeof r==`number`?n-r:String(n).localeCompare(String(r));return v===`asc`?ee:-ee},t[23]=v,t[24]=_,t[25]=e):e=t[25],E=[...r].sort(e),t[19]=r,t[20]=v,t[21]=_,t[22]=E}else E=t[22];let _e=E,D;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,s.jsx)(`h2`,{className:o.Title,children:`Server Browser`}),t[26]=D):D=t[26];let ve=r.length===1?``:`s`,O;t[27]!==r.length||t[28]!==ve?(O=(0,s.jsxs)(`span`,{className:o.ServerCount,children:[r.length,` server`,ve]}),t[27]=r.length,t[28]=ve,t[29]=O):O=t[29];let k;t[30]!==u||t[31]!==c?(k=(0,s.jsx)(`button`,{className:o.RefreshButton,onClick:u,disabled:c,children:`Refresh`}),t[30]=u,t[31]=c,t[32]=k):k=t[32];let A;t[33]!==O||t[34]!==k?(A=(0,s.jsxs)(`div`,{className:o.Header,children:[D,O,k]}),t[33]=O,t[34]=k,t[35]=A):A=t[35];let j;t[36]===T?j=t[37]:(j=(0,s.jsx)(`th`,{"data-column":`server`,onClick:()=>T(`name`),children:`Server Name`}),t[36]=T,t[37]=j);let M;t[38]===T?M=t[39]:(M=()=>T(`playerCount`),t[38]=T,t[39]=M);let N;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,s.jsx)(te,{className:o.PlayersIcon,title:`Players`,"aria-label":`Players`}),t[40]=N):N=t[40];let P;t[41]===M?P=t[42]:(P=(0,s.jsx)(`th`,{"data-column":`players`,onClick:M,children:N}),t[41]=M,t[42]=P);let F;t[43]===T?F=t[44]:(F=(0,s.jsx)(`th`,{"data-column":`ping`,onClick:()=>T(`ping`),children:`Ping`}),t[43]=T,t[44]=F);let I;t[45]===T?I=t[46]:(I=(0,s.jsx)(`th`,{"data-column":`map`,onClick:()=>T(`mapName`),children:`Map`}),t[45]=T,t[46]=I);let L;t[47]===T?L=t[48]:(L=(0,s.jsx)(`th`,{"data-column":`gameType`,onClick:()=>T(`gameType`),children:`Type`}),t[47]=T,t[48]=L);let R;t[49]===T?R=t[50]:(R=(0,s.jsx)(`th`,{"data-column":`mod`,onClick:()=>T(`mod`),children:`Mod`}),t[49]=T,t[50]=R);let z;t[51]!==j||t[52]!==P||t[53]!==F||t[54]!==I||t[55]!==L||t[56]!==R?(z=(0,s.jsx)(`thead`,{children:(0,s.jsxs)(`tr`,{children:[j,P,F,I,L,R]})}),t[51]=j,t[52]=P,t[53]=F,t[54]=I,t[55]=L,t[56]=R,t[57]=z):z=t[57];let B;if(t[58]!==l||t[59]!==g||t[60]!==n||t[61]!==p||t[62]!==_e){let e;t[64]!==l||t[65]!==g||t[66]!==n||t[67]!==p?(e=e=>(0,s.jsxs)(`tr`,{onClick:()=>{de(e.address);let t=document.forms.namedItem(`serverList`).elements.namedItem(`serverAddress`);Array.from(t).find(t=>t.value===e.address).focus()},onDoubleClick:()=>{de(e.address),g(e.address),n()},children:[(0,s.jsxs)(`td`,{"data-column":`server`,children:[(0,s.jsx)(`input`,{type:`radio`,className:o.HiddenRadio,name:`serverAddress`,value:e.address,checked:p===e.address,onChange:e=>{de(e.target.value)}}),e.passwordRequired&&(0,s.jsx)(`span`,{className:o.PasswordIcon,children:`🔒`}),e.name]}),(0,s.jsxs)(`td`,{className:e.playerCount===0?o.EmptyServer:void 0,"data-column":`players`,children:[e.playerCount,(0,s.jsxs)(`span`,{className:o.CompactHidden,children:[` / `,e.maxPlayers]})]}),(0,s.jsx)(`td`,{"data-column":`ping`,children:l==null?`—`:(e.ping+l).toLocaleString()}),(0,s.jsx)(`td`,{"data-column":`map`,children:e.mapName}),(0,s.jsx)(`td`,{"data-column":`gameType`,children:e.gameType}),(0,s.jsx)(`td`,{"data-column":`mod`,children:e.mod})]},e.address),t[64]=l,t[65]=g,t[66]=n,t[67]=p,t[68]=e):e=t[68],B=_e.map(e),t[58]=l,t[59]=g,t[60]=n,t[61]=p,t[62]=_e,t[63]=B}else B=t[63];let V;t[69]===B?V=t[70]:(V=(0,s.jsx)(`tbody`,{children:B}),t[69]=B,t[70]=V);let H;t[71]!==z||t[72]!==V?(H=(0,s.jsxs)(`table`,{className:o.Table,children:[z,V]}),t[71]=z,t[72]=V,t[73]=H):H=t[73];let U;t[74]!==h||t[75]!==H?(U=(0,s.jsx)(`div`,{className:o.TableWrapper,children:(0,s.jsx)(`form`,{name:`serverList`,onSubmit:h,children:H})}),t[74]=h,t[75]=H,t[76]=U):U=t[76];let W;t[77]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,s.jsx)(`label`,{className:o.WarriorLabel,htmlFor:`warriorName`,children:`Warrior`}),t[77]=W):W=t[77];let G;t[78]===ue?G=t[79]:(G=e=>ue(e.target.value),t[78]=ue,t[79]=G);let K;t[80]!==G||t[81]!==f?(K=(0,s.jsxs)(`div`,{className:o.WarriorField,children:[W,(0,s.jsx)(`input`,{id:`warriorName`,className:o.WarriorInput,type:`text`,value:f,onChange:G,placeholder:`Name thyself…`,maxLength:24})]}),t[80]=G,t[81]=f,t[82]=K):K=t[82];let q;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,s.jsx)(`span`,{className:o.Hint,children:`Double-click a server to join`}),t[83]=q):q=t[83];let J;t[84]===n?J=t[85]:(J=(0,s.jsx)(`button`,{onClick:n,className:o.CloseButton,children:`Cancel`}),t[84]=n,t[85]=J);let ye=!p,Y;t[86]!==h||t[87]!==ye?(Y=(0,s.jsx)(`button`,{onClick:h,disabled:ye,className:o.JoinButton,children:`Join`}),t[86]=h,t[87]=ye,t[88]=Y):Y=t[88];let X;t[89]!==J||t[90]!==Y?(X=(0,s.jsxs)(`div`,{className:o.Actions,children:[J,Y]}),t[89]=J,t[90]=Y,t[91]=X):X=t[91];let Z;t[92]!==K||t[93]!==X?(Z=(0,s.jsxs)(`div`,{className:o.Footer,children:[K,q,X]}),t[92]=K,t[93]=X,t[94]=Z):Z=t[94];let Q;t[95]!==A||t[96]!==U||t[97]!==Z?(Q=(0,s.jsxs)(`div`,{className:o.Dialog,ref:he,tabIndex:-1,onClick:re,children:[A,U,Z]}),t[95]=A,t[96]=U,t[97]=Z,t[98]=Q):Q=t[98];let $;return t[99]!==n||t[100]!==Q?($=(0,s.jsx)(`div`,{className:o.Overlay,onClick:n,children:Q}),t[99]=n,t[100]=Q,t[101]=$):$=t[101],$}function re(e){return e.stopPropagation()}function ie(e){return e===`asc`?`desc`:`asc`}function ae(e){return e.joinServer}function oe(e){return e.listServers}function se(e){return e.browserToRelayPing}function ce(e){return e.serversLoading}function le(e){return e.servers}export{c as ServerBrowser}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as ee}from"./SettingsProvider-CCHVZuSg.js";import{A as i,y as te}from"./index-DfaykQpF.js";var ne=t(),a=e(n(),1),o={Dialog:`_Dialog_1s844_1 _Dialog_1t9wa_1`,Overlay:`_Overlay_1s844_10 _Overlay_1t9wa_22`,Header:`_Header_1s844_14`,Title:`_Title_1s844_22`,HiddenRadio:`_HiddenRadio_1s844_31`,RefreshButton:`_RefreshButton_1s844_41 _DialogButton_1t9wa_33`,ServerCount:`_ServerCount_1s844_47`,TableWrapper:`_TableWrapper_1s844_52`,Table:`_Table_1s844_52`,CompactHidden:`_CompactHidden_1s844_118`,EmptyServer:`_EmptyServer_1s844_169`,Empty:`_Empty_1s844_169`,PasswordIcon:`_PasswordIcon_1s844_186`,PlayersIcon:`_PlayersIcon_1s844_198`,Footer:`_Footer_1s844_209`,JoinButton:`_JoinButton_1s844_220 _DialogButton_1t9wa_33`,CloseButton:`_CloseButton_1s844_225 _Secondary_1t9wa_72 _DialogButton_1t9wa_33`,WarriorField:`_WarriorField_1s844_229`,WarriorLabel:`_WarriorLabel_1s844_235`,WarriorInput:`_WarriorInput_1s844_241`,Hint:`_Hint_1s844_261`,Actions:`_Actions_1s844_267 _Actions_1t9wa_86`},s=r();function c(e){let t=(0,ne.c)(102),{onClose:n}=e,r=i(le),c=i(ce),l=i(se),u=i(oe),d=i(ae),{warriorName:f,setWarriorName:ue}=ee(),[p,de]=(0,a.useState)(null),m;t[0]!==d||t[1]!==n||t[2]!==p||t[3]!==f?(m=()=>{p&&(d(p,f),n())},t[0]=d,t[1]=n,t[2]=p,t[3]=f,t[4]=m):m=t[4];let h=m,fe;t[5]!==d||t[6]!==n||t[7]!==f?(fe=e=>{d(e,f),n()},t[5]=d,t[6]=n,t[7]=f,t[8]=fe):fe=t[8];let g=fe,[_,pe]=(0,a.useState)(`ping`),[v,me]=(0,a.useState)(`asc`),he=(0,a.useRef)(null),y,b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>{he.current?.focus();try{document.exitPointerLock()}catch{}},b=[],t[9]=y,t[10]=b):(y=t[9],b=t[10]),(0,a.useEffect)(y,b);let x,S;t[11]===u?(x=t[12],S=t[13]):(x=()=>{u()},S=[u],t[11]=u,t[12]=x,t[13]=S),(0,a.useEffect)(x,S);let ge,C;t[14]===n?(ge=t[15],C=t[16]):(ge=()=>{let e=e=>{e.stopPropagation(),e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},C=[n],t[14]=n,t[15]=ge,t[16]=C),(0,a.useEffect)(ge,C);let w;t[17]===_?w=t[18]:(w=e=>{_===e?me(ie):(pe(e),me(`desc`))},t[17]=_,t[18]=w);let T=w,E;if(t[19]!==r||t[20]!==v||t[21]!==_){let e;t[23]!==v||t[24]!==_?(e=(e,t)=>{let n=e[_],r=t[_],ee=typeof n==`number`&&typeof r==`number`?n-r:String(n).localeCompare(String(r));return v===`asc`?ee:-ee},t[23]=v,t[24]=_,t[25]=e):e=t[25],E=[...r].sort(e),t[19]=r,t[20]=v,t[21]=_,t[22]=E}else E=t[22];let _e=E,D;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,s.jsx)(`h2`,{className:o.Title,children:`Server Browser`}),t[26]=D):D=t[26];let ve=r.length===1?``:`s`,O;t[27]!==r.length||t[28]!==ve?(O=(0,s.jsxs)(`span`,{className:o.ServerCount,children:[r.length,` server`,ve]}),t[27]=r.length,t[28]=ve,t[29]=O):O=t[29];let k;t[30]!==u||t[31]!==c?(k=(0,s.jsx)(`button`,{className:o.RefreshButton,onClick:u,disabled:c,children:`Refresh`}),t[30]=u,t[31]=c,t[32]=k):k=t[32];let A;t[33]!==O||t[34]!==k?(A=(0,s.jsxs)(`div`,{className:o.Header,children:[D,O,k]}),t[33]=O,t[34]=k,t[35]=A):A=t[35];let j;t[36]===T?j=t[37]:(j=(0,s.jsx)(`th`,{"data-column":`server`,onClick:()=>T(`name`),children:`Server Name`}),t[36]=T,t[37]=j);let M;t[38]===T?M=t[39]:(M=()=>T(`playerCount`),t[38]=T,t[39]=M);let N;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,s.jsx)(te,{className:o.PlayersIcon,title:`Players`,"aria-label":`Players`}),t[40]=N):N=t[40];let P;t[41]===M?P=t[42]:(P=(0,s.jsx)(`th`,{"data-column":`players`,onClick:M,children:N}),t[41]=M,t[42]=P);let F;t[43]===T?F=t[44]:(F=(0,s.jsx)(`th`,{"data-column":`ping`,onClick:()=>T(`ping`),children:`Ping`}),t[43]=T,t[44]=F);let I;t[45]===T?I=t[46]:(I=(0,s.jsx)(`th`,{"data-column":`map`,onClick:()=>T(`mapName`),children:`Map`}),t[45]=T,t[46]=I);let L;t[47]===T?L=t[48]:(L=(0,s.jsx)(`th`,{"data-column":`gameType`,onClick:()=>T(`gameType`),children:`Type`}),t[47]=T,t[48]=L);let R;t[49]===T?R=t[50]:(R=(0,s.jsx)(`th`,{"data-column":`mod`,onClick:()=>T(`mod`),children:`Mod`}),t[49]=T,t[50]=R);let z;t[51]!==j||t[52]!==P||t[53]!==F||t[54]!==I||t[55]!==L||t[56]!==R?(z=(0,s.jsx)(`thead`,{children:(0,s.jsxs)(`tr`,{children:[j,P,F,I,L,R]})}),t[51]=j,t[52]=P,t[53]=F,t[54]=I,t[55]=L,t[56]=R,t[57]=z):z=t[57];let B;if(t[58]!==l||t[59]!==g||t[60]!==n||t[61]!==p||t[62]!==_e){let e;t[64]!==l||t[65]!==g||t[66]!==n||t[67]!==p?(e=e=>(0,s.jsxs)(`tr`,{onClick:()=>{de(e.address);let t=document.forms.namedItem(`serverList`).elements.namedItem(`serverAddress`);Array.from(t).find(t=>t.value===e.address).focus()},onDoubleClick:()=>{de(e.address),g(e.address),n()},children:[(0,s.jsxs)(`td`,{"data-column":`server`,children:[(0,s.jsx)(`input`,{type:`radio`,className:o.HiddenRadio,name:`serverAddress`,value:e.address,checked:p===e.address,onChange:e=>{de(e.target.value)}}),e.passwordRequired&&(0,s.jsx)(`span`,{className:o.PasswordIcon,children:`🔒`}),e.name]}),(0,s.jsxs)(`td`,{className:e.playerCount===0?o.EmptyServer:void 0,"data-column":`players`,children:[e.playerCount,(0,s.jsxs)(`span`,{className:o.CompactHidden,children:[` / `,e.maxPlayers]})]}),(0,s.jsx)(`td`,{"data-column":`ping`,children:l==null?`—`:(e.ping+l).toLocaleString()}),(0,s.jsx)(`td`,{"data-column":`map`,children:e.mapName}),(0,s.jsx)(`td`,{"data-column":`gameType`,children:e.gameType}),(0,s.jsx)(`td`,{"data-column":`mod`,children:e.mod})]},e.address),t[64]=l,t[65]=g,t[66]=n,t[67]=p,t[68]=e):e=t[68],B=_e.map(e),t[58]=l,t[59]=g,t[60]=n,t[61]=p,t[62]=_e,t[63]=B}else B=t[63];let V;t[69]===B?V=t[70]:(V=(0,s.jsx)(`tbody`,{children:B}),t[69]=B,t[70]=V);let H;t[71]!==z||t[72]!==V?(H=(0,s.jsxs)(`table`,{className:o.Table,children:[z,V]}),t[71]=z,t[72]=V,t[73]=H):H=t[73];let U;t[74]!==h||t[75]!==H?(U=(0,s.jsx)(`div`,{className:o.TableWrapper,children:(0,s.jsx)(`form`,{name:`serverList`,onSubmit:h,children:H})}),t[74]=h,t[75]=H,t[76]=U):U=t[76];let W;t[77]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,s.jsx)(`label`,{className:o.WarriorLabel,htmlFor:`warriorName`,children:`Warrior`}),t[77]=W):W=t[77];let G;t[78]===ue?G=t[79]:(G=e=>ue(e.target.value),t[78]=ue,t[79]=G);let K;t[80]!==G||t[81]!==f?(K=(0,s.jsxs)(`div`,{className:o.WarriorField,children:[W,(0,s.jsx)(`input`,{id:`warriorName`,className:o.WarriorInput,type:`text`,value:f,onChange:G,placeholder:`Name thyself…`,maxLength:24})]}),t[80]=G,t[81]=f,t[82]=K):K=t[82];let q;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,s.jsx)(`span`,{className:o.Hint,children:`Double-click a server to join`}),t[83]=q):q=t[83];let J;t[84]===n?J=t[85]:(J=(0,s.jsx)(`button`,{onClick:n,className:o.CloseButton,children:`Cancel`}),t[84]=n,t[85]=J);let ye=!p,Y;t[86]!==h||t[87]!==ye?(Y=(0,s.jsx)(`button`,{onClick:h,disabled:ye,className:o.JoinButton,children:`Join`}),t[86]=h,t[87]=ye,t[88]=Y):Y=t[88];let X;t[89]!==J||t[90]!==Y?(X=(0,s.jsxs)(`div`,{className:o.Actions,children:[J,Y]}),t[89]=J,t[90]=Y,t[91]=X):X=t[91];let Z;t[92]!==K||t[93]!==X?(Z=(0,s.jsxs)(`div`,{className:o.Footer,children:[K,q,X]}),t[92]=K,t[93]=X,t[94]=Z):Z=t[94];let Q;t[95]!==A||t[96]!==U||t[97]!==Z?(Q=(0,s.jsxs)(`div`,{className:o.Dialog,ref:he,tabIndex:-1,onClick:re,children:[A,U,Z]}),t[95]=A,t[96]=U,t[97]=Z,t[98]=Q):Q=t[98];let $;return t[99]!==n||t[100]!==Q?($=(0,s.jsx)(`div`,{className:o.Overlay,onClick:n,children:Q}),t[99]=n,t[100]=Q,t[101]=$):$=t[101],$}function re(e){return e.stopPropagation()}function ie(e){return e===`asc`?`desc`:`asc`}function ae(e){return e.joinServer}function oe(e){return e.listServers}function se(e){return e.browserToRelayPing}function ce(e){return e.serversLoading}function le(e){return e.servers}export{c as ServerBrowser}; \ No newline at end of file diff --git a/docs/assets/ShapeModel-BCrUHJyp.js b/docs/assets/ShapeModel-BMJjmLiG.js similarity index 98% rename from docs/assets/ShapeModel-BCrUHJyp.js rename to docs/assets/ShapeModel-BMJjmLiG.js index 0b9967ae..902751cb 100644 --- a/docs/assets/ShapeModel-BCrUHJyp.js +++ b/docs/assets/ShapeModel-BMJjmLiG.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{i}from"./react-three-fiber.esm-CgPHUpXo.js";import{S as a,b as o,c as s,f as c,l,n as u,p as d,r as f,s as p,v as m,x as h,y as g}from"./GenericShape-BC0gDQiR.js";import{Q as _,o as v}from"./three.module-07hRbor4.js";import{n as y,r as b}from"./engineStore-Dkm20jvr.js";import{n as x}from"./streamPlaybackStore-DhJekvnx.js";import{c as S}from"./globalFogUniforms-CtxQvsRj.js";var C=t(),w=e(n(),1),T=r();function E(e){if(!e)return`lookde`;let t=e.toLowerCase();return t.includes(`missile`)?`lookms`:t.includes(`sniper`)?`looksn`:`lookde`}function D(e){let t=(0,C.c)(18),{entity:n}=e,r=n.weaponShape,i=n.shapeName,a=f(i),o=f(r),l;if(t[0]!==a.animations||t[1]!==a.scene||t[2]!==r||t[3]!==o.animations||t[4]!==o.scene){bb0:{let e=E(r),n=c(a.scene,a.animations,`Mount0`,[e]);if(!n){let e;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e={position:void 0,quaternion:void 0},t[6]=e):e=t[6],l=e;break bb0}let i=c(o.scene,o.animations,`Mountpoint`),u,d;if(i){let e=i.quaternion.clone().invert(),t=i.position.clone().negate().applyQuaternion(e);d=n.quaternion.clone().multiply(e),u=t.clone().applyQuaternion(n.quaternion).add(n.position)}else u=n.position.clone(),d=n.quaternion.clone();let f=u.applyQuaternion(p),m=p.clone().multiply(d).multiply(s),h;t[7]!==f||t[8]!==m?(h={position:f,quaternion:m},t[7]=f,t[8]=m,t[9]=h):h=t[9],l=h}t[0]=a.animations,t[1]=a.scene,t[2]=r,t[3]=o.animations,t[4]=o.scene,t[5]=l}else l=t[5];let d=l,m;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(m={_class:`weapon`,_className:`Weapon`,_id:0},t[10]=m):m=t[10];let g=m,_;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,T.jsx)(u,{loadingColor:`#4488ff`}),t[11]=_):_=t[11];let v;t[12]!==d.position||t[13]!==d.quaternion?(v=(0,T.jsx)(`group`,{position:d.position,quaternion:d.quaternion,children:_}),t[12]=d.position,t[13]=d.quaternion,t[14]=v):v=t[14];let y;return t[15]!==r||t[16]!==v?(y=(0,T.jsx)(h,{object:g,shapeName:r,type:`Item`,children:v}),t[15]=r,t[16]=v,t[17]=y):y=t[17],y}function O(e){let t=e.sizes,n=e.times;if(!Array.isArray(t)||t.length===0)return{times:[0,1],sizes:[[1,1,1],[1,1,1]]};let r=t.map(e=>[e.x/100,e.y/100,e.z/100]);return{times:Array.isArray(n)?n:r.map((e,t)=>t/Math.max(r.length-1,1)),sizes:r}}function k(e,t){let{times:n,sizes:r}=e;if(n.length===0)return[1,1,1];if(t<=n[0])return r[0];if(t>=n[n.length-1])return r[r.length-1];for(let e=0;e=n[e]&&t<=n[e+1]){let i=(t-n[e])/(n[e+1]-n[e]);return[r[e][0]+(r[e+1][0]-r[e][0])*i,r[e][1]+(r[e+1][1]-r[e][1])*i,r[e][2]+(r[e+1][2]-r[e][2])*i]}return r[r.length-1]}function A({entity:e}){let t=x.getState().playback,n=f(e.shapeName),r=S(),s=(0,w.useRef)(null),c=(0,w.useRef)(y()),u=(0,w.useRef)(Math.random()*Math.PI*2),p=(0,w.useRef)([]),h=(0,w.useMemo)(()=>{if(e.explosionDataBlockId)return t.getDataBlockData(e.explosionDataBlockId)},[e.explosionDataBlockId,t]),C=(0,w.useMemo)(()=>h?O(h):void 0,[h]),E=(0,w.useMemo)(()=>{let e=h?.explosionScale;return e?[e.x/100,e.y/100,e.z/100]:[1,1,1]},[h]),D=(h?.lifetimeMS??31)*32,A=e.faceViewer!==!1,{scene:j,mixer:M,visNodes:N,iflInfos:P,materials:F}=(0,w.useMemo)(()=>{let t=a(n.scene),i=[];t.traverse(e=>{if(!e.isMesh||!e.material)return;let t=Array.isArray(e.material)?e.material[0]:e.material;if(!t?.userData)return;let n=new Set(t.userData.flag_names??[]),r=t.userData.resource_path;if(n.has(`IflMaterial`)&&r){let t=e.userData;i.push({mesh:e,iflPath:`textures/${r}.ifl`,sequenceName:t?.ifl_sequence?String(t.ifl_sequence).toLowerCase():void 0,duration:t?.ifl_duration?Number(t.ifl_duration):void 0,cyclic:t?.ifl_sequence?!!t.ifl_cyclic:void 0,toolBegin:t?.ifl_tool_begin==null?void 0:Number(t.ifl_tool_begin)})}}),d(t,e.shapeName,{anisotropy:r});let o=[];t.traverse(e=>{if(!e.isMesh)return;let t=e.userData;if(!t)return;let n=t.vis_keyframes,r=t.vis_duration,i=(t.vis_sequence??``).toLowerCase();!i||!Array.isArray(n)||n.length<=1||!r||r<=0||i===`ambient`&&o.push({mesh:e,keyframes:n,duration:r,cyclic:!!t.vis_cyclic})});for(let e of o)e.mesh.visible=!0,e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.transparent=!0,e.mesh.material.depthWrite=!1);for(let e of i)e.mesh.userData?.vis_sequence||(e.mesh.visible=!0);let s=new Map;for(let e of n.animations)s.set(e.name.toLowerCase(),e);let c=s.get(`ambient`),l=null;if(c){l=new v(t);let e=l.clipAction(c);e.setLoop(_,1),e.clampWhenFinished=!0,e.timeScale=(h?.playSpeed??20)/20,e.play()}let u=[];return t.traverse(e=>{e.isMesh&&(Array.isArray(e.material)?u.push(...e.material):e.material&&u.push(e.material))}),t.traverse(e=>{e.frustumCulled=!1}),{scene:t,mixer:l,visNodes:o,iflInfos:i,materials:u}},[n,h,r]);return(0,w.useEffect)(()=>()=>{l(j),M?.uncacheRoot(j)},[j,M]),(0,w.useEffect)(()=>{p.current=[];for(let e of P)g(e.iflPath).then(t=>{let n=Array.isArray(e.mesh.material)?e.mesh.material[0]:e.mesh.material;n&&(n.map=t.texture,n.needsUpdate=!0),p.current.push({atlas:t,info:e})}).catch(()=>{})},[P]),i((e,t)=>{let n=s.current;if(!n)return;let r=b.getState().playback,i=r.status===`playing`?t*r.rate:0,a=y()-c.current,l=Math.min(a/D,1),d=a/1e3;M&&M.update(i);let f=l>.8?1-(l-.8)/.2:1;for(let{mesh:e,keyframes:t,duration:n,cyclic:r}of N){let i=e.material;if(!i||Array.isArray(i))continue;let a=d/n,o=r?a%1:Math.min(a,1),s=t.length,c=o*s,l=Math.floor(c)%s,u=(l+1)%s,p=c-Math.floor(c);i.opacity=(t[l]+(t[u]-t[l])*p)*f}if(f<1)for(let e of F)`opacity`in e&&(e.transparent=!0,e.opacity*=f);for(let{atlas:e,info:t}of p.current){let n;n=t.sequenceName&&t.duration?(t.cyclic?d/t.duration%1:Math.min(d/t.duration,1))*t.duration+(t.toolBegin??0):d,o(e,m(e,n))}if(C){let e=k(C,l);n.scale.set(e[0]*E[0],e[1]*E[1],e[2]*E[2])}A&&(n.lookAt(e.camera.position),n.rotateZ(u.current))}),(0,T.jsx)(`group`,{ref:s,children:(0,T.jsx)(`group`,{rotation:[0,Math.PI,0],children:(0,T.jsx)(`primitive`,{object:j})})})}export{A as ExplosionShape,D as WeaponModel}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{i}from"./react-three-fiber.esm-CgPHUpXo.js";import{S as a,b as o,c as s,f as c,l,n as u,p as d,r as f,s as p,v as m,x as h,y as g}from"./GenericShape-FZ5loHEW.js";import{Q as _,o as v}from"./three.module-07hRbor4.js";import{n as y,r as b}from"./engineStore-Dkm20jvr.js";import{n as x}from"./streamPlaybackStore-DhJekvnx.js";import{c as S}from"./globalFogUniforms-CtxQvsRj.js";var C=t(),w=e(n(),1),T=r();function E(e){if(!e)return`lookde`;let t=e.toLowerCase();return t.includes(`missile`)?`lookms`:t.includes(`sniper`)?`looksn`:`lookde`}function D(e){let t=(0,C.c)(18),{entity:n}=e,r=n.weaponShape,i=n.shapeName,a=f(i),o=f(r),l;if(t[0]!==a.animations||t[1]!==a.scene||t[2]!==r||t[3]!==o.animations||t[4]!==o.scene){bb0:{let e=E(r),n=c(a.scene,a.animations,`Mount0`,[e]);if(!n){let e;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e={position:void 0,quaternion:void 0},t[6]=e):e=t[6],l=e;break bb0}let i=c(o.scene,o.animations,`Mountpoint`),u,d;if(i){let e=i.quaternion.clone().invert(),t=i.position.clone().negate().applyQuaternion(e);d=n.quaternion.clone().multiply(e),u=t.clone().applyQuaternion(n.quaternion).add(n.position)}else u=n.position.clone(),d=n.quaternion.clone();let f=u.applyQuaternion(p),m=p.clone().multiply(d).multiply(s),h;t[7]!==f||t[8]!==m?(h={position:f,quaternion:m},t[7]=f,t[8]=m,t[9]=h):h=t[9],l=h}t[0]=a.animations,t[1]=a.scene,t[2]=r,t[3]=o.animations,t[4]=o.scene,t[5]=l}else l=t[5];let d=l,m;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(m={_class:`weapon`,_className:`Weapon`,_id:0},t[10]=m):m=t[10];let g=m,_;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,T.jsx)(u,{loadingColor:`#4488ff`}),t[11]=_):_=t[11];let v;t[12]!==d.position||t[13]!==d.quaternion?(v=(0,T.jsx)(`group`,{position:d.position,quaternion:d.quaternion,children:_}),t[12]=d.position,t[13]=d.quaternion,t[14]=v):v=t[14];let y;return t[15]!==r||t[16]!==v?(y=(0,T.jsx)(h,{object:g,shapeName:r,type:`Item`,children:v}),t[15]=r,t[16]=v,t[17]=y):y=t[17],y}function O(e){let t=e.sizes,n=e.times;if(!Array.isArray(t)||t.length===0)return{times:[0,1],sizes:[[1,1,1],[1,1,1]]};let r=t.map(e=>[e.x/100,e.y/100,e.z/100]);return{times:Array.isArray(n)?n:r.map((e,t)=>t/Math.max(r.length-1,1)),sizes:r}}function k(e,t){let{times:n,sizes:r}=e;if(n.length===0)return[1,1,1];if(t<=n[0])return r[0];if(t>=n[n.length-1])return r[r.length-1];for(let e=0;e=n[e]&&t<=n[e+1]){let i=(t-n[e])/(n[e+1]-n[e]);return[r[e][0]+(r[e+1][0]-r[e][0])*i,r[e][1]+(r[e+1][1]-r[e][1])*i,r[e][2]+(r[e+1][2]-r[e][2])*i]}return r[r.length-1]}function A({entity:e}){let t=x.getState().playback,n=f(e.shapeName),r=S(),s=(0,w.useRef)(null),c=(0,w.useRef)(y()),u=(0,w.useRef)(Math.random()*Math.PI*2),p=(0,w.useRef)([]),h=(0,w.useMemo)(()=>{if(e.explosionDataBlockId)return t.getDataBlockData(e.explosionDataBlockId)},[e.explosionDataBlockId,t]),C=(0,w.useMemo)(()=>h?O(h):void 0,[h]),E=(0,w.useMemo)(()=>{let e=h?.explosionScale;return e?[e.x/100,e.y/100,e.z/100]:[1,1,1]},[h]),D=(h?.lifetimeMS??31)*32,A=e.faceViewer!==!1,{scene:j,mixer:M,visNodes:N,iflInfos:P,materials:F}=(0,w.useMemo)(()=>{let t=a(n.scene),i=[];t.traverse(e=>{if(!e.isMesh||!e.material)return;let t=Array.isArray(e.material)?e.material[0]:e.material;if(!t?.userData)return;let n=new Set(t.userData.flag_names??[]),r=t.userData.resource_path;if(n.has(`IflMaterial`)&&r){let t=e.userData;i.push({mesh:e,iflPath:`textures/${r}.ifl`,sequenceName:t?.ifl_sequence?String(t.ifl_sequence).toLowerCase():void 0,duration:t?.ifl_duration?Number(t.ifl_duration):void 0,cyclic:t?.ifl_sequence?!!t.ifl_cyclic:void 0,toolBegin:t?.ifl_tool_begin==null?void 0:Number(t.ifl_tool_begin)})}}),d(t,e.shapeName,{anisotropy:r});let o=[];t.traverse(e=>{if(!e.isMesh)return;let t=e.userData;if(!t)return;let n=t.vis_keyframes,r=t.vis_duration,i=(t.vis_sequence??``).toLowerCase();!i||!Array.isArray(n)||n.length<=1||!r||r<=0||i===`ambient`&&o.push({mesh:e,keyframes:n,duration:r,cyclic:!!t.vis_cyclic})});for(let e of o)e.mesh.visible=!0,e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.transparent=!0,e.mesh.material.depthWrite=!1);for(let e of i)e.mesh.userData?.vis_sequence||(e.mesh.visible=!0);let s=new Map;for(let e of n.animations)s.set(e.name.toLowerCase(),e);let c=s.get(`ambient`),l=null;if(c){l=new v(t);let e=l.clipAction(c);e.setLoop(_,1),e.clampWhenFinished=!0,e.timeScale=(h?.playSpeed??20)/20,e.play()}let u=[];return t.traverse(e=>{e.isMesh&&(Array.isArray(e.material)?u.push(...e.material):e.material&&u.push(e.material))}),t.traverse(e=>{e.frustumCulled=!1}),{scene:t,mixer:l,visNodes:o,iflInfos:i,materials:u}},[n,h,r]);return(0,w.useEffect)(()=>()=>{l(j),M?.uncacheRoot(j)},[j,M]),(0,w.useEffect)(()=>{p.current=[];for(let e of P)g(e.iflPath).then(t=>{let n=Array.isArray(e.mesh.material)?e.mesh.material[0]:e.mesh.material;n&&(n.map=t.texture,n.needsUpdate=!0),p.current.push({atlas:t,info:e})}).catch(()=>{})},[P]),i((e,t)=>{let n=s.current;if(!n)return;let r=b.getState().playback,i=r.status===`playing`?t*r.rate:0,a=y()-c.current,l=Math.min(a/D,1),d=a/1e3;M&&M.update(i);let f=l>.8?1-(l-.8)/.2:1;for(let{mesh:e,keyframes:t,duration:n,cyclic:r}of N){let i=e.material;if(!i||Array.isArray(i))continue;let a=d/n,o=r?a%1:Math.min(a,1),s=t.length,c=o*s,l=Math.floor(c)%s,u=(l+1)%s,p=c-Math.floor(c);i.opacity=(t[l]+(t[u]-t[l])*p)*f}if(f<1)for(let e of F)`opacity`in e&&(e.transparent=!0,e.opacity*=f);for(let{atlas:e,info:t}of p.current){let n;n=t.sequenceName&&t.duration?(t.cyclic?d/t.duration%1:Math.min(d/t.duration,1))*t.duration+(t.toolBegin??0):d,o(e,m(e,n))}if(C){let e=k(C,l);n.scale.set(e[0]*E[0],e[1]*E[1],e[2]*E[2])}A&&(n.lookAt(e.camera.position),n.rotateZ(u.current))}),(0,T.jsx)(`group`,{ref:s,children:(0,T.jsx)(`group`,{rotation:[0,Math.PI,0],children:(0,T.jsx)(`primitive`,{object:j})})})}export{A as ExplosionShape,D as WeaponModel}; \ No newline at end of file diff --git a/docs/assets/StreamingController-DfXluNV4.js b/docs/assets/StreamingController-CqQqOUzP.js similarity index 74% rename from docs/assets/StreamingController-DfXluNV4.js rename to docs/assets/StreamingController-CqQqOUzP.js index 03f7a5ed..0daf2512 100644 --- a/docs/assets/StreamingController-DfXluNV4.js +++ b/docs/assets/StreamingController-CqQqOUzP.js @@ -1,4 +1,4 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{i,o as a}from"./react-three-fiber.esm-CgPHUpXo.js";import{a as o,i as s}from"./SettingsProvider-CCHVZuSg.js";import{a as c,g as l,h as u,o as d}from"./GenericShape-BC0gDQiR.js";import{t as f}from"./logger-z_EpIdIa.js";import{At as p,Bt as m,C as h,It as g,Lt as _,O as v,Pt as y,St as b,Ut as x,Vt as S,bt as C,g as w,h as T,it as E,m as D,p as O,rt as k,wt as A}from"./three.module-07hRbor4.js";import{a as j,n as M,r as N,t as P}from"./engineStore-Dkm20jvr.js";import{j as F}from"./index-B1XI52_L.js";import{p as I,r as ee}from"./loaders-CIpiZadQ.js";import{n as te}from"./AudioContext-CMp1T7r9.js";import{getCachedAudioBuffer as L,getSoundGeneration as ne,playOneShotSound as re,resolveAudioProfile as R,stopAllTrackedSounds as z,trackSound as ie,untrackSound as ae}from"./AudioEmitter-2bTNGdLP.js";import{t as oe}from"./gameEntityTypes-B1KihaDt.js";import{n as B,t as se}from"./streamPlaybackStore-DhJekvnx.js";import{l as ce}from"./globalFogUniforms-CtxQvsRj.js";import{PlayerEyeOffset as le}from"./PlayerModel-CbQhsRlW.js";var ue=t(),V=e(n(),1),de=Math.PI/180,fe=-9.81,pe=Math.PI/(180*1e3),me=1/100,he=-1e3,ge=50,H=5,_e=5,ve=10;function U(e,t,n){let r=e[t];return typeof r==`number`&&Number.isFinite(r)?r:n}function W(e,t,n){let r=e[t];return typeof r==`boolean`?r:typeof r==`number`?r!==0:n}function ye(e){let t=e.keys,n=[];if(Array.isArray(t)&&t.length>0)for(let e=0;e0&&t[0]&&(r=t[0])}return{dragCoefficient:U(e,`dragCoefficient`,0)*_e,windCoefficient:U(e,`windCoefficient`,1),gravityCoefficient:U(e,`gravityCoefficient`,0)*ve,inheritedVelFactor:U(e,`inheritedVelFactor`,0),constantAcceleration:U(e,`constantAcceleration`,0),lifetimeMS:U(e,`lifetimeMS`,31)<=t){let r=e[n-1],i=e[n],a=i.time-r.time,o=a>0?(t-r.time)/a:0;return{r:r.r+(i.r-r.r)*o,g:r.g+(i.g-r.g)*o,b:r.b+(i.b-r.b)*o,a:r.a+(i.a-r.a)*o,size:r.size+(i.size-r.size)*o}}let n=e[e.length-1];return{r:n.r,g:n.g,b:n.b,a:n.a,size:n.size}}var Te=class{data;particles=[];maxParticles;internalClock=0;nextParticleTime=0;emitterAge=0;emitterLifetime;emitterDead=!1;constructor(e,t=256,n){this.data=e,this.maxParticles=t;let r=n??e.lifetimeMS;!n&&e.lifetimeVarianceMS>0&&(r+=Math.round(G(0,e.lifetimeVarianceMS))),this.emitterLifetime=r}emitBurst(e,t,n=[0,0,1]){for(let r=0;r0;){if(this.nextParticleTime>0){let e=Math.min(r,this.nextParticleTime);this.nextParticleTime-=e,r-=e,this.internalClock+=e;continue}if(this.particles.length0)){let e=this.particles[this.particles.length-1];e.currentAge+=r,e.currentAge>=e.totalLifetime&&this.particles.pop()}let t=this.data.ejectionPeriodMS;this.data.periodVarianceMS>0&&(t+=Math.round(G(0,this.data.periodVarianceMS))),this.nextParticleTime=Math.max(1,t)}}update(e){this.emitterAge+=e,this.emitterLifetime>0&&this.emitterAge>this.emitterLifetime&&(this.emitterDead=!0);let t=e/1e3,n=this.data.particles;for(let r=this.particles.length-1;r>=0;r--){let i=this.particles[r];if(i.currentAge+=e,i.currentAge>=i.totalLifetime){this.particles[r]=this.particles[this.particles.length-1],this.particles.pop();continue}let a=n.dragCoefficient,o=n.gravityCoefficient,s=i.acc[0]-i.vel[0]*a,c=i.acc[1]-i.vel[1]*a,l=i.acc[2]-i.vel[2]*a+fe*o;i.vel[0]+=s*t,i.vel[1]+=c*t,i.vel[2]+=l*t,i.pos[0]+=i.vel[0]*t,i.pos[1]+=i.vel[1]*t,i.pos[2]+=i.vel[2]*t;let u=i.currentAge/i.totalLifetime,d=we(n.keys,u);i.r=d.r,i.g=d.g,i.b=d.b,i.a=d.a,i.size=d.size,i.currentSpin=i.spinSpeed*i.currentAge*pe}}isDead(){return this.emitterDead&&this.particles.length===0}kill(){this.emitterDead=!0}addParticle(e,t){let n=this.data,r=n.particles,i=t[0],a=t[1],o=t[2],s=Se(i,a,o),c=(n.thetaMin+Math.random()*(n.thetaMax-n.thetaMin))*de,l=(this.internalClock/1e3*n.phiReferenceVel+Math.random()*n.phiVariance)*de;[i,a,o]=Ce(i,a,o,s[0],s[1],s[2],c),[i,a,o]=Ce(i,a,o,t[0],t[1],t[2],l);let u=Math.sqrt(i*i+a*a+o*o);u>1e-8&&(i/=u,a/=u,o/=u);let d=G(n.ejectionVelocity,n.velocityVariance),f=[e[0]+i*n.ejectionOffset,e[1]+a*n.ejectionOffset,e[2]+o*n.ejectionOffset],p=[i*d,a*d,o*d],m=r.constantAcceleration,h=[p[0]*m,p[1]*m,p[2]*m],g=r.lifetimeMS;r.lifetimeVarianceMS>0&&(g+=Math.round(G(0,r.lifetimeVarianceMS))),g=Math.max(1,g);let _=r.spinSpeed+xe(r.spinRandomMin,r.spinRandomMax),v=r.keys[0];this.particles.push({pos:f,vel:p,acc:h,orientDir:[i,a,o],currentAge:0,totalLifetime:g,dataIndex:0,spinSpeed:_,currentSpin:0,r:v.r,g:v.g,b:v.b,a:v.a,size:v.size})}},Ee=` +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{i,o as a}from"./react-three-fiber.esm-CgPHUpXo.js";import{a as o,i as s}from"./SettingsProvider-CCHVZuSg.js";import{a as c,g as l,h as u,o as d}from"./GenericShape-FZ5loHEW.js";import{t as f}from"./logger-z_EpIdIa.js";import{At as p,Bt as m,C as h,It as g,Lt as _,O as v,Pt as y,St as b,Ut as x,Vt as S,bt as C,g as w,h as T,it as E,m as D,p as O,rt as k,wt as A}from"./three.module-07hRbor4.js";import{a as j,n as M,r as N,t as P}from"./engineStore-Dkm20jvr.js";import{j as F}from"./index-DfaykQpF.js";import{p as I,r as ee}from"./loaders-CIpiZadQ.js";import{n as te}from"./AudioContext-CMp1T7r9.js";import{getCachedAudioBuffer as L,getSoundGeneration as ne,playOneShotSound as re,resolveAudioProfile as R,stopAllTrackedSounds as z,trackSound as ie,untrackSound as ae}from"./AudioEmitter-Dk4R9QgT.js";import{t as oe}from"./gameEntityTypes-B1KihaDt.js";import{n as B,t as se}from"./streamPlaybackStore-DhJekvnx.js";import{l as ce}from"./globalFogUniforms-CtxQvsRj.js";import{PlayerEyeOffset as le}from"./PlayerModel-Cm8DLHtl.js";var ue=t(),V=e(n(),1),de=Math.PI/180,fe=-9.81,pe=Math.PI/(180*1e3),me=1/100,he=-1e3,ge=50,H=5,_e=5,ve=10;function U(e,t,n){let r=e[t];return typeof r==`number`&&Number.isFinite(r)?r:n}function W(e,t,n){let r=e[t];return typeof r==`boolean`?r:typeof r==`number`?r!==0:n}function ye(e){let t=e.keys,n=[];if(Array.isArray(t)&&t.length>0)for(let e=0;e0&&t[0]&&(r=t[0])}return{dragCoefficient:U(e,`dragCoefficient`,0)*_e,windCoefficient:U(e,`windCoefficient`,1),gravityCoefficient:U(e,`gravityCoefficient`,0)*ve,inheritedVelFactor:U(e,`inheritedVelFactor`,0),constantAcceleration:U(e,`constantAcceleration`,0),lifetimeMS:U(e,`lifetimeMS`,31)<=t){let r=e[n-1],i=e[n],a=i.time-r.time,o=a>0?(t-r.time)/a:0;return{r:r.r+(i.r-r.r)*o,g:r.g+(i.g-r.g)*o,b:r.b+(i.b-r.b)*o,a:r.a+(i.a-r.a)*o,size:r.size+(i.size-r.size)*o}}let n=e[e.length-1];return{r:n.r,g:n.g,b:n.b,a:n.a,size:n.size}}var Te=class{data;particles=[];maxParticles;internalClock=0;nextParticleTime=0;emitterAge=0;emitterLifetime;emitterDead=!1;constructor(e,t=256,n){this.data=e,this.maxParticles=t;let r=n??e.lifetimeMS;!n&&e.lifetimeVarianceMS>0&&(r+=Math.round(G(0,e.lifetimeVarianceMS))),this.emitterLifetime=r}emitBurst(e,t,n=[0,0,1]){for(let r=0;r0;){if(this.nextParticleTime>0){let e=Math.min(r,this.nextParticleTime);this.nextParticleTime-=e,r-=e,this.internalClock+=e;continue}if(this.particles.length0)){let e=this.particles[this.particles.length-1];e.currentAge+=r,e.currentAge>=e.totalLifetime&&this.particles.pop()}let t=this.data.ejectionPeriodMS;this.data.periodVarianceMS>0&&(t+=Math.round(G(0,this.data.periodVarianceMS))),this.nextParticleTime=Math.max(1,t)}}update(e){this.emitterAge+=e,this.emitterLifetime>0&&this.emitterAge>this.emitterLifetime&&(this.emitterDead=!0);let t=e/1e3,n=this.data.particles;for(let r=this.particles.length-1;r>=0;r--){let i=this.particles[r];if(i.currentAge+=e,i.currentAge>=i.totalLifetime){this.particles[r]=this.particles[this.particles.length-1],this.particles.pop();continue}let a=n.dragCoefficient,o=n.gravityCoefficient,s=i.acc[0]-i.vel[0]*a,c=i.acc[1]-i.vel[1]*a,l=i.acc[2]-i.vel[2]*a+fe*o;i.vel[0]+=s*t,i.vel[1]+=c*t,i.vel[2]+=l*t,i.pos[0]+=i.vel[0]*t,i.pos[1]+=i.vel[1]*t,i.pos[2]+=i.vel[2]*t;let u=i.currentAge/i.totalLifetime,d=we(n.keys,u);i.r=d.r,i.g=d.g,i.b=d.b,i.a=d.a,i.size=d.size,i.currentSpin=i.spinSpeed*i.currentAge*pe}}isDead(){return this.emitterDead&&this.particles.length===0}kill(){this.emitterDead=!0}addParticle(e,t){let n=this.data,r=n.particles,i=t[0],a=t[1],o=t[2],s=Se(i,a,o),c=(n.thetaMin+Math.random()*(n.thetaMax-n.thetaMin))*de,l=(this.internalClock/1e3*n.phiReferenceVel+Math.random()*n.phiVariance)*de;[i,a,o]=Ce(i,a,o,s[0],s[1],s[2],c),[i,a,o]=Ce(i,a,o,t[0],t[1],t[2],l);let u=Math.sqrt(i*i+a*a+o*o);u>1e-8&&(i/=u,a/=u,o/=u);let d=G(n.ejectionVelocity,n.velocityVariance),f=[e[0]+i*n.ejectionOffset,e[1]+a*n.ejectionOffset,e[2]+o*n.ejectionOffset],p=[i*d,a*d,o*d],m=r.constantAcceleration,h=[p[0]*m,p[1]*m,p[2]*m],g=r.lifetimeMS;r.lifetimeVarianceMS>0&&(g+=Math.round(G(0,r.lifetimeVarianceMS))),g=Math.max(1,g);let _=r.spinSpeed+xe(r.spinRandomMin,r.spinRandomMax),v=r.keys[0];this.particles.push({pos:f,vel:p,acc:h,orientDir:[i,a,o],currentAge:0,totalLifetime:g,dataIndex:0,spinSpeed:_,currentSpin:0,r:v.r,g:v.g,b:v.b,a:v.a,size:v.size})}},Ee=` // 'position' is auto-declared by Three.js for ShaderMaterial. attribute vec4 particleColor; attribute float particleSize; @@ -86,4 +86,4 @@ void main() { vec4 tex = texture2D(uTexture, vUV); gl_FragColor = vec4(vColor.rgb * tex.rgb, vColor.a * tex.a); } -`;function He(e){let t=(e+1)*2,n=new Float32Array(t*3),r=new Float32Array(t*2),i=new Float32Array(t*4),a=e*6,o=new Uint16Array(a);for(let t=0;t0){let e=0;for(let n of t)e=Math.max(e,n.x,n.y,n.z);if(e>0)return e/1e3}let n=e.particleRadius;return typeof n==`number`&&n>0?n:5}function qe(e){let t=new T,n=e*4,r=e*6,i=new Float32Array(n*2);for(let t=0;t{let i=p.current,a=r.current;if(!i||!a)return;let o=N.getState().playback,s=o.status===`playing`,m=s?t*o.rate:0,g=m*1e3,v=n.getDataBlockData.bind(n);for(let e of a.entities){if(e.type!==`Explosion`||!e.explosionDataBlockId||!e.position||_.current.has(e.id))continue;_.current.add(e.id);let t=Xe(e.explosionDataBlockId,v);if(!t)continue;let n=[...e.position];for(let e of t.burstEmitters){let t=new Te(e.data,q);t.emitBurst(n,e.density);let r=Y(e.data.particles.textureName),a=qe(q),o=Je(r,e.data.particles.useInvAlpha,e.data.orientParticles),s=new k(a,o);s.frustumCulled=!1,i.add(s),h.current.push({emitter:t,mesh:s,geometry:a,material:o,targetTexture:r,origin:n,isBurst:!0,hasBurst:!0})}for(let e of t.streamingEmitters){let r=new Te(e,q,t.lifetimeMS),a=Y(e.particles.textureName),o=qe(q),s=Je(a,e.particles.useInvAlpha,e.orientParticles),c=new k(o,s);c.frustumCulled=!1,i.add(c),h.current.push({emitter:r,mesh:c,geometry:o,material:s,targetTexture:a,origin:n,isBurst:!1,hasBurst:!1})}let r=v(e.explosionDataBlockId);if(c){let a=r?Ke(r):5,o=Ge(e.dataBlock),s=new E({color:o,wireframe:!0,transparent:!0,opacity:1,depthWrite:!1}),c=new k(Ie,s);c.frustumCulled=!1,c.scale.setScalar(a),c.position.set(n[1],n[2],n[0]),i.add(c);let{sprite:l,material:u}=Le(`${e.id}: ${e.dataBlock??`expId:${e.explosionDataBlockId}`}`,o);l.position.set(n[1],n[2]+a+2,n[0]),l.frustumCulled=!1,i.add(l),O.current.push({entityId:e.id,mesh:c,material:s,label:l,labelMaterial:u,creationTime:M(),lifetimeMS:Math.max(t.lifetimeMS,3e3),targetRadius:a})}let a=r?.shockwave;if(typeof a==`number`){let t=Re(a,v);if(t){let r=Y(t.textureName),a=He(t.numSegments),o=We(r),s=new k(a,o);s.frustumCulled=!1,s.position.set(n[1],n[2],n[0]),i.add(s);let c=null,l=null;t.renderBottom&&(l=He(t.numSegments),c=new k(l,o),c.frustumCulled=!1,c.position.set(n[1],n[2],n[0]),c.scale.y=-1,i.add(c));let u=Math.abs(t.velocity)>1e-10?t.velocity:0;j.current.push({entityId:e.id,mesh:s,bottomMesh:c,geometry:a,bottomGeometry:l,material:o,creationTime:M(),lifetimeMS:t.lifetimeMS,data:t,radius:0,velocity:u})}}}let b=new Set;for(let e of a.entities){if(b.add(e.id),!e.maintainEmitterId||y.current.has(e.id))continue;y.current.add(e.id);let t=v(e.maintainEmitterId);if(!t)continue;let n=be(t,v);if(!n)continue;let r=e.position?[...e.position]:[0,0,0],a=new Te(n,q),o=Y(n.particles.textureName),s=qe(q),c=Je(o,n.particles.useInvAlpha,n.orientParticles),l=new k(s,c);l.frustumCulled=!1,i.add(l),h.current.push({emitter:a,mesh:l,geometry:s,material:c,targetTexture:o,origin:r,isBurst:!1,hasBurst:!1,followEntityId:e.id})}for(let e of h.current)e.followEntityId&&!b.has(e.followEntityId)&&e.emitter.kill();for(let e of y.current)b.has(e)||y.current.delete(e);let w=h.current;for(let e=w.length-1;e>=0;e--){let t=w[e];if(t.shaderChecked||=(Ye(f,t.material,t.isBurst?`burst`:`stream`),!0),t.followEntityId){let e=a.entities.find(e=>e.id===t.followEntityId);e?.position&&(t.origin[0]=e.position[0],t.origin[1]=e.position[1],t.origin[2]=e.position[2]),e?.direction&&(t.emitAxis=e.direction)}if(t.isBurst||t.emitter.emitPeriodic(t.origin,g,t.emitAxis),t.emitter.update(g),je.has(t.targetTexture)&&t.material.uniforms.particleTexture.value!==t.targetTexture&&(t.material.uniforms.particleTexture.value=t.targetTexture),t.material.uniforms.debugOpacity.value=c?.2:1,Ze(t),c){t.debugOriginMesh||(t.debugOriginMesh=new k(Me,Ne),t.debugOriginMesh.frustumCulled=!1,i.add(t.debugOriginMesh)),t.debugOriginMesh.position.set(t.origin[1],t.origin[2],t.origin[0]),t.debugParticleMeshes||=[];let e=Math.min(t.emitter.particles.length,8);for(;t.debugParticleMeshes.length=0;e--){let t=D[e],n=A-t.creationTime,r=Math.min(n/t.lifetimeMS,1),a=Math.min(r/.1,1);t.mesh.scale.setScalar(t.targetRadius*a),t.material.opacity=1-r,t.labelMaterial.opacity=1-r,r>=1&&(i.remove(t.mesh),i.remove(t.label),t.material.dispose(),t.labelMaterial.dispose(),D.splice(e,1))}let P=j.current;for(let t=P.length-1;t>=0;t--){let n=P[t],r=A-n.creationTime,a=Math.min(r/n.lifetimeMS,1),o=m;n.velocity+=n.data.acceleration*o,n.radius+=n.velocity*o;let s=ze(n.data,a);Ue(n.geometry,n.data,n.radius,s,n.data.is2D),n.bottomGeometry&&Ue(n.bottomGeometry,n.data,n.radius,s,n.data.is2D),n.data.is2D&&n.mesh.lookAt(e.camera.position),a>=1&&(i.remove(n.mesh),n.bottomMesh&&i.remove(n.bottomMesh),n.geometry.dispose(),n.bottomGeometry?.dispose(),n.material.dispose(),P.splice(t,1))}if(s&&l&&u&&d&&p.current){for(let e of a.entities){if(e.type!==`Explosion`||!e.explosionDataBlockId||!e.position)continue;let t=`snd:${e.id}`;if(T.current.has(t))continue;T.current.add(t);let n=v(e.explosionDataBlockId);if(!n)continue;let r=n.soundProfile;if(typeof r!=`number`)continue;let i=R(r,v);i&&re(i,d,u,new x(e.position[1],e.position[2],e.position[0]),p.current)}let e=S.current;for(let t of a.entities){if(t.type!==`Projectile`||!t.dataBlockId||!t.position)continue;if(e.has(t.id)){e.get(t.id).position.set(t.position[1],t.position[2],t.position[0]);continue}if(e.size>=Qe)continue;let n=v(t.dataBlockId);if(!n)continue;let r=n.sound;if(typeof r!=`number`)continue;let i=R(r,v);if(!(!i||!i.isLooping||!i.is3D))try{let n=ee(i.filename),r=ne();L(n,u,n=>{if(r!==ne()||!b.has(t.id)||e.has(t.id))return;let a=p.current;if(!a)return;let s=new C(d);s.setBuffer(n),s.setDistanceModel(`inverse`),s.setRefDistance(i.refDist),s.setMaxDistance(i.maxDist),s.setRolloffFactor(1),s.setVolume(i.volume),s.setPlaybackRate(o.rate),s.setLoop(!0),s.position.set(t.position[1],t.position[2],t.position[0]),a.add(s),ie(s),s.play(),e.set(t.id,s)})}catch{}}for(let[t,n]of e)if(!b.has(t)){ae(n);try{n.stop()}catch{}try{n.disconnect()}catch{}p.current?.remove(n),e.delete(t)}for(let e of a.audioEvents){let t=`${e.timeSec}:${e.profileId}:${e.position?.x??``}`;if(T.current.has(t))continue;T.current.add(t);let n=R(e.profileId,v);n&&re(n,d,u,e.position?new x(e.position.y,e.position.z,e.position.x):void 0,p.current)}}if(_.current.size>500){let e=new Set(a.entities.map(tt));for(let t of _.current)e.has(t)||_.current.delete(t)}if(T.current.size>500){let e=new Set(a.entities.map(et));for(let t of T.current)t.startsWith(`snd:`)&&e.has(t.slice(4))||T.current.delete(t)}},t[7]=l,t[8]=d,t[9]=u,t[10]=c,t[11]=f,t[12]=n,t[13]=r,t[14]=P):P=t[14],i(P);let F,I;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(I=()=>()=>{let e=p.current;for(let t of h.current){if(e&&(e.remove(t.mesh),t.debugOriginMesh&&e.remove(t.debugOriginMesh),t.debugParticleMeshes))for(let n of t.debugParticleMeshes)e.remove(n);t.geometry.dispose(),t.material.dispose()}h.current=[];for(let t of O.current)e&&(e.remove(t.mesh),e.remove(t.label)),t.material.dispose(),t.labelMaterial.dispose();O.current=[];for(let t of j.current)e&&(e.remove(t.mesh),t.bottomMesh&&e.remove(t.bottomMesh)),t.geometry.dispose(),t.bottomGeometry?.dispose(),t.material.dispose();j.current=[],_.current.clear(),y.current.clear();for(let[,t]of S.current){ae(t);try{t.stop()}catch{}try{t.disconnect()}catch{}e&&e.remove(t)}S.current.clear(),T.current.clear()},F=[],t[15]=F,t[16]=I):(F=t[15],I=t[16]),(0,V.useEffect)(I,F);let z;return t[17]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,K.jsx)(`group`,{ref:p}),t[17]=z):z=t[17],z}function et(e){return e.id}function tt(e){return e.id}function nt(e){return e.gl}function X(e,t){return{id:e.id,className:e.className??e.type,ghostIndex:e.ghostIndex,dataBlockId:e.dataBlockId,shapeHint:e.shapeHint,spawnTime:t,position:e.position,rotation:e.rotation,velocity:e.velocity,keyframes:[{time:t??0,position:e.position??[0,0,0],rotation:e.rotation??[0,0,0,1]}]}}function rt(e,t){if(e.sceneData){let n={id:e.id,className:e.className??e.type,ghostIndex:e.ghostIndex,dataBlockId:e.dataBlockId,shapeHint:e.shapeHint,spawnTime:t};switch(e.sceneData.className){case`TerrainBlock`:return{...n,renderType:`TerrainBlock`,terrainData:e.sceneData};case`InteriorInstance`:return{...n,renderType:`InteriorInstance`,interiorData:e.sceneData};case`Sky`:return{...n,renderType:`Sky`,skyData:e.sceneData};case`Sun`:return{...n,renderType:`Sun`,sunData:e.sceneData};case`WaterBlock`:return{...n,renderType:`WaterBlock`,waterData:e.sceneData};case`MissionArea`:return{...n,renderType:`MissionArea`,missionAreaData:e.sceneData};case`TSStatic`:return{...X(e,t),renderType:`Shape`,shapeName:e.sceneData.shapeName,shapeType:`TSStatic`,dataBlock:e.dataBlock}}}return e.visual?.kind===`tracer`?{...X(e,t),renderType:`Tracer`,visual:e.visual,dataBlock:e.dataBlock,direction:e.direction}:e.visual?.kind===`sprite`?{...X(e,t),renderType:`Sprite`,visual:e.visual}:e.type===`Player`?{...X(e,t),renderType:`Player`,shapeName:e.dataBlock,dataBlock:e.dataBlock,weaponShape:e.weaponShape,packShape:e.packShape,flagShape:e.flagShape,falling:e.falling,jetting:e.jetting,playerName:e.playerName,iffColor:e.iffColor,threads:e.threads,weaponImageState:e.weaponImageState,weaponImageStates:e.weaponImageStates,headPitch:e.headPitch,headYaw:e.headYaw,targetRenderFlags:e.targetRenderFlags}:e.type===`Explosion`?e.dataBlock?{...X(e,t),renderType:`Explosion`,shapeName:e.dataBlock,dataBlock:e.dataBlock,explosionDataBlockId:e.explosionDataBlockId,faceViewer:e.faceViewer}:{...X(e,t),renderType:`None`}:e.className===`ForceFieldBare`?{...X(e,t),renderType:`ForceFieldBare`,forceFieldData:e.forceFieldData?{textures:e.forceFieldData.textures,color:e.forceFieldData.color,baseTranslucency:e.forceFieldData.baseTranslucency,numFrames:e.forceFieldData.textures.length,framesPerSec:e.forceFieldData.framesPerSec,scrollSpeed:e.forceFieldData.scrollSpeed,umapping:e.forceFieldData.umapping,vmapping:e.forceFieldData.vmapping,dimensions:e.forceFieldData.dimensions}:void 0}:e.className===`AudioEmitter`?{...X(e,t),renderType:`AudioEmitter`,audioFileName:e.audioFileName,audioVolume:e.audioVolume,audioIs3D:e.audioIs3D,audioIsLooping:e.audioIsLooping??!0,audioMinDistance:e.audioMinDistance,audioMaxDistance:e.audioMaxDistance,audioMinLoopGap:e.audioMinLoopGap,audioMaxLoopGap:e.audioMaxLoopGap}:e.className===`WayPoint`?{...X(e,t),renderType:`WayPoint`,label:e.label}:e.className===`Camera`?{...X(e,t),renderType:`Camera`}:{...X(e,t),renderType:`Shape`,shapeName:e.dataBlock,shapeType:e.className===`Turret`?`Turret`:e.className===`Item`?`Item`:`StaticShape`,dataBlock:e.dataBlock,weaponShape:e.weaponShape,threads:e.threads,targetRenderFlags:e.targetRenderFlags,iffColor:e.iffColor}}function it(e,t){return e[t]}function at(e,t){switch(e.renderType){case`Player`:{let n=e;n.threads=t.threads,n.weaponShape=t.weaponShape,n.packShape=t.packShape,n.flagShape=t.flagShape,n.falling=t.falling,n.jetting=t.jetting,n.weaponImageState=t.weaponImageState,n.weaponImageStates=t.weaponImageStates,n.playerName=t.playerName,n.iffColor=t.iffColor,n.headPitch=t.headPitch,n.headYaw=t.headYaw,n.targetRenderFlags=t.targetRenderFlags;break}case`Shape`:{let n=e;n.threads=t.threads,n.targetRenderFlags=t.targetRenderFlags,n.iffColor=t.iffColor;break}}}var ot=new WeakMap;function st(e){let t=ot.get(e);return t||(t=new Map(e.entities.map(e=>[e.id,e])),ot.set(e,t)),t}function ct(e){F.getState().setAllStreamEntities(Array.from(e.values()))}var lt=new x,Z=new b,ut=new b,dt=new b(0,1,0,0),Q=new x,$=new x,ft=new x;function pt(e){let t=(0,ue.c)(26),{recording:n}=e,r=j(),{fov:a}=o(),s=(0,V.useRef)(0),u=(0,V.useRef)(null),f=(0,V.useRef)(null),p;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=new x(0,c,0),t[0]=p):p=t[0];let m=(0,V.useRef)(p),h=(0,V.useRef)(n.streamingPlayback??null),g=(0,V.useRef)(null),_;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(_=new Map,t[1]=_):_=t[1];let v=(0,V.useRef)(_),y=(0,V.useRef)(null),[b,S]=(0,V.useState)(null),C;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>{if(e===y.current)return;y.current=e;let t=v.current,n=new Map;for(let r of e.entities){let i=t.get(r.id),a=i&&(i.renderType===`Shape`||i.renderType===`Player`||i.renderType===`Explosion`);if(!i||i.className!==(r.className??r.type)||i.ghostIndex!==r.ghostIndex||i.dataBlockId!==r.dataBlockId||i.shapeHint!==r.shapeHint||a&&r.dataBlock!=null&&it(i,`shapeName`)!==r.dataBlock||i.renderType!==`Player`&&a&&it(i,`weaponShape`)!==r.weaponShape?i=rt(r,e.timeSec):at(i,r),n.set(r.id,i),oe(i)||i.renderType===`None`)continue;let o=i.keyframes;o.length===0&&o.push({time:e.timeSec,position:r.position??[0,0,0],rotation:r.rotation??[0,0,0,1]});let s=o[0];s.time=e.timeSec,r.position&&(s.position=r.position),r.rotation&&(s.rotation=r.rotation),s.velocity=r.velocity,s.health=r.health,s.energy=r.energy,s.actionAnim=r.actionAnim,s.actionAtEnd=r.actionAtEnd,s.damageState=r.damageState}for(let[r,i]of t)if(!n.has(r)&&i.renderType===`Explosion`&&i.shapeName&&i.spawnTime!=null&&e.timeSec-i.spawnTime<5){n.set(r,i);continue}let r=n.size!==t.size||[...n.keys()].some(e=>!t.has(e));v.current=n,r&&ct(n);let i=null;if(e.camera?.mode===`first-person`&&e.camera.controlEntityId){let t=n.get(e.camera.controlEntityId),r=t?it(t,`shapeName`):void 0;r&&(i=r)}S(e=>e===i?e:i)},t[2]=C):C=t[2];let w=C,T;t[3]!==r||t[4]!==n.gameType||t[5]!==n.missionName||t[6]!==n.recorderName||t[7]!==n.recordingDate||t[8]!==n.serverDisplayName||t[9]!==n.source||t[10]!==n.streamingPlayback?(T=()=>{z(),h.current=n.streamingPlayback??null,v.current=new Map,y.current=null,g.current=null,se(),s.current=0,u.current=null,f.current=null;let e=h.current;if(B.setState({playback:e}),F.getState().beginStreaming(n.source),!e){r.getState().setPlaybackStreamSnapshot(null);return}e.onMissionInfoChange=()=>{F.getState().setMissionInfo({missionDisplayName:e.missionDisplayName??void 0,missionTypeDisplayName:e.missionTypeDisplayName??void 0,gameClassName:e.gameClassName??void 0,recorderName:e.connectedPlayerName??void 0})};let t=e.missionDisplayName,i=e.missionTypeDisplayName,a=e.gameClassName,o=e.serverDisplayName,c=e.connectedPlayerName;n.source!==`live`&&e.reset(),e.missionDisplayName=t,e.missionTypeDisplayName=i,e.gameClassName=a,e.serverDisplayName=o,e.connectedPlayerName=c,F.getState().setMissionInfo({missionName:n.missionName??void 0,missionTypeDisplayName:n.gameType??void 0,missionDisplayName:t??void 0,gameClassName:a??void 0,serverDisplayName:o??n.serverDisplayName??void 0,recorderName:c??n.recorderName??void 0,recordingDate:n.recordingDate??void 0});let l=e.getSnapshot();return B.setState({time:l.timeSec}),s.current=l.timeSec,u.current=l,f.current=l,w(l),r.getState().setPlaybackStreamSnapshot(l),g.current=l,()=>{z(),h.current=null,se()}},t[3]=r,t[4]=n.gameType,t[5]=n.missionName,t[6]=n.recorderName,t[7]=n.recordingDate,t[8]=n.serverDisplayName,t[9]=n.source,t[10]=n.streamingPlayback,t[11]=T):T=t[11];let E;t[12]!==r||t[13]!==n?(E=[n,r,w],t[12]=r,t[13]=n,t[14]=E):E=t[14],(0,V.useEffect)(T,E);let D;t[15]!==r||t[16]!==n.source||t[17]!==a?(D=(e,t)=>{let i=h.current;if(!i)return;let o=r.getState(),c=o.playback,p=c.status===`playing`,_=c.timeMs/1e3,y=!p&&Math.abs(_-s.current)>5e-4,b=p&&Math.abs(_-B.getState().time)>.05,x=y||b;x&&(s.current=_),p&&(P(t,c.rate),s.current+=t*c.rate);let S=Math.max(1,Math.ceil(t*1e3*Math.max(c.rate,.01)/32)+2),C=s.current+d,T=i.stepToTime(C,p&&!x?S:1/0),E=f.current;!E||T.timeSec.032*1.5?(u.current=T,f.current=T):T.timeSec!==E.timeSec&&(u.current=E,f.current=T);let D=f.current??T,O=u.current??D,k=D.timeSec-d,A=Math.max(0,Math.min(1,(s.current-k)/d));B.setState({time:s.current}),T.exhausted&&p&&(s.current=Math.min(s.current,T.timeSec)),w(D),B.getState().entities=v.current,D!==g.current&&(g.current=D,o.setPlaybackStreamSnapshot(D));let j=D.camera,M=j&&O.camera&&O.camera.mode===j.mode&&O.camera.controlEntityId===j.controlEntityId&&O.camera.orbitTargetId===j.orbitTargetId?O.camera:null,N=B.getState().cameraMode,F=n.source===`live`;if(j&&N!==`freeFly`){if(!F&&N!==`orbitOverride`)if(M){let t=M.position[0],n=M.position[1],r=M.position[2],i=j.position[0],a=j.position[1],o=j.position[2],s=t+(i-t)*A,c=n+(a-n)*A,l=r+(o-r)*A;e.camera.position.set(c,l,s),Z.set(...M.rotation),ut.set(...j.rotation),Z.slerp(ut,A),e.camera.quaternion.copy(Z)}else e.camera.position.set(j.position[1],j.position[2],j.position[0]),e.camera.quaternion.set(...j.rotation);if(`isPerspectiveCamera`in e.camera&&e.camera.isPerspectiveCamera){let t=e.camera,n=l(a,t.aspect);Math.abs(t.fov-n)>.01&&(t.fov=n,t.updateProjectionMatrix())}}let I=st(D),ee=st(O),te=v.current,L=B.getState().root;if(L)for(let t of L.children){let n=te.get(t.name);if(n&&oe(n))continue;let r=I.get(t.name);if(!r){let e=n&&`keyframes`in n?n.keyframes:void 0;if(e?.[0]?.position){let n=e[0];t.visible=!0,t.position.set(n.position[1],n.position[2],n.position[0]);continue}}if(!r?.position){t.visible=!1;continue}t.visible=!0;let i=ee.get(t.name);if(i?.position){let e=i.position[0],n=i.position[1],a=i.position[2],o=r.position[0],s=r.position[1],c=r.position[2],l=e+(o-e)*A,u=n+(s-n)*A,d=a+(c-a)*A;t.position.set(u,d,l)}else t.position.set(r.position[1],r.position[2],r.position[0]);r.faceViewer?t.quaternion.copy(e.camera.quaternion).multiply(dt):r.visual?.kind===`tracer`?t.quaternion.identity():r.rotation&&(i?.rotation?(Z.set(...i.rotation),ut.set(...r.rotation),Z.slerp(ut,A),t.quaternion.copy(Z)):t.quaternion.set(...r.rotation))}let ne=j?.mode,re=N===`orbitOverride`&&!F&&j?.orbitTargetId!=null;if(N!==`freeFly`&&!F&&(ne===`third-person`||re)&&L&&j?.orbitTargetId){let t=L.children.find(e=>e.name===j.orbitTargetId);if(t){let n=I.get(j.orbitTargetId);$.copy(t.position),n?.type===`Player`&&($.y+=1);let r=!1;if(re){let e=B.getState(),t=Math.sin(e.orbitOverridePitch),n=Math.cos(e.orbitOverridePitch),i=Math.sin(e.orbitOverrideYaw),a=Math.cos(e.orbitOverrideYaw);Q.set(-a*n,-t,-i*n),r=Q.lengthSq()>1e-8}else if(j.orbitDirection)Q.set(j.orbitDirection[0],j.orbitDirection[1],j.orbitDirection[2]),r=Q.lengthSq()>1e-8;else if(typeof j.yaw==`number`&&typeof j.pitch==`number`){let e=Math.sin(j.pitch),t=Math.cos(j.pitch),n=Math.sin(j.yaw),i=Math.cos(j.yaw);Q.set(-i*t,-e,-n*t),r=Q.lengthSq()>1e-8}if(r||=(Q.copy(e.camera.position).sub($),Q.lengthSq()>1e-8),r){Q.normalize();let t=Math.max(.1,j.orbitDistance??4);ft.copy($).addScaledVector(Q,t),e.camera.position.copy(ft),e.camera.lookAt($)}}}if(N===`original`&&ne===`first-person`&&L&&j?.controlEntityId){let t=L.children.find(e=>e.name===j.controlEntityId);t?(lt.copy(m.current).applyQuaternion(t.quaternion),e.camera.position.add(lt)):e.camera.position.y=e.camera.position.y+m.current.y}p&&T.exhausted&&o.setPlaybackStatus(`paused`);let R=s.current*1e3;Math.abs(R-c.timeMs)>.5&&o.setPlaybackTime(R)},t[15]=r,t[16]=n.source,t[17]=a,t[18]=D):D=t[18],i(D);let O;t[19]===n.streamingPlayback?O=t[20]:(O=(0,K.jsx)($e,{playback:n.streamingPlayback,snapshotRef:f}),t[19]=n.streamingPlayback,t[20]=O);let k;t[21]===b?k=t[22]:(k=b&&(0,K.jsx)(V.Suspense,{children:(0,K.jsx)(le,{shapeName:b,eyeOffsetRef:m})}),t[21]=b,t[22]=k);let A;return t[23]!==O||t[24]!==k?(A=(0,K.jsxs)(K.Fragment,{children:[O,k]}),t[23]=O,t[24]=k,t[25]=A):A=t[25],A}export{pt as StreamingController}; \ No newline at end of file +`;function He(e){let t=(e+1)*2,n=new Float32Array(t*3),r=new Float32Array(t*2),i=new Float32Array(t*4),a=e*6,o=new Uint16Array(a);for(let t=0;t0){let e=0;for(let n of t)e=Math.max(e,n.x,n.y,n.z);if(e>0)return e/1e3}let n=e.particleRadius;return typeof n==`number`&&n>0?n:5}function qe(e){let t=new T,n=e*4,r=e*6,i=new Float32Array(n*2);for(let t=0;t{let i=p.current,a=r.current;if(!i||!a)return;let o=N.getState().playback,s=o.status===`playing`,m=s?t*o.rate:0,g=m*1e3,v=n.getDataBlockData.bind(n);for(let e of a.entities){if(e.type!==`Explosion`||!e.explosionDataBlockId||!e.position||_.current.has(e.id))continue;_.current.add(e.id);let t=Xe(e.explosionDataBlockId,v);if(!t)continue;let n=[...e.position];for(let e of t.burstEmitters){let t=new Te(e.data,q);t.emitBurst(n,e.density);let r=Y(e.data.particles.textureName),a=qe(q),o=Je(r,e.data.particles.useInvAlpha,e.data.orientParticles),s=new k(a,o);s.frustumCulled=!1,i.add(s),h.current.push({emitter:t,mesh:s,geometry:a,material:o,targetTexture:r,origin:n,isBurst:!0,hasBurst:!0})}for(let e of t.streamingEmitters){let r=new Te(e,q,t.lifetimeMS),a=Y(e.particles.textureName),o=qe(q),s=Je(a,e.particles.useInvAlpha,e.orientParticles),c=new k(o,s);c.frustumCulled=!1,i.add(c),h.current.push({emitter:r,mesh:c,geometry:o,material:s,targetTexture:a,origin:n,isBurst:!1,hasBurst:!1})}let r=v(e.explosionDataBlockId);if(c){let a=r?Ke(r):5,o=Ge(e.dataBlock),s=new E({color:o,wireframe:!0,transparent:!0,opacity:1,depthWrite:!1}),c=new k(Ie,s);c.frustumCulled=!1,c.scale.setScalar(a),c.position.set(n[1],n[2],n[0]),i.add(c);let{sprite:l,material:u}=Le(`${e.id}: ${e.dataBlock??`expId:${e.explosionDataBlockId}`}`,o);l.position.set(n[1],n[2]+a+2,n[0]),l.frustumCulled=!1,i.add(l),O.current.push({entityId:e.id,mesh:c,material:s,label:l,labelMaterial:u,creationTime:M(),lifetimeMS:Math.max(t.lifetimeMS,3e3),targetRadius:a})}let a=r?.shockwave;if(typeof a==`number`){let t=Re(a,v);if(t){let r=Y(t.textureName),a=He(t.numSegments),o=We(r),s=new k(a,o);s.frustumCulled=!1,s.position.set(n[1],n[2],n[0]),i.add(s);let c=null,l=null;t.renderBottom&&(l=He(t.numSegments),c=new k(l,o),c.frustumCulled=!1,c.position.set(n[1],n[2],n[0]),c.scale.y=-1,i.add(c));let u=Math.abs(t.velocity)>1e-10?t.velocity:0;j.current.push({entityId:e.id,mesh:s,bottomMesh:c,geometry:a,bottomGeometry:l,material:o,creationTime:M(),lifetimeMS:t.lifetimeMS,data:t,radius:0,velocity:u})}}}let b=new Set;for(let e of a.entities){if(b.add(e.id),!e.maintainEmitterId||y.current.has(e.id))continue;y.current.add(e.id);let t=v(e.maintainEmitterId);if(!t)continue;let n=be(t,v);if(!n)continue;let r=e.position?[...e.position]:[0,0,0],a=new Te(n,q),o=Y(n.particles.textureName),s=qe(q),c=Je(o,n.particles.useInvAlpha,n.orientParticles),l=new k(s,c);l.frustumCulled=!1,i.add(l),h.current.push({emitter:a,mesh:l,geometry:s,material:c,targetTexture:o,origin:r,isBurst:!1,hasBurst:!1,followEntityId:e.id})}for(let e of h.current)e.followEntityId&&!b.has(e.followEntityId)&&e.emitter.kill();for(let e of y.current)b.has(e)||y.current.delete(e);let w=h.current;for(let e=w.length-1;e>=0;e--){let t=w[e];if(t.shaderChecked||=(Ye(f,t.material,t.isBurst?`burst`:`stream`),!0),t.followEntityId){let e=a.entities.find(e=>e.id===t.followEntityId);e?.position&&(t.origin[0]=e.position[0],t.origin[1]=e.position[1],t.origin[2]=e.position[2]),e?.direction&&(t.emitAxis=e.direction)}if(t.isBurst||t.emitter.emitPeriodic(t.origin,g,t.emitAxis),t.emitter.update(g),je.has(t.targetTexture)&&t.material.uniforms.particleTexture.value!==t.targetTexture&&(t.material.uniforms.particleTexture.value=t.targetTexture),t.material.uniforms.debugOpacity.value=c?.2:1,Ze(t),c){t.debugOriginMesh||(t.debugOriginMesh=new k(Me,Ne),t.debugOriginMesh.frustumCulled=!1,i.add(t.debugOriginMesh)),t.debugOriginMesh.position.set(t.origin[1],t.origin[2],t.origin[0]),t.debugParticleMeshes||=[];let e=Math.min(t.emitter.particles.length,8);for(;t.debugParticleMeshes.length=0;e--){let t=D[e],n=A-t.creationTime,r=Math.min(n/t.lifetimeMS,1),a=Math.min(r/.1,1);t.mesh.scale.setScalar(t.targetRadius*a),t.material.opacity=1-r,t.labelMaterial.opacity=1-r,r>=1&&(i.remove(t.mesh),i.remove(t.label),t.material.dispose(),t.labelMaterial.dispose(),D.splice(e,1))}let P=j.current;for(let t=P.length-1;t>=0;t--){let n=P[t],r=A-n.creationTime,a=Math.min(r/n.lifetimeMS,1),o=m;n.velocity+=n.data.acceleration*o,n.radius+=n.velocity*o;let s=ze(n.data,a);Ue(n.geometry,n.data,n.radius,s,n.data.is2D),n.bottomGeometry&&Ue(n.bottomGeometry,n.data,n.radius,s,n.data.is2D),n.data.is2D&&n.mesh.lookAt(e.camera.position),a>=1&&(i.remove(n.mesh),n.bottomMesh&&i.remove(n.bottomMesh),n.geometry.dispose(),n.bottomGeometry?.dispose(),n.material.dispose(),P.splice(t,1))}if(s&&l&&u&&d&&p.current){for(let e of a.entities){if(e.type!==`Explosion`||!e.explosionDataBlockId||!e.position)continue;let t=`snd:${e.id}`;if(T.current.has(t))continue;T.current.add(t);let n=v(e.explosionDataBlockId);if(!n)continue;let r=n.soundProfile;if(typeof r!=`number`)continue;let i=R(r,v);i&&re(i,d,u,new x(e.position[1],e.position[2],e.position[0]),p.current)}let e=S.current;for(let t of a.entities){if(t.type!==`Projectile`||!t.dataBlockId||!t.position)continue;if(e.has(t.id)){e.get(t.id).position.set(t.position[1],t.position[2],t.position[0]);continue}if(e.size>=Qe)continue;let n=v(t.dataBlockId);if(!n)continue;let r=n.sound;if(typeof r!=`number`)continue;let i=R(r,v);if(!(!i||!i.isLooping||!i.is3D))try{let n=ee(i.filename),r=ne();L(n,u,n=>{if(r!==ne()||!b.has(t.id)||e.has(t.id))return;let a=p.current;if(!a)return;let s=new C(d);s.setBuffer(n),s.setDistanceModel(`inverse`),s.setRefDistance(i.refDist),s.setMaxDistance(i.maxDist),s.setRolloffFactor(1),s.setVolume(i.volume),s.setPlaybackRate(o.rate),s.setLoop(!0),s.position.set(t.position[1],t.position[2],t.position[0]),a.add(s),ie(s),s.play(),e.set(t.id,s)})}catch{}}for(let[t,n]of e)if(!b.has(t)){ae(n);try{n.stop()}catch{}try{n.disconnect()}catch{}p.current?.remove(n),e.delete(t)}for(let e of a.audioEvents){let t=`${e.timeSec}:${e.profileId}:${e.position?.x??``}`;if(T.current.has(t))continue;T.current.add(t);let n=R(e.profileId,v);n&&re(n,d,u,e.position?new x(e.position.y,e.position.z,e.position.x):void 0,p.current)}}if(_.current.size>500){let e=new Set(a.entities.map(tt));for(let t of _.current)e.has(t)||_.current.delete(t)}if(T.current.size>500){let e=new Set(a.entities.map(et));for(let t of T.current)t.startsWith(`snd:`)&&e.has(t.slice(4))||T.current.delete(t)}},t[7]=l,t[8]=d,t[9]=u,t[10]=c,t[11]=f,t[12]=n,t[13]=r,t[14]=P):P=t[14],i(P);let F,I;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(I=()=>()=>{let e=p.current;for(let t of h.current){if(e&&(e.remove(t.mesh),t.debugOriginMesh&&e.remove(t.debugOriginMesh),t.debugParticleMeshes))for(let n of t.debugParticleMeshes)e.remove(n);t.geometry.dispose(),t.material.dispose()}h.current=[];for(let t of O.current)e&&(e.remove(t.mesh),e.remove(t.label)),t.material.dispose(),t.labelMaterial.dispose();O.current=[];for(let t of j.current)e&&(e.remove(t.mesh),t.bottomMesh&&e.remove(t.bottomMesh)),t.geometry.dispose(),t.bottomGeometry?.dispose(),t.material.dispose();j.current=[],_.current.clear(),y.current.clear();for(let[,t]of S.current){ae(t);try{t.stop()}catch{}try{t.disconnect()}catch{}e&&e.remove(t)}S.current.clear(),T.current.clear()},F=[],t[15]=F,t[16]=I):(F=t[15],I=t[16]),(0,V.useEffect)(I,F);let z;return t[17]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,K.jsx)(`group`,{ref:p}),t[17]=z):z=t[17],z}function et(e){return e.id}function tt(e){return e.id}function nt(e){return e.gl}function X(e,t){return{id:e.id,className:e.className??e.type,ghostIndex:e.ghostIndex,dataBlockId:e.dataBlockId,shapeHint:e.shapeHint,spawnTime:t,position:e.position,rotation:e.rotation,velocity:e.velocity,keyframes:[{time:t??0,position:e.position??[0,0,0],rotation:e.rotation??[0,0,0,1]}]}}function rt(e,t){if(e.sceneData){let n={id:e.id,className:e.className??e.type,ghostIndex:e.ghostIndex,dataBlockId:e.dataBlockId,shapeHint:e.shapeHint,spawnTime:t};switch(e.sceneData.className){case`TerrainBlock`:return{...n,renderType:`TerrainBlock`,terrainData:e.sceneData};case`InteriorInstance`:return{...n,renderType:`InteriorInstance`,interiorData:e.sceneData};case`Sky`:return{...n,renderType:`Sky`,skyData:e.sceneData};case`Sun`:return{...n,renderType:`Sun`,sunData:e.sceneData};case`WaterBlock`:return{...n,renderType:`WaterBlock`,waterData:e.sceneData};case`MissionArea`:return{...n,renderType:`MissionArea`,missionAreaData:e.sceneData};case`TSStatic`:return{...X(e,t),renderType:`Shape`,shapeName:e.sceneData.shapeName,shapeType:`TSStatic`,dataBlock:e.dataBlock}}}return e.visual?.kind===`tracer`?{...X(e,t),renderType:`Tracer`,visual:e.visual,dataBlock:e.dataBlock,direction:e.direction}:e.visual?.kind===`sprite`?{...X(e,t),renderType:`Sprite`,visual:e.visual}:e.type===`Player`?{...X(e,t),renderType:`Player`,shapeName:e.dataBlock,dataBlock:e.dataBlock,weaponShape:e.weaponShape,packShape:e.packShape,flagShape:e.flagShape,falling:e.falling,jetting:e.jetting,playerName:e.playerName,iffColor:e.iffColor,threads:e.threads,weaponImageState:e.weaponImageState,weaponImageStates:e.weaponImageStates,headPitch:e.headPitch,headYaw:e.headYaw,targetRenderFlags:e.targetRenderFlags}:e.type===`Explosion`?e.dataBlock?{...X(e,t),renderType:`Explosion`,shapeName:e.dataBlock,dataBlock:e.dataBlock,explosionDataBlockId:e.explosionDataBlockId,faceViewer:e.faceViewer}:{...X(e,t),renderType:`None`}:e.className===`ForceFieldBare`?{...X(e,t),renderType:`ForceFieldBare`,forceFieldData:e.forceFieldData?{textures:e.forceFieldData.textures,color:e.forceFieldData.color,baseTranslucency:e.forceFieldData.baseTranslucency,numFrames:e.forceFieldData.textures.length,framesPerSec:e.forceFieldData.framesPerSec,scrollSpeed:e.forceFieldData.scrollSpeed,umapping:e.forceFieldData.umapping,vmapping:e.forceFieldData.vmapping,dimensions:e.forceFieldData.dimensions}:void 0}:e.className===`AudioEmitter`?{...X(e,t),renderType:`AudioEmitter`,audioFileName:e.audioFileName,audioVolume:e.audioVolume,audioIs3D:e.audioIs3D,audioIsLooping:e.audioIsLooping??!0,audioMinDistance:e.audioMinDistance,audioMaxDistance:e.audioMaxDistance,audioMinLoopGap:e.audioMinLoopGap,audioMaxLoopGap:e.audioMaxLoopGap}:e.className===`WayPoint`?{...X(e,t),renderType:`WayPoint`,label:e.label}:e.className===`Camera`?{...X(e,t),renderType:`Camera`}:{...X(e,t),renderType:`Shape`,shapeName:e.dataBlock,shapeType:e.className===`Turret`?`Turret`:e.className===`Item`?`Item`:`StaticShape`,dataBlock:e.dataBlock,weaponShape:e.weaponShape,threads:e.threads,targetRenderFlags:e.targetRenderFlags,iffColor:e.iffColor,wheels:e.wheels,steeringYaw:e.steeringYaw,frozen:e.frozen,maxSteeringAngle:e.maxSteeringAngle}}function it(e,t){return e[t]}function at(e,t){switch(e.renderType){case`Player`:{let n=e;n.threads=t.threads,n.weaponShape=t.weaponShape,n.packShape=t.packShape,n.flagShape=t.flagShape,n.falling=t.falling,n.jetting=t.jetting,n.weaponImageState=t.weaponImageState,n.weaponImageStates=t.weaponImageStates,n.playerName=t.playerName,n.iffColor=t.iffColor,n.headPitch=t.headPitch,n.headYaw=t.headYaw,n.targetRenderFlags=t.targetRenderFlags;break}case`Shape`:{let n=e;n.threads=t.threads,n.targetRenderFlags=t.targetRenderFlags,n.iffColor=t.iffColor;break}}}var ot=new WeakMap;function st(e){let t=ot.get(e);return t||(t=new Map(e.entities.map(e=>[e.id,e])),ot.set(e,t)),t}function ct(e){F.getState().setAllStreamEntities(Array.from(e.values()))}var lt=new x,Z=new b,ut=new b,dt=new b(0,1,0,0),Q=new x,$=new x,ft=new x;function pt(e){let t=(0,ue.c)(26),{recording:n}=e,r=j(),{fov:a}=o(),s=(0,V.useRef)(0),u=(0,V.useRef)(null),f=(0,V.useRef)(null),p;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=new x(0,c,0),t[0]=p):p=t[0];let m=(0,V.useRef)(p),h=(0,V.useRef)(n.streamingPlayback??null),g=(0,V.useRef)(null),_;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(_=new Map,t[1]=_):_=t[1];let v=(0,V.useRef)(_),y=(0,V.useRef)(null),[b,S]=(0,V.useState)(null),C;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>{if(e===y.current)return;y.current=e;let t=v.current,n=new Map;for(let r of e.entities){let i=t.get(r.id),a=i&&(i.renderType===`Shape`||i.renderType===`Player`||i.renderType===`Explosion`);if(!i||i.className!==(r.className??r.type)||i.ghostIndex!==r.ghostIndex||i.dataBlockId!==r.dataBlockId||i.shapeHint!==r.shapeHint||a&&r.dataBlock!=null&&it(i,`shapeName`)!==r.dataBlock||i.renderType!==`Player`&&a&&it(i,`weaponShape`)!==r.weaponShape?i=rt(r,e.timeSec):at(i,r),n.set(r.id,i),oe(i)||i.renderType===`None`)continue;let o=i.keyframes;o.length===0&&o.push({time:e.timeSec,position:r.position??[0,0,0],rotation:r.rotation??[0,0,0,1]});let s=o[0];s.time=e.timeSec,r.position&&(s.position=r.position),r.rotation&&(s.rotation=r.rotation),s.velocity=r.velocity,s.health=r.health,s.energy=r.energy,s.actionAnim=r.actionAnim,s.actionAtEnd=r.actionAtEnd,s.damageState=r.damageState}for(let[r,i]of t)if(!n.has(r)&&i.renderType===`Explosion`&&i.shapeName&&i.spawnTime!=null&&e.timeSec-i.spawnTime<5){n.set(r,i);continue}let r=n.size!==t.size||[...n.keys()].some(e=>!t.has(e));v.current=n,r&&ct(n);let i=null;if(e.camera?.mode===`first-person`&&e.camera.controlEntityId){let t=n.get(e.camera.controlEntityId),r=t?it(t,`shapeName`):void 0;r&&(i=r)}S(e=>e===i?e:i)},t[2]=C):C=t[2];let w=C,T;t[3]!==r||t[4]!==n.gameType||t[5]!==n.missionName||t[6]!==n.recorderName||t[7]!==n.recordingDate||t[8]!==n.serverDisplayName||t[9]!==n.source||t[10]!==n.streamingPlayback?(T=()=>{z(),h.current=n.streamingPlayback??null,v.current=new Map,y.current=null,g.current=null,se(),s.current=0,u.current=null,f.current=null;let e=h.current;if(B.setState({playback:e}),F.getState().beginStreaming(n.source),!e){r.getState().setPlaybackStreamSnapshot(null);return}e.onMissionInfoChange=()=>{F.getState().setMissionInfo({missionDisplayName:e.missionDisplayName??void 0,missionTypeDisplayName:e.missionTypeDisplayName??void 0,gameClassName:e.gameClassName??void 0,recorderName:e.connectedPlayerName??void 0})};let t=e.missionDisplayName,i=e.missionTypeDisplayName,a=e.gameClassName,o=e.serverDisplayName,c=e.connectedPlayerName;n.source!==`live`&&e.reset(),e.missionDisplayName=t,e.missionTypeDisplayName=i,e.gameClassName=a,e.serverDisplayName=o,e.connectedPlayerName=c,F.getState().setMissionInfo({missionName:n.missionName??void 0,missionTypeDisplayName:n.gameType??void 0,missionDisplayName:t??void 0,gameClassName:a??void 0,serverDisplayName:o??n.serverDisplayName??void 0,recorderName:c??n.recorderName??void 0,recordingDate:n.recordingDate??void 0});let l=e.getSnapshot();return B.setState({time:l.timeSec}),s.current=l.timeSec,u.current=l,f.current=l,w(l),r.getState().setPlaybackStreamSnapshot(l),g.current=l,()=>{z(),h.current=null,se()}},t[3]=r,t[4]=n.gameType,t[5]=n.missionName,t[6]=n.recorderName,t[7]=n.recordingDate,t[8]=n.serverDisplayName,t[9]=n.source,t[10]=n.streamingPlayback,t[11]=T):T=t[11];let E;t[12]!==r||t[13]!==n?(E=[n,r,w],t[12]=r,t[13]=n,t[14]=E):E=t[14],(0,V.useEffect)(T,E);let D;t[15]!==r||t[16]!==n.source||t[17]!==a?(D=(e,t)=>{let i=h.current;if(!i)return;let o=r.getState(),c=o.playback,p=c.status===`playing`,_=c.timeMs/1e3,y=!p&&Math.abs(_-s.current)>5e-4,b=p&&Math.abs(_-B.getState().time)>.05,x=y||b;x&&(s.current=_),p&&(P(t,c.rate),s.current+=t*c.rate);let S=Math.max(1,Math.ceil(t*1e3*Math.max(c.rate,.01)/32)+2),C=s.current+d,T=i.stepToTime(C,p&&!x?S:1/0),E=f.current;!E||T.timeSec.032*1.5?(u.current=T,f.current=T):T.timeSec!==E.timeSec&&(u.current=E,f.current=T);let D=f.current??T,O=u.current??D,k=D.timeSec-d,A=Math.max(0,Math.min(1,(s.current-k)/d));B.setState({time:s.current}),T.exhausted&&p&&(s.current=Math.min(s.current,T.timeSec)),w(D),B.getState().entities=v.current,D!==g.current&&(g.current=D,o.setPlaybackStreamSnapshot(D));let j=D.camera,M=j&&O.camera&&O.camera.mode===j.mode&&O.camera.controlEntityId===j.controlEntityId&&O.camera.orbitTargetId===j.orbitTargetId?O.camera:null,N=B.getState().cameraMode,F=n.source===`live`;if(j&&N!==`freeFly`){if(!F&&N!==`orbitOverride`)if(M){let t=M.position[0],n=M.position[1],r=M.position[2],i=j.position[0],a=j.position[1],o=j.position[2],s=t+(i-t)*A,c=n+(a-n)*A,l=r+(o-r)*A;e.camera.position.set(c,l,s),Z.set(...M.rotation),ut.set(...j.rotation),Z.slerp(ut,A),e.camera.quaternion.copy(Z)}else e.camera.position.set(j.position[1],j.position[2],j.position[0]),e.camera.quaternion.set(...j.rotation);if(`isPerspectiveCamera`in e.camera&&e.camera.isPerspectiveCamera){let t=e.camera,n=l(a,t.aspect);Math.abs(t.fov-n)>.01&&(t.fov=n,t.updateProjectionMatrix())}}let I=st(D),ee=st(O),te=v.current,L=B.getState().root;if(L)for(let t of L.children){let n=te.get(t.name);if(n&&oe(n))continue;let r=I.get(t.name);if(!r){let e=n&&`keyframes`in n?n.keyframes:void 0;if(e?.[0]?.position){let n=e[0];t.visible=!0,t.position.set(n.position[1],n.position[2],n.position[0]);continue}}if(!r?.position){t.visible=!1;continue}t.visible=!0;let i=ee.get(t.name);if(i?.position){let e=i.position[0],n=i.position[1],a=i.position[2],o=r.position[0],s=r.position[1],c=r.position[2],l=e+(o-e)*A,u=n+(s-n)*A,d=a+(c-a)*A;t.position.set(u,d,l)}else t.position.set(r.position[1],r.position[2],r.position[0]);r.faceViewer?t.quaternion.copy(e.camera.quaternion).multiply(dt):r.visual?.kind===`tracer`?t.quaternion.identity():r.rotation&&(i?.rotation?(Z.set(...i.rotation),ut.set(...r.rotation),Z.slerp(ut,A),t.quaternion.copy(Z)):t.quaternion.set(...r.rotation))}let ne=j?.mode,re=N===`orbitOverride`&&!F&&j?.orbitTargetId!=null;if(N!==`freeFly`&&!F&&(ne===`third-person`||re)&&L&&j?.orbitTargetId){let t=L.children.find(e=>e.name===j.orbitTargetId);if(t){let n=I.get(j.orbitTargetId);$.copy(t.position),n?.type===`Player`&&($.y+=1);let r=!1;if(re){let e=B.getState(),t=Math.sin(e.orbitOverridePitch),n=Math.cos(e.orbitOverridePitch),i=Math.sin(e.orbitOverrideYaw),a=Math.cos(e.orbitOverrideYaw);Q.set(-a*n,-t,-i*n),r=Q.lengthSq()>1e-8}else if(j.orbitDirection)Q.set(j.orbitDirection[0],j.orbitDirection[1],j.orbitDirection[2]),r=Q.lengthSq()>1e-8;else if(typeof j.yaw==`number`&&typeof j.pitch==`number`){let e=Math.sin(j.pitch),t=Math.cos(j.pitch),n=Math.sin(j.yaw),i=Math.cos(j.yaw);Q.set(-i*t,-e,-n*t),r=Q.lengthSq()>1e-8}if(r||=(Q.copy(e.camera.position).sub($),Q.lengthSq()>1e-8),r){Q.normalize();let t=Math.max(.1,j.orbitDistance??4);ft.copy($).addScaledVector(Q,t),e.camera.position.copy(ft),e.camera.lookAt($)}}}if(N===`original`&&ne===`first-person`&&L&&j?.controlEntityId){let t=L.children.find(e=>e.name===j.controlEntityId);t?(lt.copy(m.current).applyQuaternion(t.quaternion),e.camera.position.add(lt)):e.camera.position.y=e.camera.position.y+m.current.y}p&&T.exhausted&&o.setPlaybackStatus(`paused`);let R=s.current*1e3;Math.abs(R-c.timeMs)>.5&&o.setPlaybackTime(R)},t[15]=r,t[16]=n.source,t[17]=a,t[18]=D):D=t[18],i(D);let O;t[19]===n.streamingPlayback?O=t[20]:(O=(0,K.jsx)($e,{playback:n.streamingPlayback,snapshotRef:f}),t[19]=n.streamingPlayback,t[20]=O);let k;t[21]===b?k=t[22]:(k=b&&(0,K.jsx)(V.Suspense,{children:(0,K.jsx)(le,{shapeName:b,eyeOffsetRef:m})}),t[21]=b,t[22]=k);let A;return t[23]!==O||t[24]!==k?(A=(0,K.jsxs)(K.Fragment,{children:[O,k]}),t[23]=O,t[24]=k,t[25]=A):A=t[25],A}export{pt as StreamingController}; \ No newline at end of file diff --git a/docs/assets/TouchHandler-CV_1nnl6.js b/docs/assets/TouchHandler-BGxxpP92.js similarity index 95% rename from docs/assets/TouchHandler-CV_1nnl6.js rename to docs/assets/TouchHandler-BGxxpP92.js index a6f00c96..8d3540d1 100644 --- a/docs/assets/TouchHandler-CV_1nnl6.js +++ b/docs/assets/TouchHandler-BGxxpP92.js @@ -1 +1 @@ -import{n as e}from"./jsx-runtime-BpGWiA-R.js";import{i as t}from"./react-three-fiber.esm-CgPHUpXo.js";import{r as n}from"./SettingsProvider-CCHVZuSg.js";import{n as r}from"./JoystickContext-YJ6eVLFP.js";import{f as i,h as a}from"./index-B1XI52_L.js";var o=e(),s=.004,c=2.5,l=.08,u=.15,d=.15;function f(){let e=(0,o.c)(9),{speedMultiplier:f,touchMode:p,invertDrag:m,invertJoystick:h}=n(),{moveState:g,lookState:_}=r(),v=a(),[,y]=i(),b;return e[0]!==y||e[1]!==m||e[2]!==h||e[3]!==_.current||e[4]!==g.current||e[5]!==v||e[6]!==f||e[7]!==p?(b=(e,t)=>{let{force:n,angle:r}=g.current,{force:i,angle:a}=_.current,o=y().touchLook,b=m?1:-1,x=0,S=0;p===`moveLookStick`&&o&&o.dragging&&(x=b*o.deltaX*s,S=b*o.deltaY*s);let C=0,w=0;if(p===`dualStick`){if(i>u){let e=(i-u)/(1-u),n=Math.cos(a),r=Math.sin(a),o=h?1:-1;x-=o*n*e*c*t,S+=o*r*e*c*t}if(n>l){let e=(n-l)/(1-l),t=Math.cos(r),i=Math.sin(r);C=Math.max(-1,Math.min(1,t*e*f)),w=Math.max(-1,Math.min(1,i*e*f))}}else if(p===`moveLookStick`&&n>0&&(w=Math.max(-1,Math.min(1,.5*f)),n>=d)){let e=Math.cos(r),i=Math.sin(r),a=(n-d)/(1-d),o=h?1:-1;x-=o*e*a*c*.5*t,S+=o*i*a*c*.5*t}!(x!==0||S!==0)&&!(C!==0||w!==0)||v({deltaYaw:x,deltaPitch:S,x:C,y:w,z:0,triggers:[],delta:t})},e[0]=y,e[1]=m,e[2]=h,e[3]=_.current,e[4]=g.current,e[5]=v,e[6]=f,e[7]=p,e[8]=b):b=e[8],t(b),null}export{f as TouchHandler}; \ No newline at end of file +import{n as e}from"./jsx-runtime-BpGWiA-R.js";import{i as t}from"./react-three-fiber.esm-CgPHUpXo.js";import{r as n}from"./SettingsProvider-CCHVZuSg.js";import{n as r}from"./JoystickContext-YJ6eVLFP.js";import{f as i,h as a}from"./index-DfaykQpF.js";var o=e(),s=.004,c=2.5,l=.08,u=.15,d=.15;function f(){let e=(0,o.c)(9),{speedMultiplier:f,touchMode:p,invertDrag:m,invertJoystick:h}=n(),{moveState:g,lookState:_}=r(),v=a(),[,y]=i(),b;return e[0]!==y||e[1]!==m||e[2]!==h||e[3]!==_.current||e[4]!==g.current||e[5]!==v||e[6]!==f||e[7]!==p?(b=(e,t)=>{let{force:n,angle:r}=g.current,{force:i,angle:a}=_.current,o=y().touchLook,b=m?1:-1,x=0,S=0;p===`moveLookStick`&&o&&o.dragging&&(x=b*o.deltaX*s,S=b*o.deltaY*s);let C=0,w=0;if(p===`dualStick`){if(i>u){let e=(i-u)/(1-u),n=Math.cos(a),r=Math.sin(a),o=h?1:-1;x-=o*n*e*c*t,S+=o*r*e*c*t}if(n>l){let e=(n-l)/(1-l),t=Math.cos(r),i=Math.sin(r);C=Math.max(-1,Math.min(1,t*e*f)),w=Math.max(-1,Math.min(1,i*e*f))}}else if(p===`moveLookStick`&&n>0&&(w=Math.max(-1,Math.min(1,.5*f)),n>=d)){let e=Math.cos(r),i=Math.sin(r),a=(n-d)/(1-d),o=h?1:-1;x-=o*e*a*c*.5*t,S+=o*i*a*c*.5*t}!(x!==0||S!==0)&&!(C!==0||w!==0)||v({deltaYaw:x,deltaPitch:S,x:C,y:w,z:0,triggers:[],delta:t})},e[0]=y,e[1]=m,e[2]=h,e[3]=_.current,e[4]=g.current,e[5]=v,e[6]=f,e[7]=p,e[8]=b):b=e[8],t(b),null}export{f as TouchHandler}; \ No newline at end of file diff --git a/docs/assets/demoStreaming-vQjQowT8.js b/docs/assets/demoStreaming-Tnv976xF.js similarity index 99% rename from docs/assets/demoStreaming-vQjQowT8.js rename to docs/assets/demoStreaming-Tnv976xF.js index 9631e6ae..dfd74a9c 100644 --- a/docs/assets/demoStreaming-vQjQowT8.js +++ b/docs/assets/demoStreaming-Tnv976xF.js @@ -1 +1 @@ -import{A as e,D as t,O as n,_ as r,a as i,b as a,d as o,l as s,n as c,r as l,t as u,v as d,y as f}from"./streamHelpers-D2N8suZp.js";import{i as p}from"./scene-BdOVRsxo.js";import{L as m}from"./index-B1XI52_L.js";function h(e){let t=null,n=null,i=null,a=null,o=null,s=null,c=NaN,l=null;for(let u=0;u=3&&d[1]?.endsWith(`Game`)&&(i=d[1]),e[u]!==`readplayerinfo`)continue;let f=e[u+1];if(f){if(f.startsWith(`1 `)){let e=f.split(` `);e[1]&&(c=parseInt(e[1],10)),e[2]&&(s=r(e[2]).trim());continue}if(f.startsWith(`2 `)){let e=f.split(` `);e[1]&&(a=e[1]),e[3]&&(l=e[3]),e[4]&&(t=e[4]);continue}if(f.startsWith(`3 `)){let e=f.split(` `);e[1]&&(o=e[1]),e[2]&&(n=e[2])}}}return{missionDisplayName:t,missionType:n,gameClassName:i,serverDisplayName:a,mod:o,recorderName:s,recorderClientId:Number.isFinite(c)?c:null,recordingDate:l}}function g(e){let t={weaponsHud:null,backpackHud:null,inventoryHud:null,teamScores:[],playerRoster:new Map,chatMessages:[],clockTimeMin:null,gravity:-20};if(!e.length)return t;let n=0,i=()=>{let t=e[n++];return t===``?``:t??``};if(i(),n>=e.length)return t;let a=parseInt(i(),10)||0,o=new Map;for(let e=0;e0&&o.set(s,(o.get(s)??0)+1)}if(n>=e.length||(i(),n>=e.length))return t;{let e=i().split(` `),n=e[0]??``,r=e[1]===`1`||e[1]===`true`,a=e[2]??``,o=e[4]===`1`||e[4]===`true`;r&&n&&(t.backpackHud={packIndex:c(n),active:o,text:a})}if(n>=e.length)return t;let s=i().split(` `),l=parseInt(s[4],10)||0,u=parseInt(s[5],10)||0,d=parseInt(s[6],10);for(let e=0;e=e.length)return t;let p=i().split(` `),m=parseInt(p[4],10)||0,h=parseInt(p[5],10)||0,g=parseInt(p[6],10);for(let e=0;e0&&e.set(n,r)}e.size>0&&(t.inventoryHud={slots:e,activeSlot:isNaN(g)?-1:g})}if(n>=e.length)return t;let _=i().split(` `),v=_[1]??``,y=parseInt(_[2],10)||0,b=[];for(let e=0;e=8)for(let e=0;e<2;e++){let n=e*4,r=e+1;t.teamScores.push({teamId:r,name:b[n]??``,score:parseInt(b[n+1],10)||0,playerCount:o.get(r)??0})}else if(v===`TR2Game`&&y>=4)for(let e=0;e<2;e++){let n=e*2,r=e+1;t.teamScores.push({teamId:r,name:b[n+1]??``,score:parseInt(b[n],10)||0,playerCount:o.get(r)??0})}if(n>=e.length)return t;{let e=i().split(` `),n=parseFloat(e[1]??``);Number.isFinite(n)&&(t.clockTimeMin=n)}for(let r=0;r<10&&!(n>=e.length);r++){let e=i();e&&t.chatMessages.push(e)}if(n=0?t(`Player`,this.initialBlock.controlObjectGhostIndex):void 0;for(let e of this.initialBlock.initialGhosts){if(e.type!==`create`||e.classId==null)continue;let r=this.registry.getGhostParser(e.classId)?.name;if(!r)throw Error(`No ghost parser for classId ${e.classId} (ghost index ${e.index})`);let i=t(r,e.index),a={id:i,ghostIndex:e.index,className:r,spawnTick:0,type:n(r),rotation:[0,0,0,1]};if(this.applyGhostData(a,e.parsedData),e.parsedData){let t=p(r,e.index,e.parsedData);t&&(a.sceneData=t)}this.entities.set(i,a),this.entityIdByGhostIndex.set(e.index,i)}if(this.playerSensorGroup===0&&this.lastControlType===`player`&&this.latestControl.ghostIndex>=0){let e=this.entityIdByGhostIndex.get(this.latestControl.ghostIndex),t=e?this.entities.get(e):void 0;t?.sensorGroup!=null&&t.sensorGroup>0&&(this.playerSensorGroup=t.sensorGroup)}for(let e of this.initialBlock.initialEvents){let t=this.registry.getEventParser(e.classId)?.name;if(t===`SetSensorGroupEvent`&&e.parsedData){let t=e.parsedData.sensorGroup;t!=null&&(this.playerSensorGroup=t)}else if(t===`RemoteCommandEvent`&&e.parsedData){let t=this.resolveNetString(e.parsedData.funcName),n=e.parsedData.args;t===`ServerMessage`&&this.handleServerMessage(n),this.handleHudRemoteCommand(t,n)}}let c=g(this.initialBlock.demoValues);c.weaponsHud&&(this.weaponsHud.slots=c.weaponsHud.slots,this.weaponsHud.activeIndex=c.weaponsHud.activeIndex),c.backpackHud&&(this.backpackHud.packIndex=c.backpackHud.packIndex,this.backpackHud.active=c.backpackHud.active,this.backpackHud.text=c.backpackHud.text),c.inventoryHud&&(this.inventoryHud.slots=c.inventoryHud.slots,this.inventoryHud.activeSlot=c.inventoryHud.activeSlot),this.teamScores=c.teamScores,this.playerRoster=new Map(c.playerRoster),c.clockTimeMin!=null&&(this.clockAnchorStreamSec=0,this.clockDurationMs=c.clockTimeMin*60*1e3);for(let e of c.chatMessages){let t=o(e);if(!t.length)continue;let n=t.map(e=>e.text).join(``);if(!n.trim())continue;let r=t[0].colorCode;if(t.some(e=>e.colorCode===3||e.colorCode===4)&&n.includes(`: `)){let e=n.indexOf(`: `);this.pushChatMessage({timeSec:0,sender:n.slice(0,e),text:n.slice(e+2),kind:`chat`,colorCode:r,segments:t})}else this.pushChatMessage({timeSec:0,sender:``,text:n,kind:`server`,colorCode:r,segments:t})}this.updateCameraAndHud()}getSnapshot(){if(this._cachedSnapshot&&this._cachedSnapshotTick===this.moveTicks)return this._cachedSnapshot;let e=this.buildSnapshot();return this._cachedSnapshot=e,this._cachedSnapshotTick=this.moveTicks,e}getEffectShapes(){let e=new Set,t=t=>{let n=t.dtsFileName;n&&e.add(n);let r=t.subExplosions;if(Array.isArray(r))for(let t of r){if(t==null)continue;let n=this.getDataBlockData(t);n?.dtsFileName&&e.add(n.dtsFileName)}};for(let[,e]of this.initialBlock.dataBlocks){let n=e.data?.explosion;if(n==null)continue;let r=this.getDataBlockData(n);r&&t(r)}return[...e]}stepToTime(e,t=1/0){let n=Math.floor((Number.isFinite(e)?Math.max(0,e):0)*1e3/32),r=!1;n({index:e,ammo:t})),activeIndex:this.weaponsHud.activeIndex},o=n&&n.inventoryHudGen===this._inventoryHudGen?n.inventoryHud:{slots:Array.from(this.inventoryHud.slots.entries()).map(([e,t])=>({slot:e,count:t})),activeSlot:this.inventoryHud.activeSlot},s=n&&n.backpackPackIndex===this.backpackHud.packIndex&&n.backpackActive===this.backpackHud.active&&n.backpackText===this.backpackHud.text?n.backpackHud:this.backpackHud.packIndex>=0?{...this.backpackHud}:null,c,l;if(n&&n.teamScoresGen===this._teamScoresGen&&n.rosterGen===this._rosterGen)c=n.teamScores,l=n.playerRoster;else{c=this.teamScores.map(e=>({...e}));let e=new Map;for(let{teamId:t}of this.playerRoster.values())t>0&&e.set(t,(e.get(t)??0)+1);for(let t of c)t.playerCount=e.get(t.teamId)??0;l=[];for(let[e,t]of this.playerRoster)l.push({clientId:e,...t})}return this._snap={teamScoresGen:this._teamScoresGen,rosterGen:this._rosterGen,teamScores:c,playerRoster:l,weaponsHudGen:this._weaponsHudGen,weaponsHud:a,inventoryHudGen:this._inventoryHudGen,inventoryHud:o,backpackPackIndex:this.backpackHud.packIndex,backpackActive:this.backpackHud.active,backpackText:this.backpackHud.text,backpackHud:s},{timeSec:t,exhausted:this.exhausted,camera:this.camera,entities:e,controlPlayerGhostId:this.controlPlayerGhostId,playerSensorGroup:this.playerSensorGroup,status:this.lastStatus,chatMessages:r,audioEvents:i,weaponsHud:a,backpackHud:s,inventoryHud:o,teamScores:c,playerRoster:l,connectedClientId:this.connectedClientId,matchClockMs:this.computeMatchClockMs(t)}}isPacketData(e){return!!e&&typeof e==`object`&&`gameState`in e&&`events`in e&&`ghosts`in e}isMoveData(e){return!!e&&typeof e==`object`&&`yaw`in e}isInfoData(e){return!!e&&typeof e==`object`&&`value1`in e&&typeof e.value1==`number`&&`value2`in e&&typeof e.value2==`number`}};async function v(t){let n=new e(new Uint8Array(t)),{header:r,initialBlock:i}=await n.load(),a=h(i.demoValues),o=new _(n);return o.missionDisplayName=a.missionDisplayName,o.missionTypeDisplayName=a.missionType,o.gameClassName=a.gameClassName,o.serverDisplayName=a.serverDisplayName,o.connectedPlayerName=a.recorderName,o.connectedClientId=a.recorderClientId,{source:`demo`,duration:r.demoLengthMs/1e3,missionName:i.missionName??null,gameType:a.missionType,serverDisplayName:a.serverDisplayName,recorderName:a.recorderName,recordingDate:a.recordingDate,streamingPlayback:o}}export{v as createDemoStreamingRecording}; \ No newline at end of file +import{A as e,D as t,O as n,_ as r,a as i,b as a,d as o,l as s,n as c,r as l,t as u,v as d,y as f}from"./streamHelpers-D2N8suZp.js";import{i as p}from"./scene-BdOVRsxo.js";import{L as m}from"./index-DfaykQpF.js";function h(e){let t=null,n=null,i=null,a=null,o=null,s=null,c=NaN,l=null;for(let u=0;u=3&&d[1]?.endsWith(`Game`)&&(i=d[1]),e[u]!==`readplayerinfo`)continue;let f=e[u+1];if(f){if(f.startsWith(`1 `)){let e=f.split(` `);e[1]&&(c=parseInt(e[1],10)),e[2]&&(s=r(e[2]).trim());continue}if(f.startsWith(`2 `)){let e=f.split(` `);e[1]&&(a=e[1]),e[3]&&(l=e[3]),e[4]&&(t=e[4]);continue}if(f.startsWith(`3 `)){let e=f.split(` `);e[1]&&(o=e[1]),e[2]&&(n=e[2])}}}return{missionDisplayName:t,missionType:n,gameClassName:i,serverDisplayName:a,mod:o,recorderName:s,recorderClientId:Number.isFinite(c)?c:null,recordingDate:l}}function g(e){let t={weaponsHud:null,backpackHud:null,inventoryHud:null,teamScores:[],playerRoster:new Map,chatMessages:[],clockTimeMin:null,gravity:-20};if(!e.length)return t;let n=0,i=()=>{let t=e[n++];return t===``?``:t??``};if(i(),n>=e.length)return t;let a=parseInt(i(),10)||0,o=new Map;for(let e=0;e0&&o.set(s,(o.get(s)??0)+1)}if(n>=e.length||(i(),n>=e.length))return t;{let e=i().split(` `),n=e[0]??``,r=e[1]===`1`||e[1]===`true`,a=e[2]??``,o=e[4]===`1`||e[4]===`true`;r&&n&&(t.backpackHud={packIndex:c(n),active:o,text:a})}if(n>=e.length)return t;let s=i().split(` `),l=parseInt(s[4],10)||0,u=parseInt(s[5],10)||0,d=parseInt(s[6],10);for(let e=0;e=e.length)return t;let p=i().split(` `),m=parseInt(p[4],10)||0,h=parseInt(p[5],10)||0,g=parseInt(p[6],10);for(let e=0;e0&&e.set(n,r)}e.size>0&&(t.inventoryHud={slots:e,activeSlot:isNaN(g)?-1:g})}if(n>=e.length)return t;let _=i().split(` `),v=_[1]??``,y=parseInt(_[2],10)||0,b=[];for(let e=0;e=8)for(let e=0;e<2;e++){let n=e*4,r=e+1;t.teamScores.push({teamId:r,name:b[n]??``,score:parseInt(b[n+1],10)||0,playerCount:o.get(r)??0})}else if(v===`TR2Game`&&y>=4)for(let e=0;e<2;e++){let n=e*2,r=e+1;t.teamScores.push({teamId:r,name:b[n+1]??``,score:parseInt(b[n],10)||0,playerCount:o.get(r)??0})}if(n>=e.length)return t;{let e=i().split(` `),n=parseFloat(e[1]??``);Number.isFinite(n)&&(t.clockTimeMin=n)}for(let r=0;r<10&&!(n>=e.length);r++){let e=i();e&&t.chatMessages.push(e)}if(n=0?t(`Player`,this.initialBlock.controlObjectGhostIndex):void 0;for(let e of this.initialBlock.initialGhosts){if(e.type!==`create`||e.classId==null)continue;let r=this.registry.getGhostParser(e.classId)?.name;if(!r)throw Error(`No ghost parser for classId ${e.classId} (ghost index ${e.index})`);let i=t(r,e.index),a={id:i,ghostIndex:e.index,className:r,spawnTick:0,type:n(r),rotation:[0,0,0,1]};if(this.applyGhostData(a,e.parsedData),e.parsedData){let t=p(r,e.index,e.parsedData);t&&(a.sceneData=t)}this.entities.set(i,a),this.entityIdByGhostIndex.set(e.index,i)}if(this.playerSensorGroup===0&&this.lastControlType===`player`&&this.latestControl.ghostIndex>=0){let e=this.entityIdByGhostIndex.get(this.latestControl.ghostIndex),t=e?this.entities.get(e):void 0;t?.sensorGroup!=null&&t.sensorGroup>0&&(this.playerSensorGroup=t.sensorGroup)}for(let e of this.initialBlock.initialEvents){let t=this.registry.getEventParser(e.classId)?.name;if(t===`SetSensorGroupEvent`&&e.parsedData){let t=e.parsedData.sensorGroup;t!=null&&(this.playerSensorGroup=t)}else if(t===`RemoteCommandEvent`&&e.parsedData){let t=this.resolveNetString(e.parsedData.funcName),n=e.parsedData.args;t===`ServerMessage`&&this.handleServerMessage(n),this.handleHudRemoteCommand(t,n)}}let c=g(this.initialBlock.demoValues);c.weaponsHud&&(this.weaponsHud.slots=c.weaponsHud.slots,this.weaponsHud.activeIndex=c.weaponsHud.activeIndex),c.backpackHud&&(this.backpackHud.packIndex=c.backpackHud.packIndex,this.backpackHud.active=c.backpackHud.active,this.backpackHud.text=c.backpackHud.text),c.inventoryHud&&(this.inventoryHud.slots=c.inventoryHud.slots,this.inventoryHud.activeSlot=c.inventoryHud.activeSlot),this.teamScores=c.teamScores,this.playerRoster=new Map(c.playerRoster),c.clockTimeMin!=null&&(this.clockAnchorStreamSec=0,this.clockDurationMs=c.clockTimeMin*60*1e3);for(let e of c.chatMessages){let t=o(e);if(!t.length)continue;let n=t.map(e=>e.text).join(``);if(!n.trim())continue;let r=t[0].colorCode;if(t.some(e=>e.colorCode===3||e.colorCode===4)&&n.includes(`: `)){let e=n.indexOf(`: `);this.pushChatMessage({timeSec:0,sender:n.slice(0,e),text:n.slice(e+2),kind:`chat`,colorCode:r,segments:t})}else this.pushChatMessage({timeSec:0,sender:``,text:n,kind:`server`,colorCode:r,segments:t})}this.updateCameraAndHud()}getSnapshot(){if(this._cachedSnapshot&&this._cachedSnapshotTick===this.moveTicks)return this._cachedSnapshot;let e=this.buildSnapshot();return this._cachedSnapshot=e,this._cachedSnapshotTick=this.moveTicks,e}getEffectShapes(){let e=new Set,t=t=>{let n=t.dtsFileName;n&&e.add(n);let r=t.subExplosions;if(Array.isArray(r))for(let t of r){if(t==null)continue;let n=this.getDataBlockData(t);n?.dtsFileName&&e.add(n.dtsFileName)}};for(let[,e]of this.initialBlock.dataBlocks){let n=e.data?.explosion;if(n==null)continue;let r=this.getDataBlockData(n);r&&t(r)}return[...e]}stepToTime(e,t=1/0){let n=Math.floor((Number.isFinite(e)?Math.max(0,e):0)*1e3/32),r=!1;n({index:e,ammo:t})),activeIndex:this.weaponsHud.activeIndex},o=n&&n.inventoryHudGen===this._inventoryHudGen?n.inventoryHud:{slots:Array.from(this.inventoryHud.slots.entries()).map(([e,t])=>({slot:e,count:t})),activeSlot:this.inventoryHud.activeSlot},s=n&&n.backpackPackIndex===this.backpackHud.packIndex&&n.backpackActive===this.backpackHud.active&&n.backpackText===this.backpackHud.text?n.backpackHud:this.backpackHud.packIndex>=0?{...this.backpackHud}:null,c,l;if(n&&n.teamScoresGen===this._teamScoresGen&&n.rosterGen===this._rosterGen)c=n.teamScores,l=n.playerRoster;else{c=this.teamScores.map(e=>({...e}));let e=new Map;for(let{teamId:t}of this.playerRoster.values())t>0&&e.set(t,(e.get(t)??0)+1);for(let t of c)t.playerCount=e.get(t.teamId)??0;l=[];for(let[e,t]of this.playerRoster)l.push({clientId:e,...t})}return this._snap={teamScoresGen:this._teamScoresGen,rosterGen:this._rosterGen,teamScores:c,playerRoster:l,weaponsHudGen:this._weaponsHudGen,weaponsHud:a,inventoryHudGen:this._inventoryHudGen,inventoryHud:o,backpackPackIndex:this.backpackHud.packIndex,backpackActive:this.backpackHud.active,backpackText:this.backpackHud.text,backpackHud:s},{timeSec:t,exhausted:this.exhausted,camera:this.camera,entities:e,controlPlayerGhostId:this.controlPlayerGhostId,playerSensorGroup:this.playerSensorGroup,status:this.lastStatus,chatMessages:r,audioEvents:i,weaponsHud:a,backpackHud:s,inventoryHud:o,teamScores:c,playerRoster:l,connectedClientId:this.connectedClientId,matchClockMs:this.computeMatchClockMs(t)}}isPacketData(e){return!!e&&typeof e==`object`&&`gameState`in e&&`events`in e&&`ghosts`in e}isMoveData(e){return!!e&&typeof e==`object`&&`yaw`in e}isInfoData(e){return!!e&&typeof e==`object`&&`value1`in e&&typeof e.value1==`number`&&`value2`in e&&typeof e.value2==`number`}};async function v(t){let n=new e(new Uint8Array(t)),{header:r,initialBlock:i}=await n.load(),a=h(i.demoValues),o=new _(n);return o.missionDisplayName=a.missionDisplayName,o.missionTypeDisplayName=a.missionType,o.gameClassName=a.gameClassName,o.serverDisplayName=a.serverDisplayName,o.connectedPlayerName=a.recorderName,o.connectedClientId=a.recorderClientId,{source:`demo`,duration:r.demoLengthMs/1e3,missionName:i.missionName??null,gameType:a.missionType,serverDisplayName:a.serverDisplayName,recorderName:a.recorderName,recordingDate:a.recordingDate,streamingPlayback:o}}export{v as createDemoStreamingRecording}; \ No newline at end of file diff --git a/docs/assets/index-B1XI52_L.js b/docs/assets/index-B1XI52_L.js deleted file mode 100644 index 5e5aa266..00000000 --- a/docs/assets/index-B1XI52_L.js +++ /dev/null @@ -1,12 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/demoStreaming-vQjQowT8.js","assets/streamHelpers-D2N8suZp.js","assets/chunk-DECur_0Z.js","assets/three.module-07hRbor4.js","assets/scene-BdOVRsxo.js","assets/logger-z_EpIdIa.js","assets/demoTimelineScanner-BGzL-XZF.js","assets/TouchHandler-CV_1nnl6.js","assets/react-three-fiber.esm-CgPHUpXo.js","assets/jsx-runtime-BpGWiA-R.js","assets/traditional-BTL5qX2E.js","assets/SettingsProvider-CCHVZuSg.js","assets/manifest-CirqV3Ls.js","assets/stringUtils-EmGsjr9D.js","assets/JoystickContext-YJ6eVLFP.js","assets/TouchJoystick-DYqKShVz.js","assets/preload-helper-CwUjIIrH.js","assets/TouchJoystick-Dn73xHvm.css","assets/KeyboardOverlay-D875z9z7.js","assets/gr-1PcjgMj0.js","assets/iconBase-BCRUFbxq.js","assets/cameraTourStore-PEzPVGnX.js","assets/KeyboardOverlay-CpSto9KR.css","assets/GameView-DOXRUG38.js","assets/mission-Bem2ztlS.js","assets/extends-COZGby3T.js","assets/GenericShape-BC0gDQiR.js","assets/Texture-CIsc25mc.js","assets/useBaseQuery-NrPec9_7.js","assets/FloatingLabel-4Yii8rRq.js","assets/Html-BfjRWIZg.js","assets/FloatingLabel-DfptgH-Y.css","assets/globalFogUniforms-CtxQvsRj.js","assets/loaders-CIpiZadQ.js","assets/engineStore-Dkm20jvr.js","assets/middleware-DPacZrFu.js","assets/useQuery-FY4YqwDi.js","assets/AudioContext-CMp1T7r9.js","assets/DebugSuspense-Dk4MzcWf.js","assets/ShapeErrorBoundary-CJ_4YTMy.js","assets/gameEntityTypes-B1KihaDt.js","assets/streamPlaybackStore-DhJekvnx.js","assets/GameView-PJcE9IRi.css","assets/DemoPlaybackControls-B8inlhPI.js","assets/DemoPlaybackControls-V-lirz3V.css","assets/PlayerHUD-ZLAOgfFu.js","assets/PlayerHUD-DWa6gIym.css","assets/MapInfoDialog-BlS8j0JO.js","assets/MapInfoDialog-qPSE5ow_.css","assets/ServerBrowser-BK-yGyhv.js","assets/ServerBrowser-B1ZZ25fp.css","assets/ScoreScreen-94psq8zp.js","assets/ScoreScreen-FWyMMObP.css"])))=>i.map(i=>d[i]); -import{r as e,t}from"./chunk-DECur_0Z.js";import{n,r,t as i}from"./jsx-runtime-BpGWiA-R.js";import{i as a,o,s}from"./react-three-fiber.esm-CgPHUpXo.js";import{a as c,c as l,d as u,f as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x}from"./SettingsProvider-CCHVZuSg.js";import{t as S}from"./iconBase-BCRUFbxq.js";import{l as C,n as w,r as T,s as E}from"./manifest-CirqV3Ls.js";import{n as D,r as O,t as k}from"./stringUtils-EmGsjr9D.js";import{t as A}from"./logger-z_EpIdIa.js";import{i as j,n as M,r as ee}from"./traditional-BTL5qX2E.js";import{n as te,t as N}from"./cameraTourStore-PEzPVGnX.js";import{C as P,D as ne,E as re,O as F,S as ie,T as ae,_ as I,a as oe,b as L,c as se,f as ce,g as le,h as ue,i as de,k as fe,l as pe,m as me,o as he,p as ge,r as _e,s as ve,t as ye,u as be,v as xe,w as Se,x as Ce,y as we}from"./streamHelpers-D2N8suZp.js";import{St as Te,Ut as Ee}from"./three.module-07hRbor4.js";import{i as De}from"./scene-BdOVRsxo.js";import{i as Oe}from"./mission-Bem2ztlS.js";import{t as ke}from"./middleware-DPacZrFu.js";import{i as Ae,r as je}from"./engineStore-Dkm20jvr.js";import{t as Me}from"./preload-helper-CwUjIIrH.js";import{t as Ne}from"./JoystickContext-YJ6eVLFP.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Pe=t((e=>{var t=r();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=Pe()})),Ie=t((e=>{var t=s(),n=r(),i=Fe();function a(e){var t=`https://react.dev/errors/`+e;if(1F||(e.current=re[F],re[F]=null,F--)}function I(e,t){F++,re[F]=e.current,e.current=t}var oe=ie(null),L=ie(null),se=ie(null),ce=ie(null);function le(e,t){switch(I(se,t),I(L,e),I(oe,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}ae(oe),I(oe,e)}function ue(){ae(oe),ae(L),ae(se)}function de(e){e.memoizedState!==null&&I(ce,e);var t=oe.current,n=Hd(t,e.type);t!==n&&(I(L,e),I(oe,n))}function fe(e){L.current===e&&(ae(oe),ae(L)),ce.current===e&&(ae(ce),Qf._currentValue=ne)}var pe,me;function he(e){if(pe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);pe=t&&t[1]||``,me=-1)`:-1i||c[r]!==l[i]){var u=` -`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ge=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?he(n):``}function ve(e,t){switch(e.tag){case 26:case 27:case 5:return he(e.type);case 16:return he(`Lazy`);case 13:return e.child!==t&&t!==null?he(`Suspense Fallback`):he(`Suspense`);case 19:return he(`SuspenseList`);case 0:case 15:return _e(e.type,!1);case 11:return _e(e.type.render,!1);case 1:return _e(e.type,!0);case 31:return he(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=ve(e,n),n=e,e=e.return;while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,je=t.unstable_IdlePriority,Me=t.log,Ne=t.unstable_setDisableYieldValue,Pe=null,Ie=null;function Le(e){if(typeof Me==`function`&&Ne(e),Ie&&typeof Ie.setStrictMode==`function`)try{Ie.setStrictMode(Pe,e)}catch{}}var Re=Math.clz32?Math.clz32:ze,R=Math.log,z=Math.LN2;function ze(e){return e>>>=0,e===0?32:31-(R(e)/z|0)|0}var Be=256,Ve=262144,He=4194304;function Ue(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function We(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ue(n))):i=Ue(o):i=Ue(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ue(n))):i=Ue(o)):i=Ue(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ge(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ke(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function qe(){var e=He;return He<<=1,!(He&62914560)&&(He=4194304),e}function Je(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ye(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Xe(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),cn=!1;if(sn)try{var ln={};Object.defineProperty(ln,`passive`,{get:function(){cn=!0}}),window.addEventListener(`test`,ln,ln),window.removeEventListener(`test`,ln,ln)}catch{cn=!1}var un=null,dn=null,fn=null;function pn(){if(fn)return fn;var e,t=dn,n=t.length,r,i=`value`in un?un.value:un.textContent,a=i.length;for(e=0;e=Gn),Jn=` `,Yn=!1;function Xn(e,t){switch(e){case`keyup`:return Un.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Zn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Qn=!1;function $n(e,t){switch(e){case`compositionend`:return Zn(t);case`keypress`:return t.which===32?(Yn=!0,Jn):null;case`textInput`:return e=t.data,e===Jn&&Yn?null:e;default:return null}}function er(e,t){if(Qn)return e===`compositionend`||!Wn&&Xn(e,t)?(e=pn(),fn=dn=un=null,Qn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Sr(n)}}function wr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?wr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Tr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ft(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ft(e.document)}return t}function Er(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Dr=sn&&`documentMode`in document&&11>=document.documentMode,Or=null,kr=null,Ar=null,jr=!1;function Mr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;jr||Or==null||Or!==Ft(r)||(r=Or,`selectionStart`in r&&Er(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ar&&xr(Ar,r)||(Ar=r,r=Ed(kr,`onSelect`),0>=o,i-=o,wi=1<<32-Re(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),V&&Ei(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),V&&Ei(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return V&&Ei(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),V&&Ei(i,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===v&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case g:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===v){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===D&&Ea(l)===r.type){n(e,r.sibling),c=i(r,o.props),Na(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===v?(c=di(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ui(o.type,o.key,o.props,null,e.mode,c),Na(c,o),c.return=e,e=c)}return s(e);case _:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=mi(o,e.mode,c),c.return=e,e=c}return s(e);case D:return o=Ea(o),b(e,r,o,c)}if(te(o))return h(e,r,o,c);if(j(o)){if(l=j(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Ma(o),c);if(o.$$typeof===S)return b(e,r,ea(e,o),c);Pa(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=fi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{ja=0;var i=b(e,t,n,r);return Aa=null,i}catch(t){if(t===ba||t===Sa)throw t;var a=oi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ia=Fa(!0),La=Fa(!1),Ra=!1;function za(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ba(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Va(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ha(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Y&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ri(e),ni(e,null,n),t}return $r(e,r,t,n),ri(e)}function Ua(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Qe(e,n)}}function Wa(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ga=!1;function Ka(){if(Ga){var e=da;if(e!==null)throw e}}function qa(e,t,n,r){Ga=!1;var i=e.updateQueue;Ra=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Z&f)===f:(r&f)===f){f!==0&&f===ua&&(Ga=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=m({},d,f);break a;case 2:Ra=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Wl|=o,e.lanes=o,e.memoizedState=d}}function Ja(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function Ya(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=N.T,s={};N.T=s,As(e,!1,t,n);try{var c=i(),l=N.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?ks(e,t,ma(c,r),fu(e)):ks(e,t,r,fu(e))}catch(n){ks(e,t,{then:function(){},status:`rejected`,reason:n},fu())}finally{P.p=a,o!==null&&s.types!==null&&(o.types=s.types),N.T=o}}function ys(){}function bs(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=xs(e).queue;vs(e,i,t,ne,n===null?ys:function(){return Ss(e),n(r)})}function xs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ne,baseState:ne,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:ne},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ss(e){var t=xs(e);t.next===null&&(t=e.alternate.memoizedState),ks(e,t.next.queue,{},fu())}function Cs(){return $i(Qf)}function ws(){return G().memoizedState}function Ts(){return G().memoizedState}function Es(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=fu();e=Va(n);var r=Ha(t,e,n);r!==null&&(mu(r,t,n),Ua(r,t,n)),t={cache:oa()},e.payload=t;return}t=t.return}}function Ds(e,t,n){var r=fu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},js(e)?Ms(t,n):(n=ei(e,t,n,r),n!==null&&(mu(n,e,r),Ns(n,t,r)))}function Os(e,t,n){ks(e,t,n,fu())}function ks(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(js(e))Ms(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,br(s,o))return $r(e,t,i,0),Il===null&&Qr(),!1}catch{}if(n=ei(e,t,i,r),n!==null)return mu(n,e,r),Ns(n,t,r),!0}return!1}function As(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},js(e)){if(t)throw Error(a(479))}else t=ei(e,n,r,2),t!==null&&mu(t,e,2)}function js(e){var t=e.alternate;return e===U||t!==null&&t===U}function Ms(e,t){mo=po=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ns(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Qe(e,n)}}var Ps={readContext:$i,use:jo,useCallback:W,useContext:W,useEffect:W,useImperativeHandle:W,useLayoutEffect:W,useInsertionEffect:W,useMemo:W,useReducer:W,useRef:W,useState:W,useDebugValue:W,useDeferredValue:W,useTransition:W,useSyncExternalStore:W,useId:W,useHostTransitionStatus:W,useFormState:W,useActionState:W,useOptimistic:W,useMemoCache:W,useCacheRefresh:W};Ps.useEffectEvent=W;var Fs={readContext:$i,use:jo,useCallback:function(e,t){return Oo().memoizedState=[e,t===void 0?null:t],e},useContext:$i,useEffect:os,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),as(4194308,4,ds.bind(null,t,e),n)},useLayoutEffect:function(e,t){return as(4194308,4,e,t)},useInsertionEffect:function(e,t){as(4,2,e,t)},useMemo:function(e,t){var n=Oo();t=t===void 0?null:t;var r=e();if(ho){Le(!0);try{e()}finally{Le(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Oo();if(n!==void 0){var i=n(t);if(ho){Le(!0);try{n(t)}finally{Le(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ds.bind(null,U,e),[r.memoizedState,e]},useRef:function(e){var t=Oo();return e={current:e},t.memoizedState=e},useState:function(e){e=Uo(e);var t=e.queue,n=Os.bind(null,U,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ps,useDeferredValue:function(e,t){return gs(Oo(),e,t)},useTransition:function(){var e=Uo(!1);return e=vs.bind(null,U,e.queue,!0,!1),Oo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=U,i=Oo();if(V){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),Il===null)throw Error(a(349));Z&127||Ro(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,os(Bo.bind(null,r,o,e),[e]),r.flags|=2048,rs(9,{destroy:void 0},zo.bind(null,r,o,n,t),null),n},useId:function(){var e=Oo(),t=Il.identifierPrefix;if(V){var n=Ti,r=wi;n=(r&~(1<<32-Re(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=go++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[at]=t,o[ot]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Pd(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&kc(t)}}return Pc(t),Ac(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&kc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=se.current,zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=ji,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[at]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||Ii(t,!0)}else e=Bd(e).createTextNode(r),e[at]=t,t.stateNode=e}return Pc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=zi(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[at]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Pc(t),e=!1}else n=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(oo(t),t):(oo(t),null);if(t.flags&128)throw Error(a(558))}return Pc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=zi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[at]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Pc(t),i=!1}else i=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(oo(t),t):(oo(t),null)}return oo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Mc(t,t.updateQueue),Pc(t),null);case 4:return ue(),e===null&&Sd(t.stateNode.containerInfo),Pc(t),null;case 10:return qi(t.type),Pc(t),null;case 19:if(ae(so),r=t.memoizedState,r===null)return Pc(t),null;if(i=(t.flags&128)!=0,o=r.rendering,o===null)if(i)Nc(r,!1);else{if(Ul!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=co(e),o!==null){for(t.flags|=128,Nc(r,!1),e=o.updateQueue,t.updateQueue=e,Mc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)li(n,e),n=n.sibling;return I(so,so.current&1|2),V&&Ei(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>eu&&(t.flags|=128,i=!0,Nc(r,!1),t.lanes=4194304)}else{if(!i)if(e=co(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Mc(t,e),Nc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!V)return Pc(t),null}else 2*Te()-r.renderingStartTime>eu&&n!==536870912&&(t.flags|=128,i=!0,Nc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Pc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=so.current,I(so,i?n&1|2:n&1),V&&Ei(t,r.treeForkCount),e);case 22:case 23:return oo(t),eo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Pc(t),t.subtreeFlags&6&&(t.flags|=8192)):Pc(t),n=t.updateQueue,n!==null&&Mc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&ae(ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),qi(aa),Pc(t),null;case 25:return null;case 30:return null}throw Error(a(156,t.tag))}function Ic(e,t){switch(ki(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return qi(aa),ue(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return fe(t),null;case 31:if(t.memoizedState!==null){if(oo(t),t.alternate===null)throw Error(a(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(oo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ae(so),null;case 4:return ue(),null;case 10:return qi(t.type),null;case 22:case 23:return oo(t),eo(),e!==null&&ae(ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return qi(aa),null;case 25:return null;default:return null}}function Lc(e,t){switch(ki(t),t.tag){case 3:qi(aa),ue();break;case 26:case 27:case 5:fe(t);break;case 4:ue();break;case 31:t.memoizedState!==null&&oo(t);break;case 13:oo(t);break;case 19:ae(so);break;case 10:qi(t.type);break;case 22:case 23:oo(t),eo(),e!==null&&ae(ga);break;case 24:qi(aa)}}function Rc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Wu(t,t.return,e)}}function zc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Wu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Wu(t,t.return,e)}}function Bc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Ya(t,n)}catch(t){Wu(e,e.return,t)}}}function Vc(e,t,n){n.props=Hs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Wu(e,t,n)}}function Hc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Wu(e,t,n)}}function Uc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Wu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Wu(e,t,n)}else n.current=null}function Wc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Wu(e,e.return,t)}}function Gc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[ot]=t}catch(t){Wu(e,e.return,t)}}function Kc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function qc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Kc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Jc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Zt));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Jc(e,t,n),e=e.sibling;e!==null;)Jc(e,t,n),e=e.sibling}function Yc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Yc(e,t,n),e=e.sibling;e!==null;)Yc(e,t,n),e=e.sibling}function Xc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[at]=e,t[ot]=n}catch(t){Wu(e,e.return,t)}}var Zc=!1,Qc=!1,$c=!1,J=typeof WeakSet==`function`?WeakSet:Set,el=null;function tl(e,t){if(e=e.containerInfo,Rd=sp,e=Tr(e),Er(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=s+i),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,el=t;el!==null;)if(t=el,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,el=e;else for(;el!==null;){switch(t=el,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Pd(o,r,n),o[at]=e,vt(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Cr(s,h),v=Cr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,N.T=null,n=cu,cu=null;var o=iu,s=ou;if(ru=0,au=iu=null,ou=0,Y&6)throw Error(a(331));var c=Y;if(Y|=4,jl(o.current),Cl(o,o.current,s,n),Y=c,id(0,!1),Ie&&typeof Ie.onPostCommitFiberRoot==`function`)try{Ie.onPostCommitFiberRoot(Pe,o)}catch{}return!0}finally{P.p=i,N.T=r,Bu(e,t)}}function Uu(e,t,n){t=gi(n,t),t=Js(e.stateNode,t,2),e=Ha(e,t,2),e!==null&&(Ye(e,2),rd(e))}function Wu(e,t,n){if(e.tag===3)Uu(e,e,n);else for(;t!==null;){if(t.tag===3){Uu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(nu===null||!nu.has(r))){e=gi(n,e),n=Ys(2),r=Ha(t,n,2),r!==null&&(Xs(n,r,t,e),Ye(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Fl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Vl=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Il===e&&(Z&n)===n&&(Ul===4||Ul===3&&(Z&62914560)===Z&&300>Te()-Ql?!(Y&2)&&xu(e,0):Kl|=n,Jl===Z&&(Jl=0)),rd(e)}function qu(e,t){t===0&&(t=qe()),e=ti(e,t),e!==null&&(Ye(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return xe(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Re(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=Z,a=We(r,r===Il?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ge(r,a)||(n=!0,ld(r,a));r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Gd()&&(e=nd);for(var t=Te(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}ru!==0&&ru!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Lt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),vt(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Lt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Lt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Lt(n.imageSizes)+`"]`)):i+=`[href="`+Lt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=m({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),vt(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Lt(r)+`"][href="`+Lt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=m({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),vt(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=_t(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=m({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);vt(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=_t(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=m({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),vt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=_t(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=m({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),vt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=se.current)?gf(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=_t(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=_t(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(i,e,n,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=_t(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function Af(e){return`href="`+Lt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return m({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),vt(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Lt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Lt(n.href)+`"]`);if(r)return t.instance=r,vt(r),r;var i=m({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),vt(r),Pd(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var o=e.querySelector(jf(i));if(o)return t.state.loading|=4,t.instance=o,vt(o),o;r=Mf(n),(i=mf.get(i))&&Rf(r,i),o=(e.ownerDocument||e).createElement(`link`),vt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(i=e.querySelector(Ff(o)))?(t.instance=i,vt(i),i):(r=n,(i=mf.get(o))&&(r=m({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),vt(i),Pd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,vt(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),vt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=Ie()})),Re=e(Le(),1),R=e(r(),1),z=n();function ze(e,t,n){return r=>{if(!(t.length===0||t.some(t=>!x(r.getAll(t),e.getAll(t)))))return _("[nuqs `%s`] no change, returning previous",t.join(`,`),r),r;let i=Be(e,t,n);return _(`[nuqs \`%s\`] subbed search params change - from %O - to %O`,t.join(`,`),r,i),i}}function Be(e,t,n){if(t.length===0)return e;let r=n?new URLSearchParams(e):e;for(let n of e.keys())t.includes(n)||r.delete(n);return r}var Ve=`__nuqs__`,He=u();function Ue(e){return function(t,n){let r=new URL(location.href);r.search=m(t),_(`[nuqs react] Updating url: %s`,r),e&&n.shallow===!1?(n.history===`push`?location.assign:location.replace).call(location,r):(n.history===`push`?history.pushState:history.replaceState).call(history,history.state,Ve,r),He.emit(`update`,t),n.scroll===!0&&window.scrollTo({top:0})}}var We=(0,R.createContext)({fullPageNavigationOnShallowFalseUpdates:!1});function Ge(e){let{fullPageNavigationOnShallowFalseUpdates:t}=(0,R.useContext)(We),[n,r]=(0,R.useState)(()=>typeof location>`u`?new URLSearchParams:Be(new URLSearchParams(location.search),e,!1));return(0,R.useEffect)(()=>{let t=()=>{r(ze(new URLSearchParams(location.search),e,!1))},n=t=>{r(ze(t,e,!0))};return He.on(`update`,n),window.addEventListener(`popstate`,t),()=>{He.off(`update`,n),window.removeEventListener(`popstate`,t)}},[e.join(`&`)]),{searchParams:n,updateUrl:(0,R.useMemo)(()=>Ue(t),[t])}}var Ke=d(Ge);function qe({children:e,fullPageNavigationOnShallowFalseUpdates:t=!1,...n}){return(0,R.createElement)(We.Provider,{value:{fullPageNavigationOnShallowFalseUpdates:t}},(0,R.createElement)(Ke,{...n,children:e}))}var Je=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Ye=new class extends Je{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},Xe={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Ze=new class{#e=Xe;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function Qe(e){setTimeout(e,0)}var $e=typeof window>`u`||`Deno`in globalThis;function et(){}function tt(e,t){return typeof e==`function`?e(t):e}function nt(e){return typeof e==`number`&&e>=0&&e!==1/0}function rt(e,t){return Math.max(e+(t||0)-Date.now(),0)}function it(e,t){return typeof e==`function`?e(t):e}function at(e,t){return typeof e==`function`?e(t):e}function ot(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==ct(o,t.options))return!1}else if(!ut(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function st(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(lt(t.options.mutationKey)!==lt(a))return!1}else if(!ut(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function ct(e,t){return(t?.queryKeyHashFn||lt)(e)}function lt(e){return JSON.stringify(e,(e,t)=>ht(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function ut(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>ut(e[n],t[n])):!1}var dt=Object.prototype.hasOwnProperty;function ft(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=mt(e)&&mt(t);if(!r&&!(ht(e)&&ht(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l{Ze.setTimeout(t,e)})}function vt(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:ft(e,t)}function yt(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function bt(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var xt=Symbol();function St(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===xt?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Ct(e,t){return typeof e==`function`?e(...t):!!e}function wt(e,t,n){let r=!1,i;return Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var Tt=(()=>{let e=()=>$e;return{isServer(){return e()},setIsServer(t){e=t}}})();function Et(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var Dt=Qe;function Ot(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=Dt,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var kt=Ot(),At=new class extends Je{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function jt(e){return Math.min(1e3*2**e,3e4)}function Mt(e){return(e??`online`)===`online`?At.isOnline():!0}var Nt=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function Pt(e){let t=!1,n=0,r,i=Et(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new Nt(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>Ye.isFocused()&&(e.networkMode===`always`||At.isOnline())&&e.canRun(),u=()=>Mt(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(Tt.isServer()?0:3),o=e.retryDelay??jt,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&nl()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var Ft=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),nt(this.gcTime)&&(this.#e=Ze.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Tt.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e&&=(Ze.clearTimeout(this.#e),void 0)}},It=class extends Ft{#e;#t;#n;#r;#i;#a;#o;constructor(e){super(),this.#o=!1,this.#a=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.client,this.#n=this.#r.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=zt(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#i?.promise}setOptions(e){if(this.options={...this.#a,...e},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=zt(this.options);e.data!==void 0&&(this.setState(Rt(e.data,e.dataUpdatedAt)),this.#e=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#n.remove(this)}setData(e,t){let n=vt(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e,t){this.#c({type:`setState`,state:e,setStateOptions:t})}cancel(e){let t=this.#i?.promise;return this.#i?.cancel(e),t?t.then(et).catch(et):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#e}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>at(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===xt||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>it(e.options.staleTime,this)===`static`):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!rt(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#i&&(this.#o||this.#s()?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#n.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#s(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#i?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(this.#o=!0,n.signal)})},i=()=>{let e=St(this.options,t),n=(()=>{let e={client:this.#r,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#o=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:i};return r(e),e})();this.options.behavior?.onFetch(a,this),this.#t=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta}),this.#i=Pt({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof Nt&&e.revert&&this.setState({...this.#t,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#i.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#n.config.onSuccess?.(e,this),this.#n.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof Nt){if(e.silent)return this.#i.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#n.config.onError?.(e,this),this.#n.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#c(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Lt(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...Rt(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#t=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}})(this.state),kt.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#n.notify({query:this,type:`updated`,action:e})})}};function Lt(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Mt(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function Rt(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function zt(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}function Bt(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{wt(e,()=>t.signal,()=>n=!0)},u=St(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject();if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?bt:yt;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?Ht:Vt,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:Vt(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function Vt(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ht(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var Ut=class extends Ft{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||Wt(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=Pt({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}})(this.state),kt.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function Wt(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Gt=class extends Je{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new Ut({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=Kt(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=Kt(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=Kt(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=Kt(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){kt.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>st(t,e))}findAll(e={}){return this.getAll().filter(t=>st(e,t))}notify(e){kt.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return kt.batch(()=>Promise.all(e.map(e=>e.continue().catch(et))))}};function Kt(e){return e.options.scope?.id}var qt=class extends Je{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??ct(r,t),a=this.get(i);return a||(a=new It({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){kt.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ot(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>ot(e,t)):t}notify(e){kt.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){kt.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){kt.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Jt=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new qt,this.#t=e.mutationCache||new Gt,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=Ye.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=At.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(it(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=tt(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return kt.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;kt.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return kt.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=kt.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(et).catch(et)}invalidateQueries(e,t={}){return kt.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=kt.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(et)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(et)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(it(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(et).catch(et)}fetchInfiniteQuery(e){return e.behavior=Bt(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(et).catch(et)}ensureInfiniteQueryData(e){return e.behavior=Bt(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return At.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(lt(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{ut(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(lt(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{ut(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=ct(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===xt&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},B=i(),Yt=R.createContext(void 0),Xt=e=>{let t=R.useContext(Yt);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},Zt=({client:e,children:t})=>(R.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,B.jsx)(Yt.Provider,{value:e,children:t})),Qt=(0,R.createContext)({live:!1});function $t(){return(0,R.useContext)(Qt)}function en(e){let t=(0,z.c)(5),{children:n}=e,[r]=p(`features`,l),i;t[0]===r?i=t[1]:(i=()=>({live:new Set((r??``).split(`,`).map(tn).filter(Boolean)).has(`live`)}),t[0]=r,t[1]=i);let[a]=(0,R.useState)(i),o;return t[2]!==n||t[3]!==a?(o=(0,B.jsx)(Qt.Provider,{value:a,children:n}),t[2]=n,t[3]=a,t[4]=o):o=t[4],o}function tn(e){return e.trim().toLowerCase()}function nn(e){return S({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z`},child:[]}]})(e)}function rn(e){return S({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z`},child:[]}]})(e)}function an(e){return S({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z`},child:[]}]})(e)}function on(e){return S({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z`},child:[]}]})(e)}function sn(e){return S({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z`},child:[]}]})(e)}function cn(e){return S({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z`},child:[]}]})(e)}function ln(e){return S({tag:`svg`,attr:{viewBox:`0 0 576 512`},child:[{tag:`path`,attr:{d:`M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z`},child:[]}]})(e)}function un(e){return S({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z`},child:[]}]})(e)}function dn(e){return S({tag:`svg`,attr:{viewBox:`0 0 288 512`},child:[{tag:`path`,attr:{d:`M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z`},child:[]}]})(e)}function fn(e){return S({tag:`svg`,attr:{viewBox:`0 0 320 512`},child:[{tag:`path`,attr:{d:`M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z`},child:[]}]})(e)}function pn(e){return S({tag:`svg`,attr:{viewBox:`0 0 320 512`},child:[{tag:`path`,attr:{d:`M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z`},child:[]}]})(e)}var mn={Button:`_Button_1u47f_2`,Icon:`_Icon_1u47f_79`,ButtonLabel:`_ButtonLabel_1u47f_82`,ButtonHint:`_ButtonHint_1u47f_86`,ButtonGroup:`_ButtonGroup_1u47f_91`,DestructiveActionButton:`_DestructiveActionButton_1u47f_135 _Button_1u47f_2`},hn={Button:`_Button_1xmvi_1 _Button_1u47f_2`,ClipboardIcon:`_ClipboardIcon_1xmvi_10`,showClipboardCheck:`_showClipboardCheck_1xmvi_1`,PinIcon:`_PinIcon_1xmvi_20`};function gn({position:e,quaternion:t}){let n=e=>parseFloat(e.toFixed(3));return`#c${`${n(e.x)},${n(e.y)},${n(e.z)}`}~${`${n(t.x)},${n(t.y)},${n(t.z)},${n(t.w)}`}`}function _n(e){let t=(0,z.c)(12),{cameraRef:n,missionName:r,missionType:i,disabled:a}=e,{fogEnabled:o}=c(),[s,l]=(0,R.useState)(!1),u=(0,R.useRef)(null),d;t[0]!==n||t[1]!==o||t[2]!==r||t[3]!==i?(d=async()=>{u.current&&clearTimeout(u.current);let e=n.current;if(!e)return;let t=gn(e),a=new URLSearchParams;a.set(`mission`,`${r}~${i}`),a.set(`fog`,o.toString());let s=`${window.location.pathname}?${a}${t}`,c=`${window.location.origin}${s}`;window.history.replaceState(null,``,s);try{await navigator.clipboard.writeText(c),l(!0),u.current=setTimeout(()=>{l(!1)},1100)}catch(e){console.error(e)}},t[0]=n,t[1]=o,t[2]=r,t[3]=i,t[4]=d):d=t[4];let f=d,p=s?`true`:`false`,m,h,g;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,B.jsx)(dn,{className:hn.PinIcon}),h=(0,B.jsx)(rn,{className:hn.ClipboardIcon}),g=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:` Link to coordinates`}),t[5]=m,t[6]=h,t[7]=g):(m=t[5],h=t[6],g=t[7]);let _;return t[8]!==a||t[9]!==f||t[10]!==p?(_=(0,B.jsxs)(`button`,{type:`button`,className:hn.Button,"aria-label":`Link to coordinates`,title:`Copy the current coordinates to URL`,onClick:f,disabled:a,"data-copied":p,id:`copyCoordinatesButton`,children:[m,h,g]}),t[8]=a,t[9]=f,t[10]=p,t[11]=_):_=t[11],_}function vn(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{fill:`none`,d:`M0 0h24v24H0V0z`},child:[]},{tag:`path`,attr:{d:`M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12zm-5-6-7 4V7z`},child:[]}]})(e)}function yn(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{fill:`none`,d:`M0 0h24v24H0z`},child:[]},{tag:`path`,attr:{d:`m18.89 14.75-4.09-2.04c-.28-.14-.58-.21-.89-.21H13v-6c0-.83-.67-1.5-1.5-1.5S10 5.67 10 6.5v10.74l-3.25-.74a.99.99 0 0 0-.92.28l-.83.84 4.54 4.79c.38.38 1.14.59 1.67.59h6.16c1 0 1.84-.73 1.98-1.72l.63-4.46c.12-.85-.32-1.68-1.09-2.07z`},child:[]},{tag:`path`,attr:{d:`M20.13 3.87C18.69 2.17 15.6 1 12 1S5.31 2.17 3.87 3.87L2 2v5h5L4.93 4.93c1-1.29 3.7-2.43 7.07-2.43s6.07 1.14 7.07 2.43L17 7h5V2l-1.87 1.87z`},child:[]}]})(e)}var bn=j(e=>({events:null,scanProgress:null,setEvents(t){e({events:t})},setScanProgress(t){e({scanProgress:t})},reset(){e({events:null,scanProgress:null})}}));function xn(e,t){return M(bn,e,t)}var Sn=A(`relayClient`),Cn=class{ws=null;handlers;url;_connected=!1;wsPingInterval=null;smoothedWsPing=0;constructor(e,t){this.url=e,this.handlers=t}get connected(){return this._connected}connect(){this.ws=new WebSocket(this.url),this.ws.binaryType=`arraybuffer`,this.ws.onopen=()=>{Sn.info(`WebSocket connected to %s`,this.url),this._connected=!0,this.startWsPing(),this.handlers.onOpen?.()},this.ws.onmessage=e=>{if(e.data instanceof ArrayBuffer)this.handlers.onGamePacket?.(new Uint8Array(e.data));else try{let t=JSON.parse(e.data);this.handleMessage(t)}catch(e){Sn.error(`Failed to parse relay message: %o`,e)}},this.ws.onclose=()=>{Sn.info(`WebSocket disconnected`),this._connected=!1,this.stopWsPing(),this.handlers.onClose?.()},this.ws.onerror=()=>{Sn.error(`WebSocket error`),this.handlers.onError?.(`WebSocket connection error`)}}handleMessage(e){switch(e.type){case`serverList`:this.handlers.onServerList?.(e.servers);break;case`status`:this.handlers.onStatus?.(e.status,e.message,e.connectSequence,e.mapName);break;case`ping`:this.handlers.onPing?.(e.ms);break;case`wsPong`:{let t=Date.now()-e.ts;this.smoothedWsPing=this.smoothedWsPing===0?t:this.smoothedWsPing*.5+t*.5,this.handlers.onWsPing?.(Math.round(this.smoothedWsPing));break}case`error`:this.handlers.onError?.(e.message);break}}listServers(){this.send({type:`listServers`})}sendWsPing(){this.send({type:`wsPing`,ts:Date.now()})}joinServer(e,t){Sn.info(`Joining server: %s`,e),this.send({type:`joinServer`,address:e,warriorName:t})}sendAuthEvent(e,t){this.send({type:`sendCommand`,command:e,args:t})}sendCommand(e,t){this.send({type:`sendCommand`,command:e,args:t})}sendCRCResponse(e,t,n){this.send({type:`sendCRCResponse`,crcValue:e,field1:t,field2:n})}sendCRCCompute(e,t,n,r){this.send({type:`sendCRCCompute`,seed:e,field2:t,includeTextures:r,datablocks:n})}sendGhostAck(e,t){this.send({type:`sendGhostAck`,sequence:e,ghostCount:t})}sendMoves(e,t){this.send({type:`sendMoves`,moves:e,moveStartIndex:t})}close(){this.stopWsPing(),this.ws&&=(this.ws.close(),null),this._connected=!1}startWsPing(){this.smoothedWsPing=0,this.send({type:`wsPing`,ts:Date.now()}),this.wsPingInterval=setInterval(()=>{this.send({type:`wsPing`,ts:Date.now()})},7e3)}stopWsPing(){this.wsPingInterval!=null&&(clearInterval(this.wsPingInterval),this.wsPingInterval=null)}send(e){this.ws?.readyState===WebSocket.OPEN?this.ws.send(JSON.stringify(e)):Sn.warn(`send dropped (ws not open): %s`,e.type)}},wn=256,Tn=wn/2,En=2048,Dn=null;function On(e){Dn=e}function kn(e,t){return Dn?Dn(e,t):null}function An(e,t){return(n,r)=>{let i=n/t+Tn,a=r/t+Tn,o=Math.max(0,Math.min(wn-1,i)),s=Math.max(0,Math.min(wn-1,a)),c=Math.floor(o),l=Math.floor(s),u=Math.min(c+1,wn-1),d=Math.min(l+1,wn-1),f=o-c,p=s-l,m=e[l*wn+c],h=e[l*wn+u],g=e[d*wn+c],_=e[d*wn+u],v=m*(1-f)+h*f,y=g*(1-f)+_*f;return(v*(1-p)+y*p)/65535*En}}var jn=A(`StreamEngine`),Mn=class{registry;ghostTracker;entities=new Map;entityIdByGhostIndex=new Map;tickCount=0;camera=null;chatMessages=[];chatMessageIdCounter=0;_chatGen=0;_chatSnapshotGen=-1;_chatSnapshot=[];audioEvents=[];netStrings=new Map;targetNames=new Map;targetTeams=new Map;targetRenderFlags=new Map;pendingNameTags=new Map;sensorGroupColors=new Map;playerSensorGroup=0;lastStatus={health:1,energy:1};latestControl={ghostIndex:-1};controlPlayerGhostId;lastControlType=`camera`;isPiloting=!1;lastPilotGhostIndex;lastVehicleHeading=0;lastVehiclePitch=0;lastVehicleOrbitDir;lastVehicleVelocity;lastVehiclePosTime=0;lastVehiclePos;firstPerson=!0;lastCameraMode;lastOrbitGhostIndex;lastOrbitDistance;latestFov=90;weaponsHud={slots:new Map,activeIndex:-1};backpackHud={packIndex:-1,active:!1,text:``};inventoryHud={slots:new Map,activeSlot:-1};teamScores=[];playerRoster=new Map;clockAnchorStreamSec=null;clockDurationMs=0;missionDisplayName=null;missionTypeDisplayName=null;gameClassName=null;serverDisplayName=null;connectedPlayerName=null;connectedClientId=null;onMissionInfoChange;nextExplosionId=0;resolveGhostClassName(e,t){if(typeof t==`number`){let e=this.registry.getGhostParser(t)?.name;if(e)return e}let n=this.entityIdByGhostIndex.get(e);if(n){let e=this.entities.get(n);if(e?.className)return e.className}let r=this.ghostTracker.getGhost(e);if(r?.className)return r.className}resolveEntityIdForGhostIndex(e){let t=this.entityIdByGhostIndex.get(e);if(t)return t;let n=this.ghostTracker.getGhost(e);if(n)return ne(n.className,e)}resetSharedState(){this.entities.clear(),this.entityIdByGhostIndex.clear(),this.tickCount=0,this.camera=null,this.chatMessages=[],this.chatMessageIdCounter=0,this._chatGen=0,this._chatSnapshotGen=-1,this._chatSnapshot=[],this.audioEvents=[],this.netStrings.clear(),this.targetNames.clear(),this.targetTeams.clear(),this.targetRenderFlags.clear(),this.sensorGroupColors.clear(),this.playerSensorGroup=0,this.lastStatus={health:1,energy:1},this.latestControl={ghostIndex:-1},this.controlPlayerGhostId=void 0,this.lastControlType=`camera`,this.isPiloting=!1,this.lastPilotGhostIndex=void 0,this.lastVehicleHeading=0,this.lastVehiclePitch=0,this.lastVehicleOrbitDir=void 0,this.lastVehicleVelocity=void 0,this.lastVehiclePosTime=0,this.lastVehiclePos=void 0,this.firstPerson=!0,this.lastCameraMode=void 0,this.lastOrbitGhostIndex=void 0,this.lastOrbitDistance=void 0,this.latestFov=90,this.weaponsHud={slots:new Map,activeIndex:-1},this.backpackHud={packIndex:-1,active:!1,text:``},this.inventoryHud={slots:new Map,activeSlot:-1},this.teamScores=[],this.playerRoster.clear(),this.clockAnchorStreamSec=null,this.clockDurationMs=0,this.nextExplosionId=0,this.missionDisplayName=null,this.missionTypeDisplayName=null,this.gameClassName=null,this.serverDisplayName=null}resolveNetString(e){if(e.length>=2&&e.charCodeAt(0)===1){let t=parseInt(e.slice(1),10);if(Number.isFinite(t))return this.netStrings.get(t)??e}return e}formatRemoteArgs(e,t){let n=this.resolveNetString(e);for(let e=0;e0&&(this.playerSensorGroup=t.sensorGroup)}if(t){let e=oe(t);if(e&&(this.lastControlType=e),this.lastControlType===`player`)this.isPiloting=!!(t.pilot||t.controlObjectGhost!=null),this.isPiloting&&typeof t.controlObjectGhost==`number`?this.lastPilotGhostIndex=t.controlObjectGhost:this.isPiloting||(this.lastPilotGhostIndex=void 0,this.lastVehicleHeading=0,this.lastVehiclePitch=0,this.lastVehicleOrbitDir=void 0,this.lastVehicleVelocity=void 0,this.lastVehiclePosTime=0,this.lastVehiclePos=void 0);else if(this.isPiloting=!1,typeof t.cameraMode==`number`)if(this.lastCameraMode=t.cameraMode,t.cameraMode===3){typeof t.orbitObjectGhostIndex==`number`&&(this.lastOrbitGhostIndex=t.orbitObjectGhostIndex);let e=t.minOrbitDist,n=t.maxOrbitDist,r=t.curOrbitDist;typeof e==`number`&&typeof n==`number`&&Number.isFinite(e)&&Number.isFinite(n)?this.lastOrbitDistance=Math.max(0,n-e):typeof r==`number`&&Number.isFinite(r)&&(this.lastOrbitDistance=Math.max(0,r))}else this.lastOrbitGhostIndex=void 0,this.lastOrbitDistance=void 0}e.cameraFov!==void 0&&(this.latestFov=e.cameraFov)}processEvent(e,t){let n=e.parsedData;if(!n)return;let r=n.type;if(r===`GhostAlwaysObjectEvent`){let e=n.ghostIndex,t=n.classId,r=n.objectData,i=n._hasObjectData,a=typeof t==`number`?this.registry.getGhostParser(t)?.name??`classId=${t}`:`?`;jn.debug(`GhostAlwaysObjectEvent: ghost=%d class=%s hasData=%s %s`,e,a,i,r?`keys=[${Object.keys(r).join(`,`)}]`:`(no data)`),e!=null&&t!=null&&this.processGhostUpdate({index:e,type:`create`,classId:t,parsedData:r});return}if(r===`NetStringEvent`||t===`NetStringEvent`){let e=n.id,t=n.value;if(e!=null&&typeof t==`string`){this.netStrings.set(e,t);let n=this.pendingNameTags.get(e);if(n!=null){this.pendingNameTags.delete(e);let r=I(t).trim();this.targetNames.set(n,r);for(let e of this.entities.values())e.targetId===n&&(e.playerName=r)}}return}if(r===`TargetInfoEvent`||t===`TargetInfoEvent`){let e=n.targetId,t=n.nameTag;if(e!=null&&t!=null){let n=this.netStrings.get(t);n?this.targetNames.set(e,I(n).trim()):this.pendingNameTags.set(t,e)}let r=n.sensorGroup;e!=null&&r!=null&&this.targetTeams.set(e,r);let i=n.renderFlags;if(e!=null&&i!=null&&this.targetRenderFlags.set(e,i),e!=null){let t=this.targetNames.get(e),n=this.targetTeams.get(e),r=this.targetRenderFlags.get(e);for(let i of this.entities.values())i.targetId===e&&(t&&(i.playerName=t),n!=null&&(i.sensorGroup=n),r!=null&&(i.targetRenderFlags=r))}return}if(r===`SetSensorGroupEvent`||t===`SetSensorGroupEvent`){let e=n.sensorGroup;e!=null&&(this.playerSensorGroup=e);return}if(r===`SensorGroupColorEvent`||t===`SensorGroupColorEvent`){let e=n.sensorGroup,t=n.colors;if(t){let n=this.sensorGroupColors.get(e);n||(n=new Map,this.sensorGroupColors.set(e,n));for(let e of t)e.default?n.delete(e.index):n.set(e.index,{r:e.r??0,g:e.g??0,b:e.b??0})}return}if(r===`RemoteCommandEvent`||t===`RemoteCommandEvent`){let e=this.resolveNetString(n.funcName),t=n.args,r=this.getTimeSec();if(e===`ChatMessage`&&t.length>=4){let e=de(this.resolveNetString(t[3])),n=t[4]?I(this.resolveNetString(t[4])):``,i=this.formatRemoteArgs(t[3],t.slice(4));if(i){let a=i.indexOf(`: `),{text:o,wavPath:s}=he(a>=0?i.slice(a+2):i),c,l;if(s){let e=this.resolveNetString(t[1]);c=e?`voice/${e}/${s}.wav`:s;let n=this.resolveNetString(t[2]);if(n){let e=parseFloat(n);Number.isFinite(e)&&(l=Math.max(.5,Math.min(2,e)))}}let u=e??0;this.pushChatMessage({timeSec:r,sender:n,text:o,kind:`chat`,colorCode:u,segments:[{text:n?`${n}: ${o}`:o,colorCode:u}],soundPath:c,soundPitch:l})}}else if(e===`CannedChatMessage`&&t.length>=6){let e=de(this.resolveNetString(t[1])),n=I(this.resolveNetString(t[2])),i=I(this.resolveNetString(t[4])),a=this.formatRemoteArgs(t[1],t.slice(2));if(a){let{wavPath:o}=he(a),s=he(I(this.resolveNetString(t[3]))).text,c,l;if(o){let e=this.resolveNetString(t[5]);if(c=e?`voice/${e}/${o}.wav`:o,t[6]){let e=parseFloat(this.resolveNetString(t[6]));Number.isFinite(e)&&(l=Math.max(.5,Math.min(2,e)))}}let u=e??0,d=[];i&&d.push({text:`[${i}] `,colorCode:0}),d.push({text:n?`${n}: ${s}`:s,colorCode:u}),this.pushChatMessage({timeSec:r,sender:n,text:s,kind:`chat`,colorCode:u,segments:d,soundPath:c,soundPitch:l})}}else if(e===`ServerMessage`&&t.length>=2){this.handleServerMessage(t);let e=de(this.resolveNetString(t[1])),n=this.formatRemoteArgs(t[1],t.slice(2));if(n){let{text:t,wavPath:i}=he(n),a=e??0;this.pushChatMessage({timeSec:r,sender:``,text:t,kind:`server`,colorCode:a,segments:[{text:t,colorCode:a}],soundPath:i??void 0})}}else this.handleHudRemoteCommand(e,t);return}if(r===`Sim3DAudioEvent`||r===`Sim2DAudioEvent`||t===`Sim3DAudioEvent`||t===`Sim2DAudioEvent`){let e=n.profileId;if(typeof e==`number`){let i=this.getTimeSec(),a=r===`Sim3DAudioEvent`||t===`Sim3DAudioEvent`?n.position:void 0;this.audioEvents.push({profileId:e,position:a,timeSec:i}),this.audioEvents.length>100&&this.audioEvents.splice(0,this.audioEvents.length-100)}}}processGhostUpdate(e){let t=e.index,n=this.entityIdByGhostIndex.get(t);if(n){let t=this.entities.get(n);t&&t.type===`Projectile`&&!t.hasExploded&&t.explosionDataBlockId!=null&&t.position&&(e.type===`delete`||e.type===`create`)&&this.spawnExplosion(t,[...t.position])}if(e.type===`delete`){n&&(this.removeSoundSlotEntities(n),this.entities.delete(n),this.entityIdByGhostIndex.delete(t));return}let r=this.resolveGhostClassName(t,e.classId);if(!r){if(e.type===`create`)throw Error(`No ghost parser for classId ${e.classId} (ghost index ${t})`);return}let i=ne(r,t);n&&n!==i&&(this.removeSoundSlotEntities(n),this.entities.delete(n));let a,o=this.entities.get(i);if(o&&e.type===`create`?(this.removeSoundSlotEntities(i),o.spawnTick=this.tickCount,this.resetEntity(o),a=o):o?a=o:(a={id:i,ghostIndex:t,className:r,spawnTick:this.tickCount,type:F(r),rotation:[0,0,0,1]},this.entities.set(i,a)),a.ghostIndex=t,a.className=r,a.type=F(r),this.entityIdByGhostIndex.set(t,i),this.applyGhostData(a,e.parsedData),e.type===`create`&&e.parsedData){let n=De(r,t,e.parsedData);n&&(a.sceneData=n)}}resetEntity(e){e.rotation=[0,0,0,1],e.hasExploded=void 0,e.explosionShape=void 0,e.explosionLifetimeTicks=void 0,e.faceViewer=void 0,e.simulatedVelocity=void 0,e.projectilePhysics=void 0,e.gravityMod=void 0,e.direction=void 0,e.velocity=void 0,e.position=void 0,e.dataBlock=void 0,e.dataBlockId=void 0,e.shapeHint=void 0,e.visual=void 0,e.targetId=void 0,e.targetRenderFlags=void 0,e.carryingFlag=void 0,e.sensorGroup=void 0,e.playerName=void 0,e.weaponShape=void 0,e.packShape=void 0,e.falling=void 0,e.jetting=void 0,e.weaponImageState=void 0,e.weaponImageStates=void 0,e.weaponImageStatesDbId=void 0,e.itemPhysics=void 0,e.threads=void 0,e.headPitch=void 0,e.headYaw=void 0,e.health=void 0,e.energy=void 0,e.maxEnergy=void 0,e.damageState=void 0,e.actionAnim=void 0,e.actionAtEnd=void 0,e.explosionDataBlockId=void 0,e.maintainEmitterId=void 0}applyGhostData(e,t){if(!t)return;let n=t,r=n.dataBlockId;if(r!=null){e.dataBlockId=r;let t=this.getDataBlockData(r),i=me(e.className,t);if(e.visual=le(e.className,t)??ue(e.className,t),typeof i==`string`&&(e.shapeHint=i,e.dataBlock=i),e.type===`Player`&&typeof t?.maxEnergy==`number`&&(e.maxEnergy=t.maxEnergy),e.type===`Projectile`&&(ae.has(e.className)?e.projectilePhysics=`linear`:Se.has(e.className)?(e.projectilePhysics=`ballistic`,e.gravityMod=ve(t,[`gravityMod`])??1):re.has(e.className)&&(e.projectilePhysics=`seeker`)),e.type===`Projectile`&&e.explosionDataBlockId==null){let t=this.resolveExplosionInfo(r);t&&(e.explosionShape=t.shape,e.faceViewer=t.faceViewer,e.explosionLifetimeTicks=t.lifetimeTicks,e.explosionDataBlockId=t.explosionDataBlockId)}if(e.type===`Projectile`&&e.maintainEmitterId==null){let n=t?.baseEmitter;typeof n==`number`&&n>0&&(e.maintainEmitterId=n)}if(e.className===`ForceFieldBare`&&t){let r=t.color1,i=[];for(let e=0;e<5;e++){let n=t[`texture${e}`];n&&i.push(n)}let a=n.scale;e.forceFieldData={textures:i,color:r?[r.r,r.g,r.b]:[1,1,1],baseTranslucency:t.baseTranslucency??1,dimensions:a?[a.y,a.z,a.x]:[1,1,1],framesPerSec:t.framesPerSec??1,scrollSpeed:t.scrollSpeed??0,umapping:t.umapping??1,vmapping:t.vmapping??1}}}if(e.type===`Player`){let t=n.images;if(Array.isArray(t)&&t.length>0){let n=t.find(e=>e.index===0);if(n?.dataBlockId&&n.dataBlockId>0){let t=this.getDataBlockData(n.dataBlockId),r=me(`ShapeBaseImageData`,t);if(r){let n=t?.mountPoint;(n==null||n<=0)&&!/pack_/i.test(r)&&(e.weaponShape=r)}let i=e.weaponImageState;e.weaponImageState={dataBlockId:n.dataBlockId,triggerDown:n.triggerDown??i?.triggerDown??!1,ammo:n.ammo??i?.ammo??!0,loaded:n.loaded??i?.loaded??!0,target:n.target??i?.target??!1,wet:n.wet??i?.wet??!1,fireCount:n.fireCount??i?.fireCount??0},t&&e.weaponImageStatesDbId!==n.dataBlockId&&(e.weaponImageStates=ce(t),e.weaponImageStatesDbId=n.dataBlockId)}else n&&!n.dataBlockId&&(e.weaponShape=void 0,e.weaponImageState=void 0,e.weaponImageStates=void 0);let r=t.find(e=>e.index===2);if(r?.dataBlockId&&r.dataBlockId>0){let t=me(`ShapeBaseImageData`,this.getDataBlockData(r.dataBlockId));t&&(e.packShape=t)}else r&&!r.dataBlockId&&(e.packShape=void 0);let i=t.find(e=>e.index===3);if(i?.dataBlockId&&i.dataBlockId>0){e.carryingFlag=!0;let t=me(`ShapeBaseImageData`,this.getDataBlockData(i.dataBlockId));if(t&&(e.flagShape=t),e.targetId!=null&&e.targetId>=0){let t=this.targetRenderFlags.get(e.targetId)??0,n=t|2;n!==t&&(this.targetRenderFlags.set(e.targetId,n),e.targetRenderFlags=n)}}else if(i&&!i.dataBlockId&&(e.carryingFlag=!1,e.flagShape=void 0,e.targetId!=null&&e.targetId>=0)){let t=this.targetRenderFlags.get(e.targetId)??0,n=t&-3;n!==t&&(this.targetRenderFlags.set(e.targetId,n),e.targetRenderFlags=n)}}}let i=pe(n.position)?n.position:pe(n.initialPosition)?n.initialPosition:pe(n.explodePosition)?n.explodePosition:pe(n.endPoint)?n.endPoint:pe(n.transform?.position)?n.transform.position:void 0;i&&(e.position=[i.x,i.y,i.z],this.updateSoundSlotPositions(e));let a=be(n.direction)?n.direction:void 0;if(a&&(e.direction=[a.x,a.y,a.z]),e.type===`Player`&&typeof n.rotationZ==`number`&&(e.rotation=ge(n.rotationZ)),e.type===`Player`&&(typeof n.headX==`number`&&(e.headPitch=n.headX),typeof n.headZ==`number`&&(e.headYaw=n.headZ)),se(n.angPosition)){let t=L(n.angPosition);t&&(e.rotation=t)}else if(se(n.transform?.rotation)){let t=L(n.transform.rotation);t&&(e.rotation=t)}else if(e.type===`Item`&&typeof n.rotation?.angle==`number`){let t=n.rotation;e.rotation=ge((t.zSign??1)*t.angle)}else if(e.type===`Projectile`){let t=n.velocity??n.direction??(pe(n.initialPosition)&&pe(n.endPos)?{x:n.endPos.x-n.initialPosition.x,y:n.endPos.y-n.initialPosition.y,z:n.endPos.z-n.initialPosition.z}:void 0);be(t)&&(t.x!==0||t.y!==0)&&(e.rotation=ge(Math.atan2(t.x,t.y)))}if(be(n.velocity)&&(e.velocity=[n.velocity.x,n.velocity.y,n.velocity.z],e.direction||=[n.velocity.x,n.velocity.y,n.velocity.z]),typeof n.moveFlag0==`boolean`&&(e.falling=n.moveFlag0),typeof n.moveFlag1==`boolean`&&(e.jetting=n.moveFlag1),e.type===`Item`){let t=n.atRest;if(t===!1&&be(n.velocity)){let t=n.velocity;e.itemPhysics={velocity:[t.x,t.y,t.z],atRest:!1},jn.debug(`Item %s (%s): atRest=false pos=%s vel=%s`,e.id,e.shapeHint??e.dataBlock??`db#${e.dataBlockId}`,n.position?`${n.position.x.toFixed(1)},${n.position.y.toFixed(1)},${n.position.z.toFixed(1)}`:`none`,`${t.x.toFixed(1)},${t.y.toFixed(1)},${t.z.toFixed(1)}`)}else t===!0&&(jn.debug(`Item %s (%s): atRest=true pos=%s`,e.id,e.shapeHint??e.dataBlock??`db#${e.dataBlockId}`,e.position?`${e.position[0].toFixed(1)},${e.position[1].toFixed(1)},${e.position[2].toFixed(1)}`:`none`),e.itemPhysics=void 0)}if(e.projectilePhysics){if(e.projectilePhysics===`linear`){let t=ve(e.dataBlockId==null?void 0:this.getDataBlockData(e.dataBlockId),[`dryVelocity`,`muzzleVelocity`,`bulletVelocity`])??80,r=e.direction??[0,1,0],i=r[0]*t,a=r[1]*t,o=r[2]*t,s=n.excessVel,c=n.excessDir;typeof s==`number`&&s>0&&be(c)&&(i+=c.x*s,a+=c.y*s,o+=c.z*s),e.simulatedVelocity=[i,a,o]}else be(n.velocity)&&(e.simulatedVelocity=[n.velocity.x,n.velocity.y,n.velocity.z]);let t=n.currTick;if(typeof t==`number`&&t>0&&e.simulatedVelocity&&e.position){let n=32/1e3*t,r=e.simulatedVelocity;if(e.position[0]+=r[0]*n,e.position[1]+=r[1]*n,e.position[2]+=r[2]*n,e.projectilePhysics===`ballistic`){let t=-9.81*(e.gravityMod??1);e.position[2]+=.5*t*n*n,r[2]+=t*n}}}let o=pe(n.explodePosition)?n.explodePosition:pe(n.explodePoint)?n.explodePoint:void 0;if(e.type===`Projectile`&&!e.hasExploded&&o&&e.explosionDataBlockId!=null&&this.spawnExplosion(e,[o.x,o.y,o.z]),typeof n.damageLevel==`number`&&(e.health=_e(1-n.damageLevel,0,1)),typeof n.damageState==`number`&&(e.damageState=n.damageState),typeof n.action==`number`&&(e.actionAnim=n.action,e.actionAtEnd=!!n.actionAtEnd),Array.isArray(n.threads)){let t=n.threads;if(e.threads){let n=[...e.threads];for(let e of t){let t=n.findIndex(t=>t.index===e.index);t>=0?n[t]=e:n.push(e)}e.threads=n}else e.threads=t}if(typeof n.energy==`number`&&(e.energy=_e(n.energy,0,1)),typeof n.targetId==`number`){e.targetId=n.targetId;let t=this.targetNames.get(n.targetId);t&&(e.playerName=t);let r=this.targetTeams.get(n.targetId);r!=null&&(e.sensorGroup=r,e.ghostIndex===this.latestControl.ghostIndex&&this.lastControlType===`player`&&(this.playerSensorGroup=r));let i=this.targetRenderFlags.get(n.targetId);i!=null&&(e.targetRenderFlags=i)}let s=n.sounds;Array.isArray(s)&&this.syncSoundSlotEntities(e,s),e.className===`WayPoint`&&typeof n.name==`string`&&(e.label=n.name),e.className===`AudioEmitter`&&(typeof n.filename==`string`&&(e.audioFileName=n.filename),typeof n.volume==`number`&&(e.audioVolume=n.volume),typeof n.is3D==`boolean`&&(e.audioIs3D=n.is3D),typeof n.isLooping==`boolean`&&(e.audioIsLooping=n.isLooping),typeof n.minDistance==`number`&&(e.audioMinDistance=n.minDistance),typeof n.maxDistance==`number`&&(e.audioMaxDistance=n.maxDistance),typeof n.minLoopGap==`number`&&(e.audioMinLoopGap=n.minLoopGap),typeof n.maxLoopGap==`number`&&(e.audioMaxLoopGap=n.maxLoopGap))}syncSoundSlotEntities(e,t){for(let n of t){let t=`${e.id}:sound:${n.index}`;if(n.playing&&typeof n.profileId==`number`){let r=this.getDataBlockData(n.profileId),i=r?.filename;if(!i)continue;let a=i.endsWith(`.wav`)?i:`${i}.wav`,o=r.description,s=o==null?void 0:this.getDataBlockData(o),c=this.entities.get(t);c?c.position=e.position:this.entities.set(t,{id:t,ghostIndex:e.ghostIndex,className:`AudioEmitter`,type:`AudioEmitter`,spawnTick:this.tickCount,position:e.position,rotation:[0,0,0,1],audioFileName:a,audioVolume:s?.volume??1,audioIs3D:s?.is3D??!0,audioIsLooping:s?.isLooping??!1,audioMinDistance:s?.referenceDistance??20,audioMaxDistance:s?.maxDistance??100,audioMinLoopGap:s?.minLoopGap??0,audioMaxLoopGap:s?.maxLoopGap??0})}else this.entities.delete(t)}}updateSoundSlotPositions(e){for(let t=0;t<4;t++){let n=this.entities.get(`${e.id}:sound:${t}`);n&&(n.position=e.position)}}removeSoundSlotEntities(e){for(let t=0;t<4;t++)this.entities.delete(`${e}:sound:${t}`)}resolveExplosionInfo(e){let t=this.getDataBlockData(e);if(!t)return;let n=t.explosion;if(n==null)return;let r=this.getDataBlockData(n);if(!r)return;let i=r.dtsFileName||void 0,a=r.lifetimeMS??31;return{shape:i,faceViewer:r.faceViewer!==!1&&r.faceViewer!==0,lifetimeTicks:a,explosionDataBlockId:n}}spawnExplosion(e,t){e.hasExploded=!0;let n=e.explosionLifetimeTicks??31,r=`fx_${this.nextExplosionId++}`,i={id:r,ghostIndex:-1,className:`Explosion`,spawnTick:this.tickCount,type:`Explosion`,dataBlock:e.explosionShape,explosionDataBlockId:e.explosionDataBlockId,position:t,rotation:[0,0,0,1],isExplosion:!0,faceViewer:e.faceViewer!==!1,expiryTick:this.tickCount+n};if(this.entities.set(r,i),e.explosionDataBlockId!=null){let n=this.getDataBlockData(e.explosionDataBlockId)?.subExplosions;if(Array.isArray(n))for(let e of n){if(e==null)continue;let n=this.getDataBlockData(e);if(!n)continue;let r=n.dtsFileName||void 0,i=n.lifetimeMS??31,a=n.offset??0,o=Math.random()*Math.PI*2,s=[t[0]+Math.cos(o)*a,t[1]+Math.sin(o)*a,t[2]],c=`fx_${this.nextExplosionId++}`,l={id:c,ghostIndex:-1,className:`Explosion`,spawnTick:this.tickCount,type:`Explosion`,dataBlock:r,explosionDataBlockId:e,position:s,rotation:[0,0,0,1],isExplosion:!0,faceViewer:n.faceViewer!==!1&&n.faceViewer!==0,expiryTick:this.tickCount+i};this.entities.set(c,l)}}e.position=void 0,e.simulatedVelocity=void 0}advanceProjectiles(){let e=32/1e3;for(let t of this.entities.values()){if(!t.simulatedVelocity||!t.position)continue;let n=t.simulatedVelocity,r=t.position;t.projectilePhysics===`ballistic`&&(n[2]+=-9.81*(t.gravityMod??1)*e),r[0]+=n[0]*e,r[1]+=n[1]*e,r[2]+=n[2]*e,(n[0]!==0||n[1]!==0)&&(t.rotation=ge(Math.atan2(n[0],n[1])))}}advanceItems(){let e=32/1e3;for(let t of this.entities.values()){let n=t.itemPhysics;if(!n||n.atRest||!t.position)continue;let r=n.velocity,i=t.position;r[2]+=-20*e,i[0]+=r[0]*e,i[1]+=r[1]*e,i[2]+=r[2]*e;let a=kn(i[0],i[1]);if(a!=null&&i[2]0){let e=Math.max(0,1-t/o);r[0]*=e,r[1]*=e}r[2]=e*.2,Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2])<.15&&(r[0]=r[1]=r[2]=0,n.atRest=!0)}i[2]<-1e3&&(n.atRest=!0)}}removeExpiredExplosions(){for(let[e,t]of this.entities)t.isExplosion&&t.expiryTick!=null&&this.tickCount>=t.expiryTick&&this.entities.delete(e)}updateCameraAndHud(){let e=this.latestControl,t=this.getTimeSec(),n=e.data,r=this.lastControlType;if(this.removeExpiredExplosions(),e.position){let{yaw:i,pitch:a}=this.getCameraYawPitch(n);if(this.isPiloting){if(n){let e=n.controlObjectData?.angPosition;if(e&&typeof e.w==`number`){this.lastVehicleHeading=xe(e),this.lastVehiclePitch=we(e);let t=L(e);if(t){let[e,n,r,i]=t,a=1-2*(n*n+r*r),o=2*(e*n+r*i),s=2*(e*r-n*i);this.lastVehicleOrbitDir=[-a,-o,-s]}}}i=this.lastVehicleHeading,a=this.lastVehiclePitch}if(this.camera={time:t,position:[e.position.x,e.position.y,e.position.z],rotation:Ce(i,_e(a,-ye,ye)),fov:this.latestFov,mode:`observer`,yaw:i,pitch:a},r===`camera`)if((typeof n?.cameraMode==`number`?n.cameraMode:this.lastCameraMode)===3){this.camera.mode=`third-person`,typeof this.lastOrbitDistance==`number`&&(this.camera.orbitDistance=this.lastOrbitDistance);let e=typeof n?.orbitObjectGhostIndex==`number`?n.orbitObjectGhostIndex:this.lastOrbitGhostIndex;typeof e==`number`&&e>=0&&(this.camera.orbitTargetId=this.resolveEntityIdForGhostIndex(e))}else this.camera.mode=`observer`;else e.ghostIndex>=0&&(this.controlPlayerGhostId=this.resolveEntityIdForGhostIndex(e.ghostIndex)),this.firstPerson?this.camera.mode=`first-person`:(this.camera.mode=`third-person`,this.isPiloting&&this.lastPilotGhostIndex!=null?(this.camera.orbitTargetId=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex),this.camera.orbitDistance=15,this.lastVehicleOrbitDir&&(this.camera.orbitDirection=this.lastVehicleOrbitDir)):(this.camera.orbitTargetId=this.controlPlayerGhostId,this.camera.orbitDistance=3)),this.controlPlayerGhostId&&(this.camera.controlEntityId=this.controlPlayerGhostId);if(r===`player`&&e.position){if(this.isPiloting&&this.lastPilotGhostIndex!=null){let r=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex),i=r?this.entities.get(r):void 0;if(i){let r=n?.controlObjectData;if(r){i.position=[e.position.x,e.position.y,e.position.z],this.lastVehiclePos=i.position.slice(),this.lastVehiclePosTime=t;let n=r.linMomentum;if(n&&pe(n)){let e=i.dataBlockId,t=(e==null?void 0:this.getDataBlockData(e))?.mass??200,r=t>0?1/t:1/200;this.lastVehicleVelocity=[n.x*r,n.y*r,n.z*r],i.velocity=this.lastVehicleVelocity}let a=r.angPosition;if(a&&typeof a.w==`number`){let e=L(a);e&&(i.rotation=e)}}else if(this.lastVehiclePos&&this.lastVehicleVelocity&&this.lastVehiclePosTime>0){let e=t-this.lastVehiclePosTime;if(e>0&&e<1){let[t,n,r]=this.lastVehicleVelocity;i.position=[this.lastVehiclePos[0]+t*e,this.lastVehiclePos[1]+n*e,this.lastVehiclePos[2]+r*e]}}}}else if(this.controlPlayerGhostId){let t=this.entities.get(this.controlPlayerGhostId);if(t){t.position=[e.position.x,e.position.y,e.position.z],t.rotation=ge(i),t.headPitch=this.getControlPlayerHeadPitch(a);let r=n?.velocity;be(r)&&(t.velocity=[r.x,r.y,r.z])}}}}else this.camera&&={...this.camera,time:t,fov:this.latestFov};let i={health:1,energy:1};if(this.camera?.mode===`first-person`){let e=this.controlPlayerGhostId,t=e?this.entities.get(e):void 0;i.health=t?.health??1;let r=n?.energyLevel;if(typeof r==`number`){let e=t?.maxEnergy??60;e>0&&(i.energy=_e(r/e,0,1))}else i.energy=t?.energy??1}else if(this.camera?.mode===`third-person`&&this.camera.orbitTargetId){let e=this.entities.get(this.camera.orbitTargetId);i.health=e?.health??1,i.energy=e?.energy??1}this.lastStatus=i}getControlPlayerHeadPitch(e){return _e(e/ye,-1,1)}getAbsoluteRotation(e){return e?typeof e.rotationZ==`number`&&typeof e.headX==`number`?{yaw:e.rotationZ,pitch:e.headX}:typeof e.rotZ==`number`&&typeof e.rotX==`number`?{yaw:e.rotZ,pitch:e.rotX}:null:null}resolveIffColor(e){if(this.playerSensorGroup===0)return;let t=this.sensorGroupColors.get(this.playerSensorGroup);if(t){let n=t.get(e);if(n)return n}if(e===this.playerSensorGroup)return ie;if(e!==0)return P}pushChatMessage(e){this.chatMessages.push({...e,id:++this.chatMessageIdCounter}),this.chatMessages.length>200&&this.chatMessages.splice(0,this.chatMessages.length-200),this._chatGen++}handleServerMessage(e){if(e.length<2)return;let t=this.resolveNetString(e[0]);if((t===`MsgTeamScoreIs`||t===`MsgTeamScore`)&&e.length>=4){let t=parseInt(this.resolveNetString(e[2]),10),n=parseInt(this.resolveNetString(e[3]),10);if(!isNaN(t)&&!isNaN(n)){let e=this.teamScores.find(e=>e.teamId===t);e&&(e.score=n,this.onTeamScoresChanged())}}else if(t===`MsgCTFAddTeam`&&e.length>=6){let t=parseInt(this.resolveNetString(e[2]),10),n=I(this.resolveNetString(e[3])),r=parseInt(this.resolveNetString(e[5]),10);if(!isNaN(t)&&t>0){let e=this.teamScores.find(e=>e.teamId===t);e?(e.name=n,e.score=isNaN(r)?e.score:r):this.teamScores.push({teamId:t,name:n,score:isNaN(r)?0:r,playerCount:0}),this.onTeamScoresChanged()}}else if(t===`MsgClientJoin`&&e.length>=4){let t=I(this.resolveNetString(e[2])).trim(),n=parseInt(this.resolveNetString(e[3]),10);isNaN(n)||(this.playerRoster.set(n,{name:t,teamId:0,score:0,ping:0,packetLoss:0}),this.onRosterChanged()),!this.connectedPlayerName&&t&&I(this.resolveNetString(e[1])).includes(`Welcome to Tribes`)&&(this.connectedPlayerName=t,this.connectedClientId=n,this.onMissionInfoChange?.())}else if(t===`MsgClientDrop`&&e.length>=4){let t=parseInt(this.resolveNetString(e[3]),10);isNaN(t)||(this.playerRoster.delete(t),this.onRosterChanged())}else if(t===`MsgClientJoinTeam`&&e.length>=6){let t=parseInt(this.resolveNetString(e[4]),10),n=parseInt(this.resolveNetString(e[5]),10);if(!isNaN(t)&&!isNaN(n)){let e=this.playerRoster.get(t);e?e.teamId=n:this.playerRoster.set(t,{name:``,teamId:n,score:0,ping:0,packetLoss:0}),this.onRosterChanged()}}else if(t===`MsgPlayerScore`&&e.length>=5){let t=parseInt(this.resolveNetString(e[2]),10);if(!isNaN(t)){let n=this.playerRoster.get(t);if(n){let t=parseInt(this.resolveNetString(e[3]),10),r=parseInt(this.resolveNetString(e[4]),10),i=parseInt(this.resolveNetString(e[5]??``),10);isNaN(t)||(n.score=t),isNaN(r)||(n.ping=r),isNaN(i)||(n.packetLoss=i),this.onRosterChanged()}}}else if(t===`MsgSystemClock`&&e.length>=4){let t=parseFloat(this.resolveNetString(e[3]));this.clockAnchorStreamSec=this.getTimeSec(),this.clockDurationMs=Number.isFinite(t)?t:0}else if(t===`MsgMissionDropInfo`&&e.length>=5){let t=I(this.resolveNetString(e[2])),n=I(this.resolveNetString(e[3])),r=I(this.resolveNetString(e[4]));jn.info(`mission drop info: mission=%s gameType=%s server=%s`,t,n,r),this.missionDisplayName=t||this.missionDisplayName,this.missionTypeDisplayName=n||this.missionTypeDisplayName,this.serverDisplayName=r||this.serverDisplayName,this.onMissionInfoChange?.()}else if(t===`MsgLoadInfo`&&e.length>=5){let t=I(this.resolveNetString(e[3])),n=I(this.resolveNetString(e[4]));jn.info(`load info: mission=%s gameType=%s`,t,n),this.missionDisplayName=t||this.missionDisplayName,this.missionTypeDisplayName=n||this.missionTypeDisplayName,this.onMissionInfoChange?.()}else if(t===`MsgClientReady`&&e.length>=3){let t=this.resolveNetString(e[2]);jn.info(`client ready: gameClass=%s`,t),this.gameClassName=t||this.gameClassName,this.onMissionInfoChange?.()}}onTeamScoresChanged(){}onRosterChanged(){}handleHudRemoteCommand(e,t){if(e===`setWeaponsHudItem`&&t.length>=3){let e=parseInt(t[0],10),n=parseInt(t[1],10),r=t[2]===`1`||t[2]===`true`;isNaN(e)||(r?this.weaponsHud.slots.set(e,isNaN(n)?-1:n):this.weaponsHud.slots.delete(e),this.onWeaponsHudChanged())}else if(e===`setWeaponsHudAmmo`&&t.length>=2){let e=parseInt(t[0],10),n=parseInt(t[1],10);isNaN(e)||(this.weaponsHud.slots.set(e,isNaN(n)?-1:n),this.onWeaponsHudChanged())}else if(e===`setWeaponsHudActive`&&t.length>=1){let e=parseInt(t[0],10);this.weaponsHud.activeIndex=isNaN(e)?-1:e,!isNaN(e)&&e>=0&&!this.weaponsHud.slots.has(e)&&this.weaponsHud.slots.set(e,-1),this.onWeaponsHudChanged()}else if(e===`setWeaponsHudClearAll`)this.weaponsHud.slots.clear(),this.weaponsHud.activeIndex=-1,this.onWeaponsHudChanged();else if(e===`setBackpackHudItem`&&t.length>=2){let e=parseInt(t[0],10);(t[1]===`1`||t[1]===`true`)&&!isNaN(e)?(this.backpackHud.packIndex=e,this.backpackHud.active=!1,this.backpackHud.text=``):(this.backpackHud.packIndex=-1,this.backpackHud.active=!1,this.backpackHud.text=``)}else if(e===`setSatchelArmed`)this.backpackHud.active=!0;else if(e===`setCloakIconOn`||e===`setRepairPackIconOn`||e===`setShieldIconOn`||e===`setSenJamIconOn`)this.backpackHud.active=!0;else if(e===`setCloakIconOff`||e===`setRepairPackIconOff`||e===`setShieldIconOff`||e===`setSenJamIconOff`)this.backpackHud.active=!1;else if(e===`updatePackText`&&t.length>=1)this.backpackHud.text=t[0]??``;else if(e===`setInventoryHudItem`&&t.length>=3){let e=parseInt(t[0],10),n=parseInt(t[1],10),r=t[2]===`1`||t[2]===`true`;isNaN(e)||(r&&!isNaN(n)?this.inventoryHud.slots.set(e,n):this.inventoryHud.slots.delete(e),this.onInventoryHudChanged())}else if(e===`setInventoryHudAmount`&&t.length>=2){let e=parseInt(t[0],10),n=parseInt(t[1],10);!isNaN(e)&&!isNaN(n)&&(this.inventoryHud.slots.set(e,n),this.onInventoryHudChanged())}else e===`setInventoryHudClearAll`&&(this.inventoryHud.slots.clear(),this.inventoryHud.activeSlot=-1,this.onInventoryHudChanged())}onWeaponsHudChanged(){}onInventoryHudChanged(){}buildEntityList(e){let t=[];for(let n of this.entities.values()){if(e&&!e(n))continue;let r=n.targetId!=null&&n.targetId>=0?this.targetRenderFlags.get(n.targetId)??n.targetRenderFlags:n.targetRenderFlags;n.type===`Player`&&!n.carryingFlag&&(r=r==null?r:r&-3),t.push({id:n.id,type:n.type,visual:n.visual,direction:n.direction,ghostIndex:n.ghostIndex,className:n.className,dataBlockId:n.dataBlockId,shapeHint:n.shapeHint,dataBlock:n.dataBlock,weaponShape:n.weaponShape,packShape:n.packShape,flagShape:n.flagShape,falling:n.falling,jetting:n.jetting,playerName:n.playerName,targetRenderFlags:r,iffColor:(n.type===`Player`||(r??0)&2)&&n.sensorGroup!=null?this.resolveIffColor(n.sensorGroup):void 0,position:n.position&&(n.simulatedVelocity||n.itemPhysics&&!n.itemPhysics.atRest)?[...n.position]:n.position,rotation:n.rotation,velocity:n.velocity,health:n.health,energy:n.energy,actionAnim:n.actionAnim,actionAtEnd:n.actionAtEnd,damageState:n.damageState,faceViewer:n.faceViewer,threads:n.threads,explosionDataBlockId:n.explosionDataBlockId,maintainEmitterId:n.maintainEmitterId,weaponImageState:n.weaponImageState,weaponImageStates:n.weaponImageStates,headPitch:n.headPitch,headYaw:n.headYaw,label:n.label,audioFileName:n.audioFileName,audioVolume:n.audioVolume,audioIs3D:n.audioIs3D,audioIsLooping:n.audioIsLooping,audioMinDistance:n.audioMinDistance,audioMaxDistance:n.audioMaxDistance,audioMinLoopGap:n.audioMinLoopGap,audioMaxLoopGap:n.audioMaxLoopGap,sceneData:n.sceneData,forceFieldData:n.forceFieldData})}return t}computeMatchClockMs(e){if(this.clockAnchorStreamSec==null)return null;let t=(e-this.clockAnchorStreamSec)*1e3;return-this.clockDurationMs+t}buildHudState(){let e={slots:Array.from(this.weaponsHud.slots.entries()).map(([e,t])=>({index:e,ammo:t})),activeIndex:this.weaponsHud.activeIndex},t={slots:Array.from(this.inventoryHud.slots.entries()).map(([e,t])=>({slot:e,count:t})),activeSlot:this.inventoryHud.activeSlot},n=this.backpackHud.packIndex>=0?{...this.backpackHud}:null,r=this.teamScores.map(e=>({...e})),i=new Map;for(let{teamId:e}of this.playerRoster.values())e>0&&i.set(e,(i.get(e)??0)+1);for(let e of r)e.playerCount=i.get(e.teamId)??0;let a=[];for(let[e,t]of this.playerRoster)a.push({clientId:e,...t});return{weaponsHud:e,inventoryHud:t,backpackHud:n,teamScores:r,playerRoster:a}}buildTimeFilteredEvents(e){return this._chatSnapshotGen!==this._chatGen&&(this._chatSnapshot=this.chatMessages.slice(),this._chatSnapshotGen=this._chatGen),{chatMessages:this._chatSnapshot,audioEvents:this.audioEvents.filter(t=>t.timeSec>e-.5&&t.timeSec<=e)}}},Nn=A(`liveStreaming`),Pn=class extends Mn{packetParser;relay;currentTimeSec=0;connectSynced=!1;_snapshot=null;_snapshotTick=-1;_ready=!1;_teamScoresGen=0;_rosterGen=0;_weaponsHudGen=0;_inventoryHudGen=0;_cachedHud=null;dataBlockClassNames=new Map;onReady;onMissionChange;missionName=null;lastMoveAck=0;constructor(e){super(),this.relay=e;let{registry:t,ghostTracker:n,packetParser:r}=fe();this.packetParser=r,this.ghostTracker=n,this.registry=t}getDataBlockData(e){return this.packetParser.getDataBlockDataMap()?.get(e)}_shapeConstructorCache=null;getShapeConstructorSequences(e){this._shapeConstructorCache=new Map;let t=this.packetParser.getDataBlockDataMap();if(t){for(let[,e]of t){let t=e.shape,n=e.sequences;t&&n&&this._shapeConstructorCache.set(t.toLowerCase(),n)}return this._shapeConstructorCache.get(e.toLowerCase())}}getTimeSec(){return this.currentTimeSec}getCameraYawPitch(e){return this.getAbsoluteRotation(e)??{yaw:0,pitch:0}}getEffectShapes(){let e=new Set,t=this.packetParser.getDataBlockDataMap();if(!t)return[];for(let[,n]of t){let r=n.explosion;if(r==null)continue;let i=t.get(r);i?.dtsFileName&&e.add(i.dtsFileName)}return[...e]}onTeamScoresChanged(){this._teamScoresGen++}onRosterChanged(){this._rosterGen++}onWeaponsHudChanged(){this._weaponsHudGen++}onInventoryHudChanged(){this._inventoryHudGen++}reset(){this.resetSharedState(),this.ghostTracker.clear?.(),this.currentTimeSec=0,this._snapshot=null,this._snapshotTick=-1,this._cachedHud=null,this.dataBlockClassNames.clear(),this.observerMode=`fly`,this.missionName=null}getSnapshot(){return this._snapshot&&this._snapshotTick===this.tickCount?this._snapshot:this.buildSnapshot()}stepToTime(e,t){return this.currentTimeSec=e,this.getSnapshot()}syncConnectSequence(e){if(this.connectSynced||e.length<1)return;this.connectSynced=!0;let t=e[0]>>1&1;this.packetParser.setConnectionProtocolState({lastSeqRecvdAtSend:Array(32).fill(0),lastSeqRecvd:0,highestAckedSeq:0,lastSendSeq:536870911,ackMask:0,connectSequence:t,lastRecvAckAck:0,connectionEstablished:!0})}feedPacket(e){this.syncConnectSequence(e),this.processPacket(e)}handleRelayCommands(e){if(e.type!==`RemoteCommandEvent`)return;let t=e.funcName;if(!t)return;let n=this.resolveNetString(t);if([`t2csri_pokeClient`,`t2csri_getChallengeChunk`,`t2csri_decryptChallenge`].includes(n)){let t=(e.args??[]).map(e=>this.resolveNetString(e)).filter(e=>e!==``);Nn.info(`auth event: %s %o`,n,t),this.relay.sendAuthEvent(n,t);return}let r=(e.args??[]).map(e=>this.resolveNetString(e));if(n===`MissionStartPhase1`){let e=r[0]??``,t=r[1]??null;Nn.info(`mission phase 1, seq=%s mission=%s resolvedArgs=%o`,e,t,r),t&&t!==this.missionName&&(this.missionName=t,this.entities.clear(),this.entityIdByGhostIndex.clear(),this._ready=!1,this._snapshot=null,this._snapshotTick=-1,this._cachedHud=null,this.observerMode=`fly`,this.lastMoveAck=0,this.missionDisplayName=null,this.missionTypeDisplayName=null,this.gameClassName=null,this.serverDisplayName=null,this.onMissionChange?.(t)),this.relay.sendCommand(`MissionStartPhase1Done`,[e])}else if(n===`MissionStartPhase2`){let e=r[0]??``;Nn.info(`mission phase 2 (datablocks), seq=%s`,e),this.relay.sendCommand(`MissionStartPhase2Done`,[e])}else if(n===`MissionStartPhase3`){let e=r[0]??``,t=r[1]??null;Nn.info(`mission phase 3 (ghosting), seq=%s mission=%s`,e,t),t&&(this.missionName=t),this.relay.sendCommand(`setClientFav`,[``]),this.relay.sendCommand(`MissionStartPhase3Done`,[e])}}handleCRCChallenge(e){if(e.type!==`CRCChallengeEvent`)return;let t=e.crcValue,n=e.field1,r=e.field2,i=(n&1)!=0;Nn.info(`CRC challenge: seed=0x%s f1=0x%s f2=0x%s includeTextures=%s`,(t>>>0).toString(16),(n>>>0).toString(16),(r>>>0).toString(16),i);let a=this.packetParser.getDataBlockDataMap(),o=[];if(a)for(let[e,t]of a){let n=this.dataBlockClassNames.get(e);if(!n)continue;let r=me(n,t);o.push({objectId:e,className:n,shapeName:r??``})}Nn.info(`CRC: sending %d datablocks for computation`,o.length),this.relay.sendCRCCompute(t,r,o,i)}handleGhostingMessage(e){if(e.type!==`GhostingMessageEvent`)return;let t=e.message,n=e.sequence,r=e.ghostCount;Nn.info(`GhostingMessageEvent: message=%d sequence=%d ghostCount=%d`,t,n,r),t===0&&(Nn.info(`Sending ghost ack (type 1) for sequence %d`,n),this.relay.sendGhostAck(n,r))}observerMode=`fly`;requestScores(){this.relay.sendCommand(`getScores`,[])}getPlayerList(){let e=[];for(let[t,n]of this.targetNames){let r=this.targetTeams.get(t)??0;e.push({targetId:t,name:n,sensorGroup:r})}return e}processPacket(e){try{let t=this.packetParser.protocolRejected,n=this.packetParser.protocolNoDispatch,r=this.packetParser.parsePacket(e),i=this.packetParser.protocolRejected>t,a=this.packetParser.protocolNoDispatch>n;(i||a)&&Nn.warn(`packet #%d %s: %d bytes (total rejected=%d, noDispatch=%d)`,this.tickCount,i?`REJECTED`:`no-dispatch`,e.length,this.packetParser.protocolRejected,this.packetParser.protocolNoDispatch);let o=this.tickCount<20,s=this.tickCount%100==0,c=o||s;c&&Nn.debug(`packet #%d: %d events, %d ghosts, %d bytes%s%s`,this.tickCount,r.events.length,r.ghosts.length,e.length,r.gameState.controlObjectGhostIndex===void 0?``:`, control=${r.gameState.controlObjectGhostIndex}`,r.gameState.cameraFov===void 0?``:`, fov=${r.gameState.cameraFov}`),this.lastMoveAck=r.gameState.lastMoveAck,this.processControlObject(r.gameState);for(let e of r.events)if(e.parsedData){this.handleRelayCommands(e.parsedData),this.handleCRCChallenge(e.parsedData),this.handleGhostingMessage(e.parsedData);let t=e.parsedData.type;if(t===`RemoteCommandEvent`){let t=this.resolveNetString(e.parsedData.funcName??``);Nn.debug(`remote: %s`,t)}if(o&&t!==`NetStringEvent`&&t!==`RemoteCommandEvent`&&Nn.debug(`event: %s%s`,t,t===`SimDataBlockEvent`?` id=${e.parsedData.objectId} class=${e.parsedData.dataBlockClassName}`:``),t===`SimDataBlockEvent`){let t=e.parsedData.objectId,n=e.parsedData.dataBlockClassName;if(t!=null&&n&&this.dataBlockClassNames.set(t,n),c){let r=e.parsedData.dataBlockData,i=me(n??``,r);Nn.debug(`datablock: id=%d class=%s%s`,t,n??`?`,i?` shape=${i}`:``)}}let n=this.registry.getEventParser(e.classId)?.name;if(this.processEvent(e,n),o&&t===`NetStringEvent`){let t=e.parsedData.id,n=e.parsedData.value;t!=null&&typeof n==`string`&&Nn.trace(`netString #%d = "%s"`,t,n.length>60?n.slice(0,60)+`…`:n)}if(t===`TargetInfoEvent`){let t=e.parsedData.targetId,n=e.parsedData.nameTag;if(t!=null&&n!=null){let r=this.netStrings.get(n);if(r){let n=I(r);Nn.info(`target #%d: "%s" team=%s`,t,n,e.parsedData.sensorGroup??`?`)}}}if(t===`SetSensorGroupEvent`){let t=e.parsedData.sensorGroup;t!=null&&Nn.info(`sensor group changed: → %d`,t)}if(t===`SensorGroupColorEvent`){let t=e.parsedData.sensorGroup,n=e.parsedData.colors;n&&Nn.debug(`sensor group colors: group=%d, %d entries`,t,n.length)}}for(let e of r.ghosts){if(e.type===`create`){let t=e.parsedData?.position,n=t&&typeof t.x==`number`&&typeof t.y==`number`&&typeof t.z==`number`,r=this.resolveGhostClassName(e.index,e.classId);Nn.debug(`ghost create: #%d %s%s (%d entities total)`,e.index,r??`?`,n?` at (${t.x.toFixed(1)}, ${t.y.toFixed(1)}, ${t.z.toFixed(1)})`:``,this.entities.size+1),this._ready||(this._ready=!0,this.onReady?.())}else if(e.type===`delete`){let t=this.entityIdByGhostIndex.get(e.index),n=t?this.entities.get(t):void 0;(this.tickCount<50||this.tickCount%200==0)&&Nn.debug(`ghost delete: #%d %s (%d entities remaining)`,e.index,n?.className??`?`,this.entities.size-1)}this.processGhostUpdate(e)}if(this.tickCount++,this.advanceProjectiles(),this.advanceItems(),s&&this.tickCount>1){let e=this.packetParser.getDataBlockDataMap();Nn.info(`status @ tick %d: %d entities, %d datablocks, rejected=%d, noDispatch=%d`,this.tickCount,this.entities.size,e?.size??0,this.packetParser.protocolRejected,this.packetParser.protocolNoDispatch)}let l=this.entities.size;if(this.tickCount===1||l>0&&l%25==0&&this.tickCount<100){let e=new Map;for(let t of this.entities.values())e.set(t.type,(e.get(t.type)??0)+1);let t=[...e.entries()].map(([e,t])=>`${e}=${t}`).join(` `);Nn.info(`entity count: %d (%s)`,l,t)}let u=this.camera?.mode;if(this.updateCameraAndHud(),this.camera&&this.camera.mode!==u&&Nn.info(`camera mode: %s → %s%s`,u??`none`,this.camera.mode,this.camera.mode===`third-person`?` orbit=${this.camera.orbitTargetId??`?`} dist=${this.camera.orbitDistance??`?`}`:``),this.tickCount<=5&&this.camera){let[e,t,n]=this.camera.position;Nn.debug(`camera: mode=%s pos=(%s, %s, %s) fov=%s`,this.camera.mode,e.toFixed(1),t.toFixed(1),n.toFixed(1),this.camera.fov)}}catch(t){let n={tickCount:this.tickCount,entityCount:this.entities.size,dataLength:e.length,controlGhost:this.latestControl.ghostIndex,connectSynced:this.connectSynced};Nn.error(`Failed to process live packet: %o %o`,t,n)}}buildSnapshot(){let e=this.buildEntityList(),t=this.currentTimeSec,{chatMessages:n,audioEvents:r}=this.buildTimeFilteredEvents(t),i=this._cachedHud,a,o,s,c,l;i&&i.weaponsHudGen===this._weaponsHudGen&&i.inventoryHudGen===this._inventoryHudGen&&i.teamScoresGen===this._teamScoresGen&&i.rosterGen===this._rosterGen&&i.backpackPackIndex===this.backpackHud.packIndex&&i.backpackActive===this.backpackHud.active?(a=i.weaponsHud,o=i.inventoryHud,s=i.backpackHud,c=i.teamScores,l=i.playerRoster):({weaponsHud:a,inventoryHud:o,backpackHud:s,teamScores:c,playerRoster:l}=this.buildHudState(),this._cachedHud={weaponsHudGen:this._weaponsHudGen,inventoryHudGen:this._inventoryHudGen,teamScoresGen:this._teamScoresGen,rosterGen:this._rosterGen,backpackPackIndex:this.backpackHud.packIndex,backpackActive:this.backpackHud.active,weaponsHud:a,inventoryHud:o,backpackHud:s,teamScores:c,playerRoster:l}),this.camera||={time:t,position:[0,0,200],rotation:[0,0,0,1],fov:90,mode:`observer`};let u={timeSec:t,exhausted:!1,camera:this.camera,entities:e,controlPlayerGhostId:this.controlPlayerGhostId,playerSensorGroup:this.playerSensorGroup,status:this.lastStatus,chatMessages:n,audioEvents:r,weaponsHud:a,backpackHud:s,inventoryHud:o,teamScores:c,playerRoster:l,connectedClientId:this.connectedClientId,matchClockMs:this.computeMatchClockMs(t)};return this._snapshot=u,this._snapshotTick=this.tickCount,u}},Fn=j()(e=>({missionEntities:new Map,streamEntities:new Map,isStreaming:!1,dataSource:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:0,setEntity(t){e(e=>{let n=new Map(e.missionEntities);return n.set(t.id,t),{missionEntities:n,version:e.version+1}})},deleteEntity(t){e(e=>{if(!e.missionEntities.has(t))return e;let n=new Map(e.missionEntities);return n.delete(t),{missionEntities:n,version:e.version+1}})},setEntities(t){e(e=>{let n=new Map(e.missionEntities);for(let e of t)n.set(e.id,e);return{missionEntities:n,version:e.version+1}})},setAllEntities(t){e(e=>{let n=new Map;for(let e of t)n.set(e.id,e);return{missionEntities:n,dataSource:e.isStreaming?e.dataSource:`map`}})},clearEntities(){e(e=>e.missionEntities.size===0?e:e.isStreaming?{missionEntities:new Map,version:e.version+1}:{missionEntities:new Map,dataSource:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:e.version+1})},setMissionInfo(t){let n={};if(t.missionName!==void 0&&(n.missionName=t.missionName),t.missionType!==void 0&&(n.missionType=t.missionType),t.missionTypeDisplayName!==void 0&&(n.missionTypeDisplayName=t.missionTypeDisplayName),t.missionDisplayName!==void 0&&(n.missionDisplayName=t.missionDisplayName),t.gameClassName!==void 0&&(n.gameClassName=t.gameClassName,t.missionType===void 0))if(t.gameClassName){let e=t.gameClassName.replace(/Game$/i,``);n.missionType=Oe[e.toLowerCase()]??e}else n.missionType=null;t.serverDisplayName!==void 0&&(n.serverDisplayName=t.serverDisplayName),t.recorderName!==void 0&&(n.recorderName=t.recorderName),t.recordingDate!==void 0&&(n.recordingDate=t.recordingDate),e(e=>({...n,version:e.version+1}))},beginStreaming(t){e(e=>({isStreaming:!0,dataSource:t,streamEntities:new Map,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:e.version+1}))},endStreaming(){e(e=>e.isStreaming?{isStreaming:!1,dataSource:e.missionEntities.size>0?`map`:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,streamEntities:new Map,version:e.version+1}:e)},setStreamEntity(t){e(e=>{let n=new Map(e.streamEntities);return n.set(t.id,t),{streamEntities:n,version:e.version+1}})},deleteStreamEntity(t){e(e=>{if(!e.streamEntities.has(t))return e;let n=new Map(e.streamEntities);return n.delete(t),{streamEntities:n,version:e.version+1}})},setStreamEntities(t){e(e=>{let n=new Map(e.streamEntities);for(let e of t)n.set(e.id,e);return{streamEntities:n,version:e.version+1}})},setAllStreamEntities(t){e(e=>{let n=new Map;for(let e of t)n.set(e.id,e);let r=e.streamEntities;return n.size===r.size&&[...n.keys()].every(e=>r.has(e))?e:{streamEntities:n,version:e.version+1}})},clearStreamEntities(){e(e=>e.streamEntities.size===0?e:{streamEntities:new Map,version:e.version+1})}}));function In(e){return e.isStreaming?e.streamEntities:e.missionEntities}function Ln(e){return e.version}function Rn(){return M(Fn,Ln),M(Fn,In)}function zn(){return Rn()}function Bn(e){let t=e.isStreaming?e.streamEntities:e.missionEntities,n=[];for(let e of t.values())e.renderType!==`None`&&n.push(e);return n}function Vn(e,t){if(e.length!==t.length)return!1;for(let n=0;n({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,servers:[],serversLoading:!1,adapter:null,liveReady:!1,_relay:null,_adapter:null,_pending:[],_listInFlight:!1,connectRelay(n=dr){let r=t();r._relay&&r._relay.close();let i=new Cn(n,{onOpen(){e({relayConnected:!0});let n=t();for(let e of n._pending)e();n._pending=[]},onStatus(t,n,r,i){ur.info(`game status: %s%s%s`,t,n?` — ${n}`:``,i?` map=${i}`:``),e({gameStatus:t,gameStatusMessage:n,...i?{mapName:i}:{}})},onServerList(n){t()._listInFlight=!1,e({servers:n,serversLoading:!1})},onGamePacket(e){let n=t()._adapter;n||ur.warn(`received game packet but no adapter is active`),n?.feedPacket(e)},onPing(t){e({relayToGameServerPing:t})},onWsPing(t){e({browserToRelayPing:t})},onError(n){ur.error(`error: %s`,n),t()._listInFlight=!1,e({serversLoading:!1})},onClose(){let n=t();n._relay===i&&(n._relay=null,n._adapter=null,n._pending=[],n._listInFlight=!1,e({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,adapter:null,liveReady:!1}))}});i.connect(),t()._relay=i},disconnectRelay(){let n=t();n._relay?.close(),n._relay=null,n._adapter=null,n._pending=[],n._listInFlight=!1,e({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,adapter:null,liveReady:!1})},listServers(){let n=t();if(n._listInFlight)return;n._listInFlight=!0;let r=()=>{let e=t();e._relay?.sendWsPing(),e._relay?.listServers()};e({serversLoading:!0}),n._relay?.connected?r():(n._pending.push(r),n._relay||t().connectRelay())},joinServer(n,r){let i=t();if(!i._relay)return;let a=i.servers.find(e=>e.address===n),o=new Pn(i._relay);o.onReady=()=>e({liveReady:!0}),o.onMissionChange=t=>{ur.info(`mission changed: %s`,t),e({mapName:t,liveReady:!1}),Fn.getState().setMissionInfo({missionName:t,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null})},o.onMissionInfoChange=()=>{Fn.getState().setMissionInfo({missionDisplayName:o.missionDisplayName??void 0,missionTypeDisplayName:o.missionTypeDisplayName??void 0,gameClassName:o.gameClassName??void 0,serverDisplayName:o.serverDisplayName??void 0,recorderName:o.connectedPlayerName??void 0})},i._adapter=o,e({mapName:a?.mapName??i.mapName,serverName:a?.name,warriorName:r,liveReady:!1,gameStatus:null,adapter:o}),Fn.getState().setMissionInfo({missionName:a?.mapName??void 0,missionTypeDisplayName:a?.gameType??void 0,serverDisplayName:a?.name??void 0,recorderName:r??void 0}),i._relay.joinServer(n,r)},disconnectServer(){t().disconnectRelay()},sendMoves(e,n){t()._relay?.sendMoves(e,n)},sendCommand(e,...n){t()._relay?.sendCommand(e,n)}}));function pr(e,t){return M(fr,e,t)}function mr(e){return e.relayToGameServerPing!=null&&e.browserToRelayPing!=null?e.relayToGameServerPing+e.browserToRelayPing:e.relayToGameServerPing??null}var hr=[.25,.5,1,2,4];function gr(e){let t=(0,z.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,B.jsx)(B.Fragment,{children:n}),t[0]=n,t[1]=r),r}function _r(){return Ae(vr)}function vr(e){return e.playback.recording}function yr(){return Ae(br)}function br(e){return e.playback.status===`playing`}function xr(){return Ae(Sr)}function Sr(e){return e.playback.timeMs/1e3}function Cr(){return Ae(wr)}function wr(e){return e.playback.durationMs/1e3}function Tr(){return Ae(Er)}function Er(e){return e.playback.rate}function Dr(){let e=(0,z.c)(17),t=_r(),n=Ae(jr),r=Ae(Ar),i=Ae(kr),a=Ae(Or),o;e[0]===n?o=e[1]:(o=e=>{n(e)},e[0]=n,e[1]=o);let s=o,c;e[2]!==t||e[3]!==r?(c=()=>{t&&r(`playing`)},e[2]=t,e[3]=r,e[4]=c):c=e[4];let l=c,u;e[5]===r?u=e[6]:(u=()=>{r(`paused`)},e[5]=r,e[6]=u);let d=u,f;e[7]===i?f=e[8]:(f=e=>{i(e*1e3)},e[7]=i,e[8]=f);let p=f,m;e[9]===a?m=e[10]:(m=e=>{a(e)},e[9]=a,e[10]=m);let h=m,g;return e[11]!==d||e[12]!==l||e[13]!==p||e[14]!==s||e[15]!==h?(g={setRecording:s,play:l,pause:d,seek:p,setSpeed:h},e[11]=d,e[12]=l,e[13]=p,e[14]=s,e[15]=h,e[16]=g):g=e[16],g}function Or(e){return e.setPlaybackRate}function kr(e){return e.setPlaybackTime}function Ar(e){return e.setPlaybackStatus}function jr(e){return e.setRecording}var Mr=A(`LoadDemoButton`);function Nr({isActive:e=!1,choosingMap:t=!1,onCancelChoosingMap:n}){let r=_r()?.source===`demo`,{setRecording:i}=Dr(),a=(0,R.useRef)(null),o=(0,R.useRef)(0),s=(0,R.useRef)(null),c=(0,R.useCallback)(()=>{if(N.getState().cancel(),t&&r){n?.();return}if(r){o.current+=1,s.current?.abort(),s.current=null,i(null),bn.getState().reset();return}a.current?.click()},[r,t,n,i]);return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`input`,{ref:a,type:`file`,accept:`.rec`,style:{display:`none`},onChange:(0,R.useCallback)(async e=>{let t=e.target.files?.[0];if(t){e.target.value=``;try{let e=await t.arrayBuffer(),n=o.current+1;o.current=n;let{createDemoStreamingRecording:r}=await Me(async()=>{let{createDemoStreamingRecording:e}=await import(`./demoStreaming-vQjQowT8.js`);return{createDemoStreamingRecording:e}},__vite__mapDeps([0,1,2,3,4,5])),a=await r(e);if(o.current!==n)return;fr.getState().disconnectServer(),i(a),s.current?.abort();let c=new AbortController;s.current=c;let l=bn.getState();l.reset(),l.setScanProgress(0),Me(async()=>{let{scanDemoTimeline:e}=await import(`./demoTimelineScanner-BGzL-XZF.js`);return{scanDemoTimeline:e}},__vite__mapDeps([6,1,2,3,5])).then(({scanDemoTimeline:t})=>t(e,a.recorderName,e=>{o.current===n&&bn.getState().setScanProgress(e)},c.signal)).then(e=>{if(o.current!==n)return;let t=bn.getState();t.setEvents(e),t.setScanProgress(null)}).catch(e=>{o.current===n&&(e instanceof Error&&e.name===`AbortError`||(Mr.error(`Timeline scan failed: %o`,e),bn.getState().setScanProgress(null)))})}catch(e){Mr.error(`Failed to load demo: %o`,e)}}},[i])}),(0,B.jsxs)(`button`,{type:`button`,className:mn.Button,"aria-label":r?`Unload demo`:`Load demo (.rec)`,title:r?`Unload demo`:`Load demo (.rec)`,onClick:c,"data-active":e,children:[(0,B.jsx)(vn,{className:mn.DemoIcon}),(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Demo`}),(0,B.jsx)(`span`,{className:mn.ButtonHint,children:t&&r?`Return to demo`:r?`Click to unload`:`Load a .rec file`})]})]})}function Pr(e){return S({tag:`svg`,attr:{fill:`currentColor`,viewBox:`0 0 16 16`},child:[{tag:`path`,attr:{d:`M11.251.068a.5.5 0 0 1 .227.58L9.677 6.5H13a.5.5 0 0 1 .364.843l-8 8.5a.5.5 0 0 1-.842-.49L6.323 9.5H3a.5.5 0 0 1-.364-.843l8-8.5a.5.5 0 0 1 .615-.09z`},child:[]}]})(e)}function Fr(e){return S({tag:`svg`,attr:{fill:`currentColor`,viewBox:`0 0 16 16`},child:[{tag:`path`,attr:{d:`m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393`},child:[]}]})(e)}var Ir={JoinServerButton:`_JoinServerButton_cz8os_1 _Button_1u47f_2`,Icon:`_Icon_cz8os_5 _Icon_1u47f_79`,blink:`_blink_cz8os_1`};function Lr(e){let t=(0,z.c)(15),{isActive:n,onOpenServerBrowser:r}=e,i=pr(zr),a=pr(Rr),o=i===`connected`,s=i===`connecting`||i===`challenging`||i===`authenticating`,c=o?`Connected –\xA0click to disconnect`:`Join server`,l=o?`Connected –\xA0click to disconnect`:`Join server`,u;t[0]!==a||t[1]!==o||t[2]!==r?(u=()=>{N.getState().cancel(),o?a():r()},t[0]=a,t[1]=o,t[2]=r,t[3]=u):u=t[3];let d,f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,B.jsx)(Pr,{className:Ir.Icon}),f=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Live`}),t[4]=d,t[5]=f):(d=t[4],f=t[5]);let p=s?`Connecting…`:o?`Connected`:`Join a game`,m;t[6]===p?m=t[7]:(m=(0,B.jsxs)(B.Fragment,{children:[f,(0,B.jsx)(`span`,{className:mn.ButtonHint,children:p})]}),t[6]=p,t[7]=m);let h;return t[8]!==n||t[9]!==o||t[10]!==c||t[11]!==l||t[12]!==u||t[13]!==m?(h=(0,B.jsxs)(`button`,{type:`button`,className:Ir.JoinServerButton,"aria-label":c,title:l,"data-connected":o,onClick:u,"data-active":n,children:[d,m]}),t[8]=n,t[9]=o,t[10]=c,t[11]=l,t[12]=u,t[13]=m,t[14]=h):h=t[14],h}function Rr(e){return e.disconnectServer}function zr(e){return e.gameStatus}function Br(e,t=[]){let n=[];function r(t,r){let i=R.createContext(r),a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=R.useMemo(()=>o,Object.values(o));return(0,B.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o){let s=o?.[e]?.[a]||i,c=R.useContext(s);if(c)return c;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>R.createContext(e));return function(n){let r=n?.[e]||t;return R.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,Vr(i,...t)]}function Vr(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return R.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}function Hr(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function Ur(...e){return t=>{let n=!1,r=e.map(e=>{let r=Hr(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t{let{children:r,...i}=e,a=R.Children.toArray(r),o=a.find(Jr);if(o){let e=o.props.children,r=a.map(t=>t===o?R.Children.count(e)>1?R.Children.only(null):R.isValidElement(e)?e.props.children:null:t);return(0,B.jsx)(t,{...i,ref:n,children:R.isValidElement(e)?R.cloneElement(e,void 0,r):null})}return(0,B.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function Kr(e){let t=R.forwardRef((e,t)=>{let{children:n,...r}=e;if(R.isValidElement(n)){let e=Xr(n),i=Yr(r,n.props);return n.type!==R.Fragment&&(i.ref=t?Ur(t,e):e),R.cloneElement(n,i)}return R.Children.count(n)>1?R.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var qr=Symbol(`radix.slottable`);function Jr(e){return R.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===qr}function Yr(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function Xr(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Zr(e){let t=e+`CollectionProvider`,[n,r]=Br(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:n}=e,r=R.useRef(null),a=R.useRef(new Map).current;return(0,B.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};o.displayName=t;let s=e+`CollectionSlot`,c=Gr(s),l=R.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,B.jsx)(c,{ref:Wr(t,a(s,n).collectionRef),children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=Gr(u),p=R.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=R.useRef(null),s=Wr(t,o),c=a(u,n);return R.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,B.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function m(t){let n=a(e+`CollectionConsumer`,t);return R.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:o,Slot:l,ItemSlot:p},m,r]}typeof window<`u`&&window.document&&window.document.createElement;function Qr(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}var $r=globalThis?.document?R.useLayoutEffect:()=>{},ei=R.useInsertionEffect||$r;function ti({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=ni({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=R.useRef(e!==void 0);R.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,R.useCallback(t=>{if(s){let n=ri(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function ni({defaultProp:e,onChange:t}){let[n,r]=R.useState(e),i=R.useRef(n),a=R.useRef(t);return ei(()=>{a.current=t},[t]),R.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function ri(e){return typeof e==`function`}var ii=e(Fe(),1),ai=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=Gr(`Primitive.${t}`),r=R.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,B.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function oi(e,t){return R.useReducer((e,n)=>t[e][n]??e,e)}var si=e=>{let{present:t,children:n}=e,r=ci(t),i=typeof n==`function`?n({present:r.isPresent}):R.Children.only(n),a=Wr(r.ref,ui(i));return typeof n==`function`||r.isPresent?R.cloneElement(i,{ref:a}):null};si.displayName=`Presence`;function ci(e){let[t,n]=R.useState(),r=R.useRef(null),i=R.useRef(e),a=R.useRef(`none`),[o,s]=oi(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return R.useEffect(()=>{let e=li(r.current);a.current=o===`mounted`?e:`none`},[o]),$r(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=li(t);e?s(`MOUNT`):o===`none`||t?.display===`none`?s(`UNMOUNT`):s(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,s]),$r(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=li(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(s(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},c=e=>{e.target===t&&(a.current=li(r.current))};return t.addEventListener(`animationstart`,c),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,c),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else s(`ANIMATION_END`)},[t,s]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:R.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}function li(e){return e?.animationName||`none`}function ui(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var di=R.useId||(()=>void 0),fi=0;function pi(e){let[t,n]=R.useState(di());return $r(()=>{e||n(e=>e??String(fi++))},[e]),e||(t?`radix-${t}`:``)}var mi=`Collapsible`,[hi,gi]=Br(mi),[_i,vi]=hi(mi),yi=R.forwardRef((e,t)=>{let{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:a,onOpenChange:o,...s}=e,[c,l]=ti({prop:r,defaultProp:i??!1,onChange:o,caller:mi});return(0,B.jsx)(_i,{scope:n,disabled:a,contentId:pi(),open:c,onOpenToggle:R.useCallback(()=>l(e=>!e),[l]),children:(0,B.jsx)(ai.div,{"data-state":Ti(c),"data-disabled":a?``:void 0,...s,ref:t})})});yi.displayName=mi;var bi=`CollapsibleTrigger`,xi=R.forwardRef((e,t)=>{let{__scopeCollapsible:n,...r}=e,i=vi(bi,n);return(0,B.jsx)(ai.button,{type:`button`,"aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":Ti(i.open),"data-disabled":i.disabled?``:void 0,disabled:i.disabled,...r,ref:t,onClick:Qr(e.onClick,i.onOpenToggle)})});xi.displayName=bi;var Si=`CollapsibleContent`,Ci=R.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=vi(Si,e.__scopeCollapsible);return(0,B.jsx)(si,{present:n||i.open,children:({present:e})=>(0,B.jsx)(wi,{...r,ref:t,present:e})})});Ci.displayName=Si;var wi=R.forwardRef((e,t)=>{let{__scopeCollapsible:n,present:r,children:i,...a}=e,o=vi(Si,n),[s,c]=R.useState(r),l=R.useRef(null),u=Wr(t,l),d=R.useRef(0),f=d.current,p=R.useRef(0),m=p.current,h=o.open||s,g=R.useRef(h),_=R.useRef(void 0);return R.useEffect(()=>{let e=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(e)},[]),$r(()=>{let e=l.current;if(e){_.current=_.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();d.current=t.height,p.current=t.width,g.current||(e.style.transitionDuration=_.current.transitionDuration,e.style.animationName=_.current.animationName),c(r)}},[o.open,r]),(0,B.jsx)(ai.div,{"data-state":Ti(o.open),"data-disabled":o.disabled?``:void 0,id:o.contentId,hidden:!h,...a,ref:u,style:{"--radix-collapsible-content-height":f?`${f}px`:void 0,"--radix-collapsible-content-width":m?`${m}px`:void 0,...e.style},children:h&&i})});function Ti(e){return e?`open`:`closed`}var Ei=yi,Di=xi,Oi=Ci,ki=R.createContext(void 0);function Ai(e){let t=R.useContext(ki);return e||t||`ltr`}var ji=`Accordion`,Mi=[`Home`,`End`,`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`],[V,Ni,Pi]=Zr(ji),[Fi,Ii]=Br(ji,[Pi,gi]),Li=gi(),Ri=R.forwardRef((e,t)=>{let{type:n,...r}=e,i=r,a=r;return(0,B.jsx)(V.Provider,{scope:e.__scopeAccordion,children:n===`multiple`?(0,B.jsx)(Wi,{...a,ref:t}):(0,B.jsx)(Ui,{...i,ref:t})})});Ri.displayName=ji;var[zi,Bi]=Fi(ji),[Vi,Hi]=Fi(ji,{collapsible:!1}),Ui=R.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},collapsible:a=!1,...o}=e,[s,c]=ti({prop:n,defaultProp:r??``,onChange:i,caller:ji});return(0,B.jsx)(zi,{scope:e.__scopeAccordion,value:R.useMemo(()=>s?[s]:[],[s]),onItemOpen:c,onItemClose:R.useCallback(()=>a&&c(``),[a,c]),children:(0,B.jsx)(Vi,{scope:e.__scopeAccordion,collapsible:a,children:(0,B.jsx)(qi,{...o,ref:t})})})}),Wi=R.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=ti({prop:n,defaultProp:r??[],onChange:i,caller:ji}),c=R.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=R.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,B.jsx)(zi,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:l,children:(0,B.jsx)(Vi,{scope:e.__scopeAccordion,collapsible:!0,children:(0,B.jsx)(qi,{...a,ref:t})})})}),[Gi,Ki]=Fi(ji),qi=R.forwardRef((e,t)=>{let{__scopeAccordion:n,disabled:r,dir:i,orientation:a=`vertical`,...o}=e,s=Wr(R.useRef(null),t),c=Ni(n),l=Ai(i)===`ltr`,u=Qr(e.onKeyDown,e=>{if(!Mi.includes(e.key))return;let t=e.target,n=c().filter(e=>!e.ref.current?.disabled),r=n.findIndex(e=>e.ref.current===t),i=n.length;if(r===-1)return;e.preventDefault();let o=r,s=i-1,u=()=>{o=r+1,o>s&&(o=0)},d=()=>{o=r-1,o<0&&(o=s)};switch(e.key){case`Home`:o=0;break;case`End`:o=s;break;case`ArrowRight`:a===`horizontal`&&(l?u():d());break;case`ArrowDown`:a===`vertical`&&u();break;case`ArrowLeft`:a===`horizontal`&&(l?d():u());break;case`ArrowUp`:a===`vertical`&&d();break}n[o%i].ref.current?.focus()});return(0,B.jsx)(Gi,{scope:n,disabled:r,direction:i,orientation:a,children:(0,B.jsx)(V.Slot,{scope:n,children:(0,B.jsx)(ai.div,{...o,"data-orientation":a,ref:s,onKeyDown:r?void 0:u})})})}),Ji=`AccordionItem`,[Yi,Xi]=Fi(Ji),Zi=R.forwardRef((e,t)=>{let{__scopeAccordion:n,value:r,...i}=e,a=Ki(Ji,n),o=Bi(Ji,n),s=Li(n),c=pi(),l=r&&o.value.includes(r)||!1,u=a.disabled||e.disabled;return(0,B.jsx)(Yi,{scope:n,open:l,disabled:u,triggerId:c,children:(0,B.jsx)(Ei,{"data-orientation":a.orientation,"data-state":ia(l),...s,...i,ref:t,disabled:u,open:l,onOpenChange:e=>{e?o.onItemOpen(r):o.onItemClose(r)}})})});Zi.displayName=Ji;var Qi=`AccordionHeader`,$i=R.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=Ki(ji,n),a=Xi(Qi,n);return(0,B.jsx)(ai.h3,{"data-orientation":i.orientation,"data-state":ia(a.open),"data-disabled":a.disabled?``:void 0,...r,ref:t})});$i.displayName=Qi;var ea=`AccordionTrigger`,ta=R.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=Ki(ji,n),a=Xi(ea,n),o=Hi(ea,n),s=Li(n);return(0,B.jsx)(V.ItemSlot,{scope:n,children:(0,B.jsx)(Di,{"aria-disabled":a.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:a.triggerId,...s,...r,ref:t})})});ta.displayName=ea;var na=`AccordionContent`,ra=R.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=Ki(ji,n),a=Xi(na,n),o=Li(n);return(0,B.jsx)(Oi,{role:`region`,"aria-labelledby":a.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":`var(--radix-collapsible-content-height)`,"--radix-accordion-content-width":`var(--radix-collapsible-content-width)`,...e.style}})});ra.displayName=na;function ia(e){return e?`open`:`closed`}var aa=Ri,oa=Zi,sa=ta,ca=ra;function la(e){return S({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 16C141.31 16 48 109.31 48 224v154.83l82 32.81L146.88 496H192v-64h32v64h16v-64h32v64h16v-64h32v64h45.12L382 411.64l82-32.81V224c0-114.69-93.31-208-208-208zm-88 320a56 56 0 1 1 56-56 56.06 56.06 0 0 1-56 56zm51.51 64L244 320h24l24.49 80zM344 336a56 56 0 1 1 56-56 56.06 56.06 0 0 1-56 56zm104 32z`},child:[]}]})(e)}function ua(e){return S({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`m190.06 414 163.12-139.78a24 24 0 0 0 0-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z`},child:[]}]})(e)}var da={AccordionGroup:`_AccordionGroup_1ysdj_1`,Trigger:`_Trigger_1ysdj_7`,TriggerIcon:`_TriggerIcon_1ysdj_24`,Content:`_Content_1ysdj_35`,slideDown:`_slideDown_1ysdj_1`,slideUp:`_slideUp_1ysdj_1`,Body:`_Body_1ysdj_47`,BodyNoPadding:`_BodyNoPadding_1ysdj_51`};function fa(e){let t=(0,z.c)(2),n;return t[0]===e?n=t[1]:(n=(0,B.jsx)(aa,{className:da.AccordionGroup,...e}),t[0]=e,t[1]=n),n}function pa(e){let t=(0,z.c)(10),{value:n,label:r,children:i,noPadding:a}=e,o=a===void 0?!1:a,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,B.jsx)(ua,{className:da.TriggerIcon}),t[0]=s):s=t[0];let c;t[1]===r?c=t[2]:(c=(0,B.jsxs)(sa,{className:da.Trigger,children:[s,` `,r]}),t[1]=r,t[2]=c);let l=o?da.BodyNoPadding:da.Body,u;t[3]!==i||t[4]!==l?(u=(0,B.jsx)(ca,{className:da.Content,children:(0,B.jsx)(`div`,{className:l,children:i})}),t[3]=i,t[4]=l,t[5]=u):u=t[5];let d;return t[6]!==c||t[7]!==u||t[8]!==n?(d=(0,B.jsxs)(oa,{value:n,children:[c,u]}),t[6]=c,t[7]=u,t[8]=n,t[9]=d):d=t[9],d}function ma(e){return S({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M144,16H112A64.07,64.07,0,0,0,48,80v96a64.07,64.07,0,0,0,64,64h32a64.07,64.07,0,0,0,64-64V80A64.07,64.07,0,0,0,144,16Zm48,160a48.05,48.05,0,0,1-48,48H112a48.05,48.05,0,0,1-48-48V80a48.05,48.05,0,0,1,48-48h32a48.05,48.05,0,0,1,48,48ZM136,83.31v89.38l10.34-10.35a8,8,0,0,1,11.32,11.32l-24,24a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L120,172.69V83.31L109.66,93.66A8,8,0,0,1,98.34,82.34l24-24a8,8,0,0,1,11.32,0l24,24a8,8,0,0,1-11.32,11.32Z`},child:[]}]})(e)}function ha(e){return S({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M144,16H112A64.07,64.07,0,0,0,48,80v96a64.07,64.07,0,0,0,64,64h32a64.07,64.07,0,0,0,64-64V80A64.07,64.07,0,0,0,144,16Zm48,64v24H128V32h16A48.05,48.05,0,0,1,192,80ZM144,224H112a48.05,48.05,0,0,1-48-48V120H192v56A48.05,48.05,0,0,1,144,224Z`},child:[]}]})(e)}function ga(e){return S({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M239.22,59.44l-45.63,95.82a3.54,3.54,0,0,1-.16.34l-34.21,71.84a8,8,0,1,1-14.44-6.88L173.62,160H40a8,8,0,0,1-5.66-13.66L76.69,104,34.34,61.66A8,8,0,0,1,40,48H232a8,8,0,0,1,7.22,11.44Z`},child:[]}]})(e)}function _a(e){return S({tag:`svg`,attr:{viewBox:`0 0 1024 1024`},child:[{tag:`path`,attr:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm234.8 736.5L223.5 277.2c16-19.7 34-37.7 53.7-53.7l523.3 523.3c-16 19.6-34 37.7-53.7 53.7z`},child:[]}]})(e)}function va(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`},child:[]},{tag:`circle`,attr:{cx:`9`,cy:`7`,r:`4`},child:[]},{tag:`path`,attr:{d:`M22 21v-2a4 4 0 0 0-3-3.87`},child:[]},{tag:`path`,attr:{d:`M16 3.13a4 4 0 0 1 0 7.75`},child:[]}]})(e)}function ya(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M3 9h18`},child:[]},{tag:`path`,attr:{d:`m15 14-3 3-3-3`},child:[]}]})(e)}function ba(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M3 9h18`},child:[]},{tag:`path`,attr:{d:`m9 16 3-3 3 3`},child:[]}]})(e)}function xa(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M9 3v18`},child:[]},{tag:`path`,attr:{d:`m14 9 3 3-3 3`},child:[]}]})(e)}function Sa(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M9 3v18`},child:[]},{tag:`path`,attr:{d:`m16 15-3-3 3-3`},child:[]}]})(e)}function Ca(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`circle`,attr:{cx:`12`,cy:`12`,r:`10`},child:[]},{tag:`line`,attr:{x1:`22`,x2:`18`,y1:`12`,y2:`12`},child:[]},{tag:`line`,attr:{x1:`6`,x2:`2`,y1:`12`,y2:`12`},child:[]},{tag:`line`,attr:{x1:`12`,x2:`12`,y1:`6`,y2:`2`},child:[]},{tag:`line`,attr:{x1:`12`,x2:`12`,y1:`22`,y2:`18`},child:[]}]})(e)}function wa(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`},child:[]},{tag:`path`,attr:{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`},child:[]},{tag:`path`,attr:{d:`M12 11h4`},child:[]},{tag:`path`,attr:{d:`M12 16h4`},child:[]},{tag:`path`,attr:{d:`M8 11h.01`},child:[]},{tag:`path`,attr:{d:`M8 16h.01`},child:[]}]})(e)}function Ta(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M2 8V2h6`},child:[]},{tag:`path`,attr:{d:`m2 2 10 10`},child:[]},{tag:`path`,attr:{d:`M12 2A10 10 0 1 1 2 12`},child:[]}]})(e)}var Ea={Root:`_Root_cfjcw_1`,ProgressWrap:`_ProgressWrap_cfjcw_6`,ProgressLabel:`_ProgressLabel_cfjcw_13`,ProgressBar:`_ProgressBar_cfjcw_19`,ProgressFill:`_ProgressFill_cfjcw_27`,Filters:`_Filters_cfjcw_33`,FilterButton:`_FilterButton_cfjcw_40`,EventList:`_EventList_cfjcw_57`,EventRow:`_EventRow_cfjcw_63`,EventTime:`_EventTime_cfjcw_120`,EventIcon:`_EventIcon_cfjcw_129`,EventDescription:`_EventDescription_cfjcw_172`,Killer:`_Killer_cfjcw_177`,Victim:`_Victim_cfjcw_180`,DamageType:`_DamageType_cfjcw_183`,Empty:`_Empty_cfjcw_186`};function Da(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,`0`)}`}var Oa={kill:(0,B.jsx)(Ca,{}),death:(0,B.jsx)(la,{}),"flag-grab":(0,B.jsx)(ga,{}),"flag-return":(0,B.jsx)(ga,{}),"flag-cap":(0,B.jsx)(ga,{}),"match-start":(0,B.jsx)(Fr,{}),"match-end":(0,B.jsx)(_a,{})},ka={chaingun:`chaingunned`,plasma:`plasma rifled`};function Aa(e){if(e.type===`kill`&&e.killer&&e.victim)return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:Ea.Killer,title:e.killer,children:`You`}),` `,(0,B.jsx)(`span`,{className:Ea.DamageType,children:e.weapon?ka[e.weapon]??`${e.weapon}${e.weapon.endsWith(`e`)?`d`:`ed`}`:`killed`}),` `,(0,B.jsx)(`span`,{className:Ea.Victim,children:e.victim})]});if(e.type===`death`)return e.killer?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:Ea.Killer,children:e.killer}),` `,(0,B.jsx)(`span`,{className:Ea.DamageType,children:e.weapon?ka[e.weapon]??`${e.weapon}${e.weapon.endsWith(`e`)?`d`:`ed`}`:`killed`}),` `,(0,B.jsx)(`span`,{className:Ea.Victim,title:e.victim,children:`you`})]}):(0,B.jsx)(B.Fragment,{children:e.description});if(e.type===`flag-grab`)return(0,B.jsxs)(B.Fragment,{children:[`You grabbed `,e.flagTeamName?`the ${e.flagTeamName} flag`:`the enemy flag`]});if(e.type===`flag-return`)return(0,B.jsx)(B.Fragment,{children:`You returned your flag`});if(e.type===`flag-cap`&&e.capturer){let t=e.teamAffinity===`friendly`?`the enemy flag`:e.teamAffinity===`enemy`?`your flag`:e.flagTeamName?`the ${e.flagTeamName} flag`:`a flag`;return(0,B.jsxs)(B.Fragment,{children:[e.capturer,` captured `,t]})}return e.type===`match-start`?`Match started`:e.type===`match-end`?`Match ended`:e.description}function ja(){let e=(0,z.c)(58),t=xn(Ra),n=xn(La),{seek:r}=Dr(),[i,a]=(0,R.useState)(`all`),o,s;if(e[0]!==t||e[1]!==i||e[2]!==n||e[3]!==r){s=Symbol.for(`react.early_return_sentinel`);bb0:{let c=t?.filter(e=>i===`all`||e.type===i)??[],l;e[6]===r?l=e[7]:(l=e=>{r(Math.max(0,e-3)),document.activeElement instanceof HTMLElement&&document.activeElement.blur()},e[6]=r,e[7]=l);let u=l;if(n!=null&&t==null){let t;e[8]===n?t=e[9]:(t=Math.round(n*100),e[8]=n,e[9]=t);let r;e[10]===t?r=e[11]:(r=(0,B.jsxs)(`span`,{className:Ea.ProgressLabel,children:[`Scanning… `,t,`%`]}),e[10]=t,e[11]=r);let i=`${n*100}%`,a;e[12]===i?a=e[13]:(a=(0,B.jsx)(`div`,{className:Ea.ProgressBar,children:(0,B.jsx)(`div`,{className:Ea.ProgressFill,style:{width:i}})}),e[12]=i,e[13]=a);let o;e[14]!==r||e[15]!==a?(o=(0,B.jsx)(`div`,{className:Ea.Root,children:(0,B.jsxs)(`div`,{className:Ea.ProgressWrap,children:[r,a]})}),e[14]=r,e[15]=a,e[16]=o):o=e[16],s=o;break bb0}if(!t){s=null;break bb0}let d;e[17]===t?d=e[18]:(d=t.filter(Ia),e[17]=t,e[18]=d);let f=d.length,p;e[19]===t?p=e[20]:(p=t.filter(Fa),e[19]=t,e[20]=p);let m=p.length,h;e[21]===t?h=e[22]:(h=t.filter(Pa),e[21]=t,e[22]=h);let g=h.length,_;e[23]===t?_=e[24]:(_=t.filter(Na),e[23]=t,e[24]=_);let v=_.length,y;e[25]===t?y=e[26]:(y=t.filter(Ma),e[25]=t,e[26]=y);let b=y.length,x=i===`all`,S;e[27]===Symbol.for(`react.memo_cache_sentinel`)?(S=()=>a(`all`),e[27]=S):S=e[27];let C;e[28]!==t.length||e[29]!==x?(C=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":x,onClick:S,children:[`All (`,t.length,`)`]}),e[28]=t.length,e[29]=x,e[30]=C):C=e[30];let w=i===`kill`,T;e[31]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>a(`kill`),e[31]=T):T=e[31];let E;e[32]!==f||e[33]!==w?(E=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":w,onClick:T,children:[`Kills (`,f,`)`]}),e[32]=f,e[33]=w,e[34]=E):E=e[34];let D=i===`death`,O;e[35]===Symbol.for(`react.memo_cache_sentinel`)?(O=()=>a(`death`),e[35]=O):O=e[35];let k;e[36]!==m||e[37]!==D?(k=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":D,onClick:O,children:[`Deaths (`,m,`)`]}),e[36]=m,e[37]=D,e[38]=k):k=e[38];let A=i===`flag-grab`,j;e[39]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>a(`flag-grab`),e[39]=j):j=e[39];let M;e[40]!==g||e[41]!==A?(M=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":A,onClick:j,children:[`Grabs (`,g,`)`]}),e[40]=g,e[41]=A,e[42]=M):M=e[42];let ee=i===`flag-return`,te;e[43]===Symbol.for(`react.memo_cache_sentinel`)?(te=()=>a(`flag-return`),e[43]=te):te=e[43];let N;e[44]!==v||e[45]!==ee?(N=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":ee,onClick:te,children:[`Returns (`,v,`)`]}),e[44]=v,e[45]=ee,e[46]=N):N=e[46];let P=i===`flag-cap`,ne;e[47]===Symbol.for(`react.memo_cache_sentinel`)?(ne=()=>a(`flag-cap`),e[47]=ne):ne=e[47];let re;e[48]!==b||e[49]!==P?(re=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":P,onClick:ne,children:[`Caps (`,b,`)`]}),e[48]=b,e[49]=P,e[50]=re):re=e[50];let F;e[51]!==C||e[52]!==E||e[53]!==k||e[54]!==M||e[55]!==N||e[56]!==re?(F=(0,B.jsxs)(`div`,{className:Ea.Filters,children:[C,E,k,M,N,re]}),e[51]=C,e[52]=E,e[53]=k,e[54]=M,e[55]=N,e[56]=re,e[57]=F):F=e[57],o=(0,B.jsxs)(`div`,{className:Ea.Root,children:[F,c.length===0?(0,B.jsx)(`div`,{className:Ea.Empty,children:`No events found.`}):(0,B.jsx)(`div`,{className:Ea.EventList,children:c.map((e,t)=>(0,B.jsxs)(`button`,{type:`button`,className:Ea.EventRow,onClick:()=>u(e.timeSec),children:[(0,B.jsx)(`span`,{className:Ea.EventTime,children:Da(e.timeSec)}),(0,B.jsx)(`span`,{className:Ea.EventIcon,"data-type":e.type,"data-affinity":e.teamAffinity,children:Oa[e.type]}),(0,B.jsx)(`span`,{className:Ea.EventDescription,children:Aa(e)})]},`${e.timeSec}-${e.type}-${t}`))})]})}e[0]=t,e[1]=i,e[2]=n,e[3]=r,e[4]=o,e[5]=s}else o=e[4],s=e[5];return s===Symbol.for(`react.early_return_sentinel`)?o:s}function Ma(e){return e.type===`flag-cap`}function Na(e){return e.type===`flag-return`}function Pa(e){return e.type===`flag-grab`}function Fa(e){return e.type===`death`}function Ia(e){return e.type===`kill`}function La(e){return e.scanProgress}function Ra(e){return e.events}var za=new Map([[`flag`,`Flags`],[`huntersflag1`,`Flags`],[`huntersflag2`,`Flags`],[`huntersflag4`,`Flags`],[`huntersflag8`,`Flags`],[`stationinventory`,`Inventory Stations`],[`stationammo`,`Inventory Stations`],[`mobileinvstation`,`Inventory Stations`],[`stationvehiclepad`,`Vehicle Pads`],[`stationvehicle`,`Vehicle Pads`],[`generatorlarge`,`Generators`],[`solarpanel`,`Generators`],[`sensorlargepulse`,`Sensors`],[`sensormediumpulse`,`Sensors`],[`turretbaselarge`,`Turrets`],[`sentryturret`,`Turrets`],[`repairpatch`,`Health`],[`repairkit`,`Health`],[`ammopack`,`Packs`],[`energypack`,`Packs`],[`shieldpack`,`Packs`],[`repairpack`,`Packs`],[`cloakingpack`,`Packs`],[`sensorjammerpack`,`Packs`],[`aabarrelpack`,`Packs`],[`elfbarrelpack`,`Packs`],[`missilebarrelpack`,`Packs`],[`mortarbarrelpack`,`Packs`],[`plasmabarrelpack`,`Packs`],[`inventorydeployable`,`Packs`],[`motionsensordeployable`,`Packs`],[`pulsesensordeployable`,`Packs`],[`turretoutdoordeployable`,`Packs`],[`turretindoordeployable`,`Packs`],[`satchelcharge`,`Weapons`],[`blaster`,`Weapons`],[`chaingun`,`Weapons`],[`disc`,`Weapons`],[`grenadelauncher`,`Weapons`],[`elfgun`,`Weapons`],[`missilelauncher`,`Weapons`],[`mortar`,`Weapons`],[`plasma`,`Weapons`],[`shocklance`,`Weapons`],[`sniperrifle`,`Weapons`],[`targetinglaser`,`Weapons`],[`chaingunammo`,`Ammo`],[`discammo`,`Ammo`],[`grenadelauncherammo`,`Ammo`],[`missilelauncherammo`,`Ammo`],[`mortarammo`,`Ammo`],[`plasmaammo`,`Ammo`],[`bombammo`,`Ammo`],[`assaultmortarammo`,`Ammo`],[`grenade`,`Ammo`],[`concussiongrenade`,`Ammo`],[`flashgrenade`,`Ammo`],[`flaregrenade`,`Ammo`],[`cameragrenade`,`Ammo`],[`mine`,`Ammo`],[`beacon`,`Ammo`],[`flipflop`,`Switches`],[`nexus`,`Nexus`],[`nexusbase`,`Nexus`],[`nexuscap`,`Nexus`]]),Ba=[`Flags`,`Inventory Stations`,`Generators`,`Vehicle Pads`,`Turrets`,`Sensors`,`Nexus`,`Switches`,`Packs`,`Health`,`Weapons`,`Ammo`];function Va(e){return e.renderType===`Shape`&&typeof e.dataBlock==`string`&&e.dataBlock!==``&&Array.isArray(e.position)}function Ha(e,t){let n=new Map;for(let r of e.values()){if(!Va(r))continue;let e=za.get(r.dataBlock.toLowerCase());if(!e)continue;let i=r.dataBlock;if(t&&r.runtimeObject){let e=O(r.runtimeObject,t);e&&(i=e)}let a=n.get(e);a||(a=[],n.set(e,a)),a.push({entityId:r.id,label:i,position:r.position,teamId:r.teamId})}let r=[];for(let e of Ba){let t=n.get(e);t&&t.length>0&&(t.sort((e,t)=>{let n=(e.teamId??0)-(t.teamId??0);return n===0?e.label.localeCompare(t.label):n}),r.push({name:e,targets:t}))}return r}var Ua={Root:`_Root_pb9qa_1`,Empty:`_Empty_pb9qa_6`,TourAllButton:`_TourAllButton_pb9qa_13`,CategoryHeader:`_CategoryHeader_pb9qa_40`,CategoryCount:`_CategoryCount_pb9qa_58`,TourButton:`_TourButton_pb9qa_63`,PlayIcon:`_PlayIcon_pb9qa_83`,ExitIcon:`_ExitIcon_pb9qa_87`,ItemList:`_ItemList_pb9qa_100`,ItemRow:`_ItemRow_pb9qa_106`,ItemLabel:`_ItemLabel_pb9qa_151`,TeamBadge:`_TeamBadge_pb9qa_156`};function Wa(e){return S({tag:`svg`,attr:{viewBox:`0 0 20 20`,fill:`currentColor`,"aria-hidden":`true`},child:[{tag:`path`,attr:{fillRule:`evenodd`,d:`M3 4.25A2.25 2.25 0 0 1 5.25 2h5.5A2.25 2.25 0 0 1 13 4.25v2a.75.75 0 0 1-1.5 0v-2a.75.75 0 0 0-.75-.75h-5.5a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h5.5a.75.75 0 0 0 .75-.75v-2a.75.75 0 0 1 1.5 0v2A2.25 2.25 0 0 1 10.75 18h-5.5A2.25 2.25 0 0 1 3 15.75V4.25Z`,clipRule:`evenodd`},child:[]},{tag:`path`,attr:{fillRule:`evenodd`,d:`M19 10a.75.75 0 0 0-.75-.75H8.704l1.048-.943a.75.75 0 1 0-1.004-1.114l-2.5 2.25a.75.75 0 0 0 0 1.114l2.5 2.25a.75.75 0 1 0 1.004-1.114l-1.048-.943h9.546A.75.75 0 0 0 19 10Z`,clipRule:`evenodd`},child:[]}]})(e)}var Ga=`__all__`;function Ka(e){return e.animation?{targets:e.animation.targets,categoryName:e.animation.categoryName,currentIndex:e.animation.currentIndex}:null}function qa(e,t){return e===t?!0:!e||!t?!1:e.categoryName===t.categoryName&&e.currentIndex===t.currentIndex&&e.targets===t.targets}function Ja(){let e=(0,z.c)(28),t=zn(),n=Ae(Xa),r;e[0]!==n||e[1]!==t?(r=Ha(t,n),e[0]=n,e[1]=t,e[2]=r):r=e[2];let i=r,a=te(Ka,qa),o;if(e[3]!==i){o=new Map;for(let e=0;e{let n=e.teamId!=null&&e.teamId>0?e.teamId:1/0,r=t.teamId!=null&&t.teamId>0?t.teamId:1/0;if(n!==r)return n-r;let i=o.get(e)??0,a=o.get(t)??0;return i===a?e.label.localeCompare(t.label):i-a},e[8]=o,e[9]=t),s=i.flatMap(Ya).sort(t),e[5]=i,e[6]=o,e[7]=s}else s=e[7];let c=s;if(i.length===0){let t;return e[10]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsx)(`div`,{className:Ua.Root,children:(0,B.jsx)(`p`,{className:Ua.Empty,children:`No map features found`})}),e[10]=t):t=e[10],t}let l=a!==null&&a.categoryName===Ga,u;e[11]!==c||e[12]!==l?(u=()=>{l?N.getState().cancel():N.getState().startTour(c,Ga)},e[11]=c,e[12]=l,e[13]=u):u=e[13];let d=u,f;e[14]===l?f=e[15]:(f=l?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Wa,{className:Ua.ExitIcon}),` Exit tour`]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Fr,{className:Ua.PlayIcon}),` `,(0,B.jsx)(`span`,{className:Ua.ButtonLabel,children:`Tour all features`})]}),e[14]=l,e[15]=f);let p;e[16]!==d||e[17]!==l||e[18]!==f?(p=(0,B.jsx)(`button`,{type:`button`,className:Ua.TourAllButton,"data-active":l,onClick:d,children:f}),e[16]=d,e[17]=l,e[18]=f,e[19]=p):p=e[19];let m;if(e[20]!==i||e[21]!==a){let t;e[23]===a?t=e[24]:(t=e=>(0,B.jsx)(Za,{category:e,tourState:a},e.name),e[23]=a,e[24]=t),m=i.map(t),e[20]=i,e[21]=a,e[22]=m}else m=e[22];let h;return e[25]!==p||e[26]!==m?(h=(0,B.jsxs)(`div`,{className:Ua.Root,children:[p,m]}),e[25]=p,e[26]=m,e[27]=h):h=e[27],h}function Ya(e){return e.targets}function Xa(e){return e.runtime.runtime?.state.datablocks}function Za(e){let t=(0,z.c)(30),{category:n,tourState:r}=e,i=r!==null&&r.categoryName===n.name,a;t[0]!==n.name||t[1]!==n.targets||t[2]!==i?(a=()=>{i?N.getState().cancel():N.getState().startTour(n.targets,n.name)},t[0]=n.name,t[1]=n.targets,t[2]=i,t[3]=a):a=t[3];let o=a,s;t[4]===n.name?s=t[5]:(s=(0,B.jsx)(`span`,{children:n.name}),t[4]=n.name,t[5]=s);let c;t[6]===n.targets.length?c=t[7]:(c=(0,B.jsxs)(`span`,{className:Ua.CategoryCount,children:[`(`,n.targets.length,`)`]}),t[6]=n.targets.length,t[7]=c);let l;t[8]===i?l=t[9]:(l=i?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Wa,{className:Ua.ExitIcon}),` Exit tour`]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Fr,{className:Ua.PlayIcon}),` Tour all`]}),t[8]=i,t[9]=l);let u;t[10]!==o||t[11]!==i||t[12]!==l?(u=(0,B.jsx)(`button`,{type:`button`,className:Ua.TourButton,"data-active":i,onClick:o,children:l}),t[10]=o,t[11]=i,t[12]=l,t[13]=u):u=t[13];let d;t[14]!==s||t[15]!==c||t[16]!==u?(d=(0,B.jsxs)(`div`,{className:Ua.CategoryHeader,children:[s,c,u]}),t[14]=s,t[15]=c,t[16]=u,t[17]=d):d=t[17];let f;if(t[18]!==n.targets||t[19]!==i||t[20]!==r){let e;t[22]!==i||t[23]!==r?(e=(e,t)=>{let n=i&&r.currentIndex===t||r!==null&&r.targets[r.currentIndex]?.entityId===e.entityId;return(0,B.jsxs)(`button`,{type:`button`,className:Ua.ItemRow,"data-active":n,onClick:()=>N.getState().flyTo(e),children:[(0,B.jsx)(Fr,{className:Ua.PlayIcon}),` `,(0,B.jsx)(`span`,{className:Ua.ItemLabel,children:e.label}),e.teamId!=null&&e.teamId>0&&(0,B.jsx)(`span`,{className:Ua.TeamBadge,"data-team":e.teamId,children:k[e.teamId]??`Team ${e.teamId}`})]},e.entityId)},t[22]=i,t[23]=r,t[24]=e):e=t[24],f=n.targets.map(e),t[18]=n.targets,t[19]=i,t[20]=r,t[21]=f}else f=t[21];let p;t[25]===f?p=t[26]:(p=(0,B.jsx)(`div`,{className:Ua.ItemList,children:f}),t[25]=f,t[26]=p);let m;return t[27]!==d||t[28]!==p?(m=(0,B.jsxs)(B.Fragment,{children:[d,p]}),t[27]=d,t[28]=p,t[29]=m):m=t[29],m}function Qa(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M16 21L11.2381 12.2698L15 6L23 21H16ZM8 10L14 21H2L8 10ZM5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5C8 6.88071 6.88071 8 5.5 8Z`},child:[]}]})(e)}function $a(e){let t=(0,z.c)(6),{isActive:n,onClick:r}=e,i=n===void 0?!1:n,a,o,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,B.jsx)(Qa,{}),o=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Explore`}),s=(0,B.jsx)(`span`,{className:mn.ButtonHint,children:`Browse maps`}),t[0]=a,t[1]=o,t[2]=s):(a=t[0],o=t[1],s=t[2]);let c;return t[3]!==i||t[4]!==r?(c=(0,B.jsxs)(`button`,{type:`button`,className:mn.Button,onClick:r,"data-active":i,children:[a,o,s]}),t[3]=i,t[4]=r,t[5]=c):c=t[5],c}function eo(e){let t=(0,z.c)(7),{missionName:n,onClick:r}=e,i=Jn(),a=Xn(),o=i===`demo`||i===`live`?a:n,s;t[0]===o?s=t[1]:(s=o?C(o):!1,t[0]=o,t[1]=s);let c=!s,l,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,B.jsx)(wa,{}),u=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Show map info`}),t[2]=l,t[3]=u):(l=t[2],u=t[3]);let d;return t[4]!==r||t[5]!==c?(d=(0,B.jsxs)(`button`,{type:`button`,className:mn.Button,"aria-label":`Show map info`,onClick:r,disabled:c,children:[l,u]}),t[4]=r,t[5]=c,t[6]=d):d=t[6],d}function to(e){let t=(0,z.c)(4),{onClick:n}=e,r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,B.jsx)(va,{}),i=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Show scores`}),t[0]=r,t[1]=i):(r=t[0],i=t[1]);let a;return t[2]===n?a=t[3]:(a=(0,B.jsxs)(`button`,{type:`button`,className:mn.Button,"aria-label":`Show scores`,onClick:n,children:[r,i]}),t[2]=n,t[3]=a),a}var H={InspectorControls:`_InspectorControls_cm86c_1`,Dropdown:`_Dropdown_cm86c_8`,Group:`_Group_cm86c_16`,CheckboxField:`_CheckboxField_cm86c_24`,Label:`_Label_cm86c_39`,Description:`_Description_cm86c_47`,Control:`_Control_cm86c_60`,Field:`_Field_cm86c_67`,Tools:`_Tools_cm86c_91`,MapInfoButton:`_MapInfoButton_cm86c_114 _Button_1u47f_2`,ShowScoresButton:`_ShowScoresButton_cm86c_115 _Button_1u47f_2`,ForceRenderButton:`_ForceRenderButton_cm86c_119`,CloseSidebarButton:`_CloseSidebarButton_cm86c_131 _Button_1u47f_2`},no=[`controls`,`preferences`,`audio`,`timeline`],ro=(0,R.memo)(function(e){let t=(0,z.c)(209),{missionName:n,missionType:r,onOpenMapInfo:i,onOpenScoreScreen:a,onOpenServerBrowser:o,onChooseMap:s,onCancelChoosingMap:l,choosingMap:u,cameraRef:d,invalidateRef:p,onClose:m}=e,h=g(),_=Jn(),y=_r(),b=Xn(),x=_===`demo`||_===`live`?b:n,S;t[0]===x?S=t[1]:(S=x?C(x):!1,t[0]=x,t[1]=S);let w=S,T=pr(io),{fogEnabled:E,setFogEnabled:D,fov:O,setFov:k,audioEnabled:A,setAudioEnabled:j,audioVolume:M,setAudioVolume:ee,animationEnabled:te,setAnimationEnabled:N,fpsLimit:P,setFpsLimit:ne,showInputOverlay:re,setShowInputOverlay:F}=c(),{speedMultiplier:ie,setSpeedMultiplier:ae,mouseSensitivity:I,setMouseSensitivity:oe,touchMode:L,setTouchMode:se,invertScroll:ce,setInvertScroll:le,invertDrag:ue,setInvertDrag:de,invertJoystick:fe,setInvertJoystick:pe}=v(),{debugMode:me,setDebugMode:he,renderOnDemand:ge,setRenderOnDemand:_e}=f(),[ve,ye]=(0,R.useState)(!1),be=(0,R.useRef)(null),xe=(0,R.useRef)(null),Se=(0,R.useRef)(null),Ce,we;t[2]===ve?(Ce=t[3],we=t[4]):(Ce=()=>{ve&&be.current?.focus()},we=[ve],t[2]=ve,t[3]=Ce,t[4]=we),(0,R.useEffect)(Ce,we);let Te;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(Te=e=>{let t=e.relatedTarget;t&&Se.current?.contains(t)||ye(!1)},t[5]=Te):Te=t[5];let Ee=Te,De;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(De=e=>{e.key===`Escape`&&(ye(!1),xe.current?.focus())},t[6]=De):De=t[6];let Oe=De,ke=_===`map`&&!y||(u??!1),Ae;t[7]!==s||t[8]!==ke?(Ae=(0,B.jsx)($a,{isActive:ke,onClick:s}),t[7]=s,t[8]=ke,t[9]=Ae):Ae=t[9];let je=!u&&y?.source===`demo`,Me;t[10]!==u||t[11]!==l||t[12]!==je?(Me=(0,B.jsx)(Nr,{isActive:je,choosingMap:u,onCancelChoosingMap:l}),t[10]=u,t[11]=l,t[12]=je,t[13]=Me):Me=t[13];let Ne;t[14]!==u||t[15]!==T||t[16]!==o?(Ne=o&&(0,B.jsx)(Lr,{isActive:!u&&T,onOpenServerBrowser:o}),t[14]=u,t[15]=T,t[16]=o,t[17]=Ne):Ne=t[17];let Pe;t[18]!==Ne||t[19]!==Ae||t[20]!==Me?(Pe=(0,B.jsxs)(`div`,{className:mn.ButtonGroup,children:[Ae,Me,Ne]}),t[18]=Ne,t[19]=Ae,t[20]=Me,t[21]=Pe):Pe=t[21];let Fe=!w,Ie;t[22]!==d||t[23]!==n||t[24]!==r||t[25]!==Fe?(Ie=(0,B.jsx)(_n,{missionName:n,missionType:r,cameraRef:d,disabled:Fe}),t[22]=d,t[23]=n,t[24]=r,t[25]=Fe,t[26]=Ie):Ie=t[26];let Le;t[27]!==n||t[28]!==i?(Le=(0,B.jsx)(eo,{missionName:n,onClick:i}),t[27]=n,t[28]=i,t[29]=Le):Le=t[29];let Re;t[30]===a?Re=t[31]:(Re=a&&(0,B.jsx)(to,{onClick:a}),t[30]=a,t[31]=Re);let ze;t[32]!==Pe||t[33]!==Ie||t[34]!==Le||t[35]!==Re?(ze=(0,B.jsxs)(`div`,{className:H.Tools,children:[Pe,Ie,Le,Re]}),t[32]=Pe,t[33]=Ie,t[34]=Le,t[35]=Re,t[36]=ze):ze=t[36];let Be;t[37]===y?.source?Be=t[38]:(Be=y?.source===`demo`&&(0,B.jsx)(pa,{value:`timeline`,label:`Timeline`,noPadding:!0,children:(0,B.jsx)(ja,{})}),t[37]=y?.source,t[38]=Be);let Ve;t[39]!==_||t[40]!==y?(Ve=_===`map`&&!y&&(0,B.jsx)(pa,{value:`mapFeatures`,label:`Map Features`,noPadding:!0,children:(0,B.jsx)(Ja,{})}),t[39]=_,t[40]=y,t[41]=Ve):Ve=t[41];let He;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(He=(0,B.jsx)(`label`,{htmlFor:`speedInput`,children:`Fly speed`}),t[42]=He):He=t[42];let Ue;t[43]===ie?Ue=t[44]:(Ue=Math.round(ie*100),t[43]=ie,t[44]=Ue);let We;t[45]===ae?We=t[46]:(We=e=>ae(parseFloat(e.target.value)/100),t[45]=ae,t[46]=We);let Ge;t[47]!==Ue||t[48]!==We?(Ge=(0,B.jsx)(`div`,{className:H.Control,children:(0,B.jsx)(`input`,{id:`speedInput`,type:`range`,min:1,max:100,step:1,value:Ue,onChange:We})}),t[47]=Ue,t[48]=We,t[49]=Ge):Ge=t[49];let Ke=h===!1?` Use your scroll wheel or trackpad to adjust while flying.`:``,qe;t[50]===Ke?qe=t[51]:(qe=(0,B.jsxs)(`p`,{className:H.Description,children:[`How fast you move in free-flying mode.`,Ke]}),t[50]=Ke,t[51]=qe);let Je;t[52]!==Ge||t[53]!==qe?(Je=(0,B.jsxs)(`div`,{className:H.Field,children:[He,Ge,qe]}),t[52]=Ge,t[53]=qe,t[54]=Je):Je=t[54];let Ye;t[55]!==h||t[56]!==se||t[57]!==L?(Ye=h?(0,B.jsxs)(`div`,{className:H.Field,children:[(0,B.jsx)(`label`,{htmlFor:`touchModeInput`,children:`Joystick`}),` `,(0,B.jsx)(`div`,{className:H.Control,children:(0,B.jsxs)(`select`,{id:`touchModeInput`,value:L,onChange:e=>se(e.target.value),children:[(0,B.jsx)(`option`,{value:`dualStick`,children:`Dual stick`}),(0,B.jsx)(`option`,{value:`moveLookStick`,children:`Single stick`})]})}),(0,B.jsx)(`p`,{className:H.Description,children:`Single stick has a unified move + look control. Dual stick has independent move + look.`})]}):null,t[55]=h,t[56]=se,t[57]=L,t[58]=Ye):Ye=t[58];let Xe;t[59]!==ce||t[60]!==h||t[61]!==le?(Xe=h===!1?(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[(0,B.jsx)(`input`,{id:`invertScroll`,type:`checkbox`,checked:ce,onChange:e=>{le(e.target.checked)}}),(0,B.jsx)(`label`,{className:H.Label,htmlFor:`invertScroll`,children:`Invert scroll direction`}),(0,B.jsx)(`p`,{className:H.Description,children:`Reverse which scroll direction increases and decreases fly speed.`})]}):null,t[59]=ce,t[60]=h,t[61]=le,t[62]=Xe):Xe=t[62];let Ze;t[63]!==fe||t[64]!==h||t[65]!==pe?(Ze=h?(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[(0,B.jsx)(`input`,{id:`invertJoystick`,type:`checkbox`,checked:fe,onChange:e=>{pe(e.target.checked)}}),(0,B.jsx)(`label`,{className:H.Label,htmlFor:`invertJoystick`,children:`Invert joystick direction`}),(0,B.jsx)(`p`,{className:H.Description,children:`Reverse joystick look direction.`})]}):null,t[63]=fe,t[64]=h,t[65]=pe,t[66]=Ze):Ze=t[66];let Qe;t[67]===de?Qe=t[68]:(Qe=e=>{de(e.target.checked)},t[67]=de,t[68]=Qe);let $e;t[69]!==ue||t[70]!==Qe?($e=(0,B.jsx)(`input`,{id:`invertDrag`,type:`checkbox`,checked:ue,onChange:Qe}),t[69]=ue,t[70]=Qe,t[71]=$e):$e=t[71];let et,tt;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(et=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`invertDrag`,children:`Invert drag direction`}),tt=(0,B.jsx)(`p`,{className:H.Description,children:`Reverse how dragging the viewport aims the camera.`}),t[72]=et,t[73]=tt):(et=t[72],tt=t[73]);let nt;t[74]===$e?nt=t[75]:(nt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[$e,et,tt]}),t[74]=$e,t[75]=nt);let rt;t[76]!==h||t[77]!==I||t[78]!==oe?(rt=h===!1&&(0,B.jsxs)(`div`,{className:H.Field,children:[(0,B.jsx)(`label`,{htmlFor:`mouseSensitivityInput`,children:`Mouse sensitivity`}),(0,B.jsx)(`div`,{className:H.Control,children:(0,B.jsx)(`input`,{id:`mouseSensitivityInput`,type:`range`,min:1,max:256,step:2,value:Math.round(I*16e3),onChange:e=>{oe(parseInt(e.target.value)/16e3)}})})]}),t[76]=h,t[77]=I,t[78]=oe,t[79]=rt):rt=t[79];let it;t[80]!==Je||t[81]!==Ye||t[82]!==Xe||t[83]!==Ze||t[84]!==nt||t[85]!==rt?(it=(0,B.jsxs)(pa,{value:`controls`,label:`Controls`,children:[Je,Ye,Xe,Ze,nt,rt]}),t[80]=Je,t[81]=Ye,t[82]=Xe,t[83]=Ze,t[84]=nt,t[85]=rt,t[86]=it):it=t[86];let at;t[87]===Symbol.for(`react.memo_cache_sentinel`)?(at=(0,B.jsx)(`label`,{htmlFor:`fovInput`,children:`FOV`}),t[87]=at):at=t[87];let ot;t[88]===O?ot=t[89]:(ot=(0,B.jsxs)(`output`,{htmlFor:`fovInput`,children:[O,`°`]}),t[88]=O,t[89]=ot);let st;t[90]===k?st=t[91]:(st=e=>k(parseInt(e.target.value)),t[90]=k,t[91]=st);let ct;t[92]!==O||t[93]!==st?(ct=(0,B.jsx)(`input`,{id:`fovInput`,type:`range`,min:75,max:120,step:5,value:O,onChange:st}),t[92]=O,t[93]=st,t[94]=ct):ct=t[94];let lt;t[95]!==ot||t[96]!==ct?(lt=(0,B.jsxs)(`div`,{className:H.Field,children:[at,(0,B.jsxs)(`div`,{className:H.Control,children:[ot,ct]})]}),t[95]=ot,t[96]=ct,t[97]=lt):lt=t[97];let ut;t[98]===F?ut=t[99]:(ut=e=>{F(e.target.checked)},t[98]=F,t[99]=ut);let dt;t[100]!==re||t[101]!==ut?(dt=(0,B.jsx)(`input`,{id:`showInputOverlayInput`,type:`checkbox`,checked:re,onChange:ut}),t[100]=re,t[101]=ut,t[102]=dt):dt=t[102];let ft;t[103]===Symbol.for(`react.memo_cache_sentinel`)?(ft=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`showInputOverlayInput`,children:`Show input overlay`}),t[103]=ft):ft=t[103];let pt;t[104]===dt?pt=t[105]:(pt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[dt,ft]}),t[104]=dt,t[105]=pt);let mt;t[106]!==lt||t[107]!==pt?(mt=(0,B.jsxs)(pa,{value:`preferences`,label:`Preferences`,children:[lt,pt]}),t[106]=lt,t[107]=pt,t[108]=mt):mt=t[108];let ht;t[109]===j?ht=t[110]:(ht=e=>{j(e.target.checked)},t[109]=j,t[110]=ht);let gt;t[111]!==A||t[112]!==ht?(gt=(0,B.jsx)(`input`,{id:`audioInput`,type:`checkbox`,checked:A,onChange:ht}),t[111]=A,t[112]=ht,t[113]=gt):gt=t[113];let _t;t[114]===Symbol.for(`react.memo_cache_sentinel`)?(_t=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`audioInput`,children:`Enable audio`}),t[114]=_t):_t=t[114];let vt;t[115]===gt?vt=t[116]:(vt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[gt,_t]}),t[115]=gt,t[116]=vt);let yt;t[117]===Symbol.for(`react.memo_cache_sentinel`)?(yt=(0,B.jsx)(`label`,{htmlFor:`volumeInput`,children:`Master volume`}),t[117]=yt):yt=t[117];let bt;t[118]===M?bt=t[119]:(bt=Math.round(M*100),t[118]=M,t[119]=bt);let xt;t[120]===bt?xt=t[121]:(xt=(0,B.jsxs)(`output`,{htmlFor:`volumeInput`,children:[bt,`%`]}),t[120]=bt,t[121]=xt);let St;t[122]===ee?St=t[123]:(St=e=>ee(parseFloat(e.target.value)),t[122]=ee,t[123]=St);let Ct;t[124]!==M||t[125]!==St?(Ct=(0,B.jsx)(`input`,{id:`volumeInput`,type:`range`,min:0,max:1,step:.05,value:M,onChange:St}),t[124]=M,t[125]=St,t[126]=Ct):Ct=t[126];let wt;t[127]!==xt||t[128]!==Ct?(wt=(0,B.jsxs)(`div`,{className:H.Field,children:[yt,(0,B.jsxs)(`div`,{className:H.Control,children:[xt,Ct]})]}),t[127]=xt,t[128]=Ct,t[129]=wt):wt=t[129];let Tt;t[130]!==vt||t[131]!==wt?(Tt=(0,B.jsxs)(pa,{value:`audio`,label:`Audio`,children:[vt,wt]}),t[130]=vt,t[131]=wt,t[132]=Tt):Tt=t[132];let Et;t[133]===D?Et=t[134]:(Et=e=>{D(e.target.checked)},t[133]=D,t[134]=Et);let Dt;t[135]!==E||t[136]!==Et?(Dt=(0,B.jsx)(`input`,{id:`fogInput`,type:`checkbox`,checked:E,onChange:Et}),t[135]=E,t[136]=Et,t[137]=Dt):Dt=t[137];let Ot;t[138]===Symbol.for(`react.memo_cache_sentinel`)?(Ot=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`fogInput`,children:`Enable fog`}),t[138]=Ot):Ot=t[138];let kt;t[139]===Dt?kt=t[140]:(kt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[Dt,Ot]}),t[139]=Dt,t[140]=kt);let At;t[141]===N?At=t[142]:(At=e=>{N(e.target.checked)},t[141]=N,t[142]=At);let jt;t[143]!==te||t[144]!==At?(jt=(0,B.jsx)(`input`,{id:`animationInput`,type:`checkbox`,checked:te,onChange:At}),t[143]=te,t[144]=At,t[145]=jt):jt=t[145];let Mt;t[146]===Symbol.for(`react.memo_cache_sentinel`)?(Mt=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`animationInput`,children:`Enable animations`}),t[146]=Mt):Mt=t[146];let Nt;t[147]===jt?Nt=t[148]:(Nt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[jt,Mt]}),t[147]=jt,t[148]=Nt);let Pt;t[149]===Symbol.for(`react.memo_cache_sentinel`)?(Pt=(0,B.jsx)(`label`,{htmlFor:`fpsLimitInput`,children:`FPS limit`}),t[149]=Pt):Pt=t[149];let Ft=P??``,It;t[150]===ne?It=t[151]:(It=e=>{let t=e.target.value;ne(t===``?null:parseInt(t))},t[150]=ne,t[151]=It);let Lt,Rt,zt,Bt,Vt;t[152]===Symbol.for(`react.memo_cache_sentinel`)?(Lt=(0,B.jsx)(`option`,{value:`30`,children:`30`}),Rt=(0,B.jsx)(`option`,{value:`60`,children:`60`}),zt=(0,B.jsx)(`option`,{value:`120`,children:`120`}),Bt=(0,B.jsx)(`option`,{value:`144`,children:`144`}),Vt=(0,B.jsx)(`option`,{value:``,children:`No limit`}),t[152]=Lt,t[153]=Rt,t[154]=zt,t[155]=Bt,t[156]=Vt):(Lt=t[152],Rt=t[153],zt=t[154],Bt=t[155],Vt=t[156]);let Ht;t[157]!==Ft||t[158]!==It?(Ht=(0,B.jsx)(`div`,{className:H.Control,children:(0,B.jsxs)(`select`,{id:`fpsLimitInput`,value:Ft,onChange:It,children:[Lt,Rt,zt,Bt,Vt]})}),t[157]=Ft,t[158]=It,t[159]=Ht):Ht=t[159];let Ut;t[160]===Symbol.for(`react.memo_cache_sentinel`)?(Ut=(0,B.jsx)(`p`,{className:H.Description,children:`Give your device a break by capping the framerate.`}),t[160]=Ut):Ut=t[160];let Wt;t[161]===Ht?Wt=t[162]:(Wt=(0,B.jsxs)(`div`,{className:H.Field,children:[Pt,Ht,Ut]}),t[161]=Ht,t[162]=Wt);let Gt;t[163]!==kt||t[164]!==Nt||t[165]!==Wt?(Gt=(0,B.jsxs)(pa,{value:`graphics`,label:`Graphics`,children:[kt,Nt,Wt]}),t[163]=kt,t[164]=Nt,t[165]=Wt,t[166]=Gt):Gt=t[166];let Kt;t[167]===he?Kt=t[168]:(Kt=e=>{he(e.target.checked)},t[167]=he,t[168]=Kt);let qt;t[169]!==me||t[170]!==Kt?(qt=(0,B.jsx)(`input`,{id:`debugInput`,type:`checkbox`,checked:me,onChange:Kt}),t[169]=me,t[170]=Kt,t[171]=qt):qt=t[171];let Jt;t[172]===Symbol.for(`react.memo_cache_sentinel`)?(Jt=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`debugInput`,children:`Render debug visuals`}),t[172]=Jt):Jt=t[172];let Yt;t[173]===qt?Yt=t[174]:(Yt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[qt,Jt]}),t[173]=qt,t[174]=Yt);let Xt;t[175]===_e?Xt=t[176]:(Xt=e=>{_e(e.target.checked)},t[175]=_e,t[176]=Xt);let Zt;t[177]!==ge||t[178]!==Xt?(Zt=(0,B.jsx)(`input`,{id:`onDemandInput`,type:`checkbox`,checked:ge,onChange:Xt}),t[177]=ge,t[178]=Xt,t[179]=Zt):Zt=t[179];let Qt;t[180]===Symbol.for(`react.memo_cache_sentinel`)?(Qt=(0,B.jsx)(`label`,{htmlFor:`onDemandInput`,children:`Render on demand `}),t[180]=Qt):Qt=t[180];let $t;t[181]===p?$t=t[182]:($t=()=>p.current?.(),t[181]=p,t[182]=$t);let en;t[183]===Symbol.for(`react.memo_cache_sentinel`)?(en=(0,B.jsx)(nn,{}),t[183]=en):en=t[183];let tn;t[184]===$t?tn=t[185]:(tn=(0,B.jsxs)(`div`,{className:H.Label,children:[Qt,(0,B.jsx)(`button`,{type:`button`,className:H.ForceRenderButton,title:`Force render`,"aria-label":`Force render`,onClick:$t,children:en})]}),t[184]=$t,t[185]=tn);let rn;t[186]===Symbol.for(`react.memo_cache_sentinel`)?(rn=(0,B.jsx)(`p`,{className:H.Description,children:`Significantly decreases CPU and GPU usage by only rendering frames when requested. Helpful when developing parts of the app unrelated to rendering.`}),t[186]=rn):rn=t[186];let an;t[187]!==Zt||t[188]!==tn?(an=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[Zt,tn,rn]}),t[187]=Zt,t[188]=tn,t[189]=an):an=t[189];let on;t[190]!==Yt||t[191]!==an?(on=(0,B.jsxs)(pa,{value:`debug`,label:`Debug`,children:[Yt,an]}),t[190]=Yt,t[191]=an,t[192]=on):on=t[192];let sn;t[193]!==Be||t[194]!==Ve||t[195]!==it||t[196]!==mt||t[197]!==Tt||t[198]!==Gt||t[199]!==on?(sn=(0,B.jsx)(`div`,{className:H.Accordions,children:(0,B.jsxs)(fa,{type:`multiple`,defaultValue:no,children:[Be,Ve,it,mt,Tt,Gt,on]})}),t[193]=Be,t[194]=Ve,t[195]=it,t[196]=mt,t[197]=Tt,t[198]=Gt,t[199]=on,t[200]=sn):sn=t[200];let cn;t[201]===Symbol.for(`react.memo_cache_sentinel`)?(cn=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Close`}),t[201]=cn):cn=t[201];let ln;t[202]===m?ln=t[203]:(ln=(0,B.jsx)(`button`,{className:H.CloseSidebarButton,onClick:m,children:cn}),t[202]=m,t[203]=ln);let un;return t[204]!==ve||t[205]!==ze||t[206]!==sn||t[207]!==ln?(un=(0,B.jsx)(`div`,{className:H.InspectorControls,children:(0,B.jsx)(`div`,{ref:Se,children:(0,B.jsxs)(`div`,{className:H.Dropdown,ref:be,id:`settingsPanel`,tabIndex:-1,onKeyDown:Oe,onBlur:Ee,"data-open":ve,children:[ze,sn,ln]})})}),t[204]=ve,t[205]=ze,t[206]=sn,t[207]=ln,t[208]=un):un=t[208],un});function io(e){return e.gameStatus===`connected`||e.gameStatus===`authenticating`}function ao(...e){}function oo(e,t){return so(e)?e(co(t)?t():t):e}function so(e){return typeof e==`function`}function co(e){return typeof e==`function`}function lo(e,t){return typeof Object.hasOwn==`function`?Object.hasOwn(e,t):Object.prototype.hasOwnProperty.call(e,t)}function U(...e){return(...t)=>{for(let n of e)typeof n==`function`&&n(...t)}}function uo(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``)}function fo(e,t){let n={...e};for(let e of t)lo(n,e)&&delete n[e];return n}function po(e,t){let n={};for(let r of t)lo(e,r)&&(n[r]=e[r]);return n}function mo(e){return e}function ho(e,t){if(!e)throw Error(typeof t==`string`?t:`Invariant failed`)}function go(e){return Object.keys(e)}function _o(e,...t){let n=typeof e==`function`?e(...t):e;return n==null?!1:!n}function vo(e){return e.disabled||e[`aria-disabled`]===!0||e[`aria-disabled`]===`true`}function yo(e){let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t}function W(...e){for(let t of e)if(t!==void 0)return t}function bo(e,t){typeof e==`function`?e(t):e&&(e.current=t)}function xo(e){return!e||!(0,R.isValidElement)(e)?!1:`ref`in e.props||`ref`in e}function So(e){return xo(e)?{...e.props}.ref||e.ref:null}function Co(e,t){let n={...e};for(let r in t){if(!lo(t,r))continue;if(r===`className`){let r=`className`;n[r]=e[r]?`${e[r]} ${t[r]}`:t[r];continue}if(r===`style`){let r=`style`;n[r]=e[r]?{...e[r],...t[r]}:t[r];continue}let i=t[r];if(typeof i==`function`&&r.startsWith(`on`)){let t=e[r];if(typeof t==`function`){n[r]=(...e)=>{i(...e),t(...e)};continue}}n[r]=i}return n}var wo=To();function To(){return typeof window<`u`&&!!window.document?.createElement}function Eo(e){return e?`self`in e?e.document:e.ownerDocument||document:document}function Do(e){return e?`self`in e?e.self:Eo(e).defaultView||window:self}function Oo(e,t=!1){let{activeElement:n}=Eo(e);if(!n?.nodeName)return null;if(ko(n)&&n.contentDocument?.body)return Oo(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=Eo(n).getElementById(e);if(t)return t}}return n}function G(e,t){return e===t||e.contains(t)}function ko(e){return e.tagName===`IFRAME`}function Ao(e){let t=e.tagName.toLowerCase();return t===`button`?!0:t===`input`&&e.type?jo.indexOf(e.type)!==-1:!1}var jo=[`button`,`color`,`file`,`image`,`reset`,`submit`];function Mo(e){if(typeof e.checkVisibility==`function`)return e.checkVisibility();let t=e;return t.offsetWidth>0||t.offsetHeight>0||e.getClientRects().length>0}function No(e){try{let t=e instanceof HTMLInputElement&&e.selectionStart!==null,n=e.tagName===`TEXTAREA`;return t||n||!1}catch{return!1}}function Po(e){return e.isContentEditable||No(e)}function Fo(e){if(No(e))return e.value;if(e.isContentEditable){let t=Eo(e).createRange();return t.selectNodeContents(e),t.toString()}return``}function Io(e){let t=0,n=0;if(No(e))t=e.selectionStart||0,n=e.selectionEnd||0;else if(e.isContentEditable){let r=Eo(e).getSelection();if(r?.rangeCount&&r.anchorNode&&G(e,r.anchorNode)&&r.focusNode&&G(e,r.focusNode)){let i=r.getRangeAt(0),a=i.cloneRange();a.selectNodeContents(e),a.setEnd(i.startContainer,i.startOffset),t=a.toString().length,a.setEnd(i.endContainer,i.endOffset),n=a.toString().length}}return{start:t,end:n}}function Lo(e,t){let n=[`dialog`,`menu`,`listbox`,`tree`,`grid`],r=e?.getAttribute(`role`);return r&&n.indexOf(r)!==-1?r:t}function Ro(e){if(!e)return null;let t=e=>e===`auto`||e===`scroll`;if(e.clientHeight&&e.scrollHeight>e.clientHeight){let{overflowY:n}=getComputedStyle(e);if(t(n))return e}else if(e.clientWidth&&e.scrollWidth>e.clientWidth){let{overflowX:n}=getComputedStyle(e);if(t(n))return e}return Ro(e.parentElement)||document.scrollingElement||document.body}function zo(e,...t){/text|search|password|tel|url/i.test(e.type)&&e.setSelectionRange(...t)}function Bo(e,t){let n=e.map((e,t)=>[t,e]),r=!1;return n.sort(([e,n],[i,a])=>{let o=t(n),s=t(a);return o===s||!o||!s?0:Vo(o,s)?(e>i&&(r=!0),-1):(et):e}function Vo(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}function Ho(){return wo&&!!navigator.maxTouchPoints}function Uo(){return wo?/mac|iphone|ipad|ipod/i.test(navigator.platform):!1}function Wo(){return wo&&Uo()&&/apple/i.test(navigator.vendor)}function Go(){return wo&&/firefox\//i.test(navigator.userAgent)}function Ko(){return wo&&navigator.platform.startsWith(`Mac`)&&!Ho()}function qo(e){return!!(e.currentTarget&&!G(e.currentTarget,e.target))}function Jo(e){return e.target===e.currentTarget}function Yo(e){let t=e.currentTarget;if(!t)return!1;let n=Uo();if(n&&!e.metaKey||!n&&!e.ctrlKey)return!1;let r=t.tagName.toLowerCase();return r===`a`||r===`button`&&t.type===`submit`||r===`input`&&t.type===`submit`}function Xo(e){let t=e.currentTarget;if(!t)return!1;let n=t.tagName.toLowerCase();return e.altKey?n===`a`||n===`button`&&t.type===`submit`||n===`input`&&t.type===`submit`:!1}function Zo(e,t){let n=new FocusEvent(`blur`,t),r=e.dispatchEvent(n),i={...t,bubbles:!0};return e.dispatchEvent(new FocusEvent(`focusout`,i)),r}function Qo(e,t,n){let r=new KeyboardEvent(t,n);return e.dispatchEvent(r)}function $o(e,t){let n=new MouseEvent(`click`,t);return e.dispatchEvent(n)}function es(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!G(n,r)}function ts(e,t,n,r){let i=(e=>{if(r){let t=setTimeout(e,r);return()=>clearTimeout(t)}let t=requestAnimationFrame(e);return()=>cancelAnimationFrame(t)})(()=>{e.removeEventListener(t,a,!0),n()}),a=()=>{i(),n()};return e.addEventListener(t,a,{once:!0,capture:!0}),i}function ns(e,t,n,r=window){let i=[];try{r.document.addEventListener(e,t,n);for(let a of Array.from(r.frames))i.push(ns(e,t,n,a))}catch{}return()=>{try{r.document.removeEventListener(e,t,n)}catch{}for(let e of i)e()}}var rs={...R},is=rs.useId;rs.useDeferredValue;var as=rs.useInsertionEffect,K=wo?R.useLayoutEffect:R.useEffect;function os(e){let[t]=(0,R.useState)(e);return t}function ss(e){let t=(0,R.useRef)(e);return K(()=>{t.current=e}),t}function q(e){let t=(0,R.useRef)(()=>{throw Error(`Cannot call an event handler while rendering.`)});return as?as(()=>{t.current=e}):t.current=e,(0,R.useCallback)((...e)=>t.current?.call(t,...e),[])}function cs(e){let[t,n]=(0,R.useState)(null);return K(()=>{if(t==null||!e)return;let n=null;return e(e=>(n=e,t)),()=>{e(n)}},[t,e]),[t,n]}function ls(...e){return(0,R.useMemo)(()=>{if(e.some(Boolean))return t=>{for(let n of e)bo(n,t)}},e)}function us(e){if(is){let t=is();return e||t}let[t,n]=(0,R.useState)(e);return K(()=>{e||t||n(`id-${Math.random().toString(36).slice(2,8)}`)},[e,t]),e||t}function ds(e,t){let n=e=>{if(typeof e==`string`)return e},[r,i]=(0,R.useState)(()=>n(t));return K(()=>{i((e&&`current`in e?e.current:e)?.tagName.toLowerCase()||n(t))},[e,t]),r}function fs(e,t,n){let r=os(n),[i,a]=(0,R.useState)(r);return(0,R.useEffect)(()=>{let n=e&&`current`in e?e.current:e;if(!n)return;let i=()=>{a(n.getAttribute(t)??r)},o=new MutationObserver(i);return o.observe(n,{attributeFilter:[t]}),i(),()=>o.disconnect()},[e,t,r]),i}function ps(e,t){let n=(0,R.useRef)(!1);(0,R.useEffect)(()=>{if(n.current)return e();n.current=!0},t),(0,R.useEffect)(()=>()=>{n.current=!1},[])}function ms(e,t){let n=(0,R.useRef)(!1);K(()=>{if(n.current)return e();n.current=!0},t),K(()=>()=>{n.current=!1},[])}function hs(){return(0,R.useReducer)(()=>[],[])}function gs(e){return q(typeof e==`function`?e:()=>e)}function _s(e,t,n=[]){let r=(0,R.useCallback)(n=>(e.wrapElement&&(n=e.wrapElement(n)),t(n)),[...n,e.wrapElement]);return{...e,wrapElement:r}}function vs(e=!1,t){let[n,r]=(0,R.useState)(null);return{portalRef:ls(r,t),portalNode:n,domReady:!e||n}}function ys(e,t,n){let r=e.onLoadedMetadataCapture,i=(0,R.useMemo)(()=>Object.assign(()=>{},r,{[t]:n}),[r,t,n]);return[r?.[t],{onLoadedMetadataCapture:i}]}var bs=!1;function xs(){return(0,R.useEffect)(()=>{bs||=(ns(`mousemove`,Es,!0),ns(`mousedown`,Ds,!0),ns(`mouseup`,Ds,!0),ns(`keydown`,Ds,!0),ns(`scroll`,Ds,!0),!0)},[]),q(()=>Ss)}var Ss=!1,Cs=0,ws=0;function Ts(e){let t=e.movementX||e.screenX-Cs,n=e.movementY||e.screenY-ws;return Cs=e.screenX,ws=e.screenY,t||n||!1}function Es(e){Ts(e)&&(Ss=!0)}function Ds(){Ss=!1}function Os(e){let t=R.forwardRef((t,n)=>e({...t,ref:n}));return t.displayName=e.displayName||e.name,t}function ks(e,t){return R.memo(e,t)}function As(e,t){let{wrapElement:n,render:r,...i}=t,a=ls(t.ref,So(r)),o;if(R.isValidElement(r)){let e={...r.props,ref:a};o=R.cloneElement(r,Co(i,e))}else o=r?r(i):(0,B.jsx)(e,{...i});return n?n(o):o}function js(e){let t=(t={})=>e(t);return t.displayName=e.name,t}function Ms(e=[],t=[]){let n=R.createContext(void 0),r=R.createContext(void 0),i=()=>R.useContext(n),a=(e=!1)=>{let t=R.useContext(r),n=i();return e?t:t||n},o=()=>{let e=R.useContext(r),t=i();if(!(e&&e===t))return t},s=t=>e.reduceRight((e,n)=>(0,B.jsx)(n,{...t,children:e}),(0,B.jsx)(n.Provider,{...t}));return{context:n,scopedContext:r,useContext:i,useScopedContext:a,useProviderContext:o,ContextProvider:s,ScopedContextProvider:e=>(0,B.jsx)(s,{...e,children:t.reduceRight((t,n)=>(0,B.jsx)(n,{...e,children:t}),(0,B.jsx)(r.Provider,{...e}))})}}var Ns=Ms(),Ps=Ns.useContext;Ns.useScopedContext,Ns.useProviderContext;var Fs=Ns.ContextProvider,Is=Ns.ScopedContextProvider,Ls=Ms([Fs],[Is]),Rs=Ls.useContext;Ls.useScopedContext;var zs=Ls.useProviderContext,Bs=Ls.ContextProvider,Vs=Ls.ScopedContextProvider,Hs=(0,R.createContext)(void 0),Us=(0,R.createContext)(void 0);function Ws(e,t){return e.find(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Gs(e,t){return t&&e.item(t)||null}function Ks(e){let t=[];for(let n of e){let e=t.find(e=>e[0]?.rowId===n.rowId);e?e.push(n):t.push([n])}return t}function qs(e,t=!1){if(No(e))e.setSelectionRange(t?e.value.length:0,e.value.length);else if(e.isContentEditable){let n=Eo(e).getSelection();n?.selectAllChildren(e),t&&n?.collapseToEnd()}}var Js=Symbol(`FOCUS_SILENTLY`);function Ys(e){e[Js]=!0,e.focus({preventScroll:!0})}function Xs(e){let t=e[Js];return delete e[Js],t}function Zs(e,t,n){if(!t||t===n)return!1;let r=e.item(t.id);return!(!r||n&&r.element===n)}var Qs=`div`,$s=js(function({store:e,shouldRegisterItem:t=!0,getItem:n=mo,element:r,...i}){let a=Ps();e||=a;let o=us(i.id),s=(0,R.useRef)(r);return(0,R.useEffect)(()=>{let r=s.current;if(!o||!r||!t)return;let i=n({id:o,element:r});return e?.renderItem(i)},[o,t,n,e]),i={...i,ref:ls(s,i.ref)},yo(i)});Os(function(e){return As(Qs,$s(e))});var ec=(0,R.createContext)(!0),tc=`input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], summary, iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])`;function nc(e){return Number.parseInt(e.getAttribute(`tabindex`)||`0`,10)<0}function rc(e){return!(!e.matches(tc)||!Mo(e)||e.closest(`[inert]`))}function ic(e){if(!rc(e)||nc(e))return!1;if(!(`form`in e)||!e.form||e.checked||e.type!==`radio`)return!0;let t=e.form.elements.namedItem(e.name);if(!t||!(`length`in t))return!0;let n=Oo(e);return!n||n===e||!(`form`in n)||n.form!==e.form||n.name!==e.name}function ac(e,t){let n=Array.from(e.querySelectorAll(tc));t&&n.unshift(e);let r=n.filter(rc);return r.forEach((e,t)=>{if(!ko(e))return;let n=e.contentDocument?.body;n&&r.splice(t,1,...ac(n))}),r}function oc(e,t,n){let r=Array.from(e.querySelectorAll(tc)),i=r.filter(ic);return t&&ic(e)&&i.unshift(e),i.forEach((e,t)=>{if(!ko(e))return;let r=e.contentDocument?.body;if(!r)return;let a=oc(r,!1,n);i.splice(t,1,...a)}),!i.length&&n?r:i}function sc(e,t,n){let[r]=oc(e,t,n);return r||null}function cc(e,t,n,r){let i=Oo(e),a=ac(e,t),o=a.indexOf(i),s=a.slice(o+1);return s.find(ic)||(n?a.find(ic):null)||(r?s[0]:null)||null}function lc(e,t){return cc(document.body,!1,e,t)}function uc(e,t,n,r){let i=Oo(e),a=ac(e,t).reverse(),o=a.indexOf(i),s=a.slice(o+1);return s.find(ic)||(n?a.find(ic):null)||(r?s[0]:null)||null}function dc(e,t){return uc(document.body,!1,e,t)}function fc(e){for(;e&&!rc(e);)e=e.closest(tc);return e||null}function pc(e){let t=Oo(e);if(!t)return!1;if(t===e)return!0;let n=t.getAttribute(`aria-activedescendant`);return n?n===e.id:!1}function mc(e){let t=Oo(e);if(!t)return!1;if(G(e,t))return!0;let n=t.getAttribute(`aria-activedescendant`);return!n||!(`id`in e)?!1:n===e.id?!0:!!e.querySelector(`#${CSS.escape(n)}`)}function hc(e){!mc(e)&&rc(e)&&e.focus()}function gc(e){let t=e.getAttribute(`tabindex`)??``;e.setAttribute(`data-tabindex`,t),e.setAttribute(`tabindex`,`-1`)}function _c(e,t){let n=oc(e,t);for(let e of n)gc(e)}function vc(e){let t=e.querySelectorAll(`[data-tabindex]`),n=e=>{let t=e.getAttribute(`data-tabindex`);e.removeAttribute(`data-tabindex`),t?e.setAttribute(`tabindex`,t):e.removeAttribute(`tabindex`)};e.hasAttribute(`data-tabindex`)&&n(e);for(let e of t)n(e)}function yc(e,t){`scrollIntoView`in e?(e.focus({preventScroll:!0}),e.scrollIntoView({block:`nearest`,inline:`nearest`,...t})):e.focus()}var bc=`div`,xc=Wo(),Sc=[`text`,`search`,`url`,`tel`,`email`,`password`,`number`,`date`,`month`,`week`,`time`,`datetime`,`datetime-local`],Cc=Symbol(`safariFocusAncestor`);function wc(e){return e?!!e[Cc]:!1}function Tc(e,t){e&&(e[Cc]=t)}function Ec(e){let{tagName:t,readOnly:n,type:r}=e;return t===`TEXTAREA`&&!n||t===`SELECT`&&!n?!0:t===`INPUT`&&!n?Sc.includes(r):!!(e.isContentEditable||e.getAttribute(`role`)===`combobox`&&e.dataset.name)}function Dc(e){return`labels`in e?e.labels:null}function Oc(e){return e.tagName.toLowerCase()===`input`&&e.type?e.type===`radio`||e.type===`checkbox`:!1}function kc(e){return e?e===`button`||e===`summary`||e===`input`||e===`select`||e===`textarea`||e===`a`:!0}function Ac(e){return e?e===`button`||e===`input`||e===`select`||e===`textarea`:!0}function jc(e,t,n,r,i){return e?t?n&&!r?-1:void 0:n?i:i||0:i}function Mc(e,t){return q(n=>{e?.(n),!n.defaultPrevented&&t&&(n.stopPropagation(),n.preventDefault())})}var Nc=!1,Pc=!0;function Fc(e){let t=e.target;t&&`hasAttribute`in t&&(t.hasAttribute(`data-focus-visible`)||(Pc=!1))}function Ic(e){e.metaKey||e.ctrlKey||e.altKey||(Pc=!0)}var Lc=js(function({focusable:e=!0,accessibleWhenDisabled:t,autoFocus:n,onFocusVisible:r,...i}){let a=(0,R.useRef)(null);(0,R.useEffect)(()=>{e&&(Nc||=(ns(`mousedown`,Fc,!0),ns(`keydown`,Ic,!0),!0))},[e]),xc&&(0,R.useEffect)(()=>{if(!e)return;let t=a.current;if(!t||!Oc(t))return;let n=Dc(t);if(!n)return;let r=()=>queueMicrotask(()=>t.focus());for(let e of n)e.addEventListener(`mouseup`,r);return()=>{for(let e of n)e.removeEventListener(`mouseup`,r)}},[e]);let o=e&&vo(i),s=!!o&&!t,[c,l]=(0,R.useState)(!1);(0,R.useEffect)(()=>{e&&s&&c&&l(!1)},[e,s,c]),(0,R.useEffect)(()=>{if(!e||!c)return;let t=a.current;if(!t||typeof IntersectionObserver>`u`)return;let n=new IntersectionObserver(()=>{rc(t)||l(!1)});return n.observe(t),()=>n.disconnect()},[e,c]);let u=Mc(i.onKeyPressCapture,o),d=Mc(i.onMouseDownCapture,o),f=Mc(i.onClickCapture,o),p=i.onMouseDown,m=q(t=>{if(p?.(t),t.defaultPrevented||!e)return;let n=t.currentTarget;if(!xc||qo(t)||!Ao(n)&&!Oc(n))return;let r=!1,i=()=>{r=!0};n.addEventListener(`focusin`,i,{capture:!0,once:!0});let a=fc(n.parentElement);Tc(a,!0),ts(n,`mouseup`,()=>{n.removeEventListener(`focusin`,i,!0),Tc(a,!1),!r&&hc(n)})}),h=(t,n)=>{if(n&&(t.currentTarget=n),!e)return;let i=t.currentTarget;i&&pc(i)&&(r?.(t),!t.defaultPrevented&&(i.dataset.focusVisible=`true`,l(!0)))},g=i.onKeyDownCapture,_=q(t=>{if(g?.(t),t.defaultPrevented||!e||c||t.metaKey||t.altKey||t.ctrlKey||!Jo(t))return;let n=t.currentTarget;ts(n,`focusout`,()=>h(t,n))}),v=i.onFocusCapture,y=q(t=>{if(v?.(t),t.defaultPrevented||!e)return;if(!Jo(t)){l(!1);return}let n=t.currentTarget;Pc||Ec(t.target)?ts(t.target,`focusout`,()=>h(t,n)):l(!1)}),b=i.onBlur,x=q(t=>{b?.(t),e&&es(t)&&(t.currentTarget.removeAttribute(`data-focus-visible`),l(!1))}),S=(0,R.useContext)(ec),C=q(t=>{e&&n&&t&&S&&queueMicrotask(()=>{pc(t)||rc(t)&&t.focus()})}),w=ds(a),T=e&&kc(w),E=e&&Ac(w),D=i.style,O=(0,R.useMemo)(()=>s?{pointerEvents:`none`,...D}:D,[s,D]);return i={"data-focus-visible":e&&c||void 0,"data-autofocus":n||void 0,"aria-disabled":o||void 0,...i,ref:ls(a,C,i.ref),style:O,tabIndex:jc(e,s,T,E,i.tabIndex),disabled:E&&s?!0:void 0,contentEditable:o?void 0:i.contentEditable,onKeyPressCapture:u,onClickCapture:f,onMouseDownCapture:d,onMouseDown:m,onKeyDownCapture:_,onFocusCapture:y,onBlur:x},yo(i)});Os(function(e){return As(bc,Lc(e))});var Rc=`button`;function zc(e){if(!e.isTrusted)return!1;let t=e.currentTarget;return e.key===`Enter`?Ao(t)||t.tagName===`SUMMARY`||t.tagName===`A`:e.key===` `?Ao(t)||t.tagName===`SUMMARY`||t.tagName===`INPUT`||t.tagName===`SELECT`:!1}var Bc=Symbol(`command`),Vc=js(function({clickOnEnter:e=!0,clickOnSpace:t=!0,...n}){let r=(0,R.useRef)(null),[i,a]=(0,R.useState)(!1);(0,R.useEffect)(()=>{r.current&&a(Ao(r.current))},[]);let[o,s]=(0,R.useState)(!1),c=(0,R.useRef)(!1),l=vo(n),[u,d]=ys(n,Bc,!0),f=n.onKeyDown,p=q(n=>{f?.(n);let r=n.currentTarget;if(n.defaultPrevented||u||l||!Jo(n)||No(r)||r.isContentEditable)return;let i=e&&n.key===`Enter`,a=t&&n.key===` `,o=n.key===`Enter`&&!e,d=n.key===` `&&!t;if(o||d){n.preventDefault();return}if(i||a){let e=zc(n);if(i){if(!e){n.preventDefault();let{view:e,...t}=n,i=()=>$o(r,t);Go()?ts(r,`keyup`,i):queueMicrotask(i)}}else a&&(c.current=!0,e||(n.preventDefault(),s(!0)))}}),m=n.onKeyUp,h=q(e=>{if(m?.(e),e.defaultPrevented||u||l||e.metaKey)return;let n=t&&e.key===` `;if(c.current&&n&&(c.current=!1,!zc(e))){e.preventDefault(),s(!1);let t=e.currentTarget,{view:n,...r}=e;queueMicrotask(()=>$o(t,r))}});return n={"data-active":o||void 0,type:i?`button`:void 0,...d,...n,ref:ls(r,n.ref),onKeyDown:p,onKeyUp:h},n=Lc(n),n});Os(function(e){return As(Rc,Vc(e))});function Hc(e,t){let n=e.__unstableInternals;return ho(n,`Invalid store`),n[t]}function Uc(e,...t){let n=e,r=n,i=Symbol(),a=ao,o=new Set,s=new Set,c=new Set,l=new Set,u=new Set,d=new WeakMap,f=new WeakMap,p=e=>(c.add(e),()=>c.delete(e)),m=()=>{let e=o.size,r=Symbol();o.add(r);let i=()=>{o.delete(r),!o.size&&a()};if(e)return i;let s=go(n).map(e=>U(...t.map(t=>{let n=(t?.getState)?.call(t);if(n&&lo(n,e))return qc(t,[e],t=>{S(e,t[e],!0)})}))),l=[];for(let e of c)l.push(e());let u=t.map(Gc);return a=U(...s,...l,...u),i},h=(e,t,n=l)=>(n.add(t),f.set(t,e),()=>{var e;(e=d.get(t))==null||e(),d.delete(t),f.delete(t),n.delete(t)}),g=(e,t)=>h(e,t),_=(e,t)=>(d.set(t,t(n,n)),h(e,t)),v=(e,t)=>(d.set(t,t(n,r)),h(e,t,u)),y=e=>Uc(po(n,e),C),b=e=>Uc(fo(n,e),C),x=()=>n,S=(e,a,o=!1)=>{var c;if(!lo(n,e))return;let p=oo(a,n[e]);if(p===n[e])return;if(!o)for(let n of t)(c=n?.setState)==null||c.call(n,e,p);let m=n;n={...n,[e]:p};let h=Symbol();i=h,s.add(e);let g=(t,r,i)=>{var a;let o=f.get(t);(!o||o.some(t=>i?i.has(t):t===e))&&((a=d.get(t))==null||a(),d.set(t,t(n,r)))};for(let e of l)g(e,m);queueMicrotask(()=>{if(i!==h)return;let e=n;for(let e of u)g(e,r,s);r=e,s.clear()})},C={getState:x,setState:S,__unstableInternals:{setup:p,init:m,subscribe:g,sync:_,batch:v,pick:y,omit:b}};return C}function Wc(e,...t){if(e)return Hc(e,`setup`)(...t)}function Gc(e,...t){if(e)return Hc(e,`init`)(...t)}function Kc(e,...t){if(e)return Hc(e,`subscribe`)(...t)}function qc(e,...t){if(e)return Hc(e,`sync`)(...t)}function Jc(e,...t){if(e)return Hc(e,`batch`)(...t)}function Yc(e,...t){if(e)return Hc(e,`omit`)(...t)}function Xc(e,...t){if(e)return Hc(e,`pick`)(...t)}function Zc(...e){let t={};for(let n of e){let e=(n?.getState)?.call(n);e&&Object.assign(t,e)}let n=Uc(t,...e);return Object.assign({},...e,n)}var{useSyncExternalStore:Qc}=e(ee(),1).default,$c=()=>()=>{};function J(e,t=mo){let n=R.useCallback(t=>e?Kc(e,null,t):$c(),[e]),r=()=>{let n=typeof t==`string`?t:null,r=typeof t==`function`?t:null,i=e?.getState();if(r)return r(i);if(i&&n&&lo(i,n))return i[n]};return Qc(n,r,r)}function el(e,t){let n=R.useRef({}),r=R.useCallback(t=>e?Kc(e,null,t):$c(),[e]),i=()=>{let r=e?.getState(),i=!1,a=n.current;for(let e in t){let n=t[e];if(typeof n==`function`){let t=n(r);t!==a[e]&&(a[e]=t,i=!0)}if(typeof n==`string`){if(!r||!lo(r,n))continue;let t=r[n];t!==a[e]&&(a[e]=t,i=!0)}}return i&&(n.current={...a}),n.current};return Qc(r,i,i)}function tl(e,t,n,r){let i=lo(t,n)?t[n]:void 0,a=ss({value:i,setValue:r?t[r]:void 0});K(()=>qc(e,[n],(e,t)=>{let{value:r,setValue:i}=a.current;i&&e[n]!==t[n]&&e[n]!==r&&i(e[n])}),[e,n]),K(()=>{if(i!==void 0)return e.setState(n,i),Jc(e,[n],()=>{i!==void 0&&e.setState(n,i)})})}function nl(e,t){let[n,r]=R.useState(()=>e(t));K(()=>Gc(n),[n]);let i=R.useCallback(e=>J(n,e),[n]);return[R.useMemo(()=>({...n,useState:i}),[n,i]),q(()=>{r(n=>e({...t,...n.getState()}))})]}var rl=`button`;function il(e){return Po(e)?!0:e.tagName===`INPUT`&&!Ao(e)}function al(e,t=!1){let n=e.clientHeight,{top:r}=e.getBoundingClientRect(),i=Math.max(n*.875,n-40)*1.5,a=t?n-i+r:i+r;return e.tagName===`HTML`?a+e.scrollTop:a}function ol(e,t=!1){let{top:n}=e.getBoundingClientRect();return t?n+e.clientHeight:n}function sl(e,t,n,r=!1){if(!t||!n)return;let{renderedItems:i}=t.getState(),a=Ro(e);if(!a)return;let o=al(a,r),s,c;for(let e=0;e=0){c!==void 0&&ce.rowId===m);return f.ariaPosInSet+t.findIndex(e=>e.id===u)},isTabbable(t){if(!t?.renderedItems.length)return!0;if(t.virtualFocus)return!1;if(i)return!0;if(t.activeId===null)return!1;let n=e?.item(t.activeId);return n?.disabled||!n?.element?!0:t.activeId===u}}),b=(0,R.useCallback)(e=>{let t={...e,id:u||e.id,rowId:m,disabled:!!p,children:e.element?.textContent};return a?a(t):t},[u,m,p,a]),x=c.onFocus,S=(0,R.useRef)(!1),C=q(t=>{if(x?.(t),t.defaultPrevented||qo(t)||!u||!e||cl(t,e))return;let{virtualFocus:n,baseElement:r}=e.getState();e.setActiveId(u),Po(t.currentTarget)&&qs(t.currentTarget),n&&Jo(t)&&(il(t.currentTarget)||r?.isConnected&&(Wo()&&t.currentTarget.hasAttribute(`data-autofocus`)&&t.currentTarget.scrollIntoView({block:`nearest`,inline:`nearest`}),S.current=!0,t.relatedTarget===r||Zs(e,t.relatedTarget)?Ys(r):r.focus()))}),w=c.onBlurCapture,T=q(t=>{w?.(t),!t.defaultPrevented&&e?.getState()?.virtualFocus&&S.current&&(S.current=!1,t.preventDefault(),t.stopPropagation())}),E=c.onKeyDown,D=gs(n),O=gs(r),k=q(t=>{if(E?.(t),t.defaultPrevented||!Jo(t)||!e)return;let{currentTarget:n}=t,r=e.getState(),i=!!e.item(u)?.rowId,a=r.orientation!==`horizontal`,o=r.orientation!==`vertical`,s=()=>!!(i||o||!r.baseElement||!No(r.baseElement)),c={ArrowUp:(i||a)&&e.up,ArrowRight:(i||o)&&e.next,ArrowDown:(i||a)&&e.down,ArrowLeft:(i||o)&&e.previous,Home:()=>{if(s())return!i||t.ctrlKey?e?.first():e?.previous(-1)},End:()=>{if(s())return!i||t.ctrlKey?e?.last():e?.next(-1)},PageUp:()=>sl(n,e,e?.up,!0),PageDown:()=>sl(n,e,e?.down)}[t.key];if(c){if(Po(n)){let e=Io(n),r=o&&t.key===`ArrowLeft`,i=o&&t.key===`ArrowRight`,s=a&&t.key===`ArrowUp`,c=a&&t.key===`ArrowDown`;if(i||c){let{length:t}=Fo(n);if(e.end!==t)return}else if((r||s)&&e.start!==0)return}let r=c();if(D(t)||r!==void 0){if(!O(t))return;t.preventDefault(),e.move(r)}}}),A=(0,R.useMemo)(()=>({id:u,baseElement:h}),[u,h]);return c=_s(c,e=>(0,B.jsx)(Hs.Provider,{value:A,children:e}),[A]),c={"data-active-item":g||void 0,...c,id:u,ref:ls(d,c.ref),tabIndex:y?c.tabIndex:-1,onFocus:C,onBlurCapture:T,onKeyDown:k},c=Vc(c),c=$s({store:e,...c,getItem:b,shouldRegisterItem:u?c.shouldRegisterItem:!1}),yo({...c,"aria-setsize":_,"aria-posinset":v})});ks(Os(function(e){return As(rl,ll(e))}));function ul(e){let t=[];for(let n of e)t.push(...n);return t}function dl(e){return e.slice().reverse()}var fl=`div`;function pl(e){return e.some(e=>!!e.rowId)}function ml(e){let t=e.target;return t&&!No(t)?!1:e.key.length===1&&!e.ctrlKey&&!e.metaKey}function hl(e){return e.key===`Shift`||e.key===`Control`||e.key===`Alt`||e.key===`Meta`}function gl(e,t,n){return q(r=>{if(t?.(r),r.defaultPrevented||r.isPropagationStopped()||!Jo(r)||hl(r)||ml(r))return;let i=Gs(e,e.getState().activeId)?.element;if(!i)return;let{view:a,...o}=r;i!==n?.current&&i.focus(),Qo(i,r.type,o)||r.preventDefault(),r.currentTarget.contains(i)&&r.stopPropagation()})}function _l(e){return Ws(ul(dl(Ks(e))))}function vl(e,t){let{virtualFocus:n,baseElement:r}=e.getState();if(!n||!r||!No(r)){t();return}let i=r.scrollLeft,a=r.scrollTop;t(),r.scrollLeft=i,r.scrollTop=a}function yl(e){let[t,n]=(0,R.useState)(!1),r=(0,R.useCallback)(()=>n(!0),[]),i=J(e,t=>Gs(e,t.activeId));return(0,R.useEffect)(()=>{let r=i?.element;t&&r&&(n(!1),vl(e,()=>{r.focus({preventScroll:!0})}))},[e,i,t]),r}var bl=js(function({store:e,composite:t=!0,focusOnMove:n=t,moveOnKeyPress:r=!0,...i}){let a=zs();e||=a,ho(e,!1);let o=(0,R.useRef)(null),s=(0,R.useRef)(null),c=yl(e),l=J(e,`moves`),[,u]=cs(t?e.setBaseElement:null);(0,R.useEffect)(()=>{if(!e||!l||!t||!n)return;let{activeId:r}=e.getState(),i=Gs(e,r)?.element;i&&vl(e,()=>yc(i))},[e,l,t,n]),K(()=>{if(!e||!l||!t)return;let{baseElement:n,activeId:r}=e.getState();if(r!==null||!n)return;let i=s.current;s.current=null,i&&Zo(i,{relatedTarget:n}),pc(n)||n.focus()},[e,l,t]);let d=J(e,`activeId`),f=J(e,`virtualFocus`);K(()=>{if(!e||!t||!f)return;let n=s.current;if(s.current=null,!n)return;let r=Gs(e,d)?.element||Oo(n);r!==n&&Zo(n,{relatedTarget:r})},[e,d,f,t]);let p=gl(e,i.onKeyDownCapture,s),m=gl(e,i.onKeyUpCapture,s),h=i.onFocusCapture,g=q(t=>{if(h?.(t),t.defaultPrevented||!e)return;let{virtualFocus:n}=e.getState();if(!n)return;let r=t.relatedTarget,i=Xs(t.currentTarget);Jo(t)&&i&&(t.stopPropagation(),s.current=r)}),_=i.onFocus,v=q(n=>{if(_?.(n),n.defaultPrevented||!t||!e)return;let{relatedTarget:r}=n,{virtualFocus:i}=e.getState();i?Jo(n)&&!Zs(e,r)&&queueMicrotask(c):Jo(n)&&e.setActiveId(null)}),y=i.onBlurCapture,b=q(t=>{if(y?.(t),t.defaultPrevented||!e)return;let{virtualFocus:n,activeId:r}=e.getState();if(!n)return;let i=Gs(e,r)?.element,a=t.relatedTarget,o=Zs(e,a),c=s.current;s.current=null,Jo(t)&&o?(a===i?c&&c!==a&&Zo(c,t):i?Zo(i,t):c&&Zo(c,t),t.stopPropagation()):!Zs(e,t.target)&&i&&Zo(i,t)}),x=i.onKeyDown,S=gs(r),C=q(t=>{if(x?.(t),t.nativeEvent.isComposing||t.defaultPrevented||!e||!Jo(t))return;let{orientation:n,renderedItems:r,activeId:i}=e.getState();if(Gs(e,i)?.element?.isConnected)return;let a=n!==`horizontal`,o=n!==`vertical`,s=pl(r);if((t.key===`ArrowLeft`||t.key===`ArrowRight`||t.key===`Home`||t.key===`End`)&&No(t.currentTarget))return;let c={ArrowUp:(s||a)&&(()=>s?_l(r)?.id:e?.last()),ArrowRight:(s||o)&&e.first,ArrowDown:(s||a)&&e.first,ArrowLeft:(s||o)&&e.last,Home:e.first,End:e.last,PageUp:e.first,PageDown:e.last}[t.key];if(c){let n=c();if(n!==void 0){if(!S(t))return;t.preventDefault(),e.move(n)}}});i=_s(i,t=>(0,B.jsx)(Bs,{value:e,children:t}),[e]);let w=J(e,n=>{if(e&&t&&n.virtualFocus)return Gs(e,n.activeId)?.id});return i={"aria-activedescendant":w,...i,ref:ls(o,u,i.ref),onKeyDownCapture:p,onKeyUpCapture:m,onFocusCapture:g,onFocus:v,onBlurCapture:b,onKeyDown:C},i=Lc({focusable:J(e,e=>t&&(e.virtualFocus||e.activeId===null)),...i}),i});Os(function(e){return As(fl,bl(e))});var xl=Ms();xl.useContext,xl.useScopedContext;var Sl=xl.useProviderContext,Cl=xl.ContextProvider,wl=xl.ScopedContextProvider,Tl=Ms([Cl],[wl]);Tl.useContext,Tl.useScopedContext;var El=Tl.useProviderContext,Dl=Tl.ContextProvider,Ol=Tl.ScopedContextProvider,kl=(0,R.createContext)(void 0),Al=(0,R.createContext)(void 0),jl=`div`;function Ml(e,t){let n=setTimeout(t,e);return()=>clearTimeout(n)}function Nl(e){let t=requestAnimationFrame(()=>{t=requestAnimationFrame(e)});return()=>cancelAnimationFrame(t)}function Pl(...e){return e.join(`, `).split(`, `).reduce((e,t)=>{let n=t.endsWith(`ms`)?1:1e3,r=Number.parseFloat(t||`0s`)*n;return r>e?r:e},0)}function Fl(e,t,n){return!n&&t!==!1&&(!e||!!t)}var Y=js(function({store:e,alwaysVisible:t,...n}){let r=Sl();e||=r,ho(e,!1);let i=(0,R.useRef)(null),a=us(n.id),[o,s]=(0,R.useState)(null),c=J(e,`open`),l=J(e,`mounted`),u=J(e,`animated`),d=J(e,`contentElement`),f=J(e.disclosure,`contentElement`);K(()=>{i.current&&e?.setContentElement(i.current)},[e]),K(()=>{let t;return e?.setState(`animated`,e=>(t=e,!0)),()=>{t!==void 0&&e?.setState(`animated`,t)}},[e]),K(()=>{if(u){if(!d?.isConnected){s(null);return}return Nl(()=>{s(c?`enter`:l?`leave`:null)})}},[u,d,c,l]),K(()=>{if(!e||!u||!o||!d)return;let t=()=>e?.setState(`animating`,!1),n=()=>(0,ii.flushSync)(t);if(o===`leave`&&c||o===`enter`&&!c)return;if(typeof u==`number`)return Ml(u,n);let{transitionDuration:r,animationDuration:i,transitionDelay:a,animationDelay:s}=getComputedStyle(d),{transitionDuration:l=`0`,animationDuration:p=`0`,transitionDelay:m=`0`,animationDelay:h=`0`}=f?getComputedStyle(f):{},g=Pl(a,s,m,h)+Pl(r,i,l,p);if(!g){o===`enter`&&e.setState(`animated`,!1),t();return}return Ml(Math.max(g-1e3/60,0),n)},[e,u,d,f,c,o]),n=_s(n,t=>(0,B.jsx)(Ol,{value:e,children:t}),[e]);let p=Fl(l,n.hidden,t),m=n.style,h=(0,R.useMemo)(()=>p?{...m,display:`none`}:m,[p,m]);return n={"data-open":c||void 0,"data-enter":o===`enter`||void 0,"data-leave":o===`leave`||void 0,hidden:p,...n,id:a,ref:ls(a?e.setContentElement:null,i,n.ref),style:h},yo(n)}),Il=Os(function(e){return As(jl,Y(e))});Os(function({unmountOnHide:e,...t}){let n=Sl();return J(t.store||n,t=>!e||t?.mounted)===!1?null:(0,B.jsx)(Il,{...t})});function X(e={}){let t=Zc(e.store,Yc(e.disclosure,[`contentElement`,`disclosureElement`])),n=t?.getState(),r=W(e.open,n?.open,e.defaultOpen,!1),i=W(e.animated,n?.animated,!1),a=Uc({open:r,animated:i,animating:!!i&&r,mounted:r,contentElement:W(n?.contentElement,null),disclosureElement:W(n?.disclosureElement,null)},t);return Wc(a,()=>qc(a,[`animated`,`animating`],e=>{e.animated||a.setState(`animating`,!1)})),Wc(a,()=>Kc(a,[`open`],()=>{a.getState().animated&&a.setState(`animating`,!0)})),Wc(a,()=>qc(a,[`open`,`animating`],e=>{a.setState(`mounted`,e.open||e.animating)})),{...a,disclosure:e.disclosure,setOpen:e=>a.setState(`open`,e),show:()=>a.setState(`open`,!0),hide:()=>a.setState(`open`,!1),toggle:()=>a.setState(`open`,e=>!e),stopAnimation:()=>a.setState(`animating`,!1),setContentElement:e=>a.setState(`contentElement`,e),setDisclosureElement:e=>a.setState(`disclosureElement`,e)}}function Z(e,t,n){return ps(t,[n.store,n.disclosure]),tl(e,n,`open`,`setOpen`),tl(e,n,`mounted`,`setMounted`),tl(e,n,`animated`),Object.assign(e,{disclosure:n.disclosure})}function Ll(e={}){let[t,n]=nl(X,e);return Z(t,n,e)}var Rl=Ms([Dl],[Ol]);Rl.useContext,Rl.useScopedContext;var zl=Rl.useProviderContext,Bl=Rl.ContextProvider,Vl=Rl.ScopedContextProvider;function Hl(e){let t=e.find(e=>!!e.element),n=[...e].reverse().find(e=>!!e.element),r=t?.element?.parentElement;for(;r&&n?.element;){if(n&&r.contains(n.element))return r;r=r.parentElement}return Eo(r).body}function Ul(e){return e?.__unstablePrivateStore}function Wl(e={}){e.store;let t=e.store?.getState(),n=W(e.items,t?.items,e.defaultItems,[]),r=new Map(n.map(e=>[e.id,e])),i={items:n,renderedItems:W(t?.renderedItems,[])},a=Ul(e.store),o=Uc({items:n,renderedItems:i.renderedItems},a),s=Uc(i,e.store),c=e=>{let t=Bo(e,e=>e.element);o.setState(`renderedItems`,t),s.setState(`renderedItems`,t)};Wc(s,()=>Gc(o)),Wc(o,()=>Jc(o,[`items`],e=>{s.setState(`items`,e.items)})),Wc(o,()=>Jc(o,[`renderedItems`],e=>{let t=!0,n=requestAnimationFrame(()=>{let{renderedItems:t}=s.getState();e.renderedItems!==t&&c(e.renderedItems)});if(typeof IntersectionObserver!=`function`)return()=>cancelAnimationFrame(n);let r=()=>{if(t){t=!1;return}cancelAnimationFrame(n),n=requestAnimationFrame(()=>c(e.renderedItems))},i=Hl(e.renderedItems),a=new IntersectionObserver(r,{root:i});for(let t of e.renderedItems)t.element&&a.observe(t.element);return()=>{cancelAnimationFrame(n),a.disconnect()}}));let l=(e,t,n=!1)=>{let i;return t(t=>{let n=t.findIndex(({id:t})=>t===e.id),a=t.slice();if(n!==-1){i=t[n];let o={...i,...e};a[n]=o,r.set(e.id,o)}else a.push(e),r.set(e.id,e);return a}),()=>{t(t=>{if(!i)return n&&r.delete(e.id),t.filter(({id:t})=>t!==e.id);let a=t.findIndex(({id:t})=>t===e.id);if(a===-1)return t;let o=t.slice();return o[a]=i,r.set(e.id,i),o})}},u=e=>l(e,e=>o.setState(`items`,e),!0);return{...s,registerItem:u,renderItem:e=>U(u(e),l(e,e=>o.setState(`renderedItems`,e))),item:e=>{if(!e)return null;let t=r.get(e);if(!t){let{items:n}=o.getState();t=n.find(t=>t.id===e),t&&r.set(e,t)}return t||null},__unstablePrivateStore:o}}function Gl(e,t,n){return ps(t,[n.store]),tl(e,n,`items`,`setItems`),e}var Kl={id:null};function ql(e,t){return e.find(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Jl(e,t){return e.filter(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Yl(e,t){return e.filter(e=>e.rowId===t)}function Xl(e,t,n=!1){let r=e.findIndex(e=>e.id===t);return[...e.slice(r+1),...n?[Kl]:[],...e.slice(0,r)]}function Zl(e){let t=[];for(let n of e){let e=t.find(e=>e[0]?.rowId===n.rowId);e?e.push(n):t.push([n])}return t}function Ql(e){let t=0;for(let{length:n}of e)n>t&&(t=n);return t}function $l(e){return{id:`__EMPTY_ITEM__`,disabled:!0,rowId:e}}function eu(e,t,n){let r=Ql(e);for(let i of e)for(let e=0;eqc(i,[`renderedItems`,`activeId`],e=>{i.setState(`activeId`,t=>t===void 0?ql(e.renderedItems)?.id:t)}));let a=(e=`next`,t={})=>{let n=i.getState(),{skip:r=0,activeId:a=n.activeId,focusShift:o=n.focusShift,focusLoop:s=n.focusLoop,focusWrap:c=n.focusWrap,includesBaseElement:l=n.includesBaseElement,renderedItems:u=n.renderedItems,rtl:d=n.rtl}=t,f=e===`up`||e===`down`,p=e===`next`||e===`down`,m=p?d&&!f:!d||f,h=o&&!r,g=f?ul(eu(Zl(u),a,h)):u;if(g=m?dl(g):g,g=f?tu(g):g,a==null)return ql(g)?.id;let _=g.find(e=>e.id===a);if(!_)return ql(g)?.id;let v=g.some(e=>e.rowId),y=g.indexOf(_),b=g.slice(y+1),x=Yl(b,_.rowId);if(r){let e=Jl(x,a);return(e.slice(r)[0]||e[e.length-1])?.id}let S=s&&(f?s!==`horizontal`:s!==`vertical`),C=v&&c&&(f?c!==`horizontal`:c!==`vertical`),w=p?(!v||f)&&S&&l:f?l:!1;if(S)return ql(Xl(C&&!w?g:Yl(g,_.rowId),a,w),a)?.id;if(C){let e=ql(w?x:b,a);return w?e?.id||null:e?.id}let T=ql(x,a);return!T&&w?null:T?.id};return{...n,...i,setBaseElement:e=>i.setState(`baseElement`,e),setActiveId:e=>i.setState(`activeId`,e),move:e=>{e!==void 0&&(i.setState(`activeId`,e),i.setState(`moves`,e=>e+1))},first:()=>ql(i.getState().renderedItems)?.id,last:()=>ql(dl(i.getState().renderedItems))?.id,next:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`next`,e)),previous:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`previous`,e)),down:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`down`,e)),up:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`up`,e))}}function ru(e){return{id:us(e.id),...e}}function iu(e,t,n){return e=Gl(e,t,n),tl(e,n,`activeId`,`setActiveId`),tl(e,n,`includesBaseElement`),tl(e,n,`virtualFocus`),tl(e,n,`orientation`),tl(e,n,`rtl`),tl(e,n,`focusLoop`),tl(e,n,`focusWrap`),tl(e,n,`focusShift`),e}var au=(0,R.createContext)(void 0),ou=Ms([Bl,Bs],[Vl,Vs]),su=ou.useContext,cu=ou.useScopedContext,lu=ou.useProviderContext,uu=ou.ContextProvider,du=ou.ScopedContextProvider,fu=(0,R.createContext)(void 0),pu=(0,R.createContext)(!1),mu=(0,R.createContext)(null),hu=`span`,gu=js(function(e){return e={...e,style:{border:0,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`absolute`,whiteSpace:`nowrap`,width:`1px`,...e.style}},e});Os(function(e){return As(hu,gu(e))});var _u=`span`,vu=js(function(e){return e={"data-focus-trap":``,tabIndex:0,"aria-hidden":!0,...e,style:{position:`fixed`,top:0,left:0,...e.style}},e=gu(e),e}),yu=Os(function(e){return As(_u,vu(e))}),bu=`div`;function xu(e){return Eo(e).body}function Su(e,t){return t?typeof t==`function`?t(e):t:Eo(e).createElement(`div`)}function Cu(e=`id`){return`${e?`${e}-`:``}${Math.random().toString(36).slice(2,8)}`}function wu(e){queueMicrotask(()=>{e?.focus()})}var Tu=js(function({preserveTabOrder:e,preserveTabOrderAnchor:t,portalElement:n,portalRef:r,portal:i=!0,...a}){let o=(0,R.useRef)(null),s=ls(o,a.ref),c=(0,R.useContext)(mu),[l,u]=(0,R.useState)(null),[d,f]=(0,R.useState)(null),p=(0,R.useRef)(null),m=(0,R.useRef)(null),h=(0,R.useRef)(null),g=(0,R.useRef)(null);return K(()=>{let e=o.current;if(!e||!i){u(null);return}let t=Su(e,n);if(!t){u(null);return}let a=t.isConnected;if(a||(c||xu(e)).appendChild(t),t.id||=e.id?`portal/${e.id}`:Cu(),u(t),bo(r,t),!a)return()=>{t.remove(),bo(r,null)}},[i,n,c,r]),K(()=>{if(!i||!e||!t)return;let n=Eo(t).createElement(`span`);return n.style.position=`fixed`,t.insertAdjacentElement(`afterend`,n),f(n),()=>{n.remove(),f(null)}},[i,e,t]),(0,R.useEffect)(()=>{if(!l||!e)return;let t=0,n=e=>{if(!es(e))return;let n=e.type===`focusin`;if(cancelAnimationFrame(t),n)return vc(l);t=requestAnimationFrame(()=>{_c(l,!0)})};return l.addEventListener(`focusin`,n,!0),l.addEventListener(`focusout`,n,!0),()=>{cancelAnimationFrame(t),l.removeEventListener(`focusin`,n,!0),l.removeEventListener(`focusout`,n,!0)}},[l,e]),a=_s(a,t=>{if(t=(0,B.jsx)(mu.Provider,{value:l||c,children:t}),!i)return t;if(!l)return(0,B.jsx)(`span`,{ref:s,id:a.id,style:{position:`fixed`},hidden:!0});t=(0,B.jsxs)(B.Fragment,{children:[e&&l&&(0,B.jsx)(yu,{ref:m,"data-focus-trap":a.id,className:`__focus-trap-inner-before`,onFocus:e=>{es(e,l)?wu(lc()):wu(p.current)}}),t,e&&l&&(0,B.jsx)(yu,{ref:h,"data-focus-trap":a.id,className:`__focus-trap-inner-after`,onFocus:e=>{es(e,l)?wu(dc()):wu(g.current)}})]}),l&&(t=(0,ii.createPortal)(t,l));let n=(0,B.jsxs)(B.Fragment,{children:[e&&l&&(0,B.jsx)(yu,{ref:p,"data-focus-trap":a.id,className:`__focus-trap-outer-before`,onFocus:e=>{e.relatedTarget!==g.current&&es(e,l)?wu(m.current):wu(dc())}}),e&&(0,B.jsx)(`span`,{"aria-owns":l?.id,style:{position:`fixed`}}),e&&l&&(0,B.jsx)(yu,{ref:g,"data-focus-trap":a.id,className:`__focus-trap-outer-after`,onFocus:e=>{if(es(e,l))wu(h.current);else{let e=lc();if(e===m.current){requestAnimationFrame(()=>lc()?.focus());return}wu(e)}}})]});return d&&e&&(n=(0,ii.createPortal)(n,d)),(0,B.jsxs)(B.Fragment,{children:[n,t]})},[l,c,i,a.id,e,d]),a={...a,ref:s},a});Os(function(e){return As(bu,Tu(e))});var Eu=(0,R.createContext)(0);function Du({level:e,children:t}){let n=(0,R.useContext)(Eu),r=Math.max(Math.min(e||n+1,6),1);return(0,B.jsx)(Eu.Provider,{value:r,children:t})}var Ou=`div`,ku=js(function({autoFocusOnShow:e=!0,...t}){return t=_s(t,t=>(0,B.jsx)(ec.Provider,{value:e,children:t}),[e]),t});Os(function(e){return As(Ou,ku(e))});function Au(e,t){let n=Eo(e).createElement(`button`);return n.type=`button`,n.tabIndex=-1,n.textContent=`Dismiss popup`,Object.assign(n.style,{border:`0px`,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:`0px`,position:`absolute`,whiteSpace:`nowrap`,width:`1px`}),n.addEventListener(`click`,t),e.prepend(n),()=>{n.removeEventListener(`click`,t),n.remove()}}function ju(e){let t=(0,R.useRef)(null);return(0,R.useEffect)(()=>{if(!e){t.current=null;return}return ns(`mousedown`,e=>{t.current=e.target},!0)},[e]),t}var Mu=new WeakMap;function Nu(e,t,n){Mu.has(e)||Mu.set(e,new Map);let r=Mu.get(e),i=r.get(t);if(!i)return r.set(t,n()),()=>{var e;(e=r.get(t))==null||e(),r.delete(t)};let a=n(),o=()=>{a(),i(),r.delete(t)};return r.set(t,o),()=>{r.get(t)===o&&(a(),r.set(t,i))}}function Pu(e,t,n){return Nu(e,t,()=>{let r=e.getAttribute(t);return e.setAttribute(t,n),()=>{r==null?e.removeAttribute(t):e.setAttribute(t,r)}})}function Fu(e,t,n){return Nu(e,t,()=>{let r=t in e,i=e[t];return e[t]=n,()=>{r?e[t]=i:delete e[t]}})}function Iu(e,t){return e?Nu(e,`style`,()=>{let n=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=n}}):()=>{}}function Lu(e,t,n){return e?Nu(e,t,()=>{let r=e.style.getPropertyValue(t);return e.style.setProperty(t,n),()=>{r?e.style.setProperty(t,r):e.style.removeProperty(t)}}):()=>{}}var Ru=[`SCRIPT`,`STYLE`];function zu(e){return`__ariakit-dialog-snapshot-${e}`}function Bu(e,t){let n=Eo(t),r=zu(e);if(!n.body[r])return!0;do{if(t===n.body)return!1;if(t[r])return!0;if(!t.parentElement)return!1;t=t.parentElement}while(!0)}function Vu(e,t,n){return Ru.includes(t.tagName)||!Bu(e,t)?!1:!n.some(e=>e&&G(t,e))}function Hu(e,t,n,r){for(let i of t){if(!i?.isConnected)continue;let a=t.some(e=>!e||e===i?!1:e.contains(i)),o=Eo(i),s=i;for(;i.parentElement&&i!==o.body;){if(r?.(i.parentElement,s),!a)for(let r of i.parentElement.children)Vu(e,r,t)&&n(r,s);i=i.parentElement}}}function Uu(e,t){let{body:n}=Eo(t[0]),r=[];return Hu(e,t,t=>{r.push(Fu(t,zu(e),!0))}),U(Fu(n,zu(e),!0),()=>{for(let e of r)e()})}function Wu(e,...t){if(!e)return!1;let n=e.getAttribute(`data-backdrop`);return n==null?!1:n===``||n===`true`||!t.length?!0:t.some(e=>n===e)}function Gu(e=``,t=!1){return`__ariakit-dialog-${t?`ancestor`:`outside`}${e?`-${e}`:``}`}function Ku(e,t=``){return U(Fu(e,Gu(),!0),Fu(e,Gu(t),!0))}function qu(e,t=``){return U(Fu(e,Gu(``,!0),!0),Fu(e,Gu(t,!0),!0))}function Ju(e,t){let n=Gu(t,!0);if(e[n])return!0;let r=Gu(t);do{if(e[r])return!0;if(!e.parentElement)return!1;e=e.parentElement}while(!0)}function Yu(e,t){let n=[],r=t.map(e=>e?.id);return Hu(e,t,t=>{Wu(t,...r)||n.unshift(Ku(t,e))},(t,r)=>{r.hasAttribute(`data-dialog`)&&r.id!==e||n.unshift(qu(t,e))}),()=>{for(let e of n)e()}}function Xu(e){return e.tagName===`HTML`?!0:G(Eo(e).body,e)}function Zu(e,t){if(!e)return!1;if(G(e,t))return!0;let n=t.getAttribute(`aria-activedescendant`);if(n){let t=Eo(e).getElementById(n);if(t)return G(e,t)}return!1}function Qu(e,t){if(!(`clientY`in e))return!1;let n=t.getBoundingClientRect();return n.width===0||n.height===0?!1:n.top<=e.clientY&&e.clientY<=n.top+n.height&&n.left<=e.clientX&&e.clientX<=n.left+n.width}function $u({store:e,type:t,listener:n,capture:r,domReady:i}){let a=q(n),o=J(e,`open`),s=(0,R.useRef)(!1);K(()=>{if(!o||!i)return;let{contentElement:t}=e.getState();if(!t)return;let n=()=>{s.current=!0};return t.addEventListener(`focusin`,n,!0),()=>t.removeEventListener(`focusin`,n,!0)},[e,o,i]),(0,R.useEffect)(()=>o?ns(t,t=>{let{contentElement:n,disclosureElement:r}=e.getState(),i=t.target;n&&i&&Xu(i)&&(G(n,i)||Zu(r,i)||i.hasAttribute(`data-focus-trap`)||Qu(t,n)||s.current&&!Ju(i,n.id)||wc(i)||a(t))},r):void 0,[o,r,e,t,a])}function ed(e,t){return typeof e==`function`?e(t):!!e}function td(e,t,n){let r=ju(J(e,`open`)),i={store:e,domReady:n,capture:!0};$u({...i,type:`click`,listener:n=>{let{contentElement:i}=e.getState(),a=r.current;a&&Mo(a)&&Ju(a,i?.id)&&ed(t,n)&&e.hide()}}),$u({...i,type:`focusin`,listener:n=>{let{contentElement:r}=e.getState();r&&n.target!==Eo(r)&&ed(t,n)&&e.hide()}}),$u({...i,type:`contextmenu`,listener:n=>{ed(t,n)&&e.hide()}})}var nd=(0,R.createContext)({});function rd(e){let t=(0,R.useContext)(nd),[n,r]=(0,R.useState)([]),i=(0,R.useCallback)(e=>(r(t=>[...t,e]),U(t.add?.call(t,e),()=>{r(t=>t.filter(t=>t!==e))})),[t]);K(()=>qc(e,[`open`,`contentElement`],n=>{if(n.open&&n.contentElement)return t.add?.call(t,e)}),[e,t]);let a=(0,R.useMemo)(()=>({store:e,add:i}),[e,i]);return{wrapElement:(0,R.useCallback)(e=>(0,B.jsx)(nd.Provider,{value:a,children:e}),[a]),nestedDialogs:n}}function id({attribute:e,contentId:t,contentElement:n,enabled:r}){let[i,a]=hs(),o=(0,R.useCallback)(()=>{if(!r||!n)return!1;let{body:i}=Eo(n),a=i.getAttribute(e);return!a||a===t},[i,r,n,e,t]);return(0,R.useEffect)(()=>{if(!r||!t||!n)return;let{body:i}=Eo(n);if(o())return i.setAttribute(e,t),()=>i.removeAttribute(e);let s=new MutationObserver(()=>(0,ii.flushSync)(a));return s.observe(i,{attributeFilter:[e]}),()=>s.disconnect()},[i,r,t,n,o,e]),o}function ad(e){let t=e.getBoundingClientRect().left;return Math.round(t)+e.scrollLeft?`paddingLeft`:`paddingRight`}function od(e,t,n){let r=id({attribute:`data-dialog-prevent-body-scroll`,contentElement:e,contentId:t,enabled:n});(0,R.useEffect)(()=>{if(!r()||!e)return;let t=Eo(e),n=Do(e),{documentElement:i,body:a}=t,o=i.style.getPropertyValue(`--scrollbar-width`),s=o?Number.parseInt(o,10):n.innerWidth-i.clientWidth,c=()=>Lu(i,`--scrollbar-width`,`${s}px`),l=ad(i),u=()=>Iu(a,{overflow:`hidden`,[l]:`${s}px`}),d=()=>{let{scrollX:e,scrollY:t,visualViewport:r}=n,i=r?.offsetLeft??0,o=r?.offsetTop??0,c=Iu(a,{position:`fixed`,overflow:`hidden`,top:`${-(t-Math.floor(o))}px`,left:`${-(e-Math.floor(i))}px`,right:`0`,[l]:`${s}px`});return()=>{c(),n.scrollTo({left:e,top:t,behavior:`instant`})}},f=Uo()&&!Ko();return U(c(),f?d():u())},[r,e])}function sd(e,...t){if(!e)return!1;let n=e.getAttribute(`data-focus-trap`);return n==null?!1:t.length?n===``?!1:t.some(e=>n===e):!0}function cd(){return`inert`in HTMLElement.prototype}function ld(e){return Pu(e,`aria-hidden`,`true`)}function ud(e,t){return`style`in e?cd()?Fu(e,`inert`,!0):U(...oc(e,!0).map(e=>{if(t?.some(t=>t&&G(t,e)))return ao;let n=Nu(e,`focus`,()=>(e.focus=ao,()=>{delete e.focus}));return U(Pu(e,`tabindex`,`-1`),n)}),ld(e),Iu(e,{pointerEvents:`none`,userSelect:`none`,cursor:`default`})):ao}function dd(e,t){let n=[],r=t.map(e=>e?.id);return Hu(e,t,e=>{Wu(e,...r)||sd(e,...r)||n.unshift(ud(e,t))},e=>{e.hasAttribute(`role`)&&(t.some(t=>t&&G(t,e))||n.unshift(Pu(e,`role`,`none`)))}),()=>{for(let e of n)e()}}var fd=`div`,pd=`a.button.details.dialog.div.form.h1.h2.h3.h4.h5.h6.header.img.input.label.li.nav.ol.p.section.select.span.summary.textarea.ul.svg`.split(`.`);js(function(e){return e});var md=Os(function(e){return As(fd,e)});Object.assign(md,pd.reduce((e,t)=>(e[t]=Os(function(e){return As(t,e)}),e),{}));function hd({store:e,backdrop:t,alwaysVisible:n,hidden:r}){let i=(0,R.useRef)(null),a=Ll({disclosure:e}),o=J(e,`contentElement`);(0,R.useEffect)(()=>{let e=i.current,t=o;e&&t&&(e.style.zIndex=getComputedStyle(t).zIndex)},[o]),K(()=>{let e=o?.id;if(!e)return;let t=i.current;if(t)return qu(t,e)},[o]);let s=Y({ref:i,store:a,role:`presentation`,"data-backdrop":o?.id||``,alwaysVisible:n,hidden:r??void 0,style:{position:`fixed`,top:0,right:0,bottom:0,left:0}});if(!t)return null;if((0,R.isValidElement)(t))return(0,B.jsx)(md,{...s,render:t});let c=typeof t==`boolean`?`div`:t;return(0,B.jsx)(md,{...s,render:(0,B.jsx)(c,{})})}function gd(e={}){return X(e)}function _d(e,t,n){return Z(e,t,n)}function vd(e={}){let[t,n]=nl(gd,e);return _d(t,n,e)}var yd=`div`,Q=Wo();function bd(e){let t=Oo();return!t||e&&G(e,t)?!1:!!rc(t)}function xd(e,t=!1){if(!e)return null;let n=`current`in e?e.current:e;return n?t?rc(n)?n:null:n:null}var Sd=js(function({store:e,open:t,onClose:n,focusable:r=!0,modal:i=!0,portal:a=!!i,backdrop:o=!!i,hideOnEscape:s=!0,hideOnInteractOutside:c=!0,getPersistentElements:l,preventBodyScroll:u=!!i,autoFocusOnShow:d=!0,autoFocusOnHide:f=!0,initialFocus:p,finalFocus:m,unmountOnHide:h,unstable_treeSnapshotKey:g,..._}){let v=El(),y=(0,R.useRef)(null),b=vd({store:e||v,open:t,setOpen(e){if(e)return;let t=y.current;if(!t)return;let r=new Event(`close`,{bubbles:!1,cancelable:!0});n&&t.addEventListener(`close`,n,{once:!0}),t.dispatchEvent(r),r.defaultPrevented&&b.setOpen(!0)}}),{portalRef:x,domReady:S}=vs(a,_.portalRef),C=_.preserveTabOrder,w=J(b,e=>C&&!i&&e.mounted),T=us(_.id),E=J(b,`open`),D=J(b,`mounted`),O=J(b,`contentElement`),k=Fl(D,_.hidden,_.alwaysVisible);od(O,T,u&&!k),td(b,c,S);let{wrapElement:A,nestedDialogs:j}=rd(b);_=_s(_,A,[A]),K(()=>{if(!E)return;let e=y.current,t=Oo(e,!0);t&&t.tagName!==`BODY`&&(e&&G(e,t)||b.setDisclosureElement(t))},[b,E]),Q&&(0,R.useEffect)(()=>{if(!D)return;let{disclosureElement:e}=b.getState();if(!e||!Ao(e))return;let t=()=>{let t=!1,n=()=>{t=!0};e.addEventListener(`focusin`,n,{capture:!0,once:!0}),ts(e,`mouseup`,()=>{e.removeEventListener(`focusin`,n,!0),!t&&hc(e)})};return e.addEventListener(`mousedown`,t),()=>{e.removeEventListener(`mousedown`,t)}},[b,D]),(0,R.useEffect)(()=>{if(!D||!S)return;let e=y.current;if(!e)return;let t=Do(e),n=t.visualViewport||t,r=()=>{let n=t.visualViewport?.height??t.innerHeight;e.style.setProperty(`--dialog-viewport-height`,`${n}px`)};return r(),n.addEventListener(`resize`,r),()=>{n.removeEventListener(`resize`,r)}},[D,S]),(0,R.useEffect)(()=>{if(!i||!D||!S)return;let e=y.current;if(e&&!e.querySelector(`[data-dialog-dismiss]`))return Au(e,b.hide)},[b,i,D,S]),K(()=>{if(!cd()||E||!D||!S)return;let e=y.current;if(e)return ud(e)},[E,D,S]);let M=E&&S;K(()=>{if(!T||!M)return;let e=y.current;return Uu(T,[e])},[T,M,g]);let ee=q(l);K(()=>{if(!T||!M)return;let{disclosureElement:e}=b.getState(),t=[y.current,...ee()||[],...j.map(e=>e.getState().contentElement)];return i?U(Yu(T,t),dd(T,t)):Yu(T,[e,...t])},[T,b,M,ee,j,i,g]);let te=!!d,N=gs(d),[P,ne]=(0,R.useState)(!1);(0,R.useEffect)(()=>{if(!E||!te||!S||!O?.isConnected)return;let e=xd(p,!0)||O.querySelector(`[data-autofocus=true],[autofocus]`)||sc(O,!0,a&&w)||O,t=rc(e);N(t?e:null)&&(ne(!0),queueMicrotask(()=>{e.focus(),Q&&t&&e.scrollIntoView({block:`nearest`,inline:`nearest`})}))},[E,te,S,O,p,a,w,N]);let re=!!f,F=gs(f),[ie,ae]=(0,R.useState)(!1);(0,R.useEffect)(()=>{if(E)return ae(!0),()=>ae(!1)},[E]);let I=(0,R.useCallback)((e,t=!0)=>{let{disclosureElement:n}=b.getState();if(bd(e))return;let r=xd(m)||n;if(r?.id){let e=Eo(r),t=`[aria-activedescendant="${r.id}"]`,n=e.querySelector(t);n&&(r=n)}if(r&&!rc(r)){let e=r.closest(`[data-dialog]`);if(e?.id){let t=Eo(e),n=`[aria-controls~="${e.id}"]`,i=t.querySelector(n);i&&(r=i)}}let i=r&&rc(r);if(!i&&t){requestAnimationFrame(()=>I(e,!1));return}F(i?r:null)&&i&&r?.focus({preventScroll:!0})},[b,m,F]),oe=(0,R.useRef)(!1);K(()=>{if(E||!ie||!re)return;let e=y.current;oe.current=!0,I(e)},[E,ie,S,re,I]),(0,R.useEffect)(()=>{if(!ie||!re)return;let e=y.current;return()=>{if(oe.current){oe.current=!1;return}I(e)}},[ie,re,I]);let L=gs(s);(0,R.useEffect)(()=>!S||!D?void 0:ns(`keydown`,e=>{if(e.key!==`Escape`||e.defaultPrevented)return;let t=y.current;if(!t||Ju(t))return;let n=e.target;if(!n)return;let{disclosureElement:r}=b.getState();(n.tagName===`BODY`||G(t,n)||!r||G(r,n))&&L(e)&&b.hide()},!0),[b,S,D,L]),_=_s(_,e=>(0,B.jsx)(Du,{level:i?1:void 0,children:e}),[i]);let se=_.hidden,ce=_.alwaysVisible;_=_s(_,e=>o?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(hd,{store:b,backdrop:o,hidden:se,alwaysVisible:ce}),e]}):e,[b,o,se,ce]);let[le,ue]=(0,R.useState)(),[de,fe]=(0,R.useState)();return _=_s(_,e=>(0,B.jsx)(Ol,{value:b,children:(0,B.jsx)(kl.Provider,{value:ue,children:(0,B.jsx)(Al.Provider,{value:fe,children:e})})}),[b]),_={"data-dialog":``,role:`dialog`,tabIndex:r?-1:void 0,"aria-labelledby":le,"aria-describedby":de,..._,id:T,ref:ls(y,_.ref)},_=ku({..._,autoFocusOnShow:P}),_=Y({store:b,..._}),_=Lc({..._,focusable:r}),_=Tu({portal:a,..._,portalRef:x,preserveTabOrder:w}),_});function Cd(e,t=El){return Os(function(n){let r=t();return J(n.store||r,e=>!n.unmountOnHide||e?.mounted||!!n.open)?(0,B.jsx)(e,{...n}):null})}Cd(Os(function(e){return As(yd,Sd(e))}),El);var wd=Math.min,Td=Math.max,Ed=Math.round,Dd=Math.floor,Od=e=>({x:e,y:e}),kd={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Ad(e,t,n){return Td(e,wd(t,n))}function jd(e,t){return typeof e==`function`?e(t):e}function Md(e){return e.split(`-`)[0]}function $(e){return e.split(`-`)[1]}function Nd(e){return e===`x`?`y`:`x`}function Pd(e){return e===`y`?`height`:`width`}function Fd(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Id(e){return Nd(Fd(e))}function Ld(e,t,n){n===void 0&&(n=!1);let r=$(e),i=Id(e),a=Pd(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Kd(o)),[o,Kd(o)]}function Rd(e){let t=Kd(e);return[zd(e),t,zd(t)]}function zd(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Bd=[`left`,`right`],Vd=[`right`,`left`],Hd=[`top`,`bottom`],Ud=[`bottom`,`top`];function Wd(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Vd:Bd:t?Bd:Vd;case`left`:case`right`:return t?Hd:Ud;default:return[]}}function Gd(e,t,n,r){let i=$(e),a=Wd(Md(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(zd)))),a}function Kd(e){let t=Md(e);return kd[t]+e.slice(t.length)}function qd(e){return{top:0,right:0,bottom:0,left:0,...e}}function Jd(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:qd(e)}function Yd(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Xd(e,t,n){let{reference:r,floating:i}=e,a=Fd(t),o=Id(t),s=Pd(o),c=Md(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch($(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function Zd(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=jd(t,e),p=Jd(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Yd(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Yd(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Qd=50,$d=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Zd},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Xd(l,r,c),f=r,p=0,m={};for(let n=0;n({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=jd(e,t)||{};if(l==null)return{};let d=Jd(u),f={x:n,y:r},p=Id(i),m=Pd(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=wd(d[_],T),D=wd(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,j=Ad(O,A,k),M=!c.arrow&&$(i)!=null&&A!==j&&a.reference[m]/2-(Ae<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==Fd(t))||T.every(e=>Fd(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=Fd(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}},nf=new Set([`left`,`top`]);async function rf(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Md(n),s=$(n),c=Fd(n)===`y`,l=nf.has(o)?-1:1,u=a&&c?-1:1,d=jd(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var af=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await rf(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},of=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=jd(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=Fd(Md(i)),p=Nd(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=Ad(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=Ad(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},sf=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=jd(e,t),u={x:n,y:r},d=Fd(i),f=Nd(d),p=u[f],m=u[d],h=jd(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;pn&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=nf.has(Md(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);mr&&(m=r)}return{[f]:p,[d]:m}}}},cf=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=jd(e,t),u=await o.detectOverflow(t,l),d=Md(i),f=$(i),p=Fd(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=wd(h-u[g],v),x=wd(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=Td(u.left,0),t=Td(u.right,0),n=Td(u.top,0),r=Td(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:Td(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:Td(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function lf(){return typeof window<`u`}function uf(e){return pf(e)?(e.nodeName||``).toLowerCase():`#document`}function df(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ff(e){return((pf(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function pf(e){return lf()?e instanceof Node||e instanceof df(e).Node:!1}function mf(e){return lf()?e instanceof Element||e instanceof df(e).Element:!1}function hf(e){return lf()?e instanceof HTMLElement||e instanceof df(e).HTMLElement:!1}function gf(e){return!lf()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof df(e).ShadowRoot}function _f(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Of(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function vf(e){return/^(table|td|th)$/.test(uf(e))}function yf(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var bf=/transform|translate|scale|rotate|perspective|filter/,xf=/paint|layout|strict|content/,Sf=e=>!!e&&e!==`none`,Cf;function wf(e){let t=mf(e)?Of(e):e;return Sf(t.transform)||Sf(t.translate)||Sf(t.scale)||Sf(t.rotate)||Sf(t.perspective)||!Ef()&&(Sf(t.backdropFilter)||Sf(t.filter))||bf.test(t.willChange||``)||xf.test(t.contain||``)}function Tf(e){let t=Af(e);for(;hf(t)&&!Df(t);){if(wf(t))return t;if(yf(t))return null;t=Af(t)}return null}function Ef(){return Cf??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Cf}function Df(e){return/^(html|body|#document)$/.test(uf(e))}function Of(e){return df(e).getComputedStyle(e)}function kf(e){return mf(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Af(e){if(uf(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||gf(e)&&e.host||ff(e);return gf(t)?t.host:t}function jf(e){let t=Af(e);return Df(t)?e.ownerDocument?e.ownerDocument.body:e.body:hf(t)&&_f(t)?t:jf(t)}function Mf(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=jf(e),i=r===e.ownerDocument?.body,a=df(r);if(i){let e=Nf(a);return t.concat(a,a.visualViewport||[],_f(r)?r:[],e&&n?Mf(e):[])}else return t.concat(r,Mf(r,[],n))}function Nf(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Pf(e){let t=Of(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=hf(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=Ed(n)!==a||Ed(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Ff(e){return mf(e)?e:e.contextElement}function If(e){let t=Ff(e);if(!hf(t))return Od(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Pf(t),o=(a?Ed(n.width):n.width)/r,s=(a?Ed(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var Lf=Od(0);function Rf(e){let t=df(e);return!Ef()||!t.visualViewport?Lf:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function zf(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==df(e)?!1:t}function Bf(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Ff(e),o=Od(1);t&&(r?mf(r)&&(o=If(r)):o=If(e));let s=zf(a,n,r)?Rf(a):Od(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=df(a),t=r&&mf(r)?df(r):r,n=e,i=Nf(n);for(;i&&r&&t!==n;){let e=If(i),t=i.getBoundingClientRect(),r=Of(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=df(i),i=Nf(n)}}return Yd({width:u,height:d,x:c,y:l})}function Vf(e,t){let n=kf(e).scrollLeft;return t?t.left+n:Bf(ff(e)).left+n}function Hf(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Vf(e,n),y:n.top+t.scrollTop}}function Uf(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=ff(r),s=t?yf(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Od(1),u=Od(0),d=hf(r);if((d||!d&&!a)&&((uf(r)!==`body`||_f(o))&&(c=kf(r)),d)){let e=Bf(r);l=If(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?Hf(o,c):Od(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Wf(e){return Array.from(e.getClientRects())}function Gf(e){let t=ff(e),n=kf(e),r=e.ownerDocument.body,i=Td(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Td(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+Vf(e),s=-n.scrollTop;return Of(r).direction===`rtl`&&(o+=Td(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var Kf=25;function qf(e,t){let n=df(e),r=ff(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Ef();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=Vf(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=Kf&&(a-=o)}else l<=Kf&&(a+=l);return{width:a,height:o,x:s,y:c}}function Jf(e,t){let n=Bf(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=hf(e)?If(e):Od(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Yf(e,t,n){let r;if(t===`viewport`)r=qf(e,n);else if(t===`document`)r=Gf(ff(e));else if(mf(t))r=Jf(t,n);else{let n=Rf(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Yd(r)}function Xf(e,t){let n=Af(e);return n===t||!mf(n)||Df(n)?!1:Of(n).position===`fixed`||Xf(n,t)}function Zf(e,t){let n=t.get(e);if(n)return n;let r=Mf(e,[],!1).filter(e=>mf(e)&&uf(e)!==`body`),i=null,a=Of(e).position===`fixed`,o=a?Af(e):e;for(;mf(o)&&!Df(o);){let t=Of(o),n=wf(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||_f(o)&&!n&&Xf(e,o))?r=r.filter(e=>e!==o):i=t,o=Af(o)}return t.set(e,r),r}function Qf(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?yf(t)?[]:Zf(t,this._c):[].concat(n),r],o=Yf(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e{o(!1,1e-7)},1e3)}n===1&&!sp(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function lp(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Ff(e),u=i||a?[...l?Mf(l):[],...t?Mf(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?cp(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Bf(e):null;c&&g();function g(){let t=Bf(e);h&&!sp(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var up=af,dp=of,fp=tf,pp=cf,mp=ef,hp=sf,gp=(e,t,n)=>{let r=new Map,i={platform:op,...n},a={...i.platform,_c:r};return $d(e,t,{...i,platform:a})},_p=`div`;function vp(e=0,t=0,n=0,r=0){if(typeof DOMRect==`function`)return new DOMRect(e,t,n,r);let i={x:e,y:t,width:n,height:r,top:t,right:e+n,bottom:t+r,left:e};return{...i,toJSON:()=>i}}function yp(e){if(!e)return vp();let{x:t,y:n,width:r,height:i}=e;return vp(t,n,r,i)}function bp(e,t){return{contextElement:e||void 0,getBoundingClientRect:()=>{let n=e,r=t?.(n);return r||!n?yp(r):n.getBoundingClientRect()}}}function xp(e){return/^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(e)}function Sp(e){let t=window.devicePixelRatio||1;return Math.round(e*t)/t}function Cp(e,t){return up(({placement:n})=>{let r=(e?.clientHeight||0)/2,i=typeof t.gutter==`number`?t.gutter+r:t.gutter??r;return{crossAxis:n.split(`-`)[1]?void 0:t.shift,mainAxis:i,alignmentAxis:t.shift}})}function wp(e){if(e.flip===!1)return;let t=typeof e.flip==`string`?e.flip.split(` `):void 0;return ho(!t||t.every(xp),!1),fp({padding:e.overflowPadding,fallbackPlacements:t})}function Tp(e){if(!(!e.slide&&!e.overlap))return dp({mainAxis:e.slide,crossAxis:e.overlap,padding:e.overflowPadding,limiter:hp()})}function Ep(e){return pp({padding:e.overflowPadding,apply({elements:t,availableWidth:n,availableHeight:r,rects:i}){let a=t.floating,o=Math.round(i.reference.width);n=Math.floor(n),r=Math.floor(r),a.style.setProperty(`--popover-anchor-width`,`${o}px`),a.style.setProperty(`--popover-available-width`,`${n}px`),a.style.setProperty(`--popover-available-height`,`${r}px`),e.sameWidth&&(a.style.width=`${o}px`),e.fitViewport&&(a.style.maxWidth=`${n}px`,a.style.maxHeight=`${r}px`)}})}function Dp(e,t){if(e)return mp({element:e,padding:t.arrowPadding})}var Op=js(function({store:e,modal:t=!1,portal:n=!!t,preserveTabOrder:r=!0,autoFocusOnShow:i=!0,wrapperProps:a,fixed:o=!1,flip:s=!0,shift:c=0,slide:l=!0,overlap:u=!1,sameWidth:d=!1,fitViewport:f=!1,gutter:p,arrowPadding:m=4,overflowPadding:h=8,getAnchorRect:g,updatePosition:_,...v}){let y=zl();e||=y,ho(e,!1);let b=J(e,`arrowElement`),x=J(e,`anchorElement`),S=J(e,`disclosureElement`),C=J(e,`popoverElement`),w=J(e,`contentElement`),T=J(e,`placement`),E=J(e,`mounted`),D=J(e,`rendered`),O=(0,R.useRef)(null),[k,A]=(0,R.useState)(!1),{portalRef:j,domReady:M}=vs(n,v.portalRef),ee=q(g),te=q(_),N=!!_;K(()=>{if(!C?.isConnected)return;C.style.setProperty(`--popover-overflow-padding`,`${h}px`);let t=bp(x,ee),n=async()=>{if(!E)return;b||(O.current=O.current||document.createElement(`div`));let n=b||O.current,r=[Cp(n,{gutter:p,shift:c}),wp({flip:s,overflowPadding:h}),Tp({slide:l,shift:c,overlap:u,overflowPadding:h}),Dp(n,{arrowPadding:m}),Ep({sameWidth:d,fitViewport:f,overflowPadding:h})],i=await gp(t,C,{placement:T,strategy:o?`fixed`:`absolute`,middleware:r});e?.setState(`currentPlacement`,i.placement),A(!0);let a=Sp(i.x),g=Sp(i.y);if(Object.assign(C.style,{top:`0`,left:`0`,transform:`translate3d(${a}px,${g}px,0)`}),n&&i.middlewareData.arrow){let{x:e,y:t}=i.middlewareData.arrow,r=i.placement.split(`-`)[0],a=n.clientWidth/2,o=n.clientHeight/2,s=e==null?-a:e+a,c=t==null?-o:t+o;C.style.setProperty(`--popover-transform-origin`,{top:`${s}px calc(100% + ${o}px)`,bottom:`${s}px ${-o}px`,left:`calc(100% + ${a}px) ${c}px`,right:`${-a}px ${c}px`}[r]),Object.assign(n.style,{left:e==null?``:`${e}px`,top:t==null?``:`${t}px`,[r]:`100%`})}},r=lp(t,C,async()=>{N?(await te({updatePosition:n}),A(!0)):await n()},{elementResize:typeof ResizeObserver==`function`});return()=>{A(!1),r()}},[e,D,C,b,x,C,T,E,M,o,s,c,l,u,d,f,p,m,h,ee,N,te]),K(()=>{if(!E||!M||!C?.isConnected||!w?.isConnected)return;let e=()=>{C.style.zIndex=getComputedStyle(w).zIndex};e();let t=requestAnimationFrame(()=>{t=requestAnimationFrame(e)});return()=>cancelAnimationFrame(t)},[E,M,C,w]);let P=o?`fixed`:`absolute`;return v=_s(v,t=>(0,B.jsx)(`div`,{...a,style:{position:P,top:0,left:0,width:`max-content`,...a?.style},ref:e?.setPopoverElement,children:t}),[e,P,a]),v=_s(v,t=>(0,B.jsx)(Vl,{value:e,children:t}),[e]),v={"data-placing":!k||void 0,...v,style:{position:`relative`,...v.style}},v=Sd({store:e,modal:t,portal:n,preserveTabOrder:r,preserveTabOrderAnchor:S||x,autoFocusOnShow:k&&i,...v,portalRef:j}),v});Cd(Os(function(e){return As(_p,Op(e))}),zl);function kp({popover:e,...t}={}){let n=Zc(t.store,Yc(e,[`arrowElement`,`anchorElement`,`contentElement`,`popoverElement`,`disclosureElement`])),r=n?.getState(),i=gd({...t,store:n}),a=W(t.placement,r?.placement,`bottom`),o=Uc({...i.getState(),placement:a,currentPlacement:a,anchorElement:W(r?.anchorElement,null),popoverElement:W(r?.popoverElement,null),arrowElement:W(r?.arrowElement,null),rendered:Symbol(`rendered`)},i,n);return{...i,...o,setAnchorElement:e=>o.setState(`anchorElement`,e),setPopoverElement:e=>o.setState(`popoverElement`,e),setArrowElement:e=>o.setState(`arrowElement`,e),render:()=>o.setState(`rendered`,Symbol(`rendered`))}}function Ap(e,t,n){return ps(t,[n.popover]),tl(e,n,`placement`),_d(e,t,n)}var jp=`div`,Mp=js(function({store:e,...t}){let n=zl();return e||=n,t={...t,ref:ls(e?.setAnchorElement,t.ref)},t});Os(function(e){return As(jp,Mp(e))});var Np=(0,R.createContext)(void 0),Pp=`div`,Fp=js(function(e){let[t,n]=(0,R.useState)();return e=_s(e,e=>(0,B.jsx)(Np.Provider,{value:n,children:e}),[]),e={role:`group`,"aria-labelledby":t,...e},yo(e)});Os(function(e){return As(Pp,Fp(e))});var Ip=`div`,Lp=js(function({store:e,...t}){return t=Fp(t),t});Os(function(e){return As(Ip,Lp(e))});var Rp=`div`,zp=js(function(e){let t=(0,R.useContext)(Np),n=us(e.id);return K(()=>(t?.(n),()=>t?.(void 0)),[t,n]),e={"aria-hidden":!0,...e,id:n},yo(e)});Os(function(e){return As(Rp,zp(e))});var Bp=`div`,Vp=js(function({store:e,...t}){return t=zp(t),t});Os(function(e){return As(Bp,Vp(e))});var Hp=`div`;function Up(e){let t=e.relatedTarget;return t?.nodeType===Node.ELEMENT_NODE?t:null}function Wp(e){let t=Up(e);return t?G(e.currentTarget,t):!1}var Gp=Symbol(`composite-hover`);function Kp(e){let t=Up(e);if(!t)return!1;do{if(lo(t,Gp)&&t[Gp])return!0;t=t.parentElement}while(t);return!1}var qp=js(function({store:e,focusOnHover:t=!0,blurOnHoverEnd:n=!!t,...r}){let i=Rs();e||=i,ho(e,!1);let a=xs(),o=r.onMouseMove,s=gs(t),c=q(t=>{if(o?.(t),!t.defaultPrevented&&a()&&s(t)){if(!mc(t.currentTarget)){let t=e?.getState().baseElement;t&&!pc(t)&&t.focus()}e?.setActiveId(t.currentTarget.id)}}),l=r.onMouseLeave,u=gs(n),d=q(t=>{var n;l?.(t),!t.defaultPrevented&&a()&&(Wp(t)||Kp(t)||s(t)&&u(t)&&(e?.setActiveId(null),(n=e?.getState().baseElement)==null||n.focus()))}),f=(0,R.useCallback)(e=>{e&&(e[Gp]=!0)},[]);return r={...r,ref:ls(f,r.ref),onMouseMove:c,onMouseLeave:d},yo(r)});ks(Os(function(e){return As(Hp,qp(e))}));var Jp=`input`;function Yp(e,t,n){return n?e.find(e=>!e.disabled&&e.value)?.value===t:!1}function Xp(e,t){return!t||e==null?!1:(e=uo(e),t.length>e.length&&t.toLowerCase().indexOf(e.toLowerCase())===0)}function Zp(e){return e.type===`input`}function Qp(e){return e===`inline`||e===`list`||e===`both`||e===`none`}function $p(e){return e.find(e=>e.disabled?!1:e.element?.getAttribute(`role`)!==`tab`)?.id}var em=js(function({store:e,focusable:t=!0,autoSelect:n=!1,getAutoSelectId:r,setValueOnChange:i,showMinLength:a=0,showOnChange:o,showOnMouseDown:s,showOnClick:c=s,showOnKeyDown:l,showOnKeyPress:u=l,blurActiveItemOnClick:d,setValueOnClick:f=!0,moveOnKeyPress:p=!0,autoComplete:m=`list`,...h}){let g=lu();e||=g,ho(e,!1);let _=(0,R.useRef)(null),[v,y]=hs(),b=(0,R.useRef)(!1),x=(0,R.useRef)(!1),S=J(e,e=>e.virtualFocus&&n),C=m===`inline`||m===`both`,[w,T]=(0,R.useState)(C);ms(()=>{C&&T(!0)},[C]);let E=J(e,`value`),D=(0,R.useRef)(void 0);(0,R.useEffect)(()=>qc(e,[`selectedValue`,`activeId`],(e,t)=>{D.current=t.selectedValue}),[e]);let O=J(e,e=>{if(C&&w&&!(e.activeValue&&Array.isArray(e.selectedValue)&&(e.selectedValue.includes(e.activeValue)||D.current?.includes(e.activeValue))))return e.activeValue}),k=J(e,`renderedItems`),A=J(e,`open`),j=J(e,`contentElement`),M=(0,R.useMemo)(()=>!C||!w?E:Yp(k,O,S)?Xp(E,O)?E+(O?.slice(E.length)||``):E:O||E,[C,w,k,O,S,E]);(0,R.useEffect)(()=>{let e=_.current;if(!e)return;let t=()=>T(!0);return e.addEventListener(`combobox-item-move`,t),()=>{e.removeEventListener(`combobox-item-move`,t)}},[]),(0,R.useEffect)(()=>{if(!C||!w||!O||!Yp(k,O,S)||!Xp(E,O))return;let e=ao;return queueMicrotask(()=>{let t=_.current;if(!t)return;let{start:n,end:r}=Io(t),i=E.length,a=O.length;zo(t,i,a),e=()=>{if(!pc(t))return;let{start:e,end:o}=Io(t);e===i&&o===a&&zo(t,n,r)}}),()=>e()},[v,C,w,O,k,S,E]);let ee=(0,R.useRef)(null),te=q(r),N=(0,R.useRef)(null),P=(0,R.useRef)(!1),ne=(0,R.useRef)(!1);(0,R.useEffect)(()=>{if(!A||!j)return;let t=Ro(j);if(!t)return;ee.current=t;let n=()=>{b.current=!1,P.current=!0},r=()=>{if(ne.current||(P.current=!0),!e||!b.current)return;let{activeId:t}=e.getState();t!==null&&t!==N.current&&(b.current=!1)},i={passive:!0,capture:!0};return t.addEventListener(`wheel`,n,i),t.addEventListener(`touchmove`,n,i),t.addEventListener(`scroll`,r,i),()=>{t.removeEventListener(`wheel`,n,!0),t.removeEventListener(`touchmove`,n,!0),t.removeEventListener(`scroll`,r,!0)}},[A,j,e]),K(()=>{P.current=!1,E&&(x.current||(b.current=!0))},[E]),K(()=>{S!==`always`&&A||(b.current=A)},[S,A]);let re=J(e,`resetValueOnSelect`);ps(()=>{let t=b.current;if(!e||!A||!t&&(!re||P.current))return;let{baseElement:n,contentElement:r,activeId:i}=e.getState();if(!(n&&!pc(n))){if(r?.hasAttribute(`data-placing`)){let e=new MutationObserver(y);return e.observe(r,{attributeFilter:[`data-placing`]}),()=>e.disconnect()}if(S&&t){let t=te(k),n=t===void 0?$p(k)??e.first():t;N.current=n,e.move(n??null)}else{let t=e.item(i||e.first())?.element;t&&`scrollIntoView`in t&&(ne.current=!0,t.scrollIntoView({block:`nearest`,inline:`nearest`}),requestAnimationFrame(()=>{ne.current=!1}))}}},[e,A,v,E,S,re,te,k]),(0,R.useEffect)(()=>{if(!C)return;let t=_.current;if(!t)return;let n=[t,j].filter(e=>!!e),r=t=>{n.every(e=>es(t,e))&&e?.setValue(M)};for(let e of n)e.addEventListener(`focusout`,r);return()=>{for(let e of n)e.removeEventListener(`focusout`,r)}},[C,j,e,M]);let F=e=>e.currentTarget.value.length>=a,ie=h.onChange,ae=gs(o??F),I=gs(i??!e.tag),oe=q(t=>{if(ie?.(t),t.defaultPrevented||!e)return;let n=t.currentTarget,{value:r,selectionStart:i,selectionEnd:a}=n,o=t.nativeEvent;if(b.current=!0,Zp(o)&&(o.isComposing&&(b.current=!1,x.current=!0),C)){let e=o.inputType===`insertText`||o.inputType===`insertCompositionText`,t=i===r.length;T(e&&t)}if(I(t)){let t=r===e.getState().value;e.setValue(r),queueMicrotask(()=>{zo(n,i,a)}),C&&S&&t&&y()}ae(t)&&e.show(),(!S||!b.current)&&e.setActiveId(null)}),L=h.onCompositionEnd,se=q(e=>{b.current=!0,x.current=!1,L?.(e),!e.defaultPrevented&&S&&y()}),ce=h.onMouseDown,le=gs(d??(()=>!!e?.getState().includesBaseElement)),ue=gs(f),de=gs(c??F),fe=q(t=>{ce?.(t),!t.defaultPrevented&&(t.button||t.ctrlKey||e&&(le(t)&&e.setActiveId(null),ue(t)&&e.setValue(M),de(t)&&ts(t.currentTarget,`mouseup`,e.show)))}),pe=h.onKeyDown,me=gs(u??F),he=q(t=>{if(pe?.(t),t.repeat||(b.current=!1),t.defaultPrevented||t.ctrlKey||t.altKey||t.shiftKey||t.metaKey||!e)return;let{open:n}=e.getState();n||(t.key===`ArrowUp`||t.key===`ArrowDown`)&&me(t)&&(t.preventDefault(),e.show())}),ge=h.onBlur,_e=q(e=>{b.current=!1,ge?.(e),e.defaultPrevented}),ve=us(h.id),ye=Qp(m)?m:void 0,be=J(e,e=>e.activeId===null);return h={role:`combobox`,"aria-autocomplete":ye,"aria-haspopup":Lo(j,`listbox`),"aria-expanded":A,"aria-controls":j?.id,"data-active-item":be||void 0,value:M,...h,id:ve,ref:ls(_,h.ref),onChange:oe,onCompositionEnd:se,onMouseDown:fe,onKeyDown:he,onBlur:_e},h=bl({store:e,focusable:t,...h,moveOnKeyPress:e=>_o(p,e)?!1:(C&&T(!0),!0)}),h=Mp({store:e,...h}),{autoComplete:`off`,...h}}),tm=Os(function(e){return As(Jp,em(e))}),nm=`div`,rm=js(function({store:e,...t}){let n=cu();return e||=n,ho(e,!1),Lo(J(e,`contentElement`))===`grid`&&(t={role:`rowgroup`,...t}),t=Lp({store:e,...t}),t}),im=Os(function(e){return As(nm,rm(e))}),am=`div`,om=js(function(e){return e=Vp(e),e}),sm=Os(function(e){return As(am,om(e))}),cm=`div`;function lm(e,t){if(t!=null)return e==null?!1:Array.isArray(e)?e.includes(t):e===t}function um(e){return{menu:`menuitem`,listbox:`option`,tree:`treeitem`}[e]??`option`}var dm=js(function({store:e,value:t,hideOnClick:n,setValueOnClick:r,selectValueOnClick:i=!0,resetValueOnSelect:a,focusOnHover:o=!1,moveOnKeyPress:s=!0,getItem:c,...l}){let u=cu();e||=u,ho(e,!1);let{resetValueOnSelectState:d,multiSelectable:f,selected:p}=el(e,{resetValueOnSelectState:`resetValueOnSelect`,multiSelectable(e){return Array.isArray(e.selectedValue)},selected(e){return lm(e.selectedValue,t)}}),m=(0,R.useCallback)(e=>{let n={...e,value:t};return c?c(n):n},[t,c]);r??=!f,n??=t!=null&&!f;let h=l.onClick,g=gs(r),_=gs(i),v=gs(a??d??f),y=gs(n),b=q(n=>{h?.(n),!n.defaultPrevented&&(Xo(n)||Yo(n)||(t!=null&&(_(n)&&(v(n)&&e?.resetValue(),e?.setSelectedValue(e=>Array.isArray(e)?e.includes(t)?e.filter(e=>e!==t):[...e,t]:t)),g(n)&&e?.setValue(t)),y(n)&&e?.hide()))}),x=l.onKeyDown,S=q(t=>{if(x?.(t),t.defaultPrevented)return;let n=e?.getState().baseElement;n&&(pc(n)||(t.key.length===1||t.key===`Backspace`||t.key===`Delete`)&&(queueMicrotask(()=>n.focus()),No(n)&&e?.setValue(n.value)))});f&&p!=null&&(l={"aria-selected":p,...l}),l=_s(l,e=>(0,B.jsx)(fu.Provider,{value:t,children:(0,B.jsx)(pu.Provider,{value:p??!1,children:e})}),[t,p]),l={role:um((0,R.useContext)(au)),children:t,...l,onClick:b,onKeyDown:S};let C=gs(s);return l=ll({store:e,...l,getItem:m,moveOnKeyPress:t=>{if(!C(t))return!1;let n=new Event(`combobox-item-move`);return(e?.getState().baseElement)?.dispatchEvent(n),!0}}),l=qp({store:e,focusOnHover:o,...l}),l}),fm=ks(Os(function(e){return As(cm,dm(e))})),pm=`div`,mm=js(function({store:e,alwaysVisible:t,...n}){let r=cu(!0),i=su();e||=i;let a=!!e&&e===r;ho(e,!1);let o=(0,R.useRef)(null),s=us(n.id),c=J(e,`mounted`),l=Fl(c,n.hidden,t),u=l?{...n.style,display:`none`}:n.style,d=J(e,e=>Array.isArray(e.selectedValue)),f=fs(o,`role`,n.role),p=(f===`listbox`||f===`tree`||f===`grid`)&&d||void 0,[m,h]=(0,R.useState)(!1),g=J(e,`contentElement`);K(()=>{if(!c)return;let e=o.current;if(!e||g!==e)return;let t=()=>{h(!!e.querySelector(`[role='listbox']`))},n=new MutationObserver(t);return n.observe(e,{subtree:!0,childList:!0,attributeFilter:[`role`]}),t(),()=>n.disconnect()},[c,g]),m||(n={role:`listbox`,"aria-multiselectable":p,...n}),n=_s(n,t=>(0,B.jsx)(du,{value:e,children:(0,B.jsx)(au.Provider,{value:f,children:t})}),[e,f]);let _=s&&(!r||!a)?e.setContentElement:null;return n={hidden:l,...n,id:s,ref:ls(_,o,n.ref),style:u},yo(n)}),hm=Os(function(e){return As(pm,mm(e))}),gm=`div`;function _m(e,...t){if(!e)return!1;if(`id`in e){let n=t.filter(Boolean).map(e=>`[aria-controls~="${e}"]`).join(`, `);return n?e.matches(n):!1}return!1}var vm=js(function({store:e,modal:t,tabIndex:n,alwaysVisible:r,autoFocusOnHide:i=!0,hideOnInteractOutside:a=!0,...o}){let s=lu();e||=s,ho(e,!1);let c=J(e,`baseElement`),l=(0,R.useRef)(!1),u=J(e.tag,e=>e?.renderedItems.length);return o=mm({store:e,alwaysVisible:r,...o}),o=Op({store:e,modal:t,alwaysVisible:r,backdrop:!1,autoFocusOnShow:!1,finalFocus:c,preserveTabOrderAnchor:null,unstable_treeSnapshotKey:u,...o,getPersistentElements(){let n=o.getPersistentElements?.call(o)||[];if(!t||!e)return n;let{contentElement:r,baseElement:i}=e.getState();if(!i)return n;let a=Eo(i),s=[];if(r?.id&&s.push(`[aria-controls~="${r.id}"]`),i?.id&&s.push(`[aria-controls~="${i.id}"]`),!s.length)return[...n,i];let c=s.join(`,`),l=a.querySelectorAll(c);return[...n,...l]},autoFocusOnHide(e){return _o(i,e)?!1:l.current?(l.current=!1,!1):!0},hideOnInteractOutside(t){let n=e?.getState(),r=n?.contentElement?.id,i=n?.baseElement?.id;if(_m(t.target,r,i))return!1;let o=typeof a==`function`?a(t):a;return o&&(l.current=t.type===`click`),o}}),o}),ym=Cd(Os(function(e){return As(gm,vm(e))}),lu);(0,R.createContext)(null),(0,R.createContext)(null);var bm=Ms([Bs],[Vs]),xm=bm.useContext;bm.useScopedContext,bm.useProviderContext,bm.ContextProvider,bm.ScopedContextProvider;var Sm=Wo()&&Ho();function Cm({tag:e,...t}={}){let n=Zc(t.store,Xc(e,[`value`,`rtl`])),r=e?.getState(),i=n?.getState(),a=W(t.activeId,i?.activeId,t.defaultActiveId,null),o=nu({...t,activeId:a,includesBaseElement:W(t.includesBaseElement,i?.includesBaseElement,!0),orientation:W(t.orientation,i?.orientation,`vertical`),focusLoop:W(t.focusLoop,i?.focusLoop,!0),focusWrap:W(t.focusWrap,i?.focusWrap,!0),virtualFocus:W(t.virtualFocus,i?.virtualFocus,!0)}),s=kp({...t,placement:W(t.placement,i?.placement,`bottom-start`)}),c=W(t.value,i?.value,t.defaultValue,``),l=W(t.selectedValue,i?.selectedValue,r?.values,t.defaultSelectedValue,``),u=Array.isArray(l),d={...o.getState(),...s.getState(),value:c,selectedValue:l,resetValueOnSelect:W(t.resetValueOnSelect,i?.resetValueOnSelect,u),resetValueOnHide:W(t.resetValueOnHide,i?.resetValueOnHide,u&&!e),activeValue:i?.activeValue},f=Uc(d,o,s,n);return Sm&&Wc(f,()=>qc(f,[`virtualFocus`],()=>{f.setState(`virtualFocus`,!1)})),Wc(f,()=>{if(e)return U(qc(f,[`selectedValue`],t=>{Array.isArray(t.selectedValue)&&e.setValues(t.selectedValue)}),qc(e,[`values`],e=>{f.setState(`selectedValue`,e.values)}))}),Wc(f,()=>qc(f,[`resetValueOnHide`,`mounted`],e=>{e.resetValueOnHide&&(e.mounted||f.setState(`value`,c))})),Wc(f,()=>qc(f,[`open`],e=>{e.open||(f.setState(`activeId`,a),f.setState(`moves`,0))})),Wc(f,()=>qc(f,[`moves`,`activeId`],(e,t)=>{e.moves===t.moves&&f.setState(`activeValue`,void 0)})),Wc(f,()=>Jc(f,[`moves`,`renderedItems`],(e,t)=>{if(e.moves===t.moves)return;let{activeId:n}=f.getState(),r=o.item(n);f.setState(`activeValue`,r?.value)})),{...s,...o,...f,tag:e,setValue:e=>f.setState(`value`,e),resetValue:()=>f.setState(`value`,d.value),setSelectedValue:e=>f.setState(`selectedValue`,e)}}function wm(e){let t=xm();return e={...e,tag:e.tag===void 0?t:e.tag},ru(e)}function Tm(e,t,n){return ps(t,[n.tag]),tl(e,n,`value`,`setValue`),tl(e,n,`selectedValue`,`setSelectedValue`),tl(e,n,`resetValueOnHide`),tl(e,n,`resetValueOnSelect`),Object.assign(iu(Ap(e,t,n),t,n),{tag:n.tag})}function Em(e={}){e=wm(e);let[t,n]=nl(Cm,e);return Tm(t,n,e)}function Dm(e={}){return(0,B.jsx)(uu,{value:Em(e),children:e.children})}var Om=e(t(((e,t)=>{var n={À:`A`,Á:`A`,Â:`A`,Ã:`A`,Ä:`A`,Å:`A`,Ấ:`A`,Ắ:`A`,Ẳ:`A`,Ẵ:`A`,Ặ:`A`,Æ:`AE`,Ầ:`A`,Ằ:`A`,Ȃ:`A`,Ả:`A`,Ạ:`A`,Ẩ:`A`,Ẫ:`A`,Ậ:`A`,Ç:`C`,Ḉ:`C`,È:`E`,É:`E`,Ê:`E`,Ë:`E`,Ế:`E`,Ḗ:`E`,Ề:`E`,Ḕ:`E`,Ḝ:`E`,Ȇ:`E`,Ẻ:`E`,Ẽ:`E`,Ẹ:`E`,Ể:`E`,Ễ:`E`,Ệ:`E`,Ì:`I`,Í:`I`,Î:`I`,Ï:`I`,Ḯ:`I`,Ȋ:`I`,Ỉ:`I`,Ị:`I`,Ð:`D`,Ñ:`N`,Ò:`O`,Ó:`O`,Ô:`O`,Õ:`O`,Ö:`O`,Ø:`O`,Ố:`O`,Ṍ:`O`,Ṓ:`O`,Ȏ:`O`,Ỏ:`O`,Ọ:`O`,Ổ:`O`,Ỗ:`O`,Ộ:`O`,Ờ:`O`,Ở:`O`,Ỡ:`O`,Ớ:`O`,Ợ:`O`,Ù:`U`,Ú:`U`,Û:`U`,Ü:`U`,Ủ:`U`,Ụ:`U`,Ử:`U`,Ữ:`U`,Ự:`U`,Ý:`Y`,à:`a`,á:`a`,â:`a`,ã:`a`,ä:`a`,å:`a`,ấ:`a`,ắ:`a`,ẳ:`a`,ẵ:`a`,ặ:`a`,æ:`ae`,ầ:`a`,ằ:`a`,ȃ:`a`,ả:`a`,ạ:`a`,ẩ:`a`,ẫ:`a`,ậ:`a`,ç:`c`,ḉ:`c`,è:`e`,é:`e`,ê:`e`,ë:`e`,ế:`e`,ḗ:`e`,ề:`e`,ḕ:`e`,ḝ:`e`,ȇ:`e`,ẻ:`e`,ẽ:`e`,ẹ:`e`,ể:`e`,ễ:`e`,ệ:`e`,ì:`i`,í:`i`,î:`i`,ï:`i`,ḯ:`i`,ȋ:`i`,ỉ:`i`,ị:`i`,ð:`d`,ñ:`n`,ò:`o`,ó:`o`,ô:`o`,õ:`o`,ö:`o`,ø:`o`,ố:`o`,ṍ:`o`,ṓ:`o`,ȏ:`o`,ỏ:`o`,ọ:`o`,ổ:`o`,ỗ:`o`,ộ:`o`,ờ:`o`,ở:`o`,ỡ:`o`,ớ:`o`,ợ:`o`,ù:`u`,ú:`u`,û:`u`,ü:`u`,ủ:`u`,ụ:`u`,ử:`u`,ữ:`u`,ự:`u`,ý:`y`,ÿ:`y`,Ā:`A`,ā:`a`,Ă:`A`,ă:`a`,Ą:`A`,ą:`a`,Ć:`C`,ć:`c`,Ĉ:`C`,ĉ:`c`,Ċ:`C`,ċ:`c`,Č:`C`,č:`c`,C̆:`C`,c̆:`c`,Ď:`D`,ď:`d`,Đ:`D`,đ:`d`,Ē:`E`,ē:`e`,Ĕ:`E`,ĕ:`e`,Ė:`E`,ė:`e`,Ę:`E`,ę:`e`,Ě:`E`,ě:`e`,Ĝ:`G`,Ǵ:`G`,ĝ:`g`,ǵ:`g`,Ğ:`G`,ğ:`g`,Ġ:`G`,ġ:`g`,Ģ:`G`,ģ:`g`,Ĥ:`H`,ĥ:`h`,Ħ:`H`,ħ:`h`,Ḫ:`H`,ḫ:`h`,Ĩ:`I`,ĩ:`i`,Ī:`I`,ī:`i`,Ĭ:`I`,ĭ:`i`,Į:`I`,į:`i`,İ:`I`,ı:`i`,IJ:`IJ`,ij:`ij`,Ĵ:`J`,ĵ:`j`,Ķ:`K`,ķ:`k`,Ḱ:`K`,ḱ:`k`,K̆:`K`,k̆:`k`,Ĺ:`L`,ĺ:`l`,Ļ:`L`,ļ:`l`,Ľ:`L`,ľ:`l`,Ŀ:`L`,ŀ:`l`,Ł:`l`,ł:`l`,Ḿ:`M`,ḿ:`m`,M̆:`M`,m̆:`m`,Ń:`N`,ń:`n`,Ņ:`N`,ņ:`n`,Ň:`N`,ň:`n`,ʼn:`n`,N̆:`N`,n̆:`n`,Ō:`O`,ō:`o`,Ŏ:`O`,ŏ:`o`,Ő:`O`,ő:`o`,Œ:`OE`,œ:`oe`,P̆:`P`,p̆:`p`,Ŕ:`R`,ŕ:`r`,Ŗ:`R`,ŗ:`r`,Ř:`R`,ř:`r`,R̆:`R`,r̆:`r`,Ȓ:`R`,ȓ:`r`,Ś:`S`,ś:`s`,Ŝ:`S`,ŝ:`s`,Ş:`S`,Ș:`S`,ș:`s`,ş:`s`,Š:`S`,š:`s`,Ţ:`T`,ţ:`t`,ț:`t`,Ț:`T`,Ť:`T`,ť:`t`,Ŧ:`T`,ŧ:`t`,T̆:`T`,t̆:`t`,Ũ:`U`,ũ:`u`,Ū:`U`,ū:`u`,Ŭ:`U`,ŭ:`u`,Ů:`U`,ů:`u`,Ű:`U`,ű:`u`,Ų:`U`,ų:`u`,Ȗ:`U`,ȗ:`u`,V̆:`V`,v̆:`v`,Ŵ:`W`,ŵ:`w`,Ẃ:`W`,ẃ:`w`,X̆:`X`,x̆:`x`,Ŷ:`Y`,ŷ:`y`,Ÿ:`Y`,Y̆:`Y`,y̆:`y`,Ź:`Z`,ź:`z`,Ż:`Z`,ż:`z`,Ž:`Z`,ž:`z`,ſ:`s`,ƒ:`f`,Ơ:`O`,ơ:`o`,Ư:`U`,ư:`u`,Ǎ:`A`,ǎ:`a`,Ǐ:`I`,ǐ:`i`,Ǒ:`O`,ǒ:`o`,Ǔ:`U`,ǔ:`u`,Ǖ:`U`,ǖ:`u`,Ǘ:`U`,ǘ:`u`,Ǚ:`U`,ǚ:`u`,Ǜ:`U`,ǜ:`u`,Ứ:`U`,ứ:`u`,Ṹ:`U`,ṹ:`u`,Ǻ:`A`,ǻ:`a`,Ǽ:`AE`,ǽ:`ae`,Ǿ:`O`,ǿ:`o`,Þ:`TH`,þ:`th`,Ṕ:`P`,ṕ:`p`,Ṥ:`S`,ṥ:`s`,X́:`X`,x́:`x`,Ѓ:`Г`,ѓ:`г`,Ќ:`К`,ќ:`к`,A̋:`A`,a̋:`a`,E̋:`E`,e̋:`e`,I̋:`I`,i̋:`i`,Ǹ:`N`,ǹ:`n`,Ồ:`O`,ồ:`o`,Ṑ:`O`,ṑ:`o`,Ừ:`U`,ừ:`u`,Ẁ:`W`,ẁ:`w`,Ỳ:`Y`,ỳ:`y`,Ȁ:`A`,ȁ:`a`,Ȅ:`E`,ȅ:`e`,Ȉ:`I`,ȉ:`i`,Ȍ:`O`,ȍ:`o`,Ȑ:`R`,ȑ:`r`,Ȕ:`U`,ȕ:`u`,B̌:`B`,b̌:`b`,Č̣:`C`,č̣:`c`,Ê̌:`E`,ê̌:`e`,F̌:`F`,f̌:`f`,Ǧ:`G`,ǧ:`g`,Ȟ:`H`,ȟ:`h`,J̌:`J`,ǰ:`j`,Ǩ:`K`,ǩ:`k`,M̌:`M`,m̌:`m`,P̌:`P`,p̌:`p`,Q̌:`Q`,q̌:`q`,Ř̩:`R`,ř̩:`r`,Ṧ:`S`,ṧ:`s`,V̌:`V`,v̌:`v`,W̌:`W`,w̌:`w`,X̌:`X`,x̌:`x`,Y̌:`Y`,y̌:`y`,A̧:`A`,a̧:`a`,B̧:`B`,b̧:`b`,Ḑ:`D`,ḑ:`d`,Ȩ:`E`,ȩ:`e`,Ɛ̧:`E`,ɛ̧:`e`,Ḩ:`H`,ḩ:`h`,I̧:`I`,i̧:`i`,Ɨ̧:`I`,ɨ̧:`i`,M̧:`M`,m̧:`m`,O̧:`O`,o̧:`o`,Q̧:`Q`,q̧:`q`,U̧:`U`,u̧:`u`,X̧:`X`,x̧:`x`,Z̧:`Z`,z̧:`z`,й:`и`,Й:`И`,ё:`е`,Ё:`Е`},r=Object.keys(n).join(`|`),i=new RegExp(r,`g`),a=new RegExp(r,``);function o(e){return n[e]}var s=function(e){return e.replace(i,o)},c=function(e){return!!e.match(a)};t.exports=s,t.exports.has=c,t.exports.remove=s}))()),km={CASE_SENSITIVE_EQUAL:7,EQUAL:6,STARTS_WITH:5,WORD_STARTS_WITH:4,CONTAINS:3,ACRONYM:2,MATCHES:1,NO_MATCH:0},Am=(e,t)=>String(e.rankedValue).localeCompare(String(t.rankedValue));function jm(e,t,n={}){let{keys:r,threshold:i=km.MATCHES,baseSort:a=Am,sorter:o=e=>e.sort((e,t)=>Lm(e,t,a))}=n;return o(e.reduce(s,[])).map(({item:e})=>e);function s(e,a,o){let s=Mm(a,r,t,n),{rank:c,keyThreshold:l=i}=s;return c>=l&&e.push({...s,item:a,index:o}),e}}jm.rankings=km;function Mm(e,t,n,r){if(!t){let t=e;return{rankedValue:t,rank:Pm(t,n,r),keyIndex:-1,keyThreshold:r.threshold}}return Vm(e,t).reduce(({rank:e,rankedValue:t,keyIndex:i,keyThreshold:a},{itemValue:o,attributes:s},c)=>{let l=Pm(o,n,r),u=t,{minRanking:d,maxRanking:f,threshold:p}=s;return l=km.MATCHES?l=d:l>f&&(l=f),l>e&&(e=l,i=c,a=p,u=o),{rankedValue:u,rank:e,keyIndex:i,keyThreshold:a}},{rankedValue:e,rank:km.NO_MATCH,keyIndex:-1,keyThreshold:r.threshold})}function*Nm(e,t){let n=-1;for(;(n=e.indexOf(t,n+1))>-1;)yield n;return-1}function Pm(e,t,n){if(e=Rm(e,n),t=Rm(t,n),t.length>e.length)return km.NO_MATCH;if(e===t)return km.CASE_SENSITIVE_EQUAL;e=e.toLowerCase(),t=t.toLowerCase();let r=Nm(e,t),i=r.next(),a=i.value;if(e.length===t.length&&a===0)return km.EQUAL;if(a===0)return km.STARTS_WITH;let o=i;for(;!o.done;){if(o.value>0&&e[o.value-1]===` `)return km.WORD_STARTS_WITH;o=r.next()}return a>0?km.CONTAINS:t.length===1?km.NO_MATCH:Fm(e).includes(t)?km.ACRONYM:Im(e,t)}function Fm(e){let t=``,n=` `;for(let r=0;r-1))return km.NO_MATCH}return a(r-o)}function Lm(e,t,n){let{rank:r,keyIndex:i}=e,{rank:a,keyIndex:o}=t;return r===a?i===o?n(e,t):ia?-1:1}function Rm(e,{keepDiacritics:t}){return e=`${e}`,t||(e=(0,Om.default)(e)),e}function zm(e,t){typeof t==`object`&&(t=t.key);let n;if(typeof t==`function`)n=t(e);else if(e==null)n=null;else if(Object.hasOwnProperty.call(e,t))n=e[t];else if(t.includes(`.`))return Bm(t,e);else n=null;return n==null?[]:Array.isArray(n)?n:[String(n)]}function Bm(e,t){let n=e.split(`.`),r=[t];for(let e=0,t=n.length;e{var n=200,r=`Expected a function`,i=`__lodash_hash_undefined__`,a=1,o=2,s=1/0,c=9007199254740991,l=`[object Arguments]`,u=`[object Array]`,d=`[object Boolean]`,f=`[object Date]`,p=`[object Error]`,m=`[object Function]`,h=`[object GeneratorFunction]`,g=`[object Map]`,_=`[object Number]`,v=`[object Object]`,y=`[object Promise]`,b=`[object RegExp]`,x=`[object Set]`,S=`[object String]`,C=`[object Symbol]`,w=`[object WeakMap]`,T=`[object ArrayBuffer]`,E=`[object DataView]`,D=`[object Float32Array]`,O=`[object Float64Array]`,k=`[object Int8Array]`,A=`[object Int16Array]`,j=`[object Int32Array]`,M=`[object Uint8Array]`,ee=`[object Uint8ClampedArray]`,te=`[object Uint16Array]`,N=`[object Uint32Array]`,P=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ne=/^\w*$/,re=/^\./,F=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ie=/[\\^$.*+?()[\]{}|]/g,ae=/\\(\\)?/g,I=/^\[object .+?Constructor\]$/,oe=/^(?:0|[1-9]\d*)$/,L={};L[D]=L[O]=L[k]=L[A]=L[j]=L[M]=L[ee]=L[te]=L[N]=!0,L[l]=L[u]=L[T]=L[d]=L[E]=L[f]=L[p]=L[m]=L[g]=L[_]=L[v]=L[b]=L[x]=L[S]=L[w]=!1;var se=typeof global==`object`&&global&&global.Object===Object&&global,ce=typeof self==`object`&&self&&self.Object===Object&&self,le=se||ce||Function(`return this`)(),ue=typeof e==`object`&&e&&!e.nodeType&&e,de=ue&&typeof t==`object`&&t&&!t.nodeType&&t,fe=de&&de.exports===ue&&se.process,pe=function(){try{return fe&&fe.binding(`util`)}catch{}}(),me=pe&&pe.isTypedArray;function he(e,t){for(var n=-1,r=e?e.length:0,i=Array(r);++n-1}function lt(e,t){var n=this.__data__,r=Et(n,e);return r<0?n.push([e,t]):n[r][1]=t,this}it.prototype.clear=at,it.prototype.delete=ot,it.prototype.get=st,it.prototype.has=ct,it.prototype.set=lt;function ut(e){var t=-1,n=e?e.length:0;for(this.clear();++tt||a&&o&&c&&!s&&!l||r&&o&&c||!n&&c||!i)return 1;if(!r&&!a&&!l&&e=s?c:c*(n[r]==`desc`?-1:1)}return e.index-t.index}function B(e,t){return function(n,r){if(n==null)return n;if(!bn(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++al))return!1;var d=s.get(e);if(d&&s.get(t))return d==t;var f=-1,p=!0,m=i&a?new gt:void 0;for(s.set(e,t),s.set(t,e);++f-1&&e%1==0&&e-1&&e%1==0&&e<=c}function wn(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function Tn(e){return!!e&&typeof e==`object`}function En(e){return typeof e==`symbol`||Tn(e)&&Ne.call(e)==C}var Dn=me?be(me):Lt;function On(e){return e==null?``:Gt(e)}function kn(e,t,n){var r=e==null?void 0:At(e,t);return r===void 0?n:r}function An(e,t){return e!=null&&rn(e,t,Mt)}function jn(e){return bn(e)?Tt(e):zt(e)}function Mn(e){return e}function Nn(e){return on(e)?_e(pn(e)):Wt(e)}t.exports=hn}))(),1),qm={InputWrapper:`_InputWrapper_1p1ez_1`,Shortcut:`_Shortcut_1p1ez_9`,Input:`_Input_1p1ez_1`,SelectedValue:`_SelectedValue_1p1ez_52`,SelectedName:`_SelectedName_1p1ez_67`,ItemType:`_ItemType_1p1ez_79`,Popover:`_Popover_1p1ez_83`,PopoverWrapper:`_PopoverWrapper_1p1ez_97`,List:`_List_1p1ez_110`,Group:`_Group_1p1ez_114`,GroupLabel:`_GroupLabel_1p1ez_122`,Item:`_Item_1p1ez_79`,ItemHeader:`_ItemHeader_1p1ez_162`,ItemName:`_ItemName_1p1ez_168`,ItemTypes:`_ItemTypes_1p1ez_174`,ItemMissionName:`_ItemMissionName_1p1ez_193`,NoResults:`_NoResults_1p1ez_198`,Backdrop:`_Backdrop_1p1ez_205`,CloseButton:`_CloseButton_1p1ez_215`},Jm=new Set([`SkiFree`,`SkiFree_Daily`,`SkiFree_Randomizer`]),Ym={"missions.vl2":`Official`,"TR2final105-client.vl2":`Team Rabbit 2`,"z_mappacks/CTF/Classic_maps_v1.vl2":`Classic`,"z_mappacks/CTF/DynamixFinalPack.vl2":`Official`,"z_mappacks/CTF/KryMapPack_b3EDIT.vl2":`KryMapPack`,"z_mappacks/CTF/S5maps.vl2":`S5`,"z_mappacks/CTF/S8maps.vl2":`S8`,"z_mappacks/CTF/TWL-MapPack.vl2":`TWL`,"z_mappacks/CTF/TWL-MapPackEDIT.vl2":`TWL`,"z_mappacks/CTF/TWL2-MapPack.vl2":`TWL2`,"z_mappacks/CTF/TWL2-MapPackEDIT.vl2":`TWL2`,"z_mappacks/TWL_T2arenaOfficialMaps.vl2":`Arena`,"z_mappacks/xPack2.vl2":`xPack2`,"z_mappacks/z_DMP2-V0.6.vl2":`DMP2 (Discord Map Pack)`,"z_mappacks/zDMP-4.7.3DX.vl2":`DMP (Discord Map Pack)`,"z_mappacks/zDMP-4.7.3DX-ServerOnly.vl2":`DMP (Discord Map Pack)`},Xm={"z_mappacks/DM":`DM`,"z_mappacks/LCTF":`LCTF`,"z_mappacks/Lak":`LakRabbit`},Zm=e=>{let t=e.match(/^(.*)(\/[^/]+)$/);return t?t[1]:``},Qm=T().filter(e=>!Jm.has(e)).map(e=>{let t=w(e),[n]=E(t.resourcePath),r=Zm(n),i=Ym[n]??Xm[r]??null;return{resourcePath:t.resourcePath,missionName:e,displayName:t.displayName,sourcePath:n,groupName:i,missionTypes:t.missionTypes}}),$m=new Map(Qm.map(e=>[e.missionName,e]));function eh(e){let t=new Map;for(let n of e){let e=t.get(n.groupName)??[];e.push(n),t.set(n.groupName,e)}return t.forEach((e,n)=>{t.set(n,(0,Km.default)(e,[e=>(e.displayName||e.missionName).toLowerCase()],[`asc`]))}),(0,Km.default)(Array.from(t.entries()),[([e])=>e===`Official`?0:e==null?2:1,([e])=>e?e.toLowerCase():``],[`asc`,`asc`])}var th=eh(Qm),nh=typeof navigator<`u`&&/Mac|iPhone|iPad|iPod/.test(navigator.platform);function rh(e){let t=(0,z.c)(12),{mission:n}=e,r=n.displayName||n.missionName,i;t[0]===r?i=t[1]:(i=(0,B.jsx)(`span`,{className:qm.ItemName,children:r}),t[0]=r,t[1]=i);let a;t[2]===n.missionTypes?a=t[3]:(a=n.missionTypes.length>0&&(0,B.jsx)(`span`,{className:qm.ItemTypes,children:n.missionTypes.map(ih)}),t[2]=n.missionTypes,t[3]=a);let o;t[4]!==i||t[5]!==a?(o=(0,B.jsxs)(`span`,{className:qm.ItemHeader,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6];let s;t[7]===n.missionName?s=t[8]:(s=(0,B.jsx)(`span`,{className:qm.ItemMissionName,children:n.missionName}),t[7]=n.missionName,t[8]=s);let c;return t[9]!==o||t[10]!==s?(c=(0,B.jsxs)(B.Fragment,{children:[o,s]}),t[9]=o,t[10]=s,t[11]=c):c=t[11],c}function ih(e){return(0,B.jsx)(`span`,{className:qm.ItemType,"data-mission-type":e,children:e},e)}function ah(e){let t=(0,z.c)(65),{value:n,missionType:r,onChange:i,disabled:a,autoFocus:o,onCancel:s}=e,[c,l]=(0,R.useState)(``),u=(0,R.useRef)(null),d=(0,R.useRef)(r),f;t[0]===s?f=t[1]:(f=e=>{e||s?.()},t[0]=s,t[1]=f);let p;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=e=>{(0,R.startTransition)(()=>l(e))},t[2]=p):p=t[2];let m=Em({resetValueOnHide:!0,selectedValue:n,setOpen:f,setSelectedValue:e=>{if(e){let t=d.current,n=w(e).missionTypes;(!t||!n.includes(t))&&(t=n[0]),i({missionName:e,missionType:t}),u.current?.blur()}},setValue:p}),h=J(m,`open`),g,_;t[3]!==o||t[4]!==m?(g=()=>{o&&(u.current?.focus(),m.show())},_=[o,m],t[3]=o,t[4]=m,t[5]=g,t[6]=_):(g=t[5],_=t[6]),(0,R.useEffect)(g,_);let v,y;t[7]===m?(v=t[8],y=t[9]):(v=()=>{let e=e=>{e.code===`KeyK`&&(e.metaKey||e.ctrlKey)&&(e.stopPropagation(),e.preventDefault(),u.current?.focus(),m.show())};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},y=[m],t[7]=m,t[8]=v,t[9]=y),(0,R.useEffect)(v,y);let b;t[10]===n?b=t[11]:(b=$m.get(n),t[10]=n,t[11]=b);let x=b,S;bb0:{if(!c){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e={type:`grouped`,groups:th},t[12]=e):e=t[12],S=e;break bb0}let e;t[13]===c?e=t[14]:(e=jm(Qm,c,{keys:[`displayName`,`missionName`,`missionTypes`,`groupName`]}),t[13]=c,t[14]=e);let n=e,r;t[15]===n?r=t[16]:(r={type:`flat`,missions:n},t[15]=n,t[16]=r),S=r}let C=S,T=x?x.displayName||x.missionName:n,E=C.type===`flat`?C.missions.length===0:C.groups.length===0,D=e=>(0,B.jsx)(fm,{value:e.missionName,className:qm.Item,focusOnHover:!0,onClick:t=>{if(t.target&&t.target instanceof HTMLElement){let r=t.target.dataset.missionType;r?(d.current=r,e.missionName===n&&i({missionName:e.missionName,missionType:r})):d.current=null}else d.current=null},children:(0,B.jsx)(rh,{mission:e})},e.missionName),O=Dm,k=h?`visible`:`hidden`,A;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,B.jsx)(`div`,{className:qm.Backdrop}),t[17]=A):A=t[17];let j;t[18]===k?j=t[19]:(j=(0,B.jsx)(R.Activity,{mode:k,children:A}),t[18]=k,t[19]=j);let M=x?void 0:`Choose a map…`,ee,te;t[20]===m?(ee=t[21],te=t[22]):(ee=()=>{try{document.exitPointerLock()}catch{}m.show()},te=e=>{e.key===`Escape`&&!m.getState().open&&u.current?.blur()},t[20]=m,t[21]=ee,t[22]=te);let N;t[23]!==o||t[24]!==a||t[25]!==M||t[26]!==ee||t[27]!==te?(N=(0,B.jsx)(tm,{ref:u,autoSelect:!0,autoFocus:o,disabled:a,placeholder:M,className:qm.Input,onFocus:ee,onKeyDown:te}),t[23]=o,t[24]=a,t[25]=M,t[26]=ee,t[27]=te,t[28]=N):N=t[28];let P;t[29]!==T||t[30]!==r||t[31]!==x?(P=x&&(0,B.jsxs)(`div`,{className:qm.SelectedValue,children:[(0,B.jsx)(`span`,{className:qm.SelectedName,children:T}),r&&(0,B.jsx)(`span`,{className:qm.ItemType,"data-mission-type":r,children:r})]}),t[29]=T,t[30]=r,t[31]=x,t[32]=P):P=t[32];let ne;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(ne=(0,B.jsx)(`kbd`,{className:qm.Shortcut,children:nh?`⌘K`:`^K`}),t[33]=ne):ne=t[33];let re;t[34]!==N||t[35]!==P?(re=(0,B.jsxs)(`div`,{className:qm.InputWrapper,onKeyDown:sh,children:[N,P,ne]}),t[34]=N,t[35]=P,t[36]=re):re=t[36];let F;t[37]!==m||t[38]!==s?(F=()=>{m.hide(),s?.()},t[37]=m,t[38]=s,t[39]=F):F=t[39];let ie;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,B.jsx)(Gm,{}),t[40]=ie):ie=t[40];let ae;t[41]!==h||t[42]!==F?(ae=(0,B.jsx)(`button`,{type:`button`,className:qm.CloseButton,"data-open":h,onClick:F,children:ie}),t[41]=h,t[42]=F,t[43]=ae):ae=t[43];let I=ym,oe=qm,L;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(L={className:qm.PopoverWrapper},t[44]=L):L=t[44];let se=oh,ce=hm,le=qm,ue=C.type===`flat`?C.missions.map(D):C.groups.map(e=>{let[t,n]=e;return t?(0,B.jsxs)(im,{className:qm.Group,children:[(0,B.jsx)(sm,{className:qm.GroupLabel,children:t}),n.map(D)]},t):(0,B.jsx)(R.Fragment,{children:n.map(D)},`ungrouped`)}),de;t[45]===E?de=t[46]:(de=E&&(0,B.jsx)(`div`,{className:qm.NoResults,children:`No missions found`}),t[45]=E,t[46]=de);let fe;t[47]!==ce||t[48]!==le.List||t[49]!==ue||t[50]!==de?(fe=(0,B.jsxs)(ce,{className:le.List,children:[ue,de]}),t[47]=ce,t[48]=le.List,t[49]=ue,t[50]=de,t[51]=fe):fe=t[51];let pe;t[52]!==I||t[53]!==oe.Popover||t[54]!==L||t[55]!==se||t[56]!==fe?(pe=(0,B.jsx)(I,{gutter:4,fitViewport:!0,sameWidth:!0,fixed:!0,autoFocusOnHide:!1,className:oe.Popover,wrapperProps:L,onKeyDown:se,children:fe}),t[52]=I,t[53]=oe.Popover,t[54]=L,t[55]=se,t[56]=fe,t[57]=pe):pe=t[57];let me;return t[58]!==O||t[59]!==m||t[60]!==j||t[61]!==re||t[62]!==ae||t[63]!==pe?(me=(0,B.jsxs)(O,{store:m,children:[j,re,ae,pe]}),t[58]=O,t[59]=m,t[60]=j,t[61]=re,t[62]=ae,t[63]=pe,t[64]=me):me=t[64],me}function oh(e){e.metaKey||e.stopPropagation()}function sh(e){e.metaKey||e.stopPropagation()}function ch(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`m12 6-6 8h12zM6 16h12v2H6z`},child:[]}]})(e)}var lh={Header:`_Header_klnnn_1`,MissionInfo:`_MissionInfo_klnnn_9`,MissionName:`_MissionName_klnnn_21 _SelectedName_1p1ez_67`,MissionType:`_MissionType_klnnn_25 _ItemType_1p1ez_79`,MissionTypeDisplayName:`_MissionTypeDisplayName_klnnn_30`,Metadata:`_Metadata_klnnn_35`,Attribution:`_Attribution_klnnn_46`,ServerInfo:`_ServerInfo_klnnn_47`,PlayerName:`_PlayerName_klnnn_51`,RecordingDate:`_RecordingDate_klnnn_52`,ServerName:`_ServerName_klnnn_53`,EjectButton:`_EjectButton_klnnn_57 _DestructiveActionButton_1u47f_135 _Button_1u47f_2`,DisconnectButton:`_DisconnectButton_klnnn_58 _DestructiveActionButton_1u47f_135 _Button_1u47f_2`,EjectIcon:`_EjectIcon_klnnn_62`,Error:`_Error_klnnn_67`,Pulsing:`_Pulsing_klnnn_81`,blink:`_blink_klnnn_1`,ConnectionPing:`_ConnectionPing_klnnn_85`,PingDot:`_PingDot_klnnn_95 _Pulsing_klnnn_81`};function uh(){let e=(0,z.c)(28),t=Jn(),n=nr(),r=Qn(),i=er(),a=ir(),o=or(),s=cr(),[c,l]=s?s.split(` `):[null,null],u=t===`live`,d=_r(),f=pr(ph),p=pr(mr),m=fh,h=dh,g=lh,_;e[0]!==n||e[1]!==r||e[2]!==i?(_=n&&r?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:lh.MissionName,children:n}),r&&(0,B.jsxs)(B.Fragment,{children:[` `,(0,B.jsx)(`span`,{className:lh.MissionType,"data-mission-type":r,children:i===`LCTF`?`LCTF`:r})]})]}):null,e[0]=n,e[1]=r,e[2]=i,e[3]=_):_=e[3];let v;e[4]===_?v=e[5]:(v=(0,B.jsx)(`div`,{className:lh.MissionInfo,children:_}),e[4]=_,e[5]=v);let y;e[6]!==f||e[7]!==p?(y=f&&p!=null?(0,B.jsxs)(`span`,{className:lh.ConnectionPing,"data-quality":p<150?`good`:p<300?`fine`:`poor`,children:[(0,B.jsx)(`span`,{className:lh.PingDot}),` `,D(p)]}):null,e[6]=f,e[7]=p,e[8]=y):y=e[8];let b=lh,x=u?f?o?(0,B.jsxs)(`div`,{className:lh.Attribution,children:[`Connected as`,` `,(0,B.jsx)(`span`,{className:lh.PlayerName,children:o})]}):null:(0,B.jsx)(`div`,{className:lh.Error,children:`Disconnected`}):o&&s?(0,B.jsxs)(`div`,{className:lh.Attribution,children:[`Recorded by `,(0,B.jsx)(`span`,{className:lh.PlayerName,children:o}),` `,`on`,` `,(0,B.jsx)(`span`,{className:lh.RecordingDate,children:c.replace(/-/g,` `)}),` `,`at`,` `,(0,B.jsx)(`span`,{className:lh.RecordingDate,children:(l??``).replace(/(AM|PM)$/,` $1`)})]}):null,S;e[9]===a?S=e[10]:(S=a?(0,B.jsxs)(`div`,{className:lh.ServerInfo,children:[`Server: `,(0,B.jsx)(`span`,{className:lh.ServerName,children:a})]}):null,e[9]=a,e[10]=S);let C;e[11]!==b.Metadata||e[12]!==x||e[13]!==S?(C=(0,B.jsxs)(`div`,{className:b.Metadata,children:[x,S]}),e[11]=b.Metadata,e[12]=x,e[13]=S,e[14]=C):C=e[14];let w;e[15]!==t||e[16]!==h||e[17]!==m||e[18]!==u||e[19]!==f||e[20]!==d?(w=t===`demo`?(0,B.jsx)(`button`,{type:`button`,className:lh.EjectButton,title:`Unload demo`,"aria-label":`Unload demo`,onClick:m,disabled:!d,children:(0,B.jsx)(ch,{className:lh.EjectIcon})}):u?(0,B.jsx)(`button`,{type:`button`,className:lh.DisconnectButton,title:`Disconnect`,"aria-label":`Disconnect`,onClick:h,disabled:!f,children:(0,B.jsx)(Ta,{})}):null,e[15]=t,e[16]=h,e[17]=m,e[18]=u,e[19]=f,e[20]=d,e[21]=w):w=e[21];let T;return e[22]!==g.Header||e[23]!==v||e[24]!==y||e[25]!==C||e[26]!==w?(T=(0,B.jsxs)(`div`,{className:g.Header,children:[v,y,C,w]}),e[22]=g.Header,e[23]=v,e[24]=y,e[25]=C,e[26]=w,e[27]=T):T=e[27],T}function dh(){fr.getState().disconnectServer(),je.getState().setRecording(null)}function fh(){je.getState().setRecording(null)}function ph(e){return e.gameStatus===`connected`||e.gameStatus===`authenticating`}function mh(e){let t=(0,z.c)(5),{onChangeMission:n}=e,{setRecording:r}=Dr(),i=(0,R.useEffectEvent)(n),a;t[0]!==i||t[1]!==r?(a=()=>(window.setMissionName=e=>{let t=w(e).missionTypes;i({missionName:e,missionType:t[0]})},window.getMissionList=T,window.getMissionInfo=w,window.loadDemoRecording=r,hh),t[0]=i,t[1]=r,t[2]=a):a=t[2];let o;t[3]===r?o=t[4]:(o=[r],t[3]=r,t[4]=o),(0,R.useEffect)(a,o)}function hh(){delete window.setMissionName,delete window.getMissionList,delete window.getMissionInfo,delete window.loadDemoRecording}var gh=(0,R.createContext)(null);function _h(){let e=(0,R.useContext)(gh);if(!e)throw Error(`useCameras must be used within CamerasProvider`);return e}function vh({children:e}){let t=o(e=>e.camera),[n,r]=(0,R.useState)(-1),[i,a]=(0,R.useState)({}),[s,c]=(0,R.useState)(()=>({initialized:!1,position:null,quarternion:null})),l=(0,R.useCallback)(e=>{a(t=>({...t,[e.id]:e}))},[]),u=(0,R.useCallback)(e=>{a(t=>{let{[e.id]:n,...r}=t;return r})},[]),d=Object.keys(i).length,f=(0,R.useCallback)(e=>{if(e>=0&&e{f(d?(n+1)%d:-1)},[d,n,f]);(0,R.useEffect)(()=>{let e=()=>{let e=window.location.hash;if(e.startsWith(`#c`)){let[t,n]=e.slice(2).split(`~`),r=t.split(`,`).map(e=>parseFloat(e)),i=n.split(`,`).map(e=>parseFloat(e));c({initialized:!0,position:new Ee(...r),quarternion:new Te(...i)})}else c({initialized:!0,position:null,quarternion:null})};return window.addEventListener(`hashchange`,e),e(),()=>{window.removeEventListener(`hashchange`,e)}},[]),(0,R.useEffect)(()=>{s.initialized&&s.position&&(t.position.copy(s.position),s.quarternion&&t.quaternion.copy(s.quarternion))},[t,s]),(0,R.useEffect)(()=>{!s.initialized||s.position||d>0&&n===-1&&f(0)},[d,f,n,s]);let m=(0,R.useMemo)(()=>({registerCamera:l,unregisterCamera:u,nextCamera:p,setCameraIndex:f,cameraCount:d}),[l,u,p,f,d]);return d===0&&n!==-1&&r(-1),(0,B.jsx)(gh.Provider,{value:m,children:e})}var yh=(0,R.createContext)(null);function bh(){let e=(0,R.useContext)(yh);if(!e)throw Error(`useInputContext must be used within an InputProvider`);return e}function xh(){return bh().onInput}function Sh(){return bh().mode}var Ch=new Set([`Ctrl`,`Shift`,`Alt`]),wh=new Set([`MetaLeft`,`MetaRight`,`ControlLeft`,`ControlRight`,`ShiftLeft`,`ShiftRight`,`AltLeft`,`AltRight`]);function Th(e){if(typeof e!=`string`)return e;let t=e.split(`-`),n=t.pop(),r=[];for(let e of t)Ch.has(e)&&r.push(e);return{type:`key`,code:n,modifiers:r.length>0?r:void 0}}function Eh(e,t){let n=e.has(`ControlLeft`)||e.has(`ControlRight`),r=e.has(`ShiftLeft`)||e.has(`ShiftRight`),i=e.has(`AltLeft`)||e.has(`AltRight`);return n===(t?.includes(`Ctrl`)??!1)&&r===(t?.includes(`Shift`)??!1)&&i===(t?.includes(`Alt`)??!1)}function Dh(e,t){let n=t?.includes(`Ctrl`)??!1,r=t?.includes(`Shift`)??!1,i=t?.includes(`Alt`)??!1;return e.ctrlKey===n&&e.shiftKey===r&&e.altKey===i}function Oh(){return{pressed:!1}}function kh(){return{dragging:!1,deltaX:0,deltaY:0,startX:0,startY:0}}function Ah(){return{deltaX:0,deltaY:0}}function jh(){return{touching:!1,dragging:!1,deltaX:0,deltaY:0}}function Mh(e){switch(e.type){case`key`:case`click`:return Oh();case`drag`:case`pointerLockMove`:return kh();case`scroll`:return Ah();case`touch`:return jh()}}var Nh=j()(ke(()=>({keys:new Set,actions:{}}))),Ph=new Map;function Fh(e,t){let n=Ph.get(e);return n||(n=new Set,Ph.set(e,n)),n.add(t),()=>{n.delete(t),n.size===0&&Ph.delete(e)}}function Ih(e){let t=Ph.get(e);if(t)for(let e of t)e()}var Lh=new Set([`text`,`search`,`url`,`tel`,`email`,`password`,`number`,`date`,`datetime-local`,`month`,`week`,`time`]),Rh=new Set([`Space`,`Enter`,`NumpadEnter`,`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`]);function zh(e){if(e.code===`Tab`)return document.pointerLockElement?(e.preventDefault(),!1):!0;let t=document.activeElement;if(!t||t===document.body)return!1;let n=t.tagName;if(t.isContentEditable||n===`TEXTAREA`)return!0;if(n===`INPUT`){let n=t.type.toLowerCase();return Lh.has(n)?!0:Rh.has(e.code)}return n===`BUTTON`||n===`SELECT`||n===`A`||n===`SUMMARY`?Rh.has(e.code):!1}function Bh(e){if(e.metaKey||zh(e))return;let{keys:t}=Nh.getState();if(t.has(e.code))return;let n=new Set(t);n.add(e.code),Nh.setState(e=>({...e,keys:n}))}function Vh(e){let{keys:t}=Nh.getState();if(!t.has(e.code))return;let n=new Set(t);if(n.delete(e.code),e.code===`MetaLeft`||e.code===`MetaRight`)for(let e of n)wh.has(e)||n.delete(e);Nh.setState(e=>({...e,keys:n}))}function Hh(){let{keys:e}=Nh.getState();e.size!==0&&Nh.setState(e=>({...e,keys:new Set}))}window.addEventListener(`keydown`,Bh),window.addEventListener(`keyup`,Vh),window.addEventListener(`blur`,Hh);function Uh(e){let t=(0,z.c)(2),n;return t[0]===e?n=t[1]:(n=t=>e(t.actions),t[0]=e,t[1]=n),M(Nh,n)}function Wh(){let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[Nh.subscribe,Gh],e[0]=t):t=e[0],t}function Gh(){return Nh.getState().actions}function Kh(){let{actions:e}=Nh.getState(),t={};for(let[n,r]of Object.entries(e))`deltaX`in r&&(r.deltaX!==0||r.deltaY!==0)&&(t[n]={...r,deltaX:0,deltaY:0});Object.keys(t).length>0&&Nh.setState(e=>({...e,actions:{...e.actions,...t}}))}function qh(e,t){let n=(0,z.c)(5),r=(0,R.useEffectEvent)(t),i;n[0]!==e||n[1]!==r?(i=()=>Fh(e,r),n[0]=e,n[1]=r,n[2]=i):i=n[2];let a;n[3]===e?a=n[4]:(a=[e],n[3]=e,n[4]=a),(0,R.useEffect)(i,a)}var Jh=1,Yh=11,Xh=.002;function Zh(e){let t=(e-b)/(1-b);return(Math.round(t*15)+1)/16}function Qh(e,t){let n=e[t];return n!=null&&`pressed`in n&&n.pressed}function $h(){let e=(0,z.c)(41),t=g(),{speedMultiplier:n,setSpeedMultiplier:r,mouseSensitivity:i,invertScroll:s,invertDrag:c}=v(),{onInput:l,mode:u}=bh(),[,d]=Wh(),f=o(ng),{setCameraIndex:p,cameraCount:m}=_h(),h=(0,R.useRef)(!1),_=(0,R.useRef)(!1),y,x;e[0]===t?(y=e[1],x=e[2]):(y=()=>{t&&document.pointerLockElement&&document.exitPointerLock()},x=[t],e[0]=t,e[1]=y,e[2]=x),(0,R.useEffect)(y,x);let S;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(S=[],e[3]=S):S=e[3],(0,R.useEffect)(eg,S);let C;e[4]!==f||e[5]!==t?(C=()=>{!t&&!N.getState().animation&&f.domElement.requestPointerLock()},e[4]=f,e[5]=t,e[6]=C):C=e[6],qh(`canvasClick`,C);let w;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{h.current=!0},e[7]=w):w=e[7],qh(`nextPlayer`,w);let T;e[8]!==d||e[9]!==s||e[10]!==r?(T=()=>{let e=d().adjustSpeed;if(!e||e.deltaY===0)return;let t=s?-1:1,n=(e.deltaY>0?-1:1)*t,i=Math.ceil(Math.log2(Math.abs(e.deltaY)+1)),a=Math.max(Jh,Math.min(Yh,i))*n;r(e=>{let t=Math.round(e*100)+a;return Math.max(b,Math.min(1,t/100))})},e[8]=d,e[9]=s,e[10]=r,e[11]=T):T=e[11],qh(`adjustSpeed`,T);let E;e[12]!==m||e[13]!==p?(E=e=>{eD(0),e[15]=D,e[16]=O),qh(`camera1`,O);let k;e[17]===D?k=e[18]:(k=()=>D(1),e[17]=D,e[18]=k),qh(`camera2`,k);let A;e[19]===D?A=e[20]:(A=()=>D(2),e[19]=D,e[20]=A),qh(`camera3`,A);let j;e[21]===D?j=e[22]:(j=()=>D(3),e[21]=D,e[22]=j),qh(`camera4`,j);let M;e[23]===D?M=e[24]:(M=()=>D(4),e[23]=D,e[24]=M),qh(`camera5`,M);let ee;e[25]===D?ee=e[26]:(ee=()=>D(5),e[25]=D,e[26]=ee),qh(`camera6`,ee);let te;e[27]===D?te=e[28]:(te=()=>D(6),e[27]=D,e[28]=te),qh(`camera7`,te);let P;e[29]===D?P=e[30]:(P=()=>D(7),e[29]=D,e[30]=P),qh(`camera8`,P);let ne;e[31]===D?ne=e[32]:(ne=()=>D(8),e[31]=D,e[32]=ne),qh(`camera9`,ne);let re;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(re=()=>{_.current=!0},e[33]=re):re=e[33],qh(`toggleObserverMode`,re);let F;return e[34]!==d||e[35]!==c||e[36]!==u||e[37]!==i||e[38]!==l||e[39]!==n?(F=(e,t)=>{if(N.getState().animation)return;let r=d(),a=0,o=0,s=r.lockedLook;s&&(s.deltaX!==0||s.deltaY!==0)&&(a=s.deltaX*i,o=s.deltaY*i);let f=r.dragLook;if(f?.dragging&&(f.deltaX!==0||f.deltaY!==0)){let e=(c?1:-1)*(u===`follow`?-1:1);a+=e*f.deltaX*Xh,o+=e*f.deltaY*Xh}Qh(r,`lookLeft`)&&(a-=1*t),Qh(r,`lookRight`)&&(a+=1*t),Qh(r,`lookUp`)&&(o-=1*t),Qh(r,`lookDown`)&&(o+=1*t);let p=0,m=0,g=0;Qh(r,`moveLeft`)&&(p=-1),Qh(r,`moveRight`)&&(p+=1),Qh(r,`moveForward`)&&(m=1),Qh(r,`moveBackward`)&&--m,Qh(r,`moveUp`)&&(g=1),Qh(r,`moveDown`)&&--g;let v=Zh(n);p=Math.max(-1,Math.min(1,p*v)),m=Math.max(-1,Math.min(1,m*v)),g=Math.max(-1,Math.min(1,g*v));let y=[!1,!1,!1,!1,!1,!1];h.current&&=(y[0]=!0,!1),_.current&&=(y[2]=!0,!1),Kh();let b=a!==0||o!==0,x=p!==0||m!==0||g!==0,S=y.some(Boolean);!b&&!x&&!S||l({deltaYaw:a,deltaPitch:o,x:p,y:m,z:g,triggers:y,delta:t})},e[34]=d,e[35]=c,e[36]=u,e[37]=i,e[38]=l,e[39]=n,e[40]=F):F=e[40],a(F),null}function eg(){return N.subscribe(tg)}function tg(e){e.animation&&document.pointerLockElement&&document.exitPointerLock()}function ng(e){return e.gl}var rg=(0,R.lazy)(()=>Me(()=>import(`./TouchHandler-CV_1nnl6.js`).then(e=>({default:e.TouchHandler})),__vite__mapDeps([7,8,2,9,3,10,11,12,13,14])));function ig(e){let t=(0,z.c)(9),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],t[0]=r):r=t[0];let i=(0,R.useRef)(r),[a,o]=(0,R.useState)(`local`),s;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(s=e=>{i.current.push(e)},t[1]=s):s=t[1];let c=s,l;t[2]===a?l=t[3]:(l={moveQueue:i,onInput:c,mode:a,setMode:o},t[2]=a,t[3]=l);let u;t[4]===n?u=t[5]:(u=(0,B.jsx)(Ne,{children:n}),t[4]=n,t[5]=u);let d;return t[6]!==l||t[7]!==u?(d=(0,B.jsx)(yh.Provider,{value:l,children:u}),t[6]=l,t[7]=u,t[8]=d):d=t[8],d}function ag(){let e=(0,z.c)(5),t=g(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,B.jsx)($h,{}),e[0]=n):n=e[0];let r;e[1]===t?r=e[2]:(r=t?(0,B.jsx)(R.Suspense,{children:(0,B.jsx)(rg,{})}):null,e[1]=t,e[2]=r);let i;return e[3]===r?i=e[4]:(i=(0,B.jsxs)(B.Fragment,{children:[n,r]}),e[3]=r,e[4]=i),i}var og=(0,R.lazy)(()=>Me(()=>import(`./TouchJoystick-DYqKShVz.js`).then(e=>({default:e.TouchJoystick})),__vite__mapDeps([15,2,16,11,9,12,13,14,17]))),sg=(0,R.lazy)(()=>Me(()=>import(`./KeyboardOverlay-D875z9z7.js`).then(e=>({default:e.KeyboardOverlay})),__vite__mapDeps([18,2,11,9,12,13,19,20,21,10,22])));function cg(){let e=(0,z.c)(9),t=g(),n=te(lg),{showInputOverlay:r}=c(),i;e[0]!==t||e[1]!==n?(i=t&&!n?(0,B.jsx)(og,{}):null,e[0]=t,e[1]=n,e[2]=i):i=e[2];let a;e[3]!==t||e[4]!==r?(a=t===!1&&r?(0,B.jsx)(sg,{}):null,e[3]=t,e[4]=r,e[5]=a):a=e[5];let o;return e[6]!==i||e[7]!==a?(o=(0,B.jsxs)(R.Suspense,{children:[i,a]}),e[6]=i,e[7]=a,e[8]=o):o=e[8],o}function lg(e){return e.animation!==null}var ug={LoadingIndicator:`_LoadingIndicator_8ijel_1`,loadingComplete:`_loadingComplete_8ijel_1`,Spinner:`_Spinner_8ijel_19`,spin:`_spin_8ijel_1`,Progress:`_Progress_8ijel_28`,ProgressBar:`_ProgressBar_8ijel_36`,ProgressText:`_ProgressText_8ijel_43`};function dg(e){let t=(0,z.c)(12),{isLoading:n,progress:r}=e,i=r===void 0?null:r,a=(i??0)*100,o=!n,s=i==null,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,B.jsx)(`div`,{className:ug.Spinner}),t[0]=c):c=t[0];let l=`${a}%`,u;t[1]===l?u=t[2]:(u=(0,B.jsx)(`div`,{className:ug.Progress,children:(0,B.jsx)(`div`,{className:ug.ProgressBar,style:{width:l}})}),t[1]=l,t[2]=u);let d;t[3]===a?d=t[4]:(d=Math.round(a),t[3]=a,t[4]=d);let f;t[5]===d?f=t[6]:(f=(0,B.jsxs)(`div`,{className:ug.ProgressText,children:[d,`%`]}),t[5]=d,t[6]=f);let p;return t[7]!==o||t[8]!==s||t[9]!==u||t[10]!==f?(p=(0,B.jsxs)(`div`,{className:ug.LoadingIndicator,"data-complete":o,"data-indeterminate":s,children:[c,u,f]}),t[7]=o,t[8]=s,t[9]=u,t[10]=f,t[11]=p):p=t[11],p}var fg={Dialog:`_Dialog_1t9wa_1`,Overlay:`_Overlay_1t9wa_22`,DialogButton:`_DialogButton_1t9wa_33`,Secondary:`_Secondary_1t9wa_72 _DialogButton_1t9wa_33`,Actions:`_Actions_1t9wa_86`};function pg(e){let t=(0,z.c)(5),{onClose:n}=e,r;t[0]===n?r=t[1]:(r=e=>{n?.()},t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,B.jsx)(`div`,{className:fg.Dialog,children:(0,B.jsx)(dg,{isLoading:!0})}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,B.jsx)(`div`,{className:fg.Overlay,onClick:r,children:i}),t[3]=r,t[4]=a),a}var mg={Button:`_Button_sprpv_1`};function hg(e){let t=(0,z.c)(9),{isOpen:n,orientation:r,onClick:i}=e,a=n?`Close sidebar`:`Open sidebar`,o=n?`Close sidebar`:`Open sidebar`,s;t[0]!==n||t[1]!==r?(s=r===`top`?n?(0,B.jsx)(ba,{}):(0,B.jsx)(ya,{}):n?(0,B.jsx)(Sa,{}):(0,B.jsx)(xa,{}),t[0]=n,t[1]=r,t[2]=s):s=t[2];let c;return t[3]!==i||t[4]!==r||t[5]!==a||t[6]!==o||t[7]!==s?(c=(0,B.jsx)(`button`,{type:`button`,className:mg.Button,"data-orientation":r,"aria-label":a,title:o,onClick:i,children:s}),t[3]=i,t[4]=r,t[5]=a,t[6]=o,t[7]=s,t[8]=c):c=t[8],c}var gg={Button:`_Button_wk3rb_1 _DestructiveActionButton_1u47f_135 _Button_1u47f_2`,ButtonLabel:`_ButtonLabel_wk3rb_9 _ButtonLabel_1u47f_82`};function _g(){let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsxs)(`button`,{type:`button`,className:gg.Button,onClick:vg,children:[(0,B.jsx)(Wa,{}),(0,B.jsx)(`span`,{className:gg.ButtonLabel,children:`Exit tour`})]}),e[0]=t):t=e[0],t}function vg(){return N.getState().cancel()}var yg={Frame:`_Frame_1u5rk_1`,Toolbar:`_Toolbar_1u5rk_16`,Sidebar:`_Sidebar_1u5rk_29`,Content:`_Content_1u5rk_43`,ThreeView:`_ThreeView_1u5rk_52`,PlayerBar:`_PlayerBar_1u5rk_61`,Backdrop:`_Backdrop_1u5rk_71`};function bg({children:e}){return e}function xg(e,t){return(0,R.lazy)(()=>t().then(t=>({default:t[e]})))}var Sg=xg(`GameView`,()=>Me(()=>import(`./GameView-DOXRUG38.js`),__vite__mapDeps([23,2,16,24,5,25,26,27,8,9,3,10,28,11,12,13,29,30,31,32,33,34,35,36,1,37,38,39,4,21,40,41,42]))),Cg=xg(`DemoPlaybackControls`,()=>Me(()=>import(`./DemoPlaybackControls-B8inlhPI.js`),__vite__mapDeps([43,2,19,20,9,44]))),wg=xg(`PlayerHUD`,()=>Me(()=>import(`./PlayerHUD-ZLAOgfFu.js`),__vite__mapDeps([45,2,16,9,33,24,5,12,13,34,10,35,41,46]))),Tg=xg(`MapInfoDialog`,()=>Me(()=>import(`./MapInfoDialog-BlS8j0JO.js`),__vite__mapDeps([47,2,36,28,9,33,24,5,12,13,48]))),Eg=xg(`ServerBrowser`,()=>Me(()=>import(`./ServerBrowser-BK-yGyhv.js`),__vite__mapDeps([49,2,11,9,12,13,50]))),Dg=xg(`ScoreScreen`,()=>Me(()=>import(`./ScoreScreen-94psq8zp.js`),__vite__mapDeps([51,2,9,34,10,35,13,52])));function Og(){let[e,t]=y(),n=$t(),{clearFogEnabledOverride:r,sidebarOpen:i,setSidebarOpen:a}=c(),{missionName:o,missionType:s}=e,[l,u]=(0,R.useState)(!1),[d,f]=(0,R.useState)(!1),[p,m]=(0,R.useState)(!1),[h,_]=(0,R.useState)(!1),[v,b]=(0,R.useState)(0),[x,S]=(0,R.useState)(!0),C=g(),T=te(e=>e.animation!==null),E=(0,R.useCallback)(e=>{window.location.hash=``,r(),_(!1),N.getState().cancel(),fr.getState().disconnectServer(),je.getState().setRecording(null),Fn.getState().endStreaming(),t(e),C&&a(!1)},[r,t,C,a]);mh({onChangeMission:E});let D=_r(),O=Jn(),k=O===`demo`||O===`live`,A=Xn(),j=Qn();(0,R.useEffect)(()=>{if(!(!k||!A))try{let e=w(A);t({missionName:A,missionType:j&&e.missionTypes.includes(j)?j:void 0})}catch{t(null)}},[k,A,j,t]),(0,R.useEffect)(()=>{D&&_(!1)},[D]);let M=pr(e=>e.gameStatus);(0,R.useEffect)(()=>{M===`connected`&&C&&a(!1)},[M,C,a]),(0,R.useEffect)(()=>{D&&C&&a(!1)},[C,D,a]),(0,R.useEffect)(()=>{T&&C&&a(!1)},[C,T,a]),(0,R.useEffect)(()=>{let e=e=>{e.code===`Backslash`&&(e.metaKey||e.ctrlKey)&&(e.stopPropagation(),e.preventDefault(),a(e=>!e))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]);let ee=v,P=ee<1;(0,R.useEffect)(()=>{if(P)S(!0);else{let e=setTimeout(()=>S(!1),500);return()=>clearTimeout(e)}},[P]);let ne=(0,R.useCallback)((e,t=0)=>{b(t)},[]),re=(0,R.useRef)(null),F=(0,R.useRef)(null),ie=(0,R.useCallback)(()=>u(!0),[]),ae=(0,R.useCallback)(()=>m(!0),[]),I=(0,R.useCallback)(()=>{f(!0)},[]),oe=(0,R.useCallback)(()=>_(!0),[]),L=(0,R.useCallback)(()=>{_(!1)},[]),se=(0,R.useCallback)(e=>{re.current=e.camera,F.current=e.invalidate},[]);return(0,B.jsx)(`main`,{className:yg.Frame,children:(0,B.jsxs)(gr,{children:[(0,B.jsxs)(`header`,{className:yg.Toolbar,children:[(0,B.jsx)(hg,{orientation:`top`,isOpen:i,onClick:()=>{a(e=>!e)}}),(0,B.jsx)(hg,{orientation:`left`,isOpen:i,onClick:()=>{a(e=>!e)}}),(0,B.jsx)(R.Activity,{mode:k&&!h?`visible`:`hidden`,children:(0,B.jsx)(uh,{})}),(0,B.jsx)(R.Activity,{mode:!k||h?`visible`:`hidden`,children:(0,B.jsx)(ah,{value:h?``:o,missionType:h?``:s??``,onChange:E,autoFocus:h,onCancel:L})}),T&&(0,B.jsx)(_g,{})]}),i?(0,B.jsx)(`div`,{className:yg.Backdrop}):null,(0,B.jsx)(R.Activity,{mode:i?`visible`:`hidden`,children:(0,B.jsx)(`div`,{className:yg.Sidebar,"data-open":i,children:(0,B.jsx)(ro,{missionName:o,missionType:s,choosingMap:h,cameraRef:re,invalidateRef:F,onOpenMapInfo:ie,onOpenScoreScreen:k?ae:void 0,onOpenServerBrowser:n.live?I:void 0,onChooseMap:oe,onCancelChoosingMap:L,onClose:()=>{a(!1)}})})}),(0,B.jsx)(ig,{children:(0,B.jsxs)(`div`,{className:yg.Content,children:[(0,B.jsx)(`div`,{className:yg.ThreeView,children:(0,B.jsx)(R.Suspense,{children:(0,B.jsx)(Sg,{missionName:o,missionType:s,dpr:l||d||p?.25:void 0,onCreated:se,onLoadingChange:ne})})}),k&&!p?(0,B.jsx)(R.Suspense,{children:(0,B.jsx)(wg,{})}):null,(0,B.jsx)(cg,{}),x&&(0,B.jsx)(dg,{isLoading:P,progress:ee})]})}),(0,B.jsx)(`footer`,{className:yg.PlayerBar,children:D?.source===`demo`?(0,B.jsx)(R.Suspense,{children:(0,B.jsx)(Cg,{})}):null}),l?(0,B.jsx)(bg,{children:(0,B.jsx)(R.Suspense,{fallback:(0,B.jsx)(pg,{onClose:()=>u(!1)}),children:(0,B.jsx)(Tg,{onClose:()=>u(!1),missionName:o,missionType:s??``})})}):null,d?(0,B.jsx)(bg,{children:(0,B.jsx)(R.Suspense,{fallback:(0,B.jsx)(pg,{onClose:()=>f(!1)}),children:(0,B.jsx)(Eg,{onClose:()=>f(!1)})})}):null,p?(0,B.jsx)(bg,{children:(0,B.jsx)(R.Suspense,{fallback:(0,B.jsx)(pg,{onClose:()=>m(!1)}),children:(0,B.jsx)(Dg,{onClose:()=>m(!1)})})}):null]})})}var kg=new Jt;function Ag(){let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsx)(R.Suspense,{children:(0,B.jsx)(qe,{children:(0,B.jsx)(en,{children:(0,B.jsx)(Zt,{client:kg,children:(0,B.jsx)(h,{children:(0,B.jsx)(Og,{})})})})})}),e[0]=t):t=e[0],t}(0,Re.createRoot)(document.getElementById(`root`)).render((0,B.jsx)(R.StrictMode,{children:(0,B.jsx)(Ag,{})}));export{Tt as $,pr as A,yn as B,xr as C,_r as D,Dr as E,Kn as F,cn as G,fn as H,qn as I,an as J,sn as K,Mn as L,Hn as M,Jn as N,Tr as O,Un as P,Et as Q,An as R,hr as S,yr as T,un as U,pn as V,ln as W,Lt as X,Xt as Y,kt as Z,_h as _,Dh as a,pt as at,ha as b,Ih as c,Ze as ct,Uh as d,Le as dt,nt as et,Wh as f,vh as g,xh as h,jh as i,it,Fn as j,fr as k,Th as l,Ye as lt,Sh as m,kh as n,vt as nt,Nh as o,Ct as ot,bh as p,on as q,Mh as r,at as rt,Eh as s,rt as st,ag as t,et as tt,qh as u,Je as ut,Wm as v,Cr as w,ma as x,va as y,On as z}; \ No newline at end of file diff --git a/docs/assets/index-DPUMrbG6.css b/docs/assets/index-DPUMrbG6.css new file mode 100644 index 00000000..b9f02f07 --- /dev/null +++ b/docs/assets/index-DPUMrbG6.css @@ -0,0 +1 @@ +@layer button{@media (hover:hover){._Button_p0g82_2{color:#ffffffe6;background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_p0g82_2:not(:disabled):hover{color:#fff;background:#0062b3cc;border-color:#fff6}._Button_p0g82_2 svg{opacity:.6}._Button_p0g82_2:not(:disabled):hover svg{opacity:1}}@media (hover:hover){._DestructiveActionButton_p0g82_141:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_p0g82_141{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}@media (hover:hover){._Button_p0g82_2{color:#ffffffe6;background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_p0g82_2:not(:disabled):hover{color:#fff;background:#0062b3cc;border-color:#fff6}._Button_p0g82_2 svg{opacity:.6}._Button_p0g82_2:not(:disabled):hover svg{opacity:1}}@media (hover:hover){._DestructiveActionButton_p0g82_141:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_p0g82_141{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}@media (hover:hover){._Button_p0g82_2{color:#ffffffe6;background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_p0g82_2:not(:disabled):hover{color:#fff;background:#0062b3cc;border-color:#fff6}._Button_p0g82_2 svg{opacity:.6}._Button_p0g82_2:not(:disabled):hover svg{opacity:1}}@media (hover:hover){._DestructiveActionButton_p0g82_141:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_p0g82_141{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}@media (hover:hover){._Button_p0g82_2{color:#ffffffe6;background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_p0g82_2:not(:disabled):hover{color:#fff;background:#0062b3cc;border-color:#fff6}._Button_p0g82_2 svg{opacity:.6}._Button_p0g82_2:not(:disabled):hover svg{opacity:1}}@media (hover:hover){._DestructiveActionButton_p0g82_141:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_p0g82_141{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}@media (hover:hover){._Button_p0g82_2{color:#ffffffe6;background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_p0g82_2:not(:disabled):hover{color:#fff;background:#0062b3cc;border-color:#fff6}._Button_p0g82_2 svg{opacity:.6}._Button_p0g82_2:not(:disabled):hover svg{opacity:1}}@media (hover:hover){._DestructiveActionButton_p0g82_141:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_p0g82_141{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}._Button_p0g82_2{color:#fff;cursor:pointer;background:#0062b3cc;border:1px solid #fff6;border-radius:5px;flex:auto;justify-content:center;align-items:center;gap:8px;width:auto;min-width:28px;height:auto;min-height:32px;margin:0;padding:4px 8px;font-family:inherit;font-size:18px;font-weight:500;transition:background .2s,border-color .2s;display:flex;position:relative;transform:translate(0);box-shadow:0 1px 2px #0006}._Button_p0g82_2 svg{opacity:.8;pointer-events:none;flex:none;transition:opacity .2s}._Button_p0g82_2:not(:has(._ButtonLabel_p0g82_37)) svg{opacity:1}._Button_p0g82_2:disabled{opacity:.6;color:#fffc;cursor:default;box-shadow:inset 0 0 12px 1px #36363680}@media (hover:hover){._Button_p0g82_2{color:#ffffffe6;background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_p0g82_2:not(:disabled):hover{color:#fff;background:#0062b3cc;border-color:#fff6}._Button_p0g82_2 svg{opacity:.6}._Button_p0g82_2:not(:disabled):hover svg{opacity:1}}._Button_p0g82_2:not(:disabled):active,._Button_p0g82_2[aria-expanded=true]{background:#0062b3b3;border-color:#ffffff4d;transform:translateY(1px)}._Button_p0g82_2[data-active=true]{background:#0075d5e6;border-color:#fff6}._ButtonLabel_p0g82_37{font-size:14px}._ButtonHint_p0g82_92{opacity:.7;font-size:10px}._ButtonGroup_p0g82_97{flex:1 0 auto;align-items:stretch;width:100%;display:flex}._ButtonGroup_p0g82_97 ._Button_p0g82_2{background:#1b4f87b3;flex-direction:column;flex:1 0 0;gap:1px;padding-top:8px;padding-bottom:8px;font-size:22px;box-shadow:inset 0 0 10px #04284780}._ButtonGroup_p0g82_97 ._Button_p0g82_2 svg{margin-bottom:3px}._ButtonGroup_p0g82_97 ._Button_p0g82_2[data-active=true]{background:#0065cbcc;box-shadow:inset 0 2px 3px #08bdff80,inset 0 -2px 6px #00122880}._ButtonGroup_p0g82_97 ._Button_p0g82_2[data-active=true] svg{opacity:1}._ButtonGroup_p0g82_97 ._Button_p0g82_2:not(:first-child){border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}._ButtonGroup_p0g82_97 ._Button_p0g82_2:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}._DestructiveActionButton_p0g82_141{background:#d5423ab3;flex:none;min-width:28px;min-height:28px;margin:0 10px 0 0;padding:2px;font-size:16px}@media (hover:hover){._DestructiveActionButton_p0g82_141:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_p0g82_141{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}}:root{--monospace-font:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}html{box-sizing:border-box;background:#000;margin:0;padding:0;overflow:hidden}*,:before,:after{box-sizing:inherit}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:100%}body{margin:0;padding:0;overflow:hidden}._Button_1xmvi_1[data-copied=true]{background:#0075d5e6;border-color:#fff6}._ClipboardIcon_1xmvi_10{opacity:1;display:none}._Button_1xmvi_1[data-copied=true] ._ClipboardIcon_1xmvi_10{animation:.22s linear infinite _showClipboardCheck_1xmvi_1;display:block}._Button_1xmvi_1[data-copied=true] ._PinIcon_1xmvi_20{display:none}@keyframes _showClipboardCheck_1xmvi_1{0%{opacity:1}to{opacity:.2}}._JoinServerButton_cz8os_1[data-connected=true] ._Icon_cz8os_5{animation:1.2s ease-out infinite _blink_cz8os_1}@keyframes _blink_cz8os_1{0%{opacity:1}to{opacity:.25}}._AccordionGroup_1ysdj_1{flex-direction:column;gap:1px;display:flex}._Trigger_1ysdj_7{color:#fff;text-align:left;text-transform:uppercase;letter-spacing:.0417em;background:#ffffff1a;border:0;align-items:center;gap:4px;width:100%;padding:6px 8px;font-family:inherit;font-size:12px;font-weight:400;display:flex}._TriggerIcon_1ysdj_24{opacity:.5;font-size:12px;transition:transform .2s;transform:rotate(0)}._Trigger_1ysdj_7[data-state=open] ._TriggerIcon_1ysdj_24{transform:rotate(90deg)}._Content_1ysdj_35{overflow:hidden}._Content_1ysdj_35[data-state=open]{animation:.3s _slideDown_1ysdj_1}._Content_1ysdj_35[data-state=closed]{animation:.3s _slideUp_1ysdj_1}._Body_1ysdj_47{padding:16px 12px 10px}@keyframes _slideDown_1ysdj_1{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes _slideUp_1ysdj_1{0%{height:var(--radix-accordion-content-height)}to{height:0}}@media (pointer:coarse){._Trigger_1ysdj_7{padding-top:12px;padding-bottom:12px}}._Root_cfjcw_1{flex-direction:column;display:flex}._ProgressWrap_cfjcw_6{flex-direction:column;gap:4px;padding:12px 10px;display:flex}._ProgressLabel_cfjcw_13{opacity:.7;text-align:center;font-size:11px}._ProgressBar_cfjcw_19{background:#ffffff1a;border-radius:2px;width:100%;height:4px;overflow:hidden}._ProgressFill_cfjcw_27{background:#0a84ffcc;height:100%;transition:width .15s}._Filters_cfjcw_33{flex-wrap:wrap;gap:4px;padding:10px;display:flex}._FilterButton_cfjcw_40{color:#ffffffb3;cursor:pointer;background:#ffffff0d;border:1px solid #fff3;border-radius:3px;padding:2px 8px;font-family:inherit;font-size:11px}._FilterButton_cfjcw_40[data-active=true]{color:#fff;background:#0062b399;border-color:#64b4ff80}._EventList_cfjcw_57{flex-direction:column;padding:2px 0 12px;display:flex}._EventRow_cfjcw_63{color:#fffc;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;padding:3px 10px 3px 8px;font-family:inherit;font-size:13px;display:flex}@media (hover:hover){._EventRow_cfjcw_63:hover{background:#ffffff1a}._FilterButton_cfjcw_40:hover{background:#ffffff1a;border-color:#ffffff4d}._FilterButton_cfjcw_40[data-active=true]:hover{background:#0062b3cc;border-color:#64b4ffb3}}._EventRow_cfjcw_63:active{color:#fff;background:#0055b1cc}@media (pointer:coarse){._FilterButton_cfjcw_40{flex:1 0 auto;padding:4px 8px;font-size:13px}._EventList_cfjcw_57{gap:2px}._EventRow_cfjcw_63{padding-top:5px;padding-bottom:5px;font-size:14px}}._EventTime_cfjcw_120{font-variant-numeric:tabular-nums;opacity:.6;text-align:right;flex-shrink:0;min-width:3.5em;font-size:11px}._EventIcon_cfjcw_129{flex-shrink:0;align-items:center;margin:0 1px;font-size:13px;display:flex}._EventIcon_cfjcw_129[data-type=kill],._EventIcon_cfjcw_129[data-type=death]{color:#8a8380}._EventIcon_cfjcw_129[data-type=flag-cap]{color:#69db7c;margin:0;font-size:15px}._EventIcon_cfjcw_129[data-type=flag-grab],._EventIcon_cfjcw_129[data-type=flag-return]{margin:0;font-size:15px}._EventIcon_cfjcw_129[data-type=flag-cap][data-affinity=enemy]{color:#ff6b6b}._EventIcon_cfjcw_129[data-type=flag-cap][data-affinity=neutral]{color:#adb5bd}._EventIcon_cfjcw_129[data-type=match-start]{color:#74c0fc;margin:0;font-size:15px}._EventIcon_cfjcw_129[data-type=match-end]{color:#74c0fc}._EventDescription_cfjcw_172{text-overflow:ellipsis;overflow:hidden}._Empty_cfjcw_186{opacity:.5;text-align:center;padding:4px 10px 12px;font-size:12px}._Root_pb9qa_1{flex-direction:column;display:flex}._Empty_pb9qa_6{opacity:.5;text-align:center;padding:4px 10px 12px;font-size:12px}._TourAllButton_pb9qa_13{color:#fffc;cursor:pointer;background:0 0;border:0;justify-content:flex-start;align-self:flex-start;align-items:center;gap:6px;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:500;display:flex}@media (hover:hover){._TourAllButton_pb9qa_13:hover{color:#fff}}._CategoryHeader_pb9qa_40{color:#fff9;text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none;align-items:baseline;gap:6px;padding:4px 4px 4px 14px;font-size:12px;font-weight:600;display:flex}._CategoryHeader_pb9qa_40:not(:first-child){border-top:1px solid #ffffff0f;padding-top:8px}._CategoryCount_pb9qa_58{opacity:.7;font-weight:400}._TourButton_pb9qa_63{color:#fffc;cursor:pointer;text-transform:none;background:0 0;border:0;border-radius:0;align-items:center;gap:5px;margin:0 0 0 auto;padding:6px 8px;font-family:inherit;font-size:12px;font-weight:500;display:flex}._PlayIcon_pb9qa_83{color:#74c0fc}._ExitIcon_pb9qa_87{color:#ff8363}@media (hover:hover){._TourButton_pb9qa_63:hover{color:#fff}}._ItemList_pb9qa_100{flex-direction:column;padding:0 0 8px;display:flex}._ItemRow_pb9qa_106{color:#fffc;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:4px;padding:4px 10px 4px 12px;font-family:inherit;font-size:13px;display:flex}._ItemRow_pb9qa_106 ._PlayIcon_pb9qa_83{font-size:12px}@media (hover:hover){._ItemRow_pb9qa_106:not(:hover) ._PlayIcon_pb9qa_83{visibility:hidden}}._ItemRow_pb9qa_106[data-active=true]{color:#fff;background:#0055b180}@media (hover:hover){._ItemRow_pb9qa_106:hover{background:#ffffff1a}._ItemRow_pb9qa_106[data-active=true]:hover{background:#0055b199}}._ItemRow_pb9qa_106:active{color:#fff;background:#0055b1cc}._ItemLabel_pb9qa_151{text-overflow:ellipsis;overflow:hidden}._TeamBadge_pb9qa_156{color:#fff;border-radius:2px;flex-shrink:0;margin:0 0 0 6px;padding:0 4px;font-size:11px;line-height:1.5}._TeamBadge_pb9qa_156[data-team="1"]{background:#086c8acc}._TeamBadge_pb9qa_156[data-team="2"]{background:#8f5e14cc}@media (pointer:coarse){._CategoryHeader_pb9qa_40{padding:6px 8px 6px 16px;font-size:13px}._TourButton_pb9qa_63{font-size:13px}._ItemRow_pb9qa_106{padding-top:6px;padding-bottom:6px;padding-left:14px;font-size:14px}}._InspectorControls_cm86c_1{z-index:2;font-size:13px;line-height:1.231;position:relative}._Dropdown_cm86c_8{flex-direction:column;justify-content:center;align-items:stretch;gap:0;display:flex}._Group_cm86c_16{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;display:flex}._CheckboxField_cm86c_24{grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;gap:0 6px;margin:0 0 8px;display:grid}._CheckboxField_cm86c_24 input[type=checkbox]{grid-area:1/1;margin-left:0}._CheckboxField_cm86c_24 ._Label_cm86c_39{grid-area:1/2;align-items:center;gap:6px;display:flex}._Description_cm86c_47{opacity:.6;margin:2px 0 0;padding:0;font-size:12px;line-height:1.5}._CheckboxField_cm86c_24 ._Description_cm86c_47{grid-area:2/2}._Control_cm86c_60{justify-content:flex-end;align-items:center;gap:8px;display:flex}._Field_cm86c_67{grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;margin:0 0 12px;display:grid}._Field_cm86c_67:has(._Description_cm86c_47){margin:0 0 10px}._Field_cm86c_67 select{margin-bottom:6px}._Field_cm86c_67 input[type=range]{max-width:100px}._Field_cm86c_67 output{opacity:.7}._Tools_cm86c_91{flex-wrap:wrap;align-items:center;gap:8px;padding:10px;display:flex}._Field_cm86c_67 label{grid-area:1/1}._Field_cm86c_67 ._Control_cm86c_60{grid-area:1/2}._Field_cm86c_67 ._Description_cm86c_47{grid-area:2/1/auto/-1}._ForceRenderButton_cm86c_119{color:#4cb5ff;cursor:pointer;background:0 0;border:0;place-content:center;margin:0;padding:0 2px;font-size:16px;display:grid}._CloseSidebarButton_cm86c_131{margin:12px;padding-top:8px;padding-bottom:8px}@media (width>=900px){._CloseSidebarButton_cm86c_131{display:none}}@media (pointer:coarse){._Tools_cm86c_91{padding-top:12px;padding-bottom:13px}._Field_cm86c_67{grid-template-columns:auto minmax(0,70%);gap:0 20px;margin-bottom:20px}._CheckboxField_cm86c_24{margin-bottom:16px}._Description_cm86c_47{font-size:13px;line-height:1.53846}._Field_cm86c_67 label,._CheckboxField_cm86c_24 ._Label_cm86c_39{font-size:15px}._CheckboxField_cm86c_24 input[type=checkbox]{min-width:19px;min-height:19px;padding-right:6px}._Field_cm86c_67 select{width:100%;max-width:none;padding:4px 6px;font-size:15px}._Field_cm86c_67 input[type=range]{width:100%;max-width:none;padding-top:10px;padding-bottom:10px}}@media (width<=499px){._PopoverWrapper_avklz_97{width:auto!important;max-width:none!important;left:8px!important;right:8px!important;transform:translateY(44px)!important}._Popover_avklz_83{min-width:0}}@media (pointer:fine){._CloseButton_avklz_215{visibility:hidden}}@media (width<=899px){._InputWrapper_avklz_1{flex:1 1 0;max-width:460px;margin-left:4px}._Input_avklz_1{width:100%}}._InputWrapper_avklz_1{z-index:2;align-items:center;margin:10px 10px 10px 8px;display:flex;position:relative}._Shortcut_avklz_9{color:#fff9;pointer-events:none;background:#ffffff26;border-radius:3px;padding:1px 4px;font-family:system-ui,sans-serif;font-size:11px;position:absolute;right:7px}._Input_avklz_1[aria-expanded=true]~._Shortcut_avklz_9{display:none}._Input_avklz_1{color:#fff;-webkit-user-select:text;user-select:text;background:#0009;border:1px solid #ffffff4d;border-radius:3px;outline:none;width:280px;padding:6px 36px 6px 8px;font-size:14px}._Input_avklz_1[aria-expanded=true]{padding-right:8px}._Input_avklz_1:focus{border-color:#fff9}._Input_avklz_1::placeholder{color:#777;font-family:inherit;font-size:12px}._SelectedValue_avklz_52{pointer-events:none;align-items:center;gap:6px;display:flex;position:absolute;left:8px;right:36px;overflow:hidden}._Input_avklz_1[aria-expanded=true]~._SelectedValue_avklz_52{display:none}._SelectedName_avklz_67{color:#fff;white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;font-size:14px;font-weight:600;line-height:1.28571;overflow:hidden}._SelectedValue_avklz_52>._ItemType_avklz_79{flex-shrink:0}._Popover_avklz_83{z-index:100;min-width:360px;max-height:var(--popover-available-height,90vh);overscroll-behavior:contain;background:#141414f2;border:1px solid #ffffff80;border-radius:3px;overflow:hidden auto;box-shadow:0 8px 24px #0009}@media (width<=499px){._PopoverWrapper_avklz_97{width:auto!important;max-width:none!important;left:8px!important;right:8px!important;transform:translateY(44px)!important}._Popover_avklz_83{min-width:0}}._List_avklz_110{padding:4px 0}._List_avklz_110:has(>._Group_avklz_114:first-child){padding-top:0}._Group_avklz_114{padding-bottom:4px}._GroupLabel_avklz_122{color:#c6caca;z-index:1;background:#3a4548f2;border-bottom:1px solid #ffffff4d;padding:6px 8px 6px 12px;font-size:13px;font-weight:600;position:sticky;top:0}._Group_avklz_114:not(:last-child){border-bottom:1px solid #ffffff4d}._Item_avklz_79{cursor:pointer;border-radius:4px;outline:none;flex-direction:column;gap:1px;margin:4px 4px 0;padding:6px 8px;scroll-margin-top:32px;display:flex}._List_avklz_110>._Item_avklz_79:first-child{margin-top:0}._Item_avklz_79[data-active-item]{background:#ffffff26}._Item_avklz_79[aria-selected=true]{background:#6496ff4d}._ItemHeader_avklz_162{align-items:center;gap:6px;display:flex}._ItemName_avklz_168{color:#fff;font-size:14px;font-weight:600}._ItemTypes_avklz_174{gap:3px;display:flex}._ItemType_avklz_79{color:#fff;background:#ff9d0066;border-radius:3px;padding:2px 5px;font-size:10px;font-weight:600;line-height:1.3}._ItemType_avklz_79:hover{background:#ff9d00b3}._ItemMissionName_avklz_193{color:#ffffff80;font-size:12px}._NoResults_avklz_198{color:#ffffff80;text-align:center;padding:12px 8px;font-size:13px}._Backdrop_avklz_205{z-index:1;background:#00000080;position:fixed;inset:0}._CloseButton_avklz_215{z-index:101;color:#ffffff80;background:0 0;border:0;flex:none;place-content:center;align-self:stretch;margin:0 0 0 -8px;padding:6px 12px 6px 8px;font-size:24px;display:grid;position:relative}@media (pointer:fine){._CloseButton_avklz_215{visibility:hidden}}._CloseButton_avklz_215[data-open=false]{visibility:hidden}@media (width<=899px){._InputWrapper_avklz_1{flex:1 1 0;max-width:460px;margin-left:4px}._Input_avklz_1{width:100%}}._Header_klnnn_1{flex:auto;justify-content:flex-start;align-items:center;gap:12px;display:flex}._MissionInfo_klnnn_9{color:#fff;background:0 0;border:1px solid #fff0;border-radius:3px;align-items:center;gap:6px;margin:10px auto 10px 4px;padding:5px 8px;display:flex}._MissionType_klnnn_25{pointer-events:none}._MissionTypeDisplayName_klnnn_30{opacity:.5;font-size:12px}._Metadata_klnnn_35{text-align:right;flex-direction:column;gap:2px;margin-left:4px;padding:8px 0;font-size:12px;line-height:1.16667;display:flex}._Attribution_klnnn_46,._ServerInfo_klnnn_47{color:#83938b}._PlayerName_klnnn_51,._RecordingDate_klnnn_52,._ServerName_klnnn_53{color:#eceae7}._EjectIcon_klnnn_62{margin-top:-.5px;font-size:21px}._Error_klnnn_67{color:#ff6a45}@media (width<=899px){._Metadata_klnnn_35{display:none}._MissionInfo_klnnn_9{margin-left:0}}._Pulsing_klnnn_81{animation:1.2s ease-out infinite _blink_klnnn_1}._ConnectionPing_klnnn_85{background:#ffffff1a;border-radius:12px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:inline-flex}._PingDot_klnnn_95{background:currentColor;border-radius:3px;width:6px;height:6px;display:inline-block}._ConnectionPing_klnnn_85[data-quality=good] ._PingDot_klnnn_95{color:#74ff45}._ConnectionPing_klnnn_85[data-quality=fine] ._PingDot_klnnn_95{color:#ff9e2f}._ConnectionPing_klnnn_85[data-quality=poor] ._PingDot_klnnn_95{color:#e83f25}@keyframes _blink_klnnn_1{0%{opacity:1}to{opacity:.25}}._LoadingIndicator_8ijel_1{pointer-events:none;z-index:1;opacity:.8;flex-direction:column;align-items:center;gap:16px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}._LoadingIndicator_8ijel_1[data-complete=true]{animation:.3s ease-out forwards _loadingComplete_8ijel_1}._Spinner_8ijel_19{border:4px solid #fff3;border-top-color:#fff;border-radius:50%;width:48px;height:48px;animation:1s linear infinite _spin_8ijel_1}._Progress_8ijel_28{background:#fff3;border-radius:2px;width:200px;height:4px;overflow:hidden}._ProgressBar_8ijel_36{background:#fff;border-radius:2px;height:100%;transition:width .1s ease-out}._ProgressText_8ijel_43{color:#ffffffb3;font-variant-numeric:tabular-nums;font-size:14px}._LoadingIndicator_8ijel_1[data-indeterminate=true] ._Progress_8ijel_28,._LoadingIndicator_8ijel_1[data-indeterminate=true] ._ProgressText_8ijel_43{display:none}@keyframes _spin_8ijel_1{to{transform:rotate(360deg)}}@keyframes _loadingComplete_8ijel_1{0%{opacity:1}to{opacity:0}}._Dialog_1t9wa_1{color:#b0d5c9;-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;background:#142526cc;border:1px solid #41838b99;border-radius:4px;outline:none;min-width:120px;max-width:calc(100dvw - 40px);min-height:120px;max-height:calc(100dvh - 40px);font-size:14px;line-height:1.5;position:relative;overflow:hidden;box-shadow:0 0 50px #0006,inset 0 0 60px #01070d99}._Overlay_1t9wa_22{z-index:10;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}._DialogButton_1t9wa_33{color:#99fff1;text-shadow:0 -1px 1px #0006;cursor:pointer;background:linear-gradient(#30a497cc,#1f9688cc 33%,#218377cc 67%,#046564cc);border:1px solid #387c74cc;border-top-color:#57b7b9cc;border-radius:4px;padding:4px 18px;font-family:inherit;font-size:14px;font-weight:500;box-shadow:inset 0 0 4px #02808e80}._DialogButton_1t9wa_33:hover:not(:disabled){color:#b1fff5;border:1px solid #409188e6;border-top-color:#5ac6c2e6;box-shadow:inset 0 0 4px #02808e80,0 0 5px #3effbf80}._DialogButton_1t9wa_33:active:not(:disabled){transform:translateY(1px)}._DialogButton_1t9wa_33:disabled{opacity:.4;cursor:not-allowed}._Secondary_1t9wa_72{box-shadow:none;color:#a2e2cfcc;text-shadow:none;background:0 0;border:1px solid #387c74cc}._Secondary_1t9wa_72:hover:not(:disabled){color:#a9ffe5cc;border:1px solid #3f9087e6}._Actions_1t9wa_86{align-items:center;gap:10px;display:flex}@media (width<=719px){._Dialog_1t9wa_1{border-radius:0;max-width:calc(100dvw - 20px);max-height:calc(100dvh - 20px)}}@media (width<=639px){._Overlay_1t9wa_22{padding:10px}}._Button_n870r_1{color:#fff;cursor:pointer;opacity:.6;background:0 0;border:0;border-radius:0;flex:none;place-content:center;align-self:stretch;min-width:30px;min-height:30px;margin:0 0 0 2px;padding:2px 4px 2px 8px;font-size:24px;display:grid}._Button_n870r_1:active,._Button_n870r_1[data-active=true]{opacity:1;transform:translateY(1px)}._Button_n870r_1[data-orientation=top]{min-width:48px;min-height:48px;margin:0;display:none}@media (hover:hover){._Button_n870r_1:not(:disabled):hover{opacity:1}}._Button_n870r_1 svg{pointer-events:none}@media (width<=899px){._Button_n870r_1[data-orientation=left]{display:none}._Button_n870r_1[data-orientation=top]{display:grid}}@media (pointer:coarse){._Button_n870r_1{font-size:28px}}._Button_wk3rb_1{gap:6px;margin:0 10px 0 auto;padding:4px 10px 4px 6px;font-size:20px}._ButtonLabel_wk3rb_9{font-size:13px;font-weight:500}@media (width<=799px){._Button_wk3rb_1{margin:0 10px 0 0;padding-right:6px}._Button_wk3rb_1 ._ButtonLabel_wk3rb_9{display:none}}._Frame_1u5rk_1{grid-template:"sidebar toolbar""sidebar content"1fr"sidebar footer"/auto 1fr;width:100dvw;height:100dvh;display:grid;overflow:hidden}._Toolbar_1u5rk_16{color:#fff;z-index:3;view-transition-class:layout;background:#191f1f;border-bottom:1px solid #465555;grid-area:toolbar;align-items:center;display:flex;position:relative;box-shadow:0 0 3px 1px #0006}._Sidebar_1u5rk_29{color:#fff;z-index:2;background:#191f1f;border-right:1px solid #465555;grid-area:sidebar;width:320px;height:100%;min-height:0;position:relative;overflow-y:auto;box-shadow:0 0 3px 1px #0006}._Content_1u5rk_43{z-index:0;grid-area:content;min-width:0;min-height:0;position:relative;overflow:hidden}._ThreeView_1u5rk_52{z-index:0;position:absolute;inset:0}._PlayerBar_1u5rk_61{color:#fff;z-index:1;background:#191f1f;border-top:1px solid #465555;grid-area:footer;position:relative;box-shadow:0 0 3px 1px #0006}._Backdrop_1u5rk_71{display:none}@media (width<=899px){._Frame_1u5rk_1{grid-template:"toolbar""content"1fr"footer"/1fr;display:grid}._Sidebar_1u5rk_29{border:1px solid #465555;border-top:0;grid-area:content-start/content/footer-end;justify-self:center;width:auto;max-width:500px;height:calc(100% + 1px);margin:0 -1px}._Toolbar_1u5rk_16{justify-content:space-between}._Backdrop_1u5rk_71{z-index:2;background:#000000b3;display:block;position:fixed;inset:0}} diff --git a/docs/assets/index-DfaykQpF.js b/docs/assets/index-DfaykQpF.js new file mode 100644 index 00000000..7364af67 --- /dev/null +++ b/docs/assets/index-DfaykQpF.js @@ -0,0 +1,12 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/demoStreaming-Tnv976xF.js","assets/streamHelpers-D2N8suZp.js","assets/chunk-DECur_0Z.js","assets/three.module-07hRbor4.js","assets/scene-BdOVRsxo.js","assets/logger-z_EpIdIa.js","assets/demoTimelineScanner-BGzL-XZF.js","assets/TouchHandler-BGxxpP92.js","assets/react-three-fiber.esm-CgPHUpXo.js","assets/jsx-runtime-BpGWiA-R.js","assets/traditional-BTL5qX2E.js","assets/SettingsProvider-CCHVZuSg.js","assets/manifest-CirqV3Ls.js","assets/stringUtils-EmGsjr9D.js","assets/JoystickContext-YJ6eVLFP.js","assets/TouchJoystick-DYqKShVz.js","assets/preload-helper-CwUjIIrH.js","assets/TouchJoystick-Dn73xHvm.css","assets/KeyboardOverlay-Du-YZ_-q.js","assets/gr-1PcjgMj0.js","assets/iconBase-BCRUFbxq.js","assets/cameraTourStore-PEzPVGnX.js","assets/KeyboardOverlay-CpSto9KR.css","assets/GameView-C7uJjiJd.js","assets/mission-Bem2ztlS.js","assets/extends-COZGby3T.js","assets/GenericShape-FZ5loHEW.js","assets/Texture-CIsc25mc.js","assets/useBaseQuery-Co62zxSo.js","assets/FloatingLabel-Bm1LwAgd.js","assets/Html-DTt-Asp4.js","assets/FloatingLabel-DfptgH-Y.css","assets/globalFogUniforms-CtxQvsRj.js","assets/loaders-CIpiZadQ.js","assets/engineStore-Dkm20jvr.js","assets/middleware-DPacZrFu.js","assets/useQuery-lKBLxuin.js","assets/AudioContext-CMp1T7r9.js","assets/DebugSuspense-Dk4MzcWf.js","assets/ShapeErrorBoundary-CJ_4YTMy.js","assets/gameEntityTypes-B1KihaDt.js","assets/streamPlaybackStore-DhJekvnx.js","assets/GameView-PJcE9IRi.css","assets/DemoPlaybackControls-D--l_WXN.js","assets/DemoPlaybackControls-D1aGRzqE.css","assets/PlayerHUD-IFZkOeCb.js","assets/PlayerHUD-DWa6gIym.css","assets/MapInfoDialog-C3Dk90R7.js","assets/MapInfoDialog-qPSE5ow_.css","assets/ServerBrowser-DxPc-p2a.js","assets/ServerBrowser-B1ZZ25fp.css","assets/ScoreScreen-oQegOqLS.js","assets/ScoreScreen-FWyMMObP.css"])))=>i.map(i=>d[i]); +import{r as e,t}from"./chunk-DECur_0Z.js";import{n,r,t as i}from"./jsx-runtime-BpGWiA-R.js";import{i as a,o,s}from"./react-three-fiber.esm-CgPHUpXo.js";import{a as c,c as l,d as u,f as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x}from"./SettingsProvider-CCHVZuSg.js";import{t as S}from"./iconBase-BCRUFbxq.js";import{l as C,n as w,r as T,s as E}from"./manifest-CirqV3Ls.js";import{n as D,r as O,t as k}from"./stringUtils-EmGsjr9D.js";import{t as A}from"./logger-z_EpIdIa.js";import{i as j,n as M,r as ee}from"./traditional-BTL5qX2E.js";import{n as te,t as N}from"./cameraTourStore-PEzPVGnX.js";import{C as P,D as ne,E as re,O as F,S as ie,T as ae,_ as I,a as oe,b as L,c as se,f as ce,g as le,h as ue,i as de,k as fe,l as pe,m as me,o as he,p as ge,r as _e,s as ve,t as ye,u as be,v as xe,w as Se,x as Ce,y as we}from"./streamHelpers-D2N8suZp.js";import{St as Te,Ut as Ee}from"./three.module-07hRbor4.js";import{i as De}from"./scene-BdOVRsxo.js";import{i as Oe}from"./mission-Bem2ztlS.js";import{t as ke}from"./middleware-DPacZrFu.js";import{i as Ae,r as je}from"./engineStore-Dkm20jvr.js";import{t as Me}from"./preload-helper-CwUjIIrH.js";import{t as Ne}from"./JoystickContext-YJ6eVLFP.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Pe=t((e=>{var t=r();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=Pe()})),Ie=t((e=>{var t=s(),n=r(),i=Fe();function a(e){var t=`https://react.dev/errors/`+e;if(1F||(e.current=re[F],re[F]=null,F--)}function I(e,t){F++,re[F]=e.current,e.current=t}var oe=ie(null),L=ie(null),se=ie(null),ce=ie(null);function le(e,t){switch(I(se,t),I(L,e),I(oe,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}ae(oe),I(oe,e)}function ue(){ae(oe),ae(L),ae(se)}function de(e){e.memoizedState!==null&&I(ce,e);var t=oe.current,n=Hd(t,e.type);t!==n&&(I(L,e),I(oe,n))}function fe(e){L.current===e&&(ae(oe),ae(L)),ce.current===e&&(ae(ce),Qf._currentValue=ne)}var pe,me;function he(e){if(pe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);pe=t&&t[1]||``,me=-1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ge=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?he(n):``}function ve(e,t){switch(e.tag){case 26:case 27:case 5:return he(e.type);case 16:return he(`Lazy`);case 13:return e.child!==t&&t!==null?he(`Suspense Fallback`):he(`Suspense`);case 19:return he(`SuspenseList`);case 0:case 15:return _e(e.type,!1);case 11:return _e(e.type.render,!1);case 1:return _e(e.type,!0);case 31:return he(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=ve(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,je=t.unstable_IdlePriority,Me=t.log,Ne=t.unstable_setDisableYieldValue,Pe=null,Ie=null;function Le(e){if(typeof Me==`function`&&Ne(e),Ie&&typeof Ie.setStrictMode==`function`)try{Ie.setStrictMode(Pe,e)}catch{}}var Re=Math.clz32?Math.clz32:ze,R=Math.log,z=Math.LN2;function ze(e){return e>>>=0,e===0?32:31-(R(e)/z|0)|0}var Be=256,Ve=262144,He=4194304;function Ue(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function We(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ue(n))):i=Ue(o):i=Ue(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ue(n))):i=Ue(o)):i=Ue(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ge(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ke(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function qe(){var e=He;return He<<=1,!(He&62914560)&&(He=4194304),e}function Je(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ye(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Xe(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),cn=!1;if(sn)try{var ln={};Object.defineProperty(ln,`passive`,{get:function(){cn=!0}}),window.addEventListener(`test`,ln,ln),window.removeEventListener(`test`,ln,ln)}catch{cn=!1}var un=null,dn=null,fn=null;function pn(){if(fn)return fn;var e,t=dn,n=t.length,r,i=`value`in un?un.value:un.textContent,a=i.length;for(e=0;e=Gn),Jn=` `,Yn=!1;function Xn(e,t){switch(e){case`keyup`:return Un.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Zn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Qn=!1;function $n(e,t){switch(e){case`compositionend`:return Zn(t);case`keypress`:return t.which===32?(Yn=!0,Jn):null;case`textInput`:return e=t.data,e===Jn&&Yn?null:e;default:return null}}function er(e,t){if(Qn)return e===`compositionend`||!Wn&&Xn(e,t)?(e=pn(),fn=dn=un=null,Qn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Sr(n)}}function wr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?wr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Tr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ft(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ft(e.document)}return t}function Er(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Dr=sn&&`documentMode`in document&&11>=document.documentMode,Or=null,kr=null,Ar=null,jr=!1;function Mr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;jr||Or==null||Or!==Ft(r)||(r=Or,`selectionStart`in r&&Er(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ar&&xr(Ar,r)||(Ar=r,r=Ed(kr,`onSelect`),0>=o,i-=o,wi=1<<32-Re(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),V&&Ei(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),V&&Ei(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return V&&Ei(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),V&&Ei(i,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===v&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case g:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===v){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===D&&Ea(l)===r.type){n(e,r.sibling),c=i(r,o.props),Na(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===v?(c=di(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ui(o.type,o.key,o.props,null,e.mode,c),Na(c,o),c.return=e,e=c)}return s(e);case _:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=mi(o,e.mode,c),c.return=e,e=c}return s(e);case D:return o=Ea(o),b(e,r,o,c)}if(te(o))return h(e,r,o,c);if(j(o)){if(l=j(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Ma(o),c);if(o.$$typeof===S)return b(e,r,ea(e,o),c);Pa(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=fi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{ja=0;var i=b(e,t,n,r);return Aa=null,i}catch(t){if(t===ba||t===Sa)throw t;var a=oi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ia=Fa(!0),La=Fa(!1),Ra=!1;function za(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ba(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Va(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ha(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Y&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ri(e),ni(e,null,n),t}return $r(e,r,t,n),ri(e)}function Ua(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Qe(e,n)}}function Wa(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ga=!1;function Ka(){if(Ga){var e=da;if(e!==null)throw e}}function qa(e,t,n,r){Ga=!1;var i=e.updateQueue;Ra=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Z&f)===f:(r&f)===f){f!==0&&f===ua&&(Ga=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=m({},d,f);break a;case 2:Ra=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Wl|=o,e.lanes=o,e.memoizedState=d}}function Ja(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function Ya(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=N.T,s={};N.T=s,As(e,!1,t,n);try{var c=i(),l=N.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?ks(e,t,ma(c,r),fu(e)):ks(e,t,r,fu(e))}catch(n){ks(e,t,{then:function(){},status:`rejected`,reason:n},fu())}finally{P.p=a,o!==null&&s.types!==null&&(o.types=s.types),N.T=o}}function ys(){}function bs(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=xs(e).queue;vs(e,i,t,ne,n===null?ys:function(){return Ss(e),n(r)})}function xs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ne,baseState:ne,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:ne},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ss(e){var t=xs(e);t.next===null&&(t=e.alternate.memoizedState),ks(e,t.next.queue,{},fu())}function Cs(){return $i(Qf)}function ws(){return G().memoizedState}function Ts(){return G().memoizedState}function Es(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=fu();e=Va(n);var r=Ha(t,e,n);r!==null&&(mu(r,t,n),Ua(r,t,n)),t={cache:oa()},e.payload=t;return}t=t.return}}function Ds(e,t,n){var r=fu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},js(e)?Ms(t,n):(n=ei(e,t,n,r),n!==null&&(mu(n,e,r),Ns(n,t,r)))}function Os(e,t,n){ks(e,t,n,fu())}function ks(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(js(e))Ms(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,br(s,o))return $r(e,t,i,0),Il===null&&Qr(),!1}catch{}if(n=ei(e,t,i,r),n!==null)return mu(n,e,r),Ns(n,t,r),!0}return!1}function As(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},js(e)){if(t)throw Error(a(479))}else t=ei(e,n,r,2),t!==null&&mu(t,e,2)}function js(e){var t=e.alternate;return e===U||t!==null&&t===U}function Ms(e,t){mo=po=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ns(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Qe(e,n)}}var Ps={readContext:$i,use:jo,useCallback:W,useContext:W,useEffect:W,useImperativeHandle:W,useLayoutEffect:W,useInsertionEffect:W,useMemo:W,useReducer:W,useRef:W,useState:W,useDebugValue:W,useDeferredValue:W,useTransition:W,useSyncExternalStore:W,useId:W,useHostTransitionStatus:W,useFormState:W,useActionState:W,useOptimistic:W,useMemoCache:W,useCacheRefresh:W};Ps.useEffectEvent=W;var Fs={readContext:$i,use:jo,useCallback:function(e,t){return Oo().memoizedState=[e,t===void 0?null:t],e},useContext:$i,useEffect:os,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),as(4194308,4,ds.bind(null,t,e),n)},useLayoutEffect:function(e,t){return as(4194308,4,e,t)},useInsertionEffect:function(e,t){as(4,2,e,t)},useMemo:function(e,t){var n=Oo();t=t===void 0?null:t;var r=e();if(ho){Le(!0);try{e()}finally{Le(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Oo();if(n!==void 0){var i=n(t);if(ho){Le(!0);try{n(t)}finally{Le(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ds.bind(null,U,e),[r.memoizedState,e]},useRef:function(e){var t=Oo();return e={current:e},t.memoizedState=e},useState:function(e){e=Uo(e);var t=e.queue,n=Os.bind(null,U,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ps,useDeferredValue:function(e,t){return gs(Oo(),e,t)},useTransition:function(){var e=Uo(!1);return e=vs.bind(null,U,e.queue,!0,!1),Oo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=U,i=Oo();if(V){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),Il===null)throw Error(a(349));Z&127||Ro(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,os(Bo.bind(null,r,o,e),[e]),r.flags|=2048,rs(9,{destroy:void 0},zo.bind(null,r,o,n,t),null),n},useId:function(){var e=Oo(),t=Il.identifierPrefix;if(V){var n=Ti,r=wi;n=(r&~(1<<32-Re(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=go++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[at]=t,o[ot]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Pd(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&kc(t)}}return Pc(t),Ac(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&kc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=se.current,zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=ji,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[at]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||Ii(t,!0)}else e=Bd(e).createTextNode(r),e[at]=t,t.stateNode=e}return Pc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=zi(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[at]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Pc(t),e=!1}else n=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(oo(t),t):(oo(t),null);if(t.flags&128)throw Error(a(558))}return Pc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=zi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[at]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Pc(t),i=!1}else i=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(oo(t),t):(oo(t),null)}return oo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Mc(t,t.updateQueue),Pc(t),null);case 4:return ue(),e===null&&Sd(t.stateNode.containerInfo),Pc(t),null;case 10:return qi(t.type),Pc(t),null;case 19:if(ae(so),r=t.memoizedState,r===null)return Pc(t),null;if(i=(t.flags&128)!=0,o=r.rendering,o===null)if(i)Nc(r,!1);else{if(Ul!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=co(e),o!==null){for(t.flags|=128,Nc(r,!1),e=o.updateQueue,t.updateQueue=e,Mc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)li(n,e),n=n.sibling;return I(so,so.current&1|2),V&&Ei(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>eu&&(t.flags|=128,i=!0,Nc(r,!1),t.lanes=4194304)}else{if(!i)if(e=co(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Mc(t,e),Nc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!V)return Pc(t),null}else 2*Te()-r.renderingStartTime>eu&&n!==536870912&&(t.flags|=128,i=!0,Nc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Pc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=so.current,I(so,i?n&1|2:n&1),V&&Ei(t,r.treeForkCount),e);case 22:case 23:return oo(t),eo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Pc(t),t.subtreeFlags&6&&(t.flags|=8192)):Pc(t),n=t.updateQueue,n!==null&&Mc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&ae(ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),qi(aa),Pc(t),null;case 25:return null;case 30:return null}throw Error(a(156,t.tag))}function Ic(e,t){switch(ki(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return qi(aa),ue(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return fe(t),null;case 31:if(t.memoizedState!==null){if(oo(t),t.alternate===null)throw Error(a(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(oo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ae(so),null;case 4:return ue(),null;case 10:return qi(t.type),null;case 22:case 23:return oo(t),eo(),e!==null&&ae(ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return qi(aa),null;case 25:return null;default:return null}}function Lc(e,t){switch(ki(t),t.tag){case 3:qi(aa),ue();break;case 26:case 27:case 5:fe(t);break;case 4:ue();break;case 31:t.memoizedState!==null&&oo(t);break;case 13:oo(t);break;case 19:ae(so);break;case 10:qi(t.type);break;case 22:case 23:oo(t),eo(),e!==null&&ae(ga);break;case 24:qi(aa)}}function Rc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Wu(t,t.return,e)}}function zc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Wu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Wu(t,t.return,e)}}function Bc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Ya(t,n)}catch(t){Wu(e,e.return,t)}}}function Vc(e,t,n){n.props=Hs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Wu(e,t,n)}}function Hc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Wu(e,t,n)}}function Uc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Wu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Wu(e,t,n)}else n.current=null}function Wc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Wu(e,e.return,t)}}function Gc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[ot]=t}catch(t){Wu(e,e.return,t)}}function Kc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function qc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Kc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Jc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Zt));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Jc(e,t,n),e=e.sibling;e!==null;)Jc(e,t,n),e=e.sibling}function Yc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Yc(e,t,n),e=e.sibling;e!==null;)Yc(e,t,n),e=e.sibling}function Xc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[at]=e,t[ot]=n}catch(t){Wu(e,e.return,t)}}var Zc=!1,Qc=!1,$c=!1,J=typeof WeakSet==`function`?WeakSet:Set,el=null;function tl(e,t){if(e=e.containerInfo,Rd=sp,e=Tr(e),Er(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=s+i),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,el=t;el!==null;)if(t=el,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,el=e;else for(;el!==null;){switch(t=el,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Pd(o,r,n),o[at]=e,vt(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Cr(s,h),v=Cr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,N.T=null,n=cu,cu=null;var o=iu,s=ou;if(ru=0,au=iu=null,ou=0,Y&6)throw Error(a(331));var c=Y;if(Y|=4,jl(o.current),Cl(o,o.current,s,n),Y=c,id(0,!1),Ie&&typeof Ie.onPostCommitFiberRoot==`function`)try{Ie.onPostCommitFiberRoot(Pe,o)}catch{}return!0}finally{P.p=i,N.T=r,Bu(e,t)}}function Uu(e,t,n){t=gi(n,t),t=Js(e.stateNode,t,2),e=Ha(e,t,2),e!==null&&(Ye(e,2),rd(e))}function Wu(e,t,n){if(e.tag===3)Uu(e,e,n);else for(;t!==null;){if(t.tag===3){Uu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(nu===null||!nu.has(r))){e=gi(n,e),n=Ys(2),r=Ha(t,n,2),r!==null&&(Xs(n,r,t,e),Ye(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Fl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Vl=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Il===e&&(Z&n)===n&&(Ul===4||Ul===3&&(Z&62914560)===Z&&300>Te()-Ql?!(Y&2)&&xu(e,0):Kl|=n,Jl===Z&&(Jl=0)),rd(e)}function qu(e,t){t===0&&(t=qe()),e=ti(e,t),e!==null&&(Ye(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return xe(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Re(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=Z,a=We(r,r===Il?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ge(r,a)||(n=!0,ld(r,a));r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Gd()&&(e=nd);for(var t=Te(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}ru!==0&&ru!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Lt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),vt(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Lt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Lt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Lt(n.imageSizes)+`"]`)):i+=`[href="`+Lt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=m({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),vt(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Lt(r)+`"][href="`+Lt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=m({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),vt(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=_t(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=m({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);vt(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=_t(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=m({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),vt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=_t(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=m({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),vt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=se.current)?gf(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=_t(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=_t(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(i,e,n,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=_t(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function Af(e){return`href="`+Lt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return m({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),vt(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Lt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Lt(n.href)+`"]`);if(r)return t.instance=r,vt(r),r;var i=m({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),vt(r),Pd(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var o=e.querySelector(jf(i));if(o)return t.state.loading|=4,t.instance=o,vt(o),o;r=Mf(n),(i=mf.get(i))&&Rf(r,i),o=(e.ownerDocument||e).createElement(`link`),vt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(i=e.querySelector(Ff(o)))?(t.instance=i,vt(i),i):(r=n,(i=mf.get(o))&&(r=m({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),vt(i),Pd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,vt(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),vt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=Ie()})),Re=e(Le(),1),R=e(r(),1),z=n();function ze(e,t,n){return r=>{if(!(t.length===0||t.some(t=>!x(r.getAll(t),e.getAll(t)))))return _("[nuqs `%s`] no change, returning previous",t.join(`,`),r),r;let i=Be(e,t,n);return _(`[nuqs \`%s\`] subbed search params change + from %O + to %O`,t.join(`,`),r,i),i}}function Be(e,t,n){if(t.length===0)return e;let r=n?new URLSearchParams(e):e;for(let n of e.keys())t.includes(n)||r.delete(n);return r}var Ve=`__nuqs__`,He=u();function Ue(e){return function(t,n){let r=new URL(location.href);r.search=m(t),_(`[nuqs react] Updating url: %s`,r),e&&n.shallow===!1?(n.history===`push`?location.assign:location.replace).call(location,r):(n.history===`push`?history.pushState:history.replaceState).call(history,history.state,Ve,r),He.emit(`update`,t),n.scroll===!0&&window.scrollTo({top:0})}}var We=(0,R.createContext)({fullPageNavigationOnShallowFalseUpdates:!1});function Ge(e){let{fullPageNavigationOnShallowFalseUpdates:t}=(0,R.useContext)(We),[n,r]=(0,R.useState)(()=>typeof location>`u`?new URLSearchParams:Be(new URLSearchParams(location.search),e,!1));return(0,R.useEffect)(()=>{let t=()=>{r(ze(new URLSearchParams(location.search),e,!1))},n=t=>{r(ze(t,e,!0))};return He.on(`update`,n),window.addEventListener(`popstate`,t),()=>{He.off(`update`,n),window.removeEventListener(`popstate`,t)}},[e.join(`&`)]),{searchParams:n,updateUrl:(0,R.useMemo)(()=>Ue(t),[t])}}var Ke=d(Ge);function qe({children:e,fullPageNavigationOnShallowFalseUpdates:t=!1,...n}){return(0,R.createElement)(We.Provider,{value:{fullPageNavigationOnShallowFalseUpdates:t}},(0,R.createElement)(Ke,{...n,children:e}))}var Je=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Ye=new class extends Je{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},Xe={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Ze=new class{#e=Xe;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function Qe(e){setTimeout(e,0)}var $e=typeof window>`u`||`Deno`in globalThis;function et(){}function tt(e,t){return typeof e==`function`?e(t):e}function nt(e){return typeof e==`number`&&e>=0&&e!==1/0}function rt(e,t){return Math.max(e+(t||0)-Date.now(),0)}function it(e,t){return typeof e==`function`?e(t):e}function at(e,t){return typeof e==`function`?e(t):e}function ot(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==ct(o,t.options))return!1}else if(!ut(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function st(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(lt(t.options.mutationKey)!==lt(a))return!1}else if(!ut(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function ct(e,t){return(t?.queryKeyHashFn||lt)(e)}function lt(e){return JSON.stringify(e,(e,t)=>ht(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function ut(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>ut(e[n],t[n])):!1}var dt=Object.prototype.hasOwnProperty;function ft(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=mt(e)&&mt(t);if(!r&&!(ht(e)&&ht(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l{Ze.setTimeout(t,e)})}function vt(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:ft(e,t)}function yt(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function bt(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var xt=Symbol();function St(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===xt?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Ct(e,t){return typeof e==`function`?e(...t):!!e}function wt(e,t,n){let r=!1,i;return Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var Tt=(()=>{let e=()=>$e;return{isServer(){return e()},setIsServer(t){e=t}}})();function Et(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var Dt=Qe;function Ot(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=Dt,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var kt=Ot(),At=new class extends Je{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function jt(e){return Math.min(1e3*2**e,3e4)}function Mt(e){return(e??`online`)===`online`?At.isOnline():!0}var Nt=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function Pt(e){let t=!1,n=0,r,i=Et(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new Nt(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>Ye.isFocused()&&(e.networkMode===`always`||At.isOnline())&&e.canRun(),u=()=>Mt(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(Tt.isServer()?0:3),o=e.retryDelay??jt,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&nl()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var Ft=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),nt(this.gcTime)&&(this.#e=Ze.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Tt.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e&&=(Ze.clearTimeout(this.#e),void 0)}},It=class extends Ft{#e;#t;#n;#r;#i;#a;#o;constructor(e){super(),this.#o=!1,this.#a=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.client,this.#n=this.#r.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=zt(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#i?.promise}setOptions(e){if(this.options={...this.#a,...e},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=zt(this.options);e.data!==void 0&&(this.setState(Rt(e.data,e.dataUpdatedAt)),this.#e=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#n.remove(this)}setData(e,t){let n=vt(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e,t){this.#c({type:`setState`,state:e,setStateOptions:t})}cancel(e){let t=this.#i?.promise;return this.#i?.cancel(e),t?t.then(et).catch(et):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#e}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>at(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===xt||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>it(e.options.staleTime,this)===`static`):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!rt(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#i&&(this.#o||this.#s()?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#n.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#s(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#i?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(this.#o=!0,n.signal)})},i=()=>{let e=St(this.options,t),n=(()=>{let e={client:this.#r,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#o=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:i};return r(e),e})();this.options.behavior?.onFetch(a,this),this.#t=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta}),this.#i=Pt({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof Nt&&e.revert&&this.setState({...this.#t,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#i.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#n.config.onSuccess?.(e,this),this.#n.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof Nt){if(e.silent)return this.#i.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#n.config.onError?.(e,this),this.#n.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#c(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Lt(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...Rt(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#t=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}})(this.state),kt.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#n.notify({query:this,type:`updated`,action:e})})}};function Lt(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Mt(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function Rt(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function zt(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}function Bt(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{wt(e,()=>t.signal,()=>n=!0)},u=St(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject();if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?bt:yt;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?Ht:Vt,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:Vt(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function Vt(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ht(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var Ut=class extends Ft{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||Wt(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=Pt({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}})(this.state),kt.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function Wt(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Gt=class extends Je{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new Ut({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=Kt(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=Kt(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=Kt(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=Kt(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){kt.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>st(t,e))}findAll(e={}){return this.getAll().filter(t=>st(e,t))}notify(e){kt.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return kt.batch(()=>Promise.all(e.map(e=>e.continue().catch(et))))}};function Kt(e){return e.options.scope?.id}var qt=class extends Je{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??ct(r,t),a=this.get(i);return a||(a=new It({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){kt.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ot(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>ot(e,t)):t}notify(e){kt.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){kt.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){kt.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Jt=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new qt,this.#t=e.mutationCache||new Gt,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=Ye.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=At.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(it(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=tt(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return kt.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;kt.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return kt.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=kt.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(et).catch(et)}invalidateQueries(e,t={}){return kt.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=kt.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(et)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(et)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(it(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(et).catch(et)}fetchInfiniteQuery(e){return e.behavior=Bt(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(et).catch(et)}ensureInfiniteQueryData(e){return e.behavior=Bt(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return At.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(lt(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{ut(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(lt(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{ut(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=ct(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===xt&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},B=i(),Yt=R.createContext(void 0),Xt=e=>{let t=R.useContext(Yt);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},Zt=({client:e,children:t})=>(R.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,B.jsx)(Yt.Provider,{value:e,children:t})),Qt=(0,R.createContext)({live:!1});function $t(){return(0,R.useContext)(Qt)}function en(e){let t=(0,z.c)(5),{children:n}=e,[r]=p(`features`,l),i;t[0]===r?i=t[1]:(i=()=>({live:new Set((r??``).split(`,`).map(tn).filter(Boolean)).has(`live`)}),t[0]=r,t[1]=i);let[a]=(0,R.useState)(i),o;return t[2]!==n||t[3]!==a?(o=(0,B.jsx)(Qt.Provider,{value:a,children:n}),t[2]=n,t[3]=a,t[4]=o):o=t[4],o}function tn(e){return e.trim().toLowerCase()}function nn(e){return S({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z`},child:[]}]})(e)}function rn(e){return S({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z`},child:[]}]})(e)}function an(e){return S({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z`},child:[]}]})(e)}function on(e){return S({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z`},child:[]}]})(e)}function sn(e){return S({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z`},child:[]}]})(e)}function cn(e){return S({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z`},child:[]}]})(e)}function ln(e){return S({tag:`svg`,attr:{viewBox:`0 0 576 512`},child:[{tag:`path`,attr:{d:`M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z`},child:[]}]})(e)}function un(e){return S({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z`},child:[]}]})(e)}function dn(e){return S({tag:`svg`,attr:{viewBox:`0 0 288 512`},child:[{tag:`path`,attr:{d:`M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z`},child:[]}]})(e)}function fn(e){return S({tag:`svg`,attr:{viewBox:`0 0 320 512`},child:[{tag:`path`,attr:{d:`M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z`},child:[]}]})(e)}function pn(e){return S({tag:`svg`,attr:{viewBox:`0 0 320 512`},child:[{tag:`path`,attr:{d:`M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z`},child:[]}]})(e)}var mn={Button:`_Button_p0g82_2`,ButtonLabel:`_ButtonLabel_p0g82_37`,Icon:`_Icon_p0g82_85`,ButtonHint:`_ButtonHint_p0g82_92`,ButtonGroup:`_ButtonGroup_p0g82_97`,DestructiveActionButton:`_DestructiveActionButton_p0g82_141 _Button_p0g82_2`},hn={Button:`_Button_1xmvi_1 _Button_p0g82_2`,ClipboardIcon:`_ClipboardIcon_1xmvi_10`,showClipboardCheck:`_showClipboardCheck_1xmvi_1`,PinIcon:`_PinIcon_1xmvi_20`};function gn({position:e,quaternion:t}){let n=e=>parseFloat(e.toFixed(3));return`#c${`${n(e.x)},${n(e.y)},${n(e.z)}`}~${`${n(t.x)},${n(t.y)},${n(t.z)},${n(t.w)}`}`}function _n(e){let t=(0,z.c)(12),{cameraRef:n,missionName:r,missionType:i,disabled:a}=e,{fogEnabled:o}=c(),[s,l]=(0,R.useState)(!1),u=(0,R.useRef)(null),d;t[0]!==n||t[1]!==o||t[2]!==r||t[3]!==i?(d=async()=>{u.current&&clearTimeout(u.current);let e=n.current;if(!e)return;let t=gn(e),a=new URLSearchParams,s=i?`${r}~${i}`:r;a.set(`mission`,s),a.set(`fog`,o.toString());let c=`${window.location.pathname}?${a}${t}`,d=`${window.location.origin}${c}`;window.history.replaceState(null,``,c);try{await navigator.clipboard.writeText(d),l(!0),u.current=setTimeout(()=>{l(!1)},1100)}catch(e){console.error(e)}},t[0]=n,t[1]=o,t[2]=r,t[3]=i,t[4]=d):d=t[4];let f=d,p=s?`true`:`false`,m,h,g;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,B.jsx)(dn,{className:hn.PinIcon}),h=(0,B.jsx)(rn,{className:hn.ClipboardIcon}),g=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:` Link to coordinates`}),t[5]=m,t[6]=h,t[7]=g):(m=t[5],h=t[6],g=t[7]);let _;return t[8]!==a||t[9]!==f||t[10]!==p?(_=(0,B.jsxs)(`button`,{type:`button`,className:hn.Button,"aria-label":`Link to coordinates`,title:`Copy the current coordinates to URL`,onClick:f,disabled:a,"data-copied":p,id:`copyCoordinatesButton`,children:[m,h,g]}),t[8]=a,t[9]=f,t[10]=p,t[11]=_):_=t[11],_}function vn(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{fill:`none`,d:`M0 0h24v24H0V0z`},child:[]},{tag:`path`,attr:{d:`M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12zm-5-6-7 4V7z`},child:[]}]})(e)}function yn(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{fill:`none`,d:`M0 0h24v24H0z`},child:[]},{tag:`path`,attr:{d:`m18.89 14.75-4.09-2.04c-.28-.14-.58-.21-.89-.21H13v-6c0-.83-.67-1.5-1.5-1.5S10 5.67 10 6.5v10.74l-3.25-.74a.99.99 0 0 0-.92.28l-.83.84 4.54 4.79c.38.38 1.14.59 1.67.59h6.16c1 0 1.84-.73 1.98-1.72l.63-4.46c.12-.85-.32-1.68-1.09-2.07z`},child:[]},{tag:`path`,attr:{d:`M20.13 3.87C18.69 2.17 15.6 1 12 1S5.31 2.17 3.87 3.87L2 2v5h5L4.93 4.93c1-1.29 3.7-2.43 7.07-2.43s6.07 1.14 7.07 2.43L17 7h5V2l-1.87 1.87z`},child:[]}]})(e)}var bn=j(e=>({events:null,scanProgress:null,setEvents(t){e({events:t})},setScanProgress(t){e({scanProgress:t})},reset(){e({events:null,scanProgress:null})}}));function xn(e,t){return M(bn,e,t)}var Sn=A(`relayClient`),Cn=class{ws=null;handlers;url;_connected=!1;wsPingInterval=null;smoothedWsPing=0;constructor(e,t){this.url=e,this.handlers=t}get connected(){return this._connected}connect(){this.ws=new WebSocket(this.url),this.ws.binaryType=`arraybuffer`,this.ws.onopen=()=>{Sn.info(`WebSocket connected to %s`,this.url),this._connected=!0,this.startWsPing(),this.handlers.onOpen?.()},this.ws.onmessage=e=>{if(e.data instanceof ArrayBuffer)this.handlers.onGamePacket?.(new Uint8Array(e.data));else try{let t=JSON.parse(e.data);this.handleMessage(t)}catch(e){Sn.error(`Failed to parse relay message: %o`,e)}},this.ws.onclose=()=>{Sn.info(`WebSocket disconnected`),this._connected=!1,this.stopWsPing(),this.handlers.onClose?.()},this.ws.onerror=()=>{Sn.error(`WebSocket error`),this.handlers.onError?.(`WebSocket connection error`)}}handleMessage(e){switch(e.type){case`serverList`:this.handlers.onServerList?.(e.servers);break;case`status`:this.handlers.onStatus?.(e.status,e.message,e.connectSequence,e.mapName);break;case`ping`:this.handlers.onPing?.(e.ms);break;case`wsPong`:{let t=Date.now()-e.ts;this.smoothedWsPing=this.smoothedWsPing===0?t:this.smoothedWsPing*.5+t*.5,this.handlers.onWsPing?.(Math.round(this.smoothedWsPing));break}case`error`:this.handlers.onError?.(e.message);break}}listServers(){this.send({type:`listServers`})}sendWsPing(){this.send({type:`wsPing`,ts:Date.now()})}joinServer(e,t){Sn.info(`Joining server: %s`,e),this.send({type:`joinServer`,address:e,warriorName:t})}sendAuthEvent(e,t){this.send({type:`sendCommand`,command:e,args:t})}sendCommand(e,t){this.send({type:`sendCommand`,command:e,args:t})}sendCRCResponse(e,t,n){this.send({type:`sendCRCResponse`,crcValue:e,field1:t,field2:n})}sendCRCCompute(e,t,n,r){this.send({type:`sendCRCCompute`,seed:e,field2:t,includeTextures:r,datablocks:n})}sendGhostAck(e,t){this.send({type:`sendGhostAck`,sequence:e,ghostCount:t})}sendMoves(e,t){this.send({type:`sendMoves`,moves:e,moveStartIndex:t})}close(){this.stopWsPing(),this.ws&&=(this.ws.close(),null),this._connected=!1}startWsPing(){this.smoothedWsPing=0,this.send({type:`wsPing`,ts:Date.now()}),this.wsPingInterval=setInterval(()=>{this.send({type:`wsPing`,ts:Date.now()})},7e3)}stopWsPing(){this.wsPingInterval!=null&&(clearInterval(this.wsPingInterval),this.wsPingInterval=null)}send(e){this.ws?.readyState===WebSocket.OPEN?this.ws.send(JSON.stringify(e)):Sn.warn(`send dropped (ws not open): %s`,e.type)}},wn=256,Tn=wn/2,En=2048,Dn=null;function On(e){Dn=e}function kn(e,t){return Dn?Dn(e,t):null}function An(e,t){return(n,r)=>{let i=n/t+Tn,a=r/t+Tn,o=Math.max(0,Math.min(wn-1,i)),s=Math.max(0,Math.min(wn-1,a)),c=Math.floor(o),l=Math.floor(s),u=Math.min(c+1,wn-1),d=Math.min(l+1,wn-1),f=o-c,p=s-l,m=e[l*wn+c],h=e[l*wn+u],g=e[d*wn+c],_=e[d*wn+u],v=m*(1-f)+h*f,y=g*(1-f)+_*f;return(v*(1-p)+y*p)/65535*En}}var jn=A(`StreamEngine`),Mn=class{registry;ghostTracker;entities=new Map;entityIdByGhostIndex=new Map;tickCount=0;camera=null;chatMessages=[];chatMessageIdCounter=0;_chatGen=0;_chatSnapshotGen=-1;_chatSnapshot=[];audioEvents=[];netStrings=new Map;targetNames=new Map;targetTeams=new Map;targetRenderFlags=new Map;pendingNameTags=new Map;sensorGroupColors=new Map;playerSensorGroup=0;lastStatus={health:1,energy:1};latestControl={ghostIndex:-1};controlPlayerGhostId;lastControlType=`camera`;isPiloting=!1;lastPilotGhostIndex;lastVehicleHeading=0;lastVehiclePitch=0;lastVehicleOrbitDir;lastVehicleVelocity;lastVehiclePosTime=0;lastVehiclePos;firstPerson=!0;lastCameraMode;lastOrbitGhostIndex;lastOrbitDistance;latestFov=90;weaponsHud={slots:new Map,activeIndex:-1};backpackHud={packIndex:-1,active:!1,text:``};inventoryHud={slots:new Map,activeSlot:-1};teamScores=[];playerRoster=new Map;clockAnchorStreamSec=null;clockDurationMs=0;missionDisplayName=null;missionTypeDisplayName=null;gameClassName=null;serverDisplayName=null;connectedPlayerName=null;connectedClientId=null;onMissionInfoChange;nextExplosionId=0;resolveGhostClassName(e,t){if(typeof t==`number`){let e=this.registry.getGhostParser(t)?.name;if(e)return e}let n=this.entityIdByGhostIndex.get(e);if(n){let e=this.entities.get(n);if(e?.className)return e.className}let r=this.ghostTracker.getGhost(e);if(r?.className)return r.className}resolveEntityIdForGhostIndex(e){let t=this.entityIdByGhostIndex.get(e);if(t)return t;let n=this.ghostTracker.getGhost(e);if(n)return ne(n.className,e)}resetSharedState(){this.entities.clear(),this.entityIdByGhostIndex.clear(),this.tickCount=0,this.camera=null,this.chatMessages=[],this.chatMessageIdCounter=0,this._chatGen=0,this._chatSnapshotGen=-1,this._chatSnapshot=[],this.audioEvents=[],this.netStrings.clear(),this.targetNames.clear(),this.targetTeams.clear(),this.targetRenderFlags.clear(),this.sensorGroupColors.clear(),this.playerSensorGroup=0,this.lastStatus={health:1,energy:1},this.latestControl={ghostIndex:-1},this.controlPlayerGhostId=void 0,this.lastControlType=`camera`,this.isPiloting=!1,this.lastPilotGhostIndex=void 0,this.lastVehicleHeading=0,this.lastVehiclePitch=0,this.lastVehicleOrbitDir=void 0,this.lastVehicleVelocity=void 0,this.lastVehiclePosTime=0,this.lastVehiclePos=void 0,this.firstPerson=!0,this.lastCameraMode=void 0,this.lastOrbitGhostIndex=void 0,this.lastOrbitDistance=void 0,this.latestFov=90,this.weaponsHud={slots:new Map,activeIndex:-1},this.backpackHud={packIndex:-1,active:!1,text:``},this.inventoryHud={slots:new Map,activeSlot:-1},this.teamScores=[],this.playerRoster.clear(),this.clockAnchorStreamSec=null,this.clockDurationMs=0,this.nextExplosionId=0,this.missionDisplayName=null,this.missionTypeDisplayName=null,this.gameClassName=null,this.serverDisplayName=null}resolveNetString(e){if(e.length>=2&&e.charCodeAt(0)===1){let t=parseInt(e.slice(1),10);if(Number.isFinite(t))return this.netStrings.get(t)??e}return e}formatRemoteArgs(e,t){let n=this.resolveNetString(e);for(let e=0;e0&&(this.playerSensorGroup=t.sensorGroup)}if(t){let e=oe(t);if(e&&(this.lastControlType=e),this.lastControlType===`player`)this.isPiloting=!!(t.pilot||t.controlObjectGhost!=null),this.isPiloting&&typeof t.controlObjectGhost==`number`?this.lastPilotGhostIndex=t.controlObjectGhost:this.isPiloting||(this.lastPilotGhostIndex=void 0,this.lastVehicleHeading=0,this.lastVehiclePitch=0,this.lastVehicleOrbitDir=void 0,this.lastVehicleVelocity=void 0,this.lastVehiclePosTime=0,this.lastVehiclePos=void 0);else if(this.isPiloting=!1,typeof t.cameraMode==`number`)if(this.lastCameraMode=t.cameraMode,t.cameraMode===3){typeof t.orbitObjectGhostIndex==`number`&&(this.lastOrbitGhostIndex=t.orbitObjectGhostIndex);let e=t.minOrbitDist,n=t.maxOrbitDist,r=t.curOrbitDist;typeof e==`number`&&typeof n==`number`&&Number.isFinite(e)&&Number.isFinite(n)?this.lastOrbitDistance=Math.max(0,n-e):typeof r==`number`&&Number.isFinite(r)&&(this.lastOrbitDistance=Math.max(0,r))}else this.lastOrbitGhostIndex=void 0,this.lastOrbitDistance=void 0}e.cameraFov!==void 0&&(this.latestFov=e.cameraFov)}processEvent(e,t){let n=e.parsedData;if(!n)return;let r=n.type;if(r===`GhostAlwaysObjectEvent`){let e=n.ghostIndex,t=n.classId,r=n.objectData,i=n._hasObjectData,a=typeof t==`number`?this.registry.getGhostParser(t)?.name??`classId=${t}`:`?`;jn.debug(`GhostAlwaysObjectEvent: ghost=%d class=%s hasData=%s %s`,e,a,i,r?`keys=[${Object.keys(r).join(`,`)}]`:`(no data)`),e!=null&&t!=null&&this.processGhostUpdate({index:e,type:`create`,classId:t,parsedData:r});return}if(r===`NetStringEvent`||t===`NetStringEvent`){let e=n.id,t=n.value;if(e!=null&&typeof t==`string`){this.netStrings.set(e,t);let n=this.pendingNameTags.get(e);if(n!=null){this.pendingNameTags.delete(e);let r=I(t).trim();this.targetNames.set(n,r);for(let e of this.entities.values())e.targetId===n&&(e.playerName=r)}}return}if(r===`TargetInfoEvent`||t===`TargetInfoEvent`){let e=n.targetId,t=n.nameTag;if(e!=null&&t!=null){let n=this.netStrings.get(t);n?this.targetNames.set(e,I(n).trim()):this.pendingNameTags.set(t,e)}let r=n.sensorGroup;e!=null&&r!=null&&this.targetTeams.set(e,r);let i=n.renderFlags;if(e!=null&&i!=null&&this.targetRenderFlags.set(e,i),e!=null){let t=this.targetNames.get(e),n=this.targetTeams.get(e),r=this.targetRenderFlags.get(e);for(let i of this.entities.values())i.targetId===e&&(t&&(i.playerName=t),n!=null&&(i.sensorGroup=n),r!=null&&(i.targetRenderFlags=r))}return}if(r===`SetSensorGroupEvent`||t===`SetSensorGroupEvent`){let e=n.sensorGroup;e!=null&&(this.playerSensorGroup=e);return}if(r===`SensorGroupColorEvent`||t===`SensorGroupColorEvent`){let e=n.sensorGroup,t=n.colors;if(t){let n=this.sensorGroupColors.get(e);n||(n=new Map,this.sensorGroupColors.set(e,n));for(let e of t)e.default?n.delete(e.index):n.set(e.index,{r:e.r??0,g:e.g??0,b:e.b??0})}return}if(r===`RemoteCommandEvent`||t===`RemoteCommandEvent`){let e=this.resolveNetString(n.funcName),t=n.args,r=this.getTimeSec();if(e===`ChatMessage`&&t.length>=4){let e=de(this.resolveNetString(t[3])),n=t[4]?I(this.resolveNetString(t[4])):``,i=this.formatRemoteArgs(t[3],t.slice(4));if(i){let a=i.indexOf(`: `),{text:o,wavPath:s}=he(a>=0?i.slice(a+2):i),c,l;if(s){let e=this.resolveNetString(t[1]);c=e?`voice/${e}/${s}.wav`:s;let n=this.resolveNetString(t[2]);if(n){let e=parseFloat(n);Number.isFinite(e)&&(l=Math.max(.5,Math.min(2,e)))}}let u=e??0;this.pushChatMessage({timeSec:r,sender:n,text:o,kind:`chat`,colorCode:u,segments:[{text:n?`${n}: ${o}`:o,colorCode:u}],soundPath:c,soundPitch:l})}}else if(e===`CannedChatMessage`&&t.length>=6){let e=de(this.resolveNetString(t[1])),n=I(this.resolveNetString(t[2])),i=I(this.resolveNetString(t[4])),a=this.formatRemoteArgs(t[1],t.slice(2));if(a){let{wavPath:o}=he(a),s=he(I(this.resolveNetString(t[3]))).text,c,l;if(o){let e=this.resolveNetString(t[5]);if(c=e?`voice/${e}/${o}.wav`:o,t[6]){let e=parseFloat(this.resolveNetString(t[6]));Number.isFinite(e)&&(l=Math.max(.5,Math.min(2,e)))}}let u=e??0,d=[];i&&d.push({text:`[${i}] `,colorCode:0}),d.push({text:n?`${n}: ${s}`:s,colorCode:u}),this.pushChatMessage({timeSec:r,sender:n,text:s,kind:`chat`,colorCode:u,segments:d,soundPath:c,soundPitch:l})}}else if(e===`ServerMessage`&&t.length>=2){this.handleServerMessage(t);let e=de(this.resolveNetString(t[1])),n=this.formatRemoteArgs(t[1],t.slice(2));if(n){let{text:t,wavPath:i}=he(n),a=e??0;this.pushChatMessage({timeSec:r,sender:``,text:t,kind:`server`,colorCode:a,segments:[{text:t,colorCode:a}],soundPath:i??void 0})}}else this.handleHudRemoteCommand(e,t);return}if(r===`Sim3DAudioEvent`||r===`Sim2DAudioEvent`||t===`Sim3DAudioEvent`||t===`Sim2DAudioEvent`){let e=n.profileId;if(typeof e==`number`){let i=this.getTimeSec(),a=r===`Sim3DAudioEvent`||t===`Sim3DAudioEvent`?n.position:void 0;this.audioEvents.push({profileId:e,position:a,timeSec:i}),this.audioEvents.length>100&&this.audioEvents.splice(0,this.audioEvents.length-100)}}}processGhostUpdate(e){let t=e.index,n=this.entityIdByGhostIndex.get(t);if(n){let t=this.entities.get(n);t&&t.type===`Projectile`&&!t.hasExploded&&t.explosionDataBlockId!=null&&t.position&&(e.type===`delete`||e.type===`create`)&&this.spawnExplosion(t,[...t.position])}if(e.type===`delete`){n&&(this.removeSoundSlotEntities(n),this.entities.delete(n),this.entityIdByGhostIndex.delete(t));return}let r=this.resolveGhostClassName(t,e.classId);if(!r){if(e.type===`create`)throw Error(`No ghost parser for classId ${e.classId} (ghost index ${t})`);return}let i=ne(r,t);n&&n!==i&&(this.removeSoundSlotEntities(n),this.entities.delete(n));let a,o=this.entities.get(i);if(o&&e.type===`create`?(this.removeSoundSlotEntities(i),o.spawnTick=this.tickCount,this.resetEntity(o),a=o):o?a=o:(a={id:i,ghostIndex:t,className:r,spawnTick:this.tickCount,type:F(r),rotation:[0,0,0,1]},this.entities.set(i,a)),a.ghostIndex=t,a.className=r,a.type=F(r),this.entityIdByGhostIndex.set(t,i),this.applyGhostData(a,e.parsedData),e.type===`create`&&e.parsedData){let n=De(r,t,e.parsedData);n&&(a.sceneData=n)}}resetEntity(e){e.rotation=[0,0,0,1],e.hasExploded=void 0,e.explosionShape=void 0,e.explosionLifetimeTicks=void 0,e.faceViewer=void 0,e.simulatedVelocity=void 0,e.projectilePhysics=void 0,e.gravityMod=void 0,e.direction=void 0,e.velocity=void 0,e.position=void 0,e.dataBlock=void 0,e.dataBlockId=void 0,e.shapeHint=void 0,e.visual=void 0,e.targetId=void 0,e.targetRenderFlags=void 0,e.carryingFlag=void 0,e.sensorGroup=void 0,e.playerName=void 0,e.weaponShape=void 0,e.packShape=void 0,e.falling=void 0,e.jetting=void 0,e.weaponImageState=void 0,e.weaponImageStates=void 0,e.weaponImageStatesDbId=void 0,e.itemPhysics=void 0,e.threads=void 0,e.headPitch=void 0,e.headYaw=void 0,e.health=void 0,e.energy=void 0,e.maxEnergy=void 0,e.damageState=void 0,e.actionAnim=void 0,e.actionAtEnd=void 0,e.explosionDataBlockId=void 0,e.maintainEmitterId=void 0}applyGhostData(e,t){if(!t)return;let n=t,r=n.dataBlockId;if(r!=null){e.dataBlockId=r;let t=this.getDataBlockData(r),i=me(e.className,t);if(e.visual=le(e.className,t)??ue(e.className,t),typeof i==`string`&&(e.shapeHint=i,e.dataBlock=i),e.type===`Player`&&typeof t?.maxEnergy==`number`&&(e.maxEnergy=t.maxEnergy),e.type===`Projectile`&&(ae.has(e.className)?e.projectilePhysics=`linear`:Se.has(e.className)?(e.projectilePhysics=`ballistic`,e.gravityMod=ve(t,[`gravityMod`])??1):re.has(e.className)&&(e.projectilePhysics=`seeker`)),e.type===`Projectile`&&e.explosionDataBlockId==null){let t=this.resolveExplosionInfo(r);t&&(e.explosionShape=t.shape,e.faceViewer=t.faceViewer,e.explosionLifetimeTicks=t.lifetimeTicks,e.explosionDataBlockId=t.explosionDataBlockId)}if(e.type===`Projectile`&&e.maintainEmitterId==null){let n=t?.baseEmitter;typeof n==`number`&&n>0&&(e.maintainEmitterId=n)}if(e.className===`WheeledVehicle`&&typeof t?.maxSteeringAngle==`number`&&(e.maxSteeringAngle=t.maxSteeringAngle),e.className===`ForceFieldBare`&&t){let r=t.color1,i=[];for(let e=0;e<5;e++){let n=t[`texture${e}`];n&&i.push(n)}let a=n.scale;e.forceFieldData={textures:i,color:r?[r.r,r.g,r.b]:[1,1,1],baseTranslucency:t.baseTranslucency??1,dimensions:a?[a.y,a.z,a.x]:[1,1,1],framesPerSec:t.framesPerSec??1,scrollSpeed:t.scrollSpeed??0,umapping:t.umapping??1,vmapping:t.vmapping??1}}}if(Array.isArray(n.wheels)){let t=n.wheels;if(!e.wheels||e.wheels.length!==t.length)e.wheels=t.map(e=>({speed:e.avel,lateralSlip:e.Dx,longitudinalSlip:e.Dy}));else for(let n=0;n0){let n=t.find(e=>e.index===0);if(n?.dataBlockId&&n.dataBlockId>0){let t=this.getDataBlockData(n.dataBlockId),r=me(`ShapeBaseImageData`,t);if(r){let n=t?.mountPoint;(n==null||n<=0)&&!/pack_/i.test(r)&&(e.weaponShape=r)}let i=e.weaponImageState;e.weaponImageState={dataBlockId:n.dataBlockId,triggerDown:n.triggerDown??i?.triggerDown??!1,ammo:n.ammo??i?.ammo??!0,loaded:n.loaded??i?.loaded??!0,target:n.target??i?.target??!1,wet:n.wet??i?.wet??!1,fireCount:n.fireCount??i?.fireCount??0},t&&e.weaponImageStatesDbId!==n.dataBlockId&&(e.weaponImageStates=ce(t),e.weaponImageStatesDbId=n.dataBlockId)}else n&&!n.dataBlockId&&(e.weaponShape=void 0,e.weaponImageState=void 0,e.weaponImageStates=void 0);let r=t.find(e=>e.index===2);if(r?.dataBlockId&&r.dataBlockId>0){let t=me(`ShapeBaseImageData`,this.getDataBlockData(r.dataBlockId));t&&(e.packShape=t)}else r&&!r.dataBlockId&&(e.packShape=void 0);let i=t.find(e=>e.index===3);if(i?.dataBlockId&&i.dataBlockId>0){e.carryingFlag=!0;let t=me(`ShapeBaseImageData`,this.getDataBlockData(i.dataBlockId));if(t&&(e.flagShape=t),e.targetId!=null&&e.targetId>=0){let t=this.targetRenderFlags.get(e.targetId)??0,n=t|2;n!==t&&(this.targetRenderFlags.set(e.targetId,n),e.targetRenderFlags=n)}}else if(i&&!i.dataBlockId&&(e.carryingFlag=!1,e.flagShape=void 0,e.targetId!=null&&e.targetId>=0)){let t=this.targetRenderFlags.get(e.targetId)??0,n=t&-3;n!==t&&(this.targetRenderFlags.set(e.targetId,n),e.targetRenderFlags=n)}}}let i=pe(n.position)?n.position:pe(n.initialPosition)?n.initialPosition:pe(n.explodePosition)?n.explodePosition:pe(n.endPoint)?n.endPoint:pe(n.transform?.position)?n.transform.position:void 0;i&&(e.position=[i.x,i.y,i.z],this.updateSoundSlotPositions(e));let a=be(n.direction)?n.direction:void 0;if(a&&(e.direction=[a.x,a.y,a.z]),e.type===`Player`&&typeof n.rotationZ==`number`&&(e.rotation=ge(n.rotationZ)),e.type===`Player`&&(typeof n.headX==`number`&&(e.headPitch=n.headX),typeof n.headZ==`number`&&(e.headYaw=n.headZ)),se(n.angPosition)){let t=L(n.angPosition);t&&(e.rotation=t)}else if(se(n.transform?.rotation)){let t=L(n.transform.rotation);t&&(e.rotation=t)}else if(e.type===`Item`&&typeof n.rotation?.angle==`number`){let t=n.rotation;e.rotation=ge((t.zSign??1)*t.angle)}else if(e.type===`Projectile`){let t=n.velocity??n.direction??(pe(n.initialPosition)&&pe(n.endPos)?{x:n.endPos.x-n.initialPosition.x,y:n.endPos.y-n.initialPosition.y,z:n.endPos.z-n.initialPosition.z}:void 0);be(t)&&(t.x!==0||t.y!==0)&&(e.rotation=ge(Math.atan2(t.x,t.y)))}if(be(n.velocity)&&(e.velocity=[n.velocity.x,n.velocity.y,n.velocity.z],e.direction||=[n.velocity.x,n.velocity.y,n.velocity.z]),typeof n.moveFlag0==`boolean`&&(e.falling=n.moveFlag0),typeof n.moveFlag1==`boolean`&&(e.jetting=n.moveFlag1),e.type===`Item`){let t=n.atRest;if(t===!1&&be(n.velocity)){let t=n.velocity;e.itemPhysics={velocity:[t.x,t.y,t.z],atRest:!1},jn.debug(`Item %s (%s): atRest=false pos=%s vel=%s`,e.id,e.shapeHint??e.dataBlock??`db#${e.dataBlockId}`,n.position?`${n.position.x.toFixed(1)},${n.position.y.toFixed(1)},${n.position.z.toFixed(1)}`:`none`,`${t.x.toFixed(1)},${t.y.toFixed(1)},${t.z.toFixed(1)}`)}else t===!0&&(jn.debug(`Item %s (%s): atRest=true pos=%s`,e.id,e.shapeHint??e.dataBlock??`db#${e.dataBlockId}`,e.position?`${e.position[0].toFixed(1)},${e.position[1].toFixed(1)},${e.position[2].toFixed(1)}`:`none`),e.itemPhysics=void 0)}if(e.projectilePhysics){if(e.projectilePhysics===`linear`){let t=ve(e.dataBlockId==null?void 0:this.getDataBlockData(e.dataBlockId),[`dryVelocity`,`muzzleVelocity`,`bulletVelocity`])??80,r=e.direction??[0,1,0],i=r[0]*t,a=r[1]*t,o=r[2]*t,s=n.excessVel,c=n.excessDir;typeof s==`number`&&s>0&&be(c)&&(i+=c.x*s,a+=c.y*s,o+=c.z*s),e.simulatedVelocity=[i,a,o]}else be(n.velocity)&&(e.simulatedVelocity=[n.velocity.x,n.velocity.y,n.velocity.z]);let t=n.currTick;if(typeof t==`number`&&t>0&&e.simulatedVelocity&&e.position){let n=32/1e3*t,r=e.simulatedVelocity;if(e.position[0]+=r[0]*n,e.position[1]+=r[1]*n,e.position[2]+=r[2]*n,e.projectilePhysics===`ballistic`){let t=-9.81*(e.gravityMod??1);e.position[2]+=.5*t*n*n,r[2]+=t*n}}}let o=pe(n.explodePosition)?n.explodePosition:pe(n.explodePoint)?n.explodePoint:void 0;if(e.type===`Projectile`&&!e.hasExploded&&o&&e.explosionDataBlockId!=null&&this.spawnExplosion(e,[o.x,o.y,o.z]),typeof n.damageLevel==`number`&&(e.health=_e(1-n.damageLevel,0,1)),typeof n.damageState==`number`&&(e.damageState=n.damageState),typeof n.action==`number`&&(e.actionAnim=n.action,e.actionAtEnd=!!n.actionAtEnd),Array.isArray(n.threads)){let t=n.threads;if(e.threads){let n=[...e.threads];for(let e of t){let t=n.findIndex(t=>t.index===e.index);t>=0?n[t]=e:n.push(e)}e.threads=n}else e.threads=t}if(typeof n.energy==`number`&&(e.energy=_e(n.energy,0,1)),typeof n.targetId==`number`){e.targetId=n.targetId;let t=this.targetNames.get(n.targetId);t&&(e.playerName=t);let r=this.targetTeams.get(n.targetId);r!=null&&(e.sensorGroup=r,e.ghostIndex===this.latestControl.ghostIndex&&this.lastControlType===`player`&&(this.playerSensorGroup=r));let i=this.targetRenderFlags.get(n.targetId);i!=null&&(e.targetRenderFlags=i)}let s=n.sounds;Array.isArray(s)&&this.syncSoundSlotEntities(e,s),e.className===`WayPoint`&&typeof n.name==`string`&&(e.label=n.name),e.className===`AudioEmitter`&&(typeof n.filename==`string`&&(e.audioFileName=n.filename),typeof n.volume==`number`&&(e.audioVolume=n.volume),typeof n.is3D==`boolean`&&(e.audioIs3D=n.is3D),typeof n.isLooping==`boolean`&&(e.audioIsLooping=n.isLooping),typeof n.minDistance==`number`&&(e.audioMinDistance=n.minDistance),typeof n.maxDistance==`number`&&(e.audioMaxDistance=n.maxDistance),typeof n.minLoopGap==`number`&&(e.audioMinLoopGap=n.minLoopGap),typeof n.maxLoopGap==`number`&&(e.audioMaxLoopGap=n.maxLoopGap))}syncSoundSlotEntities(e,t){for(let n of t){let t=`${e.id}:sound:${n.index}`;if(n.playing&&typeof n.profileId==`number`){let r=this.getDataBlockData(n.profileId),i=r?.filename;if(!i)continue;let a=i.endsWith(`.wav`)?i:`${i}.wav`,o=r.description,s=o==null?void 0:this.getDataBlockData(o),c=this.entities.get(t);c?c.position=e.position:this.entities.set(t,{id:t,ghostIndex:e.ghostIndex,className:`AudioEmitter`,type:`AudioEmitter`,spawnTick:this.tickCount,position:e.position,rotation:[0,0,0,1],audioFileName:a,audioVolume:s?.volume??1,audioIs3D:s?.is3D??!0,audioIsLooping:s?.isLooping??!1,audioMinDistance:s?.referenceDistance??20,audioMaxDistance:s?.maxDistance??100,audioMinLoopGap:s?.minLoopGap??0,audioMaxLoopGap:s?.maxLoopGap??0})}else this.entities.delete(t)}}updateSoundSlotPositions(e){for(let t=0;t<4;t++){let n=this.entities.get(`${e.id}:sound:${t}`);n&&(n.position=e.position)}}removeSoundSlotEntities(e){for(let t=0;t<4;t++)this.entities.delete(`${e}:sound:${t}`)}resolveExplosionInfo(e){let t=this.getDataBlockData(e);if(!t)return;let n=t.explosion;if(n==null)return;let r=this.getDataBlockData(n);if(!r)return;let i=r.dtsFileName||void 0,a=r.lifetimeMS??31;return{shape:i,faceViewer:r.faceViewer!==!1&&r.faceViewer!==0,lifetimeTicks:a,explosionDataBlockId:n}}spawnExplosion(e,t){e.hasExploded=!0;let n=e.explosionLifetimeTicks??31,r=`fx_${this.nextExplosionId++}`,i={id:r,ghostIndex:-1,className:`Explosion`,spawnTick:this.tickCount,type:`Explosion`,dataBlock:e.explosionShape,explosionDataBlockId:e.explosionDataBlockId,position:t,rotation:[0,0,0,1],isExplosion:!0,faceViewer:e.faceViewer!==!1,expiryTick:this.tickCount+n};if(this.entities.set(r,i),e.explosionDataBlockId!=null){let n=this.getDataBlockData(e.explosionDataBlockId)?.subExplosions;if(Array.isArray(n))for(let e of n){if(e==null)continue;let n=this.getDataBlockData(e);if(!n)continue;let r=n.dtsFileName||void 0,i=n.lifetimeMS??31,a=n.offset??0,o=Math.random()*Math.PI*2,s=[t[0]+Math.cos(o)*a,t[1]+Math.sin(o)*a,t[2]],c=`fx_${this.nextExplosionId++}`,l={id:c,ghostIndex:-1,className:`Explosion`,spawnTick:this.tickCount,type:`Explosion`,dataBlock:r,explosionDataBlockId:e,position:s,rotation:[0,0,0,1],isExplosion:!0,faceViewer:n.faceViewer!==!1&&n.faceViewer!==0,expiryTick:this.tickCount+i};this.entities.set(c,l)}}e.position=void 0,e.simulatedVelocity=void 0}advanceProjectiles(){let e=32/1e3;for(let t of this.entities.values()){if(!t.simulatedVelocity||!t.position)continue;let n=t.simulatedVelocity,r=t.position;t.projectilePhysics===`ballistic`&&(n[2]+=-9.81*(t.gravityMod??1)*e),r[0]+=n[0]*e,r[1]+=n[1]*e,r[2]+=n[2]*e,(n[0]!==0||n[1]!==0)&&(t.rotation=ge(Math.atan2(n[0],n[1])))}}advanceItems(){let e=32/1e3;for(let t of this.entities.values()){let n=t.itemPhysics;if(!n||n.atRest||!t.position)continue;let r=n.velocity,i=t.position;r[2]+=-20*e,i[0]+=r[0]*e,i[1]+=r[1]*e,i[2]+=r[2]*e;let a=kn(i[0],i[1]);if(a!=null&&i[2]0){let e=Math.max(0,1-t/o);r[0]*=e,r[1]*=e}r[2]=e*.2,Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2])<.15&&(r[0]=r[1]=r[2]=0,n.atRest=!0)}i[2]<-1e3&&(n.atRest=!0)}}removeExpiredExplosions(){for(let[e,t]of this.entities)t.isExplosion&&t.expiryTick!=null&&this.tickCount>=t.expiryTick&&this.entities.delete(e)}updateCameraAndHud(){let e=this.latestControl,t=this.getTimeSec(),n=e.data,r=this.lastControlType;if(this.removeExpiredExplosions(),e.position){let{yaw:i,pitch:a}=this.getCameraYawPitch(n);if(this.isPiloting){if(n){let e=n.controlObjectData?.angPosition;if(e&&typeof e.w==`number`){this.lastVehicleHeading=xe(e),this.lastVehiclePitch=we(e);let t=L(e);if(t){let[e,n,r,i]=t,a=1-2*(n*n+r*r),o=2*(e*n+r*i),s=2*(e*r-n*i);this.lastVehicleOrbitDir=[-a,-o,-s]}}}i=this.lastVehicleHeading,a=this.lastVehiclePitch}if(this.camera={time:t,position:[e.position.x,e.position.y,e.position.z],rotation:Ce(i,_e(a,-ye,ye)),fov:this.latestFov,mode:`observer`,yaw:i,pitch:a},r===`camera`)if((typeof n?.cameraMode==`number`?n.cameraMode:this.lastCameraMode)===3){this.camera.mode=`third-person`,typeof this.lastOrbitDistance==`number`&&(this.camera.orbitDistance=this.lastOrbitDistance);let e=typeof n?.orbitObjectGhostIndex==`number`?n.orbitObjectGhostIndex:this.lastOrbitGhostIndex;typeof e==`number`&&e>=0&&(this.camera.orbitTargetId=this.resolveEntityIdForGhostIndex(e))}else this.camera.mode=`observer`;else e.ghostIndex>=0&&(this.controlPlayerGhostId=this.resolveEntityIdForGhostIndex(e.ghostIndex)),this.firstPerson?this.camera.mode=`first-person`:(this.camera.mode=`third-person`,this.isPiloting&&this.lastPilotGhostIndex!=null?(this.camera.orbitTargetId=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex),this.camera.orbitDistance=15,this.lastVehicleOrbitDir&&(this.camera.orbitDirection=this.lastVehicleOrbitDir)):(this.camera.orbitTargetId=this.controlPlayerGhostId,this.camera.orbitDistance=3)),this.controlPlayerGhostId&&(this.camera.controlEntityId=this.controlPlayerGhostId);if(r===`player`&&e.position){if(this.isPiloting&&this.lastPilotGhostIndex!=null){let r=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex),i=r?this.entities.get(r):void 0;if(i){let r=n?.controlObjectData;if(r){i.position=[e.position.x,e.position.y,e.position.z],this.lastVehiclePos=i.position.slice(),this.lastVehiclePosTime=t;let n=r.linMomentum;if(n&&pe(n)){let e=i.dataBlockId,t=(e==null?void 0:this.getDataBlockData(e))?.mass??200,r=t>0?1/t:1/200;this.lastVehicleVelocity=[n.x*r,n.y*r,n.z*r],i.velocity=this.lastVehicleVelocity}let a=r.angPosition;if(a&&typeof a.w==`number`){let e=L(a);e&&(i.rotation=e)}}else if(this.lastVehiclePos&&this.lastVehicleVelocity&&this.lastVehiclePosTime>0){let e=t-this.lastVehiclePosTime;if(e>0&&e<1){let[t,n,r]=this.lastVehicleVelocity;i.position=[this.lastVehiclePos[0]+t*e,this.lastVehiclePos[1]+n*e,this.lastVehiclePos[2]+r*e]}}}}else if(this.controlPlayerGhostId){let t=this.entities.get(this.controlPlayerGhostId);if(t){t.position=[e.position.x,e.position.y,e.position.z],t.rotation=ge(i),t.headPitch=this.getControlPlayerHeadPitch(a);let r=n?.velocity;be(r)&&(t.velocity=[r.x,r.y,r.z])}}}}else this.camera&&={...this.camera,time:t,fov:this.latestFov};let i={health:1,energy:1};if(this.camera?.mode===`first-person`){let e=this.controlPlayerGhostId,t=e?this.entities.get(e):void 0;i.health=t?.health??1;let r=n?.energyLevel;if(typeof r==`number`){let e=t?.maxEnergy??60;e>0&&(i.energy=_e(r/e,0,1))}else i.energy=t?.energy??1}else if(this.camera?.mode===`third-person`&&this.camera.orbitTargetId){let e=this.entities.get(this.camera.orbitTargetId);i.health=e?.health??1,i.energy=e?.energy??1}this.lastStatus=i}getControlPlayerHeadPitch(e){return _e(e/ye,-1,1)}getAbsoluteRotation(e){return e?typeof e.rotationZ==`number`&&typeof e.headX==`number`?{yaw:e.rotationZ,pitch:e.headX}:typeof e.rotZ==`number`&&typeof e.rotX==`number`?{yaw:e.rotZ,pitch:e.rotX}:null:null}resolveIffColor(e){if(this.playerSensorGroup===0)return;let t=this.sensorGroupColors.get(this.playerSensorGroup);if(t){let n=t.get(e);if(n)return n}if(e===this.playerSensorGroup)return ie;if(e!==0)return P}pushChatMessage(e){this.chatMessages.push({...e,id:++this.chatMessageIdCounter}),this.chatMessages.length>200&&this.chatMessages.splice(0,this.chatMessages.length-200),this._chatGen++}handleServerMessage(e){if(e.length<2)return;let t=this.resolveNetString(e[0]);if((t===`MsgTeamScoreIs`||t===`MsgTeamScore`)&&e.length>=4){let t=parseInt(this.resolveNetString(e[2]),10),n=parseInt(this.resolveNetString(e[3]),10);if(!isNaN(t)&&!isNaN(n)){let e=this.teamScores.find(e=>e.teamId===t);e&&(e.score=n,this.onTeamScoresChanged())}}else if(t===`MsgCTFAddTeam`&&e.length>=6){let t=parseInt(this.resolveNetString(e[2]),10),n=I(this.resolveNetString(e[3])),r=parseInt(this.resolveNetString(e[5]),10);if(!isNaN(t)&&t>0){let e=this.teamScores.find(e=>e.teamId===t);e?(e.name=n,e.score=isNaN(r)?e.score:r):this.teamScores.push({teamId:t,name:n,score:isNaN(r)?0:r,playerCount:0}),this.onTeamScoresChanged()}}else if(t===`MsgClientJoin`&&e.length>=4){let t=I(this.resolveNetString(e[2])).trim(),n=parseInt(this.resolveNetString(e[3]),10);isNaN(n)||(this.playerRoster.set(n,{name:t,teamId:0,score:0,ping:0,packetLoss:0}),this.onRosterChanged()),!this.connectedPlayerName&&t&&I(this.resolveNetString(e[1])).includes(`Welcome to Tribes`)&&(this.connectedPlayerName=t,this.connectedClientId=n,this.onMissionInfoChange?.())}else if(t===`MsgClientDrop`&&e.length>=4){let t=parseInt(this.resolveNetString(e[3]),10);isNaN(t)||(this.playerRoster.delete(t),this.onRosterChanged())}else if(t===`MsgClientJoinTeam`&&e.length>=6){let t=parseInt(this.resolveNetString(e[4]),10),n=parseInt(this.resolveNetString(e[5]),10);if(!isNaN(t)&&!isNaN(n)){let e=this.playerRoster.get(t);e?e.teamId=n:this.playerRoster.set(t,{name:``,teamId:n,score:0,ping:0,packetLoss:0}),this.onRosterChanged()}}else if(t===`MsgPlayerScore`&&e.length>=5){let t=parseInt(this.resolveNetString(e[2]),10);if(!isNaN(t)){let n=this.playerRoster.get(t);if(n){let t=parseInt(this.resolveNetString(e[3]),10),r=parseInt(this.resolveNetString(e[4]),10),i=parseInt(this.resolveNetString(e[5]??``),10);isNaN(t)||(n.score=t),isNaN(r)||(n.ping=r),isNaN(i)||(n.packetLoss=i),this.onRosterChanged()}}}else if(t===`MsgSystemClock`&&e.length>=4){let t=parseFloat(this.resolveNetString(e[3]));this.clockAnchorStreamSec=this.getTimeSec(),this.clockDurationMs=Number.isFinite(t)?t:0}else if(t===`MsgMissionDropInfo`&&e.length>=5){let t=I(this.resolveNetString(e[2])),n=I(this.resolveNetString(e[3])),r=I(this.resolveNetString(e[4]));jn.info(`mission drop info: mission=%s gameType=%s server=%s`,t,n,r),this.missionDisplayName=t||this.missionDisplayName,this.missionTypeDisplayName=n||this.missionTypeDisplayName,this.serverDisplayName=r||this.serverDisplayName,this.onMissionInfoChange?.()}else if(t===`MsgLoadInfo`&&e.length>=5){let t=I(this.resolveNetString(e[3])),n=I(this.resolveNetString(e[4]));jn.info(`load info: mission=%s gameType=%s`,t,n),this.missionDisplayName=t||this.missionDisplayName,this.missionTypeDisplayName=n||this.missionTypeDisplayName,this.onMissionInfoChange?.()}else if(t===`MsgClientReady`&&e.length>=3){let t=this.resolveNetString(e[2]);jn.info(`client ready: gameClass=%s`,t),this.gameClassName=t||this.gameClassName,this.onMissionInfoChange?.()}}onTeamScoresChanged(){}onRosterChanged(){}handleHudRemoteCommand(e,t){if(e===`setWeaponsHudItem`&&t.length>=3){let e=parseInt(t[0],10),n=parseInt(t[1],10),r=t[2]===`1`||t[2]===`true`;isNaN(e)||(r?this.weaponsHud.slots.set(e,isNaN(n)?-1:n):this.weaponsHud.slots.delete(e),this.onWeaponsHudChanged())}else if(e===`setWeaponsHudAmmo`&&t.length>=2){let e=parseInt(t[0],10),n=parseInt(t[1],10);isNaN(e)||(this.weaponsHud.slots.set(e,isNaN(n)?-1:n),this.onWeaponsHudChanged())}else if(e===`setWeaponsHudActive`&&t.length>=1){let e=parseInt(t[0],10);this.weaponsHud.activeIndex=isNaN(e)?-1:e,!isNaN(e)&&e>=0&&!this.weaponsHud.slots.has(e)&&this.weaponsHud.slots.set(e,-1),this.onWeaponsHudChanged()}else if(e===`setWeaponsHudClearAll`)this.weaponsHud.slots.clear(),this.weaponsHud.activeIndex=-1,this.onWeaponsHudChanged();else if(e===`setBackpackHudItem`&&t.length>=2){let e=parseInt(t[0],10);(t[1]===`1`||t[1]===`true`)&&!isNaN(e)?(this.backpackHud.packIndex=e,this.backpackHud.active=!1,this.backpackHud.text=``):(this.backpackHud.packIndex=-1,this.backpackHud.active=!1,this.backpackHud.text=``)}else if(e===`setSatchelArmed`)this.backpackHud.active=!0;else if(e===`setCloakIconOn`||e===`setRepairPackIconOn`||e===`setShieldIconOn`||e===`setSenJamIconOn`)this.backpackHud.active=!0;else if(e===`setCloakIconOff`||e===`setRepairPackIconOff`||e===`setShieldIconOff`||e===`setSenJamIconOff`)this.backpackHud.active=!1;else if(e===`updatePackText`&&t.length>=1)this.backpackHud.text=t[0]??``;else if(e===`setInventoryHudItem`&&t.length>=3){let e=parseInt(t[0],10),n=parseInt(t[1],10),r=t[2]===`1`||t[2]===`true`;isNaN(e)||(r&&!isNaN(n)?this.inventoryHud.slots.set(e,n):this.inventoryHud.slots.delete(e),this.onInventoryHudChanged())}else if(e===`setInventoryHudAmount`&&t.length>=2){let e=parseInt(t[0],10),n=parseInt(t[1],10);!isNaN(e)&&!isNaN(n)&&(this.inventoryHud.slots.set(e,n),this.onInventoryHudChanged())}else e===`setInventoryHudClearAll`&&(this.inventoryHud.slots.clear(),this.inventoryHud.activeSlot=-1,this.onInventoryHudChanged())}onWeaponsHudChanged(){}onInventoryHudChanged(){}buildEntityList(e){let t=[];for(let n of this.entities.values()){if(e&&!e(n))continue;let r=n.targetId!=null&&n.targetId>=0?this.targetRenderFlags.get(n.targetId)??n.targetRenderFlags:n.targetRenderFlags;n.type===`Player`&&!n.carryingFlag&&(r=r==null?r:r&-3),t.push({id:n.id,type:n.type,visual:n.visual,direction:n.direction,ghostIndex:n.ghostIndex,className:n.className,dataBlockId:n.dataBlockId,shapeHint:n.shapeHint,dataBlock:n.dataBlock,weaponShape:n.weaponShape,packShape:n.packShape,flagShape:n.flagShape,falling:n.falling,jetting:n.jetting,playerName:n.playerName,targetRenderFlags:r,iffColor:(n.type===`Player`||(r??0)&2)&&n.sensorGroup!=null?this.resolveIffColor(n.sensorGroup):void 0,position:n.position&&(n.simulatedVelocity||n.itemPhysics&&!n.itemPhysics.atRest)?[...n.position]:n.position,rotation:n.rotation,velocity:n.velocity,health:n.health,energy:n.energy,actionAnim:n.actionAnim,actionAtEnd:n.actionAtEnd,damageState:n.damageState,faceViewer:n.faceViewer,threads:n.threads,explosionDataBlockId:n.explosionDataBlockId,maintainEmitterId:n.maintainEmitterId,weaponImageState:n.weaponImageState,weaponImageStates:n.weaponImageStates,headPitch:n.headPitch,headYaw:n.headYaw,label:n.label,audioFileName:n.audioFileName,audioVolume:n.audioVolume,audioIs3D:n.audioIs3D,audioIsLooping:n.audioIsLooping,audioMinDistance:n.audioMinDistance,audioMaxDistance:n.audioMaxDistance,audioMinLoopGap:n.audioMinLoopGap,audioMaxLoopGap:n.audioMaxLoopGap,wheels:n.wheels,steeringYaw:n.steeringYaw,frozen:n.frozen,maxSteeringAngle:n.maxSteeringAngle,sceneData:n.sceneData,forceFieldData:n.forceFieldData})}return t}computeMatchClockMs(e){if(this.clockAnchorStreamSec==null)return null;let t=(e-this.clockAnchorStreamSec)*1e3;return-this.clockDurationMs+t}buildHudState(){let e={slots:Array.from(this.weaponsHud.slots.entries()).map(([e,t])=>({index:e,ammo:t})),activeIndex:this.weaponsHud.activeIndex},t={slots:Array.from(this.inventoryHud.slots.entries()).map(([e,t])=>({slot:e,count:t})),activeSlot:this.inventoryHud.activeSlot},n=this.backpackHud.packIndex>=0?{...this.backpackHud}:null,r=this.teamScores.map(e=>({...e})),i=new Map;for(let{teamId:e}of this.playerRoster.values())e>0&&i.set(e,(i.get(e)??0)+1);for(let e of r)e.playerCount=i.get(e.teamId)??0;let a=[];for(let[e,t]of this.playerRoster)a.push({clientId:e,...t});return{weaponsHud:e,inventoryHud:t,backpackHud:n,teamScores:r,playerRoster:a}}buildTimeFilteredEvents(e){return this._chatSnapshotGen!==this._chatGen&&(this._chatSnapshot=this.chatMessages.slice(),this._chatSnapshotGen=this._chatGen),{chatMessages:this._chatSnapshot,audioEvents:this.audioEvents.filter(t=>t.timeSec>e-.5&&t.timeSec<=e)}}},Nn=A(`liveStreaming`),Pn=class extends Mn{packetParser;relay;currentTimeSec=0;connectSynced=!1;_snapshot=null;_snapshotTick=-1;_ready=!1;_teamScoresGen=0;_rosterGen=0;_weaponsHudGen=0;_inventoryHudGen=0;_cachedHud=null;dataBlockClassNames=new Map;onReady;onMissionChange;missionName=null;lastMoveAck=0;constructor(e){super(),this.relay=e;let{registry:t,ghostTracker:n,packetParser:r}=fe();this.packetParser=r,this.ghostTracker=n,this.registry=t}getDataBlockData(e){return this.packetParser.getDataBlockDataMap()?.get(e)}_shapeConstructorCache=null;getShapeConstructorSequences(e){this._shapeConstructorCache=new Map;let t=this.packetParser.getDataBlockDataMap();if(t){for(let[,e]of t){let t=e.shape,n=e.sequences;t&&n&&this._shapeConstructorCache.set(t.toLowerCase(),n)}return this._shapeConstructorCache.get(e.toLowerCase())}}getTimeSec(){return this.currentTimeSec}getCameraYawPitch(e){return this.getAbsoluteRotation(e)??{yaw:0,pitch:0}}getEffectShapes(){let e=new Set,t=this.packetParser.getDataBlockDataMap();if(!t)return[];for(let[,n]of t){let r=n.explosion;if(r==null)continue;let i=t.get(r);i?.dtsFileName&&e.add(i.dtsFileName)}return[...e]}onTeamScoresChanged(){this._teamScoresGen++}onRosterChanged(){this._rosterGen++}onWeaponsHudChanged(){this._weaponsHudGen++}onInventoryHudChanged(){this._inventoryHudGen++}reset(){this.resetSharedState(),this.ghostTracker.clear?.(),this.currentTimeSec=0,this._snapshot=null,this._snapshotTick=-1,this._cachedHud=null,this.dataBlockClassNames.clear(),this.observerMode=`fly`,this.missionName=null}getSnapshot(){return this._snapshot&&this._snapshotTick===this.tickCount?this._snapshot:this.buildSnapshot()}stepToTime(e,t){return this.currentTimeSec=e,this.getSnapshot()}syncConnectSequence(e){if(this.connectSynced||e.length<1)return;this.connectSynced=!0;let t=e[0]>>1&1;this.packetParser.setConnectionProtocolState({lastSeqRecvdAtSend:Array(32).fill(0),lastSeqRecvd:0,highestAckedSeq:0,lastSendSeq:536870911,ackMask:0,connectSequence:t,lastRecvAckAck:0,connectionEstablished:!0})}feedPacket(e){this.syncConnectSequence(e),this.processPacket(e)}handleRelayCommands(e){if(e.type!==`RemoteCommandEvent`)return;let t=e.funcName;if(!t)return;let n=this.resolveNetString(t);if([`t2csri_pokeClient`,`t2csri_getChallengeChunk`,`t2csri_decryptChallenge`].includes(n)){let t=(e.args??[]).map(e=>this.resolveNetString(e)).filter(e=>e!==``);Nn.info(`auth event: %s %o`,n,t),this.relay.sendAuthEvent(n,t);return}let r=(e.args??[]).map(e=>this.resolveNetString(e));if(n===`MissionStartPhase1`){let e=r[0]??``,t=r[1]??null;Nn.info(`mission phase 1, seq=%s mission=%s resolvedArgs=%o`,e,t,r),t&&t!==this.missionName&&(this.missionName=t,this.entities.clear(),this.entityIdByGhostIndex.clear(),this._ready=!1,this._snapshot=null,this._snapshotTick=-1,this._cachedHud=null,this.observerMode=`fly`,this.lastMoveAck=0,this.missionDisplayName=null,this.missionTypeDisplayName=null,this.gameClassName=null,this.serverDisplayName=null,this.onMissionChange?.(t)),this.relay.sendCommand(`MissionStartPhase1Done`,[e])}else if(n===`MissionStartPhase2`){let e=r[0]??``;Nn.info(`mission phase 2 (datablocks), seq=%s`,e),this.relay.sendCommand(`MissionStartPhase2Done`,[e])}else if(n===`MissionStartPhase3`){let e=r[0]??``,t=r[1]??null;Nn.info(`mission phase 3 (ghosting), seq=%s mission=%s`,e,t),t&&(this.missionName=t),this.relay.sendCommand(`setClientFav`,[``]),this.relay.sendCommand(`MissionStartPhase3Done`,[e])}}handleCRCChallenge(e){if(e.type!==`CRCChallengeEvent`)return;let t=e.crcValue,n=e.field1,r=e.field2,i=(n&1)!=0;Nn.info(`CRC challenge: seed=0x%s f1=0x%s f2=0x%s includeTextures=%s`,(t>>>0).toString(16),(n>>>0).toString(16),(r>>>0).toString(16),i);let a=this.packetParser.getDataBlockDataMap(),o=[];if(a)for(let[e,t]of a){let n=this.dataBlockClassNames.get(e);if(!n)continue;let r=me(n,t);o.push({objectId:e,className:n,shapeName:r??``})}Nn.info(`CRC: sending %d datablocks for computation`,o.length),this.relay.sendCRCCompute(t,r,o,i)}handleGhostingMessage(e){if(e.type!==`GhostingMessageEvent`)return;let t=e.message,n=e.sequence,r=e.ghostCount;Nn.info(`GhostingMessageEvent: message=%d sequence=%d ghostCount=%d`,t,n,r),t===0&&(Nn.info(`Sending ghost ack (type 1) for sequence %d`,n),this.relay.sendGhostAck(n,r))}observerMode=`fly`;requestScores(){this.relay.sendCommand(`getScores`,[])}getPlayerList(){let e=[];for(let[t,n]of this.targetNames){let r=this.targetTeams.get(t)??0;e.push({targetId:t,name:n,sensorGroup:r})}return e}processPacket(e){try{let t=this.packetParser.protocolRejected,n=this.packetParser.protocolNoDispatch,r=this.packetParser.parsePacket(e),i=this.packetParser.protocolRejected>t,a=this.packetParser.protocolNoDispatch>n;(i||a)&&Nn.warn(`packet #%d %s: %d bytes (total rejected=%d, noDispatch=%d)`,this.tickCount,i?`REJECTED`:`no-dispatch`,e.length,this.packetParser.protocolRejected,this.packetParser.protocolNoDispatch);let o=this.tickCount<20,s=this.tickCount%100==0,c=o||s;c&&Nn.debug(`packet #%d: %d events, %d ghosts, %d bytes%s%s`,this.tickCount,r.events.length,r.ghosts.length,e.length,r.gameState.controlObjectGhostIndex===void 0?``:`, control=${r.gameState.controlObjectGhostIndex}`,r.gameState.cameraFov===void 0?``:`, fov=${r.gameState.cameraFov}`),this.lastMoveAck=r.gameState.lastMoveAck,this.processControlObject(r.gameState);for(let e of r.events)if(e.parsedData){this.handleRelayCommands(e.parsedData),this.handleCRCChallenge(e.parsedData),this.handleGhostingMessage(e.parsedData);let t=e.parsedData.type;if(t===`RemoteCommandEvent`){let t=this.resolveNetString(e.parsedData.funcName??``);Nn.debug(`remote: %s`,t)}if(o&&t!==`NetStringEvent`&&t!==`RemoteCommandEvent`&&Nn.debug(`event: %s%s`,t,t===`SimDataBlockEvent`?` id=${e.parsedData.objectId} class=${e.parsedData.dataBlockClassName}`:``),t===`SimDataBlockEvent`){let t=e.parsedData.objectId,n=e.parsedData.dataBlockClassName;if(t!=null&&n&&this.dataBlockClassNames.set(t,n),c){let r=e.parsedData.dataBlockData,i=me(n??``,r);Nn.debug(`datablock: id=%d class=%s%s`,t,n??`?`,i?` shape=${i}`:``)}}let n=this.registry.getEventParser(e.classId)?.name;if(this.processEvent(e,n),o&&t===`NetStringEvent`){let t=e.parsedData.id,n=e.parsedData.value;t!=null&&typeof n==`string`&&Nn.trace(`netString #%d = "%s"`,t,n.length>60?n.slice(0,60)+`…`:n)}if(t===`TargetInfoEvent`){let t=e.parsedData.targetId,n=e.parsedData.nameTag;if(t!=null&&n!=null){let r=this.netStrings.get(n);if(r){let n=I(r);Nn.info(`target #%d: "%s" team=%s`,t,n,e.parsedData.sensorGroup??`?`)}}}if(t===`SetSensorGroupEvent`){let t=e.parsedData.sensorGroup;t!=null&&Nn.info(`sensor group changed: → %d`,t)}if(t===`SensorGroupColorEvent`){let t=e.parsedData.sensorGroup,n=e.parsedData.colors;n&&Nn.debug(`sensor group colors: group=%d, %d entries`,t,n.length)}}for(let e of r.ghosts){if(e.type===`create`){let t=e.parsedData?.position,n=t&&typeof t.x==`number`&&typeof t.y==`number`&&typeof t.z==`number`,r=this.resolveGhostClassName(e.index,e.classId);Nn.debug(`ghost create: #%d %s%s (%d entities total)`,e.index,r??`?`,n?` at (${t.x.toFixed(1)}, ${t.y.toFixed(1)}, ${t.z.toFixed(1)})`:``,this.entities.size+1),this._ready||(this._ready=!0,this.onReady?.())}else if(e.type===`delete`){let t=this.entityIdByGhostIndex.get(e.index),n=t?this.entities.get(t):void 0;(this.tickCount<50||this.tickCount%200==0)&&Nn.debug(`ghost delete: #%d %s (%d entities remaining)`,e.index,n?.className??`?`,this.entities.size-1)}this.processGhostUpdate(e)}if(this.tickCount++,this.advanceProjectiles(),this.advanceItems(),s&&this.tickCount>1){let e=this.packetParser.getDataBlockDataMap();Nn.info(`status @ tick %d: %d entities, %d datablocks, rejected=%d, noDispatch=%d`,this.tickCount,this.entities.size,e?.size??0,this.packetParser.protocolRejected,this.packetParser.protocolNoDispatch)}let l=this.entities.size;if(this.tickCount===1||l>0&&l%25==0&&this.tickCount<100){let e=new Map;for(let t of this.entities.values())e.set(t.type,(e.get(t.type)??0)+1);let t=[...e.entries()].map(([e,t])=>`${e}=${t}`).join(` `);Nn.info(`entity count: %d (%s)`,l,t)}let u=this.camera?.mode;if(this.updateCameraAndHud(),this.camera&&this.camera.mode!==u&&Nn.info(`camera mode: %s → %s%s`,u??`none`,this.camera.mode,this.camera.mode===`third-person`?` orbit=${this.camera.orbitTargetId??`?`} dist=${this.camera.orbitDistance??`?`}`:``),this.tickCount<=5&&this.camera){let[e,t,n]=this.camera.position;Nn.debug(`camera: mode=%s pos=(%s, %s, %s) fov=%s`,this.camera.mode,e.toFixed(1),t.toFixed(1),n.toFixed(1),this.camera.fov)}}catch(t){let n={tickCount:this.tickCount,entityCount:this.entities.size,dataLength:e.length,controlGhost:this.latestControl.ghostIndex,connectSynced:this.connectSynced};Nn.error(`Failed to process live packet: %o %o`,t,n)}}buildSnapshot(){let e=this.buildEntityList(),t=this.currentTimeSec,{chatMessages:n,audioEvents:r}=this.buildTimeFilteredEvents(t),i=this._cachedHud,a,o,s,c,l;i&&i.weaponsHudGen===this._weaponsHudGen&&i.inventoryHudGen===this._inventoryHudGen&&i.teamScoresGen===this._teamScoresGen&&i.rosterGen===this._rosterGen&&i.backpackPackIndex===this.backpackHud.packIndex&&i.backpackActive===this.backpackHud.active?(a=i.weaponsHud,o=i.inventoryHud,s=i.backpackHud,c=i.teamScores,l=i.playerRoster):({weaponsHud:a,inventoryHud:o,backpackHud:s,teamScores:c,playerRoster:l}=this.buildHudState(),this._cachedHud={weaponsHudGen:this._weaponsHudGen,inventoryHudGen:this._inventoryHudGen,teamScoresGen:this._teamScoresGen,rosterGen:this._rosterGen,backpackPackIndex:this.backpackHud.packIndex,backpackActive:this.backpackHud.active,weaponsHud:a,inventoryHud:o,backpackHud:s,teamScores:c,playerRoster:l}),this.camera||={time:t,position:[0,0,200],rotation:[0,0,0,1],fov:90,mode:`observer`};let u={timeSec:t,exhausted:!1,camera:this.camera,entities:e,controlPlayerGhostId:this.controlPlayerGhostId,playerSensorGroup:this.playerSensorGroup,status:this.lastStatus,chatMessages:n,audioEvents:r,weaponsHud:a,backpackHud:s,inventoryHud:o,teamScores:c,playerRoster:l,connectedClientId:this.connectedClientId,matchClockMs:this.computeMatchClockMs(t)};return this._snapshot=u,this._snapshotTick=this.tickCount,u}},Fn=j()(e=>({missionEntities:new Map,streamEntities:new Map,isStreaming:!1,dataSource:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:0,setEntity(t){e(e=>{let n=new Map(e.missionEntities);return n.set(t.id,t),{missionEntities:n,version:e.version+1}})},deleteEntity(t){e(e=>{if(!e.missionEntities.has(t))return e;let n=new Map(e.missionEntities);return n.delete(t),{missionEntities:n,version:e.version+1}})},setEntities(t){e(e=>{let n=new Map(e.missionEntities);for(let e of t)n.set(e.id,e);return{missionEntities:n,version:e.version+1}})},setAllEntities(t){e(e=>{let n=new Map;for(let e of t)n.set(e.id,e);return{missionEntities:n,dataSource:e.isStreaming?e.dataSource:`map`}})},clearEntities(){e(e=>e.missionEntities.size===0?e:e.isStreaming?{missionEntities:new Map,version:e.version+1}:{missionEntities:new Map,dataSource:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:e.version+1})},setMissionInfo(t){let n={};if(t.missionName!==void 0&&(n.missionName=t.missionName),t.missionType!==void 0&&(n.missionType=t.missionType),t.missionTypeDisplayName!==void 0&&(n.missionTypeDisplayName=t.missionTypeDisplayName),t.missionDisplayName!==void 0&&(n.missionDisplayName=t.missionDisplayName),t.gameClassName!==void 0&&(n.gameClassName=t.gameClassName,t.missionType===void 0))if(t.gameClassName){let e=t.gameClassName.replace(/Game$/i,``);n.missionType=Oe[e.toLowerCase()]??e}else n.missionType=null;t.serverDisplayName!==void 0&&(n.serverDisplayName=t.serverDisplayName),t.recorderName!==void 0&&(n.recorderName=t.recorderName),t.recordingDate!==void 0&&(n.recordingDate=t.recordingDate),e(e=>({...n,version:e.version+1}))},beginStreaming(t){e(e=>({isStreaming:!0,dataSource:t,streamEntities:new Map,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:e.version+1}))},endStreaming(){e(e=>e.isStreaming?{isStreaming:!1,dataSource:e.missionEntities.size>0?`map`:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,streamEntities:new Map,version:e.version+1}:e)},setStreamEntity(t){e(e=>{let n=new Map(e.streamEntities);return n.set(t.id,t),{streamEntities:n,version:e.version+1}})},deleteStreamEntity(t){e(e=>{if(!e.streamEntities.has(t))return e;let n=new Map(e.streamEntities);return n.delete(t),{streamEntities:n,version:e.version+1}})},setStreamEntities(t){e(e=>{let n=new Map(e.streamEntities);for(let e of t)n.set(e.id,e);return{streamEntities:n,version:e.version+1}})},setAllStreamEntities(t){e(e=>{let n=new Map;for(let e of t)n.set(e.id,e);let r=e.streamEntities;return n.size===r.size&&[...n.keys()].every(e=>r.has(e))?e:{streamEntities:n,version:e.version+1}})},clearStreamEntities(){e(e=>e.streamEntities.size===0?e:{streamEntities:new Map,version:e.version+1})}}));function In(e){return e.isStreaming?e.streamEntities:e.missionEntities}function Ln(e){return e.version}function Rn(){return M(Fn,Ln),M(Fn,In)}function zn(){return Rn()}function Bn(e){let t=e.isStreaming?e.streamEntities:e.missionEntities,n=[];for(let e of t.values())e.renderType!==`None`&&n.push(e);return n}function Vn(e,t){if(e.length!==t.length)return!1;for(let n=0;n({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,servers:[],serversLoading:!1,adapter:null,liveReady:!1,_relay:null,_adapter:null,_pending:[],_listInFlight:!1,connectRelay(n=dr){let r=t();r._relay&&r._relay.close();let i=new Cn(n,{onOpen(){e({relayConnected:!0});let n=t();for(let e of n._pending)e();n._pending=[]},onStatus(t,n,r,i){ur.info(`game status: %s%s%s`,t,n?` — ${n}`:``,i?` map=${i}`:``),e({gameStatus:t,gameStatusMessage:n,...i?{mapName:i}:{}})},onServerList(n){t()._listInFlight=!1,e({servers:n,serversLoading:!1})},onGamePacket(e){let n=t()._adapter;n||ur.warn(`received game packet but no adapter is active`),n?.feedPacket(e)},onPing(t){e({relayToGameServerPing:t})},onWsPing(t){e({browserToRelayPing:t})},onError(n){ur.error(`error: %s`,n),t()._listInFlight=!1,e({serversLoading:!1})},onClose(){let n=t();n._relay===i&&(n._relay=null,n._adapter=null,n._pending=[],n._listInFlight=!1,e({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,adapter:null,liveReady:!1}))}});i.connect(),t()._relay=i},disconnectRelay(){let n=t();n._relay?.close(),n._relay=null,n._adapter=null,n._pending=[],n._listInFlight=!1,e({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,adapter:null,liveReady:!1})},listServers(){let n=t();if(n._listInFlight)return;n._listInFlight=!0;let r=()=>{let e=t();e._relay?.sendWsPing(),e._relay?.listServers()};e({serversLoading:!0}),n._relay?.connected?r():(n._pending.push(r),n._relay||t().connectRelay())},joinServer(n,r){let i=t();if(!i._relay)return;let a=i.servers.find(e=>e.address===n),o=new Pn(i._relay);o.onReady=()=>e({liveReady:!0}),o.onMissionChange=t=>{ur.info(`mission changed: %s`,t),e({mapName:t,liveReady:!1}),Fn.getState().setMissionInfo({missionName:t,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null})},o.onMissionInfoChange=()=>{Fn.getState().setMissionInfo({missionDisplayName:o.missionDisplayName??void 0,missionTypeDisplayName:o.missionTypeDisplayName??void 0,gameClassName:o.gameClassName??void 0,serverDisplayName:o.serverDisplayName??void 0,recorderName:o.connectedPlayerName??void 0})},i._adapter=o,e({mapName:a?.mapName??i.mapName,serverName:a?.name,warriorName:r,liveReady:!1,gameStatus:null,adapter:o}),Fn.getState().setMissionInfo({missionName:a?.mapName??void 0,missionTypeDisplayName:a?.gameType??void 0,serverDisplayName:a?.name??void 0,recorderName:r??void 0}),i._relay.joinServer(n,r)},disconnectServer(){t().disconnectRelay()},sendMoves(e,n){t()._relay?.sendMoves(e,n)},sendCommand(e,...n){t()._relay?.sendCommand(e,n)}}));function pr(e,t){return M(fr,e,t)}function mr(e){return e.relayToGameServerPing!=null&&e.browserToRelayPing!=null?e.relayToGameServerPing+e.browserToRelayPing:e.relayToGameServerPing??null}var hr=[.25,.5,1,2,4];function gr(e){let t=(0,z.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,B.jsx)(B.Fragment,{children:n}),t[0]=n,t[1]=r),r}function _r(){return Ae(vr)}function vr(e){return e.playback.recording}function yr(){return Ae(br)}function br(e){return e.playback.status===`playing`}function xr(){return Ae(Sr)}function Sr(e){return e.playback.timeMs/1e3}function Cr(){return Ae(wr)}function wr(e){return e.playback.durationMs/1e3}function Tr(){return Ae(Er)}function Er(e){return e.playback.rate}function Dr(){let e=(0,z.c)(17),t=_r(),n=Ae(jr),r=Ae(Ar),i=Ae(kr),a=Ae(Or),o;e[0]===n?o=e[1]:(o=e=>{n(e)},e[0]=n,e[1]=o);let s=o,c;e[2]!==t||e[3]!==r?(c=()=>{t&&r(`playing`)},e[2]=t,e[3]=r,e[4]=c):c=e[4];let l=c,u;e[5]===r?u=e[6]:(u=()=>{r(`paused`)},e[5]=r,e[6]=u);let d=u,f;e[7]===i?f=e[8]:(f=e=>{i(e*1e3)},e[7]=i,e[8]=f);let p=f,m;e[9]===a?m=e[10]:(m=e=>{a(e)},e[9]=a,e[10]=m);let h=m,g;return e[11]!==d||e[12]!==l||e[13]!==p||e[14]!==s||e[15]!==h?(g={setRecording:s,play:l,pause:d,seek:p,setSpeed:h},e[11]=d,e[12]=l,e[13]=p,e[14]=s,e[15]=h,e[16]=g):g=e[16],g}function Or(e){return e.setPlaybackRate}function kr(e){return e.setPlaybackTime}function Ar(e){return e.setPlaybackStatus}function jr(e){return e.setRecording}var Mr=A(`LoadDemoButton`);function Nr({isActive:e=!1,choosingMap:t=!1,onCancelChoosingMap:n}){let r=_r()?.source===`demo`,{setRecording:i}=Dr(),a=(0,R.useRef)(null),o=(0,R.useRef)(0),s=(0,R.useRef)(null),c=(0,R.useCallback)(()=>{if(N.getState().cancel(),t&&r){n?.();return}if(r){o.current+=1,s.current?.abort(),s.current=null,i(null),bn.getState().reset();return}a.current?.click()},[r,t,n,i]);return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`input`,{ref:a,type:`file`,accept:`.rec`,style:{display:`none`},onChange:(0,R.useCallback)(async e=>{let t=e.target.files?.[0];if(t){e.target.value=``;try{let e=await t.arrayBuffer(),n=o.current+1;o.current=n;let{createDemoStreamingRecording:r}=await Me(async()=>{let{createDemoStreamingRecording:e}=await import(`./demoStreaming-Tnv976xF.js`);return{createDemoStreamingRecording:e}},__vite__mapDeps([0,1,2,3,4,5])),a=await r(e);if(o.current!==n)return;fr.getState().disconnectServer(),i(a),s.current?.abort();let c=new AbortController;s.current=c;let l=bn.getState();l.reset(),l.setScanProgress(0),Me(async()=>{let{scanDemoTimeline:e}=await import(`./demoTimelineScanner-BGzL-XZF.js`);return{scanDemoTimeline:e}},__vite__mapDeps([6,1,2,3,5])).then(({scanDemoTimeline:t})=>t(e,a.recorderName,e=>{o.current===n&&bn.getState().setScanProgress(e)},c.signal)).then(e=>{if(o.current!==n)return;let t=bn.getState();t.setEvents(e),t.setScanProgress(null)}).catch(e=>{o.current===n&&(e instanceof Error&&e.name===`AbortError`||(Mr.error(`Timeline scan failed: %o`,e),bn.getState().setScanProgress(null)))})}catch(e){Mr.error(`Failed to load demo: %o`,e)}}},[i])}),(0,B.jsxs)(`button`,{type:`button`,className:mn.Button,"aria-label":r?`Unload demo`:`Load demo (.rec)`,title:r?`Unload demo`:`Load demo (.rec)`,onClick:c,"data-active":e,children:[(0,B.jsx)(vn,{className:mn.DemoIcon}),(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Demo`}),(0,B.jsx)(`span`,{className:mn.ButtonHint,children:t&&r?`Return to demo`:r?`Click to unload`:`Load a .rec file`})]})]})}function Pr(e){return S({tag:`svg`,attr:{fill:`currentColor`,viewBox:`0 0 16 16`},child:[{tag:`path`,attr:{d:`M11.251.068a.5.5 0 0 1 .227.58L9.677 6.5H13a.5.5 0 0 1 .364.843l-8 8.5a.5.5 0 0 1-.842-.49L6.323 9.5H3a.5.5 0 0 1-.364-.843l8-8.5a.5.5 0 0 1 .615-.09z`},child:[]}]})(e)}function Fr(e){return S({tag:`svg`,attr:{fill:`currentColor`,viewBox:`0 0 16 16`},child:[{tag:`path`,attr:{d:`m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393`},child:[]}]})(e)}var Ir={JoinServerButton:`_JoinServerButton_cz8os_1 _Button_p0g82_2`,Icon:`_Icon_cz8os_5 _Icon_p0g82_85`,blink:`_blink_cz8os_1`};function Lr(e){let t=(0,z.c)(15),{isActive:n,onOpenServerBrowser:r}=e,i=pr(zr),a=pr(Rr),o=i===`connected`,s=i===`connecting`||i===`challenging`||i===`authenticating`,c=o?`Connected –\xA0click to disconnect`:`Join server`,l=o?`Connected –\xA0click to disconnect`:`Join server`,u;t[0]!==a||t[1]!==o||t[2]!==r?(u=()=>{N.getState().cancel(),o?a():r()},t[0]=a,t[1]=o,t[2]=r,t[3]=u):u=t[3];let d,f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,B.jsx)(Pr,{className:Ir.Icon}),f=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Live`}),t[4]=d,t[5]=f):(d=t[4],f=t[5]);let p=s?`Connecting…`:o?`Connected`:`Join a game`,m;t[6]===p?m=t[7]:(m=(0,B.jsxs)(B.Fragment,{children:[f,(0,B.jsx)(`span`,{className:mn.ButtonHint,children:p})]}),t[6]=p,t[7]=m);let h;return t[8]!==n||t[9]!==o||t[10]!==c||t[11]!==l||t[12]!==u||t[13]!==m?(h=(0,B.jsxs)(`button`,{type:`button`,className:Ir.JoinServerButton,"aria-label":c,title:l,"data-connected":o,onClick:u,"data-active":n,children:[d,m]}),t[8]=n,t[9]=o,t[10]=c,t[11]=l,t[12]=u,t[13]=m,t[14]=h):h=t[14],h}function Rr(e){return e.disconnectServer}function zr(e){return e.gameStatus}function Br(e,t=[]){let n=[];function r(t,r){let i=R.createContext(r),a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=R.useMemo(()=>o,Object.values(o));return(0,B.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o){let s=o?.[e]?.[a]||i,c=R.useContext(s);if(c)return c;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>R.createContext(e));return function(n){let r=n?.[e]||t;return R.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,Vr(i,...t)]}function Vr(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return R.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}function Hr(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function Ur(...e){return t=>{let n=!1,r=e.map(e=>{let r=Hr(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t{let{children:r,...i}=e,a=R.Children.toArray(r),o=a.find(Jr);if(o){let e=o.props.children,r=a.map(t=>t===o?R.Children.count(e)>1?R.Children.only(null):R.isValidElement(e)?e.props.children:null:t);return(0,B.jsx)(t,{...i,ref:n,children:R.isValidElement(e)?R.cloneElement(e,void 0,r):null})}return(0,B.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function Kr(e){let t=R.forwardRef((e,t)=>{let{children:n,...r}=e;if(R.isValidElement(n)){let e=Xr(n),i=Yr(r,n.props);return n.type!==R.Fragment&&(i.ref=t?Ur(t,e):e),R.cloneElement(n,i)}return R.Children.count(n)>1?R.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var qr=Symbol(`radix.slottable`);function Jr(e){return R.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===qr}function Yr(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function Xr(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Zr(e){let t=e+`CollectionProvider`,[n,r]=Br(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:n}=e,r=R.useRef(null),a=R.useRef(new Map).current;return(0,B.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};o.displayName=t;let s=e+`CollectionSlot`,c=Gr(s),l=R.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,B.jsx)(c,{ref:Wr(t,a(s,n).collectionRef),children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=Gr(u),p=R.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=R.useRef(null),s=Wr(t,o),c=a(u,n);return R.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,B.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function m(t){let n=a(e+`CollectionConsumer`,t);return R.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:o,Slot:l,ItemSlot:p},m,r]}typeof window<`u`&&window.document&&window.document.createElement;function Qr(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}var $r=globalThis?.document?R.useLayoutEffect:()=>{},ei=R.useInsertionEffect||$r;function ti({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=ni({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=R.useRef(e!==void 0);R.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,R.useCallback(t=>{if(s){let n=ri(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function ni({defaultProp:e,onChange:t}){let[n,r]=R.useState(e),i=R.useRef(n),a=R.useRef(t);return ei(()=>{a.current=t},[t]),R.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function ri(e){return typeof e==`function`}var ii=e(Fe(),1),ai=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=Gr(`Primitive.${t}`),r=R.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,B.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function oi(e,t){return R.useReducer((e,n)=>t[e][n]??e,e)}var si=e=>{let{present:t,children:n}=e,r=ci(t),i=typeof n==`function`?n({present:r.isPresent}):R.Children.only(n),a=Wr(r.ref,ui(i));return typeof n==`function`||r.isPresent?R.cloneElement(i,{ref:a}):null};si.displayName=`Presence`;function ci(e){let[t,n]=R.useState(),r=R.useRef(null),i=R.useRef(e),a=R.useRef(`none`),[o,s]=oi(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return R.useEffect(()=>{let e=li(r.current);a.current=o===`mounted`?e:`none`},[o]),$r(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=li(t);e?s(`MOUNT`):o===`none`||t?.display===`none`?s(`UNMOUNT`):s(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,s]),$r(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=li(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(s(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},c=e=>{e.target===t&&(a.current=li(r.current))};return t.addEventListener(`animationstart`,c),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,c),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else s(`ANIMATION_END`)},[t,s]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:R.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}function li(e){return e?.animationName||`none`}function ui(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var di=R.useId||(()=>void 0),fi=0;function pi(e){let[t,n]=R.useState(di());return $r(()=>{e||n(e=>e??String(fi++))},[e]),e||(t?`radix-${t}`:``)}var mi=`Collapsible`,[hi,gi]=Br(mi),[_i,vi]=hi(mi),yi=R.forwardRef((e,t)=>{let{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:a,onOpenChange:o,...s}=e,[c,l]=ti({prop:r,defaultProp:i??!1,onChange:o,caller:mi});return(0,B.jsx)(_i,{scope:n,disabled:a,contentId:pi(),open:c,onOpenToggle:R.useCallback(()=>l(e=>!e),[l]),children:(0,B.jsx)(ai.div,{"data-state":Ti(c),"data-disabled":a?``:void 0,...s,ref:t})})});yi.displayName=mi;var bi=`CollapsibleTrigger`,xi=R.forwardRef((e,t)=>{let{__scopeCollapsible:n,...r}=e,i=vi(bi,n);return(0,B.jsx)(ai.button,{type:`button`,"aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":Ti(i.open),"data-disabled":i.disabled?``:void 0,disabled:i.disabled,...r,ref:t,onClick:Qr(e.onClick,i.onOpenToggle)})});xi.displayName=bi;var Si=`CollapsibleContent`,Ci=R.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=vi(Si,e.__scopeCollapsible);return(0,B.jsx)(si,{present:n||i.open,children:({present:e})=>(0,B.jsx)(wi,{...r,ref:t,present:e})})});Ci.displayName=Si;var wi=R.forwardRef((e,t)=>{let{__scopeCollapsible:n,present:r,children:i,...a}=e,o=vi(Si,n),[s,c]=R.useState(r),l=R.useRef(null),u=Wr(t,l),d=R.useRef(0),f=d.current,p=R.useRef(0),m=p.current,h=o.open||s,g=R.useRef(h),_=R.useRef(void 0);return R.useEffect(()=>{let e=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(e)},[]),$r(()=>{let e=l.current;if(e){_.current=_.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();d.current=t.height,p.current=t.width,g.current||(e.style.transitionDuration=_.current.transitionDuration,e.style.animationName=_.current.animationName),c(r)}},[o.open,r]),(0,B.jsx)(ai.div,{"data-state":Ti(o.open),"data-disabled":o.disabled?``:void 0,id:o.contentId,hidden:!h,...a,ref:u,style:{"--radix-collapsible-content-height":f?`${f}px`:void 0,"--radix-collapsible-content-width":m?`${m}px`:void 0,...e.style},children:h&&i})});function Ti(e){return e?`open`:`closed`}var Ei=yi,Di=xi,Oi=Ci,ki=R.createContext(void 0);function Ai(e){let t=R.useContext(ki);return e||t||`ltr`}var ji=`Accordion`,Mi=[`Home`,`End`,`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`],[V,Ni,Pi]=Zr(ji),[Fi,Ii]=Br(ji,[Pi,gi]),Li=gi(),Ri=R.forwardRef((e,t)=>{let{type:n,...r}=e,i=r,a=r;return(0,B.jsx)(V.Provider,{scope:e.__scopeAccordion,children:n===`multiple`?(0,B.jsx)(Wi,{...a,ref:t}):(0,B.jsx)(Ui,{...i,ref:t})})});Ri.displayName=ji;var[zi,Bi]=Fi(ji),[Vi,Hi]=Fi(ji,{collapsible:!1}),Ui=R.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},collapsible:a=!1,...o}=e,[s,c]=ti({prop:n,defaultProp:r??``,onChange:i,caller:ji});return(0,B.jsx)(zi,{scope:e.__scopeAccordion,value:R.useMemo(()=>s?[s]:[],[s]),onItemOpen:c,onItemClose:R.useCallback(()=>a&&c(``),[a,c]),children:(0,B.jsx)(Vi,{scope:e.__scopeAccordion,collapsible:a,children:(0,B.jsx)(qi,{...o,ref:t})})})}),Wi=R.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=ti({prop:n,defaultProp:r??[],onChange:i,caller:ji}),c=R.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=R.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,B.jsx)(zi,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:l,children:(0,B.jsx)(Vi,{scope:e.__scopeAccordion,collapsible:!0,children:(0,B.jsx)(qi,{...a,ref:t})})})}),[Gi,Ki]=Fi(ji),qi=R.forwardRef((e,t)=>{let{__scopeAccordion:n,disabled:r,dir:i,orientation:a=`vertical`,...o}=e,s=Wr(R.useRef(null),t),c=Ni(n),l=Ai(i)===`ltr`,u=Qr(e.onKeyDown,e=>{if(!Mi.includes(e.key))return;let t=e.target,n=c().filter(e=>!e.ref.current?.disabled),r=n.findIndex(e=>e.ref.current===t),i=n.length;if(r===-1)return;e.preventDefault();let o=r,s=i-1,u=()=>{o=r+1,o>s&&(o=0)},d=()=>{o=r-1,o<0&&(o=s)};switch(e.key){case`Home`:o=0;break;case`End`:o=s;break;case`ArrowRight`:a===`horizontal`&&(l?u():d());break;case`ArrowDown`:a===`vertical`&&u();break;case`ArrowLeft`:a===`horizontal`&&(l?d():u());break;case`ArrowUp`:a===`vertical`&&d();break}n[o%i].ref.current?.focus()});return(0,B.jsx)(Gi,{scope:n,disabled:r,direction:i,orientation:a,children:(0,B.jsx)(V.Slot,{scope:n,children:(0,B.jsx)(ai.div,{...o,"data-orientation":a,ref:s,onKeyDown:r?void 0:u})})})}),Ji=`AccordionItem`,[Yi,Xi]=Fi(Ji),Zi=R.forwardRef((e,t)=>{let{__scopeAccordion:n,value:r,...i}=e,a=Ki(Ji,n),o=Bi(Ji,n),s=Li(n),c=pi(),l=r&&o.value.includes(r)||!1,u=a.disabled||e.disabled;return(0,B.jsx)(Yi,{scope:n,open:l,disabled:u,triggerId:c,children:(0,B.jsx)(Ei,{"data-orientation":a.orientation,"data-state":ia(l),...s,...i,ref:t,disabled:u,open:l,onOpenChange:e=>{e?o.onItemOpen(r):o.onItemClose(r)}})})});Zi.displayName=Ji;var Qi=`AccordionHeader`,$i=R.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=Ki(ji,n),a=Xi(Qi,n);return(0,B.jsx)(ai.h3,{"data-orientation":i.orientation,"data-state":ia(a.open),"data-disabled":a.disabled?``:void 0,...r,ref:t})});$i.displayName=Qi;var ea=`AccordionTrigger`,ta=R.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=Ki(ji,n),a=Xi(ea,n),o=Hi(ea,n),s=Li(n);return(0,B.jsx)(V.ItemSlot,{scope:n,children:(0,B.jsx)(Di,{"aria-disabled":a.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:a.triggerId,...s,...r,ref:t})})});ta.displayName=ea;var na=`AccordionContent`,ra=R.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=Ki(ji,n),a=Xi(na,n),o=Li(n);return(0,B.jsx)(Oi,{role:`region`,"aria-labelledby":a.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":`var(--radix-collapsible-content-height)`,"--radix-accordion-content-width":`var(--radix-collapsible-content-width)`,...e.style}})});ra.displayName=na;function ia(e){return e?`open`:`closed`}var aa=Ri,oa=Zi,sa=ta,ca=ra;function la(e){return S({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 16C141.31 16 48 109.31 48 224v154.83l82 32.81L146.88 496H192v-64h32v64h16v-64h32v64h16v-64h32v64h45.12L382 411.64l82-32.81V224c0-114.69-93.31-208-208-208zm-88 320a56 56 0 1 1 56-56 56.06 56.06 0 0 1-56 56zm51.51 64L244 320h24l24.49 80zM344 336a56 56 0 1 1 56-56 56.06 56.06 0 0 1-56 56zm104 32z`},child:[]}]})(e)}function ua(e){return S({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`m190.06 414 163.12-139.78a24 24 0 0 0 0-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z`},child:[]}]})(e)}var da={AccordionGroup:`_AccordionGroup_1ysdj_1`,Trigger:`_Trigger_1ysdj_7`,TriggerIcon:`_TriggerIcon_1ysdj_24`,Content:`_Content_1ysdj_35`,slideDown:`_slideDown_1ysdj_1`,slideUp:`_slideUp_1ysdj_1`,Body:`_Body_1ysdj_47`,BodyNoPadding:`_BodyNoPadding_1ysdj_51`};function fa(e){let t=(0,z.c)(2),n;return t[0]===e?n=t[1]:(n=(0,B.jsx)(aa,{className:da.AccordionGroup,...e}),t[0]=e,t[1]=n),n}function pa(e){let t=(0,z.c)(10),{value:n,label:r,children:i,noPadding:a}=e,o=a===void 0?!1:a,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,B.jsx)(ua,{className:da.TriggerIcon}),t[0]=s):s=t[0];let c;t[1]===r?c=t[2]:(c=(0,B.jsxs)(sa,{className:da.Trigger,children:[s,` `,r]}),t[1]=r,t[2]=c);let l=o?da.BodyNoPadding:da.Body,u;t[3]!==i||t[4]!==l?(u=(0,B.jsx)(ca,{className:da.Content,children:(0,B.jsx)(`div`,{className:l,children:i})}),t[3]=i,t[4]=l,t[5]=u):u=t[5];let d;return t[6]!==c||t[7]!==u||t[8]!==n?(d=(0,B.jsxs)(oa,{value:n,children:[c,u]}),t[6]=c,t[7]=u,t[8]=n,t[9]=d):d=t[9],d}function ma(e){return S({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M144,16H112A64.07,64.07,0,0,0,48,80v96a64.07,64.07,0,0,0,64,64h32a64.07,64.07,0,0,0,64-64V80A64.07,64.07,0,0,0,144,16Zm48,160a48.05,48.05,0,0,1-48,48H112a48.05,48.05,0,0,1-48-48V80a48.05,48.05,0,0,1,48-48h32a48.05,48.05,0,0,1,48,48ZM136,83.31v89.38l10.34-10.35a8,8,0,0,1,11.32,11.32l-24,24a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L120,172.69V83.31L109.66,93.66A8,8,0,0,1,98.34,82.34l24-24a8,8,0,0,1,11.32,0l24,24a8,8,0,0,1-11.32,11.32Z`},child:[]}]})(e)}function ha(e){return S({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M144,16H112A64.07,64.07,0,0,0,48,80v96a64.07,64.07,0,0,0,64,64h32a64.07,64.07,0,0,0,64-64V80A64.07,64.07,0,0,0,144,16Zm48,64v24H128V32h16A48.05,48.05,0,0,1,192,80ZM144,224H112a48.05,48.05,0,0,1-48-48V120H192v56A48.05,48.05,0,0,1,144,224Z`},child:[]}]})(e)}function ga(e){return S({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M239.22,59.44l-45.63,95.82a3.54,3.54,0,0,1-.16.34l-34.21,71.84a8,8,0,1,1-14.44-6.88L173.62,160H40a8,8,0,0,1-5.66-13.66L76.69,104,34.34,61.66A8,8,0,0,1,40,48H232a8,8,0,0,1,7.22,11.44Z`},child:[]}]})(e)}function _a(e){return S({tag:`svg`,attr:{viewBox:`0 0 1024 1024`},child:[{tag:`path`,attr:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm234.8 736.5L223.5 277.2c16-19.7 34-37.7 53.7-53.7l523.3 523.3c-16 19.6-34 37.7-53.7 53.7z`},child:[]}]})(e)}function va(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`},child:[]},{tag:`circle`,attr:{cx:`9`,cy:`7`,r:`4`},child:[]},{tag:`path`,attr:{d:`M22 21v-2a4 4 0 0 0-3-3.87`},child:[]},{tag:`path`,attr:{d:`M16 3.13a4 4 0 0 1 0 7.75`},child:[]}]})(e)}function ya(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M3 9h18`},child:[]},{tag:`path`,attr:{d:`m15 14-3 3-3-3`},child:[]}]})(e)}function ba(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M3 9h18`},child:[]},{tag:`path`,attr:{d:`m9 16 3-3 3 3`},child:[]}]})(e)}function xa(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M9 3v18`},child:[]},{tag:`path`,attr:{d:`m14 9 3 3-3 3`},child:[]}]})(e)}function Sa(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M9 3v18`},child:[]},{tag:`path`,attr:{d:`m16 15-3-3 3-3`},child:[]}]})(e)}function Ca(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`circle`,attr:{cx:`12`,cy:`12`,r:`10`},child:[]},{tag:`line`,attr:{x1:`22`,x2:`18`,y1:`12`,y2:`12`},child:[]},{tag:`line`,attr:{x1:`6`,x2:`2`,y1:`12`,y2:`12`},child:[]},{tag:`line`,attr:{x1:`12`,x2:`12`,y1:`6`,y2:`2`},child:[]},{tag:`line`,attr:{x1:`12`,x2:`12`,y1:`22`,y2:`18`},child:[]}]})(e)}function wa(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`},child:[]},{tag:`path`,attr:{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`},child:[]},{tag:`path`,attr:{d:`M12 11h4`},child:[]},{tag:`path`,attr:{d:`M12 16h4`},child:[]},{tag:`path`,attr:{d:`M8 11h.01`},child:[]},{tag:`path`,attr:{d:`M8 16h.01`},child:[]}]})(e)}function Ta(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M2 8V2h6`},child:[]},{tag:`path`,attr:{d:`m2 2 10 10`},child:[]},{tag:`path`,attr:{d:`M12 2A10 10 0 1 1 2 12`},child:[]}]})(e)}var Ea={Root:`_Root_cfjcw_1`,ProgressWrap:`_ProgressWrap_cfjcw_6`,ProgressLabel:`_ProgressLabel_cfjcw_13`,ProgressBar:`_ProgressBar_cfjcw_19`,ProgressFill:`_ProgressFill_cfjcw_27`,Filters:`_Filters_cfjcw_33`,FilterButton:`_FilterButton_cfjcw_40`,EventList:`_EventList_cfjcw_57`,EventRow:`_EventRow_cfjcw_63`,EventTime:`_EventTime_cfjcw_120`,EventIcon:`_EventIcon_cfjcw_129`,EventDescription:`_EventDescription_cfjcw_172`,Killer:`_Killer_cfjcw_177`,Victim:`_Victim_cfjcw_180`,DamageType:`_DamageType_cfjcw_183`,Empty:`_Empty_cfjcw_186`};function Da(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,`0`)}`}var Oa={kill:(0,B.jsx)(Ca,{}),death:(0,B.jsx)(la,{}),"flag-grab":(0,B.jsx)(ga,{}),"flag-return":(0,B.jsx)(ga,{}),"flag-cap":(0,B.jsx)(ga,{}),"match-start":(0,B.jsx)(Fr,{}),"match-end":(0,B.jsx)(_a,{})},ka={chaingun:`chaingunned`,plasma:`plasma rifled`};function Aa(e){if(e.type===`kill`&&e.killer&&e.victim)return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:Ea.Killer,title:e.killer,children:`You`}),` `,(0,B.jsx)(`span`,{className:Ea.DamageType,children:e.weapon?ka[e.weapon]??`${e.weapon}${e.weapon.endsWith(`e`)?`d`:`ed`}`:`killed`}),` `,(0,B.jsx)(`span`,{className:Ea.Victim,children:e.victim})]});if(e.type===`death`)return e.killer?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:Ea.Killer,children:e.killer}),` `,(0,B.jsx)(`span`,{className:Ea.DamageType,children:e.weapon?ka[e.weapon]??`${e.weapon}${e.weapon.endsWith(`e`)?`d`:`ed`}`:`killed`}),` `,(0,B.jsx)(`span`,{className:Ea.Victim,title:e.victim,children:`you`})]}):(0,B.jsx)(B.Fragment,{children:e.description});if(e.type===`flag-grab`)return(0,B.jsxs)(B.Fragment,{children:[`You grabbed `,e.flagTeamName?`the ${e.flagTeamName} flag`:`the enemy flag`]});if(e.type===`flag-return`)return(0,B.jsx)(B.Fragment,{children:`You returned your flag`});if(e.type===`flag-cap`&&e.capturer){let t=e.teamAffinity===`friendly`?`the enemy flag`:e.teamAffinity===`enemy`?`your flag`:e.flagTeamName?`the ${e.flagTeamName} flag`:`a flag`;return(0,B.jsxs)(B.Fragment,{children:[e.capturer,` captured `,t]})}return e.type===`match-start`?`Match started`:e.type===`match-end`?`Match ended`:e.description}function ja(){let e=(0,z.c)(58),t=xn(Ra),n=xn(La),{seek:r}=Dr(),[i,a]=(0,R.useState)(`all`),o,s;if(e[0]!==t||e[1]!==i||e[2]!==n||e[3]!==r){s=Symbol.for(`react.early_return_sentinel`);bb0:{let c=t?.filter(e=>i===`all`||e.type===i)??[],l;e[6]===r?l=e[7]:(l=e=>{r(Math.max(0,e-3)),document.activeElement instanceof HTMLElement&&document.activeElement.blur()},e[6]=r,e[7]=l);let u=l;if(n!=null&&t==null){let t;e[8]===n?t=e[9]:(t=Math.round(n*100),e[8]=n,e[9]=t);let r;e[10]===t?r=e[11]:(r=(0,B.jsxs)(`span`,{className:Ea.ProgressLabel,children:[`Scanning… `,t,`%`]}),e[10]=t,e[11]=r);let i=`${n*100}%`,a;e[12]===i?a=e[13]:(a=(0,B.jsx)(`div`,{className:Ea.ProgressBar,children:(0,B.jsx)(`div`,{className:Ea.ProgressFill,style:{width:i}})}),e[12]=i,e[13]=a);let o;e[14]!==r||e[15]!==a?(o=(0,B.jsx)(`div`,{className:Ea.Root,children:(0,B.jsxs)(`div`,{className:Ea.ProgressWrap,children:[r,a]})}),e[14]=r,e[15]=a,e[16]=o):o=e[16],s=o;break bb0}if(!t){s=null;break bb0}let d;e[17]===t?d=e[18]:(d=t.filter(Ia),e[17]=t,e[18]=d);let f=d.length,p;e[19]===t?p=e[20]:(p=t.filter(Fa),e[19]=t,e[20]=p);let m=p.length,h;e[21]===t?h=e[22]:(h=t.filter(Pa),e[21]=t,e[22]=h);let g=h.length,_;e[23]===t?_=e[24]:(_=t.filter(Na),e[23]=t,e[24]=_);let v=_.length,y;e[25]===t?y=e[26]:(y=t.filter(Ma),e[25]=t,e[26]=y);let b=y.length,x=i===`all`,S;e[27]===Symbol.for(`react.memo_cache_sentinel`)?(S=()=>a(`all`),e[27]=S):S=e[27];let C;e[28]!==t.length||e[29]!==x?(C=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":x,onClick:S,children:[`All (`,t.length,`)`]}),e[28]=t.length,e[29]=x,e[30]=C):C=e[30];let w=i===`kill`,T;e[31]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>a(`kill`),e[31]=T):T=e[31];let E;e[32]!==f||e[33]!==w?(E=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":w,onClick:T,children:[`Kills (`,f,`)`]}),e[32]=f,e[33]=w,e[34]=E):E=e[34];let D=i===`death`,O;e[35]===Symbol.for(`react.memo_cache_sentinel`)?(O=()=>a(`death`),e[35]=O):O=e[35];let k;e[36]!==m||e[37]!==D?(k=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":D,onClick:O,children:[`Deaths (`,m,`)`]}),e[36]=m,e[37]=D,e[38]=k):k=e[38];let A=i===`flag-grab`,j;e[39]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>a(`flag-grab`),e[39]=j):j=e[39];let M;e[40]!==g||e[41]!==A?(M=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":A,onClick:j,children:[`Grabs (`,g,`)`]}),e[40]=g,e[41]=A,e[42]=M):M=e[42];let ee=i===`flag-return`,te;e[43]===Symbol.for(`react.memo_cache_sentinel`)?(te=()=>a(`flag-return`),e[43]=te):te=e[43];let N;e[44]!==v||e[45]!==ee?(N=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":ee,onClick:te,children:[`Returns (`,v,`)`]}),e[44]=v,e[45]=ee,e[46]=N):N=e[46];let P=i===`flag-cap`,ne;e[47]===Symbol.for(`react.memo_cache_sentinel`)?(ne=()=>a(`flag-cap`),e[47]=ne):ne=e[47];let re;e[48]!==b||e[49]!==P?(re=(0,B.jsxs)(`button`,{type:`button`,className:Ea.FilterButton,"data-active":P,onClick:ne,children:[`Caps (`,b,`)`]}),e[48]=b,e[49]=P,e[50]=re):re=e[50];let F;e[51]!==C||e[52]!==E||e[53]!==k||e[54]!==M||e[55]!==N||e[56]!==re?(F=(0,B.jsxs)(`div`,{className:Ea.Filters,children:[C,E,k,M,N,re]}),e[51]=C,e[52]=E,e[53]=k,e[54]=M,e[55]=N,e[56]=re,e[57]=F):F=e[57],o=(0,B.jsxs)(`div`,{className:Ea.Root,children:[F,c.length===0?(0,B.jsx)(`div`,{className:Ea.Empty,children:`No events found.`}):(0,B.jsx)(`div`,{className:Ea.EventList,children:c.map((e,t)=>(0,B.jsxs)(`button`,{type:`button`,className:Ea.EventRow,onClick:()=>u(e.timeSec),children:[(0,B.jsx)(`span`,{className:Ea.EventTime,children:Da(e.timeSec)}),(0,B.jsx)(`span`,{className:Ea.EventIcon,"data-type":e.type,"data-affinity":e.teamAffinity,children:Oa[e.type]}),(0,B.jsx)(`span`,{className:Ea.EventDescription,children:Aa(e)})]},`${e.timeSec}-${e.type}-${t}`))})]})}e[0]=t,e[1]=i,e[2]=n,e[3]=r,e[4]=o,e[5]=s}else o=e[4],s=e[5];return s===Symbol.for(`react.early_return_sentinel`)?o:s}function Ma(e){return e.type===`flag-cap`}function Na(e){return e.type===`flag-return`}function Pa(e){return e.type===`flag-grab`}function Fa(e){return e.type===`death`}function Ia(e){return e.type===`kill`}function La(e){return e.scanProgress}function Ra(e){return e.events}var za=new Map([[`flag`,`Flags`],[`huntersflag1`,`Flags`],[`huntersflag2`,`Flags`],[`huntersflag4`,`Flags`],[`huntersflag8`,`Flags`],[`stationinventory`,`Inventory Stations`],[`stationammo`,`Inventory Stations`],[`mobileinvstation`,`Inventory Stations`],[`stationvehiclepad`,`Vehicle Pads`],[`stationvehicle`,`Vehicle Pads`],[`generatorlarge`,`Generators`],[`solarpanel`,`Generators`],[`sensorlargepulse`,`Sensors`],[`sensormediumpulse`,`Sensors`],[`turretbaselarge`,`Turrets`],[`sentryturret`,`Turrets`],[`repairpatch`,`Health`],[`repairkit`,`Health`],[`ammopack`,`Packs`],[`energypack`,`Packs`],[`shieldpack`,`Packs`],[`repairpack`,`Packs`],[`cloakingpack`,`Packs`],[`sensorjammerpack`,`Packs`],[`aabarrelpack`,`Packs`],[`elfbarrelpack`,`Packs`],[`missilebarrelpack`,`Packs`],[`mortarbarrelpack`,`Packs`],[`plasmabarrelpack`,`Packs`],[`inventorydeployable`,`Packs`],[`motionsensordeployable`,`Packs`],[`pulsesensordeployable`,`Packs`],[`turretoutdoordeployable`,`Packs`],[`turretindoordeployable`,`Packs`],[`satchelcharge`,`Weapons`],[`blaster`,`Weapons`],[`chaingun`,`Weapons`],[`disc`,`Weapons`],[`grenadelauncher`,`Weapons`],[`elfgun`,`Weapons`],[`missilelauncher`,`Weapons`],[`mortar`,`Weapons`],[`plasma`,`Weapons`],[`shocklance`,`Weapons`],[`sniperrifle`,`Weapons`],[`targetinglaser`,`Weapons`],[`chaingunammo`,`Ammo`],[`discammo`,`Ammo`],[`grenadelauncherammo`,`Ammo`],[`missilelauncherammo`,`Ammo`],[`mortarammo`,`Ammo`],[`plasmaammo`,`Ammo`],[`bombammo`,`Ammo`],[`assaultmortarammo`,`Ammo`],[`grenade`,`Ammo`],[`concussiongrenade`,`Ammo`],[`flashgrenade`,`Ammo`],[`flaregrenade`,`Ammo`],[`cameragrenade`,`Ammo`],[`mine`,`Ammo`],[`beacon`,`Ammo`],[`flipflop`,`Switches`],[`nexus`,`Nexus`],[`nexusbase`,`Nexus`],[`nexuscap`,`Nexus`]]),Ba=[`Flags`,`Inventory Stations`,`Generators`,`Vehicle Pads`,`Turrets`,`Sensors`,`Nexus`,`Switches`,`Packs`,`Health`,`Weapons`,`Ammo`];function Va(e){return e.renderType===`Shape`&&typeof e.dataBlock==`string`&&e.dataBlock!==``&&Array.isArray(e.position)}function Ha(e,t){let n=new Map;for(let r of e.values()){if(!Va(r))continue;let e=za.get(r.dataBlock.toLowerCase());if(!e)continue;let i=r.dataBlock;if(t&&r.runtimeObject){let e=O(r.runtimeObject,t);e&&(i=e)}let a=n.get(e);a||(a=[],n.set(e,a)),a.push({entityId:r.id,label:i,position:r.position,teamId:r.teamId})}let r=[];for(let e of Ba){let t=n.get(e);t&&t.length>0&&(t.sort((e,t)=>{let n=(e.teamId??0)-(t.teamId??0);return n===0?e.label.localeCompare(t.label):n}),r.push({name:e,targets:t}))}return r}var Ua={Root:`_Root_pb9qa_1`,Empty:`_Empty_pb9qa_6`,TourAllButton:`_TourAllButton_pb9qa_13`,CategoryHeader:`_CategoryHeader_pb9qa_40`,CategoryCount:`_CategoryCount_pb9qa_58`,TourButton:`_TourButton_pb9qa_63`,PlayIcon:`_PlayIcon_pb9qa_83`,ExitIcon:`_ExitIcon_pb9qa_87`,ItemList:`_ItemList_pb9qa_100`,ItemRow:`_ItemRow_pb9qa_106`,ItemLabel:`_ItemLabel_pb9qa_151`,TeamBadge:`_TeamBadge_pb9qa_156`};function Wa(e){return S({tag:`svg`,attr:{viewBox:`0 0 20 20`,fill:`currentColor`,"aria-hidden":`true`},child:[{tag:`path`,attr:{fillRule:`evenodd`,d:`M3 4.25A2.25 2.25 0 0 1 5.25 2h5.5A2.25 2.25 0 0 1 13 4.25v2a.75.75 0 0 1-1.5 0v-2a.75.75 0 0 0-.75-.75h-5.5a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h5.5a.75.75 0 0 0 .75-.75v-2a.75.75 0 0 1 1.5 0v2A2.25 2.25 0 0 1 10.75 18h-5.5A2.25 2.25 0 0 1 3 15.75V4.25Z`,clipRule:`evenodd`},child:[]},{tag:`path`,attr:{fillRule:`evenodd`,d:`M19 10a.75.75 0 0 0-.75-.75H8.704l1.048-.943a.75.75 0 1 0-1.004-1.114l-2.5 2.25a.75.75 0 0 0 0 1.114l2.5 2.25a.75.75 0 1 0 1.004-1.114l-1.048-.943h9.546A.75.75 0 0 0 19 10Z`,clipRule:`evenodd`},child:[]}]})(e)}var Ga=`__all__`;function Ka(e){return e.animation?{targets:e.animation.targets,categoryName:e.animation.categoryName,currentIndex:e.animation.currentIndex}:null}function qa(e,t){return e===t?!0:!e||!t?!1:e.categoryName===t.categoryName&&e.currentIndex===t.currentIndex&&e.targets===t.targets}function Ja(){let e=(0,z.c)(28),t=zn(),n=Ae(Xa),r;e[0]!==n||e[1]!==t?(r=Ha(t,n),e[0]=n,e[1]=t,e[2]=r):r=e[2];let i=r,a=te(Ka,qa),o;if(e[3]!==i){o=new Map;for(let e=0;e{let n=e.teamId!=null&&e.teamId>0?e.teamId:1/0,r=t.teamId!=null&&t.teamId>0?t.teamId:1/0;if(n!==r)return n-r;let i=o.get(e)??0,a=o.get(t)??0;return i===a?e.label.localeCompare(t.label):i-a},e[8]=o,e[9]=t),s=i.flatMap(Ya).sort(t),e[5]=i,e[6]=o,e[7]=s}else s=e[7];let c=s;if(i.length===0){let t;return e[10]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsx)(`div`,{className:Ua.Root,children:(0,B.jsx)(`p`,{className:Ua.Empty,children:`No map features found`})}),e[10]=t):t=e[10],t}let l=a!==null&&a.categoryName===Ga,u;e[11]!==c||e[12]!==l?(u=()=>{l?N.getState().cancel():N.getState().startTour(c,Ga)},e[11]=c,e[12]=l,e[13]=u):u=e[13];let d=u,f;e[14]===l?f=e[15]:(f=l?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Wa,{className:Ua.ExitIcon}),` Exit tour`]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Fr,{className:Ua.PlayIcon}),` `,(0,B.jsx)(`span`,{className:Ua.ButtonLabel,children:`Tour all features`})]}),e[14]=l,e[15]=f);let p;e[16]!==d||e[17]!==l||e[18]!==f?(p=(0,B.jsx)(`button`,{type:`button`,className:Ua.TourAllButton,"data-active":l,onClick:d,children:f}),e[16]=d,e[17]=l,e[18]=f,e[19]=p):p=e[19];let m;if(e[20]!==i||e[21]!==a){let t;e[23]===a?t=e[24]:(t=e=>(0,B.jsx)(Za,{category:e,tourState:a},e.name),e[23]=a,e[24]=t),m=i.map(t),e[20]=i,e[21]=a,e[22]=m}else m=e[22];let h;return e[25]!==p||e[26]!==m?(h=(0,B.jsxs)(`div`,{className:Ua.Root,children:[p,m]}),e[25]=p,e[26]=m,e[27]=h):h=e[27],h}function Ya(e){return e.targets}function Xa(e){return e.runtime.runtime?.state.datablocks}function Za(e){let t=(0,z.c)(30),{category:n,tourState:r}=e,i=r!==null&&r.categoryName===n.name,a;t[0]!==n.name||t[1]!==n.targets||t[2]!==i?(a=()=>{i?N.getState().cancel():N.getState().startTour(n.targets,n.name)},t[0]=n.name,t[1]=n.targets,t[2]=i,t[3]=a):a=t[3];let o=a,s;t[4]===n.name?s=t[5]:(s=(0,B.jsx)(`span`,{children:n.name}),t[4]=n.name,t[5]=s);let c;t[6]===n.targets.length?c=t[7]:(c=(0,B.jsxs)(`span`,{className:Ua.CategoryCount,children:[`(`,n.targets.length,`)`]}),t[6]=n.targets.length,t[7]=c);let l;t[8]===i?l=t[9]:(l=i?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Wa,{className:Ua.ExitIcon}),` Exit tour`]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Fr,{className:Ua.PlayIcon}),` Tour all`]}),t[8]=i,t[9]=l);let u;t[10]!==o||t[11]!==i||t[12]!==l?(u=(0,B.jsx)(`button`,{type:`button`,className:Ua.TourButton,"data-active":i,onClick:o,children:l}),t[10]=o,t[11]=i,t[12]=l,t[13]=u):u=t[13];let d;t[14]!==s||t[15]!==c||t[16]!==u?(d=(0,B.jsxs)(`div`,{className:Ua.CategoryHeader,children:[s,c,u]}),t[14]=s,t[15]=c,t[16]=u,t[17]=d):d=t[17];let f;if(t[18]!==n.targets||t[19]!==i||t[20]!==r){let e;t[22]!==i||t[23]!==r?(e=(e,t)=>{let n=i&&r.currentIndex===t||r!==null&&r.targets[r.currentIndex]?.entityId===e.entityId;return(0,B.jsxs)(`button`,{type:`button`,className:Ua.ItemRow,"data-active":n,onClick:()=>N.getState().flyTo(e),children:[(0,B.jsx)(Fr,{className:Ua.PlayIcon}),` `,(0,B.jsx)(`span`,{className:Ua.ItemLabel,children:e.label}),e.teamId!=null&&e.teamId>0&&(0,B.jsx)(`span`,{className:Ua.TeamBadge,"data-team":e.teamId,children:k[e.teamId]??`Team ${e.teamId}`})]},e.entityId)},t[22]=i,t[23]=r,t[24]=e):e=t[24],f=n.targets.map(e),t[18]=n.targets,t[19]=i,t[20]=r,t[21]=f}else f=t[21];let p;t[25]===f?p=t[26]:(p=(0,B.jsx)(`div`,{className:Ua.ItemList,children:f}),t[25]=f,t[26]=p);let m;return t[27]!==d||t[28]!==p?(m=(0,B.jsxs)(B.Fragment,{children:[d,p]}),t[27]=d,t[28]=p,t[29]=m):m=t[29],m}function Qa(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M16 21L11.2381 12.2698L15 6L23 21H16ZM8 10L14 21H2L8 10ZM5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5C8 6.88071 6.88071 8 5.5 8Z`},child:[]}]})(e)}function $a(e){let t=(0,z.c)(6),{isActive:n,onClick:r}=e,i=n===void 0?!1:n,a,o,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,B.jsx)(Qa,{}),o=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Explore`}),s=(0,B.jsx)(`span`,{className:mn.ButtonHint,children:`Browse maps`}),t[0]=a,t[1]=o,t[2]=s):(a=t[0],o=t[1],s=t[2]);let c;return t[3]!==i||t[4]!==r?(c=(0,B.jsxs)(`button`,{type:`button`,className:mn.Button,onClick:r,"data-active":i,children:[a,o,s]}),t[3]=i,t[4]=r,t[5]=c):c=t[5],c}function eo(e){let t=(0,z.c)(7),{missionName:n,onClick:r}=e,i=Jn(),a=Xn(),o=i===`demo`||i===`live`?a:n,s;t[0]===o?s=t[1]:(s=o?C(o):!1,t[0]=o,t[1]=s);let c=!s,l,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,B.jsx)(wa,{}),u=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Show map info`}),t[2]=l,t[3]=u):(l=t[2],u=t[3]);let d;return t[4]!==r||t[5]!==c?(d=(0,B.jsxs)(`button`,{type:`button`,className:mn.Button,"aria-label":`Show map info`,onClick:r,disabled:c,children:[l,u]}),t[4]=r,t[5]=c,t[6]=d):d=t[6],d}function to(e){let t=(0,z.c)(4),{onClick:n}=e,r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,B.jsx)(va,{}),i=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Show scores`}),t[0]=r,t[1]=i):(r=t[0],i=t[1]);let a;return t[2]===n?a=t[3]:(a=(0,B.jsxs)(`button`,{type:`button`,className:mn.Button,"aria-label":`Show scores`,onClick:n,children:[r,i]}),t[2]=n,t[3]=a),a}var H={InspectorControls:`_InspectorControls_cm86c_1`,Dropdown:`_Dropdown_cm86c_8`,Group:`_Group_cm86c_16`,CheckboxField:`_CheckboxField_cm86c_24`,Label:`_Label_cm86c_39`,Description:`_Description_cm86c_47`,Control:`_Control_cm86c_60`,Field:`_Field_cm86c_67`,Tools:`_Tools_cm86c_91`,MapInfoButton:`_MapInfoButton_cm86c_114 _Button_p0g82_2`,ShowScoresButton:`_ShowScoresButton_cm86c_115 _Button_p0g82_2`,ForceRenderButton:`_ForceRenderButton_cm86c_119`,CloseSidebarButton:`_CloseSidebarButton_cm86c_131 _Button_p0g82_2`},no=[`controls`,`preferences`,`audio`,`timeline`],ro=(0,R.memo)(function(e){let t=(0,z.c)(209),{missionName:n,missionType:r,onOpenMapInfo:i,onOpenScoreScreen:a,onOpenServerBrowser:o,onChooseMap:s,onCancelChoosingMap:l,choosingMap:u,cameraRef:d,invalidateRef:p,onClose:m}=e,h=g(),_=Jn(),y=_r(),b=Xn(),x=_===`demo`||_===`live`?b:n,S;t[0]===x?S=t[1]:(S=x?C(x):!1,t[0]=x,t[1]=S);let w=S,T=pr(io),{fogEnabled:E,setFogEnabled:D,fov:O,setFov:k,audioEnabled:A,setAudioEnabled:j,audioVolume:M,setAudioVolume:ee,animationEnabled:te,setAnimationEnabled:N,fpsLimit:P,setFpsLimit:ne,showInputOverlay:re,setShowInputOverlay:F}=c(),{speedMultiplier:ie,setSpeedMultiplier:ae,mouseSensitivity:I,setMouseSensitivity:oe,touchMode:L,setTouchMode:se,invertScroll:ce,setInvertScroll:le,invertDrag:ue,setInvertDrag:de,invertJoystick:fe,setInvertJoystick:pe}=v(),{debugMode:me,setDebugMode:he,renderOnDemand:ge,setRenderOnDemand:_e}=f(),[ve,ye]=(0,R.useState)(!1),be=(0,R.useRef)(null),xe=(0,R.useRef)(null),Se=(0,R.useRef)(null),Ce,we;t[2]===ve?(Ce=t[3],we=t[4]):(Ce=()=>{ve&&be.current?.focus()},we=[ve],t[2]=ve,t[3]=Ce,t[4]=we),(0,R.useEffect)(Ce,we);let Te;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(Te=e=>{let t=e.relatedTarget;t&&Se.current?.contains(t)||ye(!1)},t[5]=Te):Te=t[5];let Ee=Te,De;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(De=e=>{e.key===`Escape`&&(ye(!1),xe.current?.focus())},t[6]=De):De=t[6];let Oe=De,ke=_===`map`&&!y||(u??!1),Ae;t[7]!==s||t[8]!==ke?(Ae=(0,B.jsx)($a,{isActive:ke,onClick:s}),t[7]=s,t[8]=ke,t[9]=Ae):Ae=t[9];let je=!u&&y?.source===`demo`,Me;t[10]!==u||t[11]!==l||t[12]!==je?(Me=(0,B.jsx)(Nr,{isActive:je,choosingMap:u,onCancelChoosingMap:l}),t[10]=u,t[11]=l,t[12]=je,t[13]=Me):Me=t[13];let Ne;t[14]!==u||t[15]!==T||t[16]!==o?(Ne=o&&(0,B.jsx)(Lr,{isActive:!u&&T,onOpenServerBrowser:o}),t[14]=u,t[15]=T,t[16]=o,t[17]=Ne):Ne=t[17];let Pe;t[18]!==Ne||t[19]!==Ae||t[20]!==Me?(Pe=(0,B.jsxs)(`div`,{className:mn.ButtonGroup,children:[Ae,Me,Ne]}),t[18]=Ne,t[19]=Ae,t[20]=Me,t[21]=Pe):Pe=t[21];let Fe=!w,Ie;t[22]!==d||t[23]!==n||t[24]!==r||t[25]!==Fe?(Ie=(0,B.jsx)(_n,{missionName:n,missionType:r,cameraRef:d,disabled:Fe}),t[22]=d,t[23]=n,t[24]=r,t[25]=Fe,t[26]=Ie):Ie=t[26];let Le;t[27]!==n||t[28]!==i?(Le=(0,B.jsx)(eo,{missionName:n,onClick:i}),t[27]=n,t[28]=i,t[29]=Le):Le=t[29];let Re;t[30]===a?Re=t[31]:(Re=a&&(0,B.jsx)(to,{onClick:a}),t[30]=a,t[31]=Re);let ze;t[32]!==Pe||t[33]!==Ie||t[34]!==Le||t[35]!==Re?(ze=(0,B.jsxs)(`div`,{className:H.Tools,children:[Pe,Ie,Le,Re]}),t[32]=Pe,t[33]=Ie,t[34]=Le,t[35]=Re,t[36]=ze):ze=t[36];let Be;t[37]===y?.source?Be=t[38]:(Be=y?.source===`demo`&&(0,B.jsx)(pa,{value:`timeline`,label:`Timeline`,noPadding:!0,children:(0,B.jsx)(ja,{})}),t[37]=y?.source,t[38]=Be);let Ve;t[39]!==_||t[40]!==y?(Ve=_===`map`&&!y&&(0,B.jsx)(pa,{value:`mapFeatures`,label:`Map Features`,noPadding:!0,children:(0,B.jsx)(Ja,{})}),t[39]=_,t[40]=y,t[41]=Ve):Ve=t[41];let He;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(He=(0,B.jsx)(`label`,{htmlFor:`speedInput`,children:`Fly speed`}),t[42]=He):He=t[42];let Ue;t[43]===ie?Ue=t[44]:(Ue=Math.round(ie*100),t[43]=ie,t[44]=Ue);let We;t[45]===ae?We=t[46]:(We=e=>ae(parseFloat(e.target.value)/100),t[45]=ae,t[46]=We);let Ge;t[47]!==Ue||t[48]!==We?(Ge=(0,B.jsx)(`div`,{className:H.Control,children:(0,B.jsx)(`input`,{id:`speedInput`,type:`range`,min:1,max:100,step:1,value:Ue,onChange:We})}),t[47]=Ue,t[48]=We,t[49]=Ge):Ge=t[49];let Ke=h===!1?` Use your scroll wheel or trackpad to adjust while flying.`:``,qe;t[50]===Ke?qe=t[51]:(qe=(0,B.jsxs)(`p`,{className:H.Description,children:[`How fast you move in free-flying mode.`,Ke]}),t[50]=Ke,t[51]=qe);let Je;t[52]!==Ge||t[53]!==qe?(Je=(0,B.jsxs)(`div`,{className:H.Field,children:[He,Ge,qe]}),t[52]=Ge,t[53]=qe,t[54]=Je):Je=t[54];let Ye;t[55]!==h||t[56]!==se||t[57]!==L?(Ye=h?(0,B.jsxs)(`div`,{className:H.Field,children:[(0,B.jsx)(`label`,{htmlFor:`touchModeInput`,children:`Joystick`}),` `,(0,B.jsx)(`div`,{className:H.Control,children:(0,B.jsxs)(`select`,{id:`touchModeInput`,value:L,onChange:e=>se(e.target.value),children:[(0,B.jsx)(`option`,{value:`dualStick`,children:`Dual stick`}),(0,B.jsx)(`option`,{value:`moveLookStick`,children:`Single stick`})]})}),(0,B.jsx)(`p`,{className:H.Description,children:`Single stick has a unified move + look control. Dual stick has independent move + look.`})]}):null,t[55]=h,t[56]=se,t[57]=L,t[58]=Ye):Ye=t[58];let Xe;t[59]!==ce||t[60]!==h||t[61]!==le?(Xe=h===!1?(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[(0,B.jsx)(`input`,{id:`invertScroll`,type:`checkbox`,checked:ce,onChange:e=>{le(e.target.checked)}}),(0,B.jsx)(`label`,{className:H.Label,htmlFor:`invertScroll`,children:`Invert scroll direction`}),(0,B.jsx)(`p`,{className:H.Description,children:`Reverse which scroll direction increases and decreases fly speed.`})]}):null,t[59]=ce,t[60]=h,t[61]=le,t[62]=Xe):Xe=t[62];let Ze;t[63]!==fe||t[64]!==h||t[65]!==pe?(Ze=h?(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[(0,B.jsx)(`input`,{id:`invertJoystick`,type:`checkbox`,checked:fe,onChange:e=>{pe(e.target.checked)}}),(0,B.jsx)(`label`,{className:H.Label,htmlFor:`invertJoystick`,children:`Invert joystick direction`}),(0,B.jsx)(`p`,{className:H.Description,children:`Reverse joystick look direction.`})]}):null,t[63]=fe,t[64]=h,t[65]=pe,t[66]=Ze):Ze=t[66];let Qe;t[67]===de?Qe=t[68]:(Qe=e=>{de(e.target.checked)},t[67]=de,t[68]=Qe);let $e;t[69]!==ue||t[70]!==Qe?($e=(0,B.jsx)(`input`,{id:`invertDrag`,type:`checkbox`,checked:ue,onChange:Qe}),t[69]=ue,t[70]=Qe,t[71]=$e):$e=t[71];let et,tt;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(et=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`invertDrag`,children:`Invert drag direction`}),tt=(0,B.jsx)(`p`,{className:H.Description,children:`Reverse how dragging the viewport aims the camera.`}),t[72]=et,t[73]=tt):(et=t[72],tt=t[73]);let nt;t[74]===$e?nt=t[75]:(nt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[$e,et,tt]}),t[74]=$e,t[75]=nt);let rt;t[76]!==h||t[77]!==I||t[78]!==oe?(rt=h===!1&&(0,B.jsxs)(`div`,{className:H.Field,children:[(0,B.jsx)(`label`,{htmlFor:`mouseSensitivityInput`,children:`Mouse sensitivity`}),(0,B.jsx)(`div`,{className:H.Control,children:(0,B.jsx)(`input`,{id:`mouseSensitivityInput`,type:`range`,min:1,max:256,step:2,value:Math.round(I*16e3),onChange:e=>{oe(parseInt(e.target.value)/16e3)}})})]}),t[76]=h,t[77]=I,t[78]=oe,t[79]=rt):rt=t[79];let it;t[80]!==Je||t[81]!==Ye||t[82]!==Xe||t[83]!==Ze||t[84]!==nt||t[85]!==rt?(it=(0,B.jsxs)(pa,{value:`controls`,label:`Controls`,children:[Je,Ye,Xe,Ze,nt,rt]}),t[80]=Je,t[81]=Ye,t[82]=Xe,t[83]=Ze,t[84]=nt,t[85]=rt,t[86]=it):it=t[86];let at;t[87]===Symbol.for(`react.memo_cache_sentinel`)?(at=(0,B.jsx)(`label`,{htmlFor:`fovInput`,children:`FOV`}),t[87]=at):at=t[87];let ot;t[88]===O?ot=t[89]:(ot=(0,B.jsxs)(`output`,{htmlFor:`fovInput`,children:[O,`°`]}),t[88]=O,t[89]=ot);let st;t[90]===k?st=t[91]:(st=e=>k(parseInt(e.target.value)),t[90]=k,t[91]=st);let ct;t[92]!==O||t[93]!==st?(ct=(0,B.jsx)(`input`,{id:`fovInput`,type:`range`,min:75,max:120,step:5,value:O,onChange:st}),t[92]=O,t[93]=st,t[94]=ct):ct=t[94];let lt;t[95]!==ot||t[96]!==ct?(lt=(0,B.jsxs)(`div`,{className:H.Field,children:[at,(0,B.jsxs)(`div`,{className:H.Control,children:[ot,ct]})]}),t[95]=ot,t[96]=ct,t[97]=lt):lt=t[97];let ut;t[98]===F?ut=t[99]:(ut=e=>{F(e.target.checked)},t[98]=F,t[99]=ut);let dt;t[100]!==re||t[101]!==ut?(dt=(0,B.jsx)(`input`,{id:`showInputOverlayInput`,type:`checkbox`,checked:re,onChange:ut}),t[100]=re,t[101]=ut,t[102]=dt):dt=t[102];let ft;t[103]===Symbol.for(`react.memo_cache_sentinel`)?(ft=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`showInputOverlayInput`,children:`Show input overlay`}),t[103]=ft):ft=t[103];let pt;t[104]===dt?pt=t[105]:(pt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[dt,ft]}),t[104]=dt,t[105]=pt);let mt;t[106]!==lt||t[107]!==pt?(mt=(0,B.jsxs)(pa,{value:`preferences`,label:`Preferences`,children:[lt,pt]}),t[106]=lt,t[107]=pt,t[108]=mt):mt=t[108];let ht;t[109]===j?ht=t[110]:(ht=e=>{j(e.target.checked)},t[109]=j,t[110]=ht);let gt;t[111]!==A||t[112]!==ht?(gt=(0,B.jsx)(`input`,{id:`audioInput`,type:`checkbox`,checked:A,onChange:ht}),t[111]=A,t[112]=ht,t[113]=gt):gt=t[113];let _t;t[114]===Symbol.for(`react.memo_cache_sentinel`)?(_t=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`audioInput`,children:`Enable audio`}),t[114]=_t):_t=t[114];let vt;t[115]===gt?vt=t[116]:(vt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[gt,_t]}),t[115]=gt,t[116]=vt);let yt;t[117]===Symbol.for(`react.memo_cache_sentinel`)?(yt=(0,B.jsx)(`label`,{htmlFor:`volumeInput`,children:`Master volume`}),t[117]=yt):yt=t[117];let bt;t[118]===M?bt=t[119]:(bt=Math.round(M*100),t[118]=M,t[119]=bt);let xt;t[120]===bt?xt=t[121]:(xt=(0,B.jsxs)(`output`,{htmlFor:`volumeInput`,children:[bt,`%`]}),t[120]=bt,t[121]=xt);let St;t[122]===ee?St=t[123]:(St=e=>ee(parseFloat(e.target.value)),t[122]=ee,t[123]=St);let Ct;t[124]!==M||t[125]!==St?(Ct=(0,B.jsx)(`input`,{id:`volumeInput`,type:`range`,min:0,max:1,step:.05,value:M,onChange:St}),t[124]=M,t[125]=St,t[126]=Ct):Ct=t[126];let wt;t[127]!==xt||t[128]!==Ct?(wt=(0,B.jsxs)(`div`,{className:H.Field,children:[yt,(0,B.jsxs)(`div`,{className:H.Control,children:[xt,Ct]})]}),t[127]=xt,t[128]=Ct,t[129]=wt):wt=t[129];let Tt;t[130]!==vt||t[131]!==wt?(Tt=(0,B.jsxs)(pa,{value:`audio`,label:`Audio`,children:[vt,wt]}),t[130]=vt,t[131]=wt,t[132]=Tt):Tt=t[132];let Et;t[133]===D?Et=t[134]:(Et=e=>{D(e.target.checked)},t[133]=D,t[134]=Et);let Dt;t[135]!==E||t[136]!==Et?(Dt=(0,B.jsx)(`input`,{id:`fogInput`,type:`checkbox`,checked:E,onChange:Et}),t[135]=E,t[136]=Et,t[137]=Dt):Dt=t[137];let Ot;t[138]===Symbol.for(`react.memo_cache_sentinel`)?(Ot=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`fogInput`,children:`Enable fog`}),t[138]=Ot):Ot=t[138];let kt;t[139]===Dt?kt=t[140]:(kt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[Dt,Ot]}),t[139]=Dt,t[140]=kt);let At;t[141]===N?At=t[142]:(At=e=>{N(e.target.checked)},t[141]=N,t[142]=At);let jt;t[143]!==te||t[144]!==At?(jt=(0,B.jsx)(`input`,{id:`animationInput`,type:`checkbox`,checked:te,onChange:At}),t[143]=te,t[144]=At,t[145]=jt):jt=t[145];let Mt;t[146]===Symbol.for(`react.memo_cache_sentinel`)?(Mt=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`animationInput`,children:`Enable animations`}),t[146]=Mt):Mt=t[146];let Nt;t[147]===jt?Nt=t[148]:(Nt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[jt,Mt]}),t[147]=jt,t[148]=Nt);let Pt;t[149]===Symbol.for(`react.memo_cache_sentinel`)?(Pt=(0,B.jsx)(`label`,{htmlFor:`fpsLimitInput`,children:`FPS limit`}),t[149]=Pt):Pt=t[149];let Ft=P??``,It;t[150]===ne?It=t[151]:(It=e=>{let t=e.target.value;ne(t===``?null:parseInt(t))},t[150]=ne,t[151]=It);let Lt,Rt,zt,Bt,Vt;t[152]===Symbol.for(`react.memo_cache_sentinel`)?(Lt=(0,B.jsx)(`option`,{value:`30`,children:`30`}),Rt=(0,B.jsx)(`option`,{value:`60`,children:`60`}),zt=(0,B.jsx)(`option`,{value:`120`,children:`120`}),Bt=(0,B.jsx)(`option`,{value:`144`,children:`144`}),Vt=(0,B.jsx)(`option`,{value:``,children:`No limit`}),t[152]=Lt,t[153]=Rt,t[154]=zt,t[155]=Bt,t[156]=Vt):(Lt=t[152],Rt=t[153],zt=t[154],Bt=t[155],Vt=t[156]);let Ht;t[157]!==Ft||t[158]!==It?(Ht=(0,B.jsx)(`div`,{className:H.Control,children:(0,B.jsxs)(`select`,{id:`fpsLimitInput`,value:Ft,onChange:It,children:[Lt,Rt,zt,Bt,Vt]})}),t[157]=Ft,t[158]=It,t[159]=Ht):Ht=t[159];let Ut;t[160]===Symbol.for(`react.memo_cache_sentinel`)?(Ut=(0,B.jsx)(`p`,{className:H.Description,children:`Give your device a break by capping the framerate.`}),t[160]=Ut):Ut=t[160];let Wt;t[161]===Ht?Wt=t[162]:(Wt=(0,B.jsxs)(`div`,{className:H.Field,children:[Pt,Ht,Ut]}),t[161]=Ht,t[162]=Wt);let Gt;t[163]!==kt||t[164]!==Nt||t[165]!==Wt?(Gt=(0,B.jsxs)(pa,{value:`graphics`,label:`Graphics`,children:[kt,Nt,Wt]}),t[163]=kt,t[164]=Nt,t[165]=Wt,t[166]=Gt):Gt=t[166];let Kt;t[167]===he?Kt=t[168]:(Kt=e=>{he(e.target.checked)},t[167]=he,t[168]=Kt);let qt;t[169]!==me||t[170]!==Kt?(qt=(0,B.jsx)(`input`,{id:`debugInput`,type:`checkbox`,checked:me,onChange:Kt}),t[169]=me,t[170]=Kt,t[171]=qt):qt=t[171];let Jt;t[172]===Symbol.for(`react.memo_cache_sentinel`)?(Jt=(0,B.jsx)(`label`,{className:H.Label,htmlFor:`debugInput`,children:`Render debug visuals`}),t[172]=Jt):Jt=t[172];let Yt;t[173]===qt?Yt=t[174]:(Yt=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[qt,Jt]}),t[173]=qt,t[174]=Yt);let Xt;t[175]===_e?Xt=t[176]:(Xt=e=>{_e(e.target.checked)},t[175]=_e,t[176]=Xt);let Zt;t[177]!==ge||t[178]!==Xt?(Zt=(0,B.jsx)(`input`,{id:`onDemandInput`,type:`checkbox`,checked:ge,onChange:Xt}),t[177]=ge,t[178]=Xt,t[179]=Zt):Zt=t[179];let Qt;t[180]===Symbol.for(`react.memo_cache_sentinel`)?(Qt=(0,B.jsx)(`label`,{htmlFor:`onDemandInput`,children:`Render on demand `}),t[180]=Qt):Qt=t[180];let $t;t[181]===p?$t=t[182]:($t=()=>p.current?.(),t[181]=p,t[182]=$t);let en;t[183]===Symbol.for(`react.memo_cache_sentinel`)?(en=(0,B.jsx)(nn,{}),t[183]=en):en=t[183];let tn;t[184]===$t?tn=t[185]:(tn=(0,B.jsxs)(`div`,{className:H.Label,children:[Qt,(0,B.jsx)(`button`,{type:`button`,className:H.ForceRenderButton,title:`Force render`,"aria-label":`Force render`,onClick:$t,children:en})]}),t[184]=$t,t[185]=tn);let rn;t[186]===Symbol.for(`react.memo_cache_sentinel`)?(rn=(0,B.jsx)(`p`,{className:H.Description,children:`Significantly decreases CPU and GPU usage by only rendering frames when requested. Helpful when developing parts of the app unrelated to rendering.`}),t[186]=rn):rn=t[186];let an;t[187]!==Zt||t[188]!==tn?(an=(0,B.jsxs)(`div`,{className:H.CheckboxField,children:[Zt,tn,rn]}),t[187]=Zt,t[188]=tn,t[189]=an):an=t[189];let on;t[190]!==Yt||t[191]!==an?(on=(0,B.jsxs)(pa,{value:`debug`,label:`Debug`,children:[Yt,an]}),t[190]=Yt,t[191]=an,t[192]=on):on=t[192];let sn;t[193]!==Be||t[194]!==Ve||t[195]!==it||t[196]!==mt||t[197]!==Tt||t[198]!==Gt||t[199]!==on?(sn=(0,B.jsx)(`div`,{className:H.Accordions,children:(0,B.jsxs)(fa,{type:`multiple`,defaultValue:no,children:[Be,Ve,it,mt,Tt,Gt,on]})}),t[193]=Be,t[194]=Ve,t[195]=it,t[196]=mt,t[197]=Tt,t[198]=Gt,t[199]=on,t[200]=sn):sn=t[200];let cn;t[201]===Symbol.for(`react.memo_cache_sentinel`)?(cn=(0,B.jsx)(`span`,{className:mn.ButtonLabel,children:`Close`}),t[201]=cn):cn=t[201];let ln;t[202]===m?ln=t[203]:(ln=(0,B.jsx)(`button`,{className:H.CloseSidebarButton,onClick:m,children:cn}),t[202]=m,t[203]=ln);let un;return t[204]!==ve||t[205]!==ze||t[206]!==sn||t[207]!==ln?(un=(0,B.jsx)(`div`,{className:H.InspectorControls,children:(0,B.jsx)(`div`,{ref:Se,children:(0,B.jsxs)(`div`,{className:H.Dropdown,ref:be,id:`settingsPanel`,tabIndex:-1,onKeyDown:Oe,onBlur:Ee,"data-open":ve,children:[ze,sn,ln]})})}),t[204]=ve,t[205]=ze,t[206]=sn,t[207]=ln,t[208]=un):un=t[208],un});function io(e){return e.gameStatus===`connected`||e.gameStatus===`authenticating`}function ao(...e){}function oo(e,t){return so(e)?e(co(t)?t():t):e}function so(e){return typeof e==`function`}function co(e){return typeof e==`function`}function lo(e,t){return typeof Object.hasOwn==`function`?Object.hasOwn(e,t):Object.prototype.hasOwnProperty.call(e,t)}function U(...e){return(...t)=>{for(let n of e)typeof n==`function`&&n(...t)}}function uo(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``)}function fo(e,t){let n={...e};for(let e of t)lo(n,e)&&delete n[e];return n}function po(e,t){let n={};for(let r of t)lo(e,r)&&(n[r]=e[r]);return n}function mo(e){return e}function ho(e,t){if(!e)throw Error(typeof t==`string`?t:`Invariant failed`)}function go(e){return Object.keys(e)}function _o(e,...t){let n=typeof e==`function`?e(...t):e;return n==null?!1:!n}function vo(e){return e.disabled||e[`aria-disabled`]===!0||e[`aria-disabled`]===`true`}function yo(e){let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t}function W(...e){for(let t of e)if(t!==void 0)return t}function bo(e,t){typeof e==`function`?e(t):e&&(e.current=t)}function xo(e){return!e||!(0,R.isValidElement)(e)?!1:`ref`in e.props||`ref`in e}function So(e){return xo(e)?{...e.props}.ref||e.ref:null}function Co(e,t){let n={...e};for(let r in t){if(!lo(t,r))continue;if(r===`className`){let r=`className`;n[r]=e[r]?`${e[r]} ${t[r]}`:t[r];continue}if(r===`style`){let r=`style`;n[r]=e[r]?{...e[r],...t[r]}:t[r];continue}let i=t[r];if(typeof i==`function`&&r.startsWith(`on`)){let t=e[r];if(typeof t==`function`){n[r]=(...e)=>{i(...e),t(...e)};continue}}n[r]=i}return n}var wo=To();function To(){return typeof window<`u`&&!!window.document?.createElement}function Eo(e){return e?`self`in e?e.document:e.ownerDocument||document:document}function Do(e){return e?`self`in e?e.self:Eo(e).defaultView||window:self}function Oo(e,t=!1){let{activeElement:n}=Eo(e);if(!n?.nodeName)return null;if(ko(n)&&n.contentDocument?.body)return Oo(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=Eo(n).getElementById(e);if(t)return t}}return n}function G(e,t){return e===t||e.contains(t)}function ko(e){return e.tagName===`IFRAME`}function Ao(e){let t=e.tagName.toLowerCase();return t===`button`?!0:t===`input`&&e.type?jo.indexOf(e.type)!==-1:!1}var jo=[`button`,`color`,`file`,`image`,`reset`,`submit`];function Mo(e){if(typeof e.checkVisibility==`function`)return e.checkVisibility();let t=e;return t.offsetWidth>0||t.offsetHeight>0||e.getClientRects().length>0}function No(e){try{let t=e instanceof HTMLInputElement&&e.selectionStart!==null,n=e.tagName===`TEXTAREA`;return t||n||!1}catch{return!1}}function Po(e){return e.isContentEditable||No(e)}function Fo(e){if(No(e))return e.value;if(e.isContentEditable){let t=Eo(e).createRange();return t.selectNodeContents(e),t.toString()}return``}function Io(e){let t=0,n=0;if(No(e))t=e.selectionStart||0,n=e.selectionEnd||0;else if(e.isContentEditable){let r=Eo(e).getSelection();if(r?.rangeCount&&r.anchorNode&&G(e,r.anchorNode)&&r.focusNode&&G(e,r.focusNode)){let i=r.getRangeAt(0),a=i.cloneRange();a.selectNodeContents(e),a.setEnd(i.startContainer,i.startOffset),t=a.toString().length,a.setEnd(i.endContainer,i.endOffset),n=a.toString().length}}return{start:t,end:n}}function Lo(e,t){let n=[`dialog`,`menu`,`listbox`,`tree`,`grid`],r=e?.getAttribute(`role`);return r&&n.indexOf(r)!==-1?r:t}function Ro(e){if(!e)return null;let t=e=>e===`auto`||e===`scroll`;if(e.clientHeight&&e.scrollHeight>e.clientHeight){let{overflowY:n}=getComputedStyle(e);if(t(n))return e}else if(e.clientWidth&&e.scrollWidth>e.clientWidth){let{overflowX:n}=getComputedStyle(e);if(t(n))return e}return Ro(e.parentElement)||document.scrollingElement||document.body}function zo(e,...t){/text|search|password|tel|url/i.test(e.type)&&e.setSelectionRange(...t)}function Bo(e,t){let n=e.map((e,t)=>[t,e]),r=!1;return n.sort(([e,n],[i,a])=>{let o=t(n),s=t(a);return o===s||!o||!s?0:Vo(o,s)?(e>i&&(r=!0),-1):(et):e}function Vo(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}function Ho(){return wo&&!!navigator.maxTouchPoints}function Uo(){return wo?/mac|iphone|ipad|ipod/i.test(navigator.platform):!1}function Wo(){return wo&&Uo()&&/apple/i.test(navigator.vendor)}function Go(){return wo&&/firefox\//i.test(navigator.userAgent)}function Ko(){return wo&&navigator.platform.startsWith(`Mac`)&&!Ho()}function qo(e){return!!(e.currentTarget&&!G(e.currentTarget,e.target))}function Jo(e){return e.target===e.currentTarget}function Yo(e){let t=e.currentTarget;if(!t)return!1;let n=Uo();if(n&&!e.metaKey||!n&&!e.ctrlKey)return!1;let r=t.tagName.toLowerCase();return r===`a`||r===`button`&&t.type===`submit`||r===`input`&&t.type===`submit`}function Xo(e){let t=e.currentTarget;if(!t)return!1;let n=t.tagName.toLowerCase();return e.altKey?n===`a`||n===`button`&&t.type===`submit`||n===`input`&&t.type===`submit`:!1}function Zo(e,t){let n=new FocusEvent(`blur`,t),r=e.dispatchEvent(n),i={...t,bubbles:!0};return e.dispatchEvent(new FocusEvent(`focusout`,i)),r}function Qo(e,t,n){let r=new KeyboardEvent(t,n);return e.dispatchEvent(r)}function $o(e,t){let n=new MouseEvent(`click`,t);return e.dispatchEvent(n)}function es(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!G(n,r)}function ts(e,t,n,r){let i=(e=>{if(r){let t=setTimeout(e,r);return()=>clearTimeout(t)}let t=requestAnimationFrame(e);return()=>cancelAnimationFrame(t)})(()=>{e.removeEventListener(t,a,!0),n()}),a=()=>{i(),n()};return e.addEventListener(t,a,{once:!0,capture:!0}),i}function ns(e,t,n,r=window){let i=[];try{r.document.addEventListener(e,t,n);for(let a of Array.from(r.frames))i.push(ns(e,t,n,a))}catch{}return()=>{try{r.document.removeEventListener(e,t,n)}catch{}for(let e of i)e()}}var rs={...R},is=rs.useId;rs.useDeferredValue;var as=rs.useInsertionEffect,K=wo?R.useLayoutEffect:R.useEffect;function os(e){let[t]=(0,R.useState)(e);return t}function ss(e){let t=(0,R.useRef)(e);return K(()=>{t.current=e}),t}function q(e){let t=(0,R.useRef)(()=>{throw Error(`Cannot call an event handler while rendering.`)});return as?as(()=>{t.current=e}):t.current=e,(0,R.useCallback)((...e)=>t.current?.call(t,...e),[])}function cs(e){let[t,n]=(0,R.useState)(null);return K(()=>{if(t==null||!e)return;let n=null;return e(e=>(n=e,t)),()=>{e(n)}},[t,e]),[t,n]}function ls(...e){return(0,R.useMemo)(()=>{if(e.some(Boolean))return t=>{for(let n of e)bo(n,t)}},e)}function us(e){if(is){let t=is();return e||t}let[t,n]=(0,R.useState)(e);return K(()=>{e||t||n(`id-${Math.random().toString(36).slice(2,8)}`)},[e,t]),e||t}function ds(e,t){let n=e=>{if(typeof e==`string`)return e},[r,i]=(0,R.useState)(()=>n(t));return K(()=>{i((e&&`current`in e?e.current:e)?.tagName.toLowerCase()||n(t))},[e,t]),r}function fs(e,t,n){let r=os(n),[i,a]=(0,R.useState)(r);return(0,R.useEffect)(()=>{let n=e&&`current`in e?e.current:e;if(!n)return;let i=()=>{a(n.getAttribute(t)??r)},o=new MutationObserver(i);return o.observe(n,{attributeFilter:[t]}),i(),()=>o.disconnect()},[e,t,r]),i}function ps(e,t){let n=(0,R.useRef)(!1);(0,R.useEffect)(()=>{if(n.current)return e();n.current=!0},t),(0,R.useEffect)(()=>()=>{n.current=!1},[])}function ms(e,t){let n=(0,R.useRef)(!1);K(()=>{if(n.current)return e();n.current=!0},t),K(()=>()=>{n.current=!1},[])}function hs(){return(0,R.useReducer)(()=>[],[])}function gs(e){return q(typeof e==`function`?e:()=>e)}function _s(e,t,n=[]){let r=(0,R.useCallback)(n=>(e.wrapElement&&(n=e.wrapElement(n)),t(n)),[...n,e.wrapElement]);return{...e,wrapElement:r}}function vs(e=!1,t){let[n,r]=(0,R.useState)(null);return{portalRef:ls(r,t),portalNode:n,domReady:!e||n}}function ys(e,t,n){let r=e.onLoadedMetadataCapture,i=(0,R.useMemo)(()=>Object.assign(()=>{},r,{[t]:n}),[r,t,n]);return[r?.[t],{onLoadedMetadataCapture:i}]}var bs=!1;function xs(){return(0,R.useEffect)(()=>{bs||=(ns(`mousemove`,Es,!0),ns(`mousedown`,Ds,!0),ns(`mouseup`,Ds,!0),ns(`keydown`,Ds,!0),ns(`scroll`,Ds,!0),!0)},[]),q(()=>Ss)}var Ss=!1,Cs=0,ws=0;function Ts(e){let t=e.movementX||e.screenX-Cs,n=e.movementY||e.screenY-ws;return Cs=e.screenX,ws=e.screenY,t||n||!1}function Es(e){Ts(e)&&(Ss=!0)}function Ds(){Ss=!1}function Os(e){let t=R.forwardRef((t,n)=>e({...t,ref:n}));return t.displayName=e.displayName||e.name,t}function ks(e,t){return R.memo(e,t)}function As(e,t){let{wrapElement:n,render:r,...i}=t,a=ls(t.ref,So(r)),o;if(R.isValidElement(r)){let e={...r.props,ref:a};o=R.cloneElement(r,Co(i,e))}else o=r?r(i):(0,B.jsx)(e,{...i});return n?n(o):o}function js(e){let t=(t={})=>e(t);return t.displayName=e.name,t}function Ms(e=[],t=[]){let n=R.createContext(void 0),r=R.createContext(void 0),i=()=>R.useContext(n),a=(e=!1)=>{let t=R.useContext(r),n=i();return e?t:t||n},o=()=>{let e=R.useContext(r),t=i();if(!(e&&e===t))return t},s=t=>e.reduceRight((e,n)=>(0,B.jsx)(n,{...t,children:e}),(0,B.jsx)(n.Provider,{...t}));return{context:n,scopedContext:r,useContext:i,useScopedContext:a,useProviderContext:o,ContextProvider:s,ScopedContextProvider:e=>(0,B.jsx)(s,{...e,children:t.reduceRight((t,n)=>(0,B.jsx)(n,{...e,children:t}),(0,B.jsx)(r.Provider,{...e}))})}}var Ns=Ms(),Ps=Ns.useContext;Ns.useScopedContext,Ns.useProviderContext;var Fs=Ns.ContextProvider,Is=Ns.ScopedContextProvider,Ls=Ms([Fs],[Is]),Rs=Ls.useContext;Ls.useScopedContext;var zs=Ls.useProviderContext,Bs=Ls.ContextProvider,Vs=Ls.ScopedContextProvider,Hs=(0,R.createContext)(void 0),Us=(0,R.createContext)(void 0);function Ws(e,t){return e.find(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Gs(e,t){return t&&e.item(t)||null}function Ks(e){let t=[];for(let n of e){let e=t.find(e=>e[0]?.rowId===n.rowId);e?e.push(n):t.push([n])}return t}function qs(e,t=!1){if(No(e))e.setSelectionRange(t?e.value.length:0,e.value.length);else if(e.isContentEditable){let n=Eo(e).getSelection();n?.selectAllChildren(e),t&&n?.collapseToEnd()}}var Js=Symbol(`FOCUS_SILENTLY`);function Ys(e){e[Js]=!0,e.focus({preventScroll:!0})}function Xs(e){let t=e[Js];return delete e[Js],t}function Zs(e,t,n){if(!t||t===n)return!1;let r=e.item(t.id);return!(!r||n&&r.element===n)}var Qs=`div`,$s=js(function({store:e,shouldRegisterItem:t=!0,getItem:n=mo,element:r,...i}){let a=Ps();e||=a;let o=us(i.id),s=(0,R.useRef)(r);return(0,R.useEffect)(()=>{let r=s.current;if(!o||!r||!t)return;let i=n({id:o,element:r});return e?.renderItem(i)},[o,t,n,e]),i={...i,ref:ls(s,i.ref)},yo(i)});Os(function(e){return As(Qs,$s(e))});var ec=(0,R.createContext)(!0),tc=`input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], summary, iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])`;function nc(e){return Number.parseInt(e.getAttribute(`tabindex`)||`0`,10)<0}function rc(e){return!(!e.matches(tc)||!Mo(e)||e.closest(`[inert]`))}function ic(e){if(!rc(e)||nc(e))return!1;if(!(`form`in e)||!e.form||e.checked||e.type!==`radio`)return!0;let t=e.form.elements.namedItem(e.name);if(!t||!(`length`in t))return!0;let n=Oo(e);return!n||n===e||!(`form`in n)||n.form!==e.form||n.name!==e.name}function ac(e,t){let n=Array.from(e.querySelectorAll(tc));t&&n.unshift(e);let r=n.filter(rc);return r.forEach((e,t)=>{if(!ko(e))return;let n=e.contentDocument?.body;n&&r.splice(t,1,...ac(n))}),r}function oc(e,t,n){let r=Array.from(e.querySelectorAll(tc)),i=r.filter(ic);return t&&ic(e)&&i.unshift(e),i.forEach((e,t)=>{if(!ko(e))return;let r=e.contentDocument?.body;if(!r)return;let a=oc(r,!1,n);i.splice(t,1,...a)}),!i.length&&n?r:i}function sc(e,t,n){let[r]=oc(e,t,n);return r||null}function cc(e,t,n,r){let i=Oo(e),a=ac(e,t),o=a.indexOf(i),s=a.slice(o+1);return s.find(ic)||(n?a.find(ic):null)||(r?s[0]:null)||null}function lc(e,t){return cc(document.body,!1,e,t)}function uc(e,t,n,r){let i=Oo(e),a=ac(e,t).reverse(),o=a.indexOf(i),s=a.slice(o+1);return s.find(ic)||(n?a.find(ic):null)||(r?s[0]:null)||null}function dc(e,t){return uc(document.body,!1,e,t)}function fc(e){for(;e&&!rc(e);)e=e.closest(tc);return e||null}function pc(e){let t=Oo(e);if(!t)return!1;if(t===e)return!0;let n=t.getAttribute(`aria-activedescendant`);return n?n===e.id:!1}function mc(e){let t=Oo(e);if(!t)return!1;if(G(e,t))return!0;let n=t.getAttribute(`aria-activedescendant`);return!n||!(`id`in e)?!1:n===e.id?!0:!!e.querySelector(`#${CSS.escape(n)}`)}function hc(e){!mc(e)&&rc(e)&&e.focus()}function gc(e){let t=e.getAttribute(`tabindex`)??``;e.setAttribute(`data-tabindex`,t),e.setAttribute(`tabindex`,`-1`)}function _c(e,t){let n=oc(e,t);for(let e of n)gc(e)}function vc(e){let t=e.querySelectorAll(`[data-tabindex]`),n=e=>{let t=e.getAttribute(`data-tabindex`);e.removeAttribute(`data-tabindex`),t?e.setAttribute(`tabindex`,t):e.removeAttribute(`tabindex`)};e.hasAttribute(`data-tabindex`)&&n(e);for(let e of t)n(e)}function yc(e,t){`scrollIntoView`in e?(e.focus({preventScroll:!0}),e.scrollIntoView({block:`nearest`,inline:`nearest`,...t})):e.focus()}var bc=`div`,xc=Wo(),Sc=[`text`,`search`,`url`,`tel`,`email`,`password`,`number`,`date`,`month`,`week`,`time`,`datetime`,`datetime-local`],Cc=Symbol(`safariFocusAncestor`);function wc(e){return e?!!e[Cc]:!1}function Tc(e,t){e&&(e[Cc]=t)}function Ec(e){let{tagName:t,readOnly:n,type:r}=e;return t===`TEXTAREA`&&!n||t===`SELECT`&&!n?!0:t===`INPUT`&&!n?Sc.includes(r):!!(e.isContentEditable||e.getAttribute(`role`)===`combobox`&&e.dataset.name)}function Dc(e){return`labels`in e?e.labels:null}function Oc(e){return e.tagName.toLowerCase()===`input`&&e.type?e.type===`radio`||e.type===`checkbox`:!1}function kc(e){return e?e===`button`||e===`summary`||e===`input`||e===`select`||e===`textarea`||e===`a`:!0}function Ac(e){return e?e===`button`||e===`input`||e===`select`||e===`textarea`:!0}function jc(e,t,n,r,i){return e?t?n&&!r?-1:void 0:n?i:i||0:i}function Mc(e,t){return q(n=>{e?.(n),!n.defaultPrevented&&t&&(n.stopPropagation(),n.preventDefault())})}var Nc=!1,Pc=!0;function Fc(e){let t=e.target;t&&`hasAttribute`in t&&(t.hasAttribute(`data-focus-visible`)||(Pc=!1))}function Ic(e){e.metaKey||e.ctrlKey||e.altKey||(Pc=!0)}var Lc=js(function({focusable:e=!0,accessibleWhenDisabled:t,autoFocus:n,onFocusVisible:r,...i}){let a=(0,R.useRef)(null);(0,R.useEffect)(()=>{e&&(Nc||=(ns(`mousedown`,Fc,!0),ns(`keydown`,Ic,!0),!0))},[e]),xc&&(0,R.useEffect)(()=>{if(!e)return;let t=a.current;if(!t||!Oc(t))return;let n=Dc(t);if(!n)return;let r=()=>queueMicrotask(()=>t.focus());for(let e of n)e.addEventListener(`mouseup`,r);return()=>{for(let e of n)e.removeEventListener(`mouseup`,r)}},[e]);let o=e&&vo(i),s=!!o&&!t,[c,l]=(0,R.useState)(!1);(0,R.useEffect)(()=>{e&&s&&c&&l(!1)},[e,s,c]),(0,R.useEffect)(()=>{if(!e||!c)return;let t=a.current;if(!t||typeof IntersectionObserver>`u`)return;let n=new IntersectionObserver(()=>{rc(t)||l(!1)});return n.observe(t),()=>n.disconnect()},[e,c]);let u=Mc(i.onKeyPressCapture,o),d=Mc(i.onMouseDownCapture,o),f=Mc(i.onClickCapture,o),p=i.onMouseDown,m=q(t=>{if(p?.(t),t.defaultPrevented||!e)return;let n=t.currentTarget;if(!xc||qo(t)||!Ao(n)&&!Oc(n))return;let r=!1,i=()=>{r=!0};n.addEventListener(`focusin`,i,{capture:!0,once:!0});let a=fc(n.parentElement);Tc(a,!0),ts(n,`mouseup`,()=>{n.removeEventListener(`focusin`,i,!0),Tc(a,!1),!r&&hc(n)})}),h=(t,n)=>{if(n&&(t.currentTarget=n),!e)return;let i=t.currentTarget;i&&pc(i)&&(r?.(t),!t.defaultPrevented&&(i.dataset.focusVisible=`true`,l(!0)))},g=i.onKeyDownCapture,_=q(t=>{if(g?.(t),t.defaultPrevented||!e||c||t.metaKey||t.altKey||t.ctrlKey||!Jo(t))return;let n=t.currentTarget;ts(n,`focusout`,()=>h(t,n))}),v=i.onFocusCapture,y=q(t=>{if(v?.(t),t.defaultPrevented||!e)return;if(!Jo(t)){l(!1);return}let n=t.currentTarget;Pc||Ec(t.target)?ts(t.target,`focusout`,()=>h(t,n)):l(!1)}),b=i.onBlur,x=q(t=>{b?.(t),e&&es(t)&&(t.currentTarget.removeAttribute(`data-focus-visible`),l(!1))}),S=(0,R.useContext)(ec),C=q(t=>{e&&n&&t&&S&&queueMicrotask(()=>{pc(t)||rc(t)&&t.focus()})}),w=ds(a),T=e&&kc(w),E=e&&Ac(w),D=i.style,O=(0,R.useMemo)(()=>s?{pointerEvents:`none`,...D}:D,[s,D]);return i={"data-focus-visible":e&&c||void 0,"data-autofocus":n||void 0,"aria-disabled":o||void 0,...i,ref:ls(a,C,i.ref),style:O,tabIndex:jc(e,s,T,E,i.tabIndex),disabled:E&&s?!0:void 0,contentEditable:o?void 0:i.contentEditable,onKeyPressCapture:u,onClickCapture:f,onMouseDownCapture:d,onMouseDown:m,onKeyDownCapture:_,onFocusCapture:y,onBlur:x},yo(i)});Os(function(e){return As(bc,Lc(e))});var Rc=`button`;function zc(e){if(!e.isTrusted)return!1;let t=e.currentTarget;return e.key===`Enter`?Ao(t)||t.tagName===`SUMMARY`||t.tagName===`A`:e.key===` `?Ao(t)||t.tagName===`SUMMARY`||t.tagName===`INPUT`||t.tagName===`SELECT`:!1}var Bc=Symbol(`command`),Vc=js(function({clickOnEnter:e=!0,clickOnSpace:t=!0,...n}){let r=(0,R.useRef)(null),[i,a]=(0,R.useState)(!1);(0,R.useEffect)(()=>{r.current&&a(Ao(r.current))},[]);let[o,s]=(0,R.useState)(!1),c=(0,R.useRef)(!1),l=vo(n),[u,d]=ys(n,Bc,!0),f=n.onKeyDown,p=q(n=>{f?.(n);let r=n.currentTarget;if(n.defaultPrevented||u||l||!Jo(n)||No(r)||r.isContentEditable)return;let i=e&&n.key===`Enter`,a=t&&n.key===` `,o=n.key===`Enter`&&!e,d=n.key===` `&&!t;if(o||d){n.preventDefault();return}if(i||a){let e=zc(n);if(i){if(!e){n.preventDefault();let{view:e,...t}=n,i=()=>$o(r,t);Go()?ts(r,`keyup`,i):queueMicrotask(i)}}else a&&(c.current=!0,e||(n.preventDefault(),s(!0)))}}),m=n.onKeyUp,h=q(e=>{if(m?.(e),e.defaultPrevented||u||l||e.metaKey)return;let n=t&&e.key===` `;if(c.current&&n&&(c.current=!1,!zc(e))){e.preventDefault(),s(!1);let t=e.currentTarget,{view:n,...r}=e;queueMicrotask(()=>$o(t,r))}});return n={"data-active":o||void 0,type:i?`button`:void 0,...d,...n,ref:ls(r,n.ref),onKeyDown:p,onKeyUp:h},n=Lc(n),n});Os(function(e){return As(Rc,Vc(e))});function Hc(e,t){let n=e.__unstableInternals;return ho(n,`Invalid store`),n[t]}function Uc(e,...t){let n=e,r=n,i=Symbol(),a=ao,o=new Set,s=new Set,c=new Set,l=new Set,u=new Set,d=new WeakMap,f=new WeakMap,p=e=>(c.add(e),()=>c.delete(e)),m=()=>{let e=o.size,r=Symbol();o.add(r);let i=()=>{o.delete(r),!o.size&&a()};if(e)return i;let s=go(n).map(e=>U(...t.map(t=>{let n=(t?.getState)?.call(t);if(n&&lo(n,e))return qc(t,[e],t=>{S(e,t[e],!0)})}))),l=[];for(let e of c)l.push(e());let u=t.map(Gc);return a=U(...s,...l,...u),i},h=(e,t,n=l)=>(n.add(t),f.set(t,e),()=>{var e;(e=d.get(t))==null||e(),d.delete(t),f.delete(t),n.delete(t)}),g=(e,t)=>h(e,t),_=(e,t)=>(d.set(t,t(n,n)),h(e,t)),v=(e,t)=>(d.set(t,t(n,r)),h(e,t,u)),y=e=>Uc(po(n,e),C),b=e=>Uc(fo(n,e),C),x=()=>n,S=(e,a,o=!1)=>{var c;if(!lo(n,e))return;let p=oo(a,n[e]);if(p===n[e])return;if(!o)for(let n of t)(c=n?.setState)==null||c.call(n,e,p);let m=n;n={...n,[e]:p};let h=Symbol();i=h,s.add(e);let g=(t,r,i)=>{var a;let o=f.get(t);(!o||o.some(t=>i?i.has(t):t===e))&&((a=d.get(t))==null||a(),d.set(t,t(n,r)))};for(let e of l)g(e,m);queueMicrotask(()=>{if(i!==h)return;let e=n;for(let e of u)g(e,r,s);r=e,s.clear()})},C={getState:x,setState:S,__unstableInternals:{setup:p,init:m,subscribe:g,sync:_,batch:v,pick:y,omit:b}};return C}function Wc(e,...t){if(e)return Hc(e,`setup`)(...t)}function Gc(e,...t){if(e)return Hc(e,`init`)(...t)}function Kc(e,...t){if(e)return Hc(e,`subscribe`)(...t)}function qc(e,...t){if(e)return Hc(e,`sync`)(...t)}function Jc(e,...t){if(e)return Hc(e,`batch`)(...t)}function Yc(e,...t){if(e)return Hc(e,`omit`)(...t)}function Xc(e,...t){if(e)return Hc(e,`pick`)(...t)}function Zc(...e){let t={};for(let n of e){let e=(n?.getState)?.call(n);e&&Object.assign(t,e)}let n=Uc(t,...e);return Object.assign({},...e,n)}var{useSyncExternalStore:Qc}=e(ee(),1).default,$c=()=>()=>{};function J(e,t=mo){let n=R.useCallback(t=>e?Kc(e,null,t):$c(),[e]),r=()=>{let n=typeof t==`string`?t:null,r=typeof t==`function`?t:null,i=e?.getState();if(r)return r(i);if(i&&n&&lo(i,n))return i[n]};return Qc(n,r,r)}function el(e,t){let n=R.useRef({}),r=R.useCallback(t=>e?Kc(e,null,t):$c(),[e]),i=()=>{let r=e?.getState(),i=!1,a=n.current;for(let e in t){let n=t[e];if(typeof n==`function`){let t=n(r);t!==a[e]&&(a[e]=t,i=!0)}if(typeof n==`string`){if(!r||!lo(r,n))continue;let t=r[n];t!==a[e]&&(a[e]=t,i=!0)}}return i&&(n.current={...a}),n.current};return Qc(r,i,i)}function tl(e,t,n,r){let i=lo(t,n)?t[n]:void 0,a=ss({value:i,setValue:r?t[r]:void 0});K(()=>qc(e,[n],(e,t)=>{let{value:r,setValue:i}=a.current;i&&e[n]!==t[n]&&e[n]!==r&&i(e[n])}),[e,n]),K(()=>{if(i!==void 0)return e.setState(n,i),Jc(e,[n],()=>{i!==void 0&&e.setState(n,i)})})}function nl(e,t){let[n,r]=R.useState(()=>e(t));K(()=>Gc(n),[n]);let i=R.useCallback(e=>J(n,e),[n]);return[R.useMemo(()=>({...n,useState:i}),[n,i]),q(()=>{r(n=>e({...t,...n.getState()}))})]}var rl=`button`;function il(e){return Po(e)?!0:e.tagName===`INPUT`&&!Ao(e)}function al(e,t=!1){let n=e.clientHeight,{top:r}=e.getBoundingClientRect(),i=Math.max(n*.875,n-40)*1.5,a=t?n-i+r:i+r;return e.tagName===`HTML`?a+e.scrollTop:a}function ol(e,t=!1){let{top:n}=e.getBoundingClientRect();return t?n+e.clientHeight:n}function sl(e,t,n,r=!1){if(!t||!n)return;let{renderedItems:i}=t.getState(),a=Ro(e);if(!a)return;let o=al(a,r),s,c;for(let e=0;e=0){c!==void 0&&ce.rowId===m);return f.ariaPosInSet+t.findIndex(e=>e.id===u)},isTabbable(t){if(!t?.renderedItems.length)return!0;if(t.virtualFocus)return!1;if(i)return!0;if(t.activeId===null)return!1;let n=e?.item(t.activeId);return n?.disabled||!n?.element?!0:t.activeId===u}}),b=(0,R.useCallback)(e=>{let t={...e,id:u||e.id,rowId:m,disabled:!!p,children:e.element?.textContent};return a?a(t):t},[u,m,p,a]),x=c.onFocus,S=(0,R.useRef)(!1),C=q(t=>{if(x?.(t),t.defaultPrevented||qo(t)||!u||!e||cl(t,e))return;let{virtualFocus:n,baseElement:r}=e.getState();e.setActiveId(u),Po(t.currentTarget)&&qs(t.currentTarget),n&&Jo(t)&&(il(t.currentTarget)||r?.isConnected&&(Wo()&&t.currentTarget.hasAttribute(`data-autofocus`)&&t.currentTarget.scrollIntoView({block:`nearest`,inline:`nearest`}),S.current=!0,t.relatedTarget===r||Zs(e,t.relatedTarget)?Ys(r):r.focus()))}),w=c.onBlurCapture,T=q(t=>{w?.(t),!t.defaultPrevented&&e?.getState()?.virtualFocus&&S.current&&(S.current=!1,t.preventDefault(),t.stopPropagation())}),E=c.onKeyDown,D=gs(n),O=gs(r),k=q(t=>{if(E?.(t),t.defaultPrevented||!Jo(t)||!e)return;let{currentTarget:n}=t,r=e.getState(),i=!!e.item(u)?.rowId,a=r.orientation!==`horizontal`,o=r.orientation!==`vertical`,s=()=>!!(i||o||!r.baseElement||!No(r.baseElement)),c={ArrowUp:(i||a)&&e.up,ArrowRight:(i||o)&&e.next,ArrowDown:(i||a)&&e.down,ArrowLeft:(i||o)&&e.previous,Home:()=>{if(s())return!i||t.ctrlKey?e?.first():e?.previous(-1)},End:()=>{if(s())return!i||t.ctrlKey?e?.last():e?.next(-1)},PageUp:()=>sl(n,e,e?.up,!0),PageDown:()=>sl(n,e,e?.down)}[t.key];if(c){if(Po(n)){let e=Io(n),r=o&&t.key===`ArrowLeft`,i=o&&t.key===`ArrowRight`,s=a&&t.key===`ArrowUp`,c=a&&t.key===`ArrowDown`;if(i||c){let{length:t}=Fo(n);if(e.end!==t)return}else if((r||s)&&e.start!==0)return}let r=c();if(D(t)||r!==void 0){if(!O(t))return;t.preventDefault(),e.move(r)}}}),A=(0,R.useMemo)(()=>({id:u,baseElement:h}),[u,h]);return c=_s(c,e=>(0,B.jsx)(Hs.Provider,{value:A,children:e}),[A]),c={"data-active-item":g||void 0,...c,id:u,ref:ls(d,c.ref),tabIndex:y?c.tabIndex:-1,onFocus:C,onBlurCapture:T,onKeyDown:k},c=Vc(c),c=$s({store:e,...c,getItem:b,shouldRegisterItem:u?c.shouldRegisterItem:!1}),yo({...c,"aria-setsize":_,"aria-posinset":v})});ks(Os(function(e){return As(rl,ll(e))}));function ul(e){let t=[];for(let n of e)t.push(...n);return t}function dl(e){return e.slice().reverse()}var fl=`div`;function pl(e){return e.some(e=>!!e.rowId)}function ml(e){let t=e.target;return t&&!No(t)?!1:e.key.length===1&&!e.ctrlKey&&!e.metaKey}function hl(e){return e.key===`Shift`||e.key===`Control`||e.key===`Alt`||e.key===`Meta`}function gl(e,t,n){return q(r=>{if(t?.(r),r.defaultPrevented||r.isPropagationStopped()||!Jo(r)||hl(r)||ml(r))return;let i=Gs(e,e.getState().activeId)?.element;if(!i)return;let{view:a,...o}=r;i!==n?.current&&i.focus(),Qo(i,r.type,o)||r.preventDefault(),r.currentTarget.contains(i)&&r.stopPropagation()})}function _l(e){return Ws(ul(dl(Ks(e))))}function vl(e,t){let{virtualFocus:n,baseElement:r}=e.getState();if(!n||!r||!No(r)){t();return}let i=r.scrollLeft,a=r.scrollTop;t(),r.scrollLeft=i,r.scrollTop=a}function yl(e){let[t,n]=(0,R.useState)(!1),r=(0,R.useCallback)(()=>n(!0),[]),i=J(e,t=>Gs(e,t.activeId));return(0,R.useEffect)(()=>{let r=i?.element;t&&r&&(n(!1),vl(e,()=>{r.focus({preventScroll:!0})}))},[e,i,t]),r}var bl=js(function({store:e,composite:t=!0,focusOnMove:n=t,moveOnKeyPress:r=!0,...i}){let a=zs();e||=a,ho(e,!1);let o=(0,R.useRef)(null),s=(0,R.useRef)(null),c=yl(e),l=J(e,`moves`),[,u]=cs(t?e.setBaseElement:null);(0,R.useEffect)(()=>{if(!e||!l||!t||!n)return;let{activeId:r}=e.getState(),i=Gs(e,r)?.element;i&&vl(e,()=>yc(i))},[e,l,t,n]),K(()=>{if(!e||!l||!t)return;let{baseElement:n,activeId:r}=e.getState();if(r!==null||!n)return;let i=s.current;s.current=null,i&&Zo(i,{relatedTarget:n}),pc(n)||n.focus()},[e,l,t]);let d=J(e,`activeId`),f=J(e,`virtualFocus`);K(()=>{if(!e||!t||!f)return;let n=s.current;if(s.current=null,!n)return;let r=Gs(e,d)?.element||Oo(n);r!==n&&Zo(n,{relatedTarget:r})},[e,d,f,t]);let p=gl(e,i.onKeyDownCapture,s),m=gl(e,i.onKeyUpCapture,s),h=i.onFocusCapture,g=q(t=>{if(h?.(t),t.defaultPrevented||!e)return;let{virtualFocus:n}=e.getState();if(!n)return;let r=t.relatedTarget,i=Xs(t.currentTarget);Jo(t)&&i&&(t.stopPropagation(),s.current=r)}),_=i.onFocus,v=q(n=>{if(_?.(n),n.defaultPrevented||!t||!e)return;let{relatedTarget:r}=n,{virtualFocus:i}=e.getState();i?Jo(n)&&!Zs(e,r)&&queueMicrotask(c):Jo(n)&&e.setActiveId(null)}),y=i.onBlurCapture,b=q(t=>{if(y?.(t),t.defaultPrevented||!e)return;let{virtualFocus:n,activeId:r}=e.getState();if(!n)return;let i=Gs(e,r)?.element,a=t.relatedTarget,o=Zs(e,a),c=s.current;s.current=null,Jo(t)&&o?(a===i?c&&c!==a&&Zo(c,t):i?Zo(i,t):c&&Zo(c,t),t.stopPropagation()):!Zs(e,t.target)&&i&&Zo(i,t)}),x=i.onKeyDown,S=gs(r),C=q(t=>{if(x?.(t),t.nativeEvent.isComposing||t.defaultPrevented||!e||!Jo(t))return;let{orientation:n,renderedItems:r,activeId:i}=e.getState();if(Gs(e,i)?.element?.isConnected)return;let a=n!==`horizontal`,o=n!==`vertical`,s=pl(r);if((t.key===`ArrowLeft`||t.key===`ArrowRight`||t.key===`Home`||t.key===`End`)&&No(t.currentTarget))return;let c={ArrowUp:(s||a)&&(()=>s?_l(r)?.id:e?.last()),ArrowRight:(s||o)&&e.first,ArrowDown:(s||a)&&e.first,ArrowLeft:(s||o)&&e.last,Home:e.first,End:e.last,PageUp:e.first,PageDown:e.last}[t.key];if(c){let n=c();if(n!==void 0){if(!S(t))return;t.preventDefault(),e.move(n)}}});i=_s(i,t=>(0,B.jsx)(Bs,{value:e,children:t}),[e]);let w=J(e,n=>{if(e&&t&&n.virtualFocus)return Gs(e,n.activeId)?.id});return i={"aria-activedescendant":w,...i,ref:ls(o,u,i.ref),onKeyDownCapture:p,onKeyUpCapture:m,onFocusCapture:g,onFocus:v,onBlurCapture:b,onKeyDown:C},i=Lc({focusable:J(e,e=>t&&(e.virtualFocus||e.activeId===null)),...i}),i});Os(function(e){return As(fl,bl(e))});var xl=Ms();xl.useContext,xl.useScopedContext;var Sl=xl.useProviderContext,Cl=xl.ContextProvider,wl=xl.ScopedContextProvider,Tl=Ms([Cl],[wl]);Tl.useContext,Tl.useScopedContext;var El=Tl.useProviderContext,Dl=Tl.ContextProvider,Ol=Tl.ScopedContextProvider,kl=(0,R.createContext)(void 0),Al=(0,R.createContext)(void 0),jl=`div`;function Ml(e,t){let n=setTimeout(t,e);return()=>clearTimeout(n)}function Nl(e){let t=requestAnimationFrame(()=>{t=requestAnimationFrame(e)});return()=>cancelAnimationFrame(t)}function Pl(...e){return e.join(`, `).split(`, `).reduce((e,t)=>{let n=t.endsWith(`ms`)?1:1e3,r=Number.parseFloat(t||`0s`)*n;return r>e?r:e},0)}function Fl(e,t,n){return!n&&t!==!1&&(!e||!!t)}var Y=js(function({store:e,alwaysVisible:t,...n}){let r=Sl();e||=r,ho(e,!1);let i=(0,R.useRef)(null),a=us(n.id),[o,s]=(0,R.useState)(null),c=J(e,`open`),l=J(e,`mounted`),u=J(e,`animated`),d=J(e,`contentElement`),f=J(e.disclosure,`contentElement`);K(()=>{i.current&&e?.setContentElement(i.current)},[e]),K(()=>{let t;return e?.setState(`animated`,e=>(t=e,!0)),()=>{t!==void 0&&e?.setState(`animated`,t)}},[e]),K(()=>{if(u){if(!d?.isConnected){s(null);return}return Nl(()=>{s(c?`enter`:l?`leave`:null)})}},[u,d,c,l]),K(()=>{if(!e||!u||!o||!d)return;let t=()=>e?.setState(`animating`,!1),n=()=>(0,ii.flushSync)(t);if(o===`leave`&&c||o===`enter`&&!c)return;if(typeof u==`number`)return Ml(u,n);let{transitionDuration:r,animationDuration:i,transitionDelay:a,animationDelay:s}=getComputedStyle(d),{transitionDuration:l=`0`,animationDuration:p=`0`,transitionDelay:m=`0`,animationDelay:h=`0`}=f?getComputedStyle(f):{},g=Pl(a,s,m,h)+Pl(r,i,l,p);if(!g){o===`enter`&&e.setState(`animated`,!1),t();return}return Ml(Math.max(g-1e3/60,0),n)},[e,u,d,f,c,o]),n=_s(n,t=>(0,B.jsx)(Ol,{value:e,children:t}),[e]);let p=Fl(l,n.hidden,t),m=n.style,h=(0,R.useMemo)(()=>p?{...m,display:`none`}:m,[p,m]);return n={"data-open":c||void 0,"data-enter":o===`enter`||void 0,"data-leave":o===`leave`||void 0,hidden:p,...n,id:a,ref:ls(a?e.setContentElement:null,i,n.ref),style:h},yo(n)}),Il=Os(function(e){return As(jl,Y(e))});Os(function({unmountOnHide:e,...t}){let n=Sl();return J(t.store||n,t=>!e||t?.mounted)===!1?null:(0,B.jsx)(Il,{...t})});function X(e={}){let t=Zc(e.store,Yc(e.disclosure,[`contentElement`,`disclosureElement`])),n=t?.getState(),r=W(e.open,n?.open,e.defaultOpen,!1),i=W(e.animated,n?.animated,!1),a=Uc({open:r,animated:i,animating:!!i&&r,mounted:r,contentElement:W(n?.contentElement,null),disclosureElement:W(n?.disclosureElement,null)},t);return Wc(a,()=>qc(a,[`animated`,`animating`],e=>{e.animated||a.setState(`animating`,!1)})),Wc(a,()=>Kc(a,[`open`],()=>{a.getState().animated&&a.setState(`animating`,!0)})),Wc(a,()=>qc(a,[`open`,`animating`],e=>{a.setState(`mounted`,e.open||e.animating)})),{...a,disclosure:e.disclosure,setOpen:e=>a.setState(`open`,e),show:()=>a.setState(`open`,!0),hide:()=>a.setState(`open`,!1),toggle:()=>a.setState(`open`,e=>!e),stopAnimation:()=>a.setState(`animating`,!1),setContentElement:e=>a.setState(`contentElement`,e),setDisclosureElement:e=>a.setState(`disclosureElement`,e)}}function Z(e,t,n){return ps(t,[n.store,n.disclosure]),tl(e,n,`open`,`setOpen`),tl(e,n,`mounted`,`setMounted`),tl(e,n,`animated`),Object.assign(e,{disclosure:n.disclosure})}function Ll(e={}){let[t,n]=nl(X,e);return Z(t,n,e)}var Rl=Ms([Dl],[Ol]);Rl.useContext,Rl.useScopedContext;var zl=Rl.useProviderContext,Bl=Rl.ContextProvider,Vl=Rl.ScopedContextProvider;function Hl(e){let t=e.find(e=>!!e.element),n=[...e].reverse().find(e=>!!e.element),r=t?.element?.parentElement;for(;r&&n?.element;){if(n&&r.contains(n.element))return r;r=r.parentElement}return Eo(r).body}function Ul(e){return e?.__unstablePrivateStore}function Wl(e={}){e.store;let t=e.store?.getState(),n=W(e.items,t?.items,e.defaultItems,[]),r=new Map(n.map(e=>[e.id,e])),i={items:n,renderedItems:W(t?.renderedItems,[])},a=Ul(e.store),o=Uc({items:n,renderedItems:i.renderedItems},a),s=Uc(i,e.store),c=e=>{let t=Bo(e,e=>e.element);o.setState(`renderedItems`,t),s.setState(`renderedItems`,t)};Wc(s,()=>Gc(o)),Wc(o,()=>Jc(o,[`items`],e=>{s.setState(`items`,e.items)})),Wc(o,()=>Jc(o,[`renderedItems`],e=>{let t=!0,n=requestAnimationFrame(()=>{let{renderedItems:t}=s.getState();e.renderedItems!==t&&c(e.renderedItems)});if(typeof IntersectionObserver!=`function`)return()=>cancelAnimationFrame(n);let r=()=>{if(t){t=!1;return}cancelAnimationFrame(n),n=requestAnimationFrame(()=>c(e.renderedItems))},i=Hl(e.renderedItems),a=new IntersectionObserver(r,{root:i});for(let t of e.renderedItems)t.element&&a.observe(t.element);return()=>{cancelAnimationFrame(n),a.disconnect()}}));let l=(e,t,n=!1)=>{let i;return t(t=>{let n=t.findIndex(({id:t})=>t===e.id),a=t.slice();if(n!==-1){i=t[n];let o={...i,...e};a[n]=o,r.set(e.id,o)}else a.push(e),r.set(e.id,e);return a}),()=>{t(t=>{if(!i)return n&&r.delete(e.id),t.filter(({id:t})=>t!==e.id);let a=t.findIndex(({id:t})=>t===e.id);if(a===-1)return t;let o=t.slice();return o[a]=i,r.set(e.id,i),o})}},u=e=>l(e,e=>o.setState(`items`,e),!0);return{...s,registerItem:u,renderItem:e=>U(u(e),l(e,e=>o.setState(`renderedItems`,e))),item:e=>{if(!e)return null;let t=r.get(e);if(!t){let{items:n}=o.getState();t=n.find(t=>t.id===e),t&&r.set(e,t)}return t||null},__unstablePrivateStore:o}}function Gl(e,t,n){return ps(t,[n.store]),tl(e,n,`items`,`setItems`),e}var Kl={id:null};function ql(e,t){return e.find(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Jl(e,t){return e.filter(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Yl(e,t){return e.filter(e=>e.rowId===t)}function Xl(e,t,n=!1){let r=e.findIndex(e=>e.id===t);return[...e.slice(r+1),...n?[Kl]:[],...e.slice(0,r)]}function Zl(e){let t=[];for(let n of e){let e=t.find(e=>e[0]?.rowId===n.rowId);e?e.push(n):t.push([n])}return t}function Ql(e){let t=0;for(let{length:n}of e)n>t&&(t=n);return t}function $l(e){return{id:`__EMPTY_ITEM__`,disabled:!0,rowId:e}}function eu(e,t,n){let r=Ql(e);for(let i of e)for(let e=0;eqc(i,[`renderedItems`,`activeId`],e=>{i.setState(`activeId`,t=>t===void 0?ql(e.renderedItems)?.id:t)}));let a=(e=`next`,t={})=>{let n=i.getState(),{skip:r=0,activeId:a=n.activeId,focusShift:o=n.focusShift,focusLoop:s=n.focusLoop,focusWrap:c=n.focusWrap,includesBaseElement:l=n.includesBaseElement,renderedItems:u=n.renderedItems,rtl:d=n.rtl}=t,f=e===`up`||e===`down`,p=e===`next`||e===`down`,m=p?d&&!f:!d||f,h=o&&!r,g=f?ul(eu(Zl(u),a,h)):u;if(g=m?dl(g):g,g=f?tu(g):g,a==null)return ql(g)?.id;let _=g.find(e=>e.id===a);if(!_)return ql(g)?.id;let v=g.some(e=>e.rowId),y=g.indexOf(_),b=g.slice(y+1),x=Yl(b,_.rowId);if(r){let e=Jl(x,a);return(e.slice(r)[0]||e[e.length-1])?.id}let S=s&&(f?s!==`horizontal`:s!==`vertical`),C=v&&c&&(f?c!==`horizontal`:c!==`vertical`),w=p?(!v||f)&&S&&l:f?l:!1;if(S)return ql(Xl(C&&!w?g:Yl(g,_.rowId),a,w),a)?.id;if(C){let e=ql(w?x:b,a);return w?e?.id||null:e?.id}let T=ql(x,a);return!T&&w?null:T?.id};return{...n,...i,setBaseElement:e=>i.setState(`baseElement`,e),setActiveId:e=>i.setState(`activeId`,e),move:e=>{e!==void 0&&(i.setState(`activeId`,e),i.setState(`moves`,e=>e+1))},first:()=>ql(i.getState().renderedItems)?.id,last:()=>ql(dl(i.getState().renderedItems))?.id,next:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`next`,e)),previous:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`previous`,e)),down:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`down`,e)),up:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`up`,e))}}function ru(e){return{id:us(e.id),...e}}function iu(e,t,n){return e=Gl(e,t,n),tl(e,n,`activeId`,`setActiveId`),tl(e,n,`includesBaseElement`),tl(e,n,`virtualFocus`),tl(e,n,`orientation`),tl(e,n,`rtl`),tl(e,n,`focusLoop`),tl(e,n,`focusWrap`),tl(e,n,`focusShift`),e}var au=(0,R.createContext)(void 0),ou=Ms([Bl,Bs],[Vl,Vs]),su=ou.useContext,cu=ou.useScopedContext,lu=ou.useProviderContext,uu=ou.ContextProvider,du=ou.ScopedContextProvider,fu=(0,R.createContext)(void 0),pu=(0,R.createContext)(!1),mu=(0,R.createContext)(null),hu=`span`,gu=js(function(e){return e={...e,style:{border:0,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`absolute`,whiteSpace:`nowrap`,width:`1px`,...e.style}},e});Os(function(e){return As(hu,gu(e))});var _u=`span`,vu=js(function(e){return e={"data-focus-trap":``,tabIndex:0,"aria-hidden":!0,...e,style:{position:`fixed`,top:0,left:0,...e.style}},e=gu(e),e}),yu=Os(function(e){return As(_u,vu(e))}),bu=`div`;function xu(e){return Eo(e).body}function Su(e,t){return t?typeof t==`function`?t(e):t:Eo(e).createElement(`div`)}function Cu(e=`id`){return`${e?`${e}-`:``}${Math.random().toString(36).slice(2,8)}`}function wu(e){queueMicrotask(()=>{e?.focus()})}var Tu=js(function({preserveTabOrder:e,preserveTabOrderAnchor:t,portalElement:n,portalRef:r,portal:i=!0,...a}){let o=(0,R.useRef)(null),s=ls(o,a.ref),c=(0,R.useContext)(mu),[l,u]=(0,R.useState)(null),[d,f]=(0,R.useState)(null),p=(0,R.useRef)(null),m=(0,R.useRef)(null),h=(0,R.useRef)(null),g=(0,R.useRef)(null);return K(()=>{let e=o.current;if(!e||!i){u(null);return}let t=Su(e,n);if(!t){u(null);return}let a=t.isConnected;if(a||(c||xu(e)).appendChild(t),t.id||=e.id?`portal/${e.id}`:Cu(),u(t),bo(r,t),!a)return()=>{t.remove(),bo(r,null)}},[i,n,c,r]),K(()=>{if(!i||!e||!t)return;let n=Eo(t).createElement(`span`);return n.style.position=`fixed`,t.insertAdjacentElement(`afterend`,n),f(n),()=>{n.remove(),f(null)}},[i,e,t]),(0,R.useEffect)(()=>{if(!l||!e)return;let t=0,n=e=>{if(!es(e))return;let n=e.type===`focusin`;if(cancelAnimationFrame(t),n)return vc(l);t=requestAnimationFrame(()=>{_c(l,!0)})};return l.addEventListener(`focusin`,n,!0),l.addEventListener(`focusout`,n,!0),()=>{cancelAnimationFrame(t),l.removeEventListener(`focusin`,n,!0),l.removeEventListener(`focusout`,n,!0)}},[l,e]),a=_s(a,t=>{if(t=(0,B.jsx)(mu.Provider,{value:l||c,children:t}),!i)return t;if(!l)return(0,B.jsx)(`span`,{ref:s,id:a.id,style:{position:`fixed`},hidden:!0});t=(0,B.jsxs)(B.Fragment,{children:[e&&l&&(0,B.jsx)(yu,{ref:m,"data-focus-trap":a.id,className:`__focus-trap-inner-before`,onFocus:e=>{es(e,l)?wu(lc()):wu(p.current)}}),t,e&&l&&(0,B.jsx)(yu,{ref:h,"data-focus-trap":a.id,className:`__focus-trap-inner-after`,onFocus:e=>{es(e,l)?wu(dc()):wu(g.current)}})]}),l&&(t=(0,ii.createPortal)(t,l));let n=(0,B.jsxs)(B.Fragment,{children:[e&&l&&(0,B.jsx)(yu,{ref:p,"data-focus-trap":a.id,className:`__focus-trap-outer-before`,onFocus:e=>{e.relatedTarget!==g.current&&es(e,l)?wu(m.current):wu(dc())}}),e&&(0,B.jsx)(`span`,{"aria-owns":l?.id,style:{position:`fixed`}}),e&&l&&(0,B.jsx)(yu,{ref:g,"data-focus-trap":a.id,className:`__focus-trap-outer-after`,onFocus:e=>{if(es(e,l))wu(h.current);else{let e=lc();if(e===m.current){requestAnimationFrame(()=>lc()?.focus());return}wu(e)}}})]});return d&&e&&(n=(0,ii.createPortal)(n,d)),(0,B.jsxs)(B.Fragment,{children:[n,t]})},[l,c,i,a.id,e,d]),a={...a,ref:s},a});Os(function(e){return As(bu,Tu(e))});var Eu=(0,R.createContext)(0);function Du({level:e,children:t}){let n=(0,R.useContext)(Eu),r=Math.max(Math.min(e||n+1,6),1);return(0,B.jsx)(Eu.Provider,{value:r,children:t})}var Ou=`div`,ku=js(function({autoFocusOnShow:e=!0,...t}){return t=_s(t,t=>(0,B.jsx)(ec.Provider,{value:e,children:t}),[e]),t});Os(function(e){return As(Ou,ku(e))});function Au(e,t){let n=Eo(e).createElement(`button`);return n.type=`button`,n.tabIndex=-1,n.textContent=`Dismiss popup`,Object.assign(n.style,{border:`0px`,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:`0px`,position:`absolute`,whiteSpace:`nowrap`,width:`1px`}),n.addEventListener(`click`,t),e.prepend(n),()=>{n.removeEventListener(`click`,t),n.remove()}}function ju(e){let t=(0,R.useRef)(null);return(0,R.useEffect)(()=>{if(!e){t.current=null;return}return ns(`mousedown`,e=>{t.current=e.target},!0)},[e]),t}var Mu=new WeakMap;function Nu(e,t,n){Mu.has(e)||Mu.set(e,new Map);let r=Mu.get(e),i=r.get(t);if(!i)return r.set(t,n()),()=>{var e;(e=r.get(t))==null||e(),r.delete(t)};let a=n(),o=()=>{a(),i(),r.delete(t)};return r.set(t,o),()=>{r.get(t)===o&&(a(),r.set(t,i))}}function Pu(e,t,n){return Nu(e,t,()=>{let r=e.getAttribute(t);return e.setAttribute(t,n),()=>{r==null?e.removeAttribute(t):e.setAttribute(t,r)}})}function Fu(e,t,n){return Nu(e,t,()=>{let r=t in e,i=e[t];return e[t]=n,()=>{r?e[t]=i:delete e[t]}})}function Iu(e,t){return e?Nu(e,`style`,()=>{let n=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=n}}):()=>{}}function Lu(e,t,n){return e?Nu(e,t,()=>{let r=e.style.getPropertyValue(t);return e.style.setProperty(t,n),()=>{r?e.style.setProperty(t,r):e.style.removeProperty(t)}}):()=>{}}var Ru=[`SCRIPT`,`STYLE`];function zu(e){return`__ariakit-dialog-snapshot-${e}`}function Bu(e,t){let n=Eo(t),r=zu(e);if(!n.body[r])return!0;do{if(t===n.body)return!1;if(t[r])return!0;if(!t.parentElement)return!1;t=t.parentElement}while(!0)}function Vu(e,t,n){return Ru.includes(t.tagName)||!Bu(e,t)?!1:!n.some(e=>e&&G(t,e))}function Hu(e,t,n,r){for(let i of t){if(!i?.isConnected)continue;let a=t.some(e=>!e||e===i?!1:e.contains(i)),o=Eo(i),s=i;for(;i.parentElement&&i!==o.body;){if(r?.(i.parentElement,s),!a)for(let r of i.parentElement.children)Vu(e,r,t)&&n(r,s);i=i.parentElement}}}function Uu(e,t){let{body:n}=Eo(t[0]),r=[];return Hu(e,t,t=>{r.push(Fu(t,zu(e),!0))}),U(Fu(n,zu(e),!0),()=>{for(let e of r)e()})}function Wu(e,...t){if(!e)return!1;let n=e.getAttribute(`data-backdrop`);return n==null?!1:n===``||n===`true`||!t.length?!0:t.some(e=>n===e)}function Gu(e=``,t=!1){return`__ariakit-dialog-${t?`ancestor`:`outside`}${e?`-${e}`:``}`}function Ku(e,t=``){return U(Fu(e,Gu(),!0),Fu(e,Gu(t),!0))}function qu(e,t=``){return U(Fu(e,Gu(``,!0),!0),Fu(e,Gu(t,!0),!0))}function Ju(e,t){let n=Gu(t,!0);if(e[n])return!0;let r=Gu(t);do{if(e[r])return!0;if(!e.parentElement)return!1;e=e.parentElement}while(!0)}function Yu(e,t){let n=[],r=t.map(e=>e?.id);return Hu(e,t,t=>{Wu(t,...r)||n.unshift(Ku(t,e))},(t,r)=>{r.hasAttribute(`data-dialog`)&&r.id!==e||n.unshift(qu(t,e))}),()=>{for(let e of n)e()}}function Xu(e){return e.tagName===`HTML`?!0:G(Eo(e).body,e)}function Zu(e,t){if(!e)return!1;if(G(e,t))return!0;let n=t.getAttribute(`aria-activedescendant`);if(n){let t=Eo(e).getElementById(n);if(t)return G(e,t)}return!1}function Qu(e,t){if(!(`clientY`in e))return!1;let n=t.getBoundingClientRect();return n.width===0||n.height===0?!1:n.top<=e.clientY&&e.clientY<=n.top+n.height&&n.left<=e.clientX&&e.clientX<=n.left+n.width}function $u({store:e,type:t,listener:n,capture:r,domReady:i}){let a=q(n),o=J(e,`open`),s=(0,R.useRef)(!1);K(()=>{if(!o||!i)return;let{contentElement:t}=e.getState();if(!t)return;let n=()=>{s.current=!0};return t.addEventListener(`focusin`,n,!0),()=>t.removeEventListener(`focusin`,n,!0)},[e,o,i]),(0,R.useEffect)(()=>o?ns(t,t=>{let{contentElement:n,disclosureElement:r}=e.getState(),i=t.target;n&&i&&Xu(i)&&(G(n,i)||Zu(r,i)||i.hasAttribute(`data-focus-trap`)||Qu(t,n)||s.current&&!Ju(i,n.id)||wc(i)||a(t))},r):void 0,[o,r,e,t,a])}function ed(e,t){return typeof e==`function`?e(t):!!e}function td(e,t,n){let r=ju(J(e,`open`)),i={store:e,domReady:n,capture:!0};$u({...i,type:`click`,listener:n=>{let{contentElement:i}=e.getState(),a=r.current;a&&Mo(a)&&Ju(a,i?.id)&&ed(t,n)&&e.hide()}}),$u({...i,type:`focusin`,listener:n=>{let{contentElement:r}=e.getState();r&&n.target!==Eo(r)&&ed(t,n)&&e.hide()}}),$u({...i,type:`contextmenu`,listener:n=>{ed(t,n)&&e.hide()}})}var nd=(0,R.createContext)({});function rd(e){let t=(0,R.useContext)(nd),[n,r]=(0,R.useState)([]),i=(0,R.useCallback)(e=>(r(t=>[...t,e]),U(t.add?.call(t,e),()=>{r(t=>t.filter(t=>t!==e))})),[t]);K(()=>qc(e,[`open`,`contentElement`],n=>{if(n.open&&n.contentElement)return t.add?.call(t,e)}),[e,t]);let a=(0,R.useMemo)(()=>({store:e,add:i}),[e,i]);return{wrapElement:(0,R.useCallback)(e=>(0,B.jsx)(nd.Provider,{value:a,children:e}),[a]),nestedDialogs:n}}function id({attribute:e,contentId:t,contentElement:n,enabled:r}){let[i,a]=hs(),o=(0,R.useCallback)(()=>{if(!r||!n)return!1;let{body:i}=Eo(n),a=i.getAttribute(e);return!a||a===t},[i,r,n,e,t]);return(0,R.useEffect)(()=>{if(!r||!t||!n)return;let{body:i}=Eo(n);if(o())return i.setAttribute(e,t),()=>i.removeAttribute(e);let s=new MutationObserver(()=>(0,ii.flushSync)(a));return s.observe(i,{attributeFilter:[e]}),()=>s.disconnect()},[i,r,t,n,o,e]),o}function ad(e){let t=e.getBoundingClientRect().left;return Math.round(t)+e.scrollLeft?`paddingLeft`:`paddingRight`}function od(e,t,n){let r=id({attribute:`data-dialog-prevent-body-scroll`,contentElement:e,contentId:t,enabled:n});(0,R.useEffect)(()=>{if(!r()||!e)return;let t=Eo(e),n=Do(e),{documentElement:i,body:a}=t,o=i.style.getPropertyValue(`--scrollbar-width`),s=o?Number.parseInt(o,10):n.innerWidth-i.clientWidth,c=()=>Lu(i,`--scrollbar-width`,`${s}px`),l=ad(i),u=()=>Iu(a,{overflow:`hidden`,[l]:`${s}px`}),d=()=>{let{scrollX:e,scrollY:t,visualViewport:r}=n,i=r?.offsetLeft??0,o=r?.offsetTop??0,c=Iu(a,{position:`fixed`,overflow:`hidden`,top:`${-(t-Math.floor(o))}px`,left:`${-(e-Math.floor(i))}px`,right:`0`,[l]:`${s}px`});return()=>{c(),n.scrollTo({left:e,top:t,behavior:`instant`})}},f=Uo()&&!Ko();return U(c(),f?d():u())},[r,e])}function sd(e,...t){if(!e)return!1;let n=e.getAttribute(`data-focus-trap`);return n==null?!1:t.length?n===``?!1:t.some(e=>n===e):!0}function cd(){return`inert`in HTMLElement.prototype}function ld(e){return Pu(e,`aria-hidden`,`true`)}function ud(e,t){return`style`in e?cd()?Fu(e,`inert`,!0):U(...oc(e,!0).map(e=>{if(t?.some(t=>t&&G(t,e)))return ao;let n=Nu(e,`focus`,()=>(e.focus=ao,()=>{delete e.focus}));return U(Pu(e,`tabindex`,`-1`),n)}),ld(e),Iu(e,{pointerEvents:`none`,userSelect:`none`,cursor:`default`})):ao}function dd(e,t){let n=[],r=t.map(e=>e?.id);return Hu(e,t,e=>{Wu(e,...r)||sd(e,...r)||n.unshift(ud(e,t))},e=>{e.hasAttribute(`role`)&&(t.some(t=>t&&G(t,e))||n.unshift(Pu(e,`role`,`none`)))}),()=>{for(let e of n)e()}}var fd=`div`,pd=`a.button.details.dialog.div.form.h1.h2.h3.h4.h5.h6.header.img.input.label.li.nav.ol.p.section.select.span.summary.textarea.ul.svg`.split(`.`);js(function(e){return e});var md=Os(function(e){return As(fd,e)});Object.assign(md,pd.reduce((e,t)=>(e[t]=Os(function(e){return As(t,e)}),e),{}));function hd({store:e,backdrop:t,alwaysVisible:n,hidden:r}){let i=(0,R.useRef)(null),a=Ll({disclosure:e}),o=J(e,`contentElement`);(0,R.useEffect)(()=>{let e=i.current,t=o;e&&t&&(e.style.zIndex=getComputedStyle(t).zIndex)},[o]),K(()=>{let e=o?.id;if(!e)return;let t=i.current;if(t)return qu(t,e)},[o]);let s=Y({ref:i,store:a,role:`presentation`,"data-backdrop":o?.id||``,alwaysVisible:n,hidden:r??void 0,style:{position:`fixed`,top:0,right:0,bottom:0,left:0}});if(!t)return null;if((0,R.isValidElement)(t))return(0,B.jsx)(md,{...s,render:t});let c=typeof t==`boolean`?`div`:t;return(0,B.jsx)(md,{...s,render:(0,B.jsx)(c,{})})}function gd(e={}){return X(e)}function _d(e,t,n){return Z(e,t,n)}function vd(e={}){let[t,n]=nl(gd,e);return _d(t,n,e)}var yd=`div`,Q=Wo();function bd(e){let t=Oo();return!t||e&&G(e,t)?!1:!!rc(t)}function xd(e,t=!1){if(!e)return null;let n=`current`in e?e.current:e;return n?t?rc(n)?n:null:n:null}var Sd=js(function({store:e,open:t,onClose:n,focusable:r=!0,modal:i=!0,portal:a=!!i,backdrop:o=!!i,hideOnEscape:s=!0,hideOnInteractOutside:c=!0,getPersistentElements:l,preventBodyScroll:u=!!i,autoFocusOnShow:d=!0,autoFocusOnHide:f=!0,initialFocus:p,finalFocus:m,unmountOnHide:h,unstable_treeSnapshotKey:g,..._}){let v=El(),y=(0,R.useRef)(null),b=vd({store:e||v,open:t,setOpen(e){if(e)return;let t=y.current;if(!t)return;let r=new Event(`close`,{bubbles:!1,cancelable:!0});n&&t.addEventListener(`close`,n,{once:!0}),t.dispatchEvent(r),r.defaultPrevented&&b.setOpen(!0)}}),{portalRef:x,domReady:S}=vs(a,_.portalRef),C=_.preserveTabOrder,w=J(b,e=>C&&!i&&e.mounted),T=us(_.id),E=J(b,`open`),D=J(b,`mounted`),O=J(b,`contentElement`),k=Fl(D,_.hidden,_.alwaysVisible);od(O,T,u&&!k),td(b,c,S);let{wrapElement:A,nestedDialogs:j}=rd(b);_=_s(_,A,[A]),K(()=>{if(!E)return;let e=y.current,t=Oo(e,!0);t&&t.tagName!==`BODY`&&(e&&G(e,t)||b.setDisclosureElement(t))},[b,E]),Q&&(0,R.useEffect)(()=>{if(!D)return;let{disclosureElement:e}=b.getState();if(!e||!Ao(e))return;let t=()=>{let t=!1,n=()=>{t=!0};e.addEventListener(`focusin`,n,{capture:!0,once:!0}),ts(e,`mouseup`,()=>{e.removeEventListener(`focusin`,n,!0),!t&&hc(e)})};return e.addEventListener(`mousedown`,t),()=>{e.removeEventListener(`mousedown`,t)}},[b,D]),(0,R.useEffect)(()=>{if(!D||!S)return;let e=y.current;if(!e)return;let t=Do(e),n=t.visualViewport||t,r=()=>{let n=t.visualViewport?.height??t.innerHeight;e.style.setProperty(`--dialog-viewport-height`,`${n}px`)};return r(),n.addEventListener(`resize`,r),()=>{n.removeEventListener(`resize`,r)}},[D,S]),(0,R.useEffect)(()=>{if(!i||!D||!S)return;let e=y.current;if(e&&!e.querySelector(`[data-dialog-dismiss]`))return Au(e,b.hide)},[b,i,D,S]),K(()=>{if(!cd()||E||!D||!S)return;let e=y.current;if(e)return ud(e)},[E,D,S]);let M=E&&S;K(()=>{if(!T||!M)return;let e=y.current;return Uu(T,[e])},[T,M,g]);let ee=q(l);K(()=>{if(!T||!M)return;let{disclosureElement:e}=b.getState(),t=[y.current,...ee()||[],...j.map(e=>e.getState().contentElement)];return i?U(Yu(T,t),dd(T,t)):Yu(T,[e,...t])},[T,b,M,ee,j,i,g]);let te=!!d,N=gs(d),[P,ne]=(0,R.useState)(!1);(0,R.useEffect)(()=>{if(!E||!te||!S||!O?.isConnected)return;let e=xd(p,!0)||O.querySelector(`[data-autofocus=true],[autofocus]`)||sc(O,!0,a&&w)||O,t=rc(e);N(t?e:null)&&(ne(!0),queueMicrotask(()=>{e.focus(),Q&&t&&e.scrollIntoView({block:`nearest`,inline:`nearest`})}))},[E,te,S,O,p,a,w,N]);let re=!!f,F=gs(f),[ie,ae]=(0,R.useState)(!1);(0,R.useEffect)(()=>{if(E)return ae(!0),()=>ae(!1)},[E]);let I=(0,R.useCallback)((e,t=!0)=>{let{disclosureElement:n}=b.getState();if(bd(e))return;let r=xd(m)||n;if(r?.id){let e=Eo(r),t=`[aria-activedescendant="${r.id}"]`,n=e.querySelector(t);n&&(r=n)}if(r&&!rc(r)){let e=r.closest(`[data-dialog]`);if(e?.id){let t=Eo(e),n=`[aria-controls~="${e.id}"]`,i=t.querySelector(n);i&&(r=i)}}let i=r&&rc(r);if(!i&&t){requestAnimationFrame(()=>I(e,!1));return}F(i?r:null)&&i&&r?.focus({preventScroll:!0})},[b,m,F]),oe=(0,R.useRef)(!1);K(()=>{if(E||!ie||!re)return;let e=y.current;oe.current=!0,I(e)},[E,ie,S,re,I]),(0,R.useEffect)(()=>{if(!ie||!re)return;let e=y.current;return()=>{if(oe.current){oe.current=!1;return}I(e)}},[ie,re,I]);let L=gs(s);(0,R.useEffect)(()=>!S||!D?void 0:ns(`keydown`,e=>{if(e.key!==`Escape`||e.defaultPrevented)return;let t=y.current;if(!t||Ju(t))return;let n=e.target;if(!n)return;let{disclosureElement:r}=b.getState();(n.tagName===`BODY`||G(t,n)||!r||G(r,n))&&L(e)&&b.hide()},!0),[b,S,D,L]),_=_s(_,e=>(0,B.jsx)(Du,{level:i?1:void 0,children:e}),[i]);let se=_.hidden,ce=_.alwaysVisible;_=_s(_,e=>o?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(hd,{store:b,backdrop:o,hidden:se,alwaysVisible:ce}),e]}):e,[b,o,se,ce]);let[le,ue]=(0,R.useState)(),[de,fe]=(0,R.useState)();return _=_s(_,e=>(0,B.jsx)(Ol,{value:b,children:(0,B.jsx)(kl.Provider,{value:ue,children:(0,B.jsx)(Al.Provider,{value:fe,children:e})})}),[b]),_={"data-dialog":``,role:`dialog`,tabIndex:r?-1:void 0,"aria-labelledby":le,"aria-describedby":de,..._,id:T,ref:ls(y,_.ref)},_=ku({..._,autoFocusOnShow:P}),_=Y({store:b,..._}),_=Lc({..._,focusable:r}),_=Tu({portal:a,..._,portalRef:x,preserveTabOrder:w}),_});function Cd(e,t=El){return Os(function(n){let r=t();return J(n.store||r,e=>!n.unmountOnHide||e?.mounted||!!n.open)?(0,B.jsx)(e,{...n}):null})}Cd(Os(function(e){return As(yd,Sd(e))}),El);var wd=Math.min,Td=Math.max,Ed=Math.round,Dd=Math.floor,Od=e=>({x:e,y:e}),kd={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Ad(e,t,n){return Td(e,wd(t,n))}function jd(e,t){return typeof e==`function`?e(t):e}function Md(e){return e.split(`-`)[0]}function $(e){return e.split(`-`)[1]}function Nd(e){return e===`x`?`y`:`x`}function Pd(e){return e===`y`?`height`:`width`}function Fd(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Id(e){return Nd(Fd(e))}function Ld(e,t,n){n===void 0&&(n=!1);let r=$(e),i=Id(e),a=Pd(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Kd(o)),[o,Kd(o)]}function Rd(e){let t=Kd(e);return[zd(e),t,zd(t)]}function zd(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Bd=[`left`,`right`],Vd=[`right`,`left`],Hd=[`top`,`bottom`],Ud=[`bottom`,`top`];function Wd(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Vd:Bd:t?Bd:Vd;case`left`:case`right`:return t?Hd:Ud;default:return[]}}function Gd(e,t,n,r){let i=$(e),a=Wd(Md(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(zd)))),a}function Kd(e){let t=Md(e);return kd[t]+e.slice(t.length)}function qd(e){return{top:0,right:0,bottom:0,left:0,...e}}function Jd(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:qd(e)}function Yd(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Xd(e,t,n){let{reference:r,floating:i}=e,a=Fd(t),o=Id(t),s=Pd(o),c=Md(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch($(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function Zd(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=jd(t,e),p=Jd(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Yd(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Yd(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Qd=50,$d=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Zd},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Xd(l,r,c),f=r,p=0,m={};for(let n=0;n({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=jd(e,t)||{};if(l==null)return{};let d=Jd(u),f={x:n,y:r},p=Id(i),m=Pd(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=wd(d[_],T),D=wd(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,j=Ad(O,A,k),M=!c.arrow&&$(i)!=null&&A!==j&&a.reference[m]/2-(Ae<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==Fd(t))||T.every(e=>Fd(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=Fd(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}},nf=new Set([`left`,`top`]);async function rf(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Md(n),s=$(n),c=Fd(n)===`y`,l=nf.has(o)?-1:1,u=a&&c?-1:1,d=jd(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var af=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await rf(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},of=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=jd(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=Fd(Md(i)),p=Nd(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=Ad(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=Ad(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},sf=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=jd(e,t),u={x:n,y:r},d=Fd(i),f=Nd(d),p=u[f],m=u[d],h=jd(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;pn&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=nf.has(Md(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);mr&&(m=r)}return{[f]:p,[d]:m}}}},cf=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=jd(e,t),u=await o.detectOverflow(t,l),d=Md(i),f=$(i),p=Fd(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=wd(h-u[g],v),x=wd(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=Td(u.left,0),t=Td(u.right,0),n=Td(u.top,0),r=Td(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:Td(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:Td(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function lf(){return typeof window<`u`}function uf(e){return pf(e)?(e.nodeName||``).toLowerCase():`#document`}function df(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ff(e){return((pf(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function pf(e){return lf()?e instanceof Node||e instanceof df(e).Node:!1}function mf(e){return lf()?e instanceof Element||e instanceof df(e).Element:!1}function hf(e){return lf()?e instanceof HTMLElement||e instanceof df(e).HTMLElement:!1}function gf(e){return!lf()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof df(e).ShadowRoot}function _f(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Of(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function vf(e){return/^(table|td|th)$/.test(uf(e))}function yf(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var bf=/transform|translate|scale|rotate|perspective|filter/,xf=/paint|layout|strict|content/,Sf=e=>!!e&&e!==`none`,Cf;function wf(e){let t=mf(e)?Of(e):e;return Sf(t.transform)||Sf(t.translate)||Sf(t.scale)||Sf(t.rotate)||Sf(t.perspective)||!Ef()&&(Sf(t.backdropFilter)||Sf(t.filter))||bf.test(t.willChange||``)||xf.test(t.contain||``)}function Tf(e){let t=Af(e);for(;hf(t)&&!Df(t);){if(wf(t))return t;if(yf(t))return null;t=Af(t)}return null}function Ef(){return Cf??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Cf}function Df(e){return/^(html|body|#document)$/.test(uf(e))}function Of(e){return df(e).getComputedStyle(e)}function kf(e){return mf(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Af(e){if(uf(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||gf(e)&&e.host||ff(e);return gf(t)?t.host:t}function jf(e){let t=Af(e);return Df(t)?e.ownerDocument?e.ownerDocument.body:e.body:hf(t)&&_f(t)?t:jf(t)}function Mf(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=jf(e),i=r===e.ownerDocument?.body,a=df(r);if(i){let e=Nf(a);return t.concat(a,a.visualViewport||[],_f(r)?r:[],e&&n?Mf(e):[])}else return t.concat(r,Mf(r,[],n))}function Nf(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Pf(e){let t=Of(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=hf(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=Ed(n)!==a||Ed(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Ff(e){return mf(e)?e:e.contextElement}function If(e){let t=Ff(e);if(!hf(t))return Od(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Pf(t),o=(a?Ed(n.width):n.width)/r,s=(a?Ed(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var Lf=Od(0);function Rf(e){let t=df(e);return!Ef()||!t.visualViewport?Lf:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function zf(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==df(e)?!1:t}function Bf(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Ff(e),o=Od(1);t&&(r?mf(r)&&(o=If(r)):o=If(e));let s=zf(a,n,r)?Rf(a):Od(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=df(a),t=r&&mf(r)?df(r):r,n=e,i=Nf(n);for(;i&&r&&t!==n;){let e=If(i),t=i.getBoundingClientRect(),r=Of(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=df(i),i=Nf(n)}}return Yd({width:u,height:d,x:c,y:l})}function Vf(e,t){let n=kf(e).scrollLeft;return t?t.left+n:Bf(ff(e)).left+n}function Hf(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Vf(e,n),y:n.top+t.scrollTop}}function Uf(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=ff(r),s=t?yf(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Od(1),u=Od(0),d=hf(r);if((d||!d&&!a)&&((uf(r)!==`body`||_f(o))&&(c=kf(r)),d)){let e=Bf(r);l=If(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?Hf(o,c):Od(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Wf(e){return Array.from(e.getClientRects())}function Gf(e){let t=ff(e),n=kf(e),r=e.ownerDocument.body,i=Td(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Td(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+Vf(e),s=-n.scrollTop;return Of(r).direction===`rtl`&&(o+=Td(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var Kf=25;function qf(e,t){let n=df(e),r=ff(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Ef();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=Vf(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=Kf&&(a-=o)}else l<=Kf&&(a+=l);return{width:a,height:o,x:s,y:c}}function Jf(e,t){let n=Bf(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=hf(e)?If(e):Od(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Yf(e,t,n){let r;if(t===`viewport`)r=qf(e,n);else if(t===`document`)r=Gf(ff(e));else if(mf(t))r=Jf(t,n);else{let n=Rf(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Yd(r)}function Xf(e,t){let n=Af(e);return n===t||!mf(n)||Df(n)?!1:Of(n).position===`fixed`||Xf(n,t)}function Zf(e,t){let n=t.get(e);if(n)return n;let r=Mf(e,[],!1).filter(e=>mf(e)&&uf(e)!==`body`),i=null,a=Of(e).position===`fixed`,o=a?Af(e):e;for(;mf(o)&&!Df(o);){let t=Of(o),n=wf(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||_f(o)&&!n&&Xf(e,o))?r=r.filter(e=>e!==o):i=t,o=Af(o)}return t.set(e,r),r}function Qf(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?yf(t)?[]:Zf(t,this._c):[].concat(n),r],o=Yf(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e{o(!1,1e-7)},1e3)}n===1&&!sp(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function lp(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Ff(e),u=i||a?[...l?Mf(l):[],...t?Mf(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?cp(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Bf(e):null;c&&g();function g(){let t=Bf(e);h&&!sp(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var up=af,dp=of,fp=tf,pp=cf,mp=ef,hp=sf,gp=(e,t,n)=>{let r=new Map,i={platform:op,...n},a={...i.platform,_c:r};return $d(e,t,{...i,platform:a})},_p=`div`;function vp(e=0,t=0,n=0,r=0){if(typeof DOMRect==`function`)return new DOMRect(e,t,n,r);let i={x:e,y:t,width:n,height:r,top:t,right:e+n,bottom:t+r,left:e};return{...i,toJSON:()=>i}}function yp(e){if(!e)return vp();let{x:t,y:n,width:r,height:i}=e;return vp(t,n,r,i)}function bp(e,t){return{contextElement:e||void 0,getBoundingClientRect:()=>{let n=e,r=t?.(n);return r||!n?yp(r):n.getBoundingClientRect()}}}function xp(e){return/^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(e)}function Sp(e){let t=window.devicePixelRatio||1;return Math.round(e*t)/t}function Cp(e,t){return up(({placement:n})=>{let r=(e?.clientHeight||0)/2,i=typeof t.gutter==`number`?t.gutter+r:t.gutter??r;return{crossAxis:n.split(`-`)[1]?void 0:t.shift,mainAxis:i,alignmentAxis:t.shift}})}function wp(e){if(e.flip===!1)return;let t=typeof e.flip==`string`?e.flip.split(` `):void 0;return ho(!t||t.every(xp),!1),fp({padding:e.overflowPadding,fallbackPlacements:t})}function Tp(e){if(!(!e.slide&&!e.overlap))return dp({mainAxis:e.slide,crossAxis:e.overlap,padding:e.overflowPadding,limiter:hp()})}function Ep(e){return pp({padding:e.overflowPadding,apply({elements:t,availableWidth:n,availableHeight:r,rects:i}){let a=t.floating,o=Math.round(i.reference.width);n=Math.floor(n),r=Math.floor(r),a.style.setProperty(`--popover-anchor-width`,`${o}px`),a.style.setProperty(`--popover-available-width`,`${n}px`),a.style.setProperty(`--popover-available-height`,`${r}px`),e.sameWidth&&(a.style.width=`${o}px`),e.fitViewport&&(a.style.maxWidth=`${n}px`,a.style.maxHeight=`${r}px`)}})}function Dp(e,t){if(e)return mp({element:e,padding:t.arrowPadding})}var Op=js(function({store:e,modal:t=!1,portal:n=!!t,preserveTabOrder:r=!0,autoFocusOnShow:i=!0,wrapperProps:a,fixed:o=!1,flip:s=!0,shift:c=0,slide:l=!0,overlap:u=!1,sameWidth:d=!1,fitViewport:f=!1,gutter:p,arrowPadding:m=4,overflowPadding:h=8,getAnchorRect:g,updatePosition:_,...v}){let y=zl();e||=y,ho(e,!1);let b=J(e,`arrowElement`),x=J(e,`anchorElement`),S=J(e,`disclosureElement`),C=J(e,`popoverElement`),w=J(e,`contentElement`),T=J(e,`placement`),E=J(e,`mounted`),D=J(e,`rendered`),O=(0,R.useRef)(null),[k,A]=(0,R.useState)(!1),{portalRef:j,domReady:M}=vs(n,v.portalRef),ee=q(g),te=q(_),N=!!_;K(()=>{if(!C?.isConnected)return;C.style.setProperty(`--popover-overflow-padding`,`${h}px`);let t=bp(x,ee),n=async()=>{if(!E)return;b||(O.current=O.current||document.createElement(`div`));let n=b||O.current,r=[Cp(n,{gutter:p,shift:c}),wp({flip:s,overflowPadding:h}),Tp({slide:l,shift:c,overlap:u,overflowPadding:h}),Dp(n,{arrowPadding:m}),Ep({sameWidth:d,fitViewport:f,overflowPadding:h})],i=await gp(t,C,{placement:T,strategy:o?`fixed`:`absolute`,middleware:r});e?.setState(`currentPlacement`,i.placement),A(!0);let a=Sp(i.x),g=Sp(i.y);if(Object.assign(C.style,{top:`0`,left:`0`,transform:`translate3d(${a}px,${g}px,0)`}),n&&i.middlewareData.arrow){let{x:e,y:t}=i.middlewareData.arrow,r=i.placement.split(`-`)[0],a=n.clientWidth/2,o=n.clientHeight/2,s=e==null?-a:e+a,c=t==null?-o:t+o;C.style.setProperty(`--popover-transform-origin`,{top:`${s}px calc(100% + ${o}px)`,bottom:`${s}px ${-o}px`,left:`calc(100% + ${a}px) ${c}px`,right:`${-a}px ${c}px`}[r]),Object.assign(n.style,{left:e==null?``:`${e}px`,top:t==null?``:`${t}px`,[r]:`100%`})}},r=lp(t,C,async()=>{N?(await te({updatePosition:n}),A(!0)):await n()},{elementResize:typeof ResizeObserver==`function`});return()=>{A(!1),r()}},[e,D,C,b,x,C,T,E,M,o,s,c,l,u,d,f,p,m,h,ee,N,te]),K(()=>{if(!E||!M||!C?.isConnected||!w?.isConnected)return;let e=()=>{C.style.zIndex=getComputedStyle(w).zIndex};e();let t=requestAnimationFrame(()=>{t=requestAnimationFrame(e)});return()=>cancelAnimationFrame(t)},[E,M,C,w]);let P=o?`fixed`:`absolute`;return v=_s(v,t=>(0,B.jsx)(`div`,{...a,style:{position:P,top:0,left:0,width:`max-content`,...a?.style},ref:e?.setPopoverElement,children:t}),[e,P,a]),v=_s(v,t=>(0,B.jsx)(Vl,{value:e,children:t}),[e]),v={"data-placing":!k||void 0,...v,style:{position:`relative`,...v.style}},v=Sd({store:e,modal:t,portal:n,preserveTabOrder:r,preserveTabOrderAnchor:S||x,autoFocusOnShow:k&&i,...v,portalRef:j}),v});Cd(Os(function(e){return As(_p,Op(e))}),zl);function kp({popover:e,...t}={}){let n=Zc(t.store,Yc(e,[`arrowElement`,`anchorElement`,`contentElement`,`popoverElement`,`disclosureElement`])),r=n?.getState(),i=gd({...t,store:n}),a=W(t.placement,r?.placement,`bottom`),o=Uc({...i.getState(),placement:a,currentPlacement:a,anchorElement:W(r?.anchorElement,null),popoverElement:W(r?.popoverElement,null),arrowElement:W(r?.arrowElement,null),rendered:Symbol(`rendered`)},i,n);return{...i,...o,setAnchorElement:e=>o.setState(`anchorElement`,e),setPopoverElement:e=>o.setState(`popoverElement`,e),setArrowElement:e=>o.setState(`arrowElement`,e),render:()=>o.setState(`rendered`,Symbol(`rendered`))}}function Ap(e,t,n){return ps(t,[n.popover]),tl(e,n,`placement`),_d(e,t,n)}var jp=`div`,Mp=js(function({store:e,...t}){let n=zl();return e||=n,t={...t,ref:ls(e?.setAnchorElement,t.ref)},t});Os(function(e){return As(jp,Mp(e))});var Np=(0,R.createContext)(void 0),Pp=`div`,Fp=js(function(e){let[t,n]=(0,R.useState)();return e=_s(e,e=>(0,B.jsx)(Np.Provider,{value:n,children:e}),[]),e={role:`group`,"aria-labelledby":t,...e},yo(e)});Os(function(e){return As(Pp,Fp(e))});var Ip=`div`,Lp=js(function({store:e,...t}){return t=Fp(t),t});Os(function(e){return As(Ip,Lp(e))});var Rp=`div`,zp=js(function(e){let t=(0,R.useContext)(Np),n=us(e.id);return K(()=>(t?.(n),()=>t?.(void 0)),[t,n]),e={"aria-hidden":!0,...e,id:n},yo(e)});Os(function(e){return As(Rp,zp(e))});var Bp=`div`,Vp=js(function({store:e,...t}){return t=zp(t),t});Os(function(e){return As(Bp,Vp(e))});var Hp=`div`;function Up(e){let t=e.relatedTarget;return t?.nodeType===Node.ELEMENT_NODE?t:null}function Wp(e){let t=Up(e);return t?G(e.currentTarget,t):!1}var Gp=Symbol(`composite-hover`);function Kp(e){let t=Up(e);if(!t)return!1;do{if(lo(t,Gp)&&t[Gp])return!0;t=t.parentElement}while(t);return!1}var qp=js(function({store:e,focusOnHover:t=!0,blurOnHoverEnd:n=!!t,...r}){let i=Rs();e||=i,ho(e,!1);let a=xs(),o=r.onMouseMove,s=gs(t),c=q(t=>{if(o?.(t),!t.defaultPrevented&&a()&&s(t)){if(!mc(t.currentTarget)){let t=e?.getState().baseElement;t&&!pc(t)&&t.focus()}e?.setActiveId(t.currentTarget.id)}}),l=r.onMouseLeave,u=gs(n),d=q(t=>{var n;l?.(t),!t.defaultPrevented&&a()&&(Wp(t)||Kp(t)||s(t)&&u(t)&&(e?.setActiveId(null),(n=e?.getState().baseElement)==null||n.focus()))}),f=(0,R.useCallback)(e=>{e&&(e[Gp]=!0)},[]);return r={...r,ref:ls(f,r.ref),onMouseMove:c,onMouseLeave:d},yo(r)});ks(Os(function(e){return As(Hp,qp(e))}));var Jp=`input`;function Yp(e,t,n){return n?e.find(e=>!e.disabled&&e.value)?.value===t:!1}function Xp(e,t){return!t||e==null?!1:(e=uo(e),t.length>e.length&&t.toLowerCase().indexOf(e.toLowerCase())===0)}function Zp(e){return e.type===`input`}function Qp(e){return e===`inline`||e===`list`||e===`both`||e===`none`}function $p(e){return e.find(e=>e.disabled?!1:e.element?.getAttribute(`role`)!==`tab`)?.id}var em=js(function({store:e,focusable:t=!0,autoSelect:n=!1,getAutoSelectId:r,setValueOnChange:i,showMinLength:a=0,showOnChange:o,showOnMouseDown:s,showOnClick:c=s,showOnKeyDown:l,showOnKeyPress:u=l,blurActiveItemOnClick:d,setValueOnClick:f=!0,moveOnKeyPress:p=!0,autoComplete:m=`list`,...h}){let g=lu();e||=g,ho(e,!1);let _=(0,R.useRef)(null),[v,y]=hs(),b=(0,R.useRef)(!1),x=(0,R.useRef)(!1),S=J(e,e=>e.virtualFocus&&n),C=m===`inline`||m===`both`,[w,T]=(0,R.useState)(C);ms(()=>{C&&T(!0)},[C]);let E=J(e,`value`),D=(0,R.useRef)(void 0);(0,R.useEffect)(()=>qc(e,[`selectedValue`,`activeId`],(e,t)=>{D.current=t.selectedValue}),[e]);let O=J(e,e=>{if(C&&w&&!(e.activeValue&&Array.isArray(e.selectedValue)&&(e.selectedValue.includes(e.activeValue)||D.current?.includes(e.activeValue))))return e.activeValue}),k=J(e,`renderedItems`),A=J(e,`open`),j=J(e,`contentElement`),M=(0,R.useMemo)(()=>!C||!w?E:Yp(k,O,S)?Xp(E,O)?E+(O?.slice(E.length)||``):E:O||E,[C,w,k,O,S,E]);(0,R.useEffect)(()=>{let e=_.current;if(!e)return;let t=()=>T(!0);return e.addEventListener(`combobox-item-move`,t),()=>{e.removeEventListener(`combobox-item-move`,t)}},[]),(0,R.useEffect)(()=>{if(!C||!w||!O||!Yp(k,O,S)||!Xp(E,O))return;let e=ao;return queueMicrotask(()=>{let t=_.current;if(!t)return;let{start:n,end:r}=Io(t),i=E.length,a=O.length;zo(t,i,a),e=()=>{if(!pc(t))return;let{start:e,end:o}=Io(t);e===i&&o===a&&zo(t,n,r)}}),()=>e()},[v,C,w,O,k,S,E]);let ee=(0,R.useRef)(null),te=q(r),N=(0,R.useRef)(null),P=(0,R.useRef)(!1),ne=(0,R.useRef)(!1);(0,R.useEffect)(()=>{if(!A||!j)return;let t=Ro(j);if(!t)return;ee.current=t;let n=()=>{b.current=!1,P.current=!0},r=()=>{if(ne.current||(P.current=!0),!e||!b.current)return;let{activeId:t}=e.getState();t!==null&&t!==N.current&&(b.current=!1)},i={passive:!0,capture:!0};return t.addEventListener(`wheel`,n,i),t.addEventListener(`touchmove`,n,i),t.addEventListener(`scroll`,r,i),()=>{t.removeEventListener(`wheel`,n,!0),t.removeEventListener(`touchmove`,n,!0),t.removeEventListener(`scroll`,r,!0)}},[A,j,e]),K(()=>{P.current=!1,E&&(x.current||(b.current=!0))},[E]),K(()=>{S!==`always`&&A||(b.current=A)},[S,A]);let re=J(e,`resetValueOnSelect`);ps(()=>{let t=b.current;if(!e||!A||!t&&(!re||P.current))return;let{baseElement:n,contentElement:r,activeId:i}=e.getState();if(!(n&&!pc(n))){if(r?.hasAttribute(`data-placing`)){let e=new MutationObserver(y);return e.observe(r,{attributeFilter:[`data-placing`]}),()=>e.disconnect()}if(S&&t){let t=te(k),n=t===void 0?$p(k)??e.first():t;N.current=n,e.move(n??null)}else{let t=e.item(i||e.first())?.element;t&&`scrollIntoView`in t&&(ne.current=!0,t.scrollIntoView({block:`nearest`,inline:`nearest`}),requestAnimationFrame(()=>{ne.current=!1}))}}},[e,A,v,E,S,re,te,k]),(0,R.useEffect)(()=>{if(!C)return;let t=_.current;if(!t)return;let n=[t,j].filter(e=>!!e),r=t=>{n.every(e=>es(t,e))&&e?.setValue(M)};for(let e of n)e.addEventListener(`focusout`,r);return()=>{for(let e of n)e.removeEventListener(`focusout`,r)}},[C,j,e,M]);let F=e=>e.currentTarget.value.length>=a,ie=h.onChange,ae=gs(o??F),I=gs(i??!e.tag),oe=q(t=>{if(ie?.(t),t.defaultPrevented||!e)return;let n=t.currentTarget,{value:r,selectionStart:i,selectionEnd:a}=n,o=t.nativeEvent;if(b.current=!0,Zp(o)&&(o.isComposing&&(b.current=!1,x.current=!0),C)){let e=o.inputType===`insertText`||o.inputType===`insertCompositionText`,t=i===r.length;T(e&&t)}if(I(t)){let t=r===e.getState().value;e.setValue(r),queueMicrotask(()=>{zo(n,i,a)}),C&&S&&t&&y()}ae(t)&&e.show(),(!S||!b.current)&&e.setActiveId(null)}),L=h.onCompositionEnd,se=q(e=>{b.current=!0,x.current=!1,L?.(e),!e.defaultPrevented&&S&&y()}),ce=h.onMouseDown,le=gs(d??(()=>!!e?.getState().includesBaseElement)),ue=gs(f),de=gs(c??F),fe=q(t=>{ce?.(t),!t.defaultPrevented&&(t.button||t.ctrlKey||e&&(le(t)&&e.setActiveId(null),ue(t)&&e.setValue(M),de(t)&&ts(t.currentTarget,`mouseup`,e.show)))}),pe=h.onKeyDown,me=gs(u??F),he=q(t=>{if(pe?.(t),t.repeat||(b.current=!1),t.defaultPrevented||t.ctrlKey||t.altKey||t.shiftKey||t.metaKey||!e)return;let{open:n}=e.getState();n||(t.key===`ArrowUp`||t.key===`ArrowDown`)&&me(t)&&(t.preventDefault(),e.show())}),ge=h.onBlur,_e=q(e=>{b.current=!1,ge?.(e),e.defaultPrevented}),ve=us(h.id),ye=Qp(m)?m:void 0,be=J(e,e=>e.activeId===null);return h={role:`combobox`,"aria-autocomplete":ye,"aria-haspopup":Lo(j,`listbox`),"aria-expanded":A,"aria-controls":j?.id,"data-active-item":be||void 0,value:M,...h,id:ve,ref:ls(_,h.ref),onChange:oe,onCompositionEnd:se,onMouseDown:fe,onKeyDown:he,onBlur:_e},h=bl({store:e,focusable:t,...h,moveOnKeyPress:e=>_o(p,e)?!1:(C&&T(!0),!0)}),h=Mp({store:e,...h}),{autoComplete:`off`,...h}}),tm=Os(function(e){return As(Jp,em(e))}),nm=`div`,rm=js(function({store:e,...t}){let n=cu();return e||=n,ho(e,!1),Lo(J(e,`contentElement`))===`grid`&&(t={role:`rowgroup`,...t}),t=Lp({store:e,...t}),t}),im=Os(function(e){return As(nm,rm(e))}),am=`div`,om=js(function(e){return e=Vp(e),e}),sm=Os(function(e){return As(am,om(e))}),cm=`div`;function lm(e,t){if(t!=null)return e==null?!1:Array.isArray(e)?e.includes(t):e===t}function um(e){return{menu:`menuitem`,listbox:`option`,tree:`treeitem`}[e]??`option`}var dm=js(function({store:e,value:t,hideOnClick:n,setValueOnClick:r,selectValueOnClick:i=!0,resetValueOnSelect:a,focusOnHover:o=!1,moveOnKeyPress:s=!0,getItem:c,...l}){let u=cu();e||=u,ho(e,!1);let{resetValueOnSelectState:d,multiSelectable:f,selected:p}=el(e,{resetValueOnSelectState:`resetValueOnSelect`,multiSelectable(e){return Array.isArray(e.selectedValue)},selected(e){return lm(e.selectedValue,t)}}),m=(0,R.useCallback)(e=>{let n={...e,value:t};return c?c(n):n},[t,c]);r??=!f,n??=t!=null&&!f;let h=l.onClick,g=gs(r),_=gs(i),v=gs(a??d??f),y=gs(n),b=q(n=>{h?.(n),!n.defaultPrevented&&(Xo(n)||Yo(n)||(t!=null&&(_(n)&&(v(n)&&e?.resetValue(),e?.setSelectedValue(e=>Array.isArray(e)?e.includes(t)?e.filter(e=>e!==t):[...e,t]:t)),g(n)&&e?.setValue(t)),y(n)&&e?.hide()))}),x=l.onKeyDown,S=q(t=>{if(x?.(t),t.defaultPrevented)return;let n=e?.getState().baseElement;n&&(pc(n)||(t.key.length===1||t.key===`Backspace`||t.key===`Delete`)&&(queueMicrotask(()=>n.focus()),No(n)&&e?.setValue(n.value)))});f&&p!=null&&(l={"aria-selected":p,...l}),l=_s(l,e=>(0,B.jsx)(fu.Provider,{value:t,children:(0,B.jsx)(pu.Provider,{value:p??!1,children:e})}),[t,p]),l={role:um((0,R.useContext)(au)),children:t,...l,onClick:b,onKeyDown:S};let C=gs(s);return l=ll({store:e,...l,getItem:m,moveOnKeyPress:t=>{if(!C(t))return!1;let n=new Event(`combobox-item-move`);return(e?.getState().baseElement)?.dispatchEvent(n),!0}}),l=qp({store:e,focusOnHover:o,...l}),l}),fm=ks(Os(function(e){return As(cm,dm(e))})),pm=`div`,mm=js(function({store:e,alwaysVisible:t,...n}){let r=cu(!0),i=su();e||=i;let a=!!e&&e===r;ho(e,!1);let o=(0,R.useRef)(null),s=us(n.id),c=J(e,`mounted`),l=Fl(c,n.hidden,t),u=l?{...n.style,display:`none`}:n.style,d=J(e,e=>Array.isArray(e.selectedValue)),f=fs(o,`role`,n.role),p=(f===`listbox`||f===`tree`||f===`grid`)&&d||void 0,[m,h]=(0,R.useState)(!1),g=J(e,`contentElement`);K(()=>{if(!c)return;let e=o.current;if(!e||g!==e)return;let t=()=>{h(!!e.querySelector(`[role='listbox']`))},n=new MutationObserver(t);return n.observe(e,{subtree:!0,childList:!0,attributeFilter:[`role`]}),t(),()=>n.disconnect()},[c,g]),m||(n={role:`listbox`,"aria-multiselectable":p,...n}),n=_s(n,t=>(0,B.jsx)(du,{value:e,children:(0,B.jsx)(au.Provider,{value:f,children:t})}),[e,f]);let _=s&&(!r||!a)?e.setContentElement:null;return n={hidden:l,...n,id:s,ref:ls(_,o,n.ref),style:u},yo(n)}),hm=Os(function(e){return As(pm,mm(e))}),gm=`div`;function _m(e,...t){if(!e)return!1;if(`id`in e){let n=t.filter(Boolean).map(e=>`[aria-controls~="${e}"]`).join(`, `);return n?e.matches(n):!1}return!1}var vm=js(function({store:e,modal:t,tabIndex:n,alwaysVisible:r,autoFocusOnHide:i=!0,hideOnInteractOutside:a=!0,...o}){let s=lu();e||=s,ho(e,!1);let c=J(e,`baseElement`),l=(0,R.useRef)(!1),u=J(e.tag,e=>e?.renderedItems.length);return o=mm({store:e,alwaysVisible:r,...o}),o=Op({store:e,modal:t,alwaysVisible:r,backdrop:!1,autoFocusOnShow:!1,finalFocus:c,preserveTabOrderAnchor:null,unstable_treeSnapshotKey:u,...o,getPersistentElements(){let n=o.getPersistentElements?.call(o)||[];if(!t||!e)return n;let{contentElement:r,baseElement:i}=e.getState();if(!i)return n;let a=Eo(i),s=[];if(r?.id&&s.push(`[aria-controls~="${r.id}"]`),i?.id&&s.push(`[aria-controls~="${i.id}"]`),!s.length)return[...n,i];let c=s.join(`,`),l=a.querySelectorAll(c);return[...n,...l]},autoFocusOnHide(e){return _o(i,e)?!1:l.current?(l.current=!1,!1):!0},hideOnInteractOutside(t){let n=e?.getState(),r=n?.contentElement?.id,i=n?.baseElement?.id;if(_m(t.target,r,i))return!1;let o=typeof a==`function`?a(t):a;return o&&(l.current=t.type===`click`),o}}),o}),ym=Cd(Os(function(e){return As(gm,vm(e))}),lu);(0,R.createContext)(null),(0,R.createContext)(null);var bm=Ms([Bs],[Vs]),xm=bm.useContext;bm.useScopedContext,bm.useProviderContext,bm.ContextProvider,bm.ScopedContextProvider;var Sm=Wo()&&Ho();function Cm({tag:e,...t}={}){let n=Zc(t.store,Xc(e,[`value`,`rtl`])),r=e?.getState(),i=n?.getState(),a=W(t.activeId,i?.activeId,t.defaultActiveId,null),o=nu({...t,activeId:a,includesBaseElement:W(t.includesBaseElement,i?.includesBaseElement,!0),orientation:W(t.orientation,i?.orientation,`vertical`),focusLoop:W(t.focusLoop,i?.focusLoop,!0),focusWrap:W(t.focusWrap,i?.focusWrap,!0),virtualFocus:W(t.virtualFocus,i?.virtualFocus,!0)}),s=kp({...t,placement:W(t.placement,i?.placement,`bottom-start`)}),c=W(t.value,i?.value,t.defaultValue,``),l=W(t.selectedValue,i?.selectedValue,r?.values,t.defaultSelectedValue,``),u=Array.isArray(l),d={...o.getState(),...s.getState(),value:c,selectedValue:l,resetValueOnSelect:W(t.resetValueOnSelect,i?.resetValueOnSelect,u),resetValueOnHide:W(t.resetValueOnHide,i?.resetValueOnHide,u&&!e),activeValue:i?.activeValue},f=Uc(d,o,s,n);return Sm&&Wc(f,()=>qc(f,[`virtualFocus`],()=>{f.setState(`virtualFocus`,!1)})),Wc(f,()=>{if(e)return U(qc(f,[`selectedValue`],t=>{Array.isArray(t.selectedValue)&&e.setValues(t.selectedValue)}),qc(e,[`values`],e=>{f.setState(`selectedValue`,e.values)}))}),Wc(f,()=>qc(f,[`resetValueOnHide`,`mounted`],e=>{e.resetValueOnHide&&(e.mounted||f.setState(`value`,c))})),Wc(f,()=>qc(f,[`open`],e=>{e.open||(f.setState(`activeId`,a),f.setState(`moves`,0))})),Wc(f,()=>qc(f,[`moves`,`activeId`],(e,t)=>{e.moves===t.moves&&f.setState(`activeValue`,void 0)})),Wc(f,()=>Jc(f,[`moves`,`renderedItems`],(e,t)=>{if(e.moves===t.moves)return;let{activeId:n}=f.getState(),r=o.item(n);f.setState(`activeValue`,r?.value)})),{...s,...o,...f,tag:e,setValue:e=>f.setState(`value`,e),resetValue:()=>f.setState(`value`,d.value),setSelectedValue:e=>f.setState(`selectedValue`,e)}}function wm(e){let t=xm();return e={...e,tag:e.tag===void 0?t:e.tag},ru(e)}function Tm(e,t,n){return ps(t,[n.tag]),tl(e,n,`value`,`setValue`),tl(e,n,`selectedValue`,`setSelectedValue`),tl(e,n,`resetValueOnHide`),tl(e,n,`resetValueOnSelect`),Object.assign(iu(Ap(e,t,n),t,n),{tag:n.tag})}function Em(e={}){e=wm(e);let[t,n]=nl(Cm,e);return Tm(t,n,e)}function Dm(e={}){return(0,B.jsx)(uu,{value:Em(e),children:e.children})}var Om=e(t(((e,t)=>{var n={À:`A`,Á:`A`,Â:`A`,Ã:`A`,Ä:`A`,Å:`A`,Ấ:`A`,Ắ:`A`,Ẳ:`A`,Ẵ:`A`,Ặ:`A`,Æ:`AE`,Ầ:`A`,Ằ:`A`,Ȃ:`A`,Ả:`A`,Ạ:`A`,Ẩ:`A`,Ẫ:`A`,Ậ:`A`,Ç:`C`,Ḉ:`C`,È:`E`,É:`E`,Ê:`E`,Ë:`E`,Ế:`E`,Ḗ:`E`,Ề:`E`,Ḕ:`E`,Ḝ:`E`,Ȇ:`E`,Ẻ:`E`,Ẽ:`E`,Ẹ:`E`,Ể:`E`,Ễ:`E`,Ệ:`E`,Ì:`I`,Í:`I`,Î:`I`,Ï:`I`,Ḯ:`I`,Ȋ:`I`,Ỉ:`I`,Ị:`I`,Ð:`D`,Ñ:`N`,Ò:`O`,Ó:`O`,Ô:`O`,Õ:`O`,Ö:`O`,Ø:`O`,Ố:`O`,Ṍ:`O`,Ṓ:`O`,Ȏ:`O`,Ỏ:`O`,Ọ:`O`,Ổ:`O`,Ỗ:`O`,Ộ:`O`,Ờ:`O`,Ở:`O`,Ỡ:`O`,Ớ:`O`,Ợ:`O`,Ù:`U`,Ú:`U`,Û:`U`,Ü:`U`,Ủ:`U`,Ụ:`U`,Ử:`U`,Ữ:`U`,Ự:`U`,Ý:`Y`,à:`a`,á:`a`,â:`a`,ã:`a`,ä:`a`,å:`a`,ấ:`a`,ắ:`a`,ẳ:`a`,ẵ:`a`,ặ:`a`,æ:`ae`,ầ:`a`,ằ:`a`,ȃ:`a`,ả:`a`,ạ:`a`,ẩ:`a`,ẫ:`a`,ậ:`a`,ç:`c`,ḉ:`c`,è:`e`,é:`e`,ê:`e`,ë:`e`,ế:`e`,ḗ:`e`,ề:`e`,ḕ:`e`,ḝ:`e`,ȇ:`e`,ẻ:`e`,ẽ:`e`,ẹ:`e`,ể:`e`,ễ:`e`,ệ:`e`,ì:`i`,í:`i`,î:`i`,ï:`i`,ḯ:`i`,ȋ:`i`,ỉ:`i`,ị:`i`,ð:`d`,ñ:`n`,ò:`o`,ó:`o`,ô:`o`,õ:`o`,ö:`o`,ø:`o`,ố:`o`,ṍ:`o`,ṓ:`o`,ȏ:`o`,ỏ:`o`,ọ:`o`,ổ:`o`,ỗ:`o`,ộ:`o`,ờ:`o`,ở:`o`,ỡ:`o`,ớ:`o`,ợ:`o`,ù:`u`,ú:`u`,û:`u`,ü:`u`,ủ:`u`,ụ:`u`,ử:`u`,ữ:`u`,ự:`u`,ý:`y`,ÿ:`y`,Ā:`A`,ā:`a`,Ă:`A`,ă:`a`,Ą:`A`,ą:`a`,Ć:`C`,ć:`c`,Ĉ:`C`,ĉ:`c`,Ċ:`C`,ċ:`c`,Č:`C`,č:`c`,C̆:`C`,c̆:`c`,Ď:`D`,ď:`d`,Đ:`D`,đ:`d`,Ē:`E`,ē:`e`,Ĕ:`E`,ĕ:`e`,Ė:`E`,ė:`e`,Ę:`E`,ę:`e`,Ě:`E`,ě:`e`,Ĝ:`G`,Ǵ:`G`,ĝ:`g`,ǵ:`g`,Ğ:`G`,ğ:`g`,Ġ:`G`,ġ:`g`,Ģ:`G`,ģ:`g`,Ĥ:`H`,ĥ:`h`,Ħ:`H`,ħ:`h`,Ḫ:`H`,ḫ:`h`,Ĩ:`I`,ĩ:`i`,Ī:`I`,ī:`i`,Ĭ:`I`,ĭ:`i`,Į:`I`,į:`i`,İ:`I`,ı:`i`,IJ:`IJ`,ij:`ij`,Ĵ:`J`,ĵ:`j`,Ķ:`K`,ķ:`k`,Ḱ:`K`,ḱ:`k`,K̆:`K`,k̆:`k`,Ĺ:`L`,ĺ:`l`,Ļ:`L`,ļ:`l`,Ľ:`L`,ľ:`l`,Ŀ:`L`,ŀ:`l`,Ł:`l`,ł:`l`,Ḿ:`M`,ḿ:`m`,M̆:`M`,m̆:`m`,Ń:`N`,ń:`n`,Ņ:`N`,ņ:`n`,Ň:`N`,ň:`n`,ʼn:`n`,N̆:`N`,n̆:`n`,Ō:`O`,ō:`o`,Ŏ:`O`,ŏ:`o`,Ő:`O`,ő:`o`,Œ:`OE`,œ:`oe`,P̆:`P`,p̆:`p`,Ŕ:`R`,ŕ:`r`,Ŗ:`R`,ŗ:`r`,Ř:`R`,ř:`r`,R̆:`R`,r̆:`r`,Ȓ:`R`,ȓ:`r`,Ś:`S`,ś:`s`,Ŝ:`S`,ŝ:`s`,Ş:`S`,Ș:`S`,ș:`s`,ş:`s`,Š:`S`,š:`s`,Ţ:`T`,ţ:`t`,ț:`t`,Ț:`T`,Ť:`T`,ť:`t`,Ŧ:`T`,ŧ:`t`,T̆:`T`,t̆:`t`,Ũ:`U`,ũ:`u`,Ū:`U`,ū:`u`,Ŭ:`U`,ŭ:`u`,Ů:`U`,ů:`u`,Ű:`U`,ű:`u`,Ų:`U`,ų:`u`,Ȗ:`U`,ȗ:`u`,V̆:`V`,v̆:`v`,Ŵ:`W`,ŵ:`w`,Ẃ:`W`,ẃ:`w`,X̆:`X`,x̆:`x`,Ŷ:`Y`,ŷ:`y`,Ÿ:`Y`,Y̆:`Y`,y̆:`y`,Ź:`Z`,ź:`z`,Ż:`Z`,ż:`z`,Ž:`Z`,ž:`z`,ſ:`s`,ƒ:`f`,Ơ:`O`,ơ:`o`,Ư:`U`,ư:`u`,Ǎ:`A`,ǎ:`a`,Ǐ:`I`,ǐ:`i`,Ǒ:`O`,ǒ:`o`,Ǔ:`U`,ǔ:`u`,Ǖ:`U`,ǖ:`u`,Ǘ:`U`,ǘ:`u`,Ǚ:`U`,ǚ:`u`,Ǜ:`U`,ǜ:`u`,Ứ:`U`,ứ:`u`,Ṹ:`U`,ṹ:`u`,Ǻ:`A`,ǻ:`a`,Ǽ:`AE`,ǽ:`ae`,Ǿ:`O`,ǿ:`o`,Þ:`TH`,þ:`th`,Ṕ:`P`,ṕ:`p`,Ṥ:`S`,ṥ:`s`,X́:`X`,x́:`x`,Ѓ:`Г`,ѓ:`г`,Ќ:`К`,ќ:`к`,A̋:`A`,a̋:`a`,E̋:`E`,e̋:`e`,I̋:`I`,i̋:`i`,Ǹ:`N`,ǹ:`n`,Ồ:`O`,ồ:`o`,Ṑ:`O`,ṑ:`o`,Ừ:`U`,ừ:`u`,Ẁ:`W`,ẁ:`w`,Ỳ:`Y`,ỳ:`y`,Ȁ:`A`,ȁ:`a`,Ȅ:`E`,ȅ:`e`,Ȉ:`I`,ȉ:`i`,Ȍ:`O`,ȍ:`o`,Ȑ:`R`,ȑ:`r`,Ȕ:`U`,ȕ:`u`,B̌:`B`,b̌:`b`,Č̣:`C`,č̣:`c`,Ê̌:`E`,ê̌:`e`,F̌:`F`,f̌:`f`,Ǧ:`G`,ǧ:`g`,Ȟ:`H`,ȟ:`h`,J̌:`J`,ǰ:`j`,Ǩ:`K`,ǩ:`k`,M̌:`M`,m̌:`m`,P̌:`P`,p̌:`p`,Q̌:`Q`,q̌:`q`,Ř̩:`R`,ř̩:`r`,Ṧ:`S`,ṧ:`s`,V̌:`V`,v̌:`v`,W̌:`W`,w̌:`w`,X̌:`X`,x̌:`x`,Y̌:`Y`,y̌:`y`,A̧:`A`,a̧:`a`,B̧:`B`,b̧:`b`,Ḑ:`D`,ḑ:`d`,Ȩ:`E`,ȩ:`e`,Ɛ̧:`E`,ɛ̧:`e`,Ḩ:`H`,ḩ:`h`,I̧:`I`,i̧:`i`,Ɨ̧:`I`,ɨ̧:`i`,M̧:`M`,m̧:`m`,O̧:`O`,o̧:`o`,Q̧:`Q`,q̧:`q`,U̧:`U`,u̧:`u`,X̧:`X`,x̧:`x`,Z̧:`Z`,z̧:`z`,й:`и`,Й:`И`,ё:`е`,Ё:`Е`},r=Object.keys(n).join(`|`),i=new RegExp(r,`g`),a=new RegExp(r,``);function o(e){return n[e]}var s=function(e){return e.replace(i,o)},c=function(e){return!!e.match(a)};t.exports=s,t.exports.has=c,t.exports.remove=s}))()),km={CASE_SENSITIVE_EQUAL:7,EQUAL:6,STARTS_WITH:5,WORD_STARTS_WITH:4,CONTAINS:3,ACRONYM:2,MATCHES:1,NO_MATCH:0},Am=(e,t)=>String(e.rankedValue).localeCompare(String(t.rankedValue));function jm(e,t,n={}){let{keys:r,threshold:i=km.MATCHES,baseSort:a=Am,sorter:o=e=>e.sort((e,t)=>Lm(e,t,a))}=n;return o(e.reduce(s,[])).map(({item:e})=>e);function s(e,a,o){let s=Mm(a,r,t,n),{rank:c,keyThreshold:l=i}=s;return c>=l&&e.push({...s,item:a,index:o}),e}}jm.rankings=km;function Mm(e,t,n,r){if(!t){let t=e;return{rankedValue:t,rank:Pm(t,n,r),keyIndex:-1,keyThreshold:r.threshold}}return Vm(e,t).reduce(({rank:e,rankedValue:t,keyIndex:i,keyThreshold:a},{itemValue:o,attributes:s},c)=>{let l=Pm(o,n,r),u=t,{minRanking:d,maxRanking:f,threshold:p}=s;return l=km.MATCHES?l=d:l>f&&(l=f),l>e&&(e=l,i=c,a=p,u=o),{rankedValue:u,rank:e,keyIndex:i,keyThreshold:a}},{rankedValue:e,rank:km.NO_MATCH,keyIndex:-1,keyThreshold:r.threshold})}function*Nm(e,t){let n=-1;for(;(n=e.indexOf(t,n+1))>-1;)yield n;return-1}function Pm(e,t,n){if(e=Rm(e,n),t=Rm(t,n),t.length>e.length)return km.NO_MATCH;if(e===t)return km.CASE_SENSITIVE_EQUAL;e=e.toLowerCase(),t=t.toLowerCase();let r=Nm(e,t),i=r.next(),a=i.value;if(e.length===t.length&&a===0)return km.EQUAL;if(a===0)return km.STARTS_WITH;let o=i;for(;!o.done;){if(o.value>0&&e[o.value-1]===` `)return km.WORD_STARTS_WITH;o=r.next()}return a>0?km.CONTAINS:t.length===1?km.NO_MATCH:Fm(e).includes(t)?km.ACRONYM:Im(e,t)}function Fm(e){let t=``,n=` `;for(let r=0;r-1))return km.NO_MATCH}return a(r-o)}function Lm(e,t,n){let{rank:r,keyIndex:i}=e,{rank:a,keyIndex:o}=t;return r===a?i===o?n(e,t):ia?-1:1}function Rm(e,{keepDiacritics:t}){return e=`${e}`,t||(e=(0,Om.default)(e)),e}function zm(e,t){typeof t==`object`&&(t=t.key);let n;if(typeof t==`function`)n=t(e);else if(e==null)n=null;else if(Object.hasOwnProperty.call(e,t))n=e[t];else if(t.includes(`.`))return Bm(t,e);else n=null;return n==null?[]:Array.isArray(n)?n:[String(n)]}function Bm(e,t){let n=e.split(`.`),r=[t];for(let e=0,t=n.length;e{var n=200,r=`Expected a function`,i=`__lodash_hash_undefined__`,a=1,o=2,s=1/0,c=9007199254740991,l=`[object Arguments]`,u=`[object Array]`,d=`[object Boolean]`,f=`[object Date]`,p=`[object Error]`,m=`[object Function]`,h=`[object GeneratorFunction]`,g=`[object Map]`,_=`[object Number]`,v=`[object Object]`,y=`[object Promise]`,b=`[object RegExp]`,x=`[object Set]`,S=`[object String]`,C=`[object Symbol]`,w=`[object WeakMap]`,T=`[object ArrayBuffer]`,E=`[object DataView]`,D=`[object Float32Array]`,O=`[object Float64Array]`,k=`[object Int8Array]`,A=`[object Int16Array]`,j=`[object Int32Array]`,M=`[object Uint8Array]`,ee=`[object Uint8ClampedArray]`,te=`[object Uint16Array]`,N=`[object Uint32Array]`,P=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ne=/^\w*$/,re=/^\./,F=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ie=/[\\^$.*+?()[\]{}|]/g,ae=/\\(\\)?/g,I=/^\[object .+?Constructor\]$/,oe=/^(?:0|[1-9]\d*)$/,L={};L[D]=L[O]=L[k]=L[A]=L[j]=L[M]=L[ee]=L[te]=L[N]=!0,L[l]=L[u]=L[T]=L[d]=L[E]=L[f]=L[p]=L[m]=L[g]=L[_]=L[v]=L[b]=L[x]=L[S]=L[w]=!1;var se=typeof global==`object`&&global&&global.Object===Object&&global,ce=typeof self==`object`&&self&&self.Object===Object&&self,le=se||ce||Function(`return this`)(),ue=typeof e==`object`&&e&&!e.nodeType&&e,de=ue&&typeof t==`object`&&t&&!t.nodeType&&t,fe=de&&de.exports===ue&&se.process,pe=function(){try{return fe&&fe.binding(`util`)}catch{}}(),me=pe&&pe.isTypedArray;function he(e,t){for(var n=-1,r=e?e.length:0,i=Array(r);++n-1}function lt(e,t){var n=this.__data__,r=Et(n,e);return r<0?n.push([e,t]):n[r][1]=t,this}it.prototype.clear=at,it.prototype.delete=ot,it.prototype.get=st,it.prototype.has=ct,it.prototype.set=lt;function ut(e){var t=-1,n=e?e.length:0;for(this.clear();++tt||a&&o&&c&&!s&&!l||r&&o&&c||!n&&c||!i)return 1;if(!r&&!a&&!l&&e=s?c:c*(n[r]==`desc`?-1:1)}return e.index-t.index}function B(e,t){return function(n,r){if(n==null)return n;if(!bn(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++al))return!1;var d=s.get(e);if(d&&s.get(t))return d==t;var f=-1,p=!0,m=i&a?new gt:void 0;for(s.set(e,t),s.set(t,e);++f-1&&e%1==0&&e-1&&e%1==0&&e<=c}function wn(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function Tn(e){return!!e&&typeof e==`object`}function En(e){return typeof e==`symbol`||Tn(e)&&Ne.call(e)==C}var Dn=me?be(me):Lt;function On(e){return e==null?``:Gt(e)}function kn(e,t,n){var r=e==null?void 0:At(e,t);return r===void 0?n:r}function An(e,t){return e!=null&&rn(e,t,Mt)}function jn(e){return bn(e)?Tt(e):zt(e)}function Mn(e){return e}function Nn(e){return on(e)?_e(pn(e)):Wt(e)}t.exports=hn}))(),1),qm={InputWrapper:`_InputWrapper_avklz_1`,Shortcut:`_Shortcut_avklz_9`,Input:`_Input_avklz_1`,SelectedValue:`_SelectedValue_avklz_52`,SelectedName:`_SelectedName_avklz_67`,ItemType:`_ItemType_avklz_79`,Popover:`_Popover_avklz_83`,PopoverWrapper:`_PopoverWrapper_avklz_97`,List:`_List_avklz_110`,Group:`_Group_avklz_114`,GroupLabel:`_GroupLabel_avklz_122`,Item:`_Item_avklz_79`,ItemHeader:`_ItemHeader_avklz_162`,ItemName:`_ItemName_avklz_168`,ItemTypes:`_ItemTypes_avklz_174`,ItemMissionName:`_ItemMissionName_avklz_193`,NoResults:`_NoResults_avklz_198`,Backdrop:`_Backdrop_avklz_205`,CloseButton:`_CloseButton_avklz_215`},Jm=new Set([`SkiFree`,`SkiFree_Daily`,`SkiFree_Randomizer`]),Ym={"missions.vl2":`Official`,"TR2final105-client.vl2":`Team Rabbit 2`,"z_mappacks/CTF/Classic_maps_v1.vl2":`Classic`,"z_mappacks/CTF/DynamixFinalPack.vl2":`Official`,"z_mappacks/CTF/KryMapPack_b3EDIT.vl2":`KryMapPack`,"z_mappacks/CTF/S5maps.vl2":`S5`,"z_mappacks/CTF/S8maps.vl2":`S8`,"z_mappacks/CTF/TWL-MapPack.vl2":`TWL`,"z_mappacks/CTF/TWL-MapPackEDIT.vl2":`TWL`,"z_mappacks/CTF/TWL2-MapPack.vl2":`TWL2`,"z_mappacks/CTF/TWL2-MapPackEDIT.vl2":`TWL2`,"z_mappacks/TWL_T2arenaOfficialMaps.vl2":`Arena`,"z_mappacks/xPack2.vl2":`xPack2`,"z_mappacks/z_DMP2-V0.6.vl2":`DMP2 (Discord Map Pack)`,"z_mappacks/zDMP-4.7.3DX.vl2":`DMP (Discord Map Pack)`,"z_mappacks/zDMP-4.7.3DX-ServerOnly.vl2":`DMP (Discord Map Pack)`},Xm={"z_mappacks/DM":`DM`,"z_mappacks/LCTF":`LCTF`,"z_mappacks/Lak":`LakRabbit`},Zm=e=>{let t=e.match(/^(.*)(\/[^/]+)$/);return t?t[1]:``},Qm=T().filter(e=>!Jm.has(e)).map(e=>{let t=w(e),[n]=E(t.resourcePath),r=Zm(n),i=Ym[n]??Xm[r]??null;return{resourcePath:t.resourcePath,missionName:e,displayName:t.displayName,sourcePath:n,groupName:i,missionTypes:t.missionTypes}}),$m=new Map(Qm.map(e=>[e.missionName,e]));function eh(e){let t=new Map;for(let n of e){let e=t.get(n.groupName)??[];e.push(n),t.set(n.groupName,e)}return t.forEach((e,n)=>{t.set(n,(0,Km.default)(e,[e=>(e.displayName||e.missionName).toLowerCase()],[`asc`]))}),(0,Km.default)(Array.from(t.entries()),[([e])=>e===`Official`?0:e==null?2:1,([e])=>e?e.toLowerCase():``],[`asc`,`asc`])}var th=eh(Qm),nh=typeof navigator<`u`&&/Mac|iPhone|iPad|iPod/.test(navigator.platform);function rh(e){let t=(0,z.c)(12),{mission:n}=e,r=n.displayName||n.missionName,i;t[0]===r?i=t[1]:(i=(0,B.jsx)(`span`,{className:qm.ItemName,children:r}),t[0]=r,t[1]=i);let a;t[2]===n.missionTypes?a=t[3]:(a=n.missionTypes.length>0&&(0,B.jsx)(`span`,{className:qm.ItemTypes,children:n.missionTypes.map(ih)}),t[2]=n.missionTypes,t[3]=a);let o;t[4]!==i||t[5]!==a?(o=(0,B.jsxs)(`span`,{className:qm.ItemHeader,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6];let s;t[7]===n.missionName?s=t[8]:(s=(0,B.jsx)(`span`,{className:qm.ItemMissionName,children:n.missionName}),t[7]=n.missionName,t[8]=s);let c;return t[9]!==o||t[10]!==s?(c=(0,B.jsxs)(B.Fragment,{children:[o,s]}),t[9]=o,t[10]=s,t[11]=c):c=t[11],c}function ih(e){return(0,B.jsx)(`span`,{className:qm.ItemType,"data-mission-type":e,children:e},e)}function ah(e){let t=(0,z.c)(65),{value:n,missionType:r,onChange:i,disabled:a,autoFocus:o,onCancel:s}=e,[c,l]=(0,R.useState)(``),u=(0,R.useRef)(null),d=(0,R.useRef)(r),f;t[0]===s?f=t[1]:(f=e=>{e||s?.()},t[0]=s,t[1]=f);let p;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=e=>{(0,R.startTransition)(()=>l(e))},t[2]=p):p=t[2];let m=Em({resetValueOnHide:!0,selectedValue:n,setOpen:f,setSelectedValue:e=>{if(e){let t=d.current,n=w(e).missionTypes;(!t||!n.includes(t))&&(t=n[0]),i({missionName:e,missionType:t}),u.current?.blur()}},setValue:p}),h=J(m,`open`),g,_;t[3]!==o||t[4]!==m?(g=()=>{o&&(u.current?.focus(),m.show())},_=[o,m],t[3]=o,t[4]=m,t[5]=g,t[6]=_):(g=t[5],_=t[6]),(0,R.useEffect)(g,_);let v,y;t[7]===m?(v=t[8],y=t[9]):(v=()=>{let e=e=>{e.code===`KeyK`&&(e.metaKey||e.ctrlKey)&&(e.stopPropagation(),e.preventDefault(),u.current?.focus(),m.show())};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},y=[m],t[7]=m,t[8]=v,t[9]=y),(0,R.useEffect)(v,y);let b;t[10]===n?b=t[11]:(b=$m.get(n),t[10]=n,t[11]=b);let x=b,S;bb0:{if(!c){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e={type:`grouped`,groups:th},t[12]=e):e=t[12],S=e;break bb0}let e;t[13]===c?e=t[14]:(e=jm(Qm,c,{keys:[`displayName`,`missionName`,`missionTypes`,`groupName`]}),t[13]=c,t[14]=e);let n=e,r;t[15]===n?r=t[16]:(r={type:`flat`,missions:n},t[15]=n,t[16]=r),S=r}let C=S,T=x?x.displayName||x.missionName:n,E=C.type===`flat`?C.missions.length===0:C.groups.length===0,D=e=>(0,B.jsx)(fm,{value:e.missionName,className:qm.Item,focusOnHover:!0,onClick:t=>{if(t.target&&t.target instanceof HTMLElement){let r=t.target.dataset.missionType;r?(d.current=r,e.missionName===n&&i({missionName:e.missionName,missionType:r})):d.current=null}else d.current=null},children:(0,B.jsx)(rh,{mission:e})},e.missionName),O=Dm,k=h?`visible`:`hidden`,A;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,B.jsx)(`div`,{className:qm.Backdrop}),t[17]=A):A=t[17];let j;t[18]===k?j=t[19]:(j=(0,B.jsx)(R.Activity,{mode:k,children:A}),t[18]=k,t[19]=j);let M=x?void 0:`Choose a map…`,ee,te;t[20]===m?(ee=t[21],te=t[22]):(ee=()=>{try{document.exitPointerLock()}catch{}m.show()},te=e=>{e.key===`Escape`&&!m.getState().open&&u.current?.blur()},t[20]=m,t[21]=ee,t[22]=te);let N;t[23]!==o||t[24]!==a||t[25]!==M||t[26]!==ee||t[27]!==te?(N=(0,B.jsx)(tm,{ref:u,autoSelect:!0,autoFocus:o,disabled:a,placeholder:M,className:qm.Input,onFocus:ee,onKeyDown:te}),t[23]=o,t[24]=a,t[25]=M,t[26]=ee,t[27]=te,t[28]=N):N=t[28];let P;t[29]!==T||t[30]!==r||t[31]!==x?(P=x&&(0,B.jsxs)(`div`,{className:qm.SelectedValue,children:[(0,B.jsx)(`span`,{className:qm.SelectedName,children:T}),r&&(0,B.jsx)(`span`,{className:qm.ItemType,"data-mission-type":r,children:r})]}),t[29]=T,t[30]=r,t[31]=x,t[32]=P):P=t[32];let ne;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(ne=(0,B.jsx)(`kbd`,{className:qm.Shortcut,children:nh?`⌘K`:`^K`}),t[33]=ne):ne=t[33];let re;t[34]!==N||t[35]!==P?(re=(0,B.jsxs)(`div`,{className:qm.InputWrapper,onKeyDown:sh,children:[N,P,ne]}),t[34]=N,t[35]=P,t[36]=re):re=t[36];let F;t[37]!==m||t[38]!==s?(F=()=>{m.hide(),s?.()},t[37]=m,t[38]=s,t[39]=F):F=t[39];let ie;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,B.jsx)(Gm,{}),t[40]=ie):ie=t[40];let ae;t[41]!==h||t[42]!==F?(ae=(0,B.jsx)(`button`,{type:`button`,className:qm.CloseButton,"data-open":h,onClick:F,children:ie}),t[41]=h,t[42]=F,t[43]=ae):ae=t[43];let I=ym,oe=qm,L;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(L={className:qm.PopoverWrapper},t[44]=L):L=t[44];let se=oh,ce=hm,le=qm,ue=C.type===`flat`?C.missions.map(D):C.groups.map(e=>{let[t,n]=e;return t?(0,B.jsxs)(im,{className:qm.Group,children:[(0,B.jsx)(sm,{className:qm.GroupLabel,children:t}),n.map(D)]},t):(0,B.jsx)(R.Fragment,{children:n.map(D)},`ungrouped`)}),de;t[45]===E?de=t[46]:(de=E&&(0,B.jsx)(`div`,{className:qm.NoResults,children:`No missions found`}),t[45]=E,t[46]=de);let fe;t[47]!==ce||t[48]!==le.List||t[49]!==ue||t[50]!==de?(fe=(0,B.jsxs)(ce,{className:le.List,children:[ue,de]}),t[47]=ce,t[48]=le.List,t[49]=ue,t[50]=de,t[51]=fe):fe=t[51];let pe;t[52]!==I||t[53]!==oe.Popover||t[54]!==L||t[55]!==se||t[56]!==fe?(pe=(0,B.jsx)(I,{gutter:4,fitViewport:!0,sameWidth:!0,fixed:!0,autoFocusOnHide:!1,className:oe.Popover,wrapperProps:L,onKeyDown:se,children:fe}),t[52]=I,t[53]=oe.Popover,t[54]=L,t[55]=se,t[56]=fe,t[57]=pe):pe=t[57];let me;return t[58]!==O||t[59]!==m||t[60]!==j||t[61]!==re||t[62]!==ae||t[63]!==pe?(me=(0,B.jsxs)(O,{store:m,children:[j,re,ae,pe]}),t[58]=O,t[59]=m,t[60]=j,t[61]=re,t[62]=ae,t[63]=pe,t[64]=me):me=t[64],me}function oh(e){e.metaKey||e.stopPropagation()}function sh(e){e.metaKey||e.stopPropagation()}function ch(e){return S({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`m12 6-6 8h12zM6 16h12v2H6z`},child:[]}]})(e)}var lh={Header:`_Header_klnnn_1`,MissionInfo:`_MissionInfo_klnnn_9`,MissionName:`_MissionName_klnnn_21 _SelectedName_avklz_67`,MissionType:`_MissionType_klnnn_25 _ItemType_avklz_79`,MissionTypeDisplayName:`_MissionTypeDisplayName_klnnn_30`,Metadata:`_Metadata_klnnn_35`,Attribution:`_Attribution_klnnn_46`,ServerInfo:`_ServerInfo_klnnn_47`,PlayerName:`_PlayerName_klnnn_51`,RecordingDate:`_RecordingDate_klnnn_52`,ServerName:`_ServerName_klnnn_53`,EjectButton:`_EjectButton_klnnn_57 _DestructiveActionButton_p0g82_141 _Button_p0g82_2`,DisconnectButton:`_DisconnectButton_klnnn_58 _DestructiveActionButton_p0g82_141 _Button_p0g82_2`,EjectIcon:`_EjectIcon_klnnn_62`,Error:`_Error_klnnn_67`,Pulsing:`_Pulsing_klnnn_81`,blink:`_blink_klnnn_1`,ConnectionPing:`_ConnectionPing_klnnn_85`,PingDot:`_PingDot_klnnn_95 _Pulsing_klnnn_81`};function uh(){let e=(0,z.c)(28),t=Jn(),n=nr(),r=Qn(),i=er(),a=ir(),o=or(),s=cr(),[c,l]=s?s.split(` `):[null,null],u=t===`live`,d=_r(),f=pr(ph),p=pr(mr),m=fh,h=dh,g=lh,_;e[0]!==n||e[1]!==r||e[2]!==i?(_=n&&r?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:lh.MissionName,children:n}),r&&(0,B.jsxs)(B.Fragment,{children:[` `,(0,B.jsx)(`span`,{className:lh.MissionType,"data-mission-type":r,children:i===`LCTF`?`LCTF`:r})]})]}):null,e[0]=n,e[1]=r,e[2]=i,e[3]=_):_=e[3];let v;e[4]===_?v=e[5]:(v=(0,B.jsx)(`div`,{className:lh.MissionInfo,children:_}),e[4]=_,e[5]=v);let y;e[6]!==f||e[7]!==p?(y=f&&p!=null?(0,B.jsxs)(`span`,{className:lh.ConnectionPing,"data-quality":p<150?`good`:p<300?`fine`:`poor`,children:[(0,B.jsx)(`span`,{className:lh.PingDot}),` `,D(p)]}):null,e[6]=f,e[7]=p,e[8]=y):y=e[8];let b=lh,x=u?f?o?(0,B.jsxs)(`div`,{className:lh.Attribution,children:[`Connected as`,` `,(0,B.jsx)(`span`,{className:lh.PlayerName,children:o})]}):null:(0,B.jsx)(`div`,{className:lh.Error,children:`Disconnected`}):o&&s?(0,B.jsxs)(`div`,{className:lh.Attribution,children:[`Recorded by `,(0,B.jsx)(`span`,{className:lh.PlayerName,children:o}),` `,`on`,` `,(0,B.jsx)(`span`,{className:lh.RecordingDate,children:c.replace(/-/g,` `)}),` `,`at`,` `,(0,B.jsx)(`span`,{className:lh.RecordingDate,children:(l??``).replace(/(AM|PM)$/,` $1`)})]}):null,S;e[9]===a?S=e[10]:(S=a?(0,B.jsxs)(`div`,{className:lh.ServerInfo,children:[`Server: `,(0,B.jsx)(`span`,{className:lh.ServerName,children:a})]}):null,e[9]=a,e[10]=S);let C;e[11]!==b.Metadata||e[12]!==x||e[13]!==S?(C=(0,B.jsxs)(`div`,{className:b.Metadata,children:[x,S]}),e[11]=b.Metadata,e[12]=x,e[13]=S,e[14]=C):C=e[14];let w;e[15]!==t||e[16]!==h||e[17]!==m||e[18]!==u||e[19]!==f||e[20]!==d?(w=t===`demo`?(0,B.jsx)(`button`,{type:`button`,className:lh.EjectButton,title:`Unload demo`,"aria-label":`Unload demo`,onClick:m,disabled:!d,children:(0,B.jsx)(ch,{className:lh.EjectIcon})}):u?(0,B.jsx)(`button`,{type:`button`,className:lh.DisconnectButton,title:`Disconnect`,"aria-label":`Disconnect`,onClick:h,disabled:!f,children:(0,B.jsx)(Ta,{})}):null,e[15]=t,e[16]=h,e[17]=m,e[18]=u,e[19]=f,e[20]=d,e[21]=w):w=e[21];let T;return e[22]!==g.Header||e[23]!==v||e[24]!==y||e[25]!==C||e[26]!==w?(T=(0,B.jsxs)(`div`,{className:g.Header,children:[v,y,C,w]}),e[22]=g.Header,e[23]=v,e[24]=y,e[25]=C,e[26]=w,e[27]=T):T=e[27],T}function dh(){fr.getState().disconnectServer(),je.getState().setRecording(null)}function fh(){je.getState().setRecording(null)}function ph(e){return e.gameStatus===`connected`||e.gameStatus===`authenticating`}function mh(e){let t=(0,z.c)(5),{onChangeMission:n}=e,{setRecording:r}=Dr(),i=(0,R.useEffectEvent)(n),a;t[0]!==i||t[1]!==r?(a=()=>(window.setMissionName=e=>{let t=w(e).missionTypes;i({missionName:e,missionType:t[0]})},window.getMissionList=T,window.getMissionInfo=w,window.loadDemoRecording=r,hh),t[0]=i,t[1]=r,t[2]=a):a=t[2];let o;t[3]===r?o=t[4]:(o=[r],t[3]=r,t[4]=o),(0,R.useEffect)(a,o)}function hh(){delete window.setMissionName,delete window.getMissionList,delete window.getMissionInfo,delete window.loadDemoRecording}var gh=(0,R.createContext)(null);function _h(){let e=(0,R.useContext)(gh);if(!e)throw Error(`useCameras must be used within CamerasProvider`);return e}function vh({children:e}){let t=o(e=>e.camera),[n,r]=(0,R.useState)(-1),[i,a]=(0,R.useState)({}),[s,c]=(0,R.useState)(()=>({initialized:!1,position:null,quarternion:null})),l=(0,R.useCallback)(e=>{a(t=>({...t,[e.id]:e}))},[]),u=(0,R.useCallback)(e=>{a(t=>{let{[e.id]:n,...r}=t;return r})},[]),d=Object.keys(i).length,f=(0,R.useCallback)(e=>{if(e>=0&&e{f(d?(n+1)%d:-1)},[d,n,f]);(0,R.useEffect)(()=>{let e=()=>{let e=window.location.hash;if(e.startsWith(`#c`)){let[t,n]=e.slice(2).split(`~`),r=t.split(`,`).map(e=>parseFloat(e)),i=n.split(`,`).map(e=>parseFloat(e));c({initialized:!0,position:new Ee(...r),quarternion:new Te(...i)})}else c({initialized:!0,position:null,quarternion:null})};return window.addEventListener(`hashchange`,e),e(),()=>{window.removeEventListener(`hashchange`,e)}},[]),(0,R.useEffect)(()=>{s.initialized&&s.position&&(t.position.copy(s.position),s.quarternion&&t.quaternion.copy(s.quarternion))},[t,s]),(0,R.useEffect)(()=>{!s.initialized||s.position||d>0&&n===-1&&f(0)},[d,f,n,s]);let m=(0,R.useMemo)(()=>({registerCamera:l,unregisterCamera:u,nextCamera:p,setCameraIndex:f,cameraCount:d}),[l,u,p,f,d]);return d===0&&n!==-1&&r(-1),(0,B.jsx)(gh.Provider,{value:m,children:e})}var yh=(0,R.createContext)(null);function bh(){let e=(0,R.useContext)(yh);if(!e)throw Error(`useInputContext must be used within an InputProvider`);return e}function xh(){return bh().onInput}function Sh(){return bh().mode}var Ch=new Set([`Ctrl`,`Shift`,`Alt`]),wh=new Set([`MetaLeft`,`MetaRight`,`ControlLeft`,`ControlRight`,`ShiftLeft`,`ShiftRight`,`AltLeft`,`AltRight`]);function Th(e){if(typeof e!=`string`)return e;let t=e.split(`-`),n=t.pop(),r=[];for(let e of t)Ch.has(e)&&r.push(e);return{type:`key`,code:n,modifiers:r.length>0?r:void 0}}function Eh(e,t){let n=e.has(`ControlLeft`)||e.has(`ControlRight`),r=e.has(`ShiftLeft`)||e.has(`ShiftRight`),i=e.has(`AltLeft`)||e.has(`AltRight`);return n===(t?.includes(`Ctrl`)??!1)&&r===(t?.includes(`Shift`)??!1)&&i===(t?.includes(`Alt`)??!1)}function Dh(e,t){let n=t?.includes(`Ctrl`)??!1,r=t?.includes(`Shift`)??!1,i=t?.includes(`Alt`)??!1;return e.ctrlKey===n&&e.shiftKey===r&&e.altKey===i}function Oh(){return{pressed:!1}}function kh(){return{dragging:!1,deltaX:0,deltaY:0,startX:0,startY:0}}function Ah(){return{deltaX:0,deltaY:0}}function jh(){return{touching:!1,dragging:!1,deltaX:0,deltaY:0}}function Mh(e){switch(e.type){case`key`:case`click`:return Oh();case`drag`:case`pointerLockMove`:return kh();case`scroll`:return Ah();case`touch`:return jh()}}var Nh=j()(ke(()=>({keys:new Set,actions:{}}))),Ph=new Map;function Fh(e,t){let n=Ph.get(e);return n||(n=new Set,Ph.set(e,n)),n.add(t),()=>{n.delete(t),n.size===0&&Ph.delete(e)}}function Ih(e){let t=Ph.get(e);if(t)for(let e of t)e()}var Lh=new Set([`text`,`search`,`url`,`tel`,`email`,`password`,`number`,`date`,`datetime-local`,`month`,`week`,`time`]),Rh=new Set([`Space`,`Enter`,`NumpadEnter`,`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`]);function zh(e){if(e.code===`Tab`)return document.pointerLockElement?(e.preventDefault(),!1):!0;let t=document.activeElement;if(!t||t===document.body)return!1;let n=t.tagName;if(t.isContentEditable||n===`TEXTAREA`)return!0;if(n===`INPUT`){let n=t.type.toLowerCase();return Lh.has(n)?!0:Rh.has(e.code)}return n===`BUTTON`||n===`SELECT`||n===`A`||n===`SUMMARY`?Rh.has(e.code):!1}function Bh(e){if(e.metaKey||zh(e))return;let{keys:t}=Nh.getState();if(t.has(e.code))return;let n=new Set(t);n.add(e.code),Nh.setState(e=>({...e,keys:n}))}function Vh(e){let{keys:t}=Nh.getState();if(!t.has(e.code))return;let n=new Set(t);if(n.delete(e.code),e.code===`MetaLeft`||e.code===`MetaRight`)for(let e of n)wh.has(e)||n.delete(e);Nh.setState(e=>({...e,keys:n}))}function Hh(){let{keys:e}=Nh.getState();e.size!==0&&Nh.setState(e=>({...e,keys:new Set}))}window.addEventListener(`keydown`,Bh),window.addEventListener(`keyup`,Vh),window.addEventListener(`blur`,Hh);function Uh(e){let t=(0,z.c)(2),n;return t[0]===e?n=t[1]:(n=t=>e(t.actions),t[0]=e,t[1]=n),M(Nh,n)}function Wh(){let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[Nh.subscribe,Gh],e[0]=t):t=e[0],t}function Gh(){return Nh.getState().actions}function Kh(){let{actions:e}=Nh.getState(),t={};for(let[n,r]of Object.entries(e))`deltaX`in r&&(r.deltaX!==0||r.deltaY!==0)&&(t[n]={...r,deltaX:0,deltaY:0});Object.keys(t).length>0&&Nh.setState(e=>({...e,actions:{...e.actions,...t}}))}function qh(e,t){let n=(0,z.c)(5),r=(0,R.useEffectEvent)(t),i;n[0]!==e||n[1]!==r?(i=()=>Fh(e,r),n[0]=e,n[1]=r,n[2]=i):i=n[2];let a;n[3]===e?a=n[4]:(a=[e],n[3]=e,n[4]=a),(0,R.useEffect)(i,a)}var Jh=1,Yh=11,Xh=.002;function Zh(e){let t=(e-b)/(1-b);return(Math.round(t*15)+1)/16}function Qh(e,t){let n=e[t];return n!=null&&`pressed`in n&&n.pressed}function $h(){let e=(0,z.c)(41),t=g(),{speedMultiplier:n,setSpeedMultiplier:r,mouseSensitivity:i,invertScroll:s,invertDrag:c}=v(),{onInput:l,mode:u}=bh(),[,d]=Wh(),f=o(ng),{setCameraIndex:p,cameraCount:m}=_h(),h=(0,R.useRef)(!1),_=(0,R.useRef)(!1),y,x;e[0]===t?(y=e[1],x=e[2]):(y=()=>{t&&document.pointerLockElement&&document.exitPointerLock()},x=[t],e[0]=t,e[1]=y,e[2]=x),(0,R.useEffect)(y,x);let S;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(S=[],e[3]=S):S=e[3],(0,R.useEffect)(eg,S);let C;e[4]!==f||e[5]!==t?(C=()=>{!t&&!N.getState().animation&&f.domElement.requestPointerLock()},e[4]=f,e[5]=t,e[6]=C):C=e[6],qh(`canvasClick`,C);let w;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{h.current=!0},e[7]=w):w=e[7],qh(`nextPlayer`,w);let T;e[8]!==d||e[9]!==s||e[10]!==r?(T=()=>{let e=d().adjustSpeed;if(!e||e.deltaY===0)return;let t=s?-1:1,n=(e.deltaY>0?-1:1)*t,i=Math.ceil(Math.log2(Math.abs(e.deltaY)+1)),a=Math.max(Jh,Math.min(Yh,i))*n;r(e=>{let t=Math.round(e*100)+a;return Math.max(b,Math.min(1,t/100))})},e[8]=d,e[9]=s,e[10]=r,e[11]=T):T=e[11],qh(`adjustSpeed`,T);let E;e[12]!==m||e[13]!==p?(E=e=>{eD(0),e[15]=D,e[16]=O),qh(`camera1`,O);let k;e[17]===D?k=e[18]:(k=()=>D(1),e[17]=D,e[18]=k),qh(`camera2`,k);let A;e[19]===D?A=e[20]:(A=()=>D(2),e[19]=D,e[20]=A),qh(`camera3`,A);let j;e[21]===D?j=e[22]:(j=()=>D(3),e[21]=D,e[22]=j),qh(`camera4`,j);let M;e[23]===D?M=e[24]:(M=()=>D(4),e[23]=D,e[24]=M),qh(`camera5`,M);let ee;e[25]===D?ee=e[26]:(ee=()=>D(5),e[25]=D,e[26]=ee),qh(`camera6`,ee);let te;e[27]===D?te=e[28]:(te=()=>D(6),e[27]=D,e[28]=te),qh(`camera7`,te);let P;e[29]===D?P=e[30]:(P=()=>D(7),e[29]=D,e[30]=P),qh(`camera8`,P);let ne;e[31]===D?ne=e[32]:(ne=()=>D(8),e[31]=D,e[32]=ne),qh(`camera9`,ne);let re;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(re=()=>{_.current=!0},e[33]=re):re=e[33],qh(`toggleObserverMode`,re);let F;return e[34]!==d||e[35]!==c||e[36]!==u||e[37]!==i||e[38]!==l||e[39]!==n?(F=(e,t)=>{if(N.getState().animation)return;let r=d(),a=0,o=0,s=r.lockedLook;s&&(s.deltaX!==0||s.deltaY!==0)&&(a=s.deltaX*i,o=s.deltaY*i);let f=r.dragLook;if(f?.dragging&&(f.deltaX!==0||f.deltaY!==0)){let e=(c?1:-1)*(u===`follow`?-1:1);a+=e*f.deltaX*Xh,o+=e*f.deltaY*Xh}Qh(r,`lookLeft`)&&(a-=1*t),Qh(r,`lookRight`)&&(a+=1*t),Qh(r,`lookUp`)&&(o-=1*t),Qh(r,`lookDown`)&&(o+=1*t);let p=0,m=0,g=0;Qh(r,`moveLeft`)&&(p=-1),Qh(r,`moveRight`)&&(p+=1),Qh(r,`moveForward`)&&(m=1),Qh(r,`moveBackward`)&&--m,Qh(r,`moveUp`)&&(g=1),Qh(r,`moveDown`)&&--g;let v=Zh(n);p=Math.max(-1,Math.min(1,p*v)),m=Math.max(-1,Math.min(1,m*v)),g=Math.max(-1,Math.min(1,g*v));let y=[!1,!1,!1,!1,!1,!1];h.current&&=(y[0]=!0,!1),_.current&&=(y[2]=!0,!1),Kh();let b=a!==0||o!==0,x=p!==0||m!==0||g!==0,S=y.some(Boolean);!b&&!x&&!S||l({deltaYaw:a,deltaPitch:o,x:p,y:m,z:g,triggers:y,delta:t})},e[34]=d,e[35]=c,e[36]=u,e[37]=i,e[38]=l,e[39]=n,e[40]=F):F=e[40],a(F),null}function eg(){return N.subscribe(tg)}function tg(e){e.animation&&document.pointerLockElement&&document.exitPointerLock()}function ng(e){return e.gl}var rg=(0,R.lazy)(()=>Me(()=>import(`./TouchHandler-BGxxpP92.js`).then(e=>({default:e.TouchHandler})),__vite__mapDeps([7,8,2,9,3,10,11,12,13,14])));function ig(e){let t=(0,z.c)(9),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],t[0]=r):r=t[0];let i=(0,R.useRef)(r),[a,o]=(0,R.useState)(`local`),s;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(s=e=>{i.current.push(e)},t[1]=s):s=t[1];let c=s,l;t[2]===a?l=t[3]:(l={moveQueue:i,onInput:c,mode:a,setMode:o},t[2]=a,t[3]=l);let u;t[4]===n?u=t[5]:(u=(0,B.jsx)(Ne,{children:n}),t[4]=n,t[5]=u);let d;return t[6]!==l||t[7]!==u?(d=(0,B.jsx)(yh.Provider,{value:l,children:u}),t[6]=l,t[7]=u,t[8]=d):d=t[8],d}function ag(){let e=(0,z.c)(5),t=g(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,B.jsx)($h,{}),e[0]=n):n=e[0];let r;e[1]===t?r=e[2]:(r=t?(0,B.jsx)(R.Suspense,{children:(0,B.jsx)(rg,{})}):null,e[1]=t,e[2]=r);let i;return e[3]===r?i=e[4]:(i=(0,B.jsxs)(B.Fragment,{children:[n,r]}),e[3]=r,e[4]=i),i}var og=(0,R.lazy)(()=>Me(()=>import(`./TouchJoystick-DYqKShVz.js`).then(e=>({default:e.TouchJoystick})),__vite__mapDeps([15,2,16,11,9,12,13,14,17]))),sg=(0,R.lazy)(()=>Me(()=>import(`./KeyboardOverlay-Du-YZ_-q.js`).then(e=>({default:e.KeyboardOverlay})),__vite__mapDeps([18,2,11,9,12,13,19,20,21,10,22])));function cg(){let e=(0,z.c)(9),t=g(),n=te(lg),{showInputOverlay:r}=c(),i;e[0]!==t||e[1]!==n?(i=t&&!n?(0,B.jsx)(og,{}):null,e[0]=t,e[1]=n,e[2]=i):i=e[2];let a;e[3]!==t||e[4]!==r?(a=t===!1&&r?(0,B.jsx)(sg,{}):null,e[3]=t,e[4]=r,e[5]=a):a=e[5];let o;return e[6]!==i||e[7]!==a?(o=(0,B.jsxs)(R.Suspense,{children:[i,a]}),e[6]=i,e[7]=a,e[8]=o):o=e[8],o}function lg(e){return e.animation!==null}var ug={LoadingIndicator:`_LoadingIndicator_8ijel_1`,loadingComplete:`_loadingComplete_8ijel_1`,Spinner:`_Spinner_8ijel_19`,spin:`_spin_8ijel_1`,Progress:`_Progress_8ijel_28`,ProgressBar:`_ProgressBar_8ijel_36`,ProgressText:`_ProgressText_8ijel_43`};function dg(e){let t=(0,z.c)(12),{isLoading:n,progress:r}=e,i=r===void 0?null:r,a=(i??0)*100,o=!n,s=i==null,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,B.jsx)(`div`,{className:ug.Spinner}),t[0]=c):c=t[0];let l=`${a}%`,u;t[1]===l?u=t[2]:(u=(0,B.jsx)(`div`,{className:ug.Progress,children:(0,B.jsx)(`div`,{className:ug.ProgressBar,style:{width:l}})}),t[1]=l,t[2]=u);let d;t[3]===a?d=t[4]:(d=Math.round(a),t[3]=a,t[4]=d);let f;t[5]===d?f=t[6]:(f=(0,B.jsxs)(`div`,{className:ug.ProgressText,children:[d,`%`]}),t[5]=d,t[6]=f);let p;return t[7]!==o||t[8]!==s||t[9]!==u||t[10]!==f?(p=(0,B.jsxs)(`div`,{className:ug.LoadingIndicator,"data-complete":o,"data-indeterminate":s,children:[c,u,f]}),t[7]=o,t[8]=s,t[9]=u,t[10]=f,t[11]=p):p=t[11],p}var fg={Dialog:`_Dialog_1t9wa_1`,Overlay:`_Overlay_1t9wa_22`,DialogButton:`_DialogButton_1t9wa_33`,Secondary:`_Secondary_1t9wa_72 _DialogButton_1t9wa_33`,Actions:`_Actions_1t9wa_86`};function pg(e){let t=(0,z.c)(5),{onClose:n}=e,r;t[0]===n?r=t[1]:(r=e=>{n?.()},t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,B.jsx)(`div`,{className:fg.Dialog,children:(0,B.jsx)(dg,{isLoading:!0})}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,B.jsx)(`div`,{className:fg.Overlay,onClick:r,children:i}),t[3]=r,t[4]=a),a}var mg={Button:`_Button_n870r_1`};function hg(e){let t=(0,z.c)(9),{isOpen:n,orientation:r,onClick:i}=e,a=n?`Close sidebar`:`Open sidebar`,o=n?`Close sidebar`:`Open sidebar`,s;t[0]!==n||t[1]!==r?(s=r===`top`?n?(0,B.jsx)(ba,{}):(0,B.jsx)(ya,{}):n?(0,B.jsx)(Sa,{}):(0,B.jsx)(xa,{}),t[0]=n,t[1]=r,t[2]=s):s=t[2];let c;return t[3]!==i||t[4]!==r||t[5]!==a||t[6]!==o||t[7]!==s?(c=(0,B.jsx)(`button`,{type:`button`,className:mg.Button,"data-orientation":r,"aria-label":a,title:o,onClick:i,children:s}),t[3]=i,t[4]=r,t[5]=a,t[6]=o,t[7]=s,t[8]=c):c=t[8],c}var gg={Button:`_Button_wk3rb_1 _DestructiveActionButton_p0g82_141 _Button_p0g82_2`,ButtonLabel:`_ButtonLabel_wk3rb_9 _ButtonLabel_p0g82_37`};function _g(){let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsxs)(`button`,{type:`button`,className:gg.Button,onClick:vg,children:[(0,B.jsx)(Wa,{}),(0,B.jsx)(`span`,{className:gg.ButtonLabel,children:`Exit tour`})]}),e[0]=t):t=e[0],t}function vg(){return N.getState().cancel()}var yg={Frame:`_Frame_1u5rk_1`,Toolbar:`_Toolbar_1u5rk_16`,Sidebar:`_Sidebar_1u5rk_29`,Content:`_Content_1u5rk_43`,ThreeView:`_ThreeView_1u5rk_52`,PlayerBar:`_PlayerBar_1u5rk_61`,Backdrop:`_Backdrop_1u5rk_71`};function bg({children:e}){return e}function xg(e,t){return(0,R.lazy)(()=>t().then(t=>({default:t[e]})))}var Sg=xg(`GameView`,()=>Me(()=>import(`./GameView-C7uJjiJd.js`),__vite__mapDeps([23,2,16,24,5,25,26,27,8,9,3,10,28,11,12,13,29,30,31,32,33,34,35,36,1,37,38,39,4,21,40,41,42]))),Cg=xg(`DemoPlaybackControls`,()=>Me(()=>import(`./DemoPlaybackControls-D--l_WXN.js`),__vite__mapDeps([43,2,19,20,9,44]))),wg=xg(`PlayerHUD`,()=>Me(()=>import(`./PlayerHUD-IFZkOeCb.js`),__vite__mapDeps([45,2,16,9,33,24,5,12,13,34,10,35,41,46]))),Tg=xg(`MapInfoDialog`,()=>Me(()=>import(`./MapInfoDialog-C3Dk90R7.js`),__vite__mapDeps([47,2,36,28,9,33,24,5,12,13,48]))),Eg=xg(`ServerBrowser`,()=>Me(()=>import(`./ServerBrowser-DxPc-p2a.js`),__vite__mapDeps([49,2,11,9,12,13,50]))),Dg=xg(`ScoreScreen`,()=>Me(()=>import(`./ScoreScreen-oQegOqLS.js`),__vite__mapDeps([51,2,9,34,10,35,13,52])));function Og(){let[e,t]=y(),n=$t(),{clearFogEnabledOverride:r,sidebarOpen:i,setSidebarOpen:a}=c(),{missionName:o,missionType:s}=e,[l,u]=(0,R.useState)(!1),[d,f]=(0,R.useState)(!1),[p,m]=(0,R.useState)(!1),[h,_]=(0,R.useState)(!1),[v,b]=(0,R.useState)(0),[x,S]=(0,R.useState)(!0),C=g(),T=te(e=>e.animation!==null),E=(0,R.useCallback)(e=>{window.location.hash=``,r(),_(!1),N.getState().cancel(),fr.getState().disconnectServer(),je.getState().setRecording(null),Fn.getState().endStreaming(),t(e),C&&a(!1)},[r,t,C,a]);mh({onChangeMission:E});let D=_r(),O=Jn(),k=O===`demo`||O===`live`,A=Xn(),j=Qn();(0,R.useEffect)(()=>{if(!(!k||!A))try{let e=w(A);t({missionName:A,missionType:j&&e.missionTypes.includes(j)?j:void 0})}catch{t(null)}},[k,A,j,t]),(0,R.useEffect)(()=>{D&&_(!1)},[D]);let M=pr(e=>e.gameStatus);(0,R.useEffect)(()=>{M===`connected`&&C&&a(!1)},[M,C,a]),(0,R.useEffect)(()=>{D&&C&&a(!1)},[C,D,a]),(0,R.useEffect)(()=>{T&&C&&a(!1)},[C,T,a]),(0,R.useEffect)(()=>{let e=e=>{e.code===`Backslash`&&(e.metaKey||e.ctrlKey)&&(e.stopPropagation(),e.preventDefault(),a(e=>!e))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]);let ee=v,P=ee<1;(0,R.useEffect)(()=>{if(P)S(!0);else{let e=setTimeout(()=>S(!1),500);return()=>clearTimeout(e)}},[P]);let ne=(0,R.useCallback)((e,t=0)=>{b(t)},[]),re=(0,R.useRef)(null),F=(0,R.useRef)(null),ie=(0,R.useCallback)(()=>u(!0),[]),ae=(0,R.useCallback)(()=>m(!0),[]),I=(0,R.useCallback)(()=>{f(!0)},[]),oe=(0,R.useCallback)(()=>_(!0),[]),L=(0,R.useCallback)(()=>{_(!1)},[]),se=(0,R.useCallback)(e=>{re.current=e.camera,F.current=e.invalidate},[]);return(0,B.jsx)(`main`,{className:yg.Frame,children:(0,B.jsxs)(gr,{children:[(0,B.jsxs)(`header`,{className:yg.Toolbar,children:[(0,B.jsx)(hg,{orientation:`top`,isOpen:i,onClick:()=>{a(e=>!e)}}),(0,B.jsx)(hg,{orientation:`left`,isOpen:i,onClick:()=>{a(e=>!e)}}),(0,B.jsx)(R.Activity,{mode:k&&!h?`visible`:`hidden`,children:(0,B.jsx)(uh,{})}),(0,B.jsx)(R.Activity,{mode:!k||h?`visible`:`hidden`,children:(0,B.jsx)(ah,{value:h?``:o,missionType:h?``:s??``,onChange:E,autoFocus:h,onCancel:L})}),T&&(0,B.jsx)(_g,{})]}),i?(0,B.jsx)(`div`,{className:yg.Backdrop}):null,(0,B.jsx)(R.Activity,{mode:i?`visible`:`hidden`,children:(0,B.jsx)(`div`,{className:yg.Sidebar,"data-open":i,children:(0,B.jsx)(ro,{missionName:o,missionType:s,choosingMap:h,cameraRef:re,invalidateRef:F,onOpenMapInfo:ie,onOpenScoreScreen:k?ae:void 0,onOpenServerBrowser:n.live?I:void 0,onChooseMap:oe,onCancelChoosingMap:L,onClose:()=>{a(!1)}})})}),(0,B.jsx)(ig,{children:(0,B.jsxs)(`div`,{className:yg.Content,children:[(0,B.jsx)(`div`,{className:yg.ThreeView,children:(0,B.jsx)(R.Suspense,{children:(0,B.jsx)(Sg,{missionName:o,missionType:s,dpr:l||d||p?.25:void 0,onCreated:se,onLoadingChange:ne})})}),k&&!p?(0,B.jsx)(R.Suspense,{children:(0,B.jsx)(wg,{})}):null,(0,B.jsx)(cg,{}),x&&(0,B.jsx)(dg,{isLoading:P,progress:ee})]})}),(0,B.jsx)(`footer`,{className:yg.PlayerBar,children:D?.source===`demo`?(0,B.jsx)(R.Suspense,{children:(0,B.jsx)(Cg,{})}):null}),l?(0,B.jsx)(bg,{children:(0,B.jsx)(R.Suspense,{fallback:(0,B.jsx)(pg,{onClose:()=>u(!1)}),children:(0,B.jsx)(Tg,{onClose:()=>u(!1),missionName:o,missionType:s??``})})}):null,d?(0,B.jsx)(bg,{children:(0,B.jsx)(R.Suspense,{fallback:(0,B.jsx)(pg,{onClose:()=>f(!1)}),children:(0,B.jsx)(Eg,{onClose:()=>f(!1)})})}):null,p?(0,B.jsx)(bg,{children:(0,B.jsx)(R.Suspense,{fallback:(0,B.jsx)(pg,{onClose:()=>m(!1)}),children:(0,B.jsx)(Dg,{onClose:()=>m(!1)})})}):null]})})}var kg=new Jt;function Ag(){let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsx)(R.Suspense,{children:(0,B.jsx)(qe,{children:(0,B.jsx)(en,{children:(0,B.jsx)(Zt,{client:kg,children:(0,B.jsx)(h,{children:(0,B.jsx)(Og,{})})})})})}),e[0]=t):t=e[0],t}(0,Re.createRoot)(document.getElementById(`root`)).render((0,B.jsx)(R.StrictMode,{children:(0,B.jsx)(Ag,{})}));export{Tt as $,pr as A,yn as B,xr as C,_r as D,Dr as E,Kn as F,cn as G,fn as H,qn as I,an as J,sn as K,Mn as L,Hn as M,Jn as N,Tr as O,Un as P,Et as Q,An as R,hr as S,yr as T,un as U,pn as V,ln as W,Lt as X,Xt as Y,kt as Z,_h as _,Dh as a,pt as at,ha as b,Ih as c,Ze as ct,Uh as d,Le as dt,nt as et,Wh as f,vh as g,xh as h,jh as i,it,Fn as j,fr as k,Th as l,Ye as lt,Sh as m,kh as n,vt as nt,Nh as o,Ct as ot,bh as p,on as q,Mh as r,at as rt,Eh as s,rt as st,ag as t,et as tt,qh as u,Je as ut,Wm as v,Cr as w,ma as x,va as y,On as z}; \ No newline at end of file diff --git a/docs/assets/index-DvT5LFSb.css b/docs/assets/index-DvT5LFSb.css deleted file mode 100644 index bae0a15f..00000000 --- a/docs/assets/index-DvT5LFSb.css +++ /dev/null @@ -1 +0,0 @@ -@layer button{@media (hover:hover){._Button_1u47f_2{background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_1u47f_2:not(:disabled):hover{background:#0062b3cc;border-color:#fff6}._Button_1u47f_2 svg{opacity:.6}._Button_1u47f_2:not(:disabled):hover svg{opacity:1}}@media (hover:hover){._DestructiveActionButton_1u47f_135:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_1u47f_135{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}@media (hover:hover){._Button_1u47f_2{background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_1u47f_2:not(:disabled):hover{background:#0062b3cc;border-color:#fff6}._Button_1u47f_2 svg{opacity:.6}._Button_1u47f_2:not(:disabled):hover svg{opacity:1}}@media (hover:hover){._DestructiveActionButton_1u47f_135:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_1u47f_135{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}@media (hover:hover){._Button_1u47f_2{background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_1u47f_2:not(:disabled):hover{background:#0062b3cc;border-color:#fff6}._Button_1u47f_2 svg{opacity:.6}._Button_1u47f_2:not(:disabled):hover svg{opacity:1}}@media (hover:hover){._DestructiveActionButton_1u47f_135:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_1u47f_135{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}@media (hover:hover){._Button_1u47f_2{background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_1u47f_2:not(:disabled):hover{background:#0062b3cc;border-color:#fff6}._Button_1u47f_2 svg{opacity:.6}._Button_1u47f_2:not(:disabled):hover svg{opacity:1}}@media (hover:hover){._DestructiveActionButton_1u47f_135:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_1u47f_135{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}@media (hover:hover){._Button_1u47f_2{background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_1u47f_2:not(:disabled):hover{background:#0062b3cc;border-color:#fff6}._Button_1u47f_2 svg{opacity:.6}._Button_1u47f_2:not(:disabled):hover svg{opacity:1}}@media (hover:hover){._DestructiveActionButton_1u47f_135:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_1u47f_135{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}._Button_1u47f_2{color:#fff;cursor:pointer;background:#0062b3cc;border:1px solid #fff6;border-radius:5px;flex:auto;justify-content:center;align-items:center;gap:8px;width:auto;min-width:28px;height:auto;min-height:32px;margin:0;padding:4px 8px;font-family:inherit;font-size:18px;font-weight:500;transition:background .2s,border-color .2s;display:flex;position:relative;transform:translate(0);box-shadow:0 1px 2px #0006}._Button_1u47f_2 svg{opacity:.8;pointer-events:none;flex:none;transition:opacity .2s}._Button_1u47f_2:disabled{opacity:.6;color:#fffc;cursor:default;box-shadow:inset 0 0 12px 1px #36363680}@media (hover:hover){._Button_1u47f_2{background:#03529399;border:1px solid #c8c8c84d;border-color:#ffffff4d #c8c8c84d #c8c8c84d #ffffff4d}._Button_1u47f_2:not(:disabled):hover{background:#0062b3cc;border-color:#fff6}._Button_1u47f_2 svg{opacity:.6}._Button_1u47f_2:not(:disabled):hover svg{opacity:1}}._Button_1u47f_2:not(:disabled):active,._Button_1u47f_2[aria-expanded=true]{background:#0062b3b3;border-color:#ffffff4d;transform:translateY(1px)}._Button_1u47f_2[data-active=true]{background:#0075d5e6;border-color:#fff6}._ButtonLabel_1u47f_82{font-size:14px}._ButtonHint_1u47f_86{opacity:.7;font-size:10px}._ButtonGroup_1u47f_91{flex:1 0 auto;align-items:stretch;width:100%;display:flex}._ButtonGroup_1u47f_91 ._Button_1u47f_2{background:#1b4f87b3;flex-direction:column;flex:1 0 0;gap:1px;padding-top:8px;padding-bottom:8px;font-size:22px;box-shadow:inset 0 0 10px #04284780}._ButtonGroup_1u47f_91 ._Button_1u47f_2 svg{margin-bottom:3px}._ButtonGroup_1u47f_91 ._Button_1u47f_2[data-active=true]{background:#0065cbcc;box-shadow:inset 0 2px 3px #08bdff80,inset 0 -2px 6px #00122880}._ButtonGroup_1u47f_91 ._Button_1u47f_2[data-active=true] svg{opacity:1}._ButtonGroup_1u47f_91 ._Button_1u47f_2:not(:first-child){border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}._ButtonGroup_1u47f_91 ._Button_1u47f_2:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}._DestructiveActionButton_1u47f_135{background:#d5423ab3;flex:none;min-width:28px;min-height:28px;margin:0 10px 0 0;padding:2px;font-size:16px}@media (hover:hover){._DestructiveActionButton_1u47f_135:not(:disabled):hover{background:#e5463be6}}@media (pointer:coarse){._DestructiveActionButton_1u47f_135{min-width:36px;min-height:36px;margin-right:6px;font-size:20px}}}:root{--monospace-font:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}html{box-sizing:border-box;background:#000;margin:0;padding:0;overflow:hidden}*,:before,:after{box-sizing:inherit}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:100%}body{margin:0;padding:0;overflow:hidden}._Button_1xmvi_1[data-copied=true]{background:#0075d5e6;border-color:#fff6}._ClipboardIcon_1xmvi_10{opacity:1;display:none}._Button_1xmvi_1[data-copied=true] ._ClipboardIcon_1xmvi_10{animation:.22s linear infinite _showClipboardCheck_1xmvi_1;display:block}._Button_1xmvi_1[data-copied=true] ._PinIcon_1xmvi_20{display:none}@keyframes _showClipboardCheck_1xmvi_1{0%{opacity:1}to{opacity:.2}}._JoinServerButton_cz8os_1[data-connected=true] ._Icon_cz8os_5{animation:1.2s ease-out infinite _blink_cz8os_1}@keyframes _blink_cz8os_1{0%{opacity:1}to{opacity:.25}}._AccordionGroup_1ysdj_1{flex-direction:column;gap:1px;display:flex}._Trigger_1ysdj_7{color:#fff;text-align:left;text-transform:uppercase;letter-spacing:.0417em;background:#ffffff1a;border:0;align-items:center;gap:4px;width:100%;padding:6px 8px;font-family:inherit;font-size:12px;font-weight:400;display:flex}._TriggerIcon_1ysdj_24{opacity:.5;font-size:12px;transition:transform .2s;transform:rotate(0)}._Trigger_1ysdj_7[data-state=open] ._TriggerIcon_1ysdj_24{transform:rotate(90deg)}._Content_1ysdj_35{overflow:hidden}._Content_1ysdj_35[data-state=open]{animation:.3s _slideDown_1ysdj_1}._Content_1ysdj_35[data-state=closed]{animation:.3s _slideUp_1ysdj_1}._Body_1ysdj_47{padding:16px 12px 10px}@keyframes _slideDown_1ysdj_1{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes _slideUp_1ysdj_1{0%{height:var(--radix-accordion-content-height)}to{height:0}}@media (pointer:coarse){._Trigger_1ysdj_7{padding-top:12px;padding-bottom:12px}}._Root_cfjcw_1{flex-direction:column;display:flex}._ProgressWrap_cfjcw_6{flex-direction:column;gap:4px;padding:12px 10px;display:flex}._ProgressLabel_cfjcw_13{opacity:.7;text-align:center;font-size:11px}._ProgressBar_cfjcw_19{background:#ffffff1a;border-radius:2px;width:100%;height:4px;overflow:hidden}._ProgressFill_cfjcw_27{background:#0a84ffcc;height:100%;transition:width .15s}._Filters_cfjcw_33{flex-wrap:wrap;gap:4px;padding:10px;display:flex}._FilterButton_cfjcw_40{color:#ffffffb3;cursor:pointer;background:#ffffff0d;border:1px solid #fff3;border-radius:3px;padding:2px 8px;font-family:inherit;font-size:11px}._FilterButton_cfjcw_40[data-active=true]{color:#fff;background:#0062b399;border-color:#64b4ff80}._EventList_cfjcw_57{flex-direction:column;padding:2px 0 12px;display:flex}._EventRow_cfjcw_63{color:#fffc;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;padding:3px 10px 3px 8px;font-family:inherit;font-size:13px;display:flex}@media (hover:hover){._EventRow_cfjcw_63:hover{background:#ffffff1a}._FilterButton_cfjcw_40:hover{background:#ffffff1a;border-color:#ffffff4d}._FilterButton_cfjcw_40[data-active=true]:hover{background:#0062b3cc;border-color:#64b4ffb3}}._EventRow_cfjcw_63:active{color:#fff;background:#0055b1cc}@media (pointer:coarse){._FilterButton_cfjcw_40{flex:1 0 auto;padding:4px 8px;font-size:13px}._EventList_cfjcw_57{gap:2px}._EventRow_cfjcw_63{padding-top:5px;padding-bottom:5px;font-size:14px}}._EventTime_cfjcw_120{font-variant-numeric:tabular-nums;opacity:.6;text-align:right;flex-shrink:0;min-width:3.5em;font-size:11px}._EventIcon_cfjcw_129{flex-shrink:0;align-items:center;margin:0 1px;font-size:13px;display:flex}._EventIcon_cfjcw_129[data-type=kill],._EventIcon_cfjcw_129[data-type=death]{color:#8a8380}._EventIcon_cfjcw_129[data-type=flag-cap]{color:#69db7c;margin:0;font-size:15px}._EventIcon_cfjcw_129[data-type=flag-grab],._EventIcon_cfjcw_129[data-type=flag-return]{margin:0;font-size:15px}._EventIcon_cfjcw_129[data-type=flag-cap][data-affinity=enemy]{color:#ff6b6b}._EventIcon_cfjcw_129[data-type=flag-cap][data-affinity=neutral]{color:#adb5bd}._EventIcon_cfjcw_129[data-type=match-start]{color:#74c0fc;margin:0;font-size:15px}._EventIcon_cfjcw_129[data-type=match-end]{color:#74c0fc}._EventDescription_cfjcw_172{text-overflow:ellipsis;overflow:hidden}._Empty_cfjcw_186{opacity:.5;text-align:center;padding:4px 10px 12px;font-size:12px}._Root_pb9qa_1{flex-direction:column;display:flex}._Empty_pb9qa_6{opacity:.5;text-align:center;padding:4px 10px 12px;font-size:12px}._TourAllButton_pb9qa_13{color:#fffc;cursor:pointer;background:0 0;border:0;justify-content:flex-start;align-self:flex-start;align-items:center;gap:6px;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:500;display:flex}@media (hover:hover){._TourAllButton_pb9qa_13:hover{color:#fff}}._CategoryHeader_pb9qa_40{color:#fff9;text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none;align-items:baseline;gap:6px;padding:4px 4px 4px 14px;font-size:12px;font-weight:600;display:flex}._CategoryHeader_pb9qa_40:not(:first-child){border-top:1px solid #ffffff0f;padding-top:8px}._CategoryCount_pb9qa_58{opacity:.7;font-weight:400}._TourButton_pb9qa_63{color:#fffc;cursor:pointer;text-transform:none;background:0 0;border:0;border-radius:0;align-items:center;gap:5px;margin:0 0 0 auto;padding:6px 8px;font-family:inherit;font-size:12px;font-weight:500;display:flex}._PlayIcon_pb9qa_83{color:#74c0fc}._ExitIcon_pb9qa_87{color:#ff8363}@media (hover:hover){._TourButton_pb9qa_63:hover{color:#fff}}._ItemList_pb9qa_100{flex-direction:column;padding:0 0 8px;display:flex}._ItemRow_pb9qa_106{color:#fffc;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:4px;padding:4px 10px 4px 12px;font-family:inherit;font-size:13px;display:flex}._ItemRow_pb9qa_106 ._PlayIcon_pb9qa_83{font-size:12px}@media (hover:hover){._ItemRow_pb9qa_106:not(:hover) ._PlayIcon_pb9qa_83{visibility:hidden}}._ItemRow_pb9qa_106[data-active=true]{color:#fff;background:#0055b180}@media (hover:hover){._ItemRow_pb9qa_106:hover{background:#ffffff1a}._ItemRow_pb9qa_106[data-active=true]:hover{background:#0055b199}}._ItemRow_pb9qa_106:active{color:#fff;background:#0055b1cc}._ItemLabel_pb9qa_151{text-overflow:ellipsis;overflow:hidden}._TeamBadge_pb9qa_156{color:#fff;border-radius:2px;flex-shrink:0;margin:0 0 0 6px;padding:0 4px;font-size:11px;line-height:1.5}._TeamBadge_pb9qa_156[data-team="1"]{background:#086c8acc}._TeamBadge_pb9qa_156[data-team="2"]{background:#8f5e14cc}@media (pointer:coarse){._CategoryHeader_pb9qa_40{padding:6px 8px 6px 16px;font-size:13px}._TourButton_pb9qa_63{font-size:13px}._ItemRow_pb9qa_106{padding-top:6px;padding-bottom:6px;padding-left:14px;font-size:14px}}._InspectorControls_cm86c_1{z-index:2;font-size:13px;line-height:1.231;position:relative}._Dropdown_cm86c_8{flex-direction:column;justify-content:center;align-items:stretch;gap:0;display:flex}._Group_cm86c_16{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;display:flex}._CheckboxField_cm86c_24{grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;gap:0 6px;margin:0 0 8px;display:grid}._CheckboxField_cm86c_24 input[type=checkbox]{grid-area:1/1;margin-left:0}._CheckboxField_cm86c_24 ._Label_cm86c_39{grid-area:1/2;align-items:center;gap:6px;display:flex}._Description_cm86c_47{opacity:.6;margin:2px 0 0;padding:0;font-size:12px;line-height:1.5}._CheckboxField_cm86c_24 ._Description_cm86c_47{grid-area:2/2}._Control_cm86c_60{justify-content:flex-end;align-items:center;gap:8px;display:flex}._Field_cm86c_67{grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;margin:0 0 12px;display:grid}._Field_cm86c_67:has(._Description_cm86c_47){margin:0 0 10px}._Field_cm86c_67 select{margin-bottom:6px}._Field_cm86c_67 input[type=range]{max-width:100px}._Field_cm86c_67 output{opacity:.7}._Tools_cm86c_91{flex-wrap:wrap;align-items:center;gap:8px;padding:10px;display:flex}._Field_cm86c_67 label{grid-area:1/1}._Field_cm86c_67 ._Control_cm86c_60{grid-area:1/2}._Field_cm86c_67 ._Description_cm86c_47{grid-area:2/1/auto/-1}._ForceRenderButton_cm86c_119{color:#4cb5ff;cursor:pointer;background:0 0;border:0;place-content:center;margin:0;padding:0 2px;font-size:16px;display:grid}._CloseSidebarButton_cm86c_131{margin:12px;padding-top:8px;padding-bottom:8px}@media (width>=900px){._CloseSidebarButton_cm86c_131{display:none}}@media (pointer:coarse){._Tools_cm86c_91{padding-top:12px;padding-bottom:13px}._Field_cm86c_67{grid-template-columns:auto minmax(0,70%);gap:0 20px;margin-bottom:20px}._CheckboxField_cm86c_24{margin-bottom:16px}._Description_cm86c_47{font-size:13px;line-height:1.53846}._Field_cm86c_67 label,._CheckboxField_cm86c_24 ._Label_cm86c_39{font-size:15px}._CheckboxField_cm86c_24 input[type=checkbox]{min-width:19px;min-height:19px;padding-right:6px}._Field_cm86c_67 select{width:100%;max-width:none;padding:4px 6px;font-size:15px}._Field_cm86c_67 input[type=range]{width:100%;max-width:none;padding-top:10px;padding-bottom:10px}}@media (width<=499px){._PopoverWrapper_1p1ez_97{width:auto!important;max-width:none!important;left:8px!important;right:8px!important;transform:translateY(44px)!important}._Popover_1p1ez_83{min-width:0}}@media (pointer:fine){._CloseButton_1p1ez_215{visibility:hidden}}@media (width<=899px){._InputWrapper_1p1ez_1{flex:1 1 0;max-width:460px;margin-left:4px}._Input_1p1ez_1{width:100%}}._InputWrapper_1p1ez_1{z-index:2;align-items:center;margin:10px 10px 10px 8px;display:flex;position:relative}._Shortcut_1p1ez_9{color:#fff9;pointer-events:none;background:#ffffff26;border-radius:3px;padding:1px 4px;font-family:system-ui,sans-serif;font-size:11px;position:absolute;right:7px}._Input_1p1ez_1[aria-expanded=true]~._Shortcut_1p1ez_9{display:none}._Input_1p1ez_1{color:#fff;-webkit-user-select:text;user-select:text;background:#0009;border:1px solid #ffffff4d;border-radius:3px;outline:none;width:280px;padding:6px 36px 6px 8px;font-size:14px}._Input_1p1ez_1[aria-expanded=true]{padding-right:8px}._Input_1p1ez_1:focus{border-color:#fff9}._Input_1p1ez_1::placeholder{color:#777;font-family:inherit;font-size:12px}._SelectedValue_1p1ez_52{pointer-events:none;align-items:center;gap:6px;display:flex;position:absolute;left:8px;right:36px;overflow:hidden}._Input_1p1ez_1[aria-expanded=true]~._SelectedValue_1p1ez_52{display:none}._SelectedName_1p1ez_67{color:#fff;white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;font-size:14px;font-weight:600;line-height:1.28571;overflow:hidden}._SelectedValue_1p1ez_52>._ItemType_1p1ez_79{flex-shrink:0}._Popover_1p1ez_83{z-index:100;min-width:360px;max-height:var(--popover-available-height,90vh);overscroll-behavior:contain;background:#141414f2;border:1px solid #ffffff80;border-radius:3px;overflow:hidden auto;box-shadow:0 8px 24px #0009}@media (width<=499px){._PopoverWrapper_1p1ez_97{width:auto!important;max-width:none!important;left:8px!important;right:8px!important;transform:translateY(44px)!important}._Popover_1p1ez_83{min-width:0}}._List_1p1ez_110{padding:4px 0}._List_1p1ez_110:has(>._Group_1p1ez_114:first-child){padding-top:0}._Group_1p1ez_114{padding-bottom:4px}._GroupLabel_1p1ez_122{color:#c6caca;z-index:1;background:#3a4548f2;border-bottom:1px solid #ffffff4d;padding:6px 8px 6px 12px;font-size:13px;font-weight:600;position:sticky;top:0}._Group_1p1ez_114:not(:last-child){border-bottom:1px solid #ffffff4d}._Item_1p1ez_79{cursor:pointer;border-radius:4px;outline:none;flex-direction:column;gap:1px;margin:4px 4px 0;padding:6px 8px;scroll-margin-top:32px;display:flex}._List_1p1ez_110>._Item_1p1ez_79:first-child{margin-top:0}._Item_1p1ez_79[data-active-item]{background:#ffffff26}._Item_1p1ez_79[aria-selected=true]{background:#6496ff4d}._ItemHeader_1p1ez_162{align-items:center;gap:6px;display:flex}._ItemName_1p1ez_168{color:#fff;font-size:14px;font-weight:600}._ItemTypes_1p1ez_174{gap:3px;display:flex}._ItemType_1p1ez_79{color:#fff;background:#ff9d0066;border-radius:3px;padding:2px 5px;font-size:10px;font-weight:600;line-height:1.3}._ItemType_1p1ez_79:hover{background:#ff9d00b3}._ItemMissionName_1p1ez_193{color:#ffffff80;font-size:12px}._NoResults_1p1ez_198{color:#ffffff80;text-align:center;padding:12px 8px;font-size:13px}._Backdrop_1p1ez_205{z-index:1;background:#00000080;position:fixed;inset:0}._CloseButton_1p1ez_215{z-index:101;color:#ffffff80;background:0 0;border:0;place-content:center;margin:0 0 0 -8px;padding:6px;font-size:24px;display:grid;position:relative}@media (pointer:fine){._CloseButton_1p1ez_215{visibility:hidden}}._CloseButton_1p1ez_215[data-open=false]{visibility:hidden}@media (width<=899px){._InputWrapper_1p1ez_1{flex:1 1 0;max-width:460px;margin-left:4px}._Input_1p1ez_1{width:100%}}._Header_klnnn_1{flex:auto;justify-content:flex-start;align-items:center;gap:12px;display:flex}._MissionInfo_klnnn_9{color:#fff;background:0 0;border:1px solid #fff0;border-radius:3px;align-items:center;gap:6px;margin:10px auto 10px 4px;padding:5px 8px;display:flex}._MissionType_klnnn_25{pointer-events:none}._MissionTypeDisplayName_klnnn_30{opacity:.5;font-size:12px}._Metadata_klnnn_35{text-align:right;flex-direction:column;gap:2px;margin-left:4px;padding:8px 0;font-size:12px;line-height:1.16667;display:flex}._Attribution_klnnn_46,._ServerInfo_klnnn_47{color:#83938b}._PlayerName_klnnn_51,._RecordingDate_klnnn_52,._ServerName_klnnn_53{color:#eceae7}._EjectIcon_klnnn_62{margin-top:-.5px;font-size:21px}._Error_klnnn_67{color:#ff6a45}@media (width<=899px){._Metadata_klnnn_35{display:none}._MissionInfo_klnnn_9{margin-left:0}}._Pulsing_klnnn_81{animation:1.2s ease-out infinite _blink_klnnn_1}._ConnectionPing_klnnn_85{background:#ffffff1a;border-radius:12px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:inline-flex}._PingDot_klnnn_95{background:currentColor;border-radius:3px;width:6px;height:6px;display:inline-block}._ConnectionPing_klnnn_85[data-quality=good] ._PingDot_klnnn_95{color:#74ff45}._ConnectionPing_klnnn_85[data-quality=fine] ._PingDot_klnnn_95{color:#ff9e2f}._ConnectionPing_klnnn_85[data-quality=poor] ._PingDot_klnnn_95{color:#e83f25}@keyframes _blink_klnnn_1{0%{opacity:1}to{opacity:.25}}._LoadingIndicator_8ijel_1{pointer-events:none;z-index:1;opacity:.8;flex-direction:column;align-items:center;gap:16px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}._LoadingIndicator_8ijel_1[data-complete=true]{animation:.3s ease-out forwards _loadingComplete_8ijel_1}._Spinner_8ijel_19{border:4px solid #fff3;border-top-color:#fff;border-radius:50%;width:48px;height:48px;animation:1s linear infinite _spin_8ijel_1}._Progress_8ijel_28{background:#fff3;border-radius:2px;width:200px;height:4px;overflow:hidden}._ProgressBar_8ijel_36{background:#fff;border-radius:2px;height:100%;transition:width .1s ease-out}._ProgressText_8ijel_43{color:#ffffffb3;font-variant-numeric:tabular-nums;font-size:14px}._LoadingIndicator_8ijel_1[data-indeterminate=true] ._Progress_8ijel_28,._LoadingIndicator_8ijel_1[data-indeterminate=true] ._ProgressText_8ijel_43{display:none}@keyframes _spin_8ijel_1{to{transform:rotate(360deg)}}@keyframes _loadingComplete_8ijel_1{0%{opacity:1}to{opacity:0}}._Dialog_1t9wa_1{color:#b0d5c9;-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;background:#142526cc;border:1px solid #41838b99;border-radius:4px;outline:none;min-width:120px;max-width:calc(100dvw - 40px);min-height:120px;max-height:calc(100dvh - 40px);font-size:14px;line-height:1.5;position:relative;overflow:hidden;box-shadow:0 0 50px #0006,inset 0 0 60px #01070d99}._Overlay_1t9wa_22{z-index:10;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}._DialogButton_1t9wa_33{color:#99fff1;text-shadow:0 -1px 1px #0006;cursor:pointer;background:linear-gradient(#30a497cc,#1f9688cc 33%,#218377cc 67%,#046564cc);border:1px solid #387c74cc;border-top-color:#57b7b9cc;border-radius:4px;padding:4px 18px;font-family:inherit;font-size:14px;font-weight:500;box-shadow:inset 0 0 4px #02808e80}._DialogButton_1t9wa_33:hover:not(:disabled){color:#b1fff5;border:1px solid #409188e6;border-top-color:#5ac6c2e6;box-shadow:inset 0 0 4px #02808e80,0 0 5px #3effbf80}._DialogButton_1t9wa_33:active:not(:disabled){transform:translateY(1px)}._DialogButton_1t9wa_33:disabled{opacity:.4;cursor:not-allowed}._Secondary_1t9wa_72{box-shadow:none;color:#a2e2cfcc;text-shadow:none;background:0 0;border:1px solid #387c74cc}._Secondary_1t9wa_72:hover:not(:disabled){color:#a9ffe5cc;border:1px solid #3f9087e6}._Actions_1t9wa_86{align-items:center;gap:10px;display:flex}@media (width<=719px){._Dialog_1t9wa_1{border-radius:0;max-width:calc(100dvw - 20px);max-height:calc(100dvh - 20px)}}@media (width<=639px){._Overlay_1t9wa_22{padding:10px}}._Button_sprpv_1{color:#fff;cursor:pointer;opacity:.6;background:0 0;border:0;border-radius:4px;flex:none;place-content:center;min-width:30px;min-height:30px;margin:0 0 0 8px;padding:2px;font-size:24px;display:grid}._Button_sprpv_1:active,._Button_sprpv_1[data-active=true]{opacity:1;transform:translateY(1px)}._Button_sprpv_1[data-orientation=top]{min-width:48px;min-height:48px;margin:0;display:none}@media (hover:hover){._Button_sprpv_1:not(:disabled):hover{opacity:1}}._Button_sprpv_1 svg{pointer-events:none}@media (width<=899px){._Button_sprpv_1[data-orientation=left]{display:none}._Button_sprpv_1[data-orientation=top]{display:grid}}@media (pointer:coarse){._Button_sprpv_1{font-size:28px}}._Button_wk3rb_1{gap:6px;margin:0 10px 0 auto;padding:4px 10px 4px 6px;font-size:20px}._ButtonLabel_wk3rb_9{font-size:13px;font-weight:500}@media (width<=799px){._Button_wk3rb_1{margin:0 10px 0 0;padding-right:6px}._Button_wk3rb_1 ._ButtonLabel_wk3rb_9{display:none}}._Frame_1u5rk_1{grid-template:"sidebar toolbar""sidebar content"1fr"sidebar footer"/auto 1fr;width:100dvw;height:100dvh;display:grid;overflow:hidden}._Toolbar_1u5rk_16{color:#fff;z-index:3;view-transition-class:layout;background:#191f1f;border-bottom:1px solid #465555;grid-area:toolbar;align-items:center;display:flex;position:relative;box-shadow:0 0 3px 1px #0006}._Sidebar_1u5rk_29{color:#fff;z-index:2;background:#191f1f;border-right:1px solid #465555;grid-area:sidebar;width:320px;height:100%;min-height:0;position:relative;overflow-y:auto;box-shadow:0 0 3px 1px #0006}._Content_1u5rk_43{z-index:0;grid-area:content;min-width:0;min-height:0;position:relative;overflow:hidden}._ThreeView_1u5rk_52{z-index:0;position:absolute;inset:0}._PlayerBar_1u5rk_61{color:#fff;z-index:1;background:#191f1f;border-top:1px solid #465555;grid-area:footer;position:relative;box-shadow:0 0 3px 1px #0006}._Backdrop_1u5rk_71{display:none}@media (width<=899px){._Frame_1u5rk_1{grid-template:"toolbar""content"1fr"footer"/1fr;display:grid}._Sidebar_1u5rk_29{border:1px solid #465555;border-top:0;grid-area:content-start/content/footer-end;justify-self:center;width:auto;max-width:500px;height:calc(100% + 1px);margin:0 -1px}._Toolbar_1u5rk_16{justify-content:space-between}._Backdrop_1u5rk_71{z-index:2;background:#000000b3;display:block;position:fixed;inset:0}} diff --git a/docs/assets/useBaseQuery-NrPec9_7.js b/docs/assets/useBaseQuery-Co62zxSo.js similarity index 99% rename from docs/assets/useBaseQuery-NrPec9_7.js rename to docs/assets/useBaseQuery-Co62zxSo.js index 044830bc..2fdb49f5 100644 --- a/docs/assets/useBaseQuery-NrPec9_7.js +++ b/docs/assets/useBaseQuery-Co62zxSo.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{r as t,t as n}from"./jsx-runtime-BpGWiA-R.js";import{$ as r,Q as i,X as a,Y as o,Z as s,at as c,ct as l,et as u,it as d,lt as f,nt as p,ot as m,rt as h,st as g,tt as _,ut as v}from"./index-B1XI52_L.js";var y=class extends v{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=i(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),x(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return S(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return S(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof h(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!c(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&C(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||h(this.options.enabled,this.#t)!==h(t.enabled,this.#t)||d(this.options.staleTime,this.#t)!==d(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||h(this.options.enabled,this.#t)!==h(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return T(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(_)),t}#g(){this.#b();let e=d(this.options.staleTime,this.#t);if(r.isServer()||this.#r.isStale||!u(e))return;let t=g(this.#r.dataUpdatedAt,e)+1;this.#d=l.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(r.isServer()||h(this.options.enabled,this.#t)===!1||!u(this.#p)||this.#p===0)&&(this.#f=l.setInterval(()=>{(this.options.refetchIntervalInBackground||f.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d&&=(l.clearTimeout(this.#d),void 0)}#x(){this.#f&&=(l.clearInterval(this.#f),void 0)}createResult(e,t){let n=this.#t,r=this.options,o=this.#r,s=this.#i,c=this.#a,l=e===n?this.#n:e.state,{state:u}=e,d={...u},f=!1,m;if(t._optimisticResults){let i=this.hasListeners(),o=!i&&x(e,t),s=i&&C(e,n,t,r);(o||s)&&(d={...d,...a(u.data,e.options)}),t._optimisticResults===`isRestoring`&&(d.fetchStatus=`idle`)}let{error:g,errorUpdatedAt:_,status:v}=d;m=d.data;let y=!1;if(t.placeholderData!==void 0&&m===void 0&&v===`pending`){let e;o?.isPlaceholderData&&t.placeholderData===c?.placeholderData?(e=o.data,y=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(v=`success`,m=p(o?.data,e,t),f=!0)}if(t.select&&m!==void 0&&!y)if(o&&m===s?.data&&t.select===this.#c)m=this.#l;else try{this.#c=t.select,m=t.select(m),m=p(o?.data,m,t),this.#l=m,this.#s=null}catch(e){this.#s=e}this.#s&&(g=this.#s,m=this.#l,_=Date.now(),v=`error`);let b=d.fetchStatus===`fetching`,S=v===`pending`,T=v===`error`,E=S&&b,D=m!==void 0,O={status:v,fetchStatus:d.fetchStatus,isPending:S,isSuccess:v===`success`,isError:T,isInitialLoading:E,isLoading:E,data:m,dataUpdatedAt:d.dataUpdatedAt,error:g,errorUpdatedAt:_,failureCount:d.fetchFailureCount,failureReason:d.fetchFailureReason,errorUpdateCount:d.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:d.dataUpdateCount>l.dataUpdateCount||d.errorUpdateCount>l.errorUpdateCount,isFetching:b,isRefetching:b&&!S,isLoadingError:T&&!D,isPaused:d.fetchStatus===`paused`,isPlaceholderData:f,isRefetchError:T&&D,isStale:w(e,t),refetch:this.refetch,promise:this.#o,isEnabled:h(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=O.data!==void 0,r=O.status===`error`&&!t,a=e=>{r?e.reject(O.error):t&&e.resolve(O.data)},o=()=>{a(this.#o=O.promise=i())},s=this.#o;switch(s.status){case`pending`:e.queryHash===n.queryHash&&a(s);break;case`fulfilled`:(r||O.data!==s.value)&&o();break;case`rejected`:(!r||O.error!==s.reason)&&o();break}}return O}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!c(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){s.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function b(e,t){return h(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&t.retryOnMount===!1)}function x(e,t){return b(e,t)||e.state.data!==void 0&&S(e,t,t.refetchOnMount)}function S(e,t,n){if(h(t.enabled,e)!==!1&&d(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&w(e,t)}return!1}function C(e,t,n,r){return(e!==t||h(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&w(e,n)}function w(e,t){return h(t.enabled,e)!==!1&&e.isStaleByTime(d(t.staleTime,e))}function T(e,t){return!c(e.getCurrentResult(),t)}var E=e(t(),1),D=E.createContext(!1),O=()=>E.useContext(D);D.Provider,n();function k(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var A=E.createContext(k()),j=()=>E.useContext(A),M=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?m(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},N=e=>{E.useEffect(()=>{e.clearReset()},[e])},P=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||m(n,[e.error,r])),F=(e,t)=>t.state.data===void 0,I=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},L=(e,t)=>e.isLoading&&e.isFetching&&!t,R=(e,t)=>e?.suspense&&t.isPending,z=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function B(e,t,n){let i=O(),a=j(),c=o(n),l=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(l);let u=c.getQueryCache().get(l.queryHash);l._optimisticResults=i?`isRestoring`:`optimistic`,I(l),M(l,a,u),N(a);let d=!c.getQueryCache().get(l.queryHash),[f]=E.useState(()=>new t(c,l)),p=f.getOptimisticResult(l),m=!i&&e.subscribed!==!1;if(E.useSyncExternalStore(E.useCallback(e=>{let t=m?f.subscribe(s.batchCalls(e)):_;return f.updateResult(),t},[f,m]),()=>f.getCurrentResult(),()=>f.getCurrentResult()),E.useEffect(()=>{f.setOptions(l)},[l,f]),R(l,p))throw z(l,f,a);if(P({result:p,errorResetBoundary:a,throwOnError:l.throwOnError,query:u,suspense:l.suspense}))throw p.error;return c.getDefaultOptions().queries?._experimental_afterQuery?.(l,p),l.experimental_prefetchInRender&&!r.isServer()&&L(p,i)&&(d?z(l,f,a):u?.promise)?.catch(_).finally(()=>{f.updateResult()}),l.notifyOnChangeProps?p:f.trackResult(p)}export{F as n,y as r,B as t}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{r as t,t as n}from"./jsx-runtime-BpGWiA-R.js";import{$ as r,Q as i,X as a,Y as o,Z as s,at as c,ct as l,et as u,it as d,lt as f,nt as p,ot as m,rt as h,st as g,tt as _,ut as v}from"./index-DfaykQpF.js";var y=class extends v{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=i(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),x(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return S(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return S(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof h(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!c(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&C(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||h(this.options.enabled,this.#t)!==h(t.enabled,this.#t)||d(this.options.staleTime,this.#t)!==d(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||h(this.options.enabled,this.#t)!==h(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return T(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(_)),t}#g(){this.#b();let e=d(this.options.staleTime,this.#t);if(r.isServer()||this.#r.isStale||!u(e))return;let t=g(this.#r.dataUpdatedAt,e)+1;this.#d=l.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(r.isServer()||h(this.options.enabled,this.#t)===!1||!u(this.#p)||this.#p===0)&&(this.#f=l.setInterval(()=>{(this.options.refetchIntervalInBackground||f.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d&&=(l.clearTimeout(this.#d),void 0)}#x(){this.#f&&=(l.clearInterval(this.#f),void 0)}createResult(e,t){let n=this.#t,r=this.options,o=this.#r,s=this.#i,c=this.#a,l=e===n?this.#n:e.state,{state:u}=e,d={...u},f=!1,m;if(t._optimisticResults){let i=this.hasListeners(),o=!i&&x(e,t),s=i&&C(e,n,t,r);(o||s)&&(d={...d,...a(u.data,e.options)}),t._optimisticResults===`isRestoring`&&(d.fetchStatus=`idle`)}let{error:g,errorUpdatedAt:_,status:v}=d;m=d.data;let y=!1;if(t.placeholderData!==void 0&&m===void 0&&v===`pending`){let e;o?.isPlaceholderData&&t.placeholderData===c?.placeholderData?(e=o.data,y=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(v=`success`,m=p(o?.data,e,t),f=!0)}if(t.select&&m!==void 0&&!y)if(o&&m===s?.data&&t.select===this.#c)m=this.#l;else try{this.#c=t.select,m=t.select(m),m=p(o?.data,m,t),this.#l=m,this.#s=null}catch(e){this.#s=e}this.#s&&(g=this.#s,m=this.#l,_=Date.now(),v=`error`);let b=d.fetchStatus===`fetching`,S=v===`pending`,T=v===`error`,E=S&&b,D=m!==void 0,O={status:v,fetchStatus:d.fetchStatus,isPending:S,isSuccess:v===`success`,isError:T,isInitialLoading:E,isLoading:E,data:m,dataUpdatedAt:d.dataUpdatedAt,error:g,errorUpdatedAt:_,failureCount:d.fetchFailureCount,failureReason:d.fetchFailureReason,errorUpdateCount:d.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:d.dataUpdateCount>l.dataUpdateCount||d.errorUpdateCount>l.errorUpdateCount,isFetching:b,isRefetching:b&&!S,isLoadingError:T&&!D,isPaused:d.fetchStatus===`paused`,isPlaceholderData:f,isRefetchError:T&&D,isStale:w(e,t),refetch:this.refetch,promise:this.#o,isEnabled:h(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=O.data!==void 0,r=O.status===`error`&&!t,a=e=>{r?e.reject(O.error):t&&e.resolve(O.data)},o=()=>{a(this.#o=O.promise=i())},s=this.#o;switch(s.status){case`pending`:e.queryHash===n.queryHash&&a(s);break;case`fulfilled`:(r||O.data!==s.value)&&o();break;case`rejected`:(!r||O.error!==s.reason)&&o();break}}return O}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!c(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){s.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function b(e,t){return h(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&t.retryOnMount===!1)}function x(e,t){return b(e,t)||e.state.data!==void 0&&S(e,t,t.refetchOnMount)}function S(e,t,n){if(h(t.enabled,e)!==!1&&d(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&w(e,t)}return!1}function C(e,t,n,r){return(e!==t||h(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&w(e,n)}function w(e,t){return h(t.enabled,e)!==!1&&e.isStaleByTime(d(t.staleTime,e))}function T(e,t){return!c(e.getCurrentResult(),t)}var E=e(t(),1),D=E.createContext(!1),O=()=>E.useContext(D);D.Provider,n();function k(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var A=E.createContext(k()),j=()=>E.useContext(A),M=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?m(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},N=e=>{E.useEffect(()=>{e.clearReset()},[e])},P=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||m(n,[e.error,r])),F=(e,t)=>t.state.data===void 0,I=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},L=(e,t)=>e.isLoading&&e.isFetching&&!t,R=(e,t)=>e?.suspense&&t.isPending,z=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function B(e,t,n){let i=O(),a=j(),c=o(n),l=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(l);let u=c.getQueryCache().get(l.queryHash);l._optimisticResults=i?`isRestoring`:`optimistic`,I(l),M(l,a,u),N(a);let d=!c.getQueryCache().get(l.queryHash),[f]=E.useState(()=>new t(c,l)),p=f.getOptimisticResult(l),m=!i&&e.subscribed!==!1;if(E.useSyncExternalStore(E.useCallback(e=>{let t=m?f.subscribe(s.batchCalls(e)):_;return f.updateResult(),t},[f,m]),()=>f.getCurrentResult(),()=>f.getCurrentResult()),E.useEffect(()=>{f.setOptions(l)},[l,f]),R(l,p))throw z(l,f,a);if(P({result:p,errorResetBoundary:a,throwOnError:l.throwOnError,query:u,suspense:l.suspense}))throw p.error;return c.getDefaultOptions().queries?._experimental_afterQuery?.(l,p),l.experimental_prefetchInRender&&!r.isServer()&&L(p,i)&&(d?z(l,f,a):u?.promise)?.catch(_).finally(()=>{f.updateResult()}),l.notifyOnChangeProps?p:f.trackResult(p)}export{F as n,y as r,B as t}; \ No newline at end of file diff --git a/docs/assets/useQuery-FY4YqwDi.js b/docs/assets/useQuery-FY4YqwDi.js deleted file mode 100644 index 635aa2ed..00000000 --- a/docs/assets/useQuery-FY4YqwDi.js +++ /dev/null @@ -1 +0,0 @@ -import{r as e,t}from"./useBaseQuery-NrPec9_7.js";function n(n,r){return t(n,e,r)}export{n as t}; \ No newline at end of file diff --git a/docs/assets/useQuery-lKBLxuin.js b/docs/assets/useQuery-lKBLxuin.js new file mode 100644 index 00000000..151b9f57 --- /dev/null +++ b/docs/assets/useQuery-lKBLxuin.js @@ -0,0 +1 @@ +import{r as e,t}from"./useBaseQuery-Co62zxSo.js";function n(n,r){return t(n,e,r)}export{n as t}; \ No newline at end of file diff --git a/docs/base/@vl2/Classic_maps_v1.vl2/shapes/borg11.glb b/docs/base/@vl2/Classic_maps_v1.vl2/shapes/borg11.glb index c5ae46406eb8576a1957d635f7952a741e50fac7..ab66a38f1ee639759861d57b694f5d9bd1b8e6c9 100644 GIT binary patch delta 53 zcmZ2tbijx=JtxGCiGhK^L6U(XVk55vqlk`DN=b2iacW^{YF=_`d{RzoUdm=EMq}R1 I0en}u0EO}olK=n! delta 36 rcmX?Lw8V%vJtxGCiGhJZMUsKRW+Sfz<7O8|4PIsi1%=Hyd{?*toK*-g diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2flag.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2flag.glb index 48debb925e3e41aab2d4cabe280735c31582d271..8b5c45525bbfc6476e28c4aa0d24b2e7b54eedd3 100644 GIT binary patch delta 61 zcmbPXy2X??JtxGCiGhJ(ixdOHhK;-uj50b(DJ8}6#i@m*sd>q%@ku$Uc_~U(O3`VF RImMfm7@K)Fui*Q@4FEF$6QTeB delta 36 scmdmDI>VGVJtxGCiGhJ(h7<$Cl#RR+jGJ8;8+e%&6cjce;rqZ10I);}xBvhE diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2heavy_male.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2heavy_male.glb index 1886690da9ff20592d9c773780714ab9ec294d40..8a2c3b4c82d93a575bdf82b32bc05415adeee3d2 100644 GIT binary patch delta 122 zcmX@JN$I}mdKF((jn LZ4a>F{u2WL3XLS; delta 80 zcmX@GMeoceJ-+mu5H}_U1_qy*+zd808~IY1n^RcYQ&<>*m}z?o3-euzb{AV_AZ7t# YRv=~rVs;?r0Afxc=GyLJ%l#(?0Kk72Z2$lO diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2light_female.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2light_female.glb index deb0d0ec134ee4559fcd304da279526d773884b5..0ce2bf6fb2409471b6876d3a4b9d6776284b84d1 100644 GIT binary patch delta 133 zcmX@`QhUQ|ZNBuJ5H}_U28In^xfn{GZsf~gme5g3DJhOGPAx1=%}Y*=Ps&NnOHr~? zik^ItDP*z$vnUSC+FZiiUc$_{y@Z)b diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2light_male.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2light_male.glb index 5e47f9abd12bafedbad5ad8e6c99958622d25174..7b432e8876e0ec1ba54d32cfc6361d298e248a1f 100644 GIT binary patch delta 74 zcmX@}kZs2!Hs17{5H}_U1_q0bj0{^g@;+vi&{0Y$DUL5rEi6sVOHPeX%1O;jQL<8s Zo_vr|dGdKiQ7C3@e#f}|9V6qtbpXxx8!G?+ delta 33 pcmdn-i0#ZnHs17{5H}_U28J^m7#Tb^@;+v4j$zs!!^C)J9RSS}3%CFP diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2medium_female.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2medium_female.glb index ad11ddfa479b920fb53a0a3b89d8a2877bd48caf..6d874bf837a2b9fad995d92d402a6508f2b86d05 100644 GIT binary patch delta 141 zcmX?bL}$w}9lrFO5H}_U1_l#lZiX8Y8~M_iC3KWhN{Zu)QwvK|^O95JlX6n?Qk1Ne zq9_8;QRK+FQftU$~L#Oy%K0mPg@ M%(eZ8IJXBE0F@6a@!BOh61`vj8zG5VHX>I}mdKF((jnZEs`dK34$%w)P^9 delta 74 zcmX@}OZUnTUB2|35H}_U28NItZiW>5jeJ$i%?&K=4J?d6%ml>DKn&uu0x=s9vjZ^) P5OV@C*Y*Y$?lTntZmJeq diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_chaingun.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_chaingun.glb index 67d389e9c90fa4cb9dd081cbce24e29867ee59c4..0cf97cf80f9c0e660140e20c266cff79cae5a356 100644 GIT binary patch delta 78 zcmX@Hh55@CX1?^C5H}_U28NPb3=AyE8~H34wRDtHN{Zu)QwvK|^O95JlX6n?Qk1Ne ZqSF#{ic@tIkf_bhj4Kj1ze$QI2LSVM8#Mp` delta 37 tcmeyeh55u5X1?^C5H}_U1_qB?3=B7tHu708ZZ2kAn#icISt2>6902qI3`+n2 diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_disc.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_disc.glb index 836a783a51c7bf5dbf5914c9a290141fe789f02e..ffa7143fe32eb566a37ec3670c2263adb6da8d72 100644 GIT binary patch delta 84 zcmaE|jd8(tM&9(C5H}_U28IRE3=DTR@}@8v>L{g@6vr2*7M7;wC8x$G<)r4NC|M~* YrzPeTr|KwRQk&BmeN8uSHruEI0I4+`;s5{u delta 34 qcmZ3mo$<*wM&9(C5H}_U28NVq28IP2c~clSuVHjH-Tc99g9-q|CkuA~ diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_grenade_launcher.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_grenade_launcher.glb index b7429dbbe3085414a81431df6c4382a6cce461d5..2b2dfa4e2fb7e15a0cea89113148e6b21d585158 100644 GIT binary patch delta 55 zcmX@|g7L)*M&9(C5H}_U28N6h28M=>yc&!mI!Y-e#qq_dg{7%^$*J*4IjMOmo0S>8 LT{joFUC{*q0uK_{ delta 36 scmaFyg7L@;M&9(C5H}_U1_qZB28Ni8yc&#~qZut-85K59cDt$z0Nl3=G5`Po diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_mortar.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_mortar.glb index 5f4300aa28507c168ad50c6f02a7074cf0df8d84..dd42290e1562149343b36b3ff855af3e2bd60839 100644 GIT binary patch delta 63 zcmaDci@9SqGjDoMh#M0F14GAI28NW4ykd+pI!Y-e#qq_dg{7%^$*J*4IjMOmN>)nI TX^A<-n-v%>iZ_Rs2u1<`dO#Fy delta 34 qcmeB}&HQ2(GjDoMh#M0F14G7H1_qanykd--ofu7vH&>JhL;?V{bP5~* diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_shocklance.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_shocklance.glb index f895dba82cb1e373976bb01e08031c84fca6953b..a9792ffb2dee04f15db05a70ba25d2ef16268aef 100644 GIT binary patch delta 70 zcmZ2+oaxGOCf@X%5H}_U28Jt(85jyS@>($}>nNp^6vr2*7M7;wC8x$G<)r4NC|M~* XrzPeTr|KwxsLi&FQrVj$astc&Jkb}8 delta 34 qcmca|oN2{zCf@X%5H}_U28I=j85mqP@>(%&E@2eN-rSrMXbu3!01Ds$ diff --git a/docs/base/@vl2/shapes.vl2/shapes/ammo_plasma.glb b/docs/base/@vl2/shapes.vl2/shapes/ammo_plasma.glb index 4f858d4683e4f762a04e36b6d8cf5bd1a8dd7135..458febbd98882483cc55837591068aad8c129df7 100644 GIT binary patch delta 61 zcmaD8-;uzZo)hB6#K6G7VZgvpvXNJuQAS58rKC8%IJK}eH7_|eJ}Dqlf(F9EApc04Dbmi~s-t delta 36 rcmeB3coWZ?o)hB6#K6GtMxTKpVk56O<7Q_@S9xXy1%=HW3Jv@K!Q}~| diff --git a/docs/base/@vl2/shapes.vl2/shapes/banner_honor.glb b/docs/base/@vl2/shapes.vl2/shapes/banner_honor.glb index 05cb233b412adaf2a7142f409daf57dcc04683e3..b7df444206daa75aed1d69adc3453985640a55d4 100644 GIT binary patch delta 63 zcmaE1&|%1%o)hB6#K6GNA;G|KW+SgSql}JHN=b2iacW^{YF=_`d{RzoUW$^HQgm8k TPVr_%#`yw_3Y!lIu3!TIS`ibs delta 32 ocmeA$d||+wo)hB6#K6FiA;G|~W+SgS<7Q{ZIRcv>2(DlQ0Fz+}MF0Q* diff --git a/docs/base/@vl2/shapes.vl2/shapes/banner_strength.glb b/docs/base/@vl2/shapes.vl2/shapes/banner_strength.glb index f56a342b1158097ad1c47c472c5c16b6303ca374..8d353f3699964b37f194aefad1cbe8b6f32255d2 100644 GIT binary patch delta 61 zcmexhFu{;FJtxGCiGhJ(f&>G@m5sdOj50b(DJ8}6#i@m*sd>q%@ku$Uc_~U(O3`VF RImMe58J7!eJ}$VD4FElO6UG1l delta 32 ocmbPW_`!fTJtxGCiGhKkK!Sl`%SK*t#?8)*O9VE*5M03q0G7E4bpQYW diff --git a/docs/base/@vl2/shapes.vl2/shapes/banner_unity.glb b/docs/base/@vl2/shapes.vl2/shapes/banner_unity.glb index 4567150fdd9052b17a9a5e2dce27ff395d3bbd02..730f49b45e4a5f0e3bb2798b86fea61b5a94d8da 100644 GIT binary patch delta 63 zcmaE1&|%1%o)hB6#K6GNA;G|KW+SgSql}JHN=b2iacW^{YF=_`d{RzoUW$^HQgm8k TPVr_%#`yw_3Y!lIu3!TIS`ibs delta 32 ocmeA$d||+wo)hB6#K6FiA;G|~W+SgS<7Q{ZIRcv>2(DlQ0Fz+}MF0Q* diff --git a/docs/base/@vl2/shapes.vl2/shapes/beacon.glb b/docs/base/@vl2/shapes.vl2/shapes/beacon.glb index a9398dd3e65b3ec1ed186bb4efa1c546624edf8e..5f78b02f84524dd2addf6a6ac0844ed29b278dbd 100644 GIT binary patch delta 63 zcmdmEdB>7BJtxGCiGhLPjtm2X&qiKxMj0KYl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 SoZ`)jjPjz43Y#6oYS;i;+7hM! delta 32 ncmca(xyO<>JtxGCiGhJ(j|>BY&PHBw#?8)*GNPLk#A?_8ln)3r diff --git a/docs/base/@vl2/shapes.vl2/shapes/bioderm_heavy.glb b/docs/base/@vl2/shapes.vl2/shapes/bioderm_heavy.glb index 130502ff96dd4e38da49c2ce396a7db195a3d307..119791420f6560f38081aa3e95392389c7492522 100644 GIT binary patch delta 17711 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 delta 23186 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

x0{0EYed-uM#! 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 qMW1axHSw9MPiP%g&2~{=nIZX4#-vgb= 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 Kj@DUM`~LtE(aIwL delta 37850 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 Lnp2Lf8l3ZgASJw- diff --git a/docs/base/@vl2/shapes.vl2/shapes/bioderm_medium.glb b/docs/base/@vl2/shapes.vl2/shapes/bioderm_medium.glb index 9efd7f55b3f090c864d5d61968ed87754939d76f..332a12361887aad4004fd40c742039ffe0cfb7ca 100644 GIT binary patch delta 20485 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 delta 24031 zcmd5^cUTnH*S;WDilBfE75yO+D=KO<6$NWhk-I91Scn8EDi(~Q zsHh0b%)0C>*eeQZ5{wwIVTlDz6s&w_D7vf#R@OY5K8~e0=?|E-=c=eQrDWxTx%M^%NSlYc-NXH#q2WI9wzXDD?Mt#t2Vsq zz^g92>cPvDckN-O{EIv?aZ6LKAI10iaVY)7#0?ud9=6?6Qp*%85ydIK$;Xnxb+J;u zjxWbVJNPKJUlc>7Uw5Rg9$LyFB*%t{$=eBCQESR%{APt*(OY33){<(FyH?@ppg%Sr zV#&)dGAY02J#!U5=tpBxS;2d*cT9GqAMPkhLHiabcT9AoU-&#rLFe?xr(C*lq=EZ$ zxSh!*w^U3RGDfj?=nk|s@BXlWLiT`pYu@611x!A4p+bIn<~_F=LoZT)-ao8~UFwVX zCrhcEna8P7R^MrIewmMJY@Sc?2`N;IP`Pk4h~V5>;ne)5an#d#v)N^<2(C4IGu5T- zTB`fM4P;wJF2a8OcTo=aR#L;Zk+HJr59VWqIZx%8Iw+7lPI2TWN9EORtU&4dj6H~kw?mC zz442-G1SZY$<(tQ#T*eosdmB;G0JI7qsFH>L__#D+$b`|v0Ra4=wB{qeYNyLcZ-eZKhCvy%T!RgOs&2Y4oh zNQ@9ikMYi;%kiUm`eUQM_EhYT94((kmpr6IH&NXA*^Cci z@}UbH@@_yQi+wzLbhYG`8a!@pE|Je6wInE@EsxwF=nvS*QEzMJ^LM|CJ3u1@QE5h@#NY%{pBC*pA?giOn@Gra4i@V#uayI zNTYctToV8r&C(x7)pc_DGxH}!PhW}`zeTm=YiB%C3t9 z^r=WdlS>KcD-mC=GA4BS07H{c-T6=+5YWPgyyF8Ppx%Igu;%OEC)z>P@YJS>ni;K@ z3phHAb++}xM?HsX>}73)Uw2uuUs*1|F~vU#0S||$m-UU1`b;C(ea=RfG@Hw0^*AOC za3gptGhUW?vLl;&(vE#jrp(8Snl>`79^5q@3NBu+jgXjFQU8r|xwFlTlKEjaG+z>ayFakx^1P zOEon4tT3O*|KGCF|DKEzec0<~Afu!L8~s%BS|0&rU{31vaW50o5j~ zpF}=^dy=ZM*Uv;oNd-1q6|z|wS=En>HvKS5<

PxSlj2I+7xMTd%}XcJ!X9t;NQ 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 RoZ`)jjK%DmCv$A%001hs68ZoD delta 32 ocmaE&bVP|aJtxGCiGhK^MUa7^VI!|N<7Q{Z0`|>YI5uzq0FPk^sQ>@~ diff --git a/docs/base/@vl2/shapes.vl2/shapes/borg13.glb b/docs/base/@vl2/shapes.vl2/shapes/borg13.glb index ccc1d4a86a94c87641e8bb90b3ab25f36de9fbb0..b5a774cdffb2d5feaad58527f8a921a90f05fa18 100644 GIT binary patch delta 54 zcmbQ@vc-ijJtxGCiGhK^LNcuRQm IXAwnS0Ea^l`~Uy| delta 33 pcmdnuGR1{2JtxGCiGhJZM2UgnfyhQaamLLqjOT?ni-;=l0sxdM2r>Ww diff --git a/docs/base/@vl2/shapes.vl2/shapes/borg2.glb b/docs/base/@vl2/shapes.vl2/shapes/borg2.glb index b21a0bf4b9d472b810cbe21e28b6ef80a171b30d..ca8a7c87cc5397affbe00ec56881f7b0b26ef3e6 100644 GIT binary patch delta 63 zcmcbyoax7MCf@X%5H}_U28JJ#85lY?@`^Lc=qRO>6vr2*7M7;wC8x$G<)r4NC|M~* TrzPeTZ&qZCPTgFc7OM*Ys4^9c delta 34 qcmeydoax4LCf@X%5H}_U28J7x85lA)@`^KVc4mx7-8?5PMi&6h84Ef9 diff --git a/docs/base/@vl2/shapes.vl2/shapes/borg3.glb b/docs/base/@vl2/shapes.vl2/shapes/borg3.glb index 6a08745987762736ef22940f4833a22e0dde4475..9e71cc4ffa8ace3ee3822c63fe78f6afaf4c0feb 100644 GIT binary patch delta 61 zcmZ3WaX^DNJtxGCiGhK^L4<+f%SK*tMj0KYl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 RoZ`)jjK_I4Kj*b%0{|zk6Da@y delta 32 ocmX@0u|R`2JtxGCiGhJZL4<+f%0^ys#?8)*M|d`K@L8|{0EuA-*#H0l diff --git a/docs/base/@vl2/shapes.vl2/shapes/camera.glb b/docs/base/@vl2/shapes.vl2/shapes/camera.glb index 988ff4f2ebdba20b7189ad5417d821b9a1685c8b..f1049d07305a6db859e38d80255596dd719ee66e 100644 GIT binary patch delta 87 zcmcc6$2g^*kvBaj#Epr8fnka}1H+w-yyc9BI!Y-e#qq_dg{7%^$*J*4IjMOmN>)nI bX^A<-sX7Xn)aGJFOARIkh0SX;m&gJD&*~g% delta 34 qcmbQz&v>DakvBaj#Epr8fg!-1fnml*-g3sx#~3v_@tcFyc8uXrRcQ8 RoZ`(&jI+cx?-uW50{}t|6Q}?H delta 32 ocmaE2bHs)>JtxGCiGhK^MUH`C#YSEU#?3B_)5SL55$|9F0GhT5R{#J2 diff --git a/docs/base/@vl2/shapes.vl2/shapes/deploy_ammo.glb b/docs/base/@vl2/shapes.vl2/shapes/deploy_ammo.glb index 084fd8f92fcd1c27e15f3051ba12effa84a692cf..c126aa9fc3ece440b53f587a45f35290079f4fb9 100644 GIT binary patch delta 74 zcmZqq$GGMnBVT$>h#M0F1A|UI1A~CoMm}{$WgVrIlH&N{)WXu#yyVpQq@2{e6eTOA b=(NO~;#3_45VhHe@stIVg2LuMmK?4CS-lsP delta 48 zcmZ4UkFn(+BVT$>h#M0F0|QGv1H%i;jeP2io1+B!fJ~P E0A_Cvg#Z8m diff --git a/docs/base/@vl2/shapes.vl2/shapes/deploy_inventory.glb b/docs/base/@vl2/shapes.vl2/shapes/deploy_inventory.glb index e02088b0817e3fa31f02ac317df4f36ee4eb3085..51e1e338cc6103fdedd23718b870530b320dba9f 100644 GIT binary patch delta 78 zcmX>ymF3S=7QXbH5H}_U28KUej0^%xH}a)0YUwDYloZDorxuo`<|U`bC*`E(r6^e` ZMW-d^6sPJaAW@qW89NqlezW98Dgf}q92@`u delta 39 vcmew}mF37(7QXbH5H}_U28JVCj0`uHY~)K}+`N{td@-|vg2HB%r8iOm2!aiE diff --git a/docs/base/@vl2/shapes.vl2/shapes/deploy_sensor_motion.glb b/docs/base/@vl2/shapes.vl2/shapes/deploy_sensor_motion.glb index 5af58ba0039ef3ced0dd662d6a2eaf95d50b3ccc..925248f07eb44f5c1fb53414ad3eba2a8e92ada3 100644 GIT binary patch delta 72 zcmcaHm9b|UBX4?6h#M0F0|SpY14G3|UOz@H9i^0#;`rj!!qU{dB*YI7iCyC(nFL0uQo delta 30 mcmcb!k8#C5M!xi%5H}_U1_q6I28Ijv8~J=0H}^B1jRgRhZwZh9 diff --git a/docs/base/@vl2/shapes.vl2/shapes/disc.glb b/docs/base/@vl2/shapes.vl2/shapes/disc.glb index 245957f97295f0fbcc4c633da4fdc74261d99c9a..9cbdac35c679c3ba259c459360e96436815bede6 100644 GIT binary patch delta 75 zcmaD6J|%)TJtxGCiGhJZM2CT4%0^xXMlBtsl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 VoZ?g+1te;-7o(y4<{E_@ZUAGh7n=Y8 delta 32 ocmbOd@gkfzJtxGCiGhLPg*F32#ztNT#?4iXdh(l>E97zm0Ho>(j{pDw diff --git a/docs/base/@vl2/shapes.vl2/shapes/disc_explosion.glb b/docs/base/@vl2/shapes.vl2/shapes/disc_explosion.glb index 20ff0428019b1a165212c15f68f104842d928780..5e4ef342835b6b1c3e17fadd34abebf8fc43022e 100644 GIT binary patch delta 55 zcmey;#yFv!kvBaj#Epr8fnkC(1H+4ryb_EeI!Y-e#qq_dg{7%^$*J*4IjMOmo23{J Lt8adwF+~ah;NTLB delta 38 ucmbQx&iJK`kvBaj#Epr8fuY2if#J+XUJ1s{E{r?WnH3ZiHviF>A_V~1WeX_) diff --git a/docs/base/@vl2/shapes.vl2/shapes/effect_plasma_explosion.glb b/docs/base/@vl2/shapes.vl2/shapes/effect_plasma_explosion.glb index 1b8e38b45e8e271179f3e0112d83f0d48c2e4ebc..aea7d17142d8fd444979b455b6d386b5596f05f0 100644 GIT binary patch delta 53 zcmX?O^2UTWJtxGCiGhJ3M~Z>LVj%=JtxGCiGhK^M~Z<#V_@tcFyp+w-j4P!! JAC^w!005_K5ZV9$ delta 32 ocmX@&vBZNnJtxGCiGhJZMTLQ3!$w|7#?7vb^Q1OEkxt+M0F;Ia5C8xG diff --git a/docs/base/@vl2/shapes.vl2/shapes/energy_explosion.glb b/docs/base/@vl2/shapes.vl2/shapes/energy_explosion.glb index 5ff138485706c417aa7a361c6a244dd0655326fb..bc30dba9db4dee1f213c1d371bfa44bf35005175 100644 GIT binary patch delta 55 zcmaDO-6O-Bo)hB6#K6G7!^gl-vyoSVQA9^6rKC8%IJK}eH7_|eJ}D9i-JtxGCiGhK^Ly3Xm#ztOoMj0KYl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 RoZ`)jjH^XApB9Vd1^_n#6K((i delta 32 ocmX@%vciQoJtxGCiGhJZLy3W5$3|Xp#?8)*D?~TH5sTpl0F^ii9RL6T diff --git a/docs/base/@vl2/shapes.vl2/shapes/gravemarker_1.glb b/docs/base/@vl2/shapes.vl2/shapes/gravemarker_1.glb index 79cbfe87416041ab1776854d775e3cf0d3f6b093..0fc6ec327584a4adaf2cd0250d69bc318042027e 100644 GIT binary patch delta 63 zcmdn7oAJhOM&9(C5H}_U28J843=C&B@`^Lc=qRO>6vr2*7M7;wC8x$G<)r4NC|M~* TrzPeTZ&qZSZ@YQF-A_3Hph6ZT delta 34 qcmcbyn{mf(M&9(C5H}_U28JE63=C^F@`^KVc4nMoyZM3L4>_@tcFyp+uk delta 35 rcmcbUxg(P|JtxGCiGhJ(hY16N%tl^K#?3K|KV+E{6gG#*cZdQ2z~Tx0 diff --git a/docs/base/@vl2/shapes.vl2/shapes/grenade_flare.glb b/docs/base/@vl2/shapes.vl2/shapes/grenade_flare.glb index b1e899f5a741ae93a8bd9b85b09da1be2bfc21a3..ba351a9a5805e112a7c312db6df060babb8482ac 100644 GIT binary patch delta 66 zcmX?bfbqovM&9(C5H}_U28N6T28M))nI WX^A<-o3$AgEtnJ(Hv3q9Q3C+CWE9c> delta 34 qcmaEHfbqZqM&9(C5H}_U1_p-&1_q0byc&#~qZ!35HkVj_Q3C+G9tu7H diff --git a/docs/base/@vl2/shapes.vl2/shapes/grenade_flash.glb b/docs/base/@vl2/shapes.vl2/shapes/grenade_flash.glb index 0e5bfda20deb972693189cda7ed10420e4c7f0cc..2d0ca347466b78a6f5188ba17f18e779ff954b14 100644 GIT binary patch delta 53 zcmZ3Hb0UW~JtxGCiGhK^!;FE!W+SgSqlk`DN=b2iacW^{YF=_`d{RzoUdm=kMscOh I`pQ3r0HD$kGynhq delta 32 ncmX?+vm%E#JtxGCiGhJZ!;FDJW+SgS<7Q_@9;M9z%0Gkvk=zJs diff --git a/docs/base/@vl2/shapes.vl2/shapes/grenade_projectile.glb b/docs/base/@vl2/shapes.vl2/shapes/grenade_projectile.glb index ce2e217b2a475b144cc2631069acc778f45073f3..6b981b820e6f2fb742ee32b986936a5fb62cb9ca 100644 GIT binary patch delta 62 zcmeyPK1YKuJtxGCiGhJZMudTZgJ&b37^94iQc6j2d~s@FX=+|_YJ5^oYF>(xl~QzC SVovd9MaJ7)n}2gNasU7f1rkdD delta 32 ocmbQE@kgC6JtxGCiGhLPk1zwn3+|14VvL)e8Ek#=>Px# diff --git a/docs/base/@vl2/shapes.vl2/shapes/heavy_male.glb b/docs/base/@vl2/shapes.vl2/shapes/heavy_male.glb index 814c80b6b609224116dae03bee31504637cf6036..c6f3585585c1b9737ba5f49af2afada91849c557 100644 GIT binary patch delta 33483 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 A#Q*>R diff --git a/docs/base/@vl2/shapes.vl2/shapes/light_female.glb b/docs/base/@vl2/shapes.vl2/shapes/light_female.glb index 7c5d5a23643a521e815add8c263759a8dc55503e..7f3caf6fa18ff9c25bb8a4237d3470928887c8f2 100644 GIT binary patch delta 42389 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

MI>_aJ2dl7~IU&9f4OH*5a2qzG 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

lG3s|X*Rb|DC3+D9E-L4VUNwB+v}ib9 zvJKv+@V)CPP^jLIf4VhTnHxyhLUB4A#+QT#61N|)Vs_Fqd;(!s!j2ev9vMhXbC+LP zAPOY7P1JvndbFt!cC(KK zHN6wiv$Qf+;!*ZZYrOFW%oW0u;H|+!eA&@Myhou#ryZ;yO=yG@2M)19b&uq5BJmWP zV;UAp6!@^U`}d!Q5)byUqleP!!w3sFo`@Mk^nWn^r=+Ik@IQBrfBiV3rXSQ5>c|u1 znsOv$X50{?DZ_zmLKivThN3kiR5S5WFy2m{-x-Gs-;ay$;KJu9CLY@gtY|$3tLW4R zXg^BC?&Yh2!qRovm@*WU`OL#k4{Q!}?0D!<=v=3|wCqx^L4`S-bwgnA1)&aqku4HWf^d>3J9{Iba|$MCS5BlKIA6d{ zHft|&RX$84wDYGs&AN*r#-`CgRC>8V6_$U?aPrvY6Pzu)3Dnk_D zWFSTs7CKZQBEag)$LuSSfG%v={K@uZ$S^BbYp&e67kLYHYG#s<)#3`ovIl#W!BX#X zq?7zE<1b`f_CnL^1%|%1r!V$DfPuZdNxzD{>$M(;~Ud>Xy~ zi}_!yJNJNB4Et|nuNeMjW_0IoefeLfJ2R!@O(f+{lX99o_-PvSzfX5&M(=;GzWi76 i^8equ^RV|E-q^vc*8F*fy7T8B{Fpc~x=f?j?f(Y}66`ww delta 46691 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 z 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 UY|+;P=-KCtmAG@p%5iJ|AOA}mR{#J2 diff --git a/docs/base/@vl2/shapes.vl2/shapes/medium_male.glb b/docs/base/@vl2/shapes.vl2/shapes/medium_male.glb index eb6378bfd2d107db815f5c3fccee13e35e0e6cd9..59960471f9cb21481fca69d4b1731e8969af2bd3 100644 GIT binary patch delta 46359 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 delta 48753 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 delta 32 ocmbP||00h!JtxGCiGhJ3!<>O(!$w{Q#?4iXW$K&XYb@mh0I9JGYybcN diff --git a/docs/base/@vl2/shapes.vl2/shapes/nexusbase.glb b/docs/base/@vl2/shapes.vl2/shapes/nexusbase.glb index 726504d7fdb052201d0a0464063f18dae6c65470..40687ab6e522c12184f7f105a7a8e3a676237263 100644 GIT binary patch delta 63 zcmZoT#h#M0F1B1?D28M`@ybg>qI!Y-e#qq_dg{7%^$*J*4IjMOmN>)nI TX^A<-n{61G+c!IO9FPJ4Y33Au delta 36 qcmZ2;jH%%m6K{G>h#M0F5G-b3(AmiAz__`J@lzY4!seWg15yCU;R{ay diff --git a/docs/base/@vl2/shapes.vl2/shapes/nexuscap.glb b/docs/base/@vl2/shapes.vl2/shapes/nexuscap.glb index 99976938f638f9f1093ce4bb7722554fda20b9dc..b538c498fea2a248709a4cf5b903c47be0d6adf3 100644 GIT binary patch delta 64 zcmeA;$F$`f6JL5xh#M0F1B1zO1_qg)jePcuGCE2rCB^Z@sfDGfdC95qNja%`DN0sK U(P@b}#hYyyk9Tcm>0yxu0E!?K&j0`b delta 37 tcmdmTj;Z4u6JL5xh#M0F0|Uo$28Iva8~N-RH&-!k>ta;cY|z6Z4FKjD3!nf1 diff --git a/docs/base/@vl2/shapes.vl2/shapes/pack_deploy_ammo.glb b/docs/base/@vl2/shapes.vl2/shapes/pack_deploy_ammo.glb index c64d03ebfbde83756eecbbcb41e55286a35fa8cf..454d6e891e258b894c607a5dbe2cdec11d00bc66 100644 GIT binary patch delta 53 zcmewoI3_@tcFyp+vSjAhcB I`(;vj0HNIwPXGV_ delta 32 ocmbOd^d*otJtxGCiGhLPiv|Nj%|>1c#?3B_+0vUg$fWQ90Hl}+ga7~l diff --git a/docs/base/@vl2/shapes.vl2/shapes/pack_deploy_sensor_motion.glb b/docs/base/@vl2/shapes.vl2/shapes/pack_deploy_sensor_motion.glb index 63871e9374360bb914160a796f1ce3fee7457791..416097c7b98847e9057f39a07f2d8d3d6805fa1c 100644 GIT binary patch delta 54 zcmey6H6fcXJtxGCiGhJ(f++(7i|R%`F-8#`rIeE5_~O*U($u`<)cB;F)V!3N@P1kDT#5gU2M8D(^oQc8;Bi&G0rQ}dEjN_l!0@1nfx%)UuQ=moXGV>r%{j?ag;3K9SS diff --git a/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_energy.glb b/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_energy.glb index 1cd4212ce796ecee654f9a5f4bb1e15b71c7e921..162d34149ab68a2c30cc25b7790c3d1b140e1e87 100644 GIT binary patch delta 63 zcmbPnmvP5kM&9(C5H}_U28JDZ3=A(e@`^Lc=qRO>6vr2*7M7;wC8x$G<)r4NC|M~* TrzPeTZ&qa7?YQ~2(_U==qtF&c delta 34 qcmdmSmvP2jM&9(C5H}_U28J1V3=AhW@`^KVc4pk+xcQIM9&G^2#tZcT diff --git a/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_repair.glb b/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_repair.glb index 837e5363d849fe38b732d86f031c1ca975047c6e..83f182f57bf7970acf8ea6d2863033f194828cc1 100644 GIT binary patch delta 63 zcmexzk#Wi;M&9(C5H}_U1_qH#1_q6dydsP;I!Y-e#qq_dg{7%^$*J*4IjMOmN>)nI TX^A<-o8=h)d2E*Ux+w<$YLpb2 delta 34 qcmbPoiSf%tM&9(C5H}_U28J&g3=A9_c|{mEJ23wC*lgo6vr2*7M7;wC8x$G<)r4NY*uGX P^k!C2P}tnzaM&9(C5H}_U28Jy`3=AJO@`^CZ=qRO>6vr2*7M7;wC8x$G<)r4NC|M~* VrzPeTZ`X3D6r`H9&EX#l9=6|evR delta 34 qcmdn8lyS;ZM&9(C5H}_U28Jm?3=9`G@`^BSc3?bgx|zj%gERoP%L+dL diff --git a/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_shield.glb b/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_shield.glb index 904d983c7a707d16048ad7fd09865ad61001594a..44d693dacc683b4e760fa30bd90b109af8158a63 100644 GIT binary patch delta 63 zcmZ3phVjfAM&9(C5H}_U1_qxn1_p)nI TX^A<-o8=hAEH)ck{*(a#SsD|l delta 34 qcmX@JhH=drM&9(C5H}_U1_qrl1_p(VydsR79T_@tcFyc8uXrRcQ8 RoZ`)jjOm=4+qot(0ssYu5*7de delta 32 ocmdlXF++kkJtxGCiGhJZf`@^jWFxOQ<7Q{Z6wb{nxF#?H0DV>m#Q*>R diff --git a/docs/base/@vl2/shapes.vl2/shapes/repair_kit.glb b/docs/base/@vl2/shapes.vl2/shapes/repair_kit.glb index 67a7cea964849ba03e6002a8d316696539c29ff0..a2ff4be3f3052964d003a6660c4351d8bffd409c 100644 GIT binary patch delta 63 zcmeBZVO-I|$eW%M;>N_lz@Xv8z|gRfSDaBsM=7PGIKDWwurxIgHm#snP&9M-vbL delta 34 pcmZ3{!r0Nm$eW%M;>N_lz`)_ez>u(!SDbOPGh=}2<|%4Zqyd;42)_UT diff --git a/docs/base/@vl2/shapes.vl2/shapes/repair_patch.glb b/docs/base/@vl2/shapes.vl2/shapes/repair_patch.glb index ecba2a2d417ac014355c6466ed446364bbe18be3..5b574538cb082f2ba20fa8137ea158a63291bb20 100644 GIT binary patch delta 75 zcmewnIwOoPJtxGCiGhJZLYsj>KyD+S7^94iQc6j2d~s@FX=+|_YJ5^oYF>(xl~QzC fVovd9MaIW6913rE7#N&9{U+a+d${?H91jlwH2oK2 delta 45 zcmbOc_9K)pJtxGCiGhLPhZY0F2ic8$VvL)e86U{7zu{qEaPst<{9o?jW*&JS9so)V B4iEqU diff --git a/docs/base/@vl2/shapes.vl2/shapes/sensor_pulse_large.glb b/docs/base/@vl2/shapes.vl2/shapes/sensor_pulse_large.glb index 72346f9c9f380e9f4d62c30977e8aa15039a4c08..05cb7dcd6e7b38aca72c983ab3978e4234ed6efc 100644 GIT binary patch delta 63 zcmZ4RiSf)QM&9(C5H}_U1_qx>28IJ0c^w&Lbd*v`isOq@3rkb;l2hZ8a#HhBl&qAZ T(-L!vH`_91nQUHRTHy=;pB5E< delta 34 qcmX@}iE+UvM&9(C5H}_U1_p&n28Jmcc^w%yS2ISMY`$z-=?nnLGYc;O diff --git a/docs/base/@vl2/shapes.vl2/shapes/sensor_pulse_medium.glb b/docs/base/@vl2/shapes.vl2/shapes/sensor_pulse_medium.glb index bf80237be5c427827a65284284273babb8a3443f..e2329341554ac79f9e0fc29126cd54aa5e3111dc 100644 GIT binary patch delta 63 zcmbQTpYgzcM&9(C5H}_U28ILi3=9byc^w&Lbd*v`isOq@3rkb;l2hZ8a#HhBl&qAZ T(-L!vH`_9D$#3>h@UaH~e0US! delta 34 qcmX@GpK;25M&9(C5H}_U28Jo|3=Ae4c^w%yS2O;U+gz;RYYzatg9?xU diff --git a/docs/base/@vl2/shapes.vl2/shapes/solarpanel.glb b/docs/base/@vl2/shapes.vl2/shapes/solarpanel.glb index 5fc66e3f9f35132e0d09be2a7a6678f4b91ee6d5..9d2691f37fd9821dbc2bc4c9b3ef1ea23648090c 100644 GIT binary patch delta 64 zcmdn7gz?D|M!xi%5H}_U28NU%1_l=EjeK^DGCE2rCB^Z@sfDGfdC95qNja%`DN0sK U(P@b}#ha}eH&||dW91_b0Ca*By8r+H delta 37 tcmaE|gmK3bM!xi%5H}_U1_p~D28J6}8~N-QH&-&ww`5efxbd*v`isOq@3rkb;l2hZ8a#HhBl&qAZ S(-L!vH(N74nYmbDwj}^$$Q0-R delta 34 qcmX@Jf_cFTX5RFi5H}_U1_p&I3=BLQdF>fDS2A9nx!HR*qa^^jhYG0x diff --git a/docs/base/@vl2/shapes.vl2/shapes/station_inv_human.glb b/docs/base/@vl2/shapes.vl2/shapes/station_inv_human.glb index 37648a1b622a47c3df2512d981c266725efcf54d..36b9eaa04d5f4528deeb7a97e528cf59c7d50845 100644 GIT binary patch delta 68 zcmdmRnCZn~CcgBX5H}_U28I_485lH@H}YjN%IGMiloZDorxuo`<|U`bC*`E(r6^e` YMW-d^6i<$46x*D~I5}}MOY#~!02NOcPyhe` delta 39 vcmaEHm}$ddCcgBX5H}_U28Im_85lk!ZRE>j+`NggE0I}2L1D8^@)|n;6|@ap diff --git a/docs/base/@vl2/shapes.vl2/shapes/station_inv_mpb.glb b/docs/base/@vl2/shapes.vl2/shapes/station_inv_mpb.glb index 1a56501b406fd3fd93d7bcda477e00443b7fc5b6..13025bdaf082b58812afd747945f3e1f167f7202 100644 GIT binary patch delta 53 zcmcZ;*AdT~o)hB6#K6GNq0hjuU?Z;+qlk`DN=b2iacW^{YF=_`d{RzoUdm=O#z2M5 I9g0_Y0lAzJR{#J2 delta 34 pcmeB(zZ1uso)hB6#K6E1qtC!lvXR$`adQo$g#x3(<}Hd>cmb-;39tYF diff --git a/docs/base/@vl2/shapes.vl2/shapes/station_teleport.glb b/docs/base/@vl2/shapes.vl2/shapes/station_teleport.glb index 33379a83765798e3930fbfed3a4478fd969f1b00..485c5282eb59fa63afd93aeb76925f2e06ae2a4a 100644 GIT binary patch delta 63 zcmexUv7wSTJtxGCiGhJ(gAD^i!A9N?Mr9qPl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 QoZ?g+1rW74fKkU90F@aOq5uE@ delta 27 icmdl``KN+6JtxGCiGhKk#)g5xW+QJ1Cf@X%5H}_U28JuM7#PlM(NRh%DUL5rEi6sVOHPeX%1O;jQL<8s TPD{)w-mJ(tKW+2=^shz$r{@-} delta 34 qcmcbzm1)aXCf@X%5H}_U28J!O7#P-UoPV3Y)hGt`PzNU#%0z delta 32 ocmZqheBi;Go)hB6#K6Fipu)hgU?ZVI!|Nql}JHN=b2iacW^{YF=_`d{RzoUW$^HQgm8k RPVr_%#>E1g4+}071OPzb6VLzv delta 32 ocmZp1f8xfQo)hB6#K6FiqRhasVI!|N<7Q{Z1p=F&2rdu=0GMtGe*gdg diff --git a/docs/base/@vl2/shapes.vl2/shapes/teamlogo_hb.glb b/docs/base/@vl2/shapes.vl2/shapes/teamlogo_hb.glb index 002a74bcf92ed0a606216be502efb6bc3b584811..f2caa1bf22cb166d2f29e2789adc91961fd0dc68 100644 GIT binary patch delta 61 zcmbQ>vB85kJtxGCiGhK^K!t%}$3|XpMj0KYl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 RoZ`)jjNJm8R|}>J0RSR`64d|z delta 32 ocmdnsF~Ng3JtxGCiGhJZK!t%}#ztOo#?8)*9Ri!r2&M=D0E=D-ga7~l diff --git a/docs/base/@vl2/shapes.vl2/shapes/teamlogo_inf.glb b/docs/base/@vl2/shapes.vl2/shapes/teamlogo_inf.glb index db580345a0c285fbc21094a96b9433434ffe2c60..a9495004e2ed306e21769f97f03133690f2ce03a 100644 GIT binary patch delta 61 zcmZn&ToA~co)hB6#K6F?K!btd%tl^uMj0KYl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 RoZ`)jjPnIH?-x8M1^_wi6W0I$ delta 32 ocmZ1w*bvB@o)hB6#K6GNpuxbfW+SgS<7Q{ZIRcv>2p$jv0F?F#h5!Hn diff --git a/docs/base/@vl2/shapes.vl2/shapes/teamlogo_projector.glb b/docs/base/@vl2/shapes.vl2/shapes/teamlogo_projector.glb index d87269b92cdcdf65f2f47f696530ebbab24fb7eb..1c70e06a2a810ebdd30095ff888d46c10a0d0646 100644 GIT binary patch delta 61 zcmeCMU17_co)hB6#K6F?LXLr9!A4$jMj0KYl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 RoZ`)jjK$)cCrf-~1pq5R6KVhe delta 32 ncmZ2s+hNO_o)hB6#K6GNA;-Ybu#s1sakDdHf%xVv5?@#WjyMS! diff --git a/docs/base/@vl2/shapes.vl2/shapes/teamlogo_storm.glb b/docs/base/@vl2/shapes.vl2/shapes/teamlogo_storm.glb index 89b9e77aeb12b8638afce44fa0b923d8ab1ed3d0..9ca6181c769eaf5a2c7f39862c2b426dcc4781b0 100644 GIT binary patch delta 61 zcmaFk(&NgTo)hB6#K6GNqr|}Av5{AtQAS58rKC8%IJK}eH7_|eJ}DqqM+gYe7Rn04D7b+W-In delta 32 ncmeBiedEHLo)hB6#K6Fiqr||Vv5{AtakDd{guvz)K?6Ymi@XPl diff --git a/docs/base/@vl2/shapes.vl2/shapes/teamlogo_sw.glb b/docs/base/@vl2/shapes.vl2/shapes/teamlogo_sw.glb index bd37fba1ca738fc523581e6a3e721835f8c630fe..8166b2830aa487332748838994c8c43eb26ef2bb 100644 GIT binary patch delta 63 zcmX?N|HPg*JtxGCiGhLPi97>?#YSFnMj0KYl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 ToZ`)jjNDv|3Y&GfXNUj*Ug{F1 delta 32 ocmaE2f5e_QJtxGCiGhLPh&%&>#716m#?8)*99)}yxMzp}0G1F4GXMYp diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_aa_large.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_aa_large.glb index c40c34606c85a82bebbbc2e0a6f97f5fd4b48e37..ebaa7581d8f5a9ed4b5550aad1cd6ec78f432449 100644 GIT binary patch delta 55 zcmbQTg6YBvCf@X%5H}_U28Mts3=9byc~cohbd*v`isOq@3rkb;l2hZ8a#HhBHhVL^ L_1J9gb=MOB;<6I- delta 34 qcmcbxf@#VMCf@X%5H}_U1_qHS3=Aq8c~coTuVp;uvAM+Sjwb-OGz%&K diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_assaulttank_mortar.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_assaulttank_mortar.glb index f2293df9d8c266046d1babe0dc4f1b6721a2bb79..c2a9c08f08fe0c30029d60082ac2fc0262c598bd 100644 GIT binary patch delta 100 zcmexyi}A#5M&9(C5H}_U28I*43=DrZ^3G>;(@{z(DUL5rEi6sVOHPeX%1O;jQL<8s TPD{)wPSsH$lG?n8@me+j{k$Wd delta 29 lcmX?coAJjjM&9(C5H}_U28N1U28J~odFL~3{=;}C8vvto3d#Tg diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_assaulttank_plasma.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_assaulttank_plasma.glb index 28a7bfda288e05a931b4b2fb7c7ca4d4cf9d95b5..65cd700970f07549151c365cb19811aeb3387b8d 100644 GIT binary patch delta 55 zcmdn9l<~__M&9(C5H}_U28J&|3=AJO@+L8g=qRO>6vr2*7M7;wC8x$G<)r4NZ1!Mm L)ZKhW?}IV`62%k) delta 38 ucmeyelyT2eM&9(C5H}_U28KOB3=BIq@+L8EUd0%t%dDWFu$e{wgE9c}MGK(- diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_base_large.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_base_large.glb index e39d5c09cbc8692559c1bc369fcfc23ddef2055e..ad7497c1bd4ce56424a46f6d9b344df0549656f0 100644 GIT binary patch delta 84 zcmexzk$KA{X5RFi5H}_U1_qOt3=BORc`F$Wb(B&{isOq@3rkb;l2hZ8a#HhBl&qAZ Y(-L!vQ*{(Dsm-N~FDGwKm^vjG0LNM$O#lD@ delta 36 ucmV+<0Nekx(gXC-0}W?vR7L^-008vp002y}4S4~x$N|`s0U)!Vm6cQejt&I? diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_base_mpb.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_base_mpb.glb index 3cff32fb8c47f1cae976415c57b0debf246aa36f..af16d184475183898c065dbe643a11a04a9e7f08 100644 GIT binary patch delta 86 zcmcbyjA_ntCf@X%5H}_U28KD485q87_@tcFyp+w#jEgxp JpWyOf1pti?5F!8o delta 35 rcmdm@FhPMgJtxGCiGhJZK!AZ^%SK)e#?8@;6FHd_6gI!%@?Zr3nRp1D diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_belly_barrelr.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_belly_barrelr.glb index ca4ff23d06831ebe36407229536236b381145024..38f2526819e5ea081cef0682c39d2aea881257da 100644 GIT binary patch delta 55 zcmbQButR}2JtxGCiGhK^LV$tc&PHAhMiCvQl#=53;?%;@)V$=>_@tcFyp+w#j7vEg L6*eE|@?-@7teOx} delta 32 ocmdm?FhPMgJtxGCiGhJZK!AZ^%SK)e#?8@;lQ}nk;PPMv0EIUQWdHyG diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_belly_base.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_belly_base.glb index 083cc6a76d1d8cec7c896beda19ba91bb91a5ad9..79c05ad5c1a83fc0fc57678308451159a36d8086 100644 GIT binary patch delta 48 zcmcam)l$uyo)hB6#K6GNV#~m=W+QJPqlk`DN=b2iacW^{YF=_`d{RzoUdm=WMj;yj DaiI@P delta 27 icmZpvzEH)Ro)hB6#K6E1V9UTzv5_~Baq}d`Pu2i+{0L3} diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_elf_large.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_elf_large.glb index a0587f5ed126589b732a51b44ab4807e8d0ed235..72ad55f586d258fee4ebfe7f6c12ab63fd834016 100644 GIT binary patch delta 55 zcmbO+o#n`M7T)xn5H}_U28JWtj0`Rtc^w%=bd*v`isOq@3rkb;l2hZ8a#HhBHk&ej L>)Wg|A*UJu(Ag5N delta 36 scmX>yon^*!7T)xn5H}_U28J2jj0_SRc^w%yS2N!2V^r82F(IcK0Kx(b2mk;8 diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_fusion_large.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_fusion_large.glb index 8fecbc66b6d43868f9323cc6b069dba53986673a..2c49a1be8897a8371694fe88726ca6439102630e 100644 GIT binary patch delta 50 zcmX@|hw;ZBM&9(C5H}_U28N0{28Jmcd4m{5bd*v`isOq@3rkb;l2hZ8a#HhBHrq3@ G)&c;$^brgI delta 29 lcmezIhw;cCM&9(C5H}_U1_qZp28M)N_lz;NX-1H*%jylspkI!Y-e#qq_dg{7%^$*J*4IjMOmlj9ln XCf75vZl1^}p3AJDps;yG-h&VT^WqlN delta 34 qcmcc8&fL+?%$uGQ;>N_lz|e7+fnmx<-ZsX~cNj%;H-E`{5CQnKwNr#Epr8fg$BE1H+t+ylspkI!Y-e#qq_dg{7%^$*J*4IjMOmlj9ln TCf75vZl1_^EoXB^-j)ymjkKde diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_indoor_deployw.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_indoor_deployw.glb index 70997941fc5bcfcbf440a4134506425fca3670ed..464af63458e000cedf476f975bfb5c1035e571e4 100644 GIT binary patch delta 64 zcmZ3oocYaiX1?^C5H}_U28K7685lUqHuAMHis&e%loZDorxuo`<|U`bC*`E(rA&@z U)SFz-$hvtVqf^P|E2S4=0loVd3IG5A delta 35 rcmaE}oO#J|X1?^C5H}_U28Jb<85j_0 diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_missile_large.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_missile_large.glb index 47f46a31c01a8ffa19df16adc9d08ab6830cb8dd..eac976be5e9801efcd1221bcd637ae9fd59fd6b1 100644 GIT binary patch delta 50 zcmew{i)qblCf@X%5H}_U28K1g3=BUu@&+-A=qRO>6vr2*7M7;wC8x$G<)r4NY_?~# G>;V9)0udbm delta 29 lcmZ28o9V|aCf@X%5H}_U28N1W28JUWd4m`?PiB$un7QXbH5H}_U28JUNj0`dxHu42Bis&e%loZDorxuo`<|U`bC*`E(r8L_! LZntM-3={_d+ItY< delta 34 qcmX@Ik!8Y07QXbH5H}_U28Ia|j0`W6vr2*7M7;wC8x$G<)r4NOpa&N Tn_SPxx_KhwwzAD06#=;b!><;) delta 34 qcmaEGnt8@)X5RFi5H}_U28J0=85m49^0qNVb!>L{g@6vr2*7M7;wC8x$G<)r4NC|M~* YrzPeTr|KwRQkzQ{qnb8fXy$PT0Goy#2LJ#7 delta 37 tcmbO;jrq=0X5RFi5H}_U28KJQ7#Q|!q%@ku$Uc_~U(O3`VF QImM|u3P{xEP{wov08Swn$p8QV delta 27 jcmey6yeFAAJtxGCiGhJ(k0ArYiH*ELjGHGj#u@+sf))sg diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_tank_barrelmortar.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_tank_barrelmortar.glb index 5317d81a52c6f1b8e32d09c09196f89f0752ea53..0b79b97f89c634d2f9122ec86a8a0883aacd14e1 100644 GIT binary patch delta 79 zcmaFiHp87aJtxGCiGhJ(hB5;~&PHB4MlBtsl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 ZoZ?g+1te;-2P20Vvx0)c<^XXC9stIt7j*yt delta 32 ncmbQ?{=$tnJtxGCiGhJ3Lz#iWW+Sg1q%@ku$Uc`2Li7@K4P DdxH<_ delta 27 jcmexjd%%`AJtxGCiGhLPfE)wEgpIs`jGHGhCdmQ-cy|Zx diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_air_bomber.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_air_bomber.glb index e44c7d7f37425e445390df7db4af4bacb7333235..3508657b4ad6545f9e0c6b8f33f1e9a46a7c4082 100644 GIT binary patch delta 92 zcmaFxlzG83X1?^C5H}_U1_p)C3=Aw&H}Z8d+Uh8!loZDorxuo`<|U`bC*`E(r6^e` ZMW-d^6sPJaK&g_VQf!>fQy6_d0sx*hAJ+f? delta 30 mcmZ4RjQPP+X1?^C5H}_U28IWp7#NOB*~r()xcNGx=SKjzCkzJw diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_air_hapc.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_air_hapc.glb index e625ab29ab0dd5778c1c3e96ed3396823ca01207..2f0fc9d8dad5ce040d36c649ad141b9bed8e3f88 100644 GIT binary patch delta 84 zcmew`fn~=;7QXbH5H}_U28JCRj0`sOHuBA9l-E&8DJhOGPAx1=%}Y*=Ps&NnOHr~? licU++DNfZ delta 35 rcmdlnk>$e#7QXbH5H}_U28IF-MusnQH}cJA-28h#M0F14F|O28NQ2ygiI^I!Y-e#qq_dg{7%^$*J*4IjMOmN>)nI YB}JvFItr5u8AT`8Gjea9&bV?L023bh#M0F1B1g31_qOjygiJYZ!#|51^|^?3IhND diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_grav_scout.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_grav_scout.glb index e53bf73b968c493a174f6099d5d15e033e665b0c..439b7c83f708a388702f737b6781b726ef56c65e 100644 GIT binary patch delta 71 zcmccci0RKGCf@X%5H}_U28NoA3=DTR@_I08>L{g@6vr2*7M7;wC8x$G<)r4NC|M~* WrzPeTr|Kv`sgk17%|VR+)&l^8QW=y0 delta 29 lcmezKi0Q&3Cf@X%5H}_U28Mu*3=A7K@_I0CZe;wu9ss1r3a9`8 diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_grav_tank.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_grav_tank.glb index 9acac95f5e363d2f02f0598b195563b78b331ebf..bc79c3372c5d75bfe6bb2a8e77c37210bbc11f42 100644 GIT binary patch delta 83 zcmX@|kNL+xX5RFi5H}_U28N3N3=C^F^2Rb6=qRO>6vr2*7M7;wC8x$G<)r4NC|M~* brzPeTr|Kx6QYA&Do6{Lpmu>D|zB3#E;t3ve delta 34 qcmezIkNLh#M0F0|UoO28InAd36{?bd*v`isOq@3rkb;l2hZ8a#HhBHmft1 O#xN-;Y@QSA;tc>Ga}vq` delta 34 qcmeCU#Pr}I6K{G>h#M0F1H*$A3=AC`d36{!$1^6!Y(5g};tc@M91FYv diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_land_assault.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_land_assault.glb index 51cfefc1b5d29884b52947ad9f71ba082884d4ad..518e25b3923f22d7b0ed0e9cb1f3d62c015608d4 100644 GIT binary patch delta 55 zcmdn;f$_!%M&9(C5H}_U28M_V28JCQd36{?bd*v`isOq@3rkb;l2hZ8a#HhBHmft% LTWwxp-D3j)2D1|x delta 37 tcmccdfpNh#M0F0|UoO28InAd36{?bd*v`isOq@3rkb;l2hZ8a#HhBHmft1 O#xN-;Y@QSA;tc>Ga}vq` delta 34 qcmeCU#Pr}I6K{G>h#M0F1H*$A3=AC`d36{!$1^6!Y(5g};tc@M91FYv diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_land_mpbase.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_land_mpbase.glb index 7a7e8f2431b47a04215a7cb5527671b3373d2bd8..a1f41b7170af6e12c96c9d86c722137fb3401a8d 100644 GIT binary patch literal 415036 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 diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_pad.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_pad.glb index 6c4d6d1ebfe112635969028d6609d6aa2541362c..31e06fb51295904b733c718be092355ea274fe34 100644 GIT binary patch delta 75 zcmbQUoc+LZcHZ=y5H}_U28IKd85t@z@@g|G>nNp^6vr2*7M7;wC8x$G<)r4NC|M~* drzPeTr|KwxsAf~f?WT;3hU(ihG#E`*0|1)l7ykeN delta 41 xcmX@GoPEx6cHZ=y5H}_U28KD885u%0@@g|S$1!e?V`S7*XH?kUt-)xz8UO>^3!MM} diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_pad_station.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_pad_station.glb index 9325ad48fdd5f9dbead01d3e2784a51975e2d3a6..868cae9da2cc5ec94083814844749725cdea718a 100644 GIT binary patch delta 65 zcmaEGfO*P6X5RFi5H}_U28JmQ7#Nmpd3Sj^M diff --git a/docs/base/@vl2/shapes.vl2/shapes/weapon_chaingun.glb b/docs/base/@vl2/shapes.vl2/shapes/weapon_chaingun.glb index b60e19706d1f7320bf469863ea6c0239adb90fc1..32fa69dd2ffcd22c695e9e5fa0dda2a06205cc43 100644 GIT binary patch delta 70 zcmX>ypXtMVCf@X%5H}_U28Iv)3=B6m@>((~>nNp^6vr2*7M7;wC8x$G<)r4NC|M~* YrzPeTr|KwxsLeKv&EcC5M6j3x08ld+KmY&$ delta 34 qcmew`pXtbaCf@X%5H}_U28JX33=C^F@>()(E@rF@-~2j))f@oMCJU1Q diff --git a/docs/base/@vl2/shapes.vl2/shapes/weapon_disc.glb b/docs/base/@vl2/shapes.vl2/shapes/weapon_disc.glb index 1d2c340c814e85ff72f317f4da0815548325fadd..680dde19dc78153c058882342c958d90505d8401 100644 GIT binary patch delta 91 zcmZ3phw;T8M&9(C5H}_U28N6{28NuCyeW(pI!Y-e#qq_dg{7%^$*J*4IjMOmN>)nI YX^A<-sX7Wcsm*ze*UUFNTfS5Q095B66951J delta 34 qcmaE{hjGmwM&9(C5H}_U1_qrt1_pzTyeW*E*Dzi--`rsNLInW8dkabc diff --git a/docs/base/@vl2/shapes.vl2/shapes/weapon_energy.glb b/docs/base/@vl2/shapes.vl2/shapes/weapon_energy.glb index 12f660553f4822f7d84acc321502a8686d409423..d4a61efd35a19da294c44ebdad8399bb419d3228 100644 GIT binary patch delta 65 zcmeB}!MJAzBX4?6h#M0F1A~nZ1H*!iyg`i0I!Y-e#qq_dg{7%^$*J*4IjMOmN>)nI SX^A<-sX7WEYO^2XE-wItQxxC; delta 29 lcmdlpgRx@4 LO*b2uu_yxo(322n delta 37 tcmcbyiE+y&M&9(C5H}_U1_qNz1_qgpyc&#~qZxmiFexZ(4l!d<1^~|;3E=<$ diff --git a/docs/base/@vl2/shapes.vl2/shapes/weapon_missile.glb b/docs/base/@vl2/shapes.vl2/shapes/weapon_missile.glb index a5cc81312fbd592d4612f4ae79b0221c445a317d..5806ca9ff38027fb5deebc19be4577ad40b19d34 100644 GIT binary patch delta 54 zcmZoDT~NxGo)hB6#K6F?z>0xEKzbve7^8@eQc6j2d~s@FX=+|_YJ5^oYF^4_NygWb Jo0+9+)nI VX^A<-n-v%>iWwC)N0bOe0RW*t6qEn} delta 34 qcmeB}%lu*vGjDoMh#M0F14G6+1_qanykd--ofu7vH&>JhL;(P{1qvbn diff --git a/docs/base/@vl2/shapes.vl2/shapes/weapon_plasma.glb b/docs/base/@vl2/shapes.vl2/shapes/weapon_plasma.glb index b03c2b3a2c35c090c5f69c9aa57665390802b6c0..4e71ac0c7966a34fd127bf8d5b0db2434cbe5530 100644 GIT binary patch delta 58 zcmZ2;is`{ACf@X%5H}_U28M*C3=BCNd4m{bbd*v`isOq@3rkb;l2hZ8a#HhBl&qAZ O(-L!vH@h=FT?_y&_!IU3 delta 29 lcmaEGifPR$Cf@X%5H}_U1_qs_3=9?h#M0F1H+ot3=AC`c{Lf8b(B&{isOq@3rkb;l2hZ8a#HhBl&qAZ X(-L!vQ*{(T)MjHw=cLUQ$pRh#Ej|}Y delta 37 tcmZ2;ovGtG6K{G>h#M0F14GAZ28NW4yqb)gV;CKhm=qK?&q)^W007*I3g7?$ diff --git a/docs/base/@vl2/shapes.vl2/shapes/weapon_shocklance.glb b/docs/base/@vl2/shapes.vl2/shapes/weapon_shocklance.glb index cef5e65151a3aea4a257d5d81cf200c2ecf6c274..1e50ab4d0f701e5818958c17b94bde814cf914b9 100644 GIT binary patch delta 77 zcmZ2-mFdD&Cf@X%5H}_U28Ii(7#MbJeP{?8l00d(ing9R* delta 36 scmca`m1)UUCf@X%5H}_U28Jc87#Mms@>(%&E@6x)U{u(ArjW%F0OS-4umAu6 diff --git a/docs/base/@vl2/shapes.vl2/shapes/weapon_sniper.glb b/docs/base/@vl2/shapes.vl2/shapes/weapon_sniper.glb index 80e3f7fe2f0fd2a7a2ce315e7b80ba34b0bdbe98..bf419cd180d613a22936a92af7b3878e39c779eb 100644 GIT binary patch delta 70 zcmaE`gRx~NBX4?6h#M0F14By;1H+k(yy}d~I!Y-e#qq_dg{7%^$*J*4IjMOmN>)nI XX^A<-sX7WEYO^6@r}gGNHcR9IAgmXw delta 36 scmZqK$@pLgBX4?6h#M0F14BX#1H+1qyy}dbqZr$)85K6)w^=F=0M0%OAOHXW diff --git a/docs/base/@vl2/shapes.vl2/shapes/xorg2.glb b/docs/base/@vl2/shapes.vl2/shapes/xorg2.glb index 294144bfd3dc19eb111994b89e88f7027cb126c7..4cc56ed298818e0bddda6f5288251f85138ac6fb 100644 GIT binary patch delta 61 zcmbQ>w84otJtxGCiGhK^K#_rA#ztOoMj0KYl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 QoZ`)jjM)O4y9HbM0T_-Fg8%>k delta 32 ncmdnsG{K2CJtxGCiGhJZK#_r=Vk56O<7Q{Z41vvS1Y7t4hP?)0Ga&>DgXcg diff --git a/docs/base/@vl2/z_mappacks/CTF/Classic_maps_v1.vl2/shapes/borg11.glb b/docs/base/@vl2/z_mappacks/CTF/Classic_maps_v1.vl2/shapes/borg11.glb index c5ae46406eb8576a1957d635f7952a741e50fac7..ab66a38f1ee639759861d57b694f5d9bd1b8e6c9 100644 GIT binary patch delta 53 zcmZ2tbijx=JtxGCiGhK^L6U(XVk55vqlk`DN=b2iacW^{YF=_`d{RzoUdm=EMq}R1 I0en}u0EO}olK=n! delta 36 rcmX?Lw8V%vJtxGCiGhJZMUsKRW+Sfz<7O8|4PIsi1%=Hyd{?*toK*-g diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/buildStation.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/buildStation.glb index eaffacc99d9358d4b1d93d8df7f3140296d2f064..64d16cd6fb8aa6b490559ce0d368238a66d5a165 100644 GIT binary patch delta 70 zcmccdg6Yo-Cf@X%5H}_U28Nm~3=9<;d9@gob(B&{isOq@3rkb;l2hZ8a#HhBl&qAZ X(-L!vQ*{(T)MgV#qvXvQDIfd+R=pUX delta 36 scmezKg6YN!Cf@X%5H}_U28M_&3=AO~d9@ff$1>_CGb(KEPWk8$0O`~W6aWAK diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/cannonTip.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/cannonTip.glb index 0fa6962ea54200c68cfccd63f1e69868ae2ff04e..95da8085882ca9518c22bd80d3ceb8bd61a99bb5 100644 GIT binary patch delta 54 zcmZ4BzsH|1JtxGCiGhJ(k2(W`0N+MF5k?UmrIeE5_~O*U($u`<)cB;F)V!3<;*9Tj KHgoXJkOTmv=MYr@ delta 37 tcmdnvzrdd_JtxGCiGhJ(fjR@j7v7D0B8;0I86Wd7D<~*zR^gi=2>{7k3Gn~` diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/dsFlame.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/dsFlame.glb index 5c883246219525095f86388a367bbab5c0c078a0..aa4b3668cf143677daaae672918cdd2de838e893 100644 GIT binary patch delta 61 zcmcbh@J4|*JtxGCiGhJ3M}UFh$3|XpMj0KYl#=53;?%;@)V$=>_@tcFyc8uXrRcQ8 RoZ`)jjAuADf8b1D0{}ud6V3nt delta 36 scmaE(a6y4LJtxGCiGhJ3K!Aba&PHBw#?8)*CpnlE6cje|a3!z-0Jg^n6vr2*7M7;wC8x$G<)r4NC|M~* ZrzPeTZ&qa7FU+XW{6J*;0})1#xd1Dd7oGqB delta 36 scmX@{gl)wWHs17{5H}_U1_q5yj0|Ts@`^KVc4pio+$6e9l+j}@0N>jSOaK4? diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/faceBox.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/faceBox.glb index e8121583c0acfa72fee3d7e068e374f372f87f4d..e31d15fb875dd9ae20dad0d45d61b561904ba550 100644 GIT binary patch delta 118 zcmZ3m(`wI7E8g^+5H}_U28KOz_!x9H@`^Lc=qRO>6vr2*7M7;wC8x$G<)r4NC|M~* zrzPeTFIHsKZdTE0SJ7bvVkRJF24WT@`^KVc4qvm#jK#9(Cnbo?x4d6#7scU48$xz g%nHP8K+F!r96-zo#9Tnk4a7V^%)8w|hp(mp0N+m;E&u=k diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/faceSphere.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/faceSphere.glb index e08b6323b167c7c58d5c9cc9fc81c12dbc6c6742..3826125b523c037ebc45505a6c2284000a0f3e88 100644 GIT binary patch delta 219 zcmWN=I}X8c0Knn?>;0%V^(fk+i=IHtPGB=MXjz(yloOCx3|&lm2{BkqPUiO|UwnOv zFO|K&T*#6n&3~2@zZ6wyw&|WiC-jbIFW7p{#`gl(oSCcL+7I7`I823piR@cs3(8C| y$rRJfFv}eCEU-w0C6-xXl{MDcV3RGXY_r2Id(_zHfJ5puXmZ3cC!ff+?vFpI2uSh( delta 188 zcmWN=Jrcn{0D#fmBq9qJtxGCiGhLPgb)LR!bV_@tcFyp+x2jQ_Yc JOYlr#0|1le5EcLc delta 36 scmX@1x<-{ZJtxGCiGhJ(jSvF^%SK*N#?6k5pShS76cjd_@JwL?0I6XJvj6}9 diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/hellFireTurret.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/hellFireTurret.glb index ee2d1e2a167f5703200c5e590a98157ebd3b41b6..b239c73a7bae048c3fdb696522760811b34c9a04 100644 GIT binary patch delta 1331 zcmb7@T}V@57{||6=}ZS1Mv{T2Q$oS8fxC#<&Z}MoT?k?Jotn0@lBQ)Uu?WtYP8}kp zohYbC`#@9Ig>4bV97!zUW!i&J}#PxsYyK#(Qd2{%^|MTv79`^js%pHAu zm)>~FS+YmZaa{WqjtdVO59qd=1bcm5d7V_-Al00d$}62xja}F+9CK7S>m(Cjf4*Vq z=|8Nqm+E=mA1q4~_}bByybecFK1y-_Vs%zA%RNo9r7t&GeER95try%29%fAQC*a_b zuc7)fA#cjq{rGd2L=v6*o8-Xh+G(knx}&!kw}2!6!nICN9lXiKa2Wd z)c=6`iO!faaLd&~3TI5w`ZvJ^V4BBROjaJ*bj86*wV-vQg`KREiZ|H&OD69Y214V% zQ%SSqi#P!u1ADSS2RsHoZgRzQ z?fpbP{Kxyf%LLO(Q&F8AI0I=iAWa_@Oqt3wQg}a}YwxQaZnN6$=H)~dt@J%@LhZ_j zX(|2tqfEd)W+Uaw95rxz$xLHhP5J};$0ciATZ)I~)%4b^4c7~%gNC~X+uTc;EHl*_ zv#}KhzG5~~Ge^O1U}+o6W30VT7ioRQEZqq+pKEvmyo%X7!t%eZMu7)(O540T?#;@? zlvYeRq?t1M1;OtOD|MH8+yRdl;WYL88uOd-Rqz7KW3I>UM+dEh(j5Yrh9NsQ*%1c=aDB#7tEH delta 1298 zcmb7@-%C?r7{{NDsRLa_P$Oq(3PBf!N^YyRc7%$EF6LMuk+#BqA_Rq(ao)`-Gb+W? zO&9$Tx`7}G;Tqceul;TrZwdJx#Trb7b9%3lP>ycYx2IeW`Ax`yPci*-X*-`Veo0?cF@oMm@J92F~ zX~a$Wl|=ZT?`OD!t5T(Wq1P-5 z_p7dnQ8Xm@hOXL6#ILCDZ#vPCuA`&mqe#N_hC2rjgyuI`!oTFy)Fb-%V*mW!wR8T9 z_r(55*N0r~q}~60K@OOub@~iBCCEurLRw8!_8Ky3R(%!mGM8mWzV@=m`GSy^Ltt9m zVre-`6hjO$^OD$qNG@zUS%vQX8_KVQYY+PLq0f0!pT4|iz1F8N8-qg(mKy_AV$%B; uaWQm8KI(*yL2`Z0G~ts-gYeQm%-kFpb0%p+p^6-xw+5utW_tF1!S)-)i?KBT diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1CMDStation.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1CMDStation.glb index 8402da31debdec3ac9c26f9c834a6788bd7e7620..a86d37256f7bde74798cbc82af74e5d341864c0d 100644 GIT binary patch delta 857 zcmah^KWGzS9KB0h+Xfn~B$f)b60j&-Y%8g zffG7AhzLhTuC|EvBugEuh!!10u?|_Ppo^gBmr`}{(%utepPy&vWE&*-?ImL(*LAg|JN$^Gv0}2_CQX(n5O2^^01cFd~!YEe`rK=$fQ!1eR zr*H<9KoF3sWz5+cX%8!hB#3d!oc_qJFlcmR1YztAMG{-WgbB=XC8A20PR9=N$?o5lNA z#Advj9UJ6}+td2;+LIuBSG$%fKWp(qp{hLl%Ql;Ed)<(AFQ7a2uz&8`>U7v@7pf< z)ACp zXgRo(r5u4}&{Ao2x>#7OoLM+qICx4HWth1y$d39_pftGh}v`?UF{mm z9jA_MVe4z-Q?nOSGOwT3m+|x1vX4Ty(@Qt@V0+?Xt6kk__Tt$@^|!8Nmb@6d(hZ$W z^w*-U8vD(z*3QbH>BYB>i?!OXFaFQn4n{@$>dDX`&Od4RXV078KP*1#!NL5TEZjdd Ux+XSmK3?yO3XCtpAqq2@tN=b2iacW^{YF=_`d{RzoUW$^HQgm8k VPI0P^0*Kmd!zeDjIYh=n8UWfO6*vF@ delta 32 ncmdmy-;>Xqo)hB6#K6GNW6r?fu#wl2adR;vuk_}68B1vZnK=lH diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1DepAmmo.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1DepAmmo.glb index 17557f28e30141c4eb0daa3b73db77ff00752072..4f4d09ae89bc52bcfba2c16c6413570f09eb253c 100644 GIT binary patch delta 2030 zcmZ27mHEO{X5RFi5H}_U28Ii#7#LbM^4c&e>nNp^6vr2*7M7;wC8x$G<)r4NC|M~* zrzPeTr|KwxsLc+Hhgdkx%q%PoEDg+!H}kL+F>+d%1NoNbhL)S#*`FqD&dz%2QUA?* zp*7bLl|5Z&?d=DEEr4$Ed_J&V8x%W$2)V={=3u0J2Ii~VJ{gkDf_pFN8 zzW2ypt$hQ)7R0a^?5a7goAzXRpV_;c!EWCGumv$JUK~@&T)#bijrGL4a(lMju(uxo zwg9@t;AEw59c{}jJ$>&QY3+Rjz!t=?7#x9){fxHuT+8-;DVN$e0Bm4lN3$60stw9- ztbL6C?3Fy5wQm5}f*2NWj;VBDsxP=zv71BN#1>c{G7JE_9>Zdpi(OqJLNa!_gEW;?30>&Y-QcbT#s$U#59ZnvY9T~7^zKxPzt7u*-1^aB!|#Ir+5 N)j*W`%_&D5*Z@NzVbA~o delta 1987 zcmcaGm3hfjX5RFi5H}_U28Jc47#Jcp^4c(NE@j-w!ewD-ZfRs-W?^En*_^G2k<-Y+ zz{1qn$lP%ACibUEn`dOb@Tg~Cm}kPkpthBP!NFnx*n$`qPYzgqu->6(8-v5iZ43=j z+ZhIcEr4z@*ij9ew=x{q4s?{(c7_391098GF~m`uwlXxF*~Y+N2Xqwu*#hVmZw^?_ z$XtJ5jS0g6c}Uz202}BkU}{FP7#LKC>Z8pV9Hs+9N_#s4!vL`P(JY2UA0yCF%YbQ0 z3K)I#X9Lp|s>R@ddSk-S@EaIV*}#Ar05(6G#lR%x#8h9og@M7u3|Pnk!2qy<1tqG* z4QqfQ1OyFI77TP?L+r-+u0uI|F~-a*!2TtG1T6Agzv9j4BppJtzk9M zq1~Qt?0R}yhQ+RWY(Ca%XWS1G&$O6mPh)mHtt}v6em#C)PS|K@0}2V-OYZhGVb{~z z0s`jO6YH~r337WuArW@>sy!9i^|UaQ1T*VN_sy;ydUl|Y(7ip?o?>=AwG1NDoO()p zpy5?!3kr!Ff&c8tWY<%onF@OADfR)_5giRp;BvxTx5b_$c0H*YsH{E!6n`YU8jmA3 Jv-mr(008!9v6KJ+ delta 2285 zcmeycjPb}aM&9(C5H}_U1_qa428N7{yf%!JOBpY5nVK7$8<`oJn;UHoVhUvBHZwD` zFtso-HZildPyL2oMq zgPj>e!^h17z^)%Ci=p<`Bl(^oWIIEHi7|siy9EQi*!A?Z42xaB_{ZYo2F4u>4Hm`> z3==IFXv?mrwFLysuP5Y7LsLjdcmNHe0lS_ShLT`rJp%)=K9k!935jdKkf0j7o)(6Z zU}ilzzR@#>gv2ypNKnYG2WK-X7(}Kypz@yr-;@E1QD6>g_y;tDEOtF5nyH|-o-9{m hvA79ZPP72i1PSbV1`;(;S$zN`B~#B4n+^OOSODm#QBwc_ diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1GrenadeLauncher.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1GrenadeLauncher.glb index c4a8505d9882d8e468cfeaf6a1d34639972704ee..ab160070f733f9e4d9fe34e9ab83f72063597002 100644 GIT binary patch delta 54 zcmca$^~Q=XJtxGCiGhJ3N0xzshifCB2&0IOQc6j2d~s@FX=+|_YJ5^oYF^4_amH61 Jn_0MggaMz;561ui delta 37 tcmaE3b-{`+JtxGCiGhJ3K$d~w1LsCQ5ys7qjQ2U16%-UUD{%P;0|3Vj31a{N diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1LSensor.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1LSensor.glb index f421f26d379afa2f64d9e89ad6171e3984ba9b2f..e722f921106e45c50d7d6706ef1ae1a6d6aff0e4 100644 GIT binary patch delta 63 zcmdlno$1bWCf@X%5H}_U28KJ`3=9W0^6D|l=qRO>6vr2*7M7;wC8x$G<)r4NC|M~* TrzPeTZ#HDC)!4j2lOqWLn1K~1 delta 36 scmcaJooUB(Cf@X%5H}_U28JEo3=DHN^6D{ePGl_BU{u(AS(7sf0M!=?`Tzg` diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1MisTurret.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1MisTurret.glb index d080bba0d0d0abef033d79b950f44be039d3eac8..939fdf5cf436f3d63a7ede8761511f7a6ecb8269 100644 GIT binary patch delta 1316 zcmdn7f$7Z#CcgBX5H}_U28Ns&3=9SV8~H*QHFT6xN{Zu)QwvK|^O95JlX6n?Qk1Ne zqSF#{ic@tIN{UJ$#Ib(lH4P3&cU`}%LQ9p?8yrf43%}x zTACaZvHi5`mMw$!SxW;T`vZ{uTkEW)Jdphs$Ofu2P{x7OB0@54*Evm97 z#AgVYxW%K+(EhH*9eV~32>St${oH5b7B`^y9gsK#OkSQ4J2_>t*yOy)JoO9=SLO-t z{}Fn~79@#{UH#Hvvqu-3y9bAy;cR1M z4v?MUz_Ewn$P1eV^S9XIVox^c)6mpRowd(uxAOiNR#ULQnj>%7&F)Qy`H=xAZwHjO zkD1)qCv1buC}PBcaT{QRoc9NEpa&0kT7ZY)Pm%vU;Eaf!0U~CkD!X z157yUG|yUU0~66}Ao~$8K^XzrAaUe`26g~)f_e^3Xw#ty?K@JU`w2~S$m)TKE}$Mc zp&83T5*jNo(M>RdBt`}xd*|yCaKdCpOPGWb9})7ND5)7ah3=TqvBe9RLP4puPhmPd z6`$QZX^SUN{61QW1_s9xSn>rWVIq?;C|Q!5ya^|JJn5dK{D77n;Q0hi9Asu^2M0LM Oe$DH&+nh1^0t*0jtu?s- delta 1456 zcma)*PiPZC6vn?KT12E2ih_C(BL3;YnC*7EZM4~1^kUH}5iNpLuqH?aJ&1zf4r+y9 zttqQe6eLLTB-mz6jR?9#iiaxb!9R_HqD8HE>BWmueA7+RY0Q`ghJ5qQo41?1-}iIa zn;G_2M|&bWya4n;;Lq-n>WIg_=DD}a-rms`@`SAT<-l5CRT^m3z+P%HZ6&S-{j91U zSV1-KX}wT@<#Z>f!5LTJ)X?{Y#_LSuH~IT@I9r;)NP{%CHi7#%;QGmB52k%FCEN9G z1YluQ+V_47Ad$@YoX?t*^=-x}(p_J*WbbqUo4Ec$&wn^NGpm5Cj_Q^(&~37KBk(#yevh)LaO*tLB3s$9r zU8i0$&F|JXf_D3!R4x=iGBYG%`u!1^I3h>)F80<`VdvZ8XSNv{t9#a41O| zE7LIATwj2dX0x|h;1H8}CMReNCyB{gx=NajDPWvc?$6Z|t9wk5PbbfnRYIRLsQmjZ6EBp^49&A>FRxTx?!|XfQ*jJSnmSiGH~R5j16!CHlo= hng5Adv8bemH~Kezv#eJ1OOsevA)-Qb?LO<%qQ5-|&i()Z diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1PowerGen.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1PowerGen.glb index e38d708feaefe42de3592a5effbe1344ecb52d2a..548214284dd528b008ff84268f549994d643833d 100644 GIT binary patch delta 64 zcmZo@VqDV1$d{fI;>N_lz@XyDz`&!okx!dZMn@^7q&U7fwXifbFF7?nDJL~AMafDj TIxR7$c(Xp^X`Rh~bXkM}GbIyG delta 38 scmZ3|#Mscp$d{fI;>N@P1da?0FLXEZX)|t)XFRCGq@b`_L61ck0KmWrLjV8( diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1RemoteTurret.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1RemoteTurret.glb index 393b563868fb4f4fdfaf5d0df14b8a4aa4ae0f02..236e6ddb77874e542982f926bf42f9674cb11897 100644 GIT binary patch delta 613 zcmZ2;f$7c#Cf@X%5H}_U28Ngw3=9i4@&+<$>L{g@6vr2*7M7;wC8x$G<)r4NC|M~* zrzPeTr|Kv`sgk17%^{4sX`5TpFX*eBnVMpmpuTRm#D)+%T>PmXLqPTkD0?qd9IUXxdBe7wm*e*( z{4=rzvF{?W9|GBtKyjc#LuF$fi-P*FeRKTSY#D&;Vjz0~lwApAPXn^S>T1?)Ej-w3 z$I7U-j{(Ro0J2%2?0hI2Wbxz=O)LsV=A!!xs@QBD-1RL?kl3a`b|z39Y@nE``D?GX zecz6}wPpaa-vHSRM-l8BK=I8B%9R+Ec5Oa)>#TK&?MFKXhFzNlkl4mI&srA)#ewD- zDJ5+F?qy;(?MpFGS;FS8K=uqM`y-SMRF+cT@W|c9p?l(PVB|7jV?S0uX0ah-hP4{| vG&@}E-_9mh5vL{g^r_Fc!^H-f-`T-o+u6}!d+y8`Ak6`E7{g}!Id8cEv3vIv delta 543 zcmZ|MJxjw-7zNS6_H7Y9M1>$~WtPy~e{=;%;u zB$bNOog5`Uz|l<*{R84jQfP-Z%YC>x_q_S|2$HQJnXVm{){_8o_rTFpdNbiS64~ll zCX?|ywIII$Ij|t@4y5Fc@?}srvvTU;?!g9DiU^JJfSV@ta*;X9So5IfUFaPbp!FQr z-Pkf4?ZbFjq{0}VuHA;ZaG{oX zp9YPd^?BqtmuKJ9OVlB>n(kX@9ranp;wsb`tG*n778>6J{&f7HZX}G?7Std2e>sBI z?|sX)1O4N2tYuUfE4Ywj#%S$uJ?Ytw%viO$QGhf${9C++`Hdf-$q83HGQ#56keO%T Nmg9!oFW;ml{{eu*q459! diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1RepairPack.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1RepairPack.glb index 9e5ea37111c277d3e9e66c758b84104db4ed8b8d..82d39e0d87b6890827e2c0e2c300af3f93a93af0 100644 GIT binary patch delta 61 zcmey9Hz%JrJtxGCiGhJ(jyVIvjg7n_j50b(DJ8}6#i@m*sd>q%@ku$Uc_~U(O3`VF RImMgh7}sfUKCQEn3jk>U6wm+w delta 32 ocmbP}|0j<(JtxGCiGhKk#+-p+$3|We#?20ltF<@3(b>QS0IYxte*gdg diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1RepairPackGun.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1RepairPackGun.glb index 77ca69086d605bb5c1d8a3a80ca2cd8c86c939ea..7fc2a4a2a36a743e150d0420cb5c8932d1664901 100644 GIT binary patch delta 61 zcmZ1wbRdW~JtxGCiGhK^L6d=@WFxN#ql}JHN=b2iacW^{YF=_`d{RzoUW$^HQgm8k QPVr_rMlZR|>GC@{0VIhMwg3PC delta 32 ncmX>Qv>=E#JtxGCiGhJZL6d)nI zX^A<-sX7W!s-&nC$N`d@;~7nu_{@yVOiT?;ERBo}EKSWfFJcCYS(+Oen46gxni&|H zni*|=!n&SO(Zs^g#MIQx)YvRl*U(r;*I3Wo$kfQvz{t|V#LUpr&}8#gc5fGzyM{`Z z3=9gU+xpMi;bKpI;4LxvjjM!8tK0JJn*>DmGn7r)XCaDU%U)du7oQyBVW1M2H)SKk z1Oe;60u$}dOqd2|i#g7Kv!SNS)c;=EvmY2PV1SL?-nmYbf#HMk4xLatTx_9;5G`QP znrNvUvctu0m|eAnfq`+`^3Z*DNNhu7jvWKT1)xEGrWcss*y3Vu-r(!cG&$TuwjSAU g$ZU{bNbw4ZPKLSC5yP3dq7XT@klCB>1T-)M0KG8b;{X5v delta 701 zcmeBK$#`c4BX4?6h#M0F14B#*1H+1qyrGPnr!X2a@mm_1853$EZobTH z!o+80VPIiwY+`O|XkuV&xmlELJ)@GTfrY7=fw_UXWvZ^Bv5u~>p1HAsv5~onxrKp| ziIJI!+2*J0-YzN(3`#}}8*Xl7XgF(*i#=JuM`E&!n`Hfx^P3nLM0PMVOxe!BuzUlY z{pG6>oDFpI-~7effD{lk*n>!Xe20(LW(*APj1r=)%y6+mW`MwC2_FHVJ7nt{dUilW zfFw3{!#bsgj!Z)ahEQ_`oa_)~hSzQz85j-$)!<@Rt!3y?HDqYm2ULS#8z6HS7%nI? yB)rsTV0Z)c2zK`72fqGH^<;$u*q)nI VX^A<-oAnt}O&Aq6Pc~&01OSrV6bJwS delta 34 qcmX@m%Q&N#kvBaj#Epr8fnkOl14F|`ULD5G@r=_@tcFyp+x2j5CE9 L6*g}WnZgbL%vTW@ delta 32 ocmaE2am0c*JtxGCiGhK^MTUW4&PHBQ#?6k5eZreBh)iJz0GK`rEdT%j diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1VehPad.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1VehPad.glb index d6a4952adacd7738585108b5b012e12f12636a96..6082e4ad1bf9ca72ba5bb373e6a699fae522bb3b 100644 GIT binary patch delta 821 zcmZ9GOGs2<7>3WxIFe(+bZRtHOUD+P$Kk(U(&k8uqD8nUqi7+cj+%^SUO)>RS7{+4 z{gOdSSr9>VnK>I>#G$C5RTn8-xKN95Qv(InqM}0^PxGyw=jG%3-i^1OsU=TAN8s@pE9HPNh&V<@EsOw+C?Zr)j1 zWRgf~fCvBpB0w-=400g=M}$~6^SG~^OXoCzm~U=DMj)Y_a403Wer)aVg#}?8Ik|+c zJ*Ny{7&|!v$Vvv6bMl?{078lcKq?lhQ`N;g)V^X}Jq?Lc3?UPoFsBfUa0nqGj7i3& zMARxQeB})w2`HxkajG&q>r}3;mvIKEfCK^Q^ppRFBJ6w=1PTR%+k;d{N+pz>ASwvL z)`j9ZY85r6^rW8Ys2}-5%=bTuebM1;|NZcd9XT4Txqa%o?dG9vpC9)f9V0CY1+c#a8K0#eJE*W1?DY!ng6Ov*vYS5X*WOjX>ux8 z69#({9oM_fY=1U>NwhTIwKv+gU^lP6yqf+Hs)jRjkD^^idd>em*=yD}Oz`_lGj>Cf z54(BSjWIaA9!tGgycX>{Ibddc&XuNx_B#{yeC4;ao6nZ4*Ba}?DQ)sybkDs`Guu~c m_AY!`9kccD$Mi~IQ&eMXMUgr`Eh-1sY_0Qv<>s;0HUD47MUD*x&_!8>P-I~2< z5JK{cghZ;nsgQd;G!`;7Re}jgZRWg*5BFmV()Pc@f!SV3Q0GcC;p`hJ6BJ`oa|Y=4 zhp&c*G-aAnpeRyfmR2=WTbpP;w?YP+?Pz?qF{&oK#vNDge&AZHz0gE&&+V%6%UD7BM+WjZ6#R&O>Y5 z*@>TazFL>g0x~H(tEFVxGeR!W+gBmy+MS4hGE61~XwZyt#~K)SGJ~e`-8$xd5u%nL zg>nw8(LQYp;avfOc`okyz?yI;XDX+PzapX;pZe&++!FOT8`QbUrADm0%!j5k4L|?M zWHXa}>+F0e|B{eWHmKF*15xa`^NLKZpr6~#MQ9gqK!nWJy}4pG@Q}@0t7@}QsFR(U znxBosG&Ld?HAbe@QD9KxlM}jSylaq0cbT7me=gVV)k{^feP15U{jZCqZ29$}Bxe#^ zg^H;8*&N=$je4|7N~#kW)aRb9HAp44Ra<^s^Rw98h3%>NYP;R)1P1lq&$$M9db9EN g;!q(`u3D?gr7Fs=j0hl-cumAu6 diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1VehStation.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1VehStation.glb index 501afc4fc987243399da6eb5433dcc0ca97e33e6..1358aa9e653d2e2ad12a0d92f8d09a9bec90c2ad 100644 GIT binary patch delta 1036 zcmZ8eT}V`07(H`r!WoroLK%6hxe{41PT$_&{*|Fgq9_V)4}p<#&1(7~iE0#zsB^2Q zx?IQ(J@^u4f6(=IbxujYqx8@fih_b5tcM<>qKF7BvOcYcX`aqn-(Gv|Z>=-h>7G03 zmThZWx59NCXWlW#N%oi3hZe@Gx3p(kGU+`X>0O)CEt}fXyS7x)gElVI+#i#{xq1vdUzRGqZ zKpCnV^rQ+B91U$FfEu>i0*d%#gY=h#QlO-ubpWXErkM}i5>D}~qI#I{Mb-8?>RAA% zbRfu(0i|J#Ghq!1h1_VA-`ikR7uS?rY9UE)gC|u-(q3rP8_aw>1#3T_3P#>~$wGeU z^zoiQ53IcDT)SJBk2j3}bEA3hqTtsx<^R3^>ZJ;K>uOQ6Z{*eOqF7fpANL=wN_Ku2 z&u(ysOz9WTOBD=Kr_XzfTF0E+@asRa`FKI7`}+Pj-r(raon+OF9xUWL-+sA#;>E07 zd9MueakJBHn?8A|rB36mE3

XYTdj@8Q4U>8j$~FUQA%e0;yCxBu)#FSX;$y4(N1 zJcEV&=)X7El5lD6QfuRte4KDsC9`A8#3f2N?X#CEzx!Y;SbwxT{0;ScX&wLo delta 999 zcmZ8eOGuPa6#nPWF=uSZ#z@7;7f8v>bk05Z>7pruTJ%`-ASgmjtQIcHUKo{ph5>fzw zj4P=W(@aVN$(YSXRz#TOTyj!6n2pT(E`@PpMl;ow1d%W)*A&ue2_$ZaxvEMyIV8-l z!qK>*=FWF~VY97?wMI2@p)@lf?cP{jl!M`1OGYXfj7^u2VFDB=l0wcqU|tP?AxRKY zyEIOl3As1Xc%-wVyQ{Hvk6lt-Yrlmn?VWgYRFNU!Y>C--@w#$CEs<#?BQlkbOX>`P zP|T=&P?1Ptioi&e#F*g>n0;S$Q~`I7II@2MAjL@ML!x0WtU$pN^9N%Rxs0X^bp)Sh|Klf2~j&+XFR_m8W2n=QpiCHClmO~ z&vx}yhQ-sV{ab?BySsz8B_dtSdk>vh?M=MScxx*%g*fCrp@E*3;Bb6w%=7xw#r#$0 zaPmsU_DRp1hCKmjwy$Y4$hGx6$j|-H`}))EKQ04)$YuS+*Psyp`lEum z#*v_0;izXDIXW`h#M0F0|Q4D1A~n3Mm`5dO&z6_lH&N{)WXu#yyVpQq@2{e6eTOA z=(NO~;#3_4C{LOUBQpbIOG6`L)6MUg<}giu z$|SjY32QwQm#MLZk)frDsiEa$T@LBVCfrh+lQ`BgaT=HzSy-Bx8(D6a;GUA9f3EPl zU6XZ&J952)OPfdRpud?!U~vR#ST zh#M0F1H+w428Itl8~GdKN%6n_Czd z8e5oH8kt&{7#UAq%c{Ito4JRH)7-+`%*eph#ANe+)(K2pCWe*}BFKGqtcZF*YlglpuI6Nd$L1`gT=kX6k`X2G-D=)BPJk|(fJ>F7VMau zZnNWmXuAb6dvZjMf<%+{F*62*hVAO}CmABMCx0k$6=t|$%E0h^GsK+`_GXXL11tbb C6=FmH diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1blaster.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1blaster.glb index 9b613c622ab0823f1eec88e04fb197867d260ad9..1164cc5320ca9834581315a307a3a3149cdb0d49 100644 GIT binary patch delta 63 zcmew{g>lAIM&9(C5H}_U28J143=C^F@=7qu=qRO>6vr2*7M7;wC8x$G<)r4NC|M~* TrzPeTZ&qTgGuu4h{H729co7uq delta 34 qcmbO+mGQ?EM&9(C5H}_U28IeR28N!Eyb_F?T^Os)HXks*Ap`)n8VZ^K diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1disc.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1disc.glb index 34a7055b6625c316d324f70b850e364f82e3de60..d61de65861a0059bc6850515463d698abd241b14 100644 GIT binary patch delta 69 zcmca&Gr^WGJtxGCiGhJ(f*b>bfyhR_6h>torIeE5_~O*U($u`<)cB;F)VvfWE2ZeP W#GK+(9R(1zIf`+e&}McKUoHT{k`)pF delta 33 pcmbPWd&Pz?JtxGCiGhJ3M2>;si||Ii6voYK8K((tb`kO60sx{V31R>M diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1elfTurret.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1elfTurret.glb index bad9328c7f5d389bf782f7e4cceed449c7c58150..08b6d8210429e0091d17e4f576cdd7ad7e0d26d6 100644 GIT binary patch delta 1131 zcmexxiE+VYM!xi%5H}_U28IQh3=9&k8~H*Q^>ma{N{Zu)QwvK|^O95JlX6n?Qk1Ne zqSF#{ic@tIN{UL6$<6VMbDTH-ad{xYcxCe4Sow%64@2yL27-ZFMwLB~v6*4DhxIGg zSs-y-Y=-v_BkdRxC+r4k#KxYi5GgWQBa)|{A>rQ+2BjUAn%bMKdsnvDgV+o}c0ZKu z4ij$>Gxsuyuy@e>WX%9%djr`FS`ao!{D20K&9K0D=g0s1%Ix}WKiEQsB_0LZxj;cVUkmtbJ{E&pUQ$2i#>%3QXt(WYQE*w~W; z;!|Kg1^E_)SwKFX{2@Nr5*~O*{kk`MKm+w0@2gGgS9w^!1P1W6d)%8AV63Z-{gszAfZO?ii<1~mM3sGx==EL_3*k;3ruSwwiA&JZ*A0fi?pY+d$4#Eqfh z3=4CR>nHOk`&%J`_}nHdaL_vdgIHx^4>;%}f$Rdm$zbs_&}e`~$>f40U;x0v-ft?y zmX*+WICo~}=D9%jd0?EJUAG3V1{hgzHq-%u_1KaYt|W&pPD}*jQUi_bK%6lTvJ6{_ z0Eu^YaM*%qY>o$|787uuz?Hd>;vG4!Or8)e8IP9cVS$Ytbf|37lJ;hUR0kFSEX1(83^|?4>l9l3e1gAcFV@RNw4w%q(VO_Vn2|Z)V>6e&5vF%FjI| zeD_gqX#zmyK5%f!3g;BtRMsylF?)8gcU)9S{MfL0Q)RWOhF7dOtL3Gf1~f2K8JTqpkJ zvJ>B+y!tHoZ@O?*bC?bTUb<{hoGlA(fUjvVI@B03-cT&x^?u%Z3)Bxk_y|nVB_kN2 z(_osLGlWfctp&EJ^M$ZO@#OrOwyM8c+89O$&zLh=%l2H_i`z)`;TG zg?9dOyBW2f{hw#vtFU-xU2j(XJjZT(Dt~cj)Sg zl`BmcuQl+F{ywrp!zFh1ZFJcyAY1+4j0%eba>kj0pq&0hRK@xIpE3Ex^P_W4>d?Xl p6XKt);g6Q?m!?2w*3uHS655_OFQ)sXXk$)bEUA|*X{s9I9Du@68 diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1flyer.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1flyer.glb index 3cdc80bbdba91f7107b0a71c1e91c8aca4d3d68c..ea79d6fc7f49317172a7848780d2a046471ecf32 100644 GIT binary patch delta 53 zcmbQ>v%!ZqJtxGCiGhK^K#hT6&PHBIMiCvQl#=53;?%;@)V$=>_@tcFyp+w-jHM!* I`$ZcC0F;;zC;$Ke delta 32 ncmdnsGr@;9JtxGCiGhJZK#hT+W+Sg8<7QXJERoF{L>mMEiVz51 diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1flyer2.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1flyer2.glb index 3f0f4cb1b3b60c54074d02142eb9deabba64953b..781b435996ce325ff0ebe2eea2a65fe1e9393a6d 100644 GIT binary patch delta 53 zcmbQ@v%!ZqJtxGCiGhK^K#hT6&PHBIMiCvQl#=53;?%;@)V$=>_@tcFyp+w-jAbI5 Jr-(KP005PR5HSD% delta 36 rcmdnsGsTBDJtxGCiGhJZM2&%=VI!|3<7QXJY!PM!1%=HUL>mMEr(Ouo diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1hpc.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1hpc.glb index bfda30a159fdc34c1acea985587ec916fa497a74..61d0ea18e19b0a84d1df231a1c73ec6322d5f4c8 100644 GIT binary patch delta 53 zcmcao^QDG2JtxGCiGhKk#EyaC!A4$5MiCvQl#=53;?%;@)V$=>_@tcFyp+w-j5}2~ JUsh`r2LRr@5@7%U delta 32 ocmexTbESqiJtxGCiGhJ3#EyaCz(!t4#?7vb>r^*?QELzf0JIDWmjD0& diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1inventorystation.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1inventorystation.glb index ee4331c53b6bc9cabbe244624995fa139e9e3be7..5fa6f0283001a8e99870ccbf8cf5c20099352afd 100644 GIT binary patch delta 637 zcmZ9KOK1~O6ozk7BBU~!&`=dLN)#VuGTisvQ>9~59|ggUUD=k_G?Ok8iZzX3X|+gk zBjV$#pa^!U3lSY_3ayEV4+J+t*W$vRA_@wER=q_RL(k@Z|AF)W|Kd)+i2QmUv4+b% z2cig}i9AAs53J6}E;~~gs|-~9(W*Z(@0C8Hz$-53}74t4K}YCjcyYRl*+RxV~t$>R9VqZ6!CQ2?(IZiI_(JOeIlLg214Z3c8aoqo%$zp(dCvmjN@1f!T2Z zCdlRvRa_}7umE$Zi1t$HX2B?vTuR3Ea4HjLz=6Bi^t_b%NP~%k-KjIP*NOpIVxC$p z8>OE^Y^A=DKD=YH>r4IpE!`33bKig0ygNth_ZEk<#?2)at5bIK3QQz%t89cqv*`D}wePQRP%U+nj uO)fn_C^1_+Rr12z_V_~G{GW&D^YQsG-#&Sz!|c)1uUGekIoQ{~H})61?9p2Q delta 625 zcmZ9J&uddb5XUDejim8O0EcoLhc<|=Qd(MJ~Slx()XLm23nceSvXJ<$6bL|hg=*F!}b9n%0 zUj?|?i)M4_om@0oWGRGmN@3b5EKZaRF*~VHDwF;$wkHl6WF<9ATdPyUS>o|wxMGNu z^v|NRMUs|Y_nRR*g+q7$I1u7xpaYk7+?# zO0?SWVjWct8;B@~NIFJk6uZy_`S0bu{!4VU6j~;96ug@L%G9(kR`yp}h8+r`*|yOn zFvvnP#-(Q}AM+)pk%Yrwu6#K@u-j=PEjnSfvR=p4DZ@&U;qV}TIX<+@Idowf>1sTr z^!B;)aSPyZUw4-9ZS}bXNKWsJzv;&*%-`RD<41Ise{7vxe>BYVX!9$Lbvt8u@n!n- z)8^}y?&=`RpJA<^tTiS4eDWgb{HcY?z9J_A%7r&ucTWs5?5{0cZ$al3z#NBv4(lH$ zvl8AtTnFe{_>X^WKy{@D$x_H?`Q88u&;wZRLz3mLfl({uA1FvN{C5nH1j8hqZ}Q|H DcbK_@tcFyp+w-j5}o+ L6*gay+adq}+1C;B delta 32 ocmZ1x-x1H7o)hB6#K6GNq0hi@U?Z<2<7QXJb+Vhk$ZZh-0G+=I2LJ#7 diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1mSensor.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1mSensor.glb index c9425ebebf41e543c0ab1ada96bb886299a6742d..372a4bff1ecedbb2b8de25d41bb298f069441c33 100644 GIT binary patch delta 66 zcmbPngz>-;M&9(C5H}_U1_p;D28Ib6dG#1&bd*v`isOq@3rkb;l2hZ8a#HhBl&qAZ W(-L!vHybi~%Q7h_Y_5@;;|u_(Q51;) delta 34 qcmX?bgmK0ZM&9(C5H}_U1_p^F28N7{yn2kA6B!+4H!qQ!;|u_@%n9`X diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1mortar.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1mortar.glb index eda284aef8e50e156785077b12ff97492a44e395..894047440d0a72216deb4c3f6fb9c3a963185c47 100644 GIT binary patch delta 54 zcmexiHp84RJtxGCiGhJ(hBN~M57$OM5k?UmrIeE5_~O*U($u`<)cB;F)V!3<;*2jj KHvi|W6a)aEwh-a~ delta 33 pcmbPX{=)nI WX^A<-oAnt3J(v^}HaB?Q5d#3ZZWTWO delta 34 qcmZoU$av=fBX4?6h#M0F14B##14GV6ULD5G@r>>sn^$<=5d#3ZKMJb= diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1plasma.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1plasma.glb index 0bfb25c25242bfcf8672c08e69a13f1da916ff2e..6c010cfda4119a361e0d3a3138fe99471fcb2f7f 100644 GIT binary patch delta 54 zcmaE2)nd(;o)hB6#K6GNBFn(Q!?lr5gi%CCDW#-1zBsk8G&L_dH9jdPH7{keIO9u> J&Hp)5g#niY5S{=4 delta 33 ocmZp%eqzO!o)hB6#K6FiBFn(=hI1pI2;*i)#(Nx_6}VD_0h`|l)Bpeg diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t2DepAmmo.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t2DepAmmo.glb index f97d4b3f69379b98238c4a53ffa5e764a0d49260..fb4eab80ab1c451df6c04a5abc714e38ccb20085 100644 GIT binary patch delta 3043 zcmeC#$Gl@7GjDoMh#M0F1B1nV28Ib6d2JY#b(B&{isOq@3rkb;l2hZ8a#HhBl&qAZ z(-L!vQ*{(T)Mf|9JV8Dq6C-m23nK$FLvu58v(3AO_Bd{?2q`JwbdrOyzQV)AgrPyf z%rUWG-vF@d2g+ioz4Zv+=iiUpx#cC#K2J+|d%Cgf>1i1jyXvv|_*LDOo$)_v?DSF| z*wL6>PiqSZm|u_Im-EadEhqRtwchY}t{qL-^|ZEtfcf>r`s~2Gj(z|9EBCEAvrm6zjety1n}-X4g~8ATrIVr^E;1c02b~$X(r6ksNMECcB;z z%~a4^Pq7ccjt~p%wbSy0xofBLpAkyT}LI0-T0h#w+5Wrci>-(9U8kH hmjs=}>oHtJQ;QiG8tj3M_y!;bfd+=nu{YMU0RWb&tw-{GgNZJK#N3U*kl4;ZFLpgWEyH40 zJystx#BX9az_Xo!LEeIaw(NRZTR_14dIG*|*s_Viq1K$C;QAWas#o)XPe&|6QIt1&HR*twm-;VLi`!p#{-Vb_zYfy(OZ$#OM5M>O;Tb44XE zgh082AiJIzMKn}XPqa(PaD*{1EwDn<3J!LC0}cr~i38hzpu9_CM=&fkXE<;LXb&iN zps<1Qk6nUJ;`JCVqOrwJTNn Du8QVw diff --git a/docs/index.html b/docs/index.html index ebe90ec5..1bda0a4c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -19,7 +19,7 @@ - + @@ -38,7 +38,7 @@ - +

diff --git a/src/components/Button.module.css b/src/components/Button.module.css index dbbdf2e1..890d3a93 100644 --- a/src/components/Button.module.css +++ b/src/components/Button.module.css @@ -34,6 +34,10 @@ transition: opacity 0.2s; } + .Button:not(:has(.ButtonLabel)) svg { + opacity: 1; + } + .Button:disabled { opacity: 0.6; box-shadow: inset 0 0 12px 1px rgba(54, 54, 54, 0.5); @@ -48,11 +52,13 @@ border-right: 1px solid rgba(200, 200, 200, 0.3); border-bottom: 1px solid rgba(200, 200, 200, 0.3); background: rgba(3, 82, 147, 0.6); + color: rgba(255, 255, 255, 0.9); } .Button:not(:disabled):hover { background: rgba(0, 98, 179, 0.8); border-color: rgba(255, 255, 255, 0.4); + color: #fff; } .Button svg { diff --git a/src/components/CopyCoordinatesButton.tsx b/src/components/CopyCoordinatesButton.tsx index f6304318..d4848f2c 100644 --- a/src/components/CopyCoordinatesButton.tsx +++ b/src/components/CopyCoordinatesButton.tsx @@ -40,7 +40,10 @@ export function CopyCoordinatesButton({ if (!camera) return; const hash = encodeViewHash(camera); const params = new URLSearchParams(); - params.set("mission", `${missionName}~${missionType}`); + const missionString = missionType + ? `${missionName}~${missionType}` + : missionName; + params.set("mission", missionString); params.set("fog", fogEnabled.toString()); const fullPath = `${window.location.pathname}?${params}${hash}`; const fullUrl = `${window.location.origin}${fullPath}`; diff --git a/src/components/DemoPlaybackControls.module.css b/src/components/DemoPlaybackControls.module.css index b24288c9..d589e957 100644 --- a/src/components/DemoPlaybackControls.module.css +++ b/src/components/DemoPlaybackControls.module.css @@ -23,11 +23,6 @@ justify-content: center; padding: 0; font-size: 12px; - /* border: 1px solid rgba(255, 255, 255, 0.3); - border-radius: 4px; - background: rgba(3, 82, 147, 0.6); - color: #fff; - cursor: pointer; */ } @media (pointer: coarse) { diff --git a/src/components/GenericShape.tsx b/src/components/GenericShape.tsx index ac1bdc89..ec74acc1 100644 --- a/src/components/GenericShape.tsx +++ b/src/components/GenericShape.tsx @@ -9,6 +9,7 @@ import { MeshBasicMaterial, MeshLambertMaterial, AdditiveBlending, + AdditiveAnimationBlendMode, AnimationMixer, AnimationClip, LoopOnce, @@ -46,8 +47,25 @@ import { } from "../stream/playbackUtils"; import type { ThreadState as StreamThreadState } from "../stream/types"; +/** Shape entity data readable in useFrame for streaming mode. */ +interface StreamShapeEntity { + threads?: StreamThreadState[]; + wheels?: Array<{ speed: number; lateralSlip: number; longitudinalSlip: number }>; + steeringYaw?: number; + frozen?: boolean; + maxSteeringAngle?: number; +} + const log = createLogger("GenericShape"); +/** WheeledVehicle per-wheel animation state (position-controlled, not threaded). */ +interface WheelAnimState { + wheelAction?: AnimationAction; + springAction?: AnimationAction; + turnAction?: AnimationAction; + rotation: number; +} + /** Returns pausable time in seconds for demo mode, real time otherwise. */ function shapeNowSec(): number { const { recording } = engineStore.getState().playback; @@ -461,8 +479,8 @@ export const ShapeRenderer = memo(function ShapeRenderer({ children, }: { loadingColor?: string; - /** Stable entity reference whose `.threads` field is mutated in-place. */ - streamEntity?: { threads?: StreamThreadState[] }; + /** Stable entity reference whose fields are mutated in-place. */ + streamEntity?: StreamShapeEntity; children?: React.ReactNode; }) { const { object, shapeName } = useShapeInfo(); @@ -514,8 +532,8 @@ export const ShapeModel = memo(function ShapeModel({ streamEntity, }: { gltf: ReturnType; - /** Stable entity reference whose `.threads` field is mutated in-place. */ - streamEntity?: { threads?: StreamThreadState[] }; + /** Stable entity reference whose fields are mutated in-place. */ + streamEntity?: StreamShapeEntity; }) { const { object, shapeName } = useShapeInfo(); const { debugMode } = useDebug(); @@ -656,6 +674,8 @@ export const ShapeModel = memo(function ShapeModel({ const animationEnabledRef = useRef(animationEnabled); animationEnabledRef.current = animationEnabled; + const wheelAnimsRef = useRef(null); + // Stream entity reference for imperative thread reads in useFrame. // The entity is mutated in-place, so reading streamEntity?.threads // always returns the latest value without requiring React re-renders. @@ -698,24 +718,28 @@ export const ShapeModel = memo(function ShapeModel({ } }, [iflMeshes]); - // DTS cyclic flags by sequence name. Cyclic sequences loop; non-cyclic - // play once and clamp. Falls back to assuming cyclic if data is absent. - const seqCyclicByName = useMemo(() => { - const map = new Map(); + // DTS sequence flags by name, parsed from glTF extras. + const { seqCyclicByName, seqBlendByName } = useMemo(() => { + const cycMap = new Map(); + const blendMap = new Map(); const rawNames = gltf.scene.userData?.dts_sequence_names; const rawCyclic = gltf.scene.userData?.dts_sequence_cyclic; - if (typeof rawNames === "string" && typeof rawCyclic === "string") { + const rawBlend = gltf.scene.userData?.dts_sequence_blend; + if (typeof rawNames === "string") { try { const names: string[] = JSON.parse(rawNames); - const cyclic: boolean[] = JSON.parse(rawCyclic); + const cyclic: boolean[] = typeof rawCyclic === "string" ? JSON.parse(rawCyclic) : []; + const blend: boolean[] = typeof rawBlend === "string" ? JSON.parse(rawBlend) : []; for (let i = 0; i < names.length; i++) { - map.set(names[i].toLowerCase(), cyclic[i] ?? true); + const lower = names[i].toLowerCase(); + cycMap.set(lower, cyclic[i] ?? true); + if (blend[i]) blendMap.set(lower, true); } } catch { /* expected */ } } - return map; + return { seqCyclicByName: cycMap, seqBlendByName: blendMap }; }, [gltf]); // Animation setup. @@ -768,6 +792,12 @@ export const ShapeModel = memo(function ShapeModel({ action.setLoop(LoopOnce, 1); action.clampWhenFinished = true; } + // Blend sequences (DTS flag 0x8) are delta transforms multiplied + // onto the existing pose. Use Three.js additive blending so they + // composite on top of non-blend threads (e.g. Deploy on Ambient). + if (seqBlendByName.has(seqLower)) { + action.blendMode = AdditiveAnimationBlendMode; + } action.reset().play(); thread.action = action; } @@ -857,11 +887,57 @@ export const ShapeModel = memo(function ShapeModel({ } } + // Set up WheeledVehicle wheel/spring/turn animations. + // These are position-controlled (setPos) not thread-controlled. + // Detect by checking if wheel0/spring0 clips exist. + if (mixer && clipsByName.has("wheel0")) { + const wheelAnims: WheelAnimState[] = []; + for (let i = 0; i < 6; i++) { + const state: WheelAnimState = { rotation: 0 }; + const wheelClip = clipsByName.get(`wheel${i}`); + if (wheelClip) { + const action = mixer.clipAction(wheelClip); + action.setLoop(LoopOnce, 1); + action.clampWhenFinished = true; + action.paused = true; + action.play(); + state.wheelAction = action; + } + const springClip = clipsByName.get(`spring${i}`); + if (springClip) { + const action = mixer.clipAction(springClip); + action.setLoop(LoopOnce, 1); + action.clampWhenFinished = true; + action.paused = true; + action.play(); + // Rest position: springs at full extension (pos=0 in Torque). + action.time = 0; + state.springAction = action; + } + const turnClip = clipsByName.get(`turn${i}`); + if (turnClip) { + const action = mixer.clipAction(turnClip); + action.setLoop(LoopOnce, 1); + action.clampWhenFinished = true; + action.paused = true; + action.play(); + // Center (straight ahead). + action.time = turnClip.duration * 0.5; + state.turnAction = action; + } + wheelAnims.push(state); + } + wheelAnimsRef.current = wheelAnims; + } else { + wheelAnimsRef.current = null; + } + return () => { unsubs.forEach((fn) => fn()); handlePlayThreadRef.current = null; handleStopThreadRef.current = null; prevDemoThreadsRef.current = undefined; + wheelAnimsRef.current = null; for (const slot of [...threads.keys()]) handleStopThread(slot); }; }, [ @@ -869,6 +945,7 @@ export const ShapeModel = memo(function ShapeModel({ clipsByName, visNodesBySequence, seqCyclicByName, + seqBlendByName, object, runtime, ]); @@ -963,6 +1040,19 @@ export const ShapeModel = memo(function ShapeModel({ if (!seqName) continue; if (t.state === 0) { playThread(slot, seqName); + // If the animation is already finished (atEnd=true on first + // appearance — e.g. a deployed MPB entering scope), snap to + // the end pose immediately instead of replaying it. + if (t.atEnd) { + const thread = threads.get(slot); + if (thread?.action) { + const clip = thread.action.getClip(); + thread.action.time = t.forward ? clip.duration : 0; + thread.action.setLoop(LoopOnce, 1); + thread.action.clampWhenFinished = true; + thread.action.paused = true; + } + } } else { stopThread(slot); } @@ -1005,6 +1095,46 @@ export const ShapeModel = memo(function ShapeModel({ } } + // Drive WheeledVehicle wheel/spring/turn animations from ghost state. + const wheelAnims = wheelAnimsRef.current; + if (wheelAnims && animationEnabled) { + const entity = streamEntityRef.current; + const wheels = entity?.wheels; + const steeringYaw = entity?.steeringYaw ?? 0; + // From VehicleData datablock (e.g. MPB = 0.3 rad). + const maxSteeringAngle = entity?.maxSteeringAngle ?? 0.3; + + for (let i = 0; i < wheelAnims.length; i++) { + const wa = wheelAnims[i]; + const wheel = wheels?.[i]; + + // Wheel rotation: accumulate from speed, matching Torque's + // advanceTime: rotation += wheelSpeed * dt * TWO_PI, then + // wrap to [0,1) and flip negative to 1-rotation. + if (wa.wheelAction && wheel) { + wa.rotation += wheel.speed * effectDelta * Math.PI * 2; + wa.rotation -= Math.floor(wa.rotation); // wrap to [0,1) + wa.wheelAction.time = + wa.rotation * wa.wheelAction.getClip().duration; + } + + // Spring: ghost vehicles stay at rest (fully extended = pos 0). + // The server already accounts for spring height in the ghost position. + // (Spring animation would only change with client-side raycasts.) + + // Turn: steering angle → animation position. + // Torque: pos = 0.5 - t * 0.5 where t = steerAngle² / maxSteeringAngle + if (wa.turnAction) { + const t = + (steeringYaw * Math.abs(steeringYaw)) / maxSteeringAngle; + const pos = 0.5 - t * 0.5; + wa.turnAction.time = + Math.max(0, Math.min(1, pos)) * + wa.turnAction.getClip().duration; + } + } + } + // Advance IFL texture atlases. // Matches Torque's animateIfls(): // time = th->pos * th->sequence->duration + th->sequence->toolBegin diff --git a/src/components/MissionSelect.module.css b/src/components/MissionSelect.module.css index 1c51304a..64477f9f 100644 --- a/src/components/MissionSelect.module.css +++ b/src/components/MissionSelect.module.css @@ -213,13 +213,15 @@ } .CloseButton { + flex: 0 0 auto; + align-self: stretch; position: relative; z-index: 101; display: grid; place-content: center; background: transparent; margin: 0 0 0 -8px; - padding: 6px; + padding: 6px 12px 6px 8px; border: 0; font-size: 24px; color: rgba(255, 255, 255, 0.5); diff --git a/src/components/ToggleSidebarButton.module.css b/src/components/ToggleSidebarButton.module.css index 839a208c..f83b2442 100644 --- a/src/components/ToggleSidebarButton.module.css +++ b/src/components/ToggleSidebarButton.module.css @@ -1,13 +1,14 @@ .Button { flex: 0 0 auto; + align-self: stretch; display: grid; place-content: center; min-width: 30px; min-height: 30px; - padding: 2px; - margin: 0 0 0 8px; + padding: 2px 4px 2px 8px; + margin: 0 0 0 2px; font-size: 24px; - border-radius: 4px; + border-radius: 0; background: transparent; color: #fff; border: 0; diff --git a/src/state/gameEntityTypes.ts b/src/state/gameEntityTypes.ts index dd97b12b..b3773a1e 100644 --- a/src/state/gameEntityTypes.ts +++ b/src/state/gameEntityTypes.ts @@ -132,6 +132,14 @@ export interface ShapeEntity extends PositionedBase { targetRenderFlags?: number; iffColor?: { r: number; g: number; b: number }; weaponShape?: string; + /** WheeledVehicle per-wheel state (speed, slip). */ + wheels?: Array<{ speed: number; lateralSlip: number; longitudinalSlip: number }>; + /** Vehicle steering angle (radians). */ + steeringYaw?: number; + /** Vehicle frozen state (deployed). */ + frozen?: boolean; + /** Vehicle max steering angle (radians), from datablock. */ + maxSteeringAngle?: number; } export interface PlayerEntity extends PositionedBase { diff --git a/src/stream/StreamEngine.ts b/src/stream/StreamEngine.ts index 404f712f..bf2f3159 100644 --- a/src/stream/StreamEngine.ts +++ b/src/stream/StreamEngine.ts @@ -126,6 +126,14 @@ export interface MutableEntity { audioMinLoopGap?: number; audioMaxLoopGap?: number; sceneData?: SceneObject; + /** WheeledVehicle per-wheel state from ghost data. */ + wheels?: Array<{ speed: number; lateralSlip: number; longitudinalSlip: number }>; + /** Vehicle steering angle (radians), from ghost data. */ + steeringYaw?: number; + /** Vehicle frozen state (deployed MPB, etc.). */ + frozen?: boolean; + /** Vehicle max steering angle (radians), from VehicleData datablock. */ + maxSteeringAngle?: number; /** Force field visual data extracted from ForceFieldBareData datablock. */ forceFieldData?: { textures: string[]; @@ -961,6 +969,14 @@ export abstract class StreamEngine implements StreamingPlayback { } } + // Vehicle maxSteeringAngle from VehicleData datablock. + if ( + entity.className === "WheeledVehicle" && + typeof blockData?.maxSteeringAngle === "number" + ) { + entity.maxSteeringAngle = blockData.maxSteeringAngle; + } + // Force field visual data from ForceFieldBareData datablock. if (entity.className === "ForceFieldBare" && blockData) { const color1 = blockData.color1 as @@ -993,6 +1009,35 @@ export abstract class StreamEngine implements StreamingPlayback { } } + // WheeledVehicle per-wheel state. Mutate in-place to avoid allocation + // on every ghost update (~32Hz). + if (Array.isArray(data.wheels)) { + const incoming = data.wheels as Array<{ + avel: number; + Dy: number; + Dx: number; + }>; + if (!entity.wheels || entity.wheels.length !== incoming.length) { + entity.wheels = incoming.map((w) => ({ + speed: w.avel, + lateralSlip: w.Dx, + longitudinalSlip: w.Dy, + })); + } else { + for (let i = 0; i < incoming.length; i++) { + entity.wheels[i].speed = incoming[i].avel; + entity.wheels[i].lateralSlip = incoming[i].Dx; + entity.wheels[i].longitudinalSlip = incoming[i].Dy; + } + } + } + if (typeof data.steeringYaw === "number") { + entity.steeringYaw = data.steeringYaw; + } + if (typeof data.frozen === "boolean") { + entity.frozen = data.frozen; + } + // Weapon images (Player) if (entity.type === "Player") { const images = data.images as @@ -2253,6 +2298,10 @@ export abstract class StreamEngine implements StreamingPlayback { audioMaxDistance: entity.audioMaxDistance, audioMinLoopGap: entity.audioMinLoopGap, audioMaxLoopGap: entity.audioMaxLoopGap, + wheels: entity.wheels, + steeringYaw: entity.steeringYaw, + frozen: entity.frozen, + maxSteeringAngle: entity.maxSteeringAngle, sceneData: entity.sceneData, forceFieldData: entity.forceFieldData, }); diff --git a/src/stream/entityBridge.ts b/src/stream/entityBridge.ts index f5ca4918..ae5a594c 100644 --- a/src/stream/entityBridge.ts +++ b/src/stream/entityBridge.ts @@ -223,5 +223,9 @@ export function streamEntityToGameEntity( threads: entity.threads, targetRenderFlags: entity.targetRenderFlags, iffColor: entity.iffColor, + wheels: entity.wheels, + steeringYaw: entity.steeringYaw, + frozen: entity.frozen, + maxSteeringAngle: entity.maxSteeringAngle, } satisfies ShapeEntity; } diff --git a/src/stream/types.ts b/src/stream/types.ts index 0a683bd1..9446533f 100644 --- a/src/stream/types.ts +++ b/src/stream/types.ts @@ -153,6 +153,14 @@ export interface StreamEntity { audioMaxDistance?: number; audioMinLoopGap?: number; audioMaxLoopGap?: number; + /** WheeledVehicle per-wheel state. */ + wheels?: Array<{ speed: number; lateralSlip: number; longitudinalSlip: number }>; + /** Vehicle steering angle (radians). */ + steeringYaw?: number; + /** Vehicle frozen state (deployed). */ + frozen?: boolean; + /** Vehicle max steering angle (radians). */ + maxSteeringAngle?: number; /** Scene infrastructure data (terrain, interior, sky, etc.). */ sceneData?: SceneObject; /** Force field visual data from ForceFieldBareData datablock. */