targetj 1.0.252 → 1.0.254
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/README.md +2 -2
- package/build/$Dom.js +50 -17
- package/build/EventListener.js +41 -36
- package/build/TModelManager.js +72 -66
- package/build/TargetUtil.js +1 -1
- package/dist/targetjs.js +1 -1
- package/dist/targetjs.js.gz +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ npm install targetj
|
|
|
56
56
|
|
|
57
57
|
**2. Example**
|
|
58
58
|
|
|
59
|
-
This creates the following sequence:
|
|
59
|
+
This creates the following sequence: bounce → move → turn red → log. Notice how the code read like the UI sequence. The `$$` suffix makes each step wait for the preceding ones. There is only one state. The transitions are part of that state.
|
|
60
60
|
|
|
61
61
|
```javascript
|
|
62
62
|
import { App } from "targetj";
|
|
@@ -66,7 +66,7 @@ App({
|
|
|
66
66
|
height: 100,
|
|
67
67
|
backgroundColor: "blue",
|
|
68
68
|
|
|
69
|
-
// Starts immediately: bounce
|
|
69
|
+
// Starts immediately: bounce.
|
|
70
70
|
scale: { value: [0.5, 1.2, 1], steps: 24, interval: 12 },
|
|
71
71
|
|
|
72
72
|
// Waits for scale to finish, then moves right.
|
package/build/$Dom.js
CHANGED
|
@@ -30,6 +30,7 @@ var $Dom = /*#__PURE__*/function () {
|
|
|
30
30
|
this.textOnly = true;
|
|
31
31
|
this.transformProp = null;
|
|
32
32
|
this.initTransformProp();
|
|
33
|
+
this.restoreSlotState();
|
|
33
34
|
}
|
|
34
35
|
return _createClass($Dom, [{
|
|
35
36
|
key: "create",
|
|
@@ -67,7 +68,8 @@ var $Dom = /*#__PURE__*/function () {
|
|
|
67
68
|
}, {
|
|
68
69
|
key: "exists",
|
|
69
70
|
value: function exists() {
|
|
70
|
-
|
|
71
|
+
var _this$element;
|
|
72
|
+
return !!((_this$element = this.element) !== null && _this$element !== void 0 && _this$element.isConnected);
|
|
71
73
|
}
|
|
72
74
|
}, {
|
|
73
75
|
key: "getElement",
|
|
@@ -79,6 +81,23 @@ var $Dom = /*#__PURE__*/function () {
|
|
|
79
81
|
value: function supportsWAAPI() {
|
|
80
82
|
return !!(this.element && typeof this.element.animate === 'function');
|
|
81
83
|
}
|
|
84
|
+
}, {
|
|
85
|
+
key: "restoreSlotState",
|
|
86
|
+
value: function restoreSlotState() {
|
|
87
|
+
var _this$element2;
|
|
88
|
+
if (((_this$element2 = this.element) === null || _this$element2 === void 0 ? void 0 : _this$element2.nodeType) !== 1 || this.isNoSlotHost()) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
var slot = this.element.querySelector(':scope > [data-tj-slot="content"]');
|
|
92
|
+
if (!slot) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
this.contentSlot = slot;
|
|
96
|
+
this.slotModeEnabled = true;
|
|
97
|
+
this.hasRealChildren = Array.from(this.element.childNodes).some(function (child) {
|
|
98
|
+
return child !== slot && child.getAttribute("tgjs") === "true";
|
|
99
|
+
});
|
|
100
|
+
}
|
|
82
101
|
}, {
|
|
83
102
|
key: "findContentSlot",
|
|
84
103
|
value: function findContentSlot() {
|
|
@@ -97,8 +116,8 @@ var $Dom = /*#__PURE__*/function () {
|
|
|
97
116
|
}, {
|
|
98
117
|
key: "isNoSlotHost",
|
|
99
118
|
value: function isNoSlotHost() {
|
|
100
|
-
var _this$
|
|
101
|
-
return
|
|
119
|
+
var _this$element3;
|
|
120
|
+
return ((_this$element3 = this.element) === null || _this$element3 === void 0 ? void 0 : _this$element3.nodeType) !== 1 || this.getTagName() === "body" || this.element.getAttribute("data-tj-no-slot") === "true";
|
|
102
121
|
}
|
|
103
122
|
}, {
|
|
104
123
|
key: "ensureContentSlotFirst",
|
|
@@ -117,7 +136,7 @@ var $Dom = /*#__PURE__*/function () {
|
|
|
117
136
|
}, {
|
|
118
137
|
key: "enableSlotMode",
|
|
119
138
|
value: function enableSlotMode() {
|
|
120
|
-
var _this$
|
|
139
|
+
var _this$element4;
|
|
121
140
|
if (this.slotModeEnabled) {
|
|
122
141
|
return;
|
|
123
142
|
}
|
|
@@ -125,17 +144,31 @@ var $Dom = /*#__PURE__*/function () {
|
|
|
125
144
|
this.slotModeEnabled = true;
|
|
126
145
|
return;
|
|
127
146
|
}
|
|
128
|
-
|
|
147
|
+
var existingSlot = this.findContentSlot();
|
|
148
|
+
if (existingSlot) {
|
|
149
|
+
if (this.element.firstChild !== existingSlot) {
|
|
150
|
+
this.element.insertBefore(existingSlot, this.element.firstChild);
|
|
151
|
+
}
|
|
152
|
+
this.contentSlot = existingSlot;
|
|
129
153
|
this.slotModeEnabled = true;
|
|
154
|
+
this.hasRealChildren = Array.from(this.element.childNodes).some(function (node) {
|
|
155
|
+
return node !== existingSlot;
|
|
156
|
+
});
|
|
130
157
|
return;
|
|
131
158
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
var next = n.nextSibling;
|
|
136
|
-
slot.appendChild(n);
|
|
137
|
-
n = next;
|
|
159
|
+
if (!((_this$element4 = this.element) !== null && _this$element4 !== void 0 && _this$element4.firstChild)) {
|
|
160
|
+
this.slotModeEnabled = true;
|
|
161
|
+
return;
|
|
138
162
|
}
|
|
163
|
+
var existingNodes = Array.from(this.element.childNodes);
|
|
164
|
+
var slot = document.createElement("div");
|
|
165
|
+
slot.setAttribute("data-tj-slot", "content");
|
|
166
|
+
this.element.insertBefore(slot, this.element.firstChild);
|
|
167
|
+
for (var _i = 0, _existingNodes = existingNodes; _i < _existingNodes.length; _i++) {
|
|
168
|
+
var node = _existingNodes[_i];
|
|
169
|
+
slot.appendChild(node);
|
|
170
|
+
}
|
|
171
|
+
this.contentSlot = slot;
|
|
139
172
|
this.slotModeEnabled = true;
|
|
140
173
|
}
|
|
141
174
|
}, {
|
|
@@ -168,8 +201,8 @@ var $Dom = /*#__PURE__*/function () {
|
|
|
168
201
|
}, {
|
|
169
202
|
key: "getTagName",
|
|
170
203
|
value: function getTagName() {
|
|
171
|
-
var _this$
|
|
172
|
-
return (_this$
|
|
204
|
+
var _this$element5;
|
|
205
|
+
return (_this$element5 = this.element) === null || _this$element5 === void 0 || (_this$element5 = _this$element5.tagName) === null || _this$element5 === void 0 ? void 0 : _this$element5.toLowerCase();
|
|
173
206
|
}
|
|
174
207
|
}, {
|
|
175
208
|
key: "setSelector",
|
|
@@ -545,14 +578,14 @@ var $Dom = /*#__PURE__*/function () {
|
|
|
545
578
|
}, {
|
|
546
579
|
key: "getScrollTop",
|
|
547
580
|
value: function getScrollTop() {
|
|
548
|
-
var _this$element$scrollT, _this$
|
|
549
|
-
return (_this$element$scrollT = (_this$
|
|
581
|
+
var _this$element$scrollT, _this$element6;
|
|
582
|
+
return (_this$element$scrollT = (_this$element6 = this.element) === null || _this$element6 === void 0 ? void 0 : _this$element6.scrollTop) !== null && _this$element$scrollT !== void 0 ? _this$element$scrollT : 0;
|
|
550
583
|
}
|
|
551
584
|
}, {
|
|
552
585
|
key: "getScrollLeft",
|
|
553
586
|
value: function getScrollLeft() {
|
|
554
|
-
var _this$element$scrollL, _this$
|
|
555
|
-
return (_this$element$scrollL = (_this$
|
|
587
|
+
var _this$element$scrollL, _this$element7;
|
|
588
|
+
return (_this$element$scrollL = (_this$element7 = this.element) === null || _this$element7 === void 0 ? void 0 : _this$element7.scrollLeft) !== null && _this$element$scrollL !== void 0 ? _this$element$scrollL : 0;
|
|
556
589
|
}
|
|
557
590
|
}], [{
|
|
558
591
|
key: "createTemplate",
|
package/build/EventListener.js
CHANGED
|
@@ -94,6 +94,7 @@ var EventListener = /*#__PURE__*/function () {
|
|
|
94
94
|
this.bindedHandleWindowEvent = this.handleWindowEvent.bind(this);
|
|
95
95
|
this.bindedHandleEvent = this.handleEvent.bind(this);
|
|
96
96
|
this.bindedParentHandleEvent = this.handleDocEvent.bind(this);
|
|
97
|
+
this.maxPointerMoveDistance = 0;
|
|
97
98
|
}
|
|
98
99
|
return _createClass(EventListener, [{
|
|
99
100
|
key: "detachWindowEvents",
|
|
@@ -223,38 +224,43 @@ var EventListener = /*#__PURE__*/function () {
|
|
|
223
224
|
}, {
|
|
224
225
|
key: "resetEventsOnTimeout",
|
|
225
226
|
value: function resetEventsOnTimeout() {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
this.currentTouch.pinchDelta = 0;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
if (diff <= 0) {
|
|
227
|
+
var hasPendingScroll = this.scrollEndTimeStamp.x > 0 || this.scrollEndTimeStamp.y > 0 || this.currentTouch.pinchDelta !== 0;
|
|
228
|
+
if (!hasPendingScroll) {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
if (this.touchCount > 0) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
var now = TUtil.now();
|
|
235
|
+
var diff = Math.max(this.scrollEndTimeStamp.x - now, this.scrollEndTimeStamp.y - now);
|
|
236
|
+
if (diff > 100) {
|
|
237
|
+
this.currentTouch.deltaY *= 0.95;
|
|
238
|
+
this.currentTouch.deltaX *= 0.95;
|
|
239
|
+
this.currentTouch.pinchDelta *= 0.95;
|
|
240
|
+
if (Math.abs(this.currentTouch.deltaY) < 0.1) {
|
|
244
241
|
this.currentTouch.deltaY = 0;
|
|
245
|
-
this.currentTouch.deltaX = 0;
|
|
246
|
-
this.currentTouch.pinchDelta = 0;
|
|
247
242
|
}
|
|
248
|
-
if (
|
|
249
|
-
this.
|
|
250
|
-
this.queueScrollEndEvent('x', this.currentHandlers.scrollLeft);
|
|
243
|
+
if (Math.abs(this.currentTouch.deltaX) < 0.1) {
|
|
244
|
+
this.currentTouch.deltaX = 0;
|
|
251
245
|
}
|
|
252
|
-
if (
|
|
253
|
-
this.
|
|
254
|
-
this.scrollEndTimeStamp.y = 0;
|
|
246
|
+
if (Math.abs(this.currentTouch.pinchDelta) < 0.1) {
|
|
247
|
+
this.currentTouch.pinchDelta = 0;
|
|
255
248
|
}
|
|
256
|
-
getRunScheduler().schedule(10, 'scroll decay');
|
|
257
249
|
}
|
|
250
|
+
if (diff <= 0) {
|
|
251
|
+
this.currentTouch.deltaY = 0;
|
|
252
|
+
this.currentTouch.deltaX = 0;
|
|
253
|
+
this.currentTouch.pinchDelta = 0;
|
|
254
|
+
}
|
|
255
|
+
if (!this.currentTouch.deltaX && this.scrollEndTimeStamp.x && now >= this.scrollEndTimeStamp.x) {
|
|
256
|
+
this.scrollEndTimeStamp.x = 0;
|
|
257
|
+
this.queueScrollEndEvent('x', this.currentHandlers.scrollLeft);
|
|
258
|
+
}
|
|
259
|
+
if (!this.currentTouch.deltaY && this.scrollEndTimeStamp.y && now >= this.scrollEndTimeStamp.y) {
|
|
260
|
+
this.queueScrollEndEvent('y', this.currentHandlers.scrollTop);
|
|
261
|
+
this.scrollEndTimeStamp.y = 0;
|
|
262
|
+
}
|
|
263
|
+
getRunScheduler().schedule(10, 'scroll decay');
|
|
258
264
|
}
|
|
259
265
|
}, {
|
|
260
266
|
key: "findEventHandlers",
|
|
@@ -448,6 +454,7 @@ var EventListener = /*#__PURE__*/function () {
|
|
|
448
454
|
switch (eventName) {
|
|
449
455
|
case 'mousedown':
|
|
450
456
|
case 'touchstart':
|
|
457
|
+
this.maxPointerMoveDistance = 0;
|
|
451
458
|
this.clearStart();
|
|
452
459
|
this.clearEnd();
|
|
453
460
|
this.clearTouch();
|
|
@@ -509,7 +516,7 @@ var EventListener = /*#__PURE__*/function () {
|
|
|
509
516
|
}
|
|
510
517
|
this.end0 = this.getTouch(event);
|
|
511
518
|
var clickHandler = SearchUtil.findFirstClickHandler(tmodel);
|
|
512
|
-
var canAcceptClick = !this.start0 || clickHandler === this.currentHandlers.click &&
|
|
519
|
+
var canAcceptClick = !this.start0 || clickHandler === this.currentHandlers.click && this.maxPointerMoveDistance < EventListener.CLICK_MOVE_THRESHOLD;
|
|
513
520
|
if (clickHandler && canAcceptClick) {
|
|
514
521
|
this.eventQueue.length = 0;
|
|
515
522
|
this.eventQueue.push({
|
|
@@ -524,6 +531,7 @@ var EventListener = /*#__PURE__*/function () {
|
|
|
524
531
|
}
|
|
525
532
|
this.clearEnd();
|
|
526
533
|
this.clearStart();
|
|
534
|
+
this.maxPointerMoveDistance = 0;
|
|
527
535
|
this.touchCount = 0;
|
|
528
536
|
event.stopPropagation();
|
|
529
537
|
break;
|
|
@@ -555,6 +563,7 @@ var EventListener = /*#__PURE__*/function () {
|
|
|
555
563
|
this.clearStart();
|
|
556
564
|
this.clearEnd();
|
|
557
565
|
this.clearTouch();
|
|
566
|
+
this.maxPointerMoveDistance = 0;
|
|
558
567
|
this.touchCount = 0;
|
|
559
568
|
event.stopPropagation();
|
|
560
569
|
break;
|
|
@@ -726,6 +735,7 @@ var EventListener = /*#__PURE__*/function () {
|
|
|
726
735
|
this.windowScrollEndTimer = 0;
|
|
727
736
|
this.scrollEndTimeStamp.x = 0;
|
|
728
737
|
this.scrollEndTimeStamp.y = 0;
|
|
738
|
+
this.maxPointerMoveDistance = 0;
|
|
729
739
|
this.currentHandlers = {
|
|
730
740
|
touch: null,
|
|
731
741
|
click: null,
|
|
@@ -773,14 +783,6 @@ var EventListener = /*#__PURE__*/function () {
|
|
|
773
783
|
value: function swipeY() {
|
|
774
784
|
return this.cursor.y - this.swipeStartY;
|
|
775
785
|
}
|
|
776
|
-
}, {
|
|
777
|
-
key: "getSwipeDistance",
|
|
778
|
-
value: function getSwipeDistance() {
|
|
779
|
-
if (this.start0 && this.end0) {
|
|
780
|
-
return TUtil.distance(this.start0.originalX, this.start0.originalY, this.end0.x, this.end0.y);
|
|
781
|
-
}
|
|
782
|
-
return 0;
|
|
783
|
-
}
|
|
784
786
|
}, {
|
|
785
787
|
key: "pinchDelta",
|
|
786
788
|
value: function pinchDelta() {
|
|
@@ -1040,6 +1042,8 @@ var EventListener = /*#__PURE__*/function () {
|
|
|
1040
1042
|
this.start0.x = this.end0 ? this.end0.x : this.start0.x;
|
|
1041
1043
|
this.end0 = this.getTouch(event);
|
|
1042
1044
|
if (TUtil.isDefined(this.end0)) {
|
|
1045
|
+
var distance = TUtil.distance(this.start0.originalX, this.start0.originalY, this.end0.x, this.end0.y);
|
|
1046
|
+
this.maxPointerMoveDistance = Math.max(this.maxPointerMoveDistance, distance);
|
|
1043
1047
|
var deltaX = this.start0.x - this.end0.x;
|
|
1044
1048
|
var deltaY = this.start0.y - this.end0.y;
|
|
1045
1049
|
this.setDeltaXDeltaY(deltaX, deltaY, 'touch');
|
|
@@ -1144,4 +1148,5 @@ var EventListener = /*#__PURE__*/function () {
|
|
|
1144
1148
|
}();
|
|
1145
1149
|
_defineProperty(EventListener, "MAX_EVENT_QUEUE_SIZE", 10);
|
|
1146
1150
|
_defineProperty(EventListener, "MAX_EVENT_TYPE_CAPACITY", 2);
|
|
1151
|
+
_defineProperty(EventListener, "CLICK_MOVE_THRESHOLD", 10);
|
|
1147
1152
|
export { EventListener };
|
package/build/TModelManager.js
CHANGED
|
@@ -188,13 +188,22 @@ var TModelManager = /*#__PURE__*/function () {
|
|
|
188
188
|
activated.forEach(function (t) {
|
|
189
189
|
return t.deactivate();
|
|
190
190
|
});
|
|
191
|
-
Object.values(_objectSpread(_objectSpread({}, lastVisibleMap), lastPreservedMap)).filter(function (
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
if (
|
|
195
|
-
if (
|
|
191
|
+
Object.values(_objectSpread(_objectSpread({}, lastVisibleMap), lastPreservedMap)).filter(Boolean).forEach(function (tmodel) {
|
|
192
|
+
var exists = tmodel.exists();
|
|
193
|
+
var included = exists && tmodel.isIncluded();
|
|
194
|
+
if (!exists || !included) {
|
|
195
|
+
if (tmodel.hasDom()) {
|
|
196
196
|
_this.addToDeletedDom(tmodel);
|
|
197
|
+
} else {
|
|
198
|
+
delete _this.visibleOidMap[tmodel.oid];
|
|
199
|
+
delete _this.preservedDomMap[tmodel.oid];
|
|
200
|
+
_this.domPolicyMap.delete(tmodel.oid);
|
|
197
201
|
}
|
|
202
|
+
} else if (!tmodel.hasDom() && tmodel.canHaveDom()) {
|
|
203
|
+
delete _this.visibleOidMap[tmodel.oid];
|
|
204
|
+
delete _this.preservedDomMap[tmodel.oid];
|
|
205
|
+
tmodel.visibilityStatus = undefined;
|
|
206
|
+
tmodel.markLayoutDirty("noDom");
|
|
198
207
|
}
|
|
199
208
|
});
|
|
200
209
|
return this.lists.noDom.length > 0 ? 0 : this.lists.reattach.length > 0 ? 1 : this.lists.relocation.length > 0 ? 2 : this.lists.rerender.length > 0 ? 3 : this.lists.reasyncStyle.length > 0 ? 4 : this.lists.deletedDom.length > 0 ? 5 : this.lists.restyle.length > 0 ? 10 : -1;
|
|
@@ -224,18 +233,19 @@ var TModelManager = /*#__PURE__*/function () {
|
|
|
224
233
|
return false;
|
|
225
234
|
}
|
|
226
235
|
}, {
|
|
227
|
-
key: "
|
|
228
|
-
value: function
|
|
229
|
-
|
|
236
|
+
key: "shouldHaveDom",
|
|
237
|
+
value: function shouldHaveDom(tmodel) {
|
|
238
|
+
var visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : tmodel.isVisible();
|
|
239
|
+
if (!tmodel.canHaveDom() || !tmodel.isIncluded()) {
|
|
230
240
|
return false;
|
|
231
241
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
return this.
|
|
242
|
+
return visible || tmodel.requiresDom() || this.getDomPolicy(tmodel) === "keep";
|
|
243
|
+
}
|
|
244
|
+
}, {
|
|
245
|
+
key: "shouldCreateDom",
|
|
246
|
+
value: function shouldCreateDom(tmodel) {
|
|
247
|
+
var visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : tmodel.isVisible();
|
|
248
|
+
return !tmodel.hasDom() && this.shouldHaveDom(tmodel, visible);
|
|
239
249
|
}
|
|
240
250
|
}, {
|
|
241
251
|
key: "getDomPolicy",
|
|
@@ -628,32 +638,34 @@ var TModelManager = /*#__PURE__*/function () {
|
|
|
628
638
|
var holdersMap = new Map();
|
|
629
639
|
var styleBatch = [];
|
|
630
640
|
var needsDom = [];
|
|
641
|
+
var attached = [];
|
|
631
642
|
this.lists.noDom.sort(function (a, b) {
|
|
632
|
-
return a.getUIDepth()
|
|
643
|
+
return a.getUIDepth() - b.getUIDepth();
|
|
633
644
|
});
|
|
634
645
|
var _iterator11 = _createForOfIteratorHelper(this.lists.noDom),
|
|
635
646
|
_step11;
|
|
636
647
|
try {
|
|
637
648
|
for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
|
|
638
|
-
var
|
|
639
|
-
var
|
|
640
|
-
var domId = (
|
|
649
|
+
var _tmodel3$domId;
|
|
650
|
+
var _tmodel3 = _step11.value;
|
|
651
|
+
var domId = (_tmodel3$domId = _tmodel3.domId) !== null && _tmodel3$domId !== void 0 ? _tmodel3$domId : _tmodel3.oid;
|
|
641
652
|
if ($Dom.query("#".concat(domId))) {
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
653
|
+
_tmodel3.$dom = new $Dom("#".concat(domId));
|
|
654
|
+
_tmodel3.$dom.attr('tgjs', 'true');
|
|
655
|
+
_tmodel3.hasDomNow = true;
|
|
656
|
+
_tmodel3.markLayoutDirty('hasDomNow');
|
|
657
|
+
attached.push(_tmodel3);
|
|
658
|
+
if (this.needsRerender(_tmodel3)) {
|
|
659
|
+
this.lists.rerender.push(_tmodel3);
|
|
648
660
|
}
|
|
649
|
-
if (this.needsRestyle(
|
|
650
|
-
this.lists.restyle.push(
|
|
661
|
+
if (this.needsRestyle(_tmodel3)) {
|
|
662
|
+
this.lists.restyle.push(_tmodel3);
|
|
651
663
|
}
|
|
652
|
-
if (this.needsReasyncStyle(
|
|
653
|
-
this.lists.reasyncStyle.push(
|
|
664
|
+
if (this.needsReasyncStyle(_tmodel3)) {
|
|
665
|
+
this.lists.reasyncStyle.push(_tmodel3);
|
|
654
666
|
}
|
|
655
667
|
} else {
|
|
656
|
-
needsDom.push(
|
|
668
|
+
needsDom.push(_tmodel3);
|
|
657
669
|
}
|
|
658
670
|
}
|
|
659
671
|
} catch (err) {
|
|
@@ -674,22 +686,24 @@ var TModelManager = /*#__PURE__*/function () {
|
|
|
674
686
|
if (!tmodel.hasDom()) {
|
|
675
687
|
domHolder.appendTModel$Dom(tmodel);
|
|
676
688
|
}
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
689
|
+
attached.push(tmodel);
|
|
690
|
+
continue;
|
|
691
|
+
}
|
|
692
|
+
TModelUtil.createDom(tmodel);
|
|
693
|
+
TModelUtil.patchDom(tmodel);
|
|
694
|
+
styleBatch.push(tmodel);
|
|
695
|
+
attached.push(tmodel);
|
|
696
|
+
var entry = holdersMap.get(domHolder);
|
|
697
|
+
if (!entry) {
|
|
698
|
+
entry = {
|
|
699
|
+
domHolder: domHolder,
|
|
700
|
+
fragment: $Dom.createDocumentFragment(),
|
|
701
|
+
tmodels: []
|
|
702
|
+
};
|
|
703
|
+
holdersMap.set(domHolder, entry);
|
|
692
704
|
}
|
|
705
|
+
entry.fragment.appendChild(tmodel.$dom.element);
|
|
706
|
+
entry.tmodels.push(tmodel);
|
|
693
707
|
}
|
|
694
708
|
var _iterator12 = _createForOfIteratorHelper(holdersMap.values()),
|
|
695
709
|
_step12;
|
|
@@ -705,30 +719,22 @@ var TModelManager = /*#__PURE__*/function () {
|
|
|
705
719
|
} finally {
|
|
706
720
|
_iterator12.f();
|
|
707
721
|
}
|
|
708
|
-
var
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
|
|
712
|
-
var _tmodel3 = _step13.value;
|
|
713
|
-
this.catchupNoDomTargetsBeforeStyle(_tmodel3);
|
|
714
|
-
}
|
|
715
|
-
} catch (err) {
|
|
716
|
-
_iterator13.e(err);
|
|
717
|
-
} finally {
|
|
718
|
-
_iterator13.f();
|
|
722
|
+
for (var _i6 = 0, _attached = attached; _i6 < _attached.length; _i6++) {
|
|
723
|
+
var _tmodel = _attached[_i6];
|
|
724
|
+
this.catchupNoDomTargetsBeforeStyle(_tmodel);
|
|
719
725
|
}
|
|
720
|
-
for (var
|
|
721
|
-
var
|
|
722
|
-
if (
|
|
723
|
-
|
|
724
|
-
|
|
726
|
+
for (var _i7 = 0, _styleBatch = styleBatch; _i7 < _styleBatch.length; _i7++) {
|
|
727
|
+
var _tmodel2 = _styleBatch[_i7];
|
|
728
|
+
if (_tmodel2.hasDom()) {
|
|
729
|
+
_tmodel2.hasDomNow = true;
|
|
730
|
+
_tmodel2.markLayoutDirty('hasDomNow');
|
|
725
731
|
}
|
|
726
|
-
TModelUtil.initStyleMaps(
|
|
727
|
-
TModelUtil.fixStyle(
|
|
728
|
-
TModelUtil.fixAsyncStyle(
|
|
732
|
+
TModelUtil.initStyleMaps(_tmodel2);
|
|
733
|
+
TModelUtil.fixStyle(_tmodel2);
|
|
734
|
+
TModelUtil.fixAsyncStyle(_tmodel2);
|
|
729
735
|
}
|
|
730
|
-
this.activatePendingTargetsAfterDom(
|
|
731
|
-
getEvents().attachEvents(
|
|
736
|
+
this.activatePendingTargetsAfterDom(attached);
|
|
737
|
+
getEvents().attachEvents(attached.filter(function (t) {
|
|
732
738
|
var _t$externalEventMap;
|
|
733
739
|
return ((_t$externalEventMap = t.externalEventMap) === null || _t$externalEventMap === void 0 ? void 0 : _t$externalEventMap.size) > 0;
|
|
734
740
|
}));
|
package/build/TargetUtil.js
CHANGED
|
@@ -590,7 +590,7 @@ var TargetUtil = /*#__PURE__*/function () {
|
|
|
590
590
|
if (getManager().needsReattach(tmodel)) {
|
|
591
591
|
return "needs Reattach";
|
|
592
592
|
}
|
|
593
|
-
if (
|
|
593
|
+
if (getManager().shouldHaveDom(tmodel) && !tmodel.hasDom()) {
|
|
594
594
|
return "no dom";
|
|
595
595
|
}
|
|
596
596
|
if (!tmodel.isTargetComplete(key) && !tmodel.isTargetDone(key)) {
|