@vectojs/core 1.35.1 → 1.35.3
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 +179 -96
- package/dist/index.mjs +126 -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;
|
|
@@ -5649,6 +5723,8 @@ var Scene = (_class15 = class _Scene {
|
|
|
5649
5723
|
el.style.padding = "0";
|
|
5650
5724
|
el.style.outline = "none";
|
|
5651
5725
|
el.style.cursor = node.a11yFullViewport ? "default" : "pointer";
|
|
5726
|
+
el.style.userSelect = "none";
|
|
5727
|
+
el.style.webkitUserSelect = "none";
|
|
5652
5728
|
if (this.debugA11y) {
|
|
5653
5729
|
el.style.backgroundColor = "rgba(56, 189, 248, 0.05)";
|
|
5654
5730
|
el.style.border = "1px dashed rgba(56, 189, 248, 0.4)";
|
|
@@ -5658,20 +5734,20 @@ var Scene = (_class15 = class _Scene {
|
|
|
5658
5734
|
el.style.background = "transparent";
|
|
5659
5735
|
}
|
|
5660
5736
|
el.addEventListener("click", (e) => {
|
|
5661
|
-
node.dispatchEvent(new (0,
|
|
5737
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("click", node, e));
|
|
5662
5738
|
});
|
|
5663
5739
|
el.addEventListener("dblclick", (e) => {
|
|
5664
|
-
node.dispatchEvent(new (0,
|
|
5740
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("dblclick", node, e));
|
|
5665
5741
|
});
|
|
5666
5742
|
el.addEventListener("mouseenter", (e) => {
|
|
5667
5743
|
if (this.debugA11y) el.style.backgroundColor = "rgba(56, 189, 248, 0.2)";
|
|
5668
5744
|
this.hoveredA11yElements.add(el);
|
|
5669
|
-
node.dispatchEvent(new (0,
|
|
5745
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("hover", node, e, false));
|
|
5670
5746
|
});
|
|
5671
5747
|
el.addEventListener("mouseleave", (e) => {
|
|
5672
5748
|
if (this.debugA11y) el.style.backgroundColor = "rgba(56, 189, 248, 0.05)";
|
|
5673
5749
|
this.hoveredA11yElements.delete(el);
|
|
5674
|
-
node.dispatchEvent(new (0,
|
|
5750
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointerleave", node, e, false));
|
|
5675
5751
|
});
|
|
5676
5752
|
const capEl = el;
|
|
5677
5753
|
const releasePointer = (event) => {
|
|
@@ -5687,24 +5763,24 @@ var Scene = (_class15 = class _Scene {
|
|
|
5687
5763
|
};
|
|
5688
5764
|
el.addEventListener("pointerdown", (e) => {
|
|
5689
5765
|
if (typeof capEl.setPointerCapture === "function") capEl.setPointerCapture(e.pointerId);
|
|
5690
|
-
node.dispatchEvent(new (0,
|
|
5766
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointerdown", node, e));
|
|
5691
5767
|
});
|
|
5692
5768
|
el.addEventListener("pointerup", (e) => {
|
|
5693
5769
|
releasePointer(e);
|
|
5694
|
-
node.dispatchEvent(new (0,
|
|
5770
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointerup", node, e));
|
|
5695
5771
|
});
|
|
5696
5772
|
el.addEventListener("pointercancel", (e) => {
|
|
5697
5773
|
releasePointer(e);
|
|
5698
|
-
node.dispatchEvent(new (0,
|
|
5774
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointercancel", node, e));
|
|
5699
5775
|
});
|
|
5700
5776
|
el.addEventListener(
|
|
5701
5777
|
"pointermove",
|
|
5702
|
-
(e) => node.dispatchEvent(new (0,
|
|
5778
|
+
(e) => node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointermove", node, e))
|
|
5703
5779
|
);
|
|
5704
5780
|
el.addEventListener(
|
|
5705
5781
|
"wheel",
|
|
5706
5782
|
(e) => {
|
|
5707
|
-
node.dispatchEvent(new (0,
|
|
5783
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("wheel", node, e));
|
|
5708
5784
|
},
|
|
5709
5785
|
{ passive: false }
|
|
5710
5786
|
);
|
|
@@ -5729,10 +5805,10 @@ var Scene = (_class15 = class _Scene {
|
|
|
5729
5805
|
);
|
|
5730
5806
|
emitInitialScroll = emitScroll;
|
|
5731
5807
|
el.addEventListener("keydown", (e) => {
|
|
5732
|
-
node.dispatchEvent(new (0,
|
|
5808
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("keydown", node, e));
|
|
5733
5809
|
});
|
|
5734
5810
|
el.addEventListener("keyup", (e) => {
|
|
5735
|
-
node.dispatchEvent(new (0,
|
|
5811
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("keyup", node, e));
|
|
5736
5812
|
});
|
|
5737
5813
|
if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {
|
|
5738
5814
|
const input = el;
|
|
@@ -5798,7 +5874,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
5798
5874
|
el.addEventListener("keydown", (e) => {
|
|
5799
5875
|
if (e.key === "Enter" || e.key === " ") {
|
|
5800
5876
|
e.preventDefault();
|
|
5801
|
-
node.dispatchEvent(new (0,
|
|
5877
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("click", node, e));
|
|
5802
5878
|
}
|
|
5803
5879
|
});
|
|
5804
5880
|
}
|
|
@@ -5836,7 +5912,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
5836
5912
|
this.syncOptionalAttribute(
|
|
5837
5913
|
el,
|
|
5838
5914
|
"href",
|
|
5839
|
-
attrs.href === void 0 ? void 0 :
|
|
5915
|
+
attrs.href === void 0 ? void 0 : _chunkMO24PVGTjs.sanitizeUrl.call(void 0, attrs.href)
|
|
5840
5916
|
);
|
|
5841
5917
|
this.syncOptionalAttribute(el, "target", attrs.target);
|
|
5842
5918
|
}
|
|
@@ -6235,7 +6311,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6235
6311
|
el.addEventListener(
|
|
6236
6312
|
"wheel",
|
|
6237
6313
|
(e2) => {
|
|
6238
|
-
node.dispatchEvent(new (0,
|
|
6314
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("wheel", node, e2));
|
|
6239
6315
|
},
|
|
6240
6316
|
{ passive: false }
|
|
6241
6317
|
);
|
|
@@ -6702,7 +6778,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6702
6778
|
const hasInteractive = this.frameHadInteractive;
|
|
6703
6779
|
const wantsContentSync = this.contentProjectionEnabled;
|
|
6704
6780
|
const shouldSyncInterval = this.a11ySyncInterval <= 0 || time - this.lastA11ySync >= this.a11ySyncInterval;
|
|
6705
|
-
if ((hasInteractive || this.a11yElements.size > 0 || wantsContentSync) && (shouldSyncInterval || this.a11yPendingSyncAfterAnimation)) {
|
|
6781
|
+
if ((hasInteractive || this.a11yElements.size > 0 || wantsContentSync) && (shouldSyncInterval || !hasActiveAnimation && this.a11yPendingSyncAfterAnimation)) {
|
|
6706
6782
|
this.lastA11ySync = time;
|
|
6707
6783
|
if (hasInteractive || wantsContentSync) {
|
|
6708
6784
|
const userTiming = this.phases.userTiming ? beginVectoUserTiming(VECTO_USER_TIMING.scene.a11ySync) : null;
|
|
@@ -6904,7 +6980,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6904
6980
|
let walkHadAnimation = false;
|
|
6905
6981
|
let walkHadInteractive = false;
|
|
6906
6982
|
const runUpdate = (node) => {
|
|
6907
|
-
const overridesUpdate = node.update !==
|
|
6983
|
+
const overridesUpdate = node.update !== _chunkXHPUCU5Pjs.Entity.prototype.update;
|
|
6908
6984
|
let pending = node.hasPendingAnimations();
|
|
6909
6985
|
if (pending || overridesUpdate) {
|
|
6910
6986
|
node.update(dt, time);
|
|
@@ -6913,7 +6989,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6913
6989
|
if (pending) walkHadAnimation = true;
|
|
6914
6990
|
if (!walkHadInteractive && node.interactive) walkHadInteractive = true;
|
|
6915
6991
|
if (this._devActive && this._devFrameCount % 120 === 0) {
|
|
6916
|
-
if (overridesUpdate && node.hasPendingAnimations ===
|
|
6992
|
+
if (overridesUpdate && node.hasPendingAnimations === _chunkXHPUCU5Pjs.Entity.prototype.hasPendingAnimations) {
|
|
6917
6993
|
this._devWarn(
|
|
6918
6994
|
`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
6995
|
);
|
|
@@ -7126,7 +7202,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
7126
7202
|
* Export the current scene state to a lightweight, flat SVG XML string.
|
|
7127
7203
|
*/
|
|
7128
7204
|
toSVG() {
|
|
7129
|
-
const renderer = new (0,
|
|
7205
|
+
const renderer = new (0, _chunkMO24PVGTjs.SVGRenderer)(this.width, this.height);
|
|
7130
7206
|
this.render(renderer, 0, 0);
|
|
7131
7207
|
return renderer.toXMLString();
|
|
7132
7208
|
}
|
|
@@ -7339,7 +7415,7 @@ function defaultMeasurer() {
|
|
|
7339
7415
|
sharedMeasurer ??= _layout.resolveGlyphMeasurer.call(void 0, "sans-serif");
|
|
7340
7416
|
return sharedMeasurer;
|
|
7341
7417
|
}
|
|
7342
|
-
var TextEntity = (_class16 = class extends
|
|
7418
|
+
var TextEntity = (_class16 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7343
7419
|
|
|
7344
7420
|
|
|
7345
7421
|
|
|
@@ -7543,7 +7619,7 @@ var TextEntity = (_class16 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7543
7619
|
}, _class16);
|
|
7544
7620
|
|
|
7545
7621
|
// src/components/GridTextEntity.ts
|
|
7546
|
-
var GridTextEntity = (_class17 = class extends
|
|
7622
|
+
var GridTextEntity = (_class17 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7547
7623
|
|
|
7548
7624
|
__init184() {this.fillStyle = "#ffffff"}
|
|
7549
7625
|
__init185() {this.grid = []}
|
|
@@ -7562,7 +7638,7 @@ var GridTextEntity = (_class17 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7562
7638
|
updateGrid(ascii) {
|
|
7563
7639
|
this.grid = ascii;
|
|
7564
7640
|
this.rows = ascii.length;
|
|
7565
|
-
this.cols =
|
|
7641
|
+
this.cols = ascii.reduce((widest, row) => Math.max(widest, _nullishCoalesce(_optionalChain([row, 'optionalAccess', _187 => _187.length]), () => ( 0))), 0);
|
|
7566
7642
|
}
|
|
7567
7643
|
isPointInside(_globalX, _globalY) {
|
|
7568
7644
|
return false;
|
|
@@ -7637,7 +7713,7 @@ function distSqToSegment(px, py, x1, y1, x2, y2) {
|
|
|
7637
7713
|
const ey = py - cy;
|
|
7638
7714
|
return ex * ex + ey * ey;
|
|
7639
7715
|
}
|
|
7640
|
-
var SplineEntity = (_class18 = class extends
|
|
7716
|
+
var SplineEntity = (_class18 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7641
7717
|
|
|
7642
7718
|
|
|
7643
7719
|
|
|
@@ -7650,6 +7726,12 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7650
7726
|
/** Logical (CSS-pixel) size of the baked bitmap — the blit destination size. */
|
|
7651
7727
|
__init190() {this.bakedWidth = 0}
|
|
7652
7728
|
__init191() {this.bakedHeight = 0}
|
|
7729
|
+
/**
|
|
7730
|
+
* Device-pixel ratio the bitmap was rasterized at. Tracked so a DPR change
|
|
7731
|
+
* (browser zoom, a monitor move, a renderer whose clamp changed) re-bakes
|
|
7732
|
+
* instead of blitting a bitmap at the wrong device density forever.
|
|
7733
|
+
*/
|
|
7734
|
+
__init192() {this.bakedDPR = 0}
|
|
7653
7735
|
/**
|
|
7654
7736
|
* Gradient strokes can't be baked to a solid-color bitmap; they render
|
|
7655
7737
|
* per-frame. Derived from `_doc`, so it is NOT readonly — assigning a new
|
|
@@ -7657,7 +7739,7 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7657
7739
|
*/
|
|
7658
7740
|
|
|
7659
7741
|
/** Lazily-flattened polylines (one Float32Array of [x,y,...] per segment) for hit-testing. */
|
|
7660
|
-
|
|
7742
|
+
__init193() {this.polylines = null}
|
|
7661
7743
|
/**
|
|
7662
7744
|
* The spline document to render. Assigning a new document invalidates all
|
|
7663
7745
|
* caches (baked canvas, flattened polylines, bounds).
|
|
@@ -7691,9 +7773,9 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7691
7773
|
* local bounds after painting the curves. Useful for drag feedback and
|
|
7692
7774
|
* debugging hit areas. Defaults to `false`.
|
|
7693
7775
|
*/
|
|
7694
|
-
|
|
7776
|
+
__init194() {this.showBounds = false}
|
|
7695
7777
|
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);;
|
|
7778
|
+
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
7779
|
this._doc = doc;
|
|
7698
7780
|
this._lineWidth = _nullishCoalesce(opts.lineWidth, () => ( 2));
|
|
7699
7781
|
this.cache = _nullishCoalesce(opts.cache, () => ( true));
|
|
@@ -7713,7 +7795,7 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7713
7795
|
*/
|
|
7714
7796
|
computeContainsGradient() {
|
|
7715
7797
|
const isGradient = (c) => c !== null && !Array.isArray(c);
|
|
7716
|
-
return (_nullishCoalesce(_optionalChain([this, 'access',
|
|
7798
|
+
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
7799
|
}
|
|
7718
7800
|
/** Clear cached baked canvas and hit-test polylines. */
|
|
7719
7801
|
invalidateCache() {
|
|
@@ -7873,14 +7955,14 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7873
7955
|
}
|
|
7874
7956
|
}
|
|
7875
7957
|
/** Bake all equations into an OffscreenCanvas once (when available). */
|
|
7876
|
-
bake() {
|
|
7958
|
+
bake(dpr) {
|
|
7877
7959
|
this.baked = true;
|
|
7878
7960
|
const pad = this.lineWidth + 2;
|
|
7879
7961
|
const w = Math.max(1, Math.ceil(this.bounds.width) + pad * 2);
|
|
7880
7962
|
const h = Math.max(1, Math.ceil(this.bounds.height) + pad * 2);
|
|
7881
7963
|
this.bakedWidth = w;
|
|
7882
7964
|
this.bakedHeight = h;
|
|
7883
|
-
|
|
7965
|
+
this.bakedDPR = dpr;
|
|
7884
7966
|
let canvas;
|
|
7885
7967
|
if (typeof OffscreenCanvas !== "undefined") {
|
|
7886
7968
|
canvas = new OffscreenCanvas(w * dpr, h * dpr);
|
|
@@ -7928,7 +8010,8 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7928
8010
|
render(r) {
|
|
7929
8011
|
let rendered = false;
|
|
7930
8012
|
if (this.cache && !this.containsGradient) {
|
|
7931
|
-
|
|
8013
|
+
const dpr = typeof r.pixelRatio === "number" && r.pixelRatio > 0 ? r.pixelRatio : typeof window !== "undefined" && typeof window.devicePixelRatio === "number" ? window.devicePixelRatio || 1 : 1;
|
|
8014
|
+
if (!this.baked || this.bakedDPR !== dpr) this.bake(dpr);
|
|
7932
8015
|
if (this.offscreen) {
|
|
7933
8016
|
const pad = this.lineWidth + 2;
|
|
7934
8017
|
r.drawImage(
|
|
@@ -7958,7 +8041,7 @@ async function loadSpline(url) {
|
|
|
7958
8041
|
}
|
|
7959
8042
|
|
|
7960
8043
|
// src/components/Rect.ts
|
|
7961
|
-
var Rect = class extends
|
|
8044
|
+
var Rect = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7962
8045
|
|
|
7963
8046
|
|
|
7964
8047
|
|
|
@@ -8014,7 +8097,7 @@ var Rect = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8014
8097
|
};
|
|
8015
8098
|
|
|
8016
8099
|
// src/components/Circle.ts
|
|
8017
|
-
var Circle = class extends
|
|
8100
|
+
var Circle = class extends _chunkXHPUCU5Pjs.Entity {
|
|
8018
8101
|
|
|
8019
8102
|
|
|
8020
8103
|
|
|
@@ -8078,7 +8161,7 @@ var Circle = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8078
8161
|
};
|
|
8079
8162
|
|
|
8080
8163
|
// src/components/Group.ts
|
|
8081
|
-
var Group = class extends
|
|
8164
|
+
var Group = class extends _chunkXHPUCU5Pjs.Entity {
|
|
8082
8165
|
constructor(...children) {
|
|
8083
8166
|
super();
|
|
8084
8167
|
if (children.length > 0) this.add(...children);
|
|
@@ -8097,21 +8180,21 @@ var _math = require('@vectojs/math'); _createStarExport(_math);
|
|
|
8097
8180
|
|
|
8098
8181
|
|
|
8099
8182
|
// src/tree/DOMPortalEntity.ts
|
|
8100
|
-
var DOMPortalEntity = (_class19 = class extends
|
|
8183
|
+
var DOMPortalEntity = (_class19 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
8101
8184
|
|
|
8102
|
-
|
|
8103
|
-
|
|
8104
|
-
|
|
8105
|
-
|
|
8106
|
-
|
|
8107
|
-
|
|
8108
|
-
|
|
8109
|
-
|
|
8110
|
-
|
|
8111
|
-
|
|
8112
|
-
|
|
8185
|
+
__init195() {this.isDOMPortal = true}
|
|
8186
|
+
__init196() {this.domListeners = []}
|
|
8187
|
+
__init197() {this.resizeObserver = null}
|
|
8188
|
+
__init198() {this.domBound = false}
|
|
8189
|
+
__init199() {this.cachedWidth = 100}
|
|
8190
|
+
__init200() {this.cachedHeight = 100}
|
|
8191
|
+
__init201() {this.lastWidth = ""}
|
|
8192
|
+
__init202() {this.lastHeight = ""}
|
|
8193
|
+
__init203() {this.lastTransform = ""}
|
|
8194
|
+
__init204() {this.lastZIndex = ""}
|
|
8195
|
+
__init205() {this.lastOpacity = ""}
|
|
8113
8196
|
constructor(domElement, width, height, id) {
|
|
8114
|
-
super(id);_class19.prototype.
|
|
8197
|
+
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
8198
|
this.domElement = domElement;
|
|
8116
8199
|
this.width = _nullishCoalesce(width, () => ( 0));
|
|
8117
8200
|
this.height = _nullishCoalesce(height, () => ( 0));
|
|
@@ -8153,7 +8236,7 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8153
8236
|
];
|
|
8154
8237
|
for (const type of events) {
|
|
8155
8238
|
const handler = (e) => {
|
|
8156
|
-
this.dispatchEvent(new (0,
|
|
8239
|
+
this.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)(type, this, e));
|
|
8157
8240
|
};
|
|
8158
8241
|
this.domElement.addEventListener(type, handler);
|
|
8159
8242
|
this.domListeners.push({ type, handler, capture: false });
|
|
@@ -8164,7 +8247,7 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8164
8247
|
];
|
|
8165
8248
|
for (const { native, vecto } of hoverEvents) {
|
|
8166
8249
|
const handler = (e) => {
|
|
8167
|
-
this.dispatchEvent(new (0,
|
|
8250
|
+
this.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)(vecto, this, e, false));
|
|
8168
8251
|
};
|
|
8169
8252
|
this.domElement.addEventListener(native, handler);
|
|
8170
8253
|
this.domListeners.push({ type: native, handler, capture: false });
|
|
@@ -8172,7 +8255,7 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8172
8255
|
const focusEvents = ["focus", "blur"];
|
|
8173
8256
|
for (const type of focusEvents) {
|
|
8174
8257
|
const handler = (e) => {
|
|
8175
|
-
this.dispatchEvent(new (0,
|
|
8258
|
+
this.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)(type, this, e, true));
|
|
8176
8259
|
};
|
|
8177
8260
|
this.domElement.addEventListener(type, handler, true);
|
|
8178
8261
|
this.domListeners.push({ type, handler, capture: true });
|
|
@@ -8223,8 +8306,8 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8223
8306
|
}, _class19);
|
|
8224
8307
|
|
|
8225
8308
|
// src/index.ts
|
|
8226
|
-
Scene.registerWebGLPointRendererCreator(
|
|
8227
|
-
Scene.registerWebGPUParticleSystemManager(
|
|
8309
|
+
Scene.registerWebGLPointRendererCreator(_chunkMO24PVGTjs.createWebGLPointRenderer);
|
|
8310
|
+
Scene.registerWebGPUParticleSystemManager(_chunkMO24PVGTjs.WebGPUParticleSystemManager);
|
|
8228
8311
|
|
|
8229
8312
|
|
|
8230
8313
|
|
|
@@ -8270,4 +8353,4 @@ Scene.registerWebGPUParticleSystemManager(_chunkM73XB4ZKjs.WebGPUParticleSystemM
|
|
|
8270
8353
|
|
|
8271
8354
|
|
|
8272
8355
|
|
|
8273
|
-
exports.CanvasRenderer =
|
|
8356
|
+
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;
|