@vectojs/core 1.35.1 → 1.35.2
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.
- package/dist/{chunk-IFSFHYF7.mjs → chunk-25PS5K7R.mjs} +35 -15
- package/dist/{chunk-TV4ARAC5.mjs → chunk-CHDJEHML.mjs} +2 -0
- package/dist/{chunk-M73XB4ZK.js → chunk-MO24PVGT.js} +42 -22
- package/dist/{chunk-XXU56ZNA.js → chunk-XHPUCU5P.js} +32 -30
- package/dist/components/SplineEntity.d.ts +6 -0
- package/dist/index.js +177 -96
- package/dist/index.mjs +124 -43
- package/dist/renderer/WebGLPointRenderer.d.ts +3 -3
- package/dist/renderer/colorParse.d.ts +2 -2
- package/dist/renderer/url.d.ts +4 -2
- package/dist/renderer.js +2 -2
- package/dist/renderer.mjs +1 -1
- package/dist/text.js +2 -2
- package/dist/text.mjs +1 -1
- package/dist/tree/Scene.d.ts +14 -13
- package/dist/wasm/anim-backend.d.ts +13 -3
- package/dist/wasm/backend.d.ts +13 -0
- package/dist/wasm/hit-backend.d.ts +11 -4
- package/dist/wasm/particle-backend.d.ts +6 -0
- package/dist/wasm/vectojs_core.wasm +0 -0
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkMO24PVGTjs = require('./chunk-MO24PVGT.js');
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _chunkXHPUCU5Pjs = require('./chunk-XHPUCU5P.js');
|
|
23
23
|
|
|
24
24
|
// src/tree/ComputeParticleEntity.ts
|
|
25
25
|
var PARTICLE_STRIDE_FLOATS = 8;
|
|
@@ -31,7 +31,7 @@ var PARTICLE_OFFSET_ORIGIN_X = 4;
|
|
|
31
31
|
var PARTICLE_OFFSET_ORIGIN_Y = 5;
|
|
32
32
|
var PARTICLE_OFFSET_SIZE = 6;
|
|
33
33
|
var PARTICLE_OFFSET_LIFE = 7;
|
|
34
|
-
var ComputeParticleEntity = (_class = class extends
|
|
34
|
+
var ComputeParticleEntity = (_class = class extends _chunkXHPUCU5Pjs.Entity {
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
@@ -317,6 +317,7 @@ var ComputeParticleEntity = (_class = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
317
317
|
stepWithBackend(backend, dt, mouseX, mouseY, width, height) {
|
|
318
318
|
const count = this.maxParticles;
|
|
319
319
|
backend.ensure(count);
|
|
320
|
+
backend.revalidateViews();
|
|
320
321
|
backend.gather(this.particleData, count, true);
|
|
321
322
|
const pending = backend.step(count, {
|
|
322
323
|
dt,
|
|
@@ -1326,6 +1327,7 @@ var DriverTicker = (_class5 = class {
|
|
|
1326
1327
|
tP.length = tweenCount;
|
|
1327
1328
|
tD.length = tweenCount;
|
|
1328
1329
|
backend.ensure(springCount, tweenCount);
|
|
1330
|
+
backend.revalidateViews();
|
|
1329
1331
|
if (springCount > 0) {
|
|
1330
1332
|
const sv = backend.springView();
|
|
1331
1333
|
for (let i = 0; i < springCount; i++) {
|
|
@@ -1594,6 +1596,7 @@ var HitTester = (_class6 = class {
|
|
|
1594
1596
|
gathered = gatherHitAABBs(this.root, frame);
|
|
1595
1597
|
}
|
|
1596
1598
|
backend.ensure(gathered.count, width, height, 64);
|
|
1599
|
+
backend.revalidateViews();
|
|
1597
1600
|
const view = backend.inputView();
|
|
1598
1601
|
view.minx.set(gathered.minx.subarray(0, gathered.count));
|
|
1599
1602
|
view.miny.set(gathered.miny.subarray(0, gathered.count));
|
|
@@ -2124,10 +2127,15 @@ var ContentProjectionManager = (_class7 = class {
|
|
|
2124
2127
|
}
|
|
2125
2128
|
if (this.phases.enabled) this.phases.record("calibScan", performance.now() - scanStart);
|
|
2126
2129
|
if (measurements.length === 0) {
|
|
2127
|
-
el.dataset.vectoGridCalibration = calibrationKey;
|
|
2128
|
-
el.dataset.vectoGridReady = "true";
|
|
2129
2130
|
el.dataset.vectoGridCalibrationSamples = "0";
|
|
2130
2131
|
delete el.dataset.vectoGridCalibrationPending;
|
|
2132
|
+
const readyFrame = requestAnimationFrame(() => {
|
|
2133
|
+
this.calibrationFrameHandles.delete(entityId);
|
|
2134
|
+
if (!el.isConnected) return;
|
|
2135
|
+
el.dataset.vectoGridCalibration = calibrationKey;
|
|
2136
|
+
el.dataset.vectoGridReady = "true";
|
|
2137
|
+
});
|
|
2138
|
+
this.calibrationFrameHandles.set(entityId, readyFrame);
|
|
2131
2139
|
return;
|
|
2132
2140
|
}
|
|
2133
2141
|
const appendStart = this.phases.enabled ? performance.now() : 0;
|
|
@@ -2370,8 +2378,15 @@ var WASM_STATUS = {
|
|
|
2370
2378
|
/** A kernel ran before `init`. */
|
|
2371
2379
|
UNINITIALIZED: 2,
|
|
2372
2380
|
/** A sibling run addressed a slot or parent outside the store. */
|
|
2373
|
-
BAD_RUN: 3
|
|
2381
|
+
BAD_RUN: 3,
|
|
2382
|
+
/** A requested capacity's size arithmetic overflowed; the previous store
|
|
2383
|
+
* was left untouched. */
|
|
2384
|
+
OVERFLOW: 4
|
|
2374
2385
|
};
|
|
2386
|
+
function viewsStale(cap, probe, memory) {
|
|
2387
|
+
if (cap === 0) return false;
|
|
2388
|
+
return probe.byteLength === 0 || probe.buffer !== memory.buffer;
|
|
2389
|
+
}
|
|
2375
2390
|
var PAD2 = 8;
|
|
2376
2391
|
var WasmTransformBackend = (_class9 = class {
|
|
2377
2392
|
__init40() {this.available = true}
|
|
@@ -2561,9 +2576,15 @@ var WasmTransformBackend = (_class9 = class {
|
|
|
2561
2576
|
}
|
|
2562
2577
|
ensure(count, runCount) {
|
|
2563
2578
|
if (count + PAD2 <= this.cap && runCount <= this.runCap) return;
|
|
2564
|
-
|
|
2565
|
-
|
|
2566
|
-
this.ex.init(count,
|
|
2579
|
+
const cap = count + PAD2;
|
|
2580
|
+
const runCap = Math.max(runCount, count, 1);
|
|
2581
|
+
const status = this.ex.init(count, runCap);
|
|
2582
|
+
if (status !== WASM_STATUS.OK) {
|
|
2583
|
+
this.lastStatus = status;
|
|
2584
|
+
return;
|
|
2585
|
+
}
|
|
2586
|
+
this.cap = cap;
|
|
2587
|
+
this.runCap = runCap;
|
|
2567
2588
|
this.refreshViews();
|
|
2568
2589
|
}
|
|
2569
2590
|
/** Rebuild typed-array views after an init() (which may have grown, and thus
|
|
@@ -2631,11 +2652,26 @@ var AnimBackend = (_class10 = class {
|
|
|
2631
2652
|
*/
|
|
2632
2653
|
ensure(springCount, tweenCount) {
|
|
2633
2654
|
if (springCount + PAD3 <= this.springCap && tweenCount + PAD3 <= this.tweenCap) return;
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
this.ex.anim_init(
|
|
2655
|
+
const springCap = springCount + PAD3;
|
|
2656
|
+
const tweenCap = tweenCount + PAD3;
|
|
2657
|
+
const status = this.ex.anim_init(springCap, tweenCap);
|
|
2658
|
+
if (status !== WASM_STATUS.OK) {
|
|
2659
|
+
this.lastStatus = status;
|
|
2660
|
+
return;
|
|
2661
|
+
}
|
|
2662
|
+
this.springCap = springCap;
|
|
2663
|
+
this.tweenCap = tweenCap;
|
|
2637
2664
|
this.refreshViews();
|
|
2638
2665
|
}
|
|
2666
|
+
/**
|
|
2667
|
+
* Re-create the typed-array views if another backend's allocation grew the
|
|
2668
|
+
* shared linear memory and detached them (see {@link viewsStale}). Call after
|
|
2669
|
+
* {@link ensure} and before writing into {@link springView}/{@link tweenView}.
|
|
2670
|
+
*/
|
|
2671
|
+
revalidateViews() {
|
|
2672
|
+
if (this.springCap === 0) return;
|
|
2673
|
+
if (viewsStale(this.springCap, this.sv.val, this.ex.memory)) this.refreshViews();
|
|
2674
|
+
}
|
|
2639
2675
|
/**
|
|
2640
2676
|
* Advance `count` springs (from index 0) by `dtMs` milliseconds, in place.
|
|
2641
2677
|
* Returns `true` when the kernel ran. `false` means it rejected the call
|
|
@@ -2729,15 +2765,26 @@ var HitTestBackend = (_class11 = class {
|
|
|
2729
2765
|
this.gridH = gh;
|
|
2730
2766
|
this.cellSize = cellSize;
|
|
2731
2767
|
}
|
|
2768
|
+
/**
|
|
2769
|
+
* Re-create the typed-array views if another backend's allocation grew the
|
|
2770
|
+
* shared linear memory and detached them (see {@link viewsStale}). Call after
|
|
2771
|
+
* {@link ensure} and before writing into {@link inputView}.
|
|
2772
|
+
*/
|
|
2773
|
+
revalidateViews() {
|
|
2774
|
+
if (this.entityCap === 0) return;
|
|
2775
|
+
if (viewsStale(this.entityCap, this.vminx, this.ex.memory)) this.refreshViews();
|
|
2776
|
+
}
|
|
2732
2777
|
/**
|
|
2733
2778
|
* Run the kernel's bucketing over whatever is currently resident in
|
|
2734
2779
|
* {@link inputView} (write the AABBs there, and call {@link ensure} first).
|
|
2735
|
-
* Returns `false` if the build
|
|
2736
|
-
* not trust {@link candidatesAt} results
|
|
2737
|
-
* to the JS walk instead (never return a
|
|
2780
|
+
* Returns `false` if the build was rejected (no `hit_init` yet) or overflowed
|
|
2781
|
+
* its item budget — the caller must not trust {@link candidatesAt} results
|
|
2782
|
+
* for this build and should fall back to the JS walk instead (never return a
|
|
2783
|
+
* wrong hit).
|
|
2738
2784
|
*/
|
|
2739
2785
|
runBuild(count, vw, vh, cellSize) {
|
|
2740
|
-
this.ex.hit_build(count, vw, vh, cellSize);
|
|
2786
|
+
const status = this.ex.hit_build(count, vw, vh, cellSize);
|
|
2787
|
+
if (status !== WASM_STATUS.OK) return false;
|
|
2741
2788
|
return this.ex.hit_overflow() === 0;
|
|
2742
2789
|
}
|
|
2743
2790
|
/**
|
|
@@ -2763,10 +2810,16 @@ var HitTestBackend = (_class11 = class {
|
|
|
2763
2810
|
if (count + PAD4 <= this.entityCap && cellCount <= this.cellCap && itemCount <= this.itemCap) {
|
|
2764
2811
|
return;
|
|
2765
2812
|
}
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
this.ex.hit_init(count,
|
|
2813
|
+
const entityCap = count + PAD4;
|
|
2814
|
+
const cellCap = Math.max(cellCount, 1);
|
|
2815
|
+
const itemCap = Math.max(itemCount, count, 1);
|
|
2816
|
+
const status = this.ex.hit_init(count, cellCap, itemCap);
|
|
2817
|
+
if (status !== WASM_STATUS.OK) {
|
|
2818
|
+
return;
|
|
2819
|
+
}
|
|
2820
|
+
this.entityCap = entityCap;
|
|
2821
|
+
this.cellCap = cellCap;
|
|
2822
|
+
this.itemCap = itemCap;
|
|
2770
2823
|
this.refreshViews();
|
|
2771
2824
|
}
|
|
2772
2825
|
/** Rebuild typed-array views after a growing `hit_init` (which detaches the
|
|
@@ -2805,10 +2858,24 @@ var ParticleBackend = (_class12 = class {
|
|
|
2805
2858
|
*/
|
|
2806
2859
|
ensure(count) {
|
|
2807
2860
|
if (count + PAD5 <= this.cap) return;
|
|
2808
|
-
|
|
2809
|
-
this.ex.particle_init(
|
|
2861
|
+
const cap = count + PAD5;
|
|
2862
|
+
const status = this.ex.particle_init(cap);
|
|
2863
|
+
if (status !== WASM_STATUS.OK) {
|
|
2864
|
+
this.lastStatus = status;
|
|
2865
|
+
return;
|
|
2866
|
+
}
|
|
2867
|
+
this.cap = cap;
|
|
2810
2868
|
this.refreshViews();
|
|
2811
2869
|
}
|
|
2870
|
+
/**
|
|
2871
|
+
* Re-create the typed-array views if another backend's allocation grew the
|
|
2872
|
+
* shared linear memory and detached them (see {@link viewsStale}). Call after
|
|
2873
|
+
* {@link ensure} and before {@link gather}/{@link scatter}.
|
|
2874
|
+
*/
|
|
2875
|
+
revalidateViews() {
|
|
2876
|
+
if (this.cap === 0) return;
|
|
2877
|
+
if (viewsStale(this.cap, this.view.px, this.ex.memory)) this.refreshViews();
|
|
2878
|
+
}
|
|
2812
2879
|
/**
|
|
2813
2880
|
* Advance `count` particles one step in place. Returns `true` when at least
|
|
2814
2881
|
* one live particle is still moving or off-origin beyond epsilon (the fused
|
|
@@ -3075,9 +3142,17 @@ var WasmBackendFacade = (_class14 = class {
|
|
|
3075
3142
|
* main render walk onto it; passing `null` reverts to the JS path.
|
|
3076
3143
|
*/
|
|
3077
3144
|
setTransform(backend) {
|
|
3145
|
+
const backendChanged = backend !== this._transform && this._transform !== null;
|
|
3078
3146
|
this._transform = backend;
|
|
3079
3147
|
this._mode = backend ? "wasm" : "js";
|
|
3080
3148
|
this._uploadRejections = 0;
|
|
3149
|
+
if (backendChanged) {
|
|
3150
|
+
this._treeStore = null;
|
|
3151
|
+
this._storeStructureVersion = -1;
|
|
3152
|
+
this._inputs = null;
|
|
3153
|
+
this._world = null;
|
|
3154
|
+
this._aabbsFresh = false;
|
|
3155
|
+
}
|
|
3081
3156
|
}
|
|
3082
3157
|
// ── The shared runtime ──────────────────────────────────────────────────────
|
|
3083
3158
|
/**
|
|
@@ -3245,6 +3320,7 @@ var WasmBackendFacade = (_class14 = class {
|
|
|
3245
3320
|
}
|
|
3246
3321
|
if (!backend.uploadRuns(built.store)) {
|
|
3247
3322
|
this.transformReason = "rejected";
|
|
3323
|
+
this._aabbsFresh = false;
|
|
3248
3324
|
this._uploadRejections++;
|
|
3249
3325
|
if (this._uploadRejections >= WASM_UPLOAD_REJECT_LIMIT) {
|
|
3250
3326
|
this._mode = "js";
|
|
@@ -3284,6 +3360,7 @@ var WasmBackendFacade = (_class14 = class {
|
|
|
3284
3360
|
}
|
|
3285
3361
|
if (backend.runKernel("simd") !== WASM_STATUS.OK) {
|
|
3286
3362
|
this.transformReason = "rejected";
|
|
3363
|
+
this._aabbsFresh = false;
|
|
3287
3364
|
return null;
|
|
3288
3365
|
}
|
|
3289
3366
|
this._aabbsFresh = false;
|
|
@@ -4469,23 +4546,23 @@ var Scene = (_class15 = class _Scene {
|
|
|
4469
4546
|
}
|
|
4470
4547
|
/**
|
|
4471
4548
|
* Drop `entity` and its whole subtree from the batched-driver candidate set.
|
|
4472
|
-
* Called by
|
|
4473
|
-
* removed-but-still-animating entity stays pinned in
|
|
4474
|
-
* drivers keep ticking every frame even though it is
|
|
4475
|
-
* re-added, {@link
|
|
4476
|
-
* still has live drivers, so the motion resumes.
|
|
4549
|
+
* Called by `Entity.remove` on detach (which `remove`/`hideOverlay` route
|
|
4550
|
+
* through): without this a removed-but-still-animating entity stays pinned in
|
|
4551
|
+
* the Set (a leak) and its drivers keep ticking every frame even though it is
|
|
4552
|
+
* off-tree. If it is later re-added, {@link _registerActiveDriverSubtree}
|
|
4553
|
+
* re-registers any node that still has live drivers, so the motion resumes.
|
|
4477
4554
|
*/
|
|
4478
|
-
|
|
4555
|
+
_unregisterActiveDriverSubtree(entity) {
|
|
4479
4556
|
this._driverTicker.unregisterSubtree(entity);
|
|
4480
4557
|
}
|
|
4481
4558
|
/**
|
|
4482
4559
|
* Re-register every node in `entity`'s subtree that still has live property
|
|
4483
|
-
* drivers. Called by
|
|
4484
|
-
*
|
|
4485
|
-
*
|
|
4486
|
-
*
|
|
4560
|
+
* drivers. Called by `Entity._addOne` so re-attaching a subtree that was
|
|
4561
|
+
* removed mid-animation resumes its batched drivers (they were dropped from
|
|
4562
|
+
* the candidate set on removal, but the driver state still lives on each
|
|
4563
|
+
* entity).
|
|
4487
4564
|
*/
|
|
4488
|
-
|
|
4565
|
+
_registerActiveDriverSubtree(entity) {
|
|
4489
4566
|
this._driverTicker.registerSubtree(entity);
|
|
4490
4567
|
}
|
|
4491
4568
|
// --- domain: render-scheduler — batched driver tick (extraction 6), reads the anim backend ---
|
|
@@ -4611,7 +4688,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
4611
4688
|
}
|
|
4612
4689
|
static set devMode(active) {
|
|
4613
4690
|
_Scene._devMode = active;
|
|
4614
|
-
|
|
4691
|
+
_chunkMO24PVGTjs.setRendererDevMode.call(void 0, active);
|
|
4615
4692
|
}
|
|
4616
4693
|
static _devModeDetected() {
|
|
4617
4694
|
if (_Scene._devMode) return true;
|
|
@@ -4728,7 +4805,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
4728
4805
|
this.readingDirection = _nullishCoalesce(options.readingDirection, () => ( "ltr"));
|
|
4729
4806
|
this.renderMode = _nullishCoalesce(options.renderMode, () => ( "always"));
|
|
4730
4807
|
this._devActive = _Scene._devModeDetected();
|
|
4731
|
-
|
|
4808
|
+
_chunkMO24PVGTjs.setRendererDevMode.call(void 0, this._devActive);
|
|
4732
4809
|
this._warnUnknownOptions(options);
|
|
4733
4810
|
this.reducedMotionQuery = typeof window !== "undefined" && typeof window.matchMedia === "function" ? window.matchMedia("(prefers-reduced-motion: reduce)") : null;
|
|
4734
4811
|
if (typeof window !== "undefined" && typeof window.matchMedia === "function") {
|
|
@@ -4736,7 +4813,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
4736
4813
|
this.forcedColorsChangeHandler = () => this.markDirty();
|
|
4737
4814
|
_optionalChain([this, 'access', _118 => _118.forcedColorsQuery, 'access', _119 => _119.addEventListener, 'optionalCall', _120 => _120("change", this.forcedColorsChangeHandler)]);
|
|
4738
4815
|
}
|
|
4739
|
-
this.root = new class RootEntity extends
|
|
4816
|
+
this.root = new class RootEntity extends _chunkXHPUCU5Pjs.Entity {
|
|
4740
4817
|
isPointInside() {
|
|
4741
4818
|
return false;
|
|
4742
4819
|
}
|
|
@@ -4746,7 +4823,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
4746
4823
|
}("root");
|
|
4747
4824
|
this.root._scene = this;
|
|
4748
4825
|
this._wasmBackend = new WasmBackendFacade(this.root);
|
|
4749
|
-
this.overlayRoot = new class OverlayRoot extends
|
|
4826
|
+
this.overlayRoot = new class OverlayRoot extends _chunkXHPUCU5Pjs.Entity {
|
|
4750
4827
|
isPointInside() {
|
|
4751
4828
|
return false;
|
|
4752
4829
|
}
|
|
@@ -4759,7 +4836,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
4759
4836
|
if (options.renderer) {
|
|
4760
4837
|
this.renderer = options.renderer;
|
|
4761
4838
|
} else {
|
|
4762
|
-
this.renderer = new (0,
|
|
4839
|
+
this.renderer = new (0, _chunkMO24PVGTjs.CanvasRenderer)(
|
|
4763
4840
|
canvas,
|
|
4764
4841
|
this.disableWindowResize ? { width: this.width, height: this.height } : void 0,
|
|
4765
4842
|
this.maxDPR
|
|
@@ -5022,7 +5099,6 @@ var Scene = (_class15 = class _Scene {
|
|
|
5022
5099
|
*/
|
|
5023
5100
|
add(entity) {
|
|
5024
5101
|
this.root.add(entity);
|
|
5025
|
-
this.registerActiveDriverSubtree(entity);
|
|
5026
5102
|
return this;
|
|
5027
5103
|
}
|
|
5028
5104
|
// --- domain: a11y-projection — subtree pruning, focus preservation on removal ---
|
|
@@ -5067,7 +5143,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
5067
5143
|
}
|
|
5068
5144
|
if (this.hoveredA11yElements.has(el)) {
|
|
5069
5145
|
this.hoveredA11yElements.delete(el);
|
|
5070
|
-
node.dispatchEvent(new (0,
|
|
5146
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointerleave", node, void 0, false));
|
|
5071
5147
|
}
|
|
5072
5148
|
this.preserveFocusOnRemoval(el);
|
|
5073
5149
|
el.remove();
|
|
@@ -5101,7 +5177,6 @@ var Scene = (_class15 = class _Scene {
|
|
|
5101
5177
|
remove(entity) {
|
|
5102
5178
|
this.root.remove(entity);
|
|
5103
5179
|
this.removeA11yRecursively(entity);
|
|
5104
|
-
this.unregisterActiveDriverSubtree(entity);
|
|
5105
5180
|
return this;
|
|
5106
5181
|
}
|
|
5107
5182
|
/**
|
|
@@ -5133,7 +5208,6 @@ var Scene = (_class15 = class _Scene {
|
|
|
5133
5208
|
*/
|
|
5134
5209
|
showOverlay(overlay) {
|
|
5135
5210
|
this.overlayRoot.add(overlay);
|
|
5136
|
-
this.registerActiveDriverSubtree(overlay);
|
|
5137
5211
|
this.markDirty();
|
|
5138
5212
|
}
|
|
5139
5213
|
/**
|
|
@@ -5142,7 +5216,6 @@ var Scene = (_class15 = class _Scene {
|
|
|
5142
5216
|
hideOverlay(overlay) {
|
|
5143
5217
|
this.overlayRoot.remove(overlay);
|
|
5144
5218
|
this.removeA11yRecursively(overlay);
|
|
5145
|
-
this.unregisterActiveDriverSubtree(overlay);
|
|
5146
5219
|
this.markDirty();
|
|
5147
5220
|
}
|
|
5148
5221
|
destroyEntitySubtree(entity) {
|
|
@@ -5386,8 +5459,9 @@ var Scene = (_class15 = class _Scene {
|
|
|
5386
5459
|
* workload rendered ~1.0 frames per content change. To measure anything about
|
|
5387
5460
|
* scheduling, use {@link start} and let `requestAnimationFrame` drive.
|
|
5388
5461
|
*
|
|
5389
|
-
* @param dt
|
|
5390
|
-
*
|
|
5462
|
+
* @param dt Milliseconds to advance (same unit as the rAF timestamps `loop`
|
|
5463
|
+
* feeds `render`). Not clamped by `MAX_FRAME_DT` — the caller chooses the
|
|
5464
|
+
* step, since determinism is the point.
|
|
5391
5465
|
*/
|
|
5392
5466
|
step(dt) {
|
|
5393
5467
|
const time = this.lastTime + dt;
|
|
@@ -5658,20 +5732,20 @@ var Scene = (_class15 = class _Scene {
|
|
|
5658
5732
|
el.style.background = "transparent";
|
|
5659
5733
|
}
|
|
5660
5734
|
el.addEventListener("click", (e) => {
|
|
5661
|
-
node.dispatchEvent(new (0,
|
|
5735
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("click", node, e));
|
|
5662
5736
|
});
|
|
5663
5737
|
el.addEventListener("dblclick", (e) => {
|
|
5664
|
-
node.dispatchEvent(new (0,
|
|
5738
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("dblclick", node, e));
|
|
5665
5739
|
});
|
|
5666
5740
|
el.addEventListener("mouseenter", (e) => {
|
|
5667
5741
|
if (this.debugA11y) el.style.backgroundColor = "rgba(56, 189, 248, 0.2)";
|
|
5668
5742
|
this.hoveredA11yElements.add(el);
|
|
5669
|
-
node.dispatchEvent(new (0,
|
|
5743
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("hover", node, e, false));
|
|
5670
5744
|
});
|
|
5671
5745
|
el.addEventListener("mouseleave", (e) => {
|
|
5672
5746
|
if (this.debugA11y) el.style.backgroundColor = "rgba(56, 189, 248, 0.05)";
|
|
5673
5747
|
this.hoveredA11yElements.delete(el);
|
|
5674
|
-
node.dispatchEvent(new (0,
|
|
5748
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointerleave", node, e, false));
|
|
5675
5749
|
});
|
|
5676
5750
|
const capEl = el;
|
|
5677
5751
|
const releasePointer = (event) => {
|
|
@@ -5687,24 +5761,24 @@ var Scene = (_class15 = class _Scene {
|
|
|
5687
5761
|
};
|
|
5688
5762
|
el.addEventListener("pointerdown", (e) => {
|
|
5689
5763
|
if (typeof capEl.setPointerCapture === "function") capEl.setPointerCapture(e.pointerId);
|
|
5690
|
-
node.dispatchEvent(new (0,
|
|
5764
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointerdown", node, e));
|
|
5691
5765
|
});
|
|
5692
5766
|
el.addEventListener("pointerup", (e) => {
|
|
5693
5767
|
releasePointer(e);
|
|
5694
|
-
node.dispatchEvent(new (0,
|
|
5768
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointerup", node, e));
|
|
5695
5769
|
});
|
|
5696
5770
|
el.addEventListener("pointercancel", (e) => {
|
|
5697
5771
|
releasePointer(e);
|
|
5698
|
-
node.dispatchEvent(new (0,
|
|
5772
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointercancel", node, e));
|
|
5699
5773
|
});
|
|
5700
5774
|
el.addEventListener(
|
|
5701
5775
|
"pointermove",
|
|
5702
|
-
(e) => node.dispatchEvent(new (0,
|
|
5776
|
+
(e) => node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointermove", node, e))
|
|
5703
5777
|
);
|
|
5704
5778
|
el.addEventListener(
|
|
5705
5779
|
"wheel",
|
|
5706
5780
|
(e) => {
|
|
5707
|
-
node.dispatchEvent(new (0,
|
|
5781
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("wheel", node, e));
|
|
5708
5782
|
},
|
|
5709
5783
|
{ passive: false }
|
|
5710
5784
|
);
|
|
@@ -5729,10 +5803,10 @@ var Scene = (_class15 = class _Scene {
|
|
|
5729
5803
|
);
|
|
5730
5804
|
emitInitialScroll = emitScroll;
|
|
5731
5805
|
el.addEventListener("keydown", (e) => {
|
|
5732
|
-
node.dispatchEvent(new (0,
|
|
5806
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("keydown", node, e));
|
|
5733
5807
|
});
|
|
5734
5808
|
el.addEventListener("keyup", (e) => {
|
|
5735
|
-
node.dispatchEvent(new (0,
|
|
5809
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("keyup", node, e));
|
|
5736
5810
|
});
|
|
5737
5811
|
if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {
|
|
5738
5812
|
const input = el;
|
|
@@ -5798,7 +5872,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
5798
5872
|
el.addEventListener("keydown", (e) => {
|
|
5799
5873
|
if (e.key === "Enter" || e.key === " ") {
|
|
5800
5874
|
e.preventDefault();
|
|
5801
|
-
node.dispatchEvent(new (0,
|
|
5875
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("click", node, e));
|
|
5802
5876
|
}
|
|
5803
5877
|
});
|
|
5804
5878
|
}
|
|
@@ -5836,7 +5910,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
5836
5910
|
this.syncOptionalAttribute(
|
|
5837
5911
|
el,
|
|
5838
5912
|
"href",
|
|
5839
|
-
attrs.href === void 0 ? void 0 :
|
|
5913
|
+
attrs.href === void 0 ? void 0 : _chunkMO24PVGTjs.sanitizeUrl.call(void 0, attrs.href)
|
|
5840
5914
|
);
|
|
5841
5915
|
this.syncOptionalAttribute(el, "target", attrs.target);
|
|
5842
5916
|
}
|
|
@@ -6235,7 +6309,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6235
6309
|
el.addEventListener(
|
|
6236
6310
|
"wheel",
|
|
6237
6311
|
(e2) => {
|
|
6238
|
-
node.dispatchEvent(new (0,
|
|
6312
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("wheel", node, e2));
|
|
6239
6313
|
},
|
|
6240
6314
|
{ passive: false }
|
|
6241
6315
|
);
|
|
@@ -6702,7 +6776,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6702
6776
|
const hasInteractive = this.frameHadInteractive;
|
|
6703
6777
|
const wantsContentSync = this.contentProjectionEnabled;
|
|
6704
6778
|
const shouldSyncInterval = this.a11ySyncInterval <= 0 || time - this.lastA11ySync >= this.a11ySyncInterval;
|
|
6705
|
-
if ((hasInteractive || this.a11yElements.size > 0 || wantsContentSync) && (shouldSyncInterval || this.a11yPendingSyncAfterAnimation)) {
|
|
6779
|
+
if ((hasInteractive || this.a11yElements.size > 0 || wantsContentSync) && (shouldSyncInterval || !hasActiveAnimation && this.a11yPendingSyncAfterAnimation)) {
|
|
6706
6780
|
this.lastA11ySync = time;
|
|
6707
6781
|
if (hasInteractive || wantsContentSync) {
|
|
6708
6782
|
const userTiming = this.phases.userTiming ? beginVectoUserTiming(VECTO_USER_TIMING.scene.a11ySync) : null;
|
|
@@ -6904,7 +6978,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6904
6978
|
let walkHadAnimation = false;
|
|
6905
6979
|
let walkHadInteractive = false;
|
|
6906
6980
|
const runUpdate = (node) => {
|
|
6907
|
-
const overridesUpdate = node.update !==
|
|
6981
|
+
const overridesUpdate = node.update !== _chunkXHPUCU5Pjs.Entity.prototype.update;
|
|
6908
6982
|
let pending = node.hasPendingAnimations();
|
|
6909
6983
|
if (pending || overridesUpdate) {
|
|
6910
6984
|
node.update(dt, time);
|
|
@@ -6913,7 +6987,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6913
6987
|
if (pending) walkHadAnimation = true;
|
|
6914
6988
|
if (!walkHadInteractive && node.interactive) walkHadInteractive = true;
|
|
6915
6989
|
if (this._devActive && this._devFrameCount % 120 === 0) {
|
|
6916
|
-
if (overridesUpdate && node.hasPendingAnimations ===
|
|
6990
|
+
if (overridesUpdate && node.hasPendingAnimations === _chunkXHPUCU5Pjs.Entity.prototype.hasPendingAnimations) {
|
|
6917
6991
|
this._devWarn(
|
|
6918
6992
|
`Entity "${node.id}" overrides update() but not hasPendingAnimations(). Custom motion in update() without overriding hasPendingAnimations() causes the idle throttle to drop the animation to ~2fps. Override hasPendingAnimations() to return true while motion is in flight.`
|
|
6919
6993
|
);
|
|
@@ -7126,7 +7200,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
7126
7200
|
* Export the current scene state to a lightweight, flat SVG XML string.
|
|
7127
7201
|
*/
|
|
7128
7202
|
toSVG() {
|
|
7129
|
-
const renderer = new (0,
|
|
7203
|
+
const renderer = new (0, _chunkMO24PVGTjs.SVGRenderer)(this.width, this.height);
|
|
7130
7204
|
this.render(renderer, 0, 0);
|
|
7131
7205
|
return renderer.toXMLString();
|
|
7132
7206
|
}
|
|
@@ -7339,7 +7413,7 @@ function defaultMeasurer() {
|
|
|
7339
7413
|
sharedMeasurer ??= _layout.resolveGlyphMeasurer.call(void 0, "sans-serif");
|
|
7340
7414
|
return sharedMeasurer;
|
|
7341
7415
|
}
|
|
7342
|
-
var TextEntity = (_class16 = class extends
|
|
7416
|
+
var TextEntity = (_class16 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7343
7417
|
|
|
7344
7418
|
|
|
7345
7419
|
|
|
@@ -7543,7 +7617,7 @@ var TextEntity = (_class16 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7543
7617
|
}, _class16);
|
|
7544
7618
|
|
|
7545
7619
|
// src/components/GridTextEntity.ts
|
|
7546
|
-
var GridTextEntity = (_class17 = class extends
|
|
7620
|
+
var GridTextEntity = (_class17 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7547
7621
|
|
|
7548
7622
|
__init184() {this.fillStyle = "#ffffff"}
|
|
7549
7623
|
__init185() {this.grid = []}
|
|
@@ -7562,7 +7636,7 @@ var GridTextEntity = (_class17 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7562
7636
|
updateGrid(ascii) {
|
|
7563
7637
|
this.grid = ascii;
|
|
7564
7638
|
this.rows = ascii.length;
|
|
7565
|
-
this.cols =
|
|
7639
|
+
this.cols = ascii.reduce((widest, row) => Math.max(widest, _nullishCoalesce(_optionalChain([row, 'optionalAccess', _187 => _187.length]), () => ( 0))), 0);
|
|
7566
7640
|
}
|
|
7567
7641
|
isPointInside(_globalX, _globalY) {
|
|
7568
7642
|
return false;
|
|
@@ -7637,7 +7711,7 @@ function distSqToSegment(px, py, x1, y1, x2, y2) {
|
|
|
7637
7711
|
const ey = py - cy;
|
|
7638
7712
|
return ex * ex + ey * ey;
|
|
7639
7713
|
}
|
|
7640
|
-
var SplineEntity = (_class18 = class extends
|
|
7714
|
+
var SplineEntity = (_class18 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7641
7715
|
|
|
7642
7716
|
|
|
7643
7717
|
|
|
@@ -7650,6 +7724,12 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7650
7724
|
/** Logical (CSS-pixel) size of the baked bitmap — the blit destination size. */
|
|
7651
7725
|
__init190() {this.bakedWidth = 0}
|
|
7652
7726
|
__init191() {this.bakedHeight = 0}
|
|
7727
|
+
/**
|
|
7728
|
+
* Device-pixel ratio the bitmap was rasterized at. Tracked so a DPR change
|
|
7729
|
+
* (browser zoom, a monitor move, a renderer whose clamp changed) re-bakes
|
|
7730
|
+
* instead of blitting a bitmap at the wrong device density forever.
|
|
7731
|
+
*/
|
|
7732
|
+
__init192() {this.bakedDPR = 0}
|
|
7653
7733
|
/**
|
|
7654
7734
|
* Gradient strokes can't be baked to a solid-color bitmap; they render
|
|
7655
7735
|
* per-frame. Derived from `_doc`, so it is NOT readonly — assigning a new
|
|
@@ -7657,7 +7737,7 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7657
7737
|
*/
|
|
7658
7738
|
|
|
7659
7739
|
/** Lazily-flattened polylines (one Float32Array of [x,y,...] per segment) for hit-testing. */
|
|
7660
|
-
|
|
7740
|
+
__init193() {this.polylines = null}
|
|
7661
7741
|
/**
|
|
7662
7742
|
* The spline document to render. Assigning a new document invalidates all
|
|
7663
7743
|
* caches (baked canvas, flattened polylines, bounds).
|
|
@@ -7691,9 +7771,9 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7691
7771
|
* local bounds after painting the curves. Useful for drag feedback and
|
|
7692
7772
|
* debugging hit areas. Defaults to `false`.
|
|
7693
7773
|
*/
|
|
7694
|
-
|
|
7774
|
+
__init194() {this.showBounds = false}
|
|
7695
7775
|
constructor(doc, opts = {}) {
|
|
7696
|
-
super();_class18.prototype.__init188.call(this);_class18.prototype.__init189.call(this);_class18.prototype.__init190.call(this);_class18.prototype.__init191.call(this);_class18.prototype.__init192.call(this);_class18.prototype.__init193.call(this);;
|
|
7776
|
+
super();_class18.prototype.__init188.call(this);_class18.prototype.__init189.call(this);_class18.prototype.__init190.call(this);_class18.prototype.__init191.call(this);_class18.prototype.__init192.call(this);_class18.prototype.__init193.call(this);_class18.prototype.__init194.call(this);;
|
|
7697
7777
|
this._doc = doc;
|
|
7698
7778
|
this._lineWidth = _nullishCoalesce(opts.lineWidth, () => ( 2));
|
|
7699
7779
|
this.cache = _nullishCoalesce(opts.cache, () => ( true));
|
|
@@ -7713,7 +7793,7 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7713
7793
|
*/
|
|
7714
7794
|
computeContainsGradient() {
|
|
7715
7795
|
const isGradient = (c) => c !== null && !Array.isArray(c);
|
|
7716
|
-
return (_nullishCoalesce(_optionalChain([this, 'access',
|
|
7796
|
+
return (_nullishCoalesce(_optionalChain([this, 'access', _188 => _188._doc, 'access', _189 => _189.equations, 'optionalAccess', _190 => _190.some, 'call', _191 => _191((eq) => isGradient(eq.color_rgb))]), () => ( false))) || (_nullishCoalesce(_optionalChain([this, 'access', _192 => _192._doc, 'access', _193 => _193.paths, 'optionalAccess', _194 => _194.some, 'call', _195 => _195((p) => isGradient(p.color_rgb))]), () => ( false)));
|
|
7717
7797
|
}
|
|
7718
7798
|
/** Clear cached baked canvas and hit-test polylines. */
|
|
7719
7799
|
invalidateCache() {
|
|
@@ -7873,14 +7953,14 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7873
7953
|
}
|
|
7874
7954
|
}
|
|
7875
7955
|
/** Bake all equations into an OffscreenCanvas once (when available). */
|
|
7876
|
-
bake() {
|
|
7956
|
+
bake(dpr) {
|
|
7877
7957
|
this.baked = true;
|
|
7878
7958
|
const pad = this.lineWidth + 2;
|
|
7879
7959
|
const w = Math.max(1, Math.ceil(this.bounds.width) + pad * 2);
|
|
7880
7960
|
const h = Math.max(1, Math.ceil(this.bounds.height) + pad * 2);
|
|
7881
7961
|
this.bakedWidth = w;
|
|
7882
7962
|
this.bakedHeight = h;
|
|
7883
|
-
|
|
7963
|
+
this.bakedDPR = dpr;
|
|
7884
7964
|
let canvas;
|
|
7885
7965
|
if (typeof OffscreenCanvas !== "undefined") {
|
|
7886
7966
|
canvas = new OffscreenCanvas(w * dpr, h * dpr);
|
|
@@ -7928,7 +8008,8 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7928
8008
|
render(r) {
|
|
7929
8009
|
let rendered = false;
|
|
7930
8010
|
if (this.cache && !this.containsGradient) {
|
|
7931
|
-
|
|
8011
|
+
const dpr = typeof r.pixelRatio === "number" && r.pixelRatio > 0 ? r.pixelRatio : typeof window !== "undefined" && typeof window.devicePixelRatio === "number" ? window.devicePixelRatio || 1 : 1;
|
|
8012
|
+
if (!this.baked || this.bakedDPR !== dpr) this.bake(dpr);
|
|
7932
8013
|
if (this.offscreen) {
|
|
7933
8014
|
const pad = this.lineWidth + 2;
|
|
7934
8015
|
r.drawImage(
|
|
@@ -7958,7 +8039,7 @@ async function loadSpline(url) {
|
|
|
7958
8039
|
}
|
|
7959
8040
|
|
|
7960
8041
|
// src/components/Rect.ts
|
|
7961
|
-
var Rect = class extends
|
|
8042
|
+
var Rect = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7962
8043
|
|
|
7963
8044
|
|
|
7964
8045
|
|
|
@@ -8014,7 +8095,7 @@ var Rect = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8014
8095
|
};
|
|
8015
8096
|
|
|
8016
8097
|
// src/components/Circle.ts
|
|
8017
|
-
var Circle = class extends
|
|
8098
|
+
var Circle = class extends _chunkXHPUCU5Pjs.Entity {
|
|
8018
8099
|
|
|
8019
8100
|
|
|
8020
8101
|
|
|
@@ -8078,7 +8159,7 @@ var Circle = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8078
8159
|
};
|
|
8079
8160
|
|
|
8080
8161
|
// src/components/Group.ts
|
|
8081
|
-
var Group = class extends
|
|
8162
|
+
var Group = class extends _chunkXHPUCU5Pjs.Entity {
|
|
8082
8163
|
constructor(...children) {
|
|
8083
8164
|
super();
|
|
8084
8165
|
if (children.length > 0) this.add(...children);
|
|
@@ -8097,21 +8178,21 @@ var _math = require('@vectojs/math'); _createStarExport(_math);
|
|
|
8097
8178
|
|
|
8098
8179
|
|
|
8099
8180
|
// src/tree/DOMPortalEntity.ts
|
|
8100
|
-
var DOMPortalEntity = (_class19 = class extends
|
|
8181
|
+
var DOMPortalEntity = (_class19 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
8101
8182
|
|
|
8102
|
-
|
|
8103
|
-
|
|
8104
|
-
|
|
8105
|
-
|
|
8106
|
-
|
|
8107
|
-
|
|
8108
|
-
|
|
8109
|
-
|
|
8110
|
-
|
|
8111
|
-
|
|
8112
|
-
|
|
8183
|
+
__init195() {this.isDOMPortal = true}
|
|
8184
|
+
__init196() {this.domListeners = []}
|
|
8185
|
+
__init197() {this.resizeObserver = null}
|
|
8186
|
+
__init198() {this.domBound = false}
|
|
8187
|
+
__init199() {this.cachedWidth = 100}
|
|
8188
|
+
__init200() {this.cachedHeight = 100}
|
|
8189
|
+
__init201() {this.lastWidth = ""}
|
|
8190
|
+
__init202() {this.lastHeight = ""}
|
|
8191
|
+
__init203() {this.lastTransform = ""}
|
|
8192
|
+
__init204() {this.lastZIndex = ""}
|
|
8193
|
+
__init205() {this.lastOpacity = ""}
|
|
8113
8194
|
constructor(domElement, width, height, id) {
|
|
8114
|
-
super(id);_class19.prototype.
|
|
8195
|
+
super(id);_class19.prototype.__init195.call(this);_class19.prototype.__init196.call(this);_class19.prototype.__init197.call(this);_class19.prototype.__init198.call(this);_class19.prototype.__init199.call(this);_class19.prototype.__init200.call(this);_class19.prototype.__init201.call(this);_class19.prototype.__init202.call(this);_class19.prototype.__init203.call(this);_class19.prototype.__init204.call(this);_class19.prototype.__init205.call(this);;
|
|
8115
8196
|
this.domElement = domElement;
|
|
8116
8197
|
this.width = _nullishCoalesce(width, () => ( 0));
|
|
8117
8198
|
this.height = _nullishCoalesce(height, () => ( 0));
|
|
@@ -8153,7 +8234,7 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8153
8234
|
];
|
|
8154
8235
|
for (const type of events) {
|
|
8155
8236
|
const handler = (e) => {
|
|
8156
|
-
this.dispatchEvent(new (0,
|
|
8237
|
+
this.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)(type, this, e));
|
|
8157
8238
|
};
|
|
8158
8239
|
this.domElement.addEventListener(type, handler);
|
|
8159
8240
|
this.domListeners.push({ type, handler, capture: false });
|
|
@@ -8164,7 +8245,7 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8164
8245
|
];
|
|
8165
8246
|
for (const { native, vecto } of hoverEvents) {
|
|
8166
8247
|
const handler = (e) => {
|
|
8167
|
-
this.dispatchEvent(new (0,
|
|
8248
|
+
this.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)(vecto, this, e, false));
|
|
8168
8249
|
};
|
|
8169
8250
|
this.domElement.addEventListener(native, handler);
|
|
8170
8251
|
this.domListeners.push({ type: native, handler, capture: false });
|
|
@@ -8172,7 +8253,7 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8172
8253
|
const focusEvents = ["focus", "blur"];
|
|
8173
8254
|
for (const type of focusEvents) {
|
|
8174
8255
|
const handler = (e) => {
|
|
8175
|
-
this.dispatchEvent(new (0,
|
|
8256
|
+
this.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)(type, this, e, true));
|
|
8176
8257
|
};
|
|
8177
8258
|
this.domElement.addEventListener(type, handler, true);
|
|
8178
8259
|
this.domListeners.push({ type, handler, capture: true });
|
|
@@ -8223,8 +8304,8 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8223
8304
|
}, _class19);
|
|
8224
8305
|
|
|
8225
8306
|
// src/index.ts
|
|
8226
|
-
Scene.registerWebGLPointRendererCreator(
|
|
8227
|
-
Scene.registerWebGPUParticleSystemManager(
|
|
8307
|
+
Scene.registerWebGLPointRendererCreator(_chunkMO24PVGTjs.createWebGLPointRenderer);
|
|
8308
|
+
Scene.registerWebGPUParticleSystemManager(_chunkMO24PVGTjs.WebGPUParticleSystemManager);
|
|
8228
8309
|
|
|
8229
8310
|
|
|
8230
8311
|
|
|
@@ -8270,4 +8351,4 @@ Scene.registerWebGPUParticleSystemManager(_chunkM73XB4ZKjs.WebGPUParticleSystemM
|
|
|
8270
8351
|
|
|
8271
8352
|
|
|
8272
8353
|
|
|
8273
|
-
exports.CanvasRenderer =
|
|
8354
|
+
exports.CanvasRenderer = _chunkMO24PVGTjs.CanvasRenderer; exports.Circle = Circle; exports.ComputeParticleEntity = ComputeParticleEntity; exports.DEFAULT_CONTENT_SEMANTIC_BUDGET = DEFAULT_CONTENT_SEMANTIC_BUDGET; exports.DOMPortalEntity = DOMPortalEntity; exports.Entity = _chunkXHPUCU5Pjs.Entity; exports.GlyphRasterAtlas = _chunkMO24PVGTjs.GlyphRasterAtlas; exports.GridTextEntity = GridTextEntity; exports.Group = Group; exports.MSDFTextEntity = _chunkXHPUCU5Pjs.MSDFTextEntity; exports.PARTICLE_OFFSET_LIFE = PARTICLE_OFFSET_LIFE; exports.PARTICLE_OFFSET_ORIGIN_X = PARTICLE_OFFSET_ORIGIN_X; exports.PARTICLE_OFFSET_ORIGIN_Y = PARTICLE_OFFSET_ORIGIN_Y; exports.PARTICLE_OFFSET_POSITION_X = PARTICLE_OFFSET_POSITION_X; exports.PARTICLE_OFFSET_POSITION_Y = PARTICLE_OFFSET_POSITION_Y; exports.PARTICLE_OFFSET_SIZE = PARTICLE_OFFSET_SIZE; exports.PARTICLE_OFFSET_VELOCITY_X = PARTICLE_OFFSET_VELOCITY_X; exports.PARTICLE_OFFSET_VELOCITY_Y = PARTICLE_OFFSET_VELOCITY_Y; exports.PARTICLE_STRIDE_FLOATS = PARTICLE_STRIDE_FLOATS; exports.REDUCED_MOTION_FPS = REDUCED_MOTION_FPS; exports.Rect = Rect; exports.SCENE_OPTION_KEYS = SCENE_OPTION_KEYS; exports.SVGEntity = _chunkXHPUCU5Pjs.SVGEntity; exports.SVGRenderer = _chunkMO24PVGTjs.SVGRenderer; exports.Scene = Scene; exports.SplineEntity = SplineEntity; exports.TextEntity = TextEntity; exports.TextRasterCache = _chunkMO24PVGTjs.TextRasterCache; exports.VECTO_USER_TIMING = VECTO_USER_TIMING; exports.VectoJSEvent = _chunkXHPUCU5Pjs.VectoJSEvent; exports.WebGPUParticleSystemManager = _chunkMO24PVGTjs.WebGPUParticleSystemManager; exports.beginVectoUserTiming = beginVectoUserTiming; exports.contentLineInHint = _chunkXHPUCU5Pjs.contentLineInHint; exports.createWebGLPointRenderer = _chunkMO24PVGTjs.createWebGLPointRenderer; exports.endVectoUserTiming = endVectoUserTiming; exports.installRendererDevTraps = _chunkMO24PVGTjs.installRendererDevTraps; exports.isRendererDevMode = _chunkMO24PVGTjs.isRendererDevMode; exports.isSafeUrl = _chunkMO24PVGTjs.isSafeUrl; exports.loadSpline = loadSpline; exports.measureVectoUserTiming = measureVectoUserTiming; exports.parseColorToRGBA = _chunkMO24PVGTjs.parseColorToRGBA; exports.polySegmentToBezier = polySegmentToBezier; exports.sanitizeUrl = _chunkMO24PVGTjs.sanitizeUrl; exports.setRendererDevMode = _chunkMO24PVGTjs.setRendererDevMode;
|