targetj 1.0.255 → 1.0.257

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.
@@ -94,16 +94,17 @@ var AnimationManager = /*#__PURE__*/function () {
94
94
  _iterator.f();
95
95
  }
96
96
  var transformAnimation = false;
97
+ var baseTfMap = {};
98
+ for (var _i = 0, _Object$keys = Object.keys(tmodel.tfMap); _i < _Object$keys.length; _i++) {
99
+ var key = _Object$keys[_i];
100
+ baseTfMap[key] = tmodel.val(key);
101
+ }
97
102
  var keyframes = batch.frames.map(function (frame) {
98
103
  var out = _objectSpread({}, frame.styleMap);
99
104
  out.offset = frame.keyTime / totalDuration;
100
105
  if (Object.keys(frame.tfMap).length) {
101
- Object.keys(tmodel.tfMap).forEach(function (key) {
102
- tmodel.tfMap[key] = tmodel.val(key);
103
- });
104
- var tfMap = _objectSpread(_objectSpread({}, tmodel.tfMap), frame.tfMap);
106
+ var tfMap = _objectSpread(_objectSpread({}, baseTfMap), frame.tfMap);
105
107
  out.transform = TModelUtil.getTransformString(tmodel, tfMap);
106
- frame.tfMap = tfMap;
107
108
  transformAnimation = true;
108
109
  }
109
110
  AnimationUtil.addUnitsToFrame(out);
@@ -179,6 +180,7 @@ var AnimationManager = /*#__PURE__*/function () {
179
180
  }, {
180
181
  key: "finalizeAnimation",
181
182
  value: function finalizeAnimation(anim) {
183
+ var finalized = false;
182
184
  var _iterator3 = _createForOfIteratorHelper(this.recordMap),
183
185
  _step3;
184
186
  try {
@@ -192,6 +194,7 @@ var AnimationManager = /*#__PURE__*/function () {
192
194
  if (rec.status === 'playing' || rec.status === 'canceled') {
193
195
  continue;
194
196
  }
197
+ finalized = true;
195
198
  var tmodel = rec.tmodel,
196
199
  originalKey = rec.originalKey,
197
200
  cleanKey = rec.cleanKey;
@@ -199,10 +202,8 @@ var AnimationManager = /*#__PURE__*/function () {
199
202
  this.recordMap.delete(recId);
200
203
  this.completeRecord(tmodel, rec, cleanKey, originalKey);
201
204
  if (!tmodel.hasAnimatingTargets()) {
202
- if (tmodel.finalKeyframe) {
203
- if (tmodel.hasDom()) {
204
- AnimationUtil.fixStyleByAnimation(tmodel, tmodel.finalKeyframe);
205
- }
205
+ if (tmodel.finalKeyframe && tmodel.hasDom()) {
206
+ AnimationUtil.fixStyleByAnimation(tmodel, tmodel.finalKeyframe);
206
207
  }
207
208
  tmodel.lastBatch = undefined;
208
209
  }
@@ -215,7 +216,12 @@ var AnimationManager = /*#__PURE__*/function () {
215
216
  } finally {
216
217
  _iterator3.f();
217
218
  }
218
- getRunScheduler().schedule(35, "finalizeAnimation");
219
+ if (finalized) {
220
+ try {
221
+ anim.cancel();
222
+ } catch (_unused) {}
223
+ }
224
+ getRunScheduler().schedule(35, 'finalizeAnimation');
219
225
  }
220
226
  }, {
221
227
  key: "startProgressPoller",
@@ -333,10 +339,9 @@ var AnimationManager = /*#__PURE__*/function () {
333
339
  tmodel.val(originalKey, value);
334
340
  var targetValue = tmodel.targetValues[originalKey];
335
341
  if (targetValue) {
336
- var _targetValue$valueLis, _targetValue$valueLis2;
342
+ var _targetValue$valueLis;
337
343
  targetValue.step = tmodel.getTargetSteps(originalKey);
338
- targetValue.valuePointer = (_targetValue$valueLis = (_targetValue$valueLis2 = targetValue.valueList) === null || _targetValue$valueLis2 === void 0 ? void 0 : _targetValue$valueLis2.length) !== null && _targetValue$valueLis !== void 0 ? _targetValue$valueLis : 0;
339
- targetValue.value = value;
344
+ targetValue.valuePointer = (_targetValue$valueLis = targetValue.valueList) !== null && _targetValue$valueLis !== void 0 && _targetValue$valueLis.length ? targetValue.valueList.length - 1 : 0;
340
345
  tmodel.setActual(originalKey, value);
341
346
  if (tmodel.isTargetImperative(originalKey)) {
342
347
  targetValue.cycle = targetValue.cycles;
@@ -377,8 +382,8 @@ var AnimationManager = /*#__PURE__*/function () {
377
382
  continue;
378
383
  }
379
384
  var previousLogicalStep = baseStepOffset;
380
- for (var _i = i0 + 1; _i < i1; _i++) {
381
- var frame = frames[_i];
385
+ for (var _i2 = i0 + 1; _i2 < i1; _i2++) {
386
+ var frame = frames[_i2];
382
387
  var progress = TUtil.limit((frame.keyTime - t0) / spanTime, 0, 1);
383
388
  var localStep = Math.round(progress * spanSteps);
384
389
  var logicalStep = TUtil.limit(baseStepOffset + localStep, 0, segmentSteps);
@@ -405,8 +410,8 @@ var AnimationManager = /*#__PURE__*/function () {
405
410
  return;
406
411
  }
407
412
  var _segmentSteps = (_ref = (_lastMeta$segmentStep = lastMeta.segmentSteps) !== null && _lastMeta$segmentStep !== void 0 ? _lastMeta$segmentStep : lastMeta.steps) !== null && _ref !== void 0 ? _ref : 0;
408
- for (var _i2 = lastIndex + 1; _i2 < frames.length; _i2++) {
409
- var _frame = frames[_i2];
413
+ for (var _i3 = lastIndex + 1; _i3 < frames.length; _i3++) {
414
+ var _frame = frames[_i3];
410
415
  this.setAt(_frame, cleanKey, lastValue);
411
416
  _frame.keyMeta.set(cleanKey, _objectSpread(_objectSpread({}, lastMeta), {}, {
412
417
  steps: 0,
@@ -436,16 +441,6 @@ var AnimationManager = /*#__PURE__*/function () {
436
441
  AnimationUtil.addUnitsToFrame(out);
437
442
  AnimationUtil.fixStyleByAnimation(tmodel, out);
438
443
  }
439
- }, {
440
- key: "freezeTModelAtCurrentTime",
441
- value: function freezeTModelAtCurrentTime(tmodel) {
442
- if (!tmodel.lastBatch) {
443
- return;
444
- }
445
- var cutTime = Math.min(TUtil.now() - tmodel.lastBatch.startTime, tmodel.lastBatch.totalDuration);
446
- tmodel.lastBatch = this.cutLastBatch(tmodel, tmodel.lastBatch, cutTime);
447
- this.fixTModelStyleFromFrame(tmodel, tmodel.lastBatch.frames[0]);
448
- }
449
444
  }, {
450
445
  key: "collectFramesForKey",
451
446
  value: function collectFramesForKey(batch, cleanKey) {
@@ -468,6 +463,7 @@ var AnimationManager = /*#__PURE__*/function () {
468
463
  steps: meta === null || meta === void 0 ? void 0 : meta.steps,
469
464
  segmentSteps: meta === null || meta === void 0 ? void 0 : meta.segmentSteps,
470
465
  interval: meta === null || meta === void 0 ? void 0 : meta.interval,
466
+ easing: meta === null || meta === void 0 ? void 0 : meta.easing,
471
467
  stepOffset: (meta === null || meta === void 0 ? void 0 : meta.stepOffset) || 0,
472
468
  valuePointer: meta === null || meta === void 0 ? void 0 : meta.valuePointer,
473
469
  cycle: meta === null || meta === void 0 ? void 0 : meta.cycle,
@@ -503,16 +499,14 @@ var AnimationManager = /*#__PURE__*/function () {
503
499
  }, {
504
500
  key: "deleteAnimation",
505
501
  value: function deleteAnimation(tmodel) {
506
- var _iterator8 = _createForOfIteratorHelper(this.recordMap),
502
+ var records = [];
503
+ var _iterator8 = _createForOfIteratorHelper(this.recordMap.values()),
507
504
  _step8;
508
505
  try {
509
506
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
510
- var _step8$value = _slicedToArray(_step8.value, 2),
511
- recId = _step8$value[0],
512
- record = _step8$value[1];
513
- if (recId.startsWith("".concat(tmodel.oid, "-"))) {
514
- ;
515
- this.delete(record);
507
+ var _record = _step8.value;
508
+ if (_record.tmodel === tmodel) {
509
+ records.push(_record);
516
510
  }
517
511
  }
518
512
  } catch (err) {
@@ -520,10 +514,37 @@ var AnimationManager = /*#__PURE__*/function () {
520
514
  } finally {
521
515
  _iterator8.f();
522
516
  }
517
+ if (!records.length) {
518
+ return false;
519
+ }
520
+ var keys = new Set();
521
+ var animations = new Set();
522
+ for (var _i4 = 0, _records = records; _i4 < _records.length; _i4++) {
523
+ var record = _records[_i4];
524
+ keys.add(record.originalKey);
525
+ animations.add(record.anim);
526
+ }
527
+ TModelUtil.commitAnimatedStyles(tmodel, keys);
528
+ var _iterator9 = _createForOfIteratorHelper(animations),
529
+ _step9;
530
+ try {
531
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
532
+ var animation = _step9.value;
533
+ try {
534
+ animation.cancel();
535
+ } catch (_unused2) {}
536
+ }
537
+ } catch (err) {
538
+ _iterator9.e(err);
539
+ } finally {
540
+ _iterator9.f();
541
+ }
542
+ tmodel.clearAnimatingMap();
523
543
  tmodel.lastBatch = undefined;
544
+ tmodel.waapiBatch = undefined;
524
545
  tmodel.finalKeyframe = undefined;
525
546
  tmodel.finalRawFrame = undefined;
526
- tmodel.clearAnimatingMap();
547
+ return true;
527
548
  }
528
549
  }, {
529
550
  key: "cancelKey",
@@ -538,7 +559,7 @@ var AnimationManager = /*#__PURE__*/function () {
538
559
  key: "deleteAll",
539
560
  value: function () {
540
561
  var _deleteAll = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
541
- var tmodels, _iterator9, _step9, _step9$value, record, _iterator10, _step10, tmodel;
562
+ var animations, keysByTModel, _iterator10, _step10, record, keys, _iterator11, _step11, _step11$value, tmodel, _keys2, _iterator12, _step12, _record2, _iterator13, _step13, animation;
542
563
  return _regeneratorRuntime().wrap(function _callee$(_context) {
543
564
  while (1) switch (_context.prev = _context.next) {
544
565
  case 0:
@@ -548,39 +569,92 @@ var AnimationManager = /*#__PURE__*/function () {
548
569
  this.waapiPoller.rafId = 0;
549
570
  this.waapiPoller.alive = false;
550
571
  }
551
- tmodels = new Set();
552
- _iterator9 = _createForOfIteratorHelper(this.recordMap);
572
+ animations = new Set();
573
+ keysByTModel = new Map();
574
+ _iterator10 = _createForOfIteratorHelper(this.recordMap.values());
575
+ _context.prev = 5;
576
+ _iterator10.s();
577
+ case 7:
578
+ if ((_step10 = _iterator10.n()).done) {
579
+ _context.next = 18;
580
+ break;
581
+ }
582
+ record = _step10.value;
583
+ if (!(record.status === "canceled" || record.status === "detached")) {
584
+ _context.next = 11;
585
+ break;
586
+ }
587
+ return _context.abrupt("continue", 16);
588
+ case 11:
589
+ AnimationUtil.updateTModelFromRecord(record);
590
+ animations.add(record.anim);
591
+ keys = keysByTModel.get(record.tmodel);
592
+ if (!keys) {
593
+ keys = new Set();
594
+ keysByTModel.set(record.tmodel, keys);
595
+ }
596
+ keys.add(record.originalKey);
597
+ case 16:
598
+ _context.next = 7;
599
+ break;
600
+ case 18:
601
+ _context.next = 23;
602
+ break;
603
+ case 20:
604
+ _context.prev = 20;
605
+ _context.t0 = _context["catch"](5);
606
+ _iterator10.e(_context.t0);
607
+ case 23:
608
+ _context.prev = 23;
609
+ _iterator10.f();
610
+ return _context.finish(23);
611
+ case 26:
612
+ _iterator11 = _createForOfIteratorHelper(keysByTModel);
553
613
  try {
554
- for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
555
- _step9$value = _slicedToArray(_step9.value, 2), record = _step9$value[1];
556
- tmodels.add(record.tmodel);
614
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
615
+ _step11$value = _slicedToArray(_step11.value, 2), tmodel = _step11$value[0], _keys2 = _step11$value[1];
616
+ TModelUtil.commitAnimatedStyles(tmodel, _keys2);
617
+ AnimationUtil.addToUpdatingTargets(tmodel, _keys2);
618
+ tmodel.lastBatch = undefined;
619
+ tmodel.waapiBatch = undefined;
620
+ tmodel.finalKeyframe = undefined;
621
+ tmodel.finalRawFrame = undefined;
557
622
  }
558
623
  } catch (err) {
559
- _iterator9.e(err);
624
+ _iterator11.e(err);
560
625
  } finally {
561
- _iterator9.f();
626
+ _iterator11.f();
562
627
  }
563
- _iterator10 = _createForOfIteratorHelper(tmodels);
628
+ _iterator12 = _createForOfIteratorHelper(this.recordMap.values());
564
629
  try {
565
- for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
566
- tmodel = _step10.value;
567
- this.freezeTModelAtCurrentTime(tmodel);
568
- AnimationUtil.detachAnimationsOnDeleteDom(tmodel);
569
- tmodel.lastBatch = undefined;
570
- tmodel.finalKeyframe = undefined;
571
- tmodel.finalRawFrame = undefined;
630
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
631
+ _record2 = _step12.value;
632
+ _record2.status = "detached";
633
+ }
634
+ } catch (err) {
635
+ _iterator12.e(err);
636
+ } finally {
637
+ _iterator12.f();
638
+ }
639
+ _iterator13 = _createForOfIteratorHelper(animations);
640
+ try {
641
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
642
+ animation = _step13.value;
643
+ try {
644
+ animation.cancel();
645
+ } catch (_unused3) {}
572
646
  }
573
647
  } catch (err) {
574
- _iterator10.e(err);
648
+ _iterator13.e(err);
575
649
  } finally {
576
- _iterator10.f();
650
+ _iterator13.f();
577
651
  }
578
652
  this.recordMap.clear();
579
- case 8:
653
+ case 33:
580
654
  case "end":
581
655
  return _context.stop();
582
656
  }
583
- }, _callee, this);
657
+ }, _callee, this, [[5, 20, 23, 26]]);
584
658
  }));
585
659
  function deleteAll() {
586
660
  return _deleteAll.apply(this, arguments);
@@ -609,17 +683,121 @@ var AnimationManager = /*#__PURE__*/function () {
609
683
  }
610
684
  return flushOneFrame;
611
685
  }()
686
+ }, {
687
+ key: "cancelTModelAnimation",
688
+ value: function cancelTModelAnimation(tmodel) {
689
+ var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
690
+ _ref2$mode = _ref2.mode,
691
+ mode = _ref2$mode === void 0 ? "resume" : _ref2$mode,
692
+ _ref2$commitStyle = _ref2.commitStyle,
693
+ commitStyle = _ref2$commitStyle === void 0 ? true : _ref2$commitStyle;
694
+ var records = [];
695
+ var _iterator14 = _createForOfIteratorHelper(this.recordMap.values()),
696
+ _step14;
697
+ try {
698
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
699
+ var _record4 = _step14.value;
700
+ if (_record4.tmodel === tmodel) {
701
+ records.push(_record4);
702
+ }
703
+ }
704
+ } catch (err) {
705
+ _iterator14.e(err);
706
+ } finally {
707
+ _iterator14.f();
708
+ }
709
+ if (!records.length) {
710
+ return false;
711
+ }
712
+ var keys = new Set();
713
+ var animations = new Set();
714
+ for (var _i5 = 0, _records2 = records; _i5 < _records2.length; _i5++) {
715
+ var record = _records2[_i5];
716
+ if (record.status !== "canceled" && record.status !== "detached") {
717
+ AnimationUtil.updateTModelFromRecord(record);
718
+ }
719
+ keys.add(record.originalKey);
720
+ animations.add(record.anim);
721
+ }
722
+ if (commitStyle) {
723
+ TModelUtil.commitAnimatedStyles(tmodel, keys);
724
+ }
725
+ for (var _i6 = 0, _records3 = records; _i6 < _records3.length; _i6++) {
726
+ var _record3 = _records3[_i6];
727
+ _record3.status = "detached";
728
+ this.recordMap.delete(_record3.recId);
729
+ }
730
+ var _iterator15 = _createForOfIteratorHelper(animations),
731
+ _step15;
732
+ try {
733
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
734
+ var animation = _step15.value;
735
+ try {
736
+ animation.cancel();
737
+ } catch (_unused4) {}
738
+ }
739
+ } catch (err) {
740
+ _iterator15.e(err);
741
+ } finally {
742
+ _iterator15.f();
743
+ }
744
+ tmodel.clearAnimatingMap();
745
+ this.applyCanceledTargetMode(tmodel, keys, mode);
746
+ tmodel.lastBatch = undefined;
747
+ tmodel.waapiBatch = undefined;
748
+ tmodel.finalKeyframe = undefined;
749
+ tmodel.finalRawFrame = undefined;
750
+ return true;
751
+ }
752
+ }, {
753
+ key: "applyCanceledTargetMode",
754
+ value: function applyCanceledTargetMode(tmodel, keys, mode) {
755
+ var _iterator16 = _createForOfIteratorHelper(keys),
756
+ _step16;
757
+ try {
758
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
759
+ var key = _step16.value;
760
+ var targetValue = tmodel.targetValues[key];
761
+ if (!targetValue) {
762
+ continue;
763
+ }
764
+ if (mode === "resume") {
765
+ tmodel.setTargetStatus(key, "updating");
766
+ continue;
767
+ }
768
+ if (mode === "finish") {
769
+ this.finishCanceledTarget(tmodel, key);
770
+ continue;
771
+ }
772
+ }
773
+ } catch (err) {
774
+ _iterator16.e(err);
775
+ } finally {
776
+ _iterator16.f();
777
+ }
778
+ }
779
+ }, {
780
+ key: "finishCanceledTarget",
781
+ value: function finishCanceledTarget(tmodel, key) {
782
+ var record = this.recordMap.get(this.getRecordId(tmodel, key));
783
+ if (!record) {
784
+ return;
785
+ }
786
+ this.completeRecord(tmodel, record, record.cleanKey, key);
787
+ tmodel.removeFromAnimatingMap(key);
788
+ record.hooks.fireOnEnd(tmodel, key);
789
+ }
612
790
  }, {
613
791
  key: "fillCutFrameFromRecords",
614
792
  value: function fillCutFrameFromRecords(tmodel, cutFrame, cutTime, totalDuration) {
615
793
  var progress = totalDuration > 0 ? TUtil.limit(cutTime / totalDuration, 0, 1) : 1;
616
- var _iterator11 = _createForOfIteratorHelper(this.recordMap),
617
- _step11;
794
+ var _iterator17 = _createForOfIteratorHelper(this.recordMap),
795
+ _step17;
618
796
  try {
619
- for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
620
- var _ref2, _ref3, _result$remainingStep, _ref4, _result$steps, _targetValue$interval, _result$step;
621
- var _step11$value = _slicedToArray(_step11.value, 2),
622
- record = _step11$value[1];
797
+ for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
798
+ var _ref3, _ref4, _result$remainingStep, _ref5, _result$steps, _targetValue$interval, _result$step;
799
+ var _step17$value = _slicedToArray(_step17.value, 2),
800
+ record = _step17$value[1];
623
801
  if (record.tmodel !== tmodel) {
624
802
  continue;
625
803
  }
@@ -635,8 +813,8 @@ var AnimationManager = /*#__PURE__*/function () {
635
813
  var targetValue = tmodel.targetValues[originalKey];
636
814
  this.setAt(cutFrame, cleanKey, result.value);
637
815
  cutFrame.keyMeta.set(cleanKey, {
638
- steps: (_ref2 = (_ref3 = (_result$remainingStep = result.remainingSteps) !== null && _result$remainingStep !== void 0 ? _result$remainingStep : result.steps) !== null && _ref3 !== void 0 ? _ref3 : targetValue === null || targetValue === void 0 ? void 0 : targetValue.steps) !== null && _ref2 !== void 0 ? _ref2 : 0,
639
- segmentSteps: (_ref4 = (_result$steps = result.steps) !== null && _result$steps !== void 0 ? _result$steps : targetValue === null || targetValue === void 0 ? void 0 : targetValue.steps) !== null && _ref4 !== void 0 ? _ref4 : 0,
816
+ steps: (_ref3 = (_ref4 = (_result$remainingStep = result.remainingSteps) !== null && _result$remainingStep !== void 0 ? _result$remainingStep : result.steps) !== null && _ref4 !== void 0 ? _ref4 : targetValue === null || targetValue === void 0 ? void 0 : targetValue.steps) !== null && _ref3 !== void 0 ? _ref3 : 0,
817
+ segmentSteps: (_ref5 = (_result$steps = result.steps) !== null && _result$steps !== void 0 ? _result$steps : targetValue === null || targetValue === void 0 ? void 0 : targetValue.steps) !== null && _ref5 !== void 0 ? _ref5 : 0,
640
818
  interval: (_targetValue$interval = targetValue === null || targetValue === void 0 ? void 0 : targetValue.interval) !== null && _targetValue$interval !== void 0 ? _targetValue$interval : 8,
641
819
  stepOffset: (_result$step = result.step) !== null && _result$step !== void 0 ? _result$step : 0,
642
820
  valuePointer: result.valuePointer,
@@ -645,9 +823,9 @@ var AnimationManager = /*#__PURE__*/function () {
645
823
  });
646
824
  }
647
825
  } catch (err) {
648
- _iterator11.e(err);
826
+ _iterator17.e(err);
649
827
  } finally {
650
- _iterator11.f();
828
+ _iterator17.f();
651
829
  }
652
830
  }
653
831
  }, {
@@ -671,17 +849,17 @@ var AnimationManager = /*#__PURE__*/function () {
671
849
  var originalKeys = _toConsumableArray(new Set(Object.values(batch.keyMap).flatMap(function (set) {
672
850
  return _toConsumableArray(set);
673
851
  })));
674
- var _iterator12 = _createForOfIteratorHelper(originalKeys),
675
- _step12;
852
+ var _iterator18 = _createForOfIteratorHelper(originalKeys),
853
+ _step18;
676
854
  try {
677
- for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
678
- var originalKey = _step12.value;
855
+ for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
856
+ var originalKey = _step18.value;
679
857
  this.backfillKeyAcrossFramesUsingMorph(tmodel, originalKey, batch.frames);
680
858
  }
681
859
  } catch (err) {
682
- _iterator12.e(err);
860
+ _iterator18.e(err);
683
861
  } finally {
684
- _iterator12.f();
862
+ _iterator18.f();
685
863
  }
686
864
  batch.frames = batch.frames.slice(i);
687
865
  }
@@ -696,8 +874,8 @@ var AnimationManager = /*#__PURE__*/function () {
696
874
  value: function callFireOnEndOnConflict(tmodel, lastBatch, newBatch) {
697
875
  var oldMap = lastBatch.keyMap; // cleanKey -> Set
698
876
  var newMap = newBatch.keyMap;
699
- for (var _i3 = 0, _Object$keys = Object.keys(newMap); _i3 < _Object$keys.length; _i3++) {
700
- var cleanKey = _Object$keys[_i3];
877
+ for (var _i7 = 0, _Object$keys2 = Object.keys(newMap); _i7 < _Object$keys2.length; _i7++) {
878
+ var cleanKey = _Object$keys2[_i7];
701
879
  var oldSet = oldMap[cleanKey];
702
880
  var newSet = newMap[cleanKey];
703
881
  if (!oldSet || !newSet) {
@@ -705,11 +883,11 @@ var AnimationManager = /*#__PURE__*/function () {
705
883
  }
706
884
 
707
885
  // Any old originalKey that’s not present anymore should be completed/canceled.
708
- var _iterator13 = _createForOfIteratorHelper(oldSet),
709
- _step13;
886
+ var _iterator19 = _createForOfIteratorHelper(oldSet),
887
+ _step19;
710
888
  try {
711
- for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
712
- var oldOriginal = _step13.value;
889
+ for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
890
+ var oldOriginal = _step19.value;
713
891
  if (newSet.has(oldOriginal)) {
714
892
  continue;
715
893
  }
@@ -724,9 +902,9 @@ var AnimationManager = /*#__PURE__*/function () {
724
902
  }
725
903
  }
726
904
  } catch (err) {
727
- _iterator13.e(err);
905
+ _iterator19.e(err);
728
906
  } finally {
729
- _iterator13.f();
907
+ _iterator19.f();
730
908
  }
731
909
  }
732
910
  }
@@ -734,87 +912,103 @@ var AnimationManager = /*#__PURE__*/function () {
734
912
  key: "mergeBatches",
735
913
  value: function mergeBatches(lastBatch, newBatch) {
736
914
  var newCleanKeys = new Set(Object.keys(newBatch.keyMap));
737
- var oldFrames = [];
738
- var _iterator14 = _createForOfIteratorHelper(lastBatch.frames),
739
- _step14;
740
- try {
741
- for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
742
- var frame = _step14.value;
743
- var _iterator16 = _createForOfIteratorHelper(newCleanKeys),
744
- _step16;
745
- try {
746
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
747
- var _frame$keyMeta;
748
- var _key = _step16.value;
749
- delete frame.styleMap[_key];
750
- delete frame.tfMap[_key];
751
- (_frame$keyMeta = frame.keyMeta) === null || _frame$keyMeta === void 0 || _frame$keyMeta.delete(_key);
752
- }
753
- } catch (err) {
754
- _iterator16.e(err);
755
- } finally {
756
- _iterator16.f();
757
- }
758
- if (Object.keys(frame.styleMap).length || Object.keys(frame.tfMap).length) {
759
- oldFrames.push(frame);
760
- }
761
- }
762
- } catch (err) {
763
- _iterator14.e(err);
764
- } finally {
765
- _iterator14.f();
766
- }
767
915
  var oldKeyMap = {};
768
- for (var _i4 = 0, _Object$entries = Object.entries(lastBatch.keyMap); _i4 < _Object$entries.length; _i4++) {
769
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i4], 2),
916
+ for (var _i8 = 0, _Object$entries = Object.entries(lastBatch.keyMap); _i8 < _Object$entries.length; _i8++) {
917
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i8], 2),
770
918
  key = _Object$entries$_i[0],
771
- set = _Object$entries$_i[1];
919
+ originalKeys = _Object$entries$_i[1];
772
920
  if (!newCleanKeys.has(key)) {
773
- oldKeyMap[key] = set;
921
+ oldKeyMap[key] = originalKeys;
774
922
  }
775
923
  }
776
- newBatch.frames = [].concat(oldFrames, _toConsumableArray(newBatch.frames));
777
- newBatch.frames.sort(function (a, b) {
924
+ var oldCleanKeys = Object.keys(oldKeyMap);
925
+ var oldFrames = [];
926
+ if (oldCleanKeys.length) {
927
+ var _iterator20 = _createForOfIteratorHelper(lastBatch.frames),
928
+ _step20;
929
+ try {
930
+ for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
931
+ var frame = _step20.value;
932
+ var oldFrame = {
933
+ keyTime: frame.keyTime,
934
+ tfMap: {},
935
+ styleMap: {},
936
+ keyMeta: new Map()
937
+ };
938
+ var _iterator21 = _createForOfIteratorHelper(oldCleanKeys),
939
+ _step21;
940
+ try {
941
+ for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
942
+ var _frame$keyMeta;
943
+ var _key = _step21.value;
944
+ if (TUtil.isDefined(frame.tfMap[_key])) {
945
+ oldFrame.tfMap[_key] = frame.tfMap[_key];
946
+ }
947
+ if (TUtil.isDefined(frame.styleMap[_key])) {
948
+ oldFrame.styleMap[_key] = frame.styleMap[_key];
949
+ }
950
+ var meta = (_frame$keyMeta = frame.keyMeta) === null || _frame$keyMeta === void 0 ? void 0 : _frame$keyMeta.get(_key);
951
+ if (meta) {
952
+ oldFrame.keyMeta.set(_key, meta);
953
+ }
954
+ }
955
+ } catch (err) {
956
+ _iterator21.e(err);
957
+ } finally {
958
+ _iterator21.f();
959
+ }
960
+ if (Object.keys(oldFrame.tfMap).length || Object.keys(oldFrame.styleMap).length) {
961
+ oldFrames.push(oldFrame);
962
+ }
963
+ }
964
+ } catch (err) {
965
+ _iterator20.e(err);
966
+ } finally {
967
+ _iterator20.f();
968
+ }
969
+ }
970
+ var frames = [].concat(oldFrames, _toConsumableArray(newBatch.frames));
971
+ frames.sort(function (a, b) {
778
972
  return a.keyTime - b.keyTime;
779
973
  });
780
974
  var merged = [];
781
- var _iterator15 = _createForOfIteratorHelper(newBatch.frames),
782
- _step15;
975
+ var _iterator22 = _createForOfIteratorHelper(frames),
976
+ _step22;
783
977
  try {
784
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
785
- var f = _step15.value;
978
+ for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
979
+ var _frame2 = _step22.value;
786
980
  var last = merged[merged.length - 1];
787
- if (last && Math.abs(last.keyTime - f.keyTime) < 0.0001) {
788
- Object.assign(last.styleMap, f.styleMap);
789
- Object.assign(last.tfMap, f.tfMap);
790
- if (f.keyMeta) {
791
- var _iterator17 = _createForOfIteratorHelper(f.keyMeta),
792
- _step17;
793
- try {
794
- for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
795
- var _step17$value = _slicedToArray(_step17.value, 2),
796
- k = _step17$value[0],
797
- v = _step17$value[1];
798
- last.keyMeta.set(k, v);
799
- }
800
- } catch (err) {
801
- _iterator17.e(err);
802
- } finally {
803
- _iterator17.f();
981
+ if (last && Math.abs(last.keyTime - _frame2.keyTime) < 0.0001) {
982
+ Object.assign(last.styleMap, _frame2.styleMap);
983
+ Object.assign(last.tfMap, _frame2.tfMap);
984
+ var _iterator23 = _createForOfIteratorHelper(_frame2.keyMeta),
985
+ _step23;
986
+ try {
987
+ for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
988
+ var _step23$value = _slicedToArray(_step23.value, 2),
989
+ _key2 = _step23$value[0],
990
+ _meta = _step23$value[1];
991
+ last.keyMeta.set(_key2, _meta);
804
992
  }
993
+ } catch (err) {
994
+ _iterator23.e(err);
995
+ } finally {
996
+ _iterator23.f();
805
997
  }
806
998
  } else {
807
- merged.push(f);
999
+ merged.push(_frame2);
808
1000
  }
809
1001
  }
810
1002
  } catch (err) {
811
- _iterator15.e(err);
1003
+ _iterator22.e(err);
812
1004
  } finally {
813
- _iterator15.f();
1005
+ _iterator22.f();
814
1006
  }
815
- newBatch.keyMap = _objectSpread(_objectSpread({}, oldKeyMap), newBatch.keyMap);
816
1007
  newBatch.frames = merged;
817
- newBatch.totalDuration = newBatch.frames.length ? newBatch.frames[newBatch.frames.length - 1].keyTime : 0;
1008
+ newBatch.keyMap = _objectSpread(_objectSpread({}, oldKeyMap), newBatch.keyMap);
1009
+ newBatch.totalDuration = merged.reduce(function (duration, frame) {
1010
+ return Math.max(duration, frame.keyTime);
1011
+ }, 0);
818
1012
  }
819
1013
  }, {
820
1014
  key: "areFramesEqual",
@@ -824,8 +1018,8 @@ var AnimationManager = /*#__PURE__*/function () {
824
1018
  if (keysA.length !== keysB.length) {
825
1019
  return false;
826
1020
  }
827
- for (var _i5 = 0, _keysA = keysA; _i5 < _keysA.length; _i5++) {
828
- var k = _keysA[_i5];
1021
+ for (var _i9 = 0, _keysA = keysA; _i9 < _keysA.length; _i9++) {
1022
+ var k = _keysA[_i9];
829
1023
  if (k === 'offset') {
830
1024
  continue;
831
1025
  }
@@ -861,25 +1055,25 @@ var AnimationManager = /*#__PURE__*/function () {
861
1055
  var cutTime = Math.min(TUtil.now() - tmodel.lastBatch.startTime, tmodel.lastBatch.totalDuration);
862
1056
  var batch = this.cutLastBatch(tmodel, tmodel.lastBatch, cutTime);
863
1057
  AnimationUtil.rebaseCutBatchMeta(tmodel, batch);
864
- var _iterator18 = _createForOfIteratorHelper(batch.frames),
865
- _step18;
1058
+ var _iterator24 = _createForOfIteratorHelper(batch.frames),
1059
+ _step24;
866
1060
  try {
867
- for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
868
- var frame = _step18.value;
869
- for (var _i7 = 0, _Object$entries3 = Object.entries(tfUpdates); _i7 < _Object$entries3.length; _i7++) {
870
- var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i7], 2),
871
- _key2 = _Object$entries3$_i[0],
1061
+ for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
1062
+ var frame = _step24.value;
1063
+ for (var _i11 = 0, _Object$entries3 = Object.entries(tfUpdates); _i11 < _Object$entries3.length; _i11++) {
1064
+ var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i11], 2),
1065
+ _key3 = _Object$entries3$_i[0],
872
1066
  _value = _Object$entries3$_i[1];
873
- frame.tfMap[_key2] = _value;
1067
+ frame.tfMap[_key3] = _value;
874
1068
  }
875
1069
  }
876
1070
  } catch (err) {
877
- _iterator18.e(err);
1071
+ _iterator24.e(err);
878
1072
  } finally {
879
- _iterator18.f();
1073
+ _iterator24.f();
880
1074
  }
881
- for (var _i6 = 0, _Object$entries2 = Object.entries(tfUpdates); _i6 < _Object$entries2.length; _i6++) {
882
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i6], 2),
1075
+ for (var _i10 = 0, _Object$entries2 = Object.entries(tfUpdates); _i10 < _Object$entries2.length; _i10++) {
1076
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i10], 2),
883
1077
  key = _Object$entries2$_i[0],
884
1078
  value = _Object$entries2$_i[1];
885
1079
  tmodel.tfMap[key] = value;