targetj 1.0.238 → 1.0.239

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.
@@ -8,7 +8,20 @@ var _TargetUtil = require("./TargetUtil.js");
8
8
  var _TargetData = require("./TargetData.js");
9
9
  var _TModelUtil = require("./TModelUtil.js");
10
10
  var _App = require("./App.js");
11
+ var _ScheduleUtil = require("./ScheduleUtil.js");
12
+ var _TUtil = require("./TUtil.js");
11
13
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
14
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
15
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
17
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
18
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
19
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
21
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
22
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
23
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
24
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
12
25
  function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
13
26
  function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
14
27
  function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
@@ -22,6 +35,15 @@ var AnimationUtil = exports.AnimationUtil = /*#__PURE__*/function () {
22
35
  _classCallCheck(this, AnimationUtil);
23
36
  }
24
37
  return _createClass(AnimationUtil, null, [{
38
+ key: "emptyBatch",
39
+ value: function emptyBatch() {
40
+ return {
41
+ frames: [],
42
+ keyMap: {},
43
+ totalDuration: 0
44
+ };
45
+ }
46
+ }, {
25
47
  key: "overrideAnimatedKeyWithSnap",
26
48
  value: function overrideAnimatedKeyWithSnap(tmodel, keys, values) {
27
49
  var keyList = Array.isArray(keys) ? keys : [keys];
@@ -38,7 +60,7 @@ var AnimationUtil = exports.AnimationUtil = /*#__PURE__*/function () {
38
60
  var key = keyList[i];
39
61
  needsAnimation = true;
40
62
  var value = valueList[i];
41
- var targetValue = tmodel.targetValues[key];
63
+ var targetValue = tmodel.targetValues[key] || _TargetUtil.TargetUtil.emptyValue();
42
64
  var cleanKey = _TargetUtil.TargetUtil.getTargetName(key);
43
65
  if (_TargetData.TargetData.isTransformKey(cleanKey)) {
44
66
  tfMap0[cleanKey] = value;
@@ -56,12 +78,10 @@ var AnimationUtil = exports.AnimationUtil = /*#__PURE__*/function () {
56
78
  interval: 1
57
79
  });
58
80
  (keyMap[cleanKey] = new Set()).add(key);
59
- if (targetValue) {
60
- targetValue.value = value;
61
- targetValue.steps = 1;
62
- targetValue.interval = 0;
63
- targetValue.snapAnimation = true;
64
- }
81
+ targetValue.value = value;
82
+ targetValue.steps = 1;
83
+ targetValue.interval = 0;
84
+ targetValue.snapAnimation = true;
65
85
  }
66
86
  if (!needsAnimation) {
67
87
  return;
@@ -149,7 +169,7 @@ var AnimationUtil = exports.AnimationUtil = /*#__PURE__*/function () {
149
169
  value: function getAnimationHooks() {
150
170
  return {
151
171
  morph: function morph(tm, key, from, to, step, steps) {
152
- return _TModelUtil.TModelUtil.morph(tm, key, from, to, step, steps);
172
+ return _TModelUtil.TModelUtil.easingMorph(tm, key, from, to, step, steps);
153
173
  },
154
174
  fireOnStep: function fireOnStep(tm, key, step) {
155
175
  return (0, _App.getTargetManager)().fireOnStep(tm, key, step);
@@ -159,5 +179,533 @@ var AnimationUtil = exports.AnimationUtil = /*#__PURE__*/function () {
159
179
  }
160
180
  };
161
181
  }
182
+ }, {
183
+ key: "addToUpdatingTargets",
184
+ value: function addToUpdatingTargets(tmodel, originalKeys) {
185
+ var recordMap = (0, _App.getAnimationManager)().recordMap;
186
+ var records = [];
187
+ var _iterator = _createForOfIteratorHelper(recordMap),
188
+ _step;
189
+ try {
190
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
191
+ var _step$value = _slicedToArray(_step.value, 2),
192
+ _record = _step$value[1];
193
+ if (_record.tmodel !== tmodel) {
194
+ continue;
195
+ }
196
+ if (originalKeys && !originalKeys.has(_record.originalKey)) {
197
+ continue;
198
+ }
199
+ records.push(_record);
200
+ }
201
+ } catch (err) {
202
+ _iterator.e(err);
203
+ } finally {
204
+ _iterator.f();
205
+ }
206
+ for (var _i3 = 0, _records = records; _i3 < _records.length; _i3++) {
207
+ var _tmodel$noDomUpdating, _tmodel$noDomUpdating2;
208
+ var record = _records[_i3];
209
+ var originalKey = record.originalKey;
210
+ var targetValue = tmodel.targetValues[originalKey];
211
+ if (!targetValue) {
212
+ continue;
213
+ }
214
+ (_tmodel$noDomUpdating = tmodel.noDomUpdatingTargets) === null || _tmodel$noDomUpdating === void 0 || _tmodel$noDomUpdating.delete(originalKey);
215
+ if (((_tmodel$noDomUpdating2 = tmodel.noDomUpdatingTargets) === null || _tmodel$noDomUpdating2 === void 0 ? void 0 : _tmodel$noDomUpdating2.size) === 0) {
216
+ tmodel.noDomUpdatingTargets = undefined;
217
+ }
218
+ tmodel.setTargetStatus(originalKey, 'updating');
219
+ tmodel.removeFromAnimatingMap(originalKey);
220
+ }
221
+ }
222
+ }, {
223
+ key: "addToNODomUpdatingTargets",
224
+ value: function addToNODomUpdatingTargets(tmodel, originalKeys) {
225
+ var recordMap = (0, _App.getAnimationManager)().recordMap;
226
+ var records = [];
227
+ var _iterator2 = _createForOfIteratorHelper(recordMap),
228
+ _step2;
229
+ try {
230
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
231
+ var _step2$value = _slicedToArray(_step2.value, 2),
232
+ _record2 = _step2$value[1];
233
+ if (_record2.tmodel !== tmodel) {
234
+ continue;
235
+ }
236
+ if (originalKeys && !originalKeys.has(_record2.originalKey)) {
237
+ continue;
238
+ }
239
+ records.push(_record2);
240
+ }
241
+ } catch (err) {
242
+ _iterator2.e(err);
243
+ } finally {
244
+ _iterator2.f();
245
+ }
246
+ var now = _TUtil.TUtil.now();
247
+ for (var _i4 = 0, _records2 = records; _i4 < _records2.length; _i4++) {
248
+ var record = _records2[_i4];
249
+ var originalKey = record.originalKey;
250
+ var targetValue = tmodel.targetValues[originalKey];
251
+ if (!targetValue) {
252
+ continue;
253
+ }
254
+ targetValue.catchupAt = now;
255
+ tmodel.removeFromAnimatingMap(originalKey);
256
+ (tmodel.noDomUpdatingTargets || (tmodel.noDomUpdatingTargets = new Set())).add(originalKey);
257
+ }
258
+ }
259
+ }, {
260
+ key: "removeKeysFromBatch",
261
+ value: function removeKeysFromBatch(batch, originalKeys) {
262
+ if (!batch || !(originalKeys !== null && originalKeys !== void 0 && originalKeys.size)) {
263
+ return;
264
+ }
265
+ var _iterator3 = _createForOfIteratorHelper(batch.frames),
266
+ _step3;
267
+ try {
268
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
269
+ var frame = _step3.value;
270
+ var _iterator5 = _createForOfIteratorHelper(originalKeys),
271
+ _step5;
272
+ try {
273
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
274
+ var originalKey = _step5.value;
275
+ var cleanKey = _TargetUtil.TargetUtil.getTargetName(originalKey);
276
+ delete frame.styleMap[cleanKey];
277
+ delete frame.tfMap[cleanKey];
278
+ if (frame.keyMeta) {
279
+ frame.keyMeta.delete(cleanKey);
280
+ }
281
+ }
282
+ } catch (err) {
283
+ _iterator5.e(err);
284
+ } finally {
285
+ _iterator5.f();
286
+ }
287
+ }
288
+ } catch (err) {
289
+ _iterator3.e(err);
290
+ } finally {
291
+ _iterator3.f();
292
+ }
293
+ var _iterator4 = _createForOfIteratorHelper(originalKeys),
294
+ _step4;
295
+ try {
296
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
297
+ var _originalKey = _step4.value;
298
+ var _cleanKey = _TargetUtil.TargetUtil.getTargetName(_originalKey);
299
+ delete batch.keyMap[_cleanKey];
300
+ }
301
+ } catch (err) {
302
+ _iterator4.e(err);
303
+ } finally {
304
+ _iterator4.f();
305
+ }
306
+ batch.frames = batch.frames.filter(function (frame) {
307
+ return Object.keys(frame.styleMap).length || Object.keys(frame.tfMap).length;
308
+ });
309
+ batch.totalDuration = batch.frames.length ? batch.frames[batch.frames.length - 1].keyTime : 0;
310
+ }
311
+ }, {
312
+ key: "updateTModelFromRecord",
313
+ value: function updateTModelFromRecord(record) {
314
+ var tmodel = record.tmodel,
315
+ originalKey = record.originalKey,
316
+ cleanKey = record.cleanKey;
317
+ if (!tmodel.hasDom()) {
318
+ return;
319
+ }
320
+ var result = AnimationUtil.getValueFromAnim(record);
321
+ if (!result) {
322
+ return;
323
+ }
324
+ var value = result.value,
325
+ step = result.step,
326
+ steps = result.steps,
327
+ cycle = result.cycle,
328
+ valuePointer = result.valuePointer;
329
+ (0, _App.getAnimationManager)().setAt(tmodel, cleanKey, value);
330
+ tmodel.val(originalKey, value);
331
+ var targetValue = tmodel.targetValues[originalKey];
332
+ if (targetValue) {
333
+ if (_TUtil.TUtil.isDefined(step) && _TUtil.TUtil.isDefined(steps) && steps > 0) {
334
+ targetValue.step = step;
335
+ }
336
+ if (_TUtil.TUtil.isDefined(valuePointer)) {
337
+ targetValue.valuePointer = valuePointer;
338
+ }
339
+ if (_TUtil.TUtil.isDefined(cycle)) {
340
+ targetValue.cycle = cycle;
341
+ }
342
+ tmodel.setActual(originalKey, value);
343
+ var fireKey = "".concat(cycle, ":").concat(valuePointer, ":").concat(step);
344
+ if (record.needsFireOnStep && step > 0 && steps > 0 && record.lastFireOnStepKey !== fireKey) {
345
+ record.lastFireOnStepKey = fireKey;
346
+ var needsRefire = record.hooks.fireOnStep(tmodel, originalKey, step);
347
+ if (!needsRefire) {
348
+ record.needsFireOnStep = false;
349
+ }
350
+ }
351
+ }
352
+ return result;
353
+ }
354
+ }, {
355
+ key: "getValueFromAnim",
356
+ value: function getValueFromAnim(record) {
357
+ var _anim$effect, _anim$effect$getCompu, _right$segmentSteps, _ref3, _right$valuePointer2, _ref4, _right$cycle2;
358
+ var originalKey = record.originalKey,
359
+ anim = record.anim,
360
+ frames = record.frames;
361
+ if (!frames) {
362
+ return;
363
+ }
364
+ var ct = (_anim$effect = anim.effect) === null || _anim$effect === void 0 || (_anim$effect$getCompu = _anim$effect.getComputedTiming) === null || _anim$effect$getCompu === void 0 ? void 0 : _anim$effect$getCompu.call(_anim$effect);
365
+ if (!ct) {
366
+ return;
367
+ }
368
+ var p = _TUtil.TUtil.isDefined(ct.progress) ? _TUtil.TUtil.limit(ct.progress, 0, 1) : 1;
369
+ var last = frames.length - 1;
370
+ var framePointer = 0;
371
+ if (p <= frames[0].offset) {
372
+ framePointer = 0;
373
+ } else if (p >= frames[last].offset) {
374
+ framePointer = last - 1;
375
+ } else {
376
+ for (var i = 0; i < last; i++) {
377
+ if (p >= frames[i].offset && p < frames[i + 1].offset) {
378
+ framePointer = i;
379
+ break;
380
+ }
381
+ }
382
+ }
383
+ var left = frames[framePointer];
384
+ var right = frames[framePointer + 1];
385
+ var from = left.value;
386
+ var to = right.value;
387
+ var segStart = left.offset;
388
+ var segEnd = right.offset;
389
+ var segSpan = segEnd - segStart;
390
+ if (segSpan <= 0) {
391
+ return;
392
+ }
393
+ var u = _TUtil.TUtil.limit((p - segStart) / segSpan, 0, 1);
394
+ var value = _TModelUtil.TModelUtil.morph(originalKey, from, to, u);
395
+ var remainingSteps = right.steps;
396
+ if (!_TUtil.TUtil.isDefined(remainingSteps) || remainingSteps <= 0) {
397
+ var _ref, _right$valuePointer, _ref2, _right$cycle;
398
+ return {
399
+ value: value,
400
+ framePointer: framePointer,
401
+ step: right.segmentSteps,
402
+ steps: right.segmentSteps,
403
+ from: from,
404
+ to: to,
405
+ valuePointer: (_ref = (_right$valuePointer = right.valuePointer) !== null && _right$valuePointer !== void 0 ? _right$valuePointer : left.valuePointer) !== null && _ref !== void 0 ? _ref : 0,
406
+ cycle: (_ref2 = (_right$cycle = right.cycle) !== null && _right$cycle !== void 0 ? _right$cycle : left.cycle) !== null && _ref2 !== void 0 ? _ref2 : 0,
407
+ status: right.done ? "finished" : "playing"
408
+ };
409
+ }
410
+ var localStep = Math.round(u * remainingSteps);
411
+ localStep = _TUtil.TUtil.limit(localStep, 0, remainingSteps);
412
+ var stepOffset = right.stepOffset || 0;
413
+ var segmentSteps = (_right$segmentSteps = right.segmentSteps) !== null && _right$segmentSteps !== void 0 ? _right$segmentSteps : stepOffset + remainingSteps;
414
+ var step = _TUtil.TUtil.limit(stepOffset + localStep, 0, segmentSteps);
415
+ var status = right.done ? "finished" : "playing";
416
+ return {
417
+ value: value,
418
+ step: step,
419
+ steps: segmentSteps,
420
+ valuePointer: (_ref3 = (_right$valuePointer2 = right.valuePointer) !== null && _right$valuePointer2 !== void 0 ? _right$valuePointer2 : left.valuePointer) !== null && _ref3 !== void 0 ? _ref3 : 0,
421
+ cycle: (_ref4 = (_right$cycle2 = right.cycle) !== null && _right$cycle2 !== void 0 ? _right$cycle2 : left.cycle) !== null && _ref4 !== void 0 ? _ref4 : 0,
422
+ from: from,
423
+ to: to,
424
+ status: status
425
+ };
426
+ }
427
+ }, {
428
+ key: "detachAnimationsOnDeleteDom",
429
+ value: function detachAnimationsOnDeleteDom(tmodel) {
430
+ var recordMap = (0, _App.getAnimationManager)().recordMap;
431
+ var pauseKeys = new Set();
432
+ var catchupKeys = new Set();
433
+ var _iterator6 = _createForOfIteratorHelper(recordMap),
434
+ _step6;
435
+ try {
436
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
437
+ var _step6$value = _slicedToArray(_step6.value, 2),
438
+ record = _step6$value[1];
439
+ if (record.tmodel !== tmodel) {
440
+ continue;
441
+ }
442
+ if (_ScheduleUtil.ScheduleUtil.shouldPauseTarget(tmodel, record.originalKey)) {
443
+ pauseKeys.add(record.originalKey);
444
+ } else {
445
+ catchupKeys.add(record.originalKey);
446
+ }
447
+ }
448
+ } catch (err) {
449
+ _iterator6.e(err);
450
+ } finally {
451
+ _iterator6.f();
452
+ }
453
+ if (pauseKeys.size) {
454
+ AnimationUtil.addToUpdatingTargets(tmodel, pauseKeys);
455
+ }
456
+ if (catchupKeys.size) {
457
+ AnimationUtil.addToNODomUpdatingTargets(tmodel, catchupKeys);
458
+ }
459
+ AnimationUtil.deleteDetachedRecords(tmodel, new Set([].concat(_toConsumableArray(pauseKeys), _toConsumableArray(catchupKeys))));
460
+ }
461
+ }, {
462
+ key: "deleteDetachedRecords",
463
+ value: function deleteDetachedRecords(tmodel, keys) {
464
+ var recordMap = (0, _App.getAnimationManager)().recordMap;
465
+ var _iterator7 = _createForOfIteratorHelper(recordMap),
466
+ _step7;
467
+ try {
468
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
469
+ var _step7$value = _slicedToArray(_step7.value, 2),
470
+ recId = _step7$value[0],
471
+ record = _step7$value[1];
472
+ if (record.tmodel !== tmodel) {
473
+ continue;
474
+ }
475
+ if (!keys.has(record.originalKey)) {
476
+ continue;
477
+ }
478
+ record.status = 'detached';
479
+ try {
480
+ record.anim.cancel();
481
+ } catch (_unused) {}
482
+ tmodel.removeFromAnimatingMap(record.originalKey);
483
+ recordMap.delete(recId);
484
+ }
485
+ } catch (err) {
486
+ _iterator7.e(err);
487
+ } finally {
488
+ _iterator7.f();
489
+ }
490
+ tmodel.clearAnimatingMap();
491
+ tmodel.lastBatch = undefined;
492
+ tmodel.finalKeyframe = undefined;
493
+ tmodel.finalRawFrame = undefined;
494
+ }
495
+ }, {
496
+ key: "rebaseCutBatchMeta",
497
+ value: function rebaseCutBatchMeta(tmodel, batch) {
498
+ var _batch$frames;
499
+ if (!batch || !((_batch$frames = batch.frames) !== null && _batch$frames !== void 0 && _batch$frames.length)) {
500
+ return;
501
+ }
502
+ for (var _i5 = 0, _Object$entries = Object.entries(batch.keyMap); _i5 < _Object$entries.length; _i5++) {
503
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i5], 2),
504
+ cleanKey = _Object$entries$_i[0],
505
+ originalKeys = _Object$entries$_i[1];
506
+ var _iterator8 = _createForOfIteratorHelper(originalKeys),
507
+ _step8;
508
+ try {
509
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
510
+ var originalKey = _step8.value;
511
+ var targetValue = tmodel.targetValues[originalKey];
512
+ if (!targetValue) {
513
+ continue;
514
+ }
515
+ var currentStep = targetValue.step || 0;
516
+ for (var i = 1; i < batch.frames.length; i++) {
517
+ var _frame$keyMeta;
518
+ var frame = batch.frames[i];
519
+ if ((0, _App.getAnimationManager)().getAt(frame, cleanKey) === undefined) {
520
+ continue;
521
+ }
522
+ var meta = (_frame$keyMeta = frame.keyMeta) === null || _frame$keyMeta === void 0 ? void 0 : _frame$keyMeta.get(cleanKey);
523
+ if (!meta || !_TUtil.TUtil.isDefined(meta.steps)) {
524
+ continue;
525
+ }
526
+ var oldOffset = meta.stepOffset || 0;
527
+ var oldTotal = oldOffset + meta.steps;
528
+ if (currentStep > oldOffset && currentStep < oldTotal) {
529
+ meta.stepOffset = currentStep;
530
+ meta.steps = oldTotal - currentStep;
531
+ }
532
+ break;
533
+ }
534
+ }
535
+ } catch (err) {
536
+ _iterator8.e(err);
537
+ } finally {
538
+ _iterator8.f();
539
+ }
540
+ }
541
+ }
542
+ }, {
543
+ key: "removeCleanKeyFromBatch",
544
+ value: function removeCleanKeyFromBatch(batch, cleanKey) {
545
+ if (!batch) {
546
+ return false;
547
+ }
548
+ var previousDuration = batch.totalDuration || 0;
549
+ var removed = false;
550
+ var _iterator9 = _createForOfIteratorHelper(batch.frames),
551
+ _step9;
552
+ try {
553
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
554
+ var _frame$keyMeta2;
555
+ var frame = _step9.value;
556
+ if (frame.tfMap[cleanKey] !== undefined || frame.styleMap[cleanKey] !== undefined) {
557
+ removed = true;
558
+ }
559
+ delete frame.tfMap[cleanKey];
560
+ delete frame.styleMap[cleanKey];
561
+ (_frame$keyMeta2 = frame.keyMeta) === null || _frame$keyMeta2 === void 0 || _frame$keyMeta2.delete(cleanKey);
562
+ }
563
+ } catch (err) {
564
+ _iterator9.e(err);
565
+ } finally {
566
+ _iterator9.f();
567
+ }
568
+ delete batch.keyMap[cleanKey];
569
+ batch.frames = batch.frames.filter(function (frame) {
570
+ return Object.keys(frame.tfMap).length || Object.keys(frame.styleMap).length;
571
+ });
572
+ batch.frames.sort(function (a, b) {
573
+ return a.keyTime - b.keyTime;
574
+ });
575
+ batch.totalDuration = batch.frames.length ? Math.max.apply(Math, [previousDuration].concat(_toConsumableArray(batch.frames.map(function (frame) {
576
+ return frame.keyTime;
577
+ })))) : 0;
578
+ return removed;
579
+ }
580
+ }, {
581
+ key: "handleWebAnimationAPI",
582
+ value: function handleWebAnimationAPI(tmodel, cleanKey, key, targetValue, from, to, valuePointer, step, steps, interval, timeShift) {
583
+ var _batch$keyMap;
584
+ var skipStartFrame = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : false;
585
+ var replaceExistingKey = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : true;
586
+ var batch = tmodel.waapiBatch || (tmodel.waapiBatch = {
587
+ frames: [],
588
+ easing: undefined,
589
+ keyMap: {},
590
+ totalDuration: 0
591
+ });
592
+ var replacedExistingKey = false;
593
+ if (replaceExistingKey) {
594
+ replacedExistingKey = AnimationUtil.removeCleanKeyFromBatch(batch, cleanKey);
595
+ if (replacedExistingKey) {
596
+ timeShift = 0;
597
+ }
598
+ }
599
+ var isTransform = _TargetData.TargetData.isTransformKey(cleanKey);
600
+ var getFrameAtTime = function getFrameAtTime(t) {
601
+ var shifted = Math.max(0, t + timeShift);
602
+ for (var i = 0; i < batch.frames.length; i++) {
603
+ var _frame = batch.frames[i];
604
+ if (Math.abs(_frame.keyTime - shifted) < 0.0001) {
605
+ return _frame;
606
+ }
607
+ }
608
+ var frame = {
609
+ keyTime: shifted,
610
+ tfMap: {},
611
+ styleMap: {},
612
+ keyMeta: new Map()
613
+ };
614
+ batch.frames.push(frame);
615
+ return frame;
616
+ };
617
+ var setFrameValue = function setFrameValue(frame, value) {
618
+ if (isTransform) {
619
+ frame.tfMap[cleanKey] = value;
620
+ } else {
621
+ frame.styleMap[cleanKey] = value;
622
+ }
623
+ };
624
+ var keyDuration = 0;
625
+ if (targetValue.valueList && targetValue.valueList.length) {
626
+ var _targetValue$cycles, _targetValue$cycle;
627
+ var valueList = targetValue.valueList;
628
+ var stepList = targetValue.stepList || [1];
629
+ var intervalList = targetValue.intervalList || [interval || 8];
630
+ var cycles = (_targetValue$cycles = targetValue.cycles) !== null && _targetValue$cycles !== void 0 ? _targetValue$cycles : 1;
631
+ var cycle = (_targetValue$cycle = targetValue.cycle) !== null && _targetValue$cycle !== void 0 ? _targetValue$cycle : 0;
632
+ var pointer = valuePointer;
633
+ if (!skipStartFrame) {
634
+ var _ref5, _targetValue$cycle2;
635
+ var frame0 = getFrameAtTime(0);
636
+ setFrameValue(frame0, from);
637
+ frame0.keyMeta.set(cleanKey, {
638
+ steps: 0,
639
+ segmentSteps: steps || targetValue.steps || 0,
640
+ interval: interval || targetValue.interval || 8,
641
+ stepOffset: step || 0,
642
+ valuePointer: (_ref5 = valuePointer !== null && valuePointer !== void 0 ? valuePointer : targetValue.valuePointer) !== null && _ref5 !== void 0 ? _ref5 : 1,
643
+ cycle: (_targetValue$cycle2 = targetValue.cycle) !== null && _targetValue$cycle2 !== void 0 ? _targetValue$cycle2 : 0
644
+ });
645
+ }
646
+ while (cycle < cycles) {
647
+ for (var i = pointer; i < valueList.length; i++) {
648
+ var _targetValue$cycle3;
649
+ var segmentSteps = stepList[(i - 1) % stepList.length];
650
+ var intervalValue = intervalList[(i - 1) % intervalList.length] || 8;
651
+ var stepOffset = cycle === ((_targetValue$cycle3 = targetValue.cycle) !== null && _targetValue$cycle3 !== void 0 ? _targetValue$cycle3 : 0) && i === valuePointer ? step : 0;
652
+ var remainingSteps = Math.max(segmentSteps - stepOffset, 0);
653
+ if (remainingSteps <= 0) {
654
+ continue;
655
+ }
656
+ var duration = remainingSteps * intervalValue;
657
+ keyDuration += duration;
658
+ var frame = getFrameAtTime(keyDuration);
659
+ setFrameValue(frame, valueList[i]);
660
+ frame.keyMeta.set(cleanKey, {
661
+ steps: remainingSteps,
662
+ segmentSteps: segmentSteps,
663
+ interval: intervalValue,
664
+ stepOffset: stepOffset,
665
+ valuePointer: i,
666
+ cycle: cycle
667
+ });
668
+ }
669
+ cycle++;
670
+ pointer = 1;
671
+ }
672
+ } else {
673
+ var _targetValue$cycle4;
674
+ interval = interval || 8;
675
+ var _remainingSteps = Math.max(steps - step, 0);
676
+ if (_remainingSteps <= 0) {
677
+ tmodel.val(key, to);
678
+ targetValue.step = steps;
679
+ return 0;
680
+ }
681
+ keyDuration = _remainingSteps * interval;
682
+ if (!skipStartFrame) {
683
+ var _frame2 = getFrameAtTime(0);
684
+ setFrameValue(_frame2, from);
685
+ }
686
+ var frame1 = getFrameAtTime(keyDuration);
687
+ setFrameValue(frame1, to);
688
+ frame1.keyMeta.set(cleanKey, {
689
+ steps: _remainingSteps,
690
+ segmentSteps: steps,
691
+ interval: interval,
692
+ stepOffset: step,
693
+ valuePointer: 0,
694
+ cycle: (_targetValue$cycle4 = targetValue.cycle) !== null && _targetValue$cycle4 !== void 0 ? _targetValue$cycle4 : 0
695
+ });
696
+ }
697
+ if (keyDuration <= 0) {
698
+ tmodel.removeFromUpdatingTargets(key);
699
+ return 0;
700
+ }
701
+ if (tmodel.getTargetEasing(key)) {
702
+ batch.easing = tmodel.getTargetEasing(key);
703
+ }
704
+ batch.totalDuration = Math.max(0, batch.totalDuration, timeShift + keyDuration);
705
+ ((_batch$keyMap = batch.keyMap)[cleanKey] || (_batch$keyMap[cleanKey] = new Set())).add(key);
706
+ tmodel.removeFromUpdatingTargets(key);
707
+ tmodel.addToAnimatingMap(key);
708
+ return keyDuration;
709
+ }
162
710
  }]);
163
711
  }();