targetj 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/App.js CHANGED
@@ -96,12 +96,25 @@ var AppFn = function AppFn() {
96
96
  return my;
97
97
  };
98
98
  my.start = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
99
+ var _ref2,
100
+ _ref2$skipSchedulerRe,
101
+ skipSchedulerReset,
102
+ _args = arguments;
99
103
  return _regeneratorRuntime().wrap(function _callee$(_context) {
100
104
  while (1) switch (_context.prev = _context.next) {
101
105
  case 0:
106
+ _ref2 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, _ref2$skipSchedulerRe = _ref2.skipSchedulerReset, skipSchedulerReset = _ref2$skipSchedulerRe === void 0 ? false : _ref2$skipSchedulerRe;
102
107
  my.runningFlag = false;
103
- TargetExecutor.executeDeclarativeTarget(my.tRoot, 'screenWidth');
104
- TargetExecutor.executeDeclarativeTarget(my.tRoot, 'screenHeight');
108
+ if (skipSchedulerReset) {
109
+ _context.next = 5;
110
+ break;
111
+ }
112
+ _context.next = 5;
113
+ return my.runScheduler.resetRuns();
114
+ case 5:
115
+ my.animationManager.isShuttingDown = false;
116
+ TargetExecutor.executeDeclarativeTarget(my.tRoot, "screenWidth");
117
+ TargetExecutor.executeDeclarativeTarget(my.tRoot, "screenHeight");
105
118
  my.events.detachAll();
106
119
  my.events.detachWindowEvents();
107
120
  my.events.attachWindowEvents();
@@ -109,80 +122,107 @@ var AppFn = function AppFn() {
109
122
  my.events.attachEvents(Object.values(App.tmodelIdMap).filter(function (tmodel) {
110
123
  return tmodel.hasDom() && tmodel.$dom.element.isConnected;
111
124
  }));
112
- _context.next = 10;
113
- return my.runScheduler.resetRuns();
114
- case 10:
115
125
  my.runningFlag = true;
116
126
  my.runScheduler.schedule(0, "appStart");
117
127
  return _context.abrupt("return", my);
118
- case 13:
128
+ case 16:
119
129
  case "end":
120
130
  return _context.stop();
121
131
  }
122
132
  }, _callee);
123
133
  }));
124
134
  my.stop = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
135
+ var _ref4,
136
+ _ref4$discardState,
137
+ discardState,
138
+ _args2 = arguments;
125
139
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
126
140
  while (1) switch (_context2.prev = _context2.next) {
127
141
  case 0:
142
+ _ref4 = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}, _ref4$discardState = _ref4.discardState, discardState = _ref4$discardState === void 0 ? false : _ref4$discardState;
128
143
  my.runningFlag = false;
129
144
  my.events.detachAll();
130
145
  my.events.detachWindowEvents();
131
146
  my.events.clearAll();
132
- _context2.next = 6;
133
- return my.animationManager.deleteAll();
134
- case 6:
135
- _context2.next = 8;
136
- return my.animationManager.flushOneFrame();
137
- case 8:
147
+ _context2.next = 7;
148
+ return my.animationManager.deleteAll({
149
+ discardState: discardState
150
+ });
151
+ case 7:
152
+ if (discardState) {
153
+ _context2.next = 10;
154
+ break;
155
+ }
138
156
  _context2.next = 10;
139
- return my.runScheduler.resetRuns();
157
+ return my.animationManager.flushOneFrame();
140
158
  case 10:
159
+ _context2.next = 12;
160
+ return my.runScheduler.resetRuns();
161
+ case 12:
141
162
  return _context2.abrupt("return", my);
142
- case 11:
163
+ case 13:
143
164
  case "end":
144
165
  return _context2.stop();
145
166
  }
146
167
  }, _callee2);
147
168
  }));
148
169
  my.reset = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
149
- var _i, _Object$values, _tmodel$particleRunti, _tmodel$particleRende, tmodel;
170
+ var _ref6,
171
+ _ref6$discardState,
172
+ discardState,
173
+ _ref6$skipSchedulerRe,
174
+ skipSchedulerReset,
175
+ _ref6$preserveCachedM,
176
+ preserveCachedModels,
177
+ _i,
178
+ _Object$values,
179
+ _tmodel$disposeRuntim,
180
+ tmodel,
181
+ _args3 = arguments;
150
182
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
151
183
  while (1) switch (_context3.prev = _context3.next) {
152
184
  case 0:
153
- my.manager.getVisibles().forEach(function (tmodel) {
154
- var _tmodel$allStyleTarge;
155
- if ((_tmodel$allStyleTarge = tmodel.allStyleTargetMap) !== null && _tmodel$allStyleTarge !== void 0 && _tmodel$allStyleTarge.size) {
156
- var _iterator = _createForOfIteratorHelper(tmodel.allStyleTargetMap),
157
- _step;
158
- try {
159
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
160
- var _step$value = _slicedToArray(_step.value, 1),
161
- key = _step$value[0];
162
- if (TUtil.isDefined(tmodel.val(key))) {
163
- tmodel.addToStyleTargetList(key);
185
+ _ref6 = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {}, _ref6$discardState = _ref6.discardState, discardState = _ref6$discardState === void 0 ? false : _ref6$discardState, _ref6$skipSchedulerRe = _ref6.skipSchedulerReset, skipSchedulerReset = _ref6$skipSchedulerRe === void 0 ? false : _ref6$skipSchedulerRe, _ref6$preserveCachedM = _ref6.preserveCachedModels, preserveCachedModels = _ref6$preserveCachedM === void 0 ? false : _ref6$preserveCachedM;
186
+ if (!discardState) {
187
+ my.manager.getVisibles().forEach(function (tmodel) {
188
+ var _tmodel$allStyleTarge;
189
+ if ((_tmodel$allStyleTarge = tmodel.allStyleTargetMap) !== null && _tmodel$allStyleTarge !== void 0 && _tmodel$allStyleTarge.size) {
190
+ var _iterator = _createForOfIteratorHelper(tmodel.allStyleTargetMap),
191
+ _step;
192
+ try {
193
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
194
+ var _step$value = _slicedToArray(_step.value, 1),
195
+ key = _step$value[0];
196
+ if (TUtil.isDefined(tmodel.val(key))) {
197
+ tmodel.addToStyleTargetList(key);
198
+ }
164
199
  }
200
+ } catch (err) {
201
+ _iterator.e(err);
202
+ } finally {
203
+ _iterator.f();
165
204
  }
166
- } catch (err) {
167
- _iterator.e(err);
168
- } finally {
169
- _iterator.f();
170
205
  }
206
+ });
207
+ }
208
+ if (!preserveCachedModels) {
209
+ for (_i = 0, _Object$values = Object.values(App.tmodelIdMap); _i < _Object$values.length; _i++) {
210
+ tmodel = _Object$values[_i];
211
+ (_tmodel$disposeRuntim = tmodel.disposeRuntimeDerivedState) === null || _tmodel$disposeRuntim === void 0 || _tmodel$disposeRuntim.call(tmodel);
171
212
  }
172
- });
173
- _context3.next = 3;
174
- return my.runScheduler.resetRuns();
175
- case 3:
176
- for (_i = 0, _Object$values = Object.values(App.tmodelIdMap); _i < _Object$values.length; _i++) {
177
- tmodel = _Object$values[_i];
178
- (_tmodel$particleRunti = tmodel.particleRuntime) === null || _tmodel$particleRunti === void 0 || _tmodel$particleRunti.dispose();
179
- (_tmodel$particleRende = tmodel.particleRenderer) === null || _tmodel$particleRende === void 0 || _tmodel$particleRende.destroy();
180
213
  }
214
+ if (skipSchedulerReset) {
215
+ _context3.next = 6;
216
+ break;
217
+ }
218
+ _context3.next = 6;
219
+ return my.runScheduler.resetRuns();
220
+ case 6:
181
221
  my.manager.clearAll();
182
222
  my.locationManager.clear();
183
223
  my.loader.clear();
184
224
  SearchUtil.clear();
185
- case 8:
225
+ case 10:
186
226
  case "end":
187
227
  return _context3.stop();
188
228
  }
@@ -23,6 +23,7 @@ import { TargetParser } from "./TargetParser.js";
23
23
  import { TargetUtil } from "./TargetUtil.js";
24
24
  import { TargetData } from "./TargetData.js";
25
25
  import { $Dom } from "./$Dom.js";
26
+ import { Easing } from "./Easing.js";
26
27
 
27
28
  /**
28
29
  * It provides the target state and associated logic to the TModel.
@@ -328,6 +329,10 @@ var BaseModel = /*#__PURE__*/function () {
328
329
  if (isInactiveKey) {
329
330
  this.targets[key].active = false;
330
331
  }
332
+ if (TargetData.requiresDom(cleanKey)) {
333
+ this.addOnDomTarget(key);
334
+ this.targets[key].active = false;
335
+ }
331
336
  if (TargetData.bypassInitialProcessingTargetMap[cleanKey]) {
332
337
  return;
333
338
  }
@@ -377,15 +382,34 @@ var BaseModel = /*#__PURE__*/function () {
377
382
  }, {
378
383
  key: "canTargetBeActivated",
379
384
  value: function canTargetBeActivated(key) {
380
- var onDomEvent = this.targets.onDomEvent;
381
- if (onDomEvent) {
382
- var included = Array.isArray(onDomEvent) ? onDomEvent.includes(key) : onDomEvent === key;
385
+ var onDomReady = this.targets.onDomReady;
386
+ if (onDomReady) {
387
+ var _onDomReady$value;
388
+ var value = (_onDomReady$value = onDomReady.value) !== null && _onDomReady$value !== void 0 ? _onDomReady$value : onDomReady;
389
+ var included = Array.isArray(value) ? value.includes(key) : value === key;
383
390
  if (included && !this.hasDom()) {
384
391
  return false;
385
392
  }
386
393
  }
387
394
  return !this.activeTargetMap[key];
388
395
  }
396
+ }, {
397
+ key: "addOnDomTarget",
398
+ value: function addOnDomTarget(key) {
399
+ var onDomReady = this.targets.onDomReady;
400
+ if (!onDomReady) {
401
+ this.targets.onDomReady = {
402
+ value: [key],
403
+ active: false
404
+ };
405
+ this.processNewTarget('onDomReady');
406
+ return;
407
+ }
408
+ var values = Array.isArray(onDomReady) ? onDomReady : onDomReady.value;
409
+ if (Array.isArray(values) && !values.includes(key)) {
410
+ values.push(key);
411
+ }
412
+ }
389
413
  }, {
390
414
  key: "addToStyleTargetList",
391
415
  value: function addToStyleTargetList(key, enforce) {
@@ -649,12 +673,12 @@ var BaseModel = /*#__PURE__*/function () {
649
673
  if (!TUtil.isDefined(target)) {
650
674
  return false;
651
675
  }
652
- if (typeof target.enabledOn === 'function') {
653
- this.setTargetMethodName(key, 'enabledOn');
654
- return target.enabledOn.call(this);
655
- } else {
656
- return true;
676
+ var enabledOn = target.enabledOn;
677
+ if (typeof enabledOn === "function") {
678
+ this.setTargetMethodName(key, "enabledOn");
679
+ return !!enabledOn.call(this);
657
680
  }
681
+ return enabledOn !== false;
658
682
  }
659
683
  }, {
660
684
  key: "doesTargetEqualActual",
@@ -804,9 +828,10 @@ var BaseModel = /*#__PURE__*/function () {
804
828
  if (this.isTargetUpdating(key) || (_this$animatingMap = this.animatingMap) !== null && _this$animatingMap !== void 0 && _this$animatingMap.has(key)) {
805
829
  continue;
806
830
  }
807
- if (!this.shouldScheduleRun(key)) {
831
+ if (!this.shouldScheduleRun(key) || !this.canTargetBeActivated(key)) {
808
832
  continue;
809
833
  }
834
+ this.resetTargetStep(key);
810
835
  this.addToActiveTargets(key);
811
836
  activated = true;
812
837
  }
@@ -956,19 +981,26 @@ var BaseModel = /*#__PURE__*/function () {
956
981
  key: "setTarget",
957
982
  value: function setTarget(key, value, steps, interval, easing) {
958
983
  if (_typeof(key) === 'object' && key !== null) {
959
- var _ref3 = [key, value, steps, interval, easing];
984
+ var _ref3 = [key, value, steps, interval];
960
985
  value = _ref3[0];
961
986
  steps = _ref3[1];
962
987
  interval = _ref3[2];
963
988
  easing = _ref3[3];
964
989
  key = '';
965
990
  }
991
+ if (easing === undefined && Easing.isEasing(interval)) {
992
+ easing = interval;
993
+ interval = undefined;
994
+ }
966
995
  if (typeof key === 'string') {
967
996
  key = !key.endsWith('+') ? key + "+" : key;
968
997
  }
969
998
  var originalTargetName = TargetUtil.currentTargetName;
970
999
  var originalTModel = TargetUtil.currentTModel;
971
- if (this.getParent() === originalTModel) {
1000
+ if (originalTargetName === 'swell') {
1001
+ console.log("setTarget: " + this.oid + ", " + originalTModel.oid + ", " + originalTargetName);
1002
+ }
1003
+ if (originalTModel && originalTargetName && originalTModel !== this) {
972
1004
  TargetUtil.markChildAction(originalTModel, originalTargetName, this);
973
1005
  }
974
1006
  this.markLayoutDirty(key);
package/build/Easing.js CHANGED
@@ -14,6 +14,11 @@ var Easing = /*#__PURE__*/function () {
14
14
  _classCallCheck(this, Easing);
15
15
  }
16
16
  return _createClass(Easing, null, [{
17
+ key: "isEasing",
18
+ value: function isEasing(value) {
19
+ return Easing.easeMap.has(value);
20
+ }
21
+ }, {
17
22
  key: "easingFunction",
18
23
  value: function easingFunction(easingStr) {
19
24
  if (!easingStr) {
@@ -137,15 +137,24 @@ var EventListener = /*#__PURE__*/function () {
137
137
  }, {
138
138
  key: "attachEvents",
139
139
  value: function attachEvents(tmodels) {
140
+ var isScrollable = function isScrollable(value) {
141
+ return typeof value === 'string' && value.split(/\s+/).some(function (mode) {
142
+ return mode === 'scroll' || mode === 'auto';
143
+ });
144
+ };
140
145
  var _iterator = _createForOfIteratorHelper(tmodels),
141
146
  _step;
142
147
  try {
143
148
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
149
+ var _tmodel$externalEvent;
144
150
  var tmodel = _step.value;
145
- if (!tmodel.externalEventMap) {
146
- continue;
151
+ var overflow = tmodel.val('overflow');
152
+ var overflowX = tmodel.val('overflowX');
153
+ var overflowY = tmodel.val('overflowY');
154
+ if (tmodel.hasDom() && (isScrollable(overflow) || isScrollable(overflowX) || isScrollable(overflowY))) {
155
+ this.attachTargetEvents(tmodel, 'onWindowScroll', true);
147
156
  }
148
- var _iterator2 = _createForOfIteratorHelper(tmodel.externalEventMap),
157
+ var _iterator2 = _createForOfIteratorHelper((_tmodel$externalEvent = tmodel.externalEventMap) !== null && _tmodel$externalEvent !== void 0 ? _tmodel$externalEvent : []),
149
158
  _step2;
150
159
  try {
151
160
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -379,9 +388,9 @@ var EventListener = /*#__PURE__*/function () {
379
388
  break;
380
389
  case "popstate":
381
390
  for (var _i2 = 0, _Object$values = Object.values(getManager().visibleOidMap); _i2 < _Object$values.length; _i2++) {
382
- var _tmodel$externalEvent;
391
+ var _tmodel$externalEvent2;
383
392
  var tmodel = _Object$values[_i2];
384
- if ((_tmodel$externalEvent = tmodel.externalEventMap) !== null && _tmodel$externalEvent !== void 0 && _tmodel$externalEvent.has("onPopState")) {
393
+ if ((_tmodel$externalEvent2 = tmodel.externalEventMap) !== null && _tmodel$externalEvent2 !== void 0 && _tmodel$externalEvent2.has("onPopState")) {
385
394
  mark(tmodel, "popstate-event");
386
395
  }
387
396
  }
@@ -411,7 +420,8 @@ var EventListener = /*#__PURE__*/function () {
411
420
  _this$currentHandlers6,
412
421
  _this$currentHandlers7,
413
422
  _this7 = this,
414
- _tmodel3;
423
+ _tmodel3,
424
+ _tmodel4;
415
425
  if (!event) {
416
426
  return;
417
427
  }
@@ -448,7 +458,8 @@ var EventListener = /*#__PURE__*/function () {
448
458
  lastTimeStamp = _this$lastEvent2.timeStamp;
449
459
  var rate = now - lastTimeStamp;
450
460
  var isTerminal = eventType === 'end' || eventType === 'cancel' || eventType === 'start';
451
- if (!isTerminal && inputType && lastEventItem.inputType && lastEventItem.inputType !== inputType && eventOrder > lastEventItem.order) {
461
+ var isDuplicateInput = eventType === lastEventItem.eventType && now - lastTimeStamp < 60 && inputType && lastEventItem.inputType && lastEventItem.inputType !== inputType && eventOrder > lastEventItem.order;
462
+ if (!isTerminal && isDuplicateInput) {
452
463
  return;
453
464
  }
454
465
  if (this.eventQueue.length > EventListener.MAX_EVENT_QUEUE_SIZE && rateLimit > 0 && rate < rateLimit) {
@@ -625,12 +636,21 @@ var EventListener = /*#__PURE__*/function () {
625
636
  getLocationManager().domIslandSet.forEach(function (t) {
626
637
  t.markLayoutDirty('window-scroll-event');
627
638
  });
628
- } else {
639
+ } else if ((_tmodel3 = tmodel) !== null && _tmodel3 !== void 0 && _tmodel3.hasDom()) {
640
+ var scrollTop = tmodel.$dom.getScrollTop();
641
+ var scrollLeft = tmodel.$dom.getScrollLeft();
642
+ if (tmodel.getScrollTop() !== scrollTop) {
643
+ tmodel.val('scrollTop', scrollTop);
644
+ }
645
+ if (tmodel.getScrollLeft() !== scrollLeft) {
646
+ tmodel.val('scrollLeft', scrollLeft);
647
+ }
648
+ tmodel.visibilityDirty = true;
629
649
  tmodel.markLayoutDirty('container-scroll-event');
630
650
  }
631
651
  break;
632
652
  }
633
- getRunScheduler().schedule(0, "".concat((_tmodel3 = tmodel) === null || _tmodel3 === void 0 ? void 0 : _tmodel3.oid, "-").concat(originalName, "-").concat(eventName, "-").concat((event.target.tagName || '').toUpperCase()));
653
+ getRunScheduler().schedule(0, "".concat((_tmodel4 = tmodel) === null || _tmodel4 === void 0 ? void 0 : _tmodel4.oid, "-").concat(originalName, "-").concat(eventName, "-").concat((event.target.tagName || '').toUpperCase()));
634
654
  }
635
655
  }, {
636
656
  key: "queueScrollEndEvent",