tosijs-3d 0.7.2 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/CHANGELOG.md +900 -0
  2. package/dist/b3d-aircraft.d.ts +14 -0
  3. package/dist/b3d-aircraft.d.ts.map +1 -1
  4. package/dist/b3d-aircraft.js +45 -0
  5. package/dist/b3d-aircraft.js.map +1 -1
  6. package/dist/b3d-ambient.d.ts +12 -0
  7. package/dist/b3d-ambient.d.ts.map +1 -1
  8. package/dist/b3d-ambient.js +83 -1
  9. package/dist/b3d-ambient.js.map +1 -1
  10. package/dist/b3d-biped.d.ts +290 -0
  11. package/dist/b3d-biped.d.ts.map +1 -1
  12. package/dist/b3d-biped.js +1366 -22
  13. package/dist/b3d-biped.js.map +1 -1
  14. package/dist/b3d-collisions.d.ts.map +1 -1
  15. package/dist/b3d-collisions.js +45 -7
  16. package/dist/b3d-collisions.js.map +1 -1
  17. package/dist/b3d-controllable.d.ts +50 -0
  18. package/dist/b3d-controllable.d.ts.map +1 -1
  19. package/dist/b3d-controllable.js +61 -0
  20. package/dist/b3d-controllable.js.map +1 -1
  21. package/dist/b3d-death.d.ts +26 -0
  22. package/dist/b3d-death.d.ts.map +1 -1
  23. package/dist/b3d-death.js +224 -2
  24. package/dist/b3d-death.js.map +1 -1
  25. package/dist/b3d-interactive.d.ts +80 -0
  26. package/dist/b3d-interactive.d.ts.map +1 -0
  27. package/dist/b3d-interactive.js +284 -0
  28. package/dist/b3d-interactive.js.map +1 -0
  29. package/dist/b3d-library.d.ts +39 -0
  30. package/dist/b3d-library.d.ts.map +1 -1
  31. package/dist/b3d-library.js +67 -0
  32. package/dist/b3d-library.js.map +1 -1
  33. package/dist/b3d-svg-plane.d.ts +35 -0
  34. package/dist/b3d-svg-plane.d.ts.map +1 -1
  35. package/dist/b3d-svg-plane.js +96 -8
  36. package/dist/b3d-svg-plane.js.map +1 -1
  37. package/dist/b3d-water.d.ts.map +1 -1
  38. package/dist/b3d-water.js +32 -6
  39. package/dist/b3d-water.js.map +1 -1
  40. package/dist/buoyancy.d.ts +90 -0
  41. package/dist/buoyancy.d.ts.map +1 -0
  42. package/dist/buoyancy.js +150 -0
  43. package/dist/buoyancy.js.map +1 -0
  44. package/dist/curve-field.d.ts +39 -0
  45. package/dist/curve-field.d.ts.map +1 -0
  46. package/dist/curve-field.js +491 -0
  47. package/dist/curve-field.js.map +1 -0
  48. package/dist/curve.d.ts +241 -0
  49. package/dist/curve.d.ts.map +1 -0
  50. package/dist/curve.js +559 -0
  51. package/dist/curve.js.map +1 -0
  52. package/dist/dialog-placement.d.ts +69 -7
  53. package/dist/dialog-placement.d.ts.map +1 -1
  54. package/dist/dialog-placement.js +90 -9
  55. package/dist/dialog-placement.js.map +1 -1
  56. package/dist/embed-font.d.ts +48 -0
  57. package/dist/embed-font.d.ts.map +1 -0
  58. package/dist/embed-font.js +135 -0
  59. package/dist/embed-font.js.map +1 -0
  60. package/dist/footprint-field.d.ts +30 -0
  61. package/dist/footprint-field.d.ts.map +1 -0
  62. package/dist/footprint-field.js +256 -0
  63. package/dist/footprint-field.js.map +1 -0
  64. package/dist/frame-panel.d.ts.map +1 -1
  65. package/dist/frame-panel.js +15 -12
  66. package/dist/frame-panel.js.map +1 -1
  67. package/dist/glb-manifest.d.ts +75 -0
  68. package/dist/glb-manifest.d.ts.map +1 -0
  69. package/dist/glb-manifest.js +198 -0
  70. package/dist/glb-manifest.js.map +1 -0
  71. package/dist/icon-data.d.ts.map +1 -1
  72. package/dist/icon-data.js +20 -1
  73. package/dist/icon-data.js.map +1 -1
  74. package/dist/index.d.ts +33 -4
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +38 -3
  77. package/dist/index.js.map +1 -1
  78. package/dist/interaction.d.ts +66 -0
  79. package/dist/interaction.d.ts.map +1 -0
  80. package/dist/interaction.js +117 -0
  81. package/dist/interaction.js.map +1 -0
  82. package/dist/interactive-behavior.d.ts +105 -0
  83. package/dist/interactive-behavior.d.ts.map +1 -0
  84. package/dist/interactive-behavior.js +253 -0
  85. package/dist/interactive-behavior.js.map +1 -0
  86. package/dist/key-layout.d.ts +70 -0
  87. package/dist/key-layout.d.ts.map +1 -1
  88. package/dist/key-layout.js +122 -0
  89. package/dist/key-layout.js.map +1 -1
  90. package/dist/keyboard-gamepad.d.ts.map +1 -1
  91. package/dist/keyboard-gamepad.js +19 -6
  92. package/dist/keyboard-gamepad.js.map +1 -1
  93. package/dist/keyboard.d.ts +100 -1
  94. package/dist/keyboard.d.ts.map +1 -1
  95. package/dist/keyboard.js +280 -35
  96. package/dist/keyboard.js.map +1 -1
  97. package/dist/mantle.d.ts +56 -0
  98. package/dist/mantle.d.ts.map +1 -0
  99. package/dist/mantle.js +115 -0
  100. package/dist/mantle.js.map +1 -0
  101. package/dist/popup-surface.d.ts +5 -1
  102. package/dist/popup-surface.d.ts.map +1 -1
  103. package/dist/popup-surface.js +181 -14
  104. package/dist/popup-surface.js.map +1 -1
  105. package/dist/surface.d.ts.map +1 -1
  106. package/dist/surface.js +111 -15
  107. package/dist/surface.js.map +1 -1
  108. package/dist/svg-icons.d.ts.map +1 -1
  109. package/dist/svg-icons.js +13 -1
  110. package/dist/svg-icons.js.map +1 -1
  111. package/dist/svg-texture.d.ts.map +1 -1
  112. package/dist/svg-texture.js +40 -1
  113. package/dist/svg-texture.js.map +1 -1
  114. package/dist/swim-aim.d.ts +78 -0
  115. package/dist/swim-aim.d.ts.map +1 -0
  116. package/dist/swim-aim.js +140 -0
  117. package/dist/swim-aim.js.map +1 -0
  118. package/dist/theme-editor.d.ts +41 -0
  119. package/dist/theme-editor.d.ts.map +1 -0
  120. package/dist/theme-editor.js +303 -0
  121. package/dist/theme-editor.js.map +1 -0
  122. package/dist/tosi-b3d.d.ts +24 -4
  123. package/dist/tosi-b3d.d.ts.map +1 -1
  124. package/dist/tosi-b3d.js +238 -37
  125. package/dist/tosi-b3d.js.map +1 -1
  126. package/dist/vector-field.d.ts +58 -0
  127. package/dist/vector-field.d.ts.map +1 -0
  128. package/dist/vector-field.js +321 -0
  129. package/dist/vector-field.js.map +1 -0
  130. package/dist/virtual-gamepad.d.ts.map +1 -1
  131. package/dist/virtual-gamepad.js +46 -9
  132. package/dist/virtual-gamepad.js.map +1 -1
  133. package/dist/w3d-theme.d.ts +115 -17
  134. package/dist/w3d-theme.d.ts.map +1 -1
  135. package/dist/w3d-theme.js +311 -0
  136. package/dist/w3d-theme.js.map +1 -1
  137. package/dist/water-normal.d.ts +26 -0
  138. package/dist/water-normal.d.ts.map +1 -0
  139. package/dist/water-normal.js +105 -0
  140. package/dist/water-normal.js.map +1 -0
  141. package/dist/widgets3d-layout.d.ts +58 -0
  142. package/dist/widgets3d-layout.d.ts.map +1 -1
  143. package/dist/widgets3d-layout.js +79 -1
  144. package/dist/widgets3d-layout.js.map +1 -1
  145. package/dist/widgets3d.d.ts +51 -2
  146. package/dist/widgets3d.d.ts.map +1 -1
  147. package/dist/widgets3d.js +418 -112
  148. package/dist/widgets3d.js.map +1 -1
  149. package/dist/wreck-fall.d.ts +86 -0
  150. package/dist/wreck-fall.d.ts.map +1 -0
  151. package/dist/wreck-fall.js +129 -0
  152. package/dist/wreck-fall.js.map +1 -0
  153. package/package.json +9 -6
package/dist/b3d-death.js CHANGED
@@ -101,12 +101,13 @@ tosi-b3d { width: 100%; height: 100%; }
101
101
  */
102
102
  /*{ "parent": "World Sim" }*/
103
103
  import * as BABYLON from '@babylonjs/core';
104
- import { B3dChild, sceneDelta } from './b3d-utils';
104
+ import { B3dChild, sceneDelta, collidable } from './b3d-utils';
105
105
  import { spawnPrefab } from './prefab';
106
106
  import { explosionFx } from './b3d-warhead';
107
107
  import { panel3d, label3d, button3d } from './widgets3d';
108
108
  import { panelFitWidth } from './widgets3d-layout';
109
109
  import { b3dSvgPlane } from './b3d-svg-plane';
110
+ import { newWreckFall, wreckFallStep } from './wreck-fall';
110
111
  const DEG = Math.PI / 180;
111
112
  /** A soft round dot for the wreck fire/smoke. A ParticleSystem with NO particleTexture emits
112
113
  * nothing (it silently produced zero particles — that was the "lost explosion"), so it needs one. */
@@ -161,6 +162,11 @@ export class B3dDeath extends B3dChild {
161
162
  _fires = [];
162
163
  _charMats = [];
163
164
  _obs = null;
165
+ /** The falling wreck, while it is still in the air. */
166
+ _fall = null;
167
+ _offOrigin = null;
168
+ _fallObs = null;
169
+ _fallRay = new BABYLON.Ray(BABYLON.Vector3.Zero(), BABYLON.Vector3.Down(), 2000);
164
170
  _timer = null;
165
171
  _onDeath = (e) => this._handleDeath(e);
166
172
  sceneReady(owner) {
@@ -263,13 +269,25 @@ export class B3dDeath extends B3dChild {
263
269
  else {
264
270
  this._burn(scene, node, at);
265
271
  }
272
+ this._startFall(scene, node, entity);
266
273
  }
267
274
  catch (err) {
268
275
  console.warn('b3d-death: wreckage FX failed (exit continues)', err);
269
276
  }
270
277
  }
271
- // 2. Stop driving the corpse. THE bug this component exists to fix.
278
+ /*
279
+ 2. Stop driving the corpse — and TELL it that it is one.
280
+
281
+ `releaseFocus()` already stops a focus-managed entity, but incidentally: it
282
+ nulls `inputProvider` and `_update` short-circuits on that. `halt()` says it
283
+ outright, and covers a `die()` handed an entity the focus manager never held
284
+ (a scripted death, an AI, a test), which nothing else would stop.
285
+
286
+ Order matters: `_startFall` above has already read the velocity it died
287
+ with.
288
+ */
272
289
  this.focusManager?.releaseFocus();
290
+ entity?.halt?.();
273
291
  // 3. Orbit the mistake you made — FLAT ONLY. `setGameplayCamera` is a no-op in a headset (the
274
292
  // WebXR camera owns the view; swapping it blanks the display), and returns false so we skip
275
293
  // building the orbit rig entirely. In VR you keep your head where it is and the Respawn
@@ -321,10 +339,207 @@ export class B3dDeath extends B3dChild {
321
339
  catch (err) {
322
340
  console.warn('b3d-death: spectate camera failed (exit continues)', err);
323
341
  }
342
+ /*
343
+ SURVIVE A FLOATING-ORIGIN REBASE.
344
+
345
+ Terrain rebases the world periodically (see B3d.shiftOrigin), and everything
346
+ holding a WORLD position has to opt in or it is silently left behind. Death
347
+ holds three: the spectate camera (position AND target), the fire emitters,
348
+ and the fall's cached ground-sample point.
349
+
350
+ Nothing here was registered, so in a terrain scene a rebase mid-death moved
351
+ the world out from under the shot — the camera left pointing at where the
352
+ crash used to be. That is the same FAMILY of symptom as the origin-teleport
353
+ fixed above and would read identically ("the wreck is way off, I am looking
354
+ at nothing"), which is exactly why it is worth closing rather than waiting
355
+ to see it: two causes producing one description is how a fixed bug looks
356
+ unfixed.
357
+
358
+ A LISTENER, not `registerWorldRoot`: a camera is not a TransformNode we own,
359
+ and the emitters are plain vectors. Per CLAUDE.md, anything holding world
360
+ coordinates in JS fixes ITSELF and must not also register a root.
361
+
362
+ The wreck NODE needs nothing — `_startFall` reads its position from the node
363
+ every frame and writes it back, so a shift is absorbed. That was written for
364
+ a different reason and pays off here.
365
+ */
366
+ this.owner.addOriginListener(this._shiftOrigin);
367
+ this._offOrigin = () => this.owner?.removeOriginListener(this._shiftOrigin);
324
368
  // 4. A beat to watch it burn, THEN the panel. Offering a menu over a fireball reads
325
369
  // as a bug report rather than a death.
326
370
  this._timer = setTimeout(() => this._showPanel(), this.delay * 1000);
327
371
  }
372
+ /**
373
+ * DEAD THINGS FALL.
374
+ *
375
+ * A wreck used to stop where it died, so a kill at altitude left a charred
376
+ * airframe hanging in the sky — and, because it is still solid, waiting to be
377
+ * flown into. Tonio, from a headset: _"I collided with wreckage high up … the
378
+ * wrecked plane hanging in mid-air (it should really tumble to the ground)."_
379
+ *
380
+ * The rules are pure and tested in [[wreck-fall]]; this is the Babylon side:
381
+ * sample the ground, step the model, carry the node, the fires and the
382
+ * spectate camera down with it.
383
+ *
384
+ * **Position is read from the NODE each frame and written back**, rather than
385
+ * held in JS across frames. A floating-origin rebase moves the node, and a
386
+ * model holding a world position would keep flying the wreck to where the
387
+ * world used to be.
388
+ */
389
+ _startFall(scene, node, entity) {
390
+ if (node == null)
391
+ return;
392
+ const vel = entity?.getWorldVelocity?.() ?? null;
393
+ // Own meshes never count as ground — a wreck must not land on its own wing.
394
+ const own = new Set();
395
+ if (node instanceof BABYLON.AbstractMesh)
396
+ own.add(node);
397
+ for (const child of node.getChildMeshes())
398
+ own.add(child);
399
+ const skip = collidable((m) => own.has(m));
400
+ /*
401
+ HOW you died decides how far the wreck goes.
402
+
403
+ Flying into something is an inelastic collision and eats most of the energy;
404
+ being shot down leaves you with all of it, still moving, now on fire. Only
405
+ this side knows which happened — `crashed` is set by the airframe's own
406
+ impact test — so the pure model takes it as a number and this makes the call.
407
+
408
+ Without it a crash at 90 m/s from 130 m carried the wreck ~450 m downrange:
409
+ a glide, not a crash, and it dragged the spectate camera across that much
410
+ terrain with it.
411
+ */
412
+ const impact = entity?.crashed === true;
413
+ const carry = impact ? 0.25 : 0.7;
414
+ const start = node.getAbsolutePosition();
415
+ // Nothing under it is a real case — the edge of a finite ground plane, a
416
+ // kill out over open water in a scene with no sea floor. Without a floor
417
+ // the wreck falls forever, the spectate camera chases it down forever, and
418
+ // the observer never comes off. Found by killing at z≈1690 in a demo whose
419
+ // ground is 600 m across: it reached y = −25 and kept going.
420
+ const abandonY = start.y - 1500;
421
+ this._fall = newWreckFall({ x: start.x, y: start.y, z: start.z }, vel ? { x: vel.x, y: vel.y, z: vel.z } : { x: 0, y: 0, z: 0 }, { carry });
422
+ // Tumble about a FIXED world axis through the wreck: an airframe that has
423
+ // stopped flying has no frame of its own worth preserving.
424
+ const axis = new BABYLON.Vector3(this._fall.axis.x, this._fall.axis.y, this._fall.axis.z);
425
+ const rest = node.rotationQuaternion
426
+ ? node.rotationQuaternion.clone()
427
+ : BABYLON.Quaternion.FromEulerVector(node.rotation);
428
+ const spin = new BABYLON.Quaternion();
429
+ let groundY = -Infinity; // -Infinity means "never picked"
430
+ let pickedAtX = 0;
431
+ let pickedAtZ = 0;
432
+ this._fallShift = (dx, dz) => {
433
+ pickedAtX += dx;
434
+ pickedAtZ += dz;
435
+ };
436
+ this._fallObs = scene.onBeforeRenderObservable.add(() => {
437
+ const fall = this._fall;
438
+ if (fall == null || node.isDisposed())
439
+ return;
440
+ const dt = sceneDelta(scene);
441
+ if (dt <= 0)
442
+ return;
443
+ // Node → model, so an origin shift is absorbed (see the note above).
444
+ const here = node.getAbsolutePosition();
445
+ fall.pos.x = here.x;
446
+ fall.pos.y = here.y;
447
+ fall.pos.z = here.z;
448
+ /*
449
+ RE-PICK ONLY WHEN THE ANSWER CAN HAVE CHANGED.
450
+
451
+ `scene.pickWithRay` walks every pickable mesh and does a full triangle
452
+ intersection on each one whose bounding box the ray enters. A vertical ray
453
+ through a terrain scene enters several tiles of tens of thousands of
454
+ triangles each, so this is milliseconds, not microseconds — and running it
455
+ per frame for the seconds a wreck takes to fall is the likeliest source of
456
+ "the world hung before the plane stopped flying" (Tonio, VR). It fits the
457
+ other half of that report too: pressing Respawn before the hang avoids it,
458
+ and Respawn is what takes this observer off.
459
+
460
+ The ground under a wreck falling STRAIGHT DOWN does not change at all, so
461
+ the whole descent needs one pick. Re-pick when it has drifted sideways far
462
+ enough to be over something else, or when it is close enough that being
463
+ wrong matters.
464
+ */
465
+ const movedX = here.x - pickedAtX;
466
+ const movedZ = here.z - pickedAtZ;
467
+ if (groundY === -Infinity ||
468
+ movedX * movedX + movedZ * movedZ > 64 || // 8 m sideways
469
+ here.y - groundY < 60) {
470
+ pickedAtX = here.x;
471
+ pickedAtZ = here.z;
472
+ this._fallRay.origin.copyFromFloats(here.x, here.y + 1, here.z);
473
+ this._fallRay.direction.copyFromFloats(0, -1, 0);
474
+ const hit = scene.pickWithRay(this._fallRay, skip);
475
+ groundY = hit?.hit ? here.y + 1 - hit.distance : -Infinity;
476
+ // Nothing under it. Re-picking every frame will not conjure ground, and
477
+ // the abandon guard below ends it — so stop asking.
478
+ if (groundY === -Infinity) {
479
+ pickedAtX = here.x;
480
+ pickedAtZ = here.z;
481
+ groundY = -1e9;
482
+ }
483
+ }
484
+ const { impacted } = wreckFallStep(fall, groundY, dt);
485
+ node.position.copyFromFloats(fall.pos.x, fall.pos.y, fall.pos.z);
486
+ BABYLON.Quaternion.RotationAxisToRef(axis, fall.angle, spin);
487
+ node.rotationQuaternion = spin.multiply(rest);
488
+ // The fires ride along — a smoke column left behind at the kill point,
489
+ // with the wreck a hundred metres below it, is worse than no fire.
490
+ for (const p of this._fires) {
491
+ const e = p.emitter;
492
+ if (e && typeof e.copyFromFloats === 'function') {
493
+ e.copyFromFloats(fall.pos.x, fall.pos.y, fall.pos.z);
494
+ }
495
+ }
496
+ // And so does the shot: you are watching THIS, so keep it in frame.
497
+ const cam = this._orbitCam;
498
+ if (cam instanceof BABYLON.ArcRotateCamera) {
499
+ cam.target.copyFromFloats(fall.pos.x, fall.pos.y + this.orbitHeight * 0.35, fall.pos.z);
500
+ }
501
+ else if (cam instanceof BABYLON.FreeCamera) {
502
+ cam.setTarget(new BABYLON.Vector3(fall.pos.x, fall.pos.y, fall.pos.z));
503
+ }
504
+ if (impacted) {
505
+ try {
506
+ explosionFx(scene, new BABYLON.Vector3(fall.pos.x, fall.pos.y, fall.pos.z), this.blastRadius * 0.5);
507
+ }
508
+ catch {
509
+ // Cosmetics never block the exit — same rule as the death FX above.
510
+ }
511
+ }
512
+ if (fall.grounded || fall.pos.y < abandonY) {
513
+ scene.onBeforeRenderObservable.remove(this._fallObs);
514
+ this._fallObs = null;
515
+ this._fall = null;
516
+ }
517
+ });
518
+ }
519
+ /** Move everything death holds in world space by a rebase. See `die()`. */
520
+ _shiftOrigin = (dx, dz) => {
521
+ const cam = this._orbitCam;
522
+ if (cam != null) {
523
+ cam.position.x += dx;
524
+ cam.position.z += dz;
525
+ if (cam instanceof BABYLON.ArcRotateCamera) {
526
+ cam.target.x += dx;
527
+ cam.target.z += dz;
528
+ }
529
+ }
530
+ for (const p of this._fires) {
531
+ const e = p.emitter;
532
+ if (e &&
533
+ typeof e.addInPlaceFromFloats === 'function') {
534
+ e.addInPlaceFromFloats(dx, 0, dz);
535
+ }
536
+ }
537
+ // The fall re-reads the node each frame, so only its cached sample point is
538
+ // stale — shift it so the shift does not look like sideways drift and force
539
+ // a needless re-pick.
540
+ this._fallShift?.(dx, dz);
541
+ };
542
+ _fallShift = null;
328
543
  _burn(scene, mesh, at) {
329
544
  const fire = new BABYLON.ParticleSystem('wreck-fire', 220, scene);
330
545
  fire.particleTexture = sootDot(scene);
@@ -469,6 +684,13 @@ export class B3dDeath extends B3dChild {
469
684
  if (scene && this._obs)
470
685
  scene.onBeforeRenderObservable.remove(this._obs);
471
686
  this._obs = null;
687
+ if (scene && this._fallObs)
688
+ scene.onBeforeRenderObservable.remove(this._fallObs);
689
+ this._fallObs = null;
690
+ this._fall = null;
691
+ this._fallShift = null;
692
+ this._offOrigin?.();
693
+ this._offOrigin = null;
472
694
  for (const p of this._fires)
473
695
  p.dispose();
474
696
  this._fires = [];
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-death.js","sourceRoot":"","sources":["../src/b3d-death.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoGE;AACF,6BAA6B;AAE7B,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,WAAW,EAAe,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAoB,MAAM,iBAAiB,CAAA;AAK/D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAA;AAEzB;qGACqG;AACrG,SAAS,OAAO,CAAC,KAAoB;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,WAAW,CAAC,CAAA;IACtD,IAAI,QAAQ;QAAE,OAAO,QAAkC,CAAA;IACvD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,cAAc,CACpC,WAAW,EACX,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EACzB,KAAK,EACL,KAAK,CACN,CAAA;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAyC,CAAA;IACnE,MAAM,CAAC,GAAG,GAAG,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACzD,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAA;IACxC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAA;IAC5C,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAA;IACxC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAA;IACjB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1B,GAAG,CAAC,MAAM,EAAE,CAAA;IACZ,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAA;IACnB,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,OAAO,QAAS,SAAQ,QAAQ;IACpC,MAAM,CAAC,cAAc,GAAG;QACtB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,CAAC;QACb,0FAA0F;QAC1F,+FAA+F;QAC/F,QAAQ,EAAE,OAA4B;QACtC,QAAQ,EAAE,IAAoB;QAC9B,WAAW,EAAE,CAAC;KACf,CAAA;IAWD,yFAAyF;IACzF,OAAO,GAAwB,IAAI,CAAA;IACnC,8FAA8F;IAC9F,OAAO,GAA8B,IAAI,CAAA;IACzC;;yEAEqE;IACrE,OAAO,GAA2B,IAAI,CAAA;IAEtC,2DAA2D;IAC3D,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAEO,MAAM,GAAG,KAAK,CAAA;IACd,gBAAgB,GAAG,KAAK,CAAA;IACxB,MAAM,GAA2B,IAAI,CAAA;IACrC,QAAQ,GAAc,EAAE,CAAA;IACxB,SAAS,GAA0B,IAAI,CAAA;IACvC,QAAQ,GAA0B,IAAI,CAAA;IACtC,MAAM,GAAuB,IAAI,CAAA;IACjC,MAAM,GAA6B,EAAE,CAAA;IACrC,SAAS,GAAuB,EAAE,CAAA;IAClC,IAAI,GAA2C,IAAI,CAAA;IACnD,MAAM,GAAyC,IAAI,CAAA;IACnD,QAAQ,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAErD,UAAU,CAAC,KAAU;QACnB,oFAAoF;QACpF,gFAAgF;QAChF,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpD,CAAC;IAED,YAAY;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YACjD,KAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvD,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAA;IACjB,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,CACJ,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,sBAAsB,CAAmB;YACpE,IAAI,CACL,CAAA;IACH,CAAC;IAEO,YAAY,CAAC,CAAQ;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAA;QAC/B,MAAM,MAAM,GAAG,KAAK,EAAE,OAAO,IAAI,IAAI,CAAA;QAErC;;;;;;;;;UASE;QACF,IAAI,MAAM,IAAI,IAAI,IAAI,CAAE,CAAC,CAAC,MAAe,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAM;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB;;;;;;;;;;;;;;cAcE;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAgC,CAAA;YACnD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAA;YACtC,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAM;YAC3C,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;gBAAE,OAAM;YACxD,OAAO,CAAC,IAAI,CACV,qIAAqI,CACtI,CAAA;YACD,IAAI,CAAC,MAAM,EAAE,CAAA;QACf,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAClB,CAAC;IAED,sFAAsF;IACtF,GAAG,CAAC,MAA8B;QAChC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,OAAM;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;QAE9B,0FAA0F;QAC1F,0FAA0F;QAC1F,0FAA0F;QAC1F,8FAA8F;QAC9F,MAAM,IAAI,GACP,MAAM,EAAE,eAAe,EAAE,EAAmC,IAAI,IAAI,CAAA;QACvE,MAAM,EAAE,GAAG,IAAI;YACb,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE;YACpC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QAExE,wEAAwE;QACxE,EAAE;QACF,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,kBAAkB;QAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;gBACxC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;oBACzB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;wBACxC,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;wBACvC,QAAQ,EAAG,MAAc,EAAE,QAAQ,IAAI,SAAS;wBAChD,MAAM,EAAE,MAAM;qBACf,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;gBAC7B,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,CAAA;QAEjC,8FAA8F;QAC9F,+FAA+F;QAC/F,2FAA2F;QAC3F,8DAA8D;QAC9D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAA;QAClC,IAAI,CAAC;YACH,IAAI,GAAmB,CAAA;YACvB,IAAI,KAAK,GAAmC,IAAI,CAAA;YAChD,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC9B,6FAA6F;gBAC7F,sFAAsF;gBACtF,wFAAwF;gBACxF,2FAA2F;gBAC3F,MAAM,GAAG,GAAG,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;gBACjE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;gBACT,IAAI,GAAG,CAAC,aAAa,EAAE,GAAG,IAAI;oBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;gBAChD,GAAG,CAAC,SAAS,EAAE,CAAA;gBACf,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAA;gBAC1D,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAA;gBAC/B,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC5D,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;gBAChB,GAAG,GAAG,EAAE,CAAA;YACV,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,IAAI,OAAO,CAAC,eAAe,CACjC,aAAa,EACb,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EACZ,IAAI,CAAC,EAAE,GAAG,GAAG,EACb,IAAI,CAAC,WAAW,EAChB,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAC1D,KAAK,CACN,CAAA;gBACD,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAA;gBAClE,GAAG,GAAG,KAAK,CAAA;YACb,CAAC;YACD,0EAA0E;YAC1E,uEAAuE;YACvE,yEAAyE;YACzE,yEAAyE;YACzE,kEAAkE;YAClE,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,SAAS,GAAG,GAAG,CAAA;gBACpB,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;oBAClB,sCAAsC;oBACtC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE;wBAClD,KAAM,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;oBAC3D,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,OAAO,EAAE,CAAA,CAAC,4BAA4B;gBAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAA;QACzE,CAAC;QAED,oFAAoF;QACpF,0CAA0C;QAC1C,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IACtE,CAAC;IAEO,KAAK,CACX,KAAoB,EACpB,IAAkC,EAClC,EAAmB;QAEnB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;QACjE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QACrD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAClB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAClB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,aAAa,CAAA;QACrD,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAA;QAEZ,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;QACnE,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QACtC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,CAAA;QAC1B,KAAK,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QACvD,KAAK,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QACnD,KAAK,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QACxD,KAAK,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACrD,KAAK,CAAC,SAAS,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACzD,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;QACnB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;QACjB,KAAK,CAAC,WAAW,GAAG,GAAG,CAAA;QACvB,KAAK,CAAC,WAAW,GAAG,CAAC,CAAA;QACrB,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAA;QACnB,KAAK,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;QACrD,KAAK,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACrD,KAAK,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAC9C,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAE7B,6FAA6F;QAC7F,kFAAkF;QAClF,EAAE;QACF,4FAA4F;QAC5F,2FAA2F;QAC3F,4FAA4F;QAC5F,wCAAwC;QACxC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,KAAK,GAA2B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;YAChE,IAAI,IAAI,YAAY,OAAO,CAAC,YAAY;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC1D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,CAAC,CAAC,QAAsC,CAAA;gBACpD,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,EAAE,CAAC;oBAChC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CACvB,GAAG,GAAG,CAAC,IAAI,UAAU,CACC,CAAA;oBACxB,OAAO,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;oBACxD,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAA;oBACtB,OAAO,CAAC,SAAS,GAAG,GAAG,CAAA;oBACvB,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAA;oBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,OAAM;QAC9C,IACE,IAAI,CAAC,OAAO,IAAI,IAAI;YACpB,IAAI,CAAC,OAAO,IAAI,IAAI;YACpB,CAAC,IAAI,CAAC,gBAAgB,EACtB,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;YAC5B,uEAAuE;YACvE,sEAAsE;YACtE,gDAAgD;YAChD,OAAO,CAAC,IAAI,CACV,2KAA2K,CAC5K,CAAA;QACH,CAAC;QACD,MAAM,IAAI,GAAe,IAAI,CAAC,OAAO;YACnC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;YAChB,CAAC,CAAC;gBACE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACzC,GAAG,CAAC,IAAI,CAAC,OAAO;oBACd,CAAC,CAAC;wBACE,QAAQ,CAAC;4BACP,KAAK,EAAE,SAAS;4BAChB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;yBACnD,CAAC;qBACH;oBACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;aACrD,CAAA;QAEL,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;QAC1D,gFAAgF;QAChF,+EAA+E;QAC/E,EAAE;QACF,sEAAsE;QACtE,4EAA4E;QAC5E,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAA;QAC9C,MAAM,KAAK,GAAG,aAAa,CACxB,QAA+B,EAAE,GAAG,IAAI,GAAG,EAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,QAA0B,CAAC;YACrE,GAAG,EACL,GAAG,EACH,GAAG,CACJ,CAAA;QACD,MAAM,KAAK,GAAG,WAAW,CAAC;YACxB,cAAc,EAAE,IAAI;YACpB;;;;;;;;;;cAUE;YACF,SAAS,EAAE,OAAO;YAClB,KAAK;YACL,MAAM,EAAE,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;YAC5B,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,CAAC;YACJ,UAAU,EAAE,GAAG;YACf,aAAa,EAAE,IAAI;SACpB,CAAgB,CAAA;QACjB,8EAA8E;QAC9E,KAAK,CAAC,UAAU,GAAG,GAAG,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,wFAAwF;IACxF,MAAM,CAAC,IAAiB;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,EAAE,EAAE,CAAA;IACV,CAAC;IAEO,QAAQ;QACd,uFAAuF;QACvF,oFAAoF;QACpF,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAA;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ;YAAE,EAAE,CAAC,MAAM,EAAE,CAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;YAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAA;QAC/B,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,CAAC,CAAC,OAAO,EAAE,CAAA;QACxC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS;YAAE,GAAG,CAAC,OAAO,EAAE,CAAA;QAC/C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAA;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,qFAAqF;QACrF,oFAAoF;QACpF,EAAE;QACF,wFAAwF;QACxF,uFAAuF;QACvF,wFAAwF;QACxF,qFAAqF;QACrF,uBAAuB;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,GAAG,IAAI,IAAI;YAAE,OAAM;QACvB,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,YAAY,KAAK,GAAG,EAAE,CAAC;YAChD,GAAG,CAAC,OAAO,EAAE,CAAA;YACb,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE;YACnD,IAAI,KAAK,CAAC,YAAY,KAAK,GAAG;gBAAE,OAAM,CAAC,0BAA0B;YACjE,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC3C,GAAG,CAAC,OAAO,EAAE,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;;AAGH,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC;IAC9C,GAAG,EAAE,gBAAgB;CACtB,CAAqC,CAAA"}
1
+ {"version":3,"file":"b3d-death.js","sourceRoot":"","sources":["../src/b3d-death.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import * as BABYLON from '@babylonjs/core';
2
+ import { B3dChild } from './b3d-utils';
3
+ import type { B3d } from './tosi-b3d';
4
+ import { type InteractionInfo } from './interactive-behavior';
5
+ export declare class B3dInteractive extends B3dChild {
6
+ static styleSpec: {
7
+ ':host': {
8
+ display: string;
9
+ };
10
+ };
11
+ static initAttributes: {
12
+ /** Mesh/node name. Empty = the mesh of the element this is nested inside. */
13
+ target: string;
14
+ /** `'subtree'` (the node and its children) or `'self'`. */
15
+ include: string;
16
+ /** Max distance in world units; 0 = no limit. */
17
+ reach: number;
18
+ disabled: boolean;
19
+ /** Hover outline colour, or `'none'`. */
20
+ highlight: string;
21
+ };
22
+ target: string;
23
+ include: string;
24
+ reach: number;
25
+ disabled: boolean;
26
+ highlight: string;
27
+ owner: B3d | null;
28
+ whenActivated: ((info: InteractionInfo) => void) | null;
29
+ whenHovered: ((info: InteractionInfo) => void) | null;
30
+ whenUnhovered: ((info: InteractionInfo) => void) | null;
31
+ whenRefused: ((info: InteractionInfo) => void) | null;
32
+ /**
33
+ * Other features' refusals — see the doc above. Lives on the element (not
34
+ * behind the behaviour) so a `lockable` can be pushed before the scene is up.
35
+ */
36
+ vetoes: Array<{
37
+ name: string;
38
+ blocks: () => boolean;
39
+ }>;
40
+ private _behavior;
41
+ private _cache;
42
+ content: () => string;
43
+ sceneReady(owner: B3d, _scene: BABYLON.Scene): void;
44
+ sceneDispose(): void;
45
+ /** Is the pointer on it right now? */
46
+ get hovered(): boolean;
47
+ /** True when nothing refuses an activation — i.e. using it would do something. */
48
+ get operable(): boolean;
49
+ /** Use it without pointing at it (a key press, an NPC, a test). */
50
+ activate(info?: Partial<InteractionInfo>): boolean;
51
+ /**
52
+ * Tuned state for the console / `hj eval`. Says whether the target NAME
53
+ * resolved, which is the one thing that silently makes an interactive inert.
54
+ */
55
+ get debugState(): {
56
+ enabled: boolean;
57
+ phase: import("./interaction").InteractPhase;
58
+ armed: boolean;
59
+ meshes: string[];
60
+ reach: number;
61
+ vetoes: string[];
62
+ target: any;
63
+ resolved: boolean;
64
+ } | {
65
+ attached: boolean;
66
+ target: any;
67
+ resolved: boolean;
68
+ };
69
+ /**
70
+ * The meshes that count as "this thing".
71
+ *
72
+ * Cached, because a pointer move fires on every frame the mouse is in motion
73
+ * and `getChildMeshes` allocates — but re-resolved whenever the cache is empty
74
+ * or anything in it has been disposed, so a GLB that loads late starts working
75
+ * when it arrives instead of never.
76
+ */
77
+ private _meshes;
78
+ }
79
+ export declare const b3dInteractive: import("tosijs").ElementCreator<B3dInteractive>;
80
+ //# sourceMappingURL=b3d-interactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"b3d-interactive.d.ts","sourceRoot":"","sources":["../src/b3d-interactive.ts"],"names":[],"mappings":"AAuKA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAA;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAA;AAE/B,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,MAAM,CAAC,SAAS;;;;MAIf;IAED,MAAM,CAAC,cAAc;QACnB,6EAA6E;;QAE7E,2DAA2D;;QAE3D,iDAAiD;;;QAKjD,yCAAyC;;MAE1C;IAEO,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IAEzB,KAAK,EAAE,GAAG,GAAG,IAAI,CAAO;IAExB,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAC9D,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAC5D,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAC9D,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAE5D;;;OAGG;IACH,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,OAAO,CAAA;KAAE,CAAC,CAAK;IAE3D,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,MAAM,CAAsC;IAEpD,OAAO,eAAW;IAElB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK;IAmB5C,YAAY;IAOZ,sCAAsC;IACtC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,kFAAkF;IAClF,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO;IAIlD;;;OAGG;IACH,IAAI,UAAU;;;;;;;;;;;;;MAQb;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO;CAkBhB;AAED,eAAO,MAAM,cAAc,iDAEzB,CAAA"}