@meursyphus/flitter 0.0.7 → 0.0.9
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/index.cjs → index.cjs} +291 -173
- package/{dist/index.d.cts → index.d.cts} +150 -36
- package/{dist/index.d.ts → index.d.ts} +150 -36
- package/{dist/index.global.js → index.global.js} +296 -178
- package/{dist/index.js → index.js} +291 -173
- package/package.json +8 -3
- package/.eslintrc.cjs +0 -35
- package/.prettierrc +0 -9
- package/dist/README.md +0 -73
- package/dist/package.json +0 -61
- package/tsconfig.json +0 -18
- package/tsup.config.ts +0 -10
|
@@ -414,18 +414,6 @@ function createUniqueId() {
|
|
|
414
414
|
return (id++).toString();
|
|
415
415
|
}
|
|
416
416
|
|
|
417
|
-
// src/utils/TypedObject.ts
|
|
418
|
-
function entries(obj) {
|
|
419
|
-
return Object.entries(obj);
|
|
420
|
-
}
|
|
421
|
-
function keys(obj) {
|
|
422
|
-
return Object.keys(obj);
|
|
423
|
-
}
|
|
424
|
-
var TypedObject_default = {
|
|
425
|
-
entries,
|
|
426
|
-
keys
|
|
427
|
-
};
|
|
428
|
-
|
|
429
417
|
// src/utils/index.ts
|
|
430
418
|
var _Utils = class _Utils {
|
|
431
419
|
static sum(values) {
|
|
@@ -11960,6 +11948,14 @@ var ToolTipPosition = /* @__PURE__ */ ((ToolTipPosition2) => {
|
|
|
11960
11948
|
return ToolTipPosition2;
|
|
11961
11949
|
})(ToolTipPosition || {});
|
|
11962
11950
|
|
|
11951
|
+
// src/exception/index.ts
|
|
11952
|
+
var NotImplementedError = class extends Error {
|
|
11953
|
+
constructor(method) {
|
|
11954
|
+
super(`${method} is not implemented`);
|
|
11955
|
+
this.name = "NotImplementedError";
|
|
11956
|
+
}
|
|
11957
|
+
};
|
|
11958
|
+
|
|
11963
11959
|
// src/renderobject/RenderObject.ts
|
|
11964
11960
|
var _domNode, _domOrder, _domOrderChanged;
|
|
11965
11961
|
var RenderObject = class {
|
|
@@ -11996,8 +11992,11 @@ var RenderObject = class {
|
|
|
11996
11992
|
set domOrder(newOrder) {
|
|
11997
11993
|
if (newOrder === __privateGet(this, _domOrder))
|
|
11998
11994
|
return;
|
|
11999
|
-
__privateSet(this, _domOrderChanged, true);
|
|
12000
11995
|
__privateSet(this, _domOrder, newOrder);
|
|
11996
|
+
this.didDomOrderChange();
|
|
11997
|
+
}
|
|
11998
|
+
didDomOrderChange() {
|
|
11999
|
+
__privateSet(this, _domOrderChanged, true);
|
|
12001
12000
|
}
|
|
12002
12001
|
get domNode() {
|
|
12003
12002
|
assert(__privateGet(this, _domNode) != null, "domNode is not initialized");
|
|
@@ -12091,7 +12090,7 @@ var RenderObject = class {
|
|
|
12091
12090
|
this.ownerElement = ownerElement;
|
|
12092
12091
|
this.depth = ownerElement.depth;
|
|
12093
12092
|
if (this.isPainter) {
|
|
12094
|
-
this.mountSvgEl(this.renderOwner.paintContext);
|
|
12093
|
+
this.mountSvgEl(this.renderOwner.renderContext.paintContext);
|
|
12095
12094
|
this.renderOwner.didDomOrderChange();
|
|
12096
12095
|
}
|
|
12097
12096
|
}
|
|
@@ -12125,8 +12124,8 @@ var RenderObject = class {
|
|
|
12125
12124
|
resolveSvgEl() {
|
|
12126
12125
|
const container = this.domNode;
|
|
12127
12126
|
const svgEls = {};
|
|
12128
|
-
for (
|
|
12129
|
-
const child =
|
|
12127
|
+
for (const element of container.children) {
|
|
12128
|
+
const child = element;
|
|
12130
12129
|
const name = child.getAttribute("data-render-name");
|
|
12131
12130
|
svgEls[name] = child;
|
|
12132
12131
|
}
|
|
@@ -12135,7 +12134,10 @@ var RenderObject = class {
|
|
|
12135
12134
|
rearrangeDomOrder() {
|
|
12136
12135
|
if (!__privateGet(this, _domOrderChanged))
|
|
12137
12136
|
return;
|
|
12138
|
-
this.isPainter && this.renderOwner.paintContext.insertSvgEl(
|
|
12137
|
+
this.isPainter && this.renderOwner.renderContext.paintContext.insertSvgEl(
|
|
12138
|
+
this.domNode,
|
|
12139
|
+
this.domOrder
|
|
12140
|
+
);
|
|
12139
12141
|
__privateSet(this, _domOrderChanged, false);
|
|
12140
12142
|
}
|
|
12141
12143
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -12147,7 +12149,7 @@ var RenderObject = class {
|
|
|
12147
12149
|
*/
|
|
12148
12150
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
12149
12151
|
preformLayout() {
|
|
12150
|
-
throw
|
|
12152
|
+
throw new NotImplementedError("performLayout");
|
|
12151
12153
|
}
|
|
12152
12154
|
/*
|
|
12153
12155
|
* Do not call this method directly. instead call paint
|
|
@@ -12196,12 +12198,22 @@ var RenderObject = class {
|
|
|
12196
12198
|
});
|
|
12197
12199
|
}
|
|
12198
12200
|
/**
|
|
12199
|
-
*
|
|
12200
12201
|
* It is currently only used on ZIndexRenderObject
|
|
12201
12202
|
*/
|
|
12202
12203
|
accept(visitor) {
|
|
12203
12204
|
visitor.visitGeneral(this);
|
|
12204
12205
|
}
|
|
12206
|
+
hitTest({ globalPoint }) {
|
|
12207
|
+
const viewPort = this.renderOwner.renderContext.viewPort;
|
|
12208
|
+
const { translation, scale } = viewPort;
|
|
12209
|
+
const bounds = {
|
|
12210
|
+
left: (this.matrix.storage[12] + translation.x) * scale,
|
|
12211
|
+
top: (this.matrix.storage[13] + translation.y) * scale,
|
|
12212
|
+
right: (this.matrix.storage[12] + translation.x + this.size.width) * scale,
|
|
12213
|
+
bottom: (this.matrix.storage[13] + translation.y + this.size.height) * scale
|
|
12214
|
+
};
|
|
12215
|
+
return globalPoint.x >= bounds.left && globalPoint.x <= bounds.right && globalPoint.y >= bounds.top && globalPoint.y <= bounds.bottom;
|
|
12216
|
+
}
|
|
12205
12217
|
};
|
|
12206
12218
|
_domNode = new WeakMap();
|
|
12207
12219
|
_domOrder = new WeakMap();
|
|
@@ -12427,7 +12439,7 @@ var RenderObjectElement = class extends Element_default {
|
|
|
12427
12439
|
}
|
|
12428
12440
|
findAncestorRenderObjectElement() {
|
|
12429
12441
|
let ancestor = this.parent;
|
|
12430
|
-
while (ancestor != null &&
|
|
12442
|
+
while (ancestor != null && ancestor.type !== "render") {
|
|
12431
12443
|
ancestor = ancestor.parent;
|
|
12432
12444
|
}
|
|
12433
12445
|
return ancestor;
|
|
@@ -12461,7 +12473,6 @@ var RenderObjectToWidgetAdapter = class extends RenderObjectWidget_default {
|
|
|
12461
12473
|
app,
|
|
12462
12474
|
renderOwner,
|
|
12463
12475
|
buildOwner,
|
|
12464
|
-
renderContext,
|
|
12465
12476
|
scheduler
|
|
12466
12477
|
}) {
|
|
12467
12478
|
super({ children: [app] });
|
|
@@ -12471,7 +12482,7 @@ var RenderObjectToWidgetAdapter = class extends RenderObjectWidget_default {
|
|
|
12471
12482
|
__publicField(this, "scheduler");
|
|
12472
12483
|
this.renderOwner = renderOwner;
|
|
12473
12484
|
this.buildOwner = buildOwner;
|
|
12474
|
-
this.renderContext = renderContext;
|
|
12485
|
+
this.renderContext = renderOwner.renderContext;
|
|
12475
12486
|
this.scheduler = scheduler;
|
|
12476
12487
|
}
|
|
12477
12488
|
createElement() {
|
|
@@ -12484,8 +12495,8 @@ var RenderObjectToWidgetAdapter = class extends RenderObjectWidget_default {
|
|
|
12484
12495
|
createRenderObject() {
|
|
12485
12496
|
return new RenderView_default({ renderOwner: this.renderOwner });
|
|
12486
12497
|
}
|
|
12487
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
12488
12498
|
updateRenderObject(renderObject) {
|
|
12499
|
+
renderObject.renderOwner = this.renderOwner;
|
|
12489
12500
|
}
|
|
12490
12501
|
};
|
|
12491
12502
|
var RenderObjectToWidgetAdapter_default = RenderObjectToWidgetAdapter;
|
|
@@ -12529,9 +12540,11 @@ var BuildOwner_default = BuildOwner;
|
|
|
12529
12540
|
var RenderOwner = class {
|
|
12530
12541
|
constructor({
|
|
12531
12542
|
onNeedVisualUpdate,
|
|
12532
|
-
|
|
12543
|
+
renderContext,
|
|
12544
|
+
hitTestDispatcher
|
|
12533
12545
|
}) {
|
|
12534
|
-
__publicField(this, "
|
|
12546
|
+
__publicField(this, "hitTestDispatcher");
|
|
12547
|
+
__publicField(this, "renderContext");
|
|
12535
12548
|
__publicField(this, "onNeedVisualUpdate");
|
|
12536
12549
|
__publicField(this, "needsPaintRenderObjects", []);
|
|
12537
12550
|
__publicField(this, "needsLayoutRenderObjects", []);
|
|
@@ -12541,7 +12554,9 @@ var RenderOwner = class {
|
|
|
12541
12554
|
__publicField(this, "renderView");
|
|
12542
12555
|
__publicField(this, "domOrderChanged", true);
|
|
12543
12556
|
this.onNeedVisualUpdate = onNeedVisualUpdate;
|
|
12544
|
-
this.
|
|
12557
|
+
this.renderContext = renderContext;
|
|
12558
|
+
this.hitTestDispatcher = hitTestDispatcher;
|
|
12559
|
+
this.hitTestDispatcher.init({ renderContext: this.renderContext });
|
|
12545
12560
|
}
|
|
12546
12561
|
requestVisualUpdate() {
|
|
12547
12562
|
this.onNeedVisualUpdate();
|
|
@@ -12582,7 +12597,7 @@ var RenderOwner = class {
|
|
|
12582
12597
|
dirties.sort((a, b) => a.depth - b.depth).forEach((renderObject) => {
|
|
12583
12598
|
if (!renderObject.needsPaint)
|
|
12584
12599
|
return;
|
|
12585
|
-
renderObject.paintWithoutLayout(this.paintContext);
|
|
12600
|
+
renderObject.paintWithoutLayout(this.renderContext.paintContext);
|
|
12586
12601
|
});
|
|
12587
12602
|
}
|
|
12588
12603
|
};
|
|
@@ -12660,39 +12675,58 @@ var RenderOwner_default = RenderOwner;
|
|
|
12660
12675
|
|
|
12661
12676
|
// src/scheduler/Scheduler.ts
|
|
12662
12677
|
var Scheduler = class {
|
|
12663
|
-
constructor(
|
|
12678
|
+
constructor({
|
|
12679
|
+
renderFrameDispatcher
|
|
12680
|
+
}) {
|
|
12664
12681
|
__publicField(this, "phase");
|
|
12665
12682
|
__publicField(this, "persistenceCallbacks");
|
|
12666
12683
|
__publicField(this, "postFrameCallbacks");
|
|
12684
|
+
__publicField(this, "renderFrameDispatcher");
|
|
12685
|
+
__publicField(this, "hasScheduledFrame", false);
|
|
12667
12686
|
this.phase = 0 /* idle */;
|
|
12668
12687
|
this.persistenceCallbacks = [];
|
|
12669
12688
|
this.postFrameCallbacks = [];
|
|
12689
|
+
this.renderFrameDispatcher = renderFrameDispatcher;
|
|
12690
|
+
renderFrameDispatcher.setOnFrame(() => this.handleDrawFrame());
|
|
12670
12691
|
}
|
|
12671
|
-
|
|
12692
|
+
flushPostCallbacks() {
|
|
12672
12693
|
this.postFrameCallbacks.forEach((callback) => {
|
|
12673
12694
|
callback();
|
|
12674
12695
|
});
|
|
12675
12696
|
this.postFrameCallbacks = [];
|
|
12676
12697
|
}
|
|
12677
|
-
|
|
12698
|
+
ensureVisualUpdate() {
|
|
12678
12699
|
switch (this.phase) {
|
|
12679
12700
|
case 0 /* idle */:
|
|
12680
12701
|
case 2 /* postFrameCallbacks */:
|
|
12681
|
-
this.
|
|
12702
|
+
this.schedule();
|
|
12682
12703
|
break;
|
|
12683
12704
|
case 1 /* persistenceCallbacks */:
|
|
12684
12705
|
break;
|
|
12685
12706
|
}
|
|
12686
12707
|
}
|
|
12687
|
-
|
|
12708
|
+
schedule() {
|
|
12709
|
+
if (this.hasScheduledFrame)
|
|
12710
|
+
return;
|
|
12711
|
+
this.renderFrameDispatcher.dispatch();
|
|
12712
|
+
this.hasScheduledFrame = true;
|
|
12713
|
+
}
|
|
12714
|
+
handleDrawFrame() {
|
|
12715
|
+
assert(
|
|
12716
|
+
this.phase === 0 /* idle */,
|
|
12717
|
+
"Scheduler should be idle on beginning frame"
|
|
12718
|
+
);
|
|
12719
|
+
this.hasScheduledFrame = false;
|
|
12688
12720
|
this.phase = 1 /* persistenceCallbacks */;
|
|
12721
|
+
this.flushPersistenceCallbacks();
|
|
12722
|
+
this.phase = 2 /* postFrameCallbacks */;
|
|
12723
|
+
this.flushPostCallbacks();
|
|
12724
|
+
this.phase = 0 /* idle */;
|
|
12725
|
+
}
|
|
12726
|
+
flushPersistenceCallbacks() {
|
|
12689
12727
|
this.persistenceCallbacks.forEach((callback) => {
|
|
12690
12728
|
callback();
|
|
12691
12729
|
});
|
|
12692
|
-
this.phase = 2 /* postFrameCallbacks */;
|
|
12693
|
-
this.consumePostCallbacks();
|
|
12694
|
-
this.postFrameCallbacks = [];
|
|
12695
|
-
this.phase = 0 /* idle */;
|
|
12696
12730
|
}
|
|
12697
12731
|
addPersistenceCallbacks(callback) {
|
|
12698
12732
|
this.persistenceCallbacks.push(() => callback());
|
|
@@ -12707,9 +12741,6 @@ var Scheduler_default = Scheduler;
|
|
|
12707
12741
|
var RenderFrameDispatcher = class {
|
|
12708
12742
|
constructor({ onFrame } = {}) {
|
|
12709
12743
|
__publicField(this, "onFrame");
|
|
12710
|
-
// Actually we don't need to invoke browser to render because browser automatically render its own state periodically
|
|
12711
|
-
// so Here we just call onFrame callback.
|
|
12712
|
-
__publicField(this, "idle", true);
|
|
12713
12744
|
this.onFrame = onFrame;
|
|
12714
12745
|
}
|
|
12715
12746
|
setOnFrame(callback) {
|
|
@@ -12718,13 +12749,9 @@ var RenderFrameDispatcher = class {
|
|
|
12718
12749
|
dispatch() {
|
|
12719
12750
|
if (typeof window === "undefined")
|
|
12720
12751
|
return;
|
|
12721
|
-
if (!this.idle)
|
|
12722
|
-
return;
|
|
12723
|
-
this.idle = false;
|
|
12724
12752
|
window.requestAnimationFrame(() => {
|
|
12725
12753
|
var _a;
|
|
12726
12754
|
(_a = this.onFrame) == null ? void 0 : _a.call(this);
|
|
12727
|
-
this.idle = true;
|
|
12728
12755
|
});
|
|
12729
12756
|
}
|
|
12730
12757
|
};
|
|
@@ -12746,6 +12773,154 @@ var GlobalKey = class {
|
|
|
12746
12773
|
};
|
|
12747
12774
|
var Globalkey_default = GlobalKey;
|
|
12748
12775
|
|
|
12776
|
+
// src/hit-test/HitTestDispatcher.ts
|
|
12777
|
+
var _activated, _detectors, _rootPosition, _renderContext, _hitPosition, _handleMouseDown, _handleClick, _hitHistory, _handleMouseMove, _handleMouseUp, _handleMouseWheel, _handleMouseEnter, _handleMouseLeave, _wrapEvent, _didDomOrderChangeState;
|
|
12778
|
+
var HitTestDispatcher = class {
|
|
12779
|
+
constructor() {
|
|
12780
|
+
__privateAdd(this, _activated, typeof window !== "undefined");
|
|
12781
|
+
__privateAdd(this, _detectors, []);
|
|
12782
|
+
__privateAdd(this, _rootPosition, null);
|
|
12783
|
+
__privateAdd(this, _renderContext, void 0);
|
|
12784
|
+
__privateAdd(this, _hitPosition, new offset_default({ x: 0, y: 0 }));
|
|
12785
|
+
__privateAdd(this, _handleMouseDown, (e) => {
|
|
12786
|
+
this.hitTest(e, "onMouseDown");
|
|
12787
|
+
});
|
|
12788
|
+
__privateAdd(this, _handleClick, (e) => {
|
|
12789
|
+
this.hitTest(e, "onClick");
|
|
12790
|
+
});
|
|
12791
|
+
__privateAdd(this, _hitHistory, []);
|
|
12792
|
+
__privateAdd(this, _handleMouseMove, (e) => {
|
|
12793
|
+
this.traceHitPosition(e);
|
|
12794
|
+
this.hitTest(e, "onMouseMove");
|
|
12795
|
+
e.isPropagationStopped = false;
|
|
12796
|
+
for (const i in __privateGet(this, _detectors)) {
|
|
12797
|
+
const detector = __privateGet(this, _detectors)[i];
|
|
12798
|
+
if (e.isPropagationStopped)
|
|
12799
|
+
return;
|
|
12800
|
+
if (!__privateGet(this, _hitHistory)[i] && detector.hitTest({ globalPoint: __privateGet(this, _hitPosition) })) {
|
|
12801
|
+
detector.onMouseEnter(e);
|
|
12802
|
+
}
|
|
12803
|
+
}
|
|
12804
|
+
e.isPropagationStopped = false;
|
|
12805
|
+
for (const i in __privateGet(this, _detectors)) {
|
|
12806
|
+
const detector = __privateGet(this, _detectors)[i];
|
|
12807
|
+
if (e.isPropagationStopped)
|
|
12808
|
+
return;
|
|
12809
|
+
if (__privateGet(this, _hitHistory)[i] && !detector.hitTest({ globalPoint: __privateGet(this, _hitPosition) })) {
|
|
12810
|
+
detector.onMouseLeave(e);
|
|
12811
|
+
}
|
|
12812
|
+
}
|
|
12813
|
+
__privateGet(this, _detectors).forEach((detector, i) => {
|
|
12814
|
+
__privateGet(this, _hitHistory)[i] = detector.hitTest({
|
|
12815
|
+
globalPoint: __privateGet(this, _hitPosition)
|
|
12816
|
+
});
|
|
12817
|
+
});
|
|
12818
|
+
});
|
|
12819
|
+
__privateAdd(this, _handleMouseUp, (e) => {
|
|
12820
|
+
this.hitTest(e, "onMouseUp");
|
|
12821
|
+
});
|
|
12822
|
+
__privateAdd(this, _handleMouseWheel, (e) => {
|
|
12823
|
+
this.hitTest(e, "onMouseWheel");
|
|
12824
|
+
e.isPropagationStopped = false;
|
|
12825
|
+
for (const detector of __privateGet(this, _detectors)) {
|
|
12826
|
+
if (e.isPropagationStopped)
|
|
12827
|
+
return;
|
|
12828
|
+
if (!detector.hitTest({ globalPoint: __privateGet(this, _hitPosition) }))
|
|
12829
|
+
continue;
|
|
12830
|
+
detector.onMouseEnter(e);
|
|
12831
|
+
}
|
|
12832
|
+
e.isPropagationStopped = false;
|
|
12833
|
+
});
|
|
12834
|
+
__privateAdd(this, _handleMouseEnter, () => {
|
|
12835
|
+
const rect = __privateGet(this, _renderContext).view.getBoundingClientRect();
|
|
12836
|
+
__privateSet(this, _rootPosition, new offset_default({
|
|
12837
|
+
x: rect.left,
|
|
12838
|
+
y: rect.top
|
|
12839
|
+
}));
|
|
12840
|
+
});
|
|
12841
|
+
__privateAdd(this, _handleMouseLeave, () => {
|
|
12842
|
+
__privateSet(this, _rootPosition, null);
|
|
12843
|
+
});
|
|
12844
|
+
__publicField(this, "hitTest", (e, type) => {
|
|
12845
|
+
for (const detector of __privateGet(this, _detectors)) {
|
|
12846
|
+
if (e.isPropagationStopped)
|
|
12847
|
+
return;
|
|
12848
|
+
if (!detector.hitTest({ globalPoint: __privateGet(this, _hitPosition) }))
|
|
12849
|
+
continue;
|
|
12850
|
+
detector[type](e);
|
|
12851
|
+
}
|
|
12852
|
+
});
|
|
12853
|
+
__privateAdd(this, _wrapEvent, (callback) => (e) => {
|
|
12854
|
+
const stopPropagation = e.stopPropagation;
|
|
12855
|
+
e.stopPropagation = function() {
|
|
12856
|
+
e.isPropagationStopped = true;
|
|
12857
|
+
stopPropagation.call(e);
|
|
12858
|
+
};
|
|
12859
|
+
return callback(e);
|
|
12860
|
+
});
|
|
12861
|
+
/**
|
|
12862
|
+
* This code is for batch processing. The intention is not to perform the sorting operation every time this method is called,
|
|
12863
|
+
* but rather to ensure that the sorting happens only once in a batch manner. This is achieved by wrapping the sorting logic
|
|
12864
|
+
* inside a setTimeout, which defers the execution until the current call stack is clear, effectively coalescing multiple calls
|
|
12865
|
+
* into a single operation.
|
|
12866
|
+
*/
|
|
12867
|
+
__privateAdd(this, _didDomOrderChangeState, "idle");
|
|
12868
|
+
}
|
|
12869
|
+
init({ renderContext }) {
|
|
12870
|
+
if (!__privateGet(this, _activated))
|
|
12871
|
+
return;
|
|
12872
|
+
__privateSet(this, _renderContext, renderContext);
|
|
12873
|
+
const { view } = __privateGet(this, _renderContext);
|
|
12874
|
+
view.addEventListener("mousedown", __privateGet(this, _wrapEvent).call(this, __privateGet(this, _handleMouseDown)));
|
|
12875
|
+
view.addEventListener("click", __privateGet(this, _wrapEvent).call(this, __privateGet(this, _handleClick)));
|
|
12876
|
+
view.addEventListener("mousemove", __privateGet(this, _wrapEvent).call(this, __privateGet(this, _handleMouseMove)));
|
|
12877
|
+
view.addEventListener("mouseup", __privateGet(this, _wrapEvent).call(this, __privateGet(this, _handleMouseUp)));
|
|
12878
|
+
view.addEventListener("wheel", __privateGet(this, _wrapEvent).call(this, __privateGet(this, _handleMouseWheel)));
|
|
12879
|
+
view.addEventListener("mouseenter", __privateGet(this, _handleMouseEnter));
|
|
12880
|
+
view.addEventListener("mouseleave", __privateGet(this, _handleMouseLeave));
|
|
12881
|
+
}
|
|
12882
|
+
traceHitPosition(e) {
|
|
12883
|
+
if (__privateGet(this, _rootPosition) == null)
|
|
12884
|
+
return;
|
|
12885
|
+
__privateGet(this, _hitPosition).x = e.clientX - __privateGet(this, _rootPosition).x;
|
|
12886
|
+
__privateGet(this, _hitPosition).y = e.clientY - __privateGet(this, _rootPosition).y;
|
|
12887
|
+
}
|
|
12888
|
+
didChangeDomOrder() {
|
|
12889
|
+
if (__privateGet(this, _didDomOrderChangeState) === "processing")
|
|
12890
|
+
return;
|
|
12891
|
+
__privateSet(this, _didDomOrderChangeState, "processing");
|
|
12892
|
+
setTimeout(() => {
|
|
12893
|
+
__privateSet(this, _detectors, __privateGet(this, _detectors).sort((a, b) => b.domOrder - a.domOrder));
|
|
12894
|
+
__privateSet(this, _didDomOrderChangeState, "idle");
|
|
12895
|
+
}, 0);
|
|
12896
|
+
}
|
|
12897
|
+
addDetector(detector) {
|
|
12898
|
+
if (!__privateGet(this, _activated))
|
|
12899
|
+
return;
|
|
12900
|
+
__privateGet(this, _detectors).push(detector);
|
|
12901
|
+
}
|
|
12902
|
+
removeDetector(detector) {
|
|
12903
|
+
if (!__privateGet(this, _activated))
|
|
12904
|
+
return;
|
|
12905
|
+
__privateSet(this, _detectors, __privateGet(this, _detectors).filter((d) => d !== detector));
|
|
12906
|
+
}
|
|
12907
|
+
};
|
|
12908
|
+
_activated = new WeakMap();
|
|
12909
|
+
_detectors = new WeakMap();
|
|
12910
|
+
_rootPosition = new WeakMap();
|
|
12911
|
+
_renderContext = new WeakMap();
|
|
12912
|
+
_hitPosition = new WeakMap();
|
|
12913
|
+
_handleMouseDown = new WeakMap();
|
|
12914
|
+
_handleClick = new WeakMap();
|
|
12915
|
+
_hitHistory = new WeakMap();
|
|
12916
|
+
_handleMouseMove = new WeakMap();
|
|
12917
|
+
_handleMouseUp = new WeakMap();
|
|
12918
|
+
_handleMouseWheel = new WeakMap();
|
|
12919
|
+
_handleMouseEnter = new WeakMap();
|
|
12920
|
+
_handleMouseLeave = new WeakMap();
|
|
12921
|
+
_wrapEvent = new WeakMap();
|
|
12922
|
+
_didDomOrderChangeState = new WeakMap();
|
|
12923
|
+
|
|
12749
12924
|
// src/runApp.ts
|
|
12750
12925
|
var AppRunner = class {
|
|
12751
12926
|
constructor({
|
|
@@ -12762,24 +12937,33 @@ var AppRunner = class {
|
|
|
12762
12937
|
__publicField(this, "scheduler");
|
|
12763
12938
|
__publicField(this, "didRun", false);
|
|
12764
12939
|
__publicField(this, "widget");
|
|
12940
|
+
__publicField(this, "handleViewResize", (size) => {
|
|
12941
|
+
this.viewSize = size;
|
|
12942
|
+
if (this.didRun) {
|
|
12943
|
+
this.draw();
|
|
12944
|
+
} else {
|
|
12945
|
+
this.runApp(this.widget);
|
|
12946
|
+
}
|
|
12947
|
+
});
|
|
12765
12948
|
this.viewSize = ssrSize;
|
|
12766
12949
|
const renderContext = new RenderContext({
|
|
12767
12950
|
view,
|
|
12768
12951
|
document: _document,
|
|
12769
|
-
window: _window
|
|
12952
|
+
window: _window,
|
|
12953
|
+
onResize: this.handleViewResize
|
|
12770
12954
|
});
|
|
12771
|
-
const
|
|
12955
|
+
const renderFrameDispatcher = new RenderFrameDispatcher_default();
|
|
12956
|
+
const scheduler = new Scheduler_default({ renderFrameDispatcher });
|
|
12772
12957
|
const buildOwner = new BuildOwner_default({
|
|
12773
|
-
onNeedVisualUpdate: () =>
|
|
12958
|
+
onNeedVisualUpdate: () => scheduler.ensureVisualUpdate()
|
|
12774
12959
|
});
|
|
12775
12960
|
const renderOwner = new RenderOwner_default({
|
|
12776
|
-
onNeedVisualUpdate: () =>
|
|
12777
|
-
|
|
12961
|
+
onNeedVisualUpdate: () => scheduler.ensureVisualUpdate(),
|
|
12962
|
+
renderContext,
|
|
12963
|
+
hitTestDispatcher: new HitTestDispatcher()
|
|
12778
12964
|
});
|
|
12779
|
-
const scheduler = new Scheduler_default();
|
|
12780
12965
|
scheduler.addPersistenceCallbacks(() => buildOwner.flushBuild());
|
|
12781
12966
|
scheduler.addPersistenceCallbacks(() => renderOwner.drawFrame());
|
|
12782
|
-
renderDispatcher.setOnFrame(() => scheduler.schedule());
|
|
12783
12967
|
this.buildOwner = buildOwner;
|
|
12784
12968
|
this.renderOwner = renderOwner;
|
|
12785
12969
|
this.scheduler = scheduler;
|
|
@@ -12793,14 +12977,12 @@ var AppRunner = class {
|
|
|
12793
12977
|
app: widget,
|
|
12794
12978
|
buildOwner: this.buildOwner,
|
|
12795
12979
|
renderOwner: this.renderOwner,
|
|
12796
|
-
renderContext: this.renderContext,
|
|
12797
12980
|
scheduler: this.scheduler
|
|
12798
12981
|
}).createElement();
|
|
12799
12982
|
this.root.mount(void 0);
|
|
12800
12983
|
this.root.renderObject.constraints = constraints_default.tight(this.viewSize);
|
|
12801
12984
|
this.didRun = true;
|
|
12802
12985
|
this.draw();
|
|
12803
|
-
this.scheduler.consumePostCallbacks();
|
|
12804
12986
|
return this.renderContext.view.innerHTML;
|
|
12805
12987
|
}
|
|
12806
12988
|
setConfig({
|
|
@@ -12814,7 +12996,7 @@ var AppRunner = class {
|
|
|
12814
12996
|
this.renderContext.window = window2;
|
|
12815
12997
|
if (view)
|
|
12816
12998
|
this.renderContext.view = view;
|
|
12817
|
-
this.renderOwner.
|
|
12999
|
+
this.renderOwner.renderContext = this.renderContext;
|
|
12818
13000
|
}
|
|
12819
13001
|
onMount({
|
|
12820
13002
|
view,
|
|
@@ -12825,28 +13007,13 @@ var AppRunner = class {
|
|
|
12825
13007
|
window,
|
|
12826
13008
|
document
|
|
12827
13009
|
});
|
|
12828
|
-
resizeTarget && this.
|
|
12829
|
-
}
|
|
12830
|
-
observeCanvasSize(target) {
|
|
12831
|
-
const resize = (child) => {
|
|
12832
|
-
const { width, height } = child.target.getBoundingClientRect();
|
|
12833
|
-
this.viewSize = new size_default({ width, height });
|
|
12834
|
-
};
|
|
12835
|
-
const resizeObserver = new ResizeObserver((entries2) => {
|
|
12836
|
-
const child = entries2[0];
|
|
12837
|
-
resize(child);
|
|
12838
|
-
if (this.didRun) {
|
|
12839
|
-
this.draw();
|
|
12840
|
-
} else {
|
|
12841
|
-
this.runApp(this.widget);
|
|
12842
|
-
}
|
|
12843
|
-
});
|
|
12844
|
-
resizeObserver.observe(target);
|
|
13010
|
+
resizeTarget && this.renderContext.observeSize(resizeTarget);
|
|
12845
13011
|
}
|
|
12846
13012
|
draw() {
|
|
12847
13013
|
this.layout();
|
|
12848
13014
|
this.renderOwner.rearrangeDomOrder();
|
|
12849
13015
|
this.paint();
|
|
13016
|
+
this.scheduler.flushPostCallbacks();
|
|
12850
13017
|
}
|
|
12851
13018
|
rebuild() {
|
|
12852
13019
|
this.root.children[0].rebuild();
|
|
@@ -12859,19 +13026,42 @@ var AppRunner = class {
|
|
|
12859
13026
|
const rootRenderObject = this.root.renderObject;
|
|
12860
13027
|
rootRenderObject.paint(this.renderContext.paintContext);
|
|
12861
13028
|
}
|
|
13029
|
+
dispose() {
|
|
13030
|
+
this.root.unmount();
|
|
13031
|
+
this.renderContext.dispose();
|
|
13032
|
+
}
|
|
12862
13033
|
};
|
|
12863
13034
|
var RenderContext = class {
|
|
12864
13035
|
constructor({
|
|
12865
13036
|
document: document2,
|
|
12866
13037
|
window: window2,
|
|
12867
|
-
view
|
|
13038
|
+
view,
|
|
13039
|
+
onResize
|
|
12868
13040
|
}) {
|
|
12869
13041
|
__publicField(this, "document");
|
|
12870
13042
|
__publicField(this, "window");
|
|
12871
13043
|
__publicField(this, "view");
|
|
13044
|
+
__publicField(this, "viewPort", {
|
|
13045
|
+
translation: { x: 0, y: 0 },
|
|
13046
|
+
scale: 1
|
|
13047
|
+
});
|
|
13048
|
+
__publicField(this, "viewSize", new size_default({ width: 0, height: 0 }));
|
|
13049
|
+
__publicField(this, "resizeObserver");
|
|
13050
|
+
__publicField(this, "onResize");
|
|
12872
13051
|
this.document = document2;
|
|
12873
13052
|
this.window = window2;
|
|
12874
13053
|
this.view = view;
|
|
13054
|
+
this.onResize = onResize;
|
|
13055
|
+
}
|
|
13056
|
+
setViewport({
|
|
13057
|
+
translation,
|
|
13058
|
+
scale
|
|
13059
|
+
}) {
|
|
13060
|
+
this.viewPort = { translation, scale };
|
|
13061
|
+
this.view.setAttribute(
|
|
13062
|
+
"viewBox",
|
|
13063
|
+
`${-this.viewPort.translation.x} ${-this.viewPort.translation.y} ${this.viewSize.width / this.viewPort.scale} ${this.viewSize.height / this.viewPort.scale}`
|
|
13064
|
+
);
|
|
12875
13065
|
}
|
|
12876
13066
|
setConfig({
|
|
12877
13067
|
document: document2,
|
|
@@ -12906,6 +13096,17 @@ var RenderContext = class {
|
|
|
12906
13096
|
}
|
|
12907
13097
|
};
|
|
12908
13098
|
}
|
|
13099
|
+
dispose() {
|
|
13100
|
+
this.resizeObserver.disconnect();
|
|
13101
|
+
}
|
|
13102
|
+
observeSize(target) {
|
|
13103
|
+
this.resizeObserver = new ResizeObserver(([child]) => {
|
|
13104
|
+
const { width, height } = child.target.getBoundingClientRect();
|
|
13105
|
+
this.viewSize = new size_default({ width, height });
|
|
13106
|
+
this.onResize(this.viewSize);
|
|
13107
|
+
});
|
|
13108
|
+
this.resizeObserver.observe(target);
|
|
13109
|
+
}
|
|
12909
13110
|
};
|
|
12910
13111
|
|
|
12911
13112
|
// src/element/ComponentElement.ts
|
|
@@ -17257,7 +17458,6 @@ var BaseGestureDetector = class extends SingleChildRenderObjectWidget_default {
|
|
|
17257
17458
|
onDragEnd,
|
|
17258
17459
|
onDragMove,
|
|
17259
17460
|
onDragStart,
|
|
17260
|
-
bubble = {},
|
|
17261
17461
|
onWheel
|
|
17262
17462
|
}) {
|
|
17263
17463
|
super({ child, key });
|
|
@@ -17273,7 +17473,6 @@ var BaseGestureDetector = class extends SingleChildRenderObjectWidget_default {
|
|
|
17273
17473
|
__publicField(this, "onDragEnd");
|
|
17274
17474
|
__publicField(this, "onWheel");
|
|
17275
17475
|
__publicField(this, "cursor");
|
|
17276
|
-
__publicField(this, "bubble");
|
|
17277
17476
|
this.onClick = onClick != null ? onClick : emptyCallback;
|
|
17278
17477
|
this.onMouseDown = onMouseDown != null ? onMouseDown : emptyCallback;
|
|
17279
17478
|
this.onMouseMove = onMouseMove != null ? onMouseMove : emptyCallback;
|
|
@@ -17286,19 +17485,6 @@ var BaseGestureDetector = class extends SingleChildRenderObjectWidget_default {
|
|
|
17286
17485
|
this.onDragEnd = onDragEnd != null ? onDragEnd : emptyCallback;
|
|
17287
17486
|
this.onWheel = onWheel != null ? onWheel : emptyCallback;
|
|
17288
17487
|
this.cursor = cursor != null ? cursor : "pointer";
|
|
17289
|
-
this.bubble = __spreadValues({
|
|
17290
|
-
mousedown: false,
|
|
17291
|
-
mouseenter: false,
|
|
17292
|
-
mouseleave: false,
|
|
17293
|
-
mousemove: false,
|
|
17294
|
-
mouseover: false,
|
|
17295
|
-
mouseup: false,
|
|
17296
|
-
click: false,
|
|
17297
|
-
wheel: false,
|
|
17298
|
-
dragstart: false,
|
|
17299
|
-
dragend: false,
|
|
17300
|
-
drag: false
|
|
17301
|
-
}, bubble);
|
|
17302
17488
|
}
|
|
17303
17489
|
createRenderObject() {
|
|
17304
17490
|
return new RenderGestureDetector({
|
|
@@ -17313,8 +17499,7 @@ var BaseGestureDetector = class extends SingleChildRenderObjectWidget_default {
|
|
|
17313
17499
|
onDragMove: this.onDragMove,
|
|
17314
17500
|
onDragEnd: this.onDragEnd,
|
|
17315
17501
|
onWheel: this.onWheel,
|
|
17316
|
-
cursor: this.cursor
|
|
17317
|
-
bubble: this.bubble
|
|
17502
|
+
cursor: this.cursor
|
|
17318
17503
|
});
|
|
17319
17504
|
}
|
|
17320
17505
|
updateRenderObject(renderObject) {
|
|
@@ -17326,7 +17511,6 @@ var BaseGestureDetector = class extends SingleChildRenderObjectWidget_default {
|
|
|
17326
17511
|
renderObject.onDragStart = this.onDragStart;
|
|
17327
17512
|
renderObject.onDragMove = this.onDragMove;
|
|
17328
17513
|
renderObject.onDragEnd = this.onDragEnd;
|
|
17329
|
-
renderObject.bubble = this.bubble;
|
|
17330
17514
|
renderObject.onWheel = this.onWheel;
|
|
17331
17515
|
}
|
|
17332
17516
|
};
|
|
@@ -17343,13 +17527,11 @@ var RenderGestureDetector = class extends SingleChildRenderObject_default {
|
|
|
17343
17527
|
onDragMove,
|
|
17344
17528
|
onDragStart,
|
|
17345
17529
|
cursor,
|
|
17346
|
-
bubble,
|
|
17347
17530
|
onWheel
|
|
17348
17531
|
}) {
|
|
17349
17532
|
super({ isPainter: true });
|
|
17350
17533
|
__publicField(this, "isRenderGestureDetector", true);
|
|
17351
17534
|
__publicField(this, "id", createUniqueId());
|
|
17352
|
-
__publicField(this, "_bubble");
|
|
17353
17535
|
__publicField(this, "_cursor");
|
|
17354
17536
|
__publicField(this, "_onClick");
|
|
17355
17537
|
__publicField(this, "_onMouseDown");
|
|
@@ -17374,13 +17556,6 @@ var RenderGestureDetector = class extends SingleChildRenderObject_default {
|
|
|
17374
17556
|
this._onDragStart = onDragStart;
|
|
17375
17557
|
this._onWheel = onWheel;
|
|
17376
17558
|
this._cursor = cursor;
|
|
17377
|
-
this._bubble = bubble;
|
|
17378
|
-
}
|
|
17379
|
-
get bubble() {
|
|
17380
|
-
return this._bubble;
|
|
17381
|
-
}
|
|
17382
|
-
set bubble(prop) {
|
|
17383
|
-
this._bubble = prop;
|
|
17384
17559
|
}
|
|
17385
17560
|
get cursor() {
|
|
17386
17561
|
return this._cursor;
|
|
@@ -17479,37 +17654,10 @@ var RenderGestureDetector = class extends SingleChildRenderObject_default {
|
|
|
17479
17654
|
return;
|
|
17480
17655
|
this._onWheel = prop;
|
|
17481
17656
|
}
|
|
17482
|
-
get listeners() {
|
|
17483
|
-
const listeners = {
|
|
17484
|
-
click: this.onClick,
|
|
17485
|
-
mousedown: this.onMouseDown,
|
|
17486
|
-
mousemove: this.onMouseMove,
|
|
17487
|
-
mouseup: this.onMouseUp,
|
|
17488
|
-
mouseover: this.onMouseOver,
|
|
17489
|
-
mouseenter: this.onMouseEnter,
|
|
17490
|
-
mouseleave: this.onMouseLeave,
|
|
17491
|
-
wheel: this.onWheel,
|
|
17492
|
-
dragstart: this.onDragStart,
|
|
17493
|
-
drag: this.onDragMove,
|
|
17494
|
-
dragend: this.onDragEnd
|
|
17495
|
-
};
|
|
17496
|
-
return TypedObject_default.keys(listeners).reduce(
|
|
17497
|
-
(acc, key) => {
|
|
17498
|
-
acc[key] = (e) => {
|
|
17499
|
-
var _a;
|
|
17500
|
-
if (this.bubble[key]) {
|
|
17501
|
-
this.dispatchParent(e);
|
|
17502
|
-
}
|
|
17503
|
-
(_a = listeners[key]) == null ? void 0 : _a.call(listeners, e);
|
|
17504
|
-
};
|
|
17505
|
-
return acc;
|
|
17506
|
-
},
|
|
17507
|
-
{}
|
|
17508
|
-
);
|
|
17509
|
-
}
|
|
17510
17657
|
attach(ownerElement) {
|
|
17511
17658
|
super.attach(ownerElement);
|
|
17512
17659
|
this.addEventListeners();
|
|
17660
|
+
this.renderOwner.hitTestDispatcher.addDetector(this);
|
|
17513
17661
|
}
|
|
17514
17662
|
dispose(context) {
|
|
17515
17663
|
this.removeEventListeners();
|
|
@@ -17519,6 +17667,7 @@ var RenderGestureDetector = class extends SingleChildRenderObject_default {
|
|
|
17519
17667
|
globalDragBackend = null;
|
|
17520
17668
|
}
|
|
17521
17669
|
super.dispose(context);
|
|
17670
|
+
this.renderOwner.hitTestDispatcher.removeDetector(this);
|
|
17522
17671
|
}
|
|
17523
17672
|
removeEventListeners() {
|
|
17524
17673
|
getSingletonDragBackend().disconnectDragSource(this.id);
|
|
@@ -17527,22 +17676,13 @@ var RenderGestureDetector = class extends SingleChildRenderObject_default {
|
|
|
17527
17676
|
const isBrowser = typeof window !== "undefined";
|
|
17528
17677
|
if (!isBrowser)
|
|
17529
17678
|
return;
|
|
17530
|
-
const {
|
|
17531
|
-
svgEls: { rect }
|
|
17532
|
-
} = this.resolveSvgEl();
|
|
17533
17679
|
const dragBackend = getSingletonDragBackend();
|
|
17534
17680
|
dragBackend.isSetup || dragBackend.setup();
|
|
17535
17681
|
backendRefCount++;
|
|
17536
|
-
|
|
17537
|
-
|
|
17538
|
-
|
|
17539
|
-
|
|
17540
|
-
onDragEnd: dragend
|
|
17541
|
-
});
|
|
17542
|
-
TypedObject_default.entries(restListeners).forEach(([type, listener]) => {
|
|
17543
|
-
rect.addEventListener(type, (e) => {
|
|
17544
|
-
listener(e);
|
|
17545
|
-
});
|
|
17682
|
+
dragBackend.connectDragSource(this, {
|
|
17683
|
+
onDragStart: this.onDragStart,
|
|
17684
|
+
onDragMove: this.onDragMove,
|
|
17685
|
+
onDragEnd: this.onDragEnd
|
|
17546
17686
|
});
|
|
17547
17687
|
}
|
|
17548
17688
|
performPaint({ rect }) {
|
|
@@ -17558,19 +17698,9 @@ var RenderGestureDetector = class extends SingleChildRenderObject_default {
|
|
|
17558
17698
|
rect
|
|
17559
17699
|
};
|
|
17560
17700
|
}
|
|
17561
|
-
|
|
17562
|
-
|
|
17563
|
-
|
|
17564
|
-
}
|
|
17565
|
-
dispatchParent(e) {
|
|
17566
|
-
let parent = this.parent;
|
|
17567
|
-
while (parent != null) {
|
|
17568
|
-
if (parent == null ? void 0 : parent.isRenderGestureDetector) {
|
|
17569
|
-
parent.dispatch(e);
|
|
17570
|
-
break;
|
|
17571
|
-
}
|
|
17572
|
-
parent = parent.parent;
|
|
17573
|
-
}
|
|
17701
|
+
didChangeDomOrder() {
|
|
17702
|
+
super.didChangeDomOrder();
|
|
17703
|
+
this.renderOwner.hitTestDispatcher.didChangeDomOrder();
|
|
17574
17704
|
}
|
|
17575
17705
|
};
|
|
17576
17706
|
function emptyCallback(_arg) {
|
|
@@ -17579,7 +17709,6 @@ var DragBackend = class {
|
|
|
17579
17709
|
constructor() {
|
|
17580
17710
|
__publicField(this, "isSetup", false);
|
|
17581
17711
|
__publicField(this, "activeDragSourceId", null);
|
|
17582
|
-
__publicField(this, "dragStartListener", {});
|
|
17583
17712
|
__publicField(this, "dragMoveListener", {});
|
|
17584
17713
|
__publicField(this, "dragEndListener", {});
|
|
17585
17714
|
__publicField(this, "handleMouseMoveTop", (e) => {
|
|
@@ -17619,19 +17748,21 @@ var DragBackend = class {
|
|
|
17619
17748
|
this.root.removeEventListener("mouseup", this.handleMouseUpTop);
|
|
17620
17749
|
this.isSetup = false;
|
|
17621
17750
|
}
|
|
17622
|
-
|
|
17751
|
+
setActiveDragSourceId(sourceId) {
|
|
17752
|
+
this.activeDragSourceId = sourceId;
|
|
17753
|
+
}
|
|
17754
|
+
connectDragSource(detector, {
|
|
17623
17755
|
onDragStart = emptyCallback,
|
|
17624
17756
|
onDragMove = emptyCallback,
|
|
17625
17757
|
onDragEnd = emptyCallback
|
|
17626
17758
|
} = {}) {
|
|
17627
|
-
|
|
17628
|
-
|
|
17759
|
+
const sourceId = detector.id;
|
|
17760
|
+
const onMouseDown = detector.onMouseDown;
|
|
17761
|
+
detector.onMouseDown = (e) => {
|
|
17762
|
+
onMouseDown(e);
|
|
17763
|
+
this.setActiveDragSourceId(sourceId);
|
|
17629
17764
|
onDragStart(e);
|
|
17630
17765
|
};
|
|
17631
|
-
node.addEventListener(
|
|
17632
|
-
"mousedown",
|
|
17633
|
-
this.dragStartListener[sourceId].bind(this)
|
|
17634
|
-
);
|
|
17635
17766
|
this.dragMoveListener[sourceId] = (e) => {
|
|
17636
17767
|
onDragMove(e);
|
|
17637
17768
|
};
|
|
@@ -18372,19 +18503,6 @@ var ToolTipState = class extends State {
|
|
|
18372
18503
|
clipped: false,
|
|
18373
18504
|
children: [
|
|
18374
18505
|
GestureDetector_default({
|
|
18375
|
-
bubble: {
|
|
18376
|
-
mousedown: true,
|
|
18377
|
-
mouseenter: true,
|
|
18378
|
-
mouseleave: true,
|
|
18379
|
-
mousemove: true,
|
|
18380
|
-
mouseover: true,
|
|
18381
|
-
mouseup: true,
|
|
18382
|
-
click: true,
|
|
18383
|
-
drag: true,
|
|
18384
|
-
dragend: true,
|
|
18385
|
-
dragstart: true,
|
|
18386
|
-
wheel: true
|
|
18387
|
-
},
|
|
18388
18506
|
cursor: "default",
|
|
18389
18507
|
child: this.widget.child,
|
|
18390
18508
|
onMouseEnter: () => {
|