@visactor/vtable-calendar 1.19.2 → 1.19.3-alpha.0

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.
@@ -667,7 +667,7 @@
667
667
  decorator(target, key, paramIndex);
668
668
  };
669
669
  },
670
- __awaiter$b = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
670
+ __awaiter$c = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
671
671
  return new (P || (P = Promise))(function (resolve, reject) {
672
672
  function fulfilled(value) {
673
673
  try {
@@ -833,7 +833,7 @@
833
833
  return this._env || this.setEnv("browser"), this.envContribution.loadBlob(url);
834
834
  }
835
835
  loadFont(name, source, descriptors) {
836
- return __awaiter$b(this, void 0, void 0, function* () {
836
+ return __awaiter$c(this, void 0, void 0, function* () {
837
837
  return this._env || this.setEnv("browser"), this.envContribution.loadFont(name, source, descriptors);
838
838
  });
839
839
  }
@@ -6352,7 +6352,7 @@
6352
6352
  return null;
6353
6353
  }
6354
6354
 
6355
- var __awaiter$a = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
6355
+ var __awaiter$b = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
6356
6356
  return new (P || (P = Promise))(function (resolve, reject) {
6357
6357
  function fulfilled(value) {
6358
6358
  try {
@@ -6420,7 +6420,7 @@
6420
6420
  }
6421
6421
  }
6422
6422
  forEachChildrenAsync(cb, reverse = !1) {
6423
- return __awaiter$a(this, void 0, void 0, function* () {
6423
+ return __awaiter$b(this, void 0, void 0, function* () {
6424
6424
  if (reverse) {
6425
6425
  let child = this._lastChild,
6426
6426
  i = 0;
@@ -15900,7 +15900,7 @@
15900
15900
  container.load(envModules), container.load(textMeasureModules), container.load(layerHandlerModules);
15901
15901
  }
15902
15902
 
15903
- var __awaiter$9 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
15903
+ var __awaiter$a = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
15904
15904
  return new (P || (P = Promise))(function (resolve, reject) {
15905
15905
  function fulfilled(value) {
15906
15906
  try {
@@ -15970,7 +15970,7 @@
15970
15970
  } else graphic.forEachChildren(cb, reverse);
15971
15971
  }
15972
15972
  function foreachAsync(graphic, defaultZIndex, cb, reverse = !1) {
15973
- return __awaiter$9(this, void 0, void 0, function* () {
15973
+ return __awaiter$a(this, void 0, void 0, function* () {
15974
15974
  yield graphic.forEachChildrenAsync(cb, reverse);
15975
15975
  });
15976
15976
  }
@@ -16339,7 +16339,7 @@
16339
16339
  decorator(target, key, paramIndex);
16340
16340
  };
16341
16341
  },
16342
- __awaiter$8 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
16342
+ __awaiter$9 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
16343
16343
  return new (P || (P = Promise))(function (resolve, reject) {
16344
16344
  function fulfilled(value) {
16345
16345
  try {
@@ -16374,7 +16374,7 @@
16374
16374
  }, this.defaultRenderMap.set(this.lineRender.numberType, this.lineRender), this.defaultRenderMap.set(this.areaRender.numberType, this.areaRender);
16375
16375
  }
16376
16376
  draw(renderService, drawContext) {
16377
- return __awaiter$8(this, void 0, void 0, function* () {
16377
+ return __awaiter$9(this, void 0, void 0, function* () {
16378
16378
  if (this.checkingForDrawPromise) return;
16379
16379
  this.lastRenderService = renderService, this.lastDrawContext = drawContext, this.checkingForDrawPromise = this.checkForDraw(drawContext);
16380
16380
  const skipDraw = yield this.checkingForDrawPromise;
@@ -16395,15 +16395,15 @@
16395
16395
  });
16396
16396
  }
16397
16397
  _increaseRender(group, drawContext) {
16398
- return __awaiter$8(this, void 0, void 0, function* () {
16398
+ return __awaiter$9(this, void 0, void 0, function* () {
16399
16399
  this.rendering = !0, yield this._renderIncrementalGroup(group, drawContext);
16400
16400
  });
16401
16401
  }
16402
16402
  _renderIncrementalGroup(group, drawContext) {
16403
- return __awaiter$8(this, void 0, void 0, function* () {
16403
+ return __awaiter$9(this, void 0, void 0, function* () {
16404
16404
  this.count = group.count, yield new Promise(resolve => {
16405
16405
  this.renderItem(group, drawContext, {
16406
- drawingCb: () => __awaiter$8(this, void 0, void 0, function* () {
16406
+ drawingCb: () => __awaiter$9(this, void 0, void 0, function* () {
16407
16407
  if (2 !== group.count) yield foreachAsync(group, DefaultAttribute.zIndex, (item, i) => {
16408
16408
  if (this.status === STATUS.STOP) return !0;
16409
16409
  if (item.isContainer) return !1;
@@ -16424,7 +16424,7 @@
16424
16424
  });
16425
16425
  }
16426
16426
  waitToNextFrame() {
16427
- return __awaiter$8(this, void 0, void 0, function* () {
16427
+ return __awaiter$9(this, void 0, void 0, function* () {
16428
16428
  return new Promise(resolve => {
16429
16429
  this.global.getRequestAnimationFrame()(() => {
16430
16430
  resolve(!1);
@@ -16433,13 +16433,13 @@
16433
16433
  });
16434
16434
  }
16435
16435
  checkForDraw(drawContext) {
16436
- return __awaiter$8(this, void 0, void 0, function* () {
16436
+ return __awaiter$9(this, void 0, void 0, function* () {
16437
16437
  let skip = this.rendering;
16438
16438
  return drawContext.restartIncremental && (skip = !1, yield this.forceStop(), this.resetToInit()), skip;
16439
16439
  });
16440
16440
  }
16441
16441
  forceStop() {
16442
- return __awaiter$8(this, void 0, void 0, function* () {
16442
+ return __awaiter$9(this, void 0, void 0, function* () {
16443
16443
  this.rendering && (this.status = STATUS.STOP, yield new Promise(resolve => {
16444
16444
  this.hooks.completeDraw.tap("stopCb", () => {
16445
16445
  this.status = STATUS.NORMAL, this.hooks.completeDraw.taps = this.hooks.completeDraw.taps.filter(item => "stopCb" !== item.name), resolve(!1);
@@ -16451,11 +16451,11 @@
16451
16451
  this.currFrameStartAt = 0, this.currentIdx = 0;
16452
16452
  }
16453
16453
  renderGroup(group, drawContext) {
16454
- return __awaiter$8(this, void 0, void 0, function* () {
16454
+ return __awaiter$9(this, void 0, void 0, function* () {
16455
16455
  if (!drawContext.break && !1 !== group.attribute.visibleAll) return group.incremental && drawContext.startAtId === group._uid ? (yield this._increaseRender(group, drawContext), void (drawContext.break = !0)) : void (yield new Promise(resolve => {
16456
16456
  this.renderItem(group, drawContext, {
16457
- drawingCb: () => __awaiter$8(this, void 0, void 0, function* () {
16458
- yield foreachAsync(group, DefaultAttribute.zIndex, item => __awaiter$8(this, void 0, void 0, function* () {
16457
+ drawingCb: () => __awaiter$9(this, void 0, void 0, function* () {
16458
+ yield foreachAsync(group, DefaultAttribute.zIndex, item => __awaiter$9(this, void 0, void 0, function* () {
16459
16459
  drawContext.break || item.isContainer && (yield this.renderGroup(item, drawContext));
16460
16460
  })), resolve(!1);
16461
16461
  })
@@ -17182,7 +17182,7 @@
17182
17182
  if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
17183
17183
  return c > 3 && r && Object.defineProperty(target, key, r), r;
17184
17184
  },
17185
- __awaiter$7 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
17185
+ __awaiter$8 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
17186
17186
  return new (P || (P = Promise))(function (resolve, reject) {
17187
17187
  function fulfilled(value) {
17188
17188
  try {
@@ -17276,7 +17276,7 @@
17276
17276
  };
17277
17277
  }
17278
17278
  loadFont(font, source, descriptors) {
17279
- return __awaiter$7(this, void 0, void 0, function* () {
17279
+ return __awaiter$8(this, void 0, void 0, function* () {
17280
17280
  return {
17281
17281
  loadState: "fail"
17282
17282
  };
@@ -19112,7 +19112,7 @@
19112
19112
  __metadata$k = undefined && undefined.__metadata || function (k, v) {
19113
19113
  if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
19114
19114
  },
19115
- __awaiter$6 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
19115
+ __awaiter$7 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
19116
19116
  return new (P || (P = Promise))(function (resolve, reject) {
19117
19117
  function fulfilled(value) {
19118
19118
  try {
@@ -19331,7 +19331,7 @@
19331
19331
  };
19332
19332
  }
19333
19333
  loadFont(font, source, descriptors) {
19334
- return __awaiter$6(this, void 0, void 0, function* () {
19334
+ return __awaiter$7(this, void 0, void 0, function* () {
19335
19335
  return new FontFace(font, isString$6(source) ? `url(${source})` : source, descriptors).load().then(function (loadedFont) {
19336
19336
  return document.fonts.add(loadedFont), {
19337
19337
  loadState: "success"
@@ -23994,6 +23994,103 @@
23994
23994
  }
23995
23995
  }
23996
23996
 
23997
+ class AnimationTransitionRegistry {
23998
+ constructor() {
23999
+ this.transitions = new Map(), this.registerDefaultTransitions();
24000
+ }
24001
+ static getInstance() {
24002
+ return AnimationTransitionRegistry.instance || (AnimationTransitionRegistry.instance = new AnimationTransitionRegistry()), AnimationTransitionRegistry.instance;
24003
+ }
24004
+ registerDefaultTransitions() {
24005
+ this.registerTransition("appear", "*", () => ({
24006
+ allowTransition: !0,
24007
+ stopOriginalTransition: !1
24008
+ })), this.registerTransition("appear", "appear", () => ({
24009
+ allowTransition: !1,
24010
+ stopOriginalTransition: !1
24011
+ })), this.registerTransition("appear", "disappear", () => ({
24012
+ allowTransition: !0,
24013
+ stopOriginalTransition: !0
24014
+ })), this.registerTransition("appear", "exit", () => ({
24015
+ allowTransition: !0,
24016
+ stopOriginalTransition: !0
24017
+ })), this.registerTransition("normal", "*", () => ({
24018
+ allowTransition: !0,
24019
+ stopOriginalTransition: !1
24020
+ })), this.registerTransition("normal", "normal", () => ({
24021
+ allowTransition: !1,
24022
+ stopOriginalTransition: !1
24023
+ })), this.registerTransition("normal", "disappear", () => ({
24024
+ allowTransition: !0,
24025
+ stopOriginalTransition: !0
24026
+ })), this.registerTransition("normal", "exit", () => ({
24027
+ allowTransition: !0,
24028
+ stopOriginalTransition: !0
24029
+ })), this.registerTransition("exit", "*", () => ({
24030
+ allowTransition: !1,
24031
+ stopOriginalTransition: !1
24032
+ })), this.registerTransition("exit", "disappear", () => ({
24033
+ allowTransition: !0,
24034
+ stopOriginalTransition: !0
24035
+ })), this.registerTransition("exit", "enter", () => ({
24036
+ allowTransition: !0,
24037
+ stopOriginalTransition: !0
24038
+ })), this.registerTransition("exit", "exit", () => ({
24039
+ allowTransition: !1,
24040
+ stopOriginalTransition: !1
24041
+ })), this.registerTransition("enter", "*", () => ({
24042
+ allowTransition: !0,
24043
+ stopOriginalTransition: !1
24044
+ })), this.registerTransition("enter", "enter", () => ({
24045
+ allowTransition: !1,
24046
+ stopOriginalTransition: !1
24047
+ })), this.registerTransition("enter", "disappear", () => ({
24048
+ allowTransition: !0,
24049
+ stopOriginalTransition: !0
24050
+ })), this.registerTransition("enter", "exit", () => ({
24051
+ allowTransition: !0,
24052
+ stopOriginalTransition: !0
24053
+ })), this.registerTransition("disappear", "*", () => ({
24054
+ allowTransition: !1,
24055
+ stopOriginalTransition: !1
24056
+ })), this.registerTransition("disappear", "appear", () => ({
24057
+ allowTransition: !0,
24058
+ stopOriginalTransition: !0
24059
+ })), this.registerTransition("update", "*", () => ({
24060
+ allowTransition: !0,
24061
+ stopOriginalTransition: !1
24062
+ })), this.registerTransition("update", "disappear", () => ({
24063
+ allowTransition: !0,
24064
+ stopOriginalTransition: !0
24065
+ })), this.registerTransition("update", "exit", () => ({
24066
+ allowTransition: !0,
24067
+ stopOriginalTransition: !0
24068
+ })), this.registerTransition("state", "*", () => ({
24069
+ allowTransition: !0,
24070
+ stopOriginalTransition: !1
24071
+ })), this.registerTransition("state", "disappear", () => ({
24072
+ allowTransition: !0,
24073
+ stopOriginalTransition: !0
24074
+ })), this.registerTransition("state", "exit", () => ({
24075
+ allowTransition: !0,
24076
+ stopOriginalTransition: !0
24077
+ }));
24078
+ }
24079
+ isTransitionAllowed(fromState, toState, graphic) {
24080
+ var _a, _b, _c, _d;
24081
+ let func = null === (_a = this.transitions.get(fromState)) || void 0 === _a ? void 0 : _a.get(toState);
24082
+ return func ? func(graphic, fromState) : (func = null === (_b = this.transitions.get(fromState)) || void 0 === _b ? void 0 : _b.get("*"), func ? func(graphic, fromState) : (func = null === (_c = this.transitions.get("*")) || void 0 === _c ? void 0 : _c.get(toState), func ? func(graphic, fromState) : (func = null === (_d = this.transitions.get("*")) || void 0 === _d ? void 0 : _d.get("*"), func ? func(graphic, fromState) : {
24083
+ allowTransition: !0,
24084
+ stopOriginalTransition: !0
24085
+ })));
24086
+ }
24087
+ registerTransition(fromState, toState, transition) {
24088
+ let fromStateMap = this.transitions.get(fromState);
24089
+ fromStateMap || (fromStateMap = new Map(), this.transitions.set(fromState, fromStateMap)), fromStateMap.set(toState, transition);
24090
+ }
24091
+ }
24092
+ AnimationTransitionRegistry.getInstance();
24093
+
23997
24094
  class AnimateExecutor {
23998
24095
  static registerBuiltInAnimate(name, animate) {
23999
24096
  AnimateExecutor.builtInAnimateMap[name] = animate;
@@ -24076,258 +24173,3331 @@
24076
24173
  parsedParams.delay = delay * scale, parsedParams.delayAfter = delayAfter * scale, parsedParams.duration = duration * scale, parsedParams.oneByOneDelay = oneByOneDelay * scale, parsedParams.startTime = startTime;
24077
24174
  }
24078
24175
  }
24079
- return parsedParams;
24176
+ return parsedParams;
24177
+ }
24178
+ execute(params) {
24179
+ Array.isArray(params) ? params.forEach(param => this._execute(param)) : this._execute(params);
24180
+ }
24181
+ _execute(params) {
24182
+ if (params.selfOnly) return this._executeItem(params, this._target, 0, 1);
24183
+ const isTimeline = ("timeSlices" in params);
24184
+ let filteredChildren;
24185
+ isTimeline && params.partitioner && (filteredChildren = (null != filteredChildren ? filteredChildren : this._target.getChildren()).filter(child => {
24186
+ var _a, _b;
24187
+ return params.partitioner(null === (_b = null === (_a = child.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], child, {});
24188
+ })), isTimeline && params.sort && (filteredChildren = null != filteredChildren ? filteredChildren : this._target.getChildren(), filteredChildren.sort((a, b) => {
24189
+ var _a, _b, _c, _d;
24190
+ return params.sort(null === (_b = null === (_a = a.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], null === (_d = null === (_c = b.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], a, b, {});
24191
+ }));
24192
+ const cb = isTimeline ? (child, index, count) => {
24193
+ const parsedParams = this.parseParams(params, isTimeline, child),
24194
+ animate = this.executeTimelineItem(parsedParams, child, index, count);
24195
+ animate && this._trackAnimation(animate);
24196
+ } : (child, index, count) => {
24197
+ const parsedParams = this.parseParams(params, isTimeline, child),
24198
+ animate = this.executeTypeConfigItem(parsedParams, child, index, count);
24199
+ animate && this._trackAnimation(animate);
24200
+ };
24201
+ filteredChildren ? filteredChildren.forEach((child, index) => cb(child, index, filteredChildren.length)) : this._target.count <= 1 ? cb(this._target, 0, 1) : this._target.forEachChildren((child, index) => cb(child, index, this._target.count - 1));
24202
+ }
24203
+ executeTypeConfigItem(params, graphic, index, count) {
24204
+ var _a, _b, _c, _d, _e, _f, _g, _h;
24205
+ const {
24206
+ type = "fromTo",
24207
+ channel: channel,
24208
+ customParameters: customParameters,
24209
+ easing = "linear",
24210
+ delay = 0,
24211
+ delayAfter = 0,
24212
+ duration = 300,
24213
+ startTime = 0,
24214
+ oneByOneDelay = 0,
24215
+ loop: loop,
24216
+ bounce: bounce,
24217
+ priority = 0,
24218
+ options: options,
24219
+ custom: custom,
24220
+ customType: customType,
24221
+ controlOptions: controlOptions
24222
+ } = params,
24223
+ animate = graphic.animate();
24224
+ animate.priority = priority;
24225
+ const delayValue = isFunction$7(delay) ? delay(null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], graphic, {}) : delay,
24226
+ datum = null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0],
24227
+ indexKey = null === (_e = graphic.context) || void 0 === _e ? void 0 : _e.indexKey;
24228
+ datum && indexKey && (index = null !== (_f = datum[indexKey]) && void 0 !== _f ? _f : index), animate.startAt(startTime);
24229
+ const wait = index * oneByOneDelay + delayValue;
24230
+ wait > 0 && animate.wait(wait);
24231
+ let parsedFromProps = null,
24232
+ props = params.to,
24233
+ from = params.from;
24234
+ props || (parsedFromProps || (parsedFromProps = this.createPropsFromChannel(channel, graphic)), props = parsedFromProps.props), from || (parsedFromProps || (parsedFromProps = this.createPropsFromChannel(channel, graphic)), from = parsedFromProps.from), this._handleRunAnimate(animate, custom, customType, from, props, duration, easing, customParameters, controlOptions, options, type, graphic);
24235
+ let totalDelay = 0;
24236
+ oneByOneDelay && (totalDelay = oneByOneDelay * (count - index - 1));
24237
+ const delayAfterValue = isFunction$7(delayAfter) ? delayAfter(null === (_h = null === (_g = graphic.context) || void 0 === _g ? void 0 : _g.data) || void 0 === _h ? void 0 : _h[0], graphic, {}) : delayAfter;
24238
+ return delayAfterValue > 0 && (totalDelay += delayAfterValue), totalDelay > 0 && animate.wait(totalDelay), loop && loop > 0 && animate.loop(loop), bounce && animate.bounce(!0), animate;
24239
+ }
24240
+ _handleRunAnimate(animate, custom, customType, from, props, duration, easing, customParameters, controlOptions, options, type, graphic) {
24241
+ var _a, _b, _c, _d;
24242
+ if (custom && customType) {
24243
+ const customParams = Object.assign({
24244
+ width: graphic.stage.width,
24245
+ height: graphic.stage.height,
24246
+ group: this._target.parent
24247
+ }, this.resolveValue(customParameters, graphic)),
24248
+ objOptions = isFunction$7(options) ? options.call(null, null !== (_b = customParams && (null === (_a = customParams.data) || void 0 === _a ? void 0 : _a[0])) && void 0 !== _b ? _b : null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], graphic, customParams) : options;
24249
+ customParams.options = objOptions, customParams.controlOptions = controlOptions, 1 === customType ? this.createCustomAnimation(animate, custom, from, props, duration, easing, customParams) : 2 === customType && this.createCustomInterpolatorAnimation(animate, custom, props, duration, easing, customParams);
24250
+ } else "to" === type ? animate.to(props, duration, easing) : "from" === type && animate.from(props, duration, easing);
24251
+ }
24252
+ executeTimelineItem(params, graphic, index, count) {
24253
+ var _a, _b, _c, _d;
24254
+ const {
24255
+ timeSlices: timeSlices,
24256
+ startTime = 0,
24257
+ loop: loop,
24258
+ bounce: bounce,
24259
+ oneByOneDelay: oneByOneDelay,
24260
+ priority: priority,
24261
+ controlOptions: controlOptions
24262
+ } = params,
24263
+ datum = null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0],
24264
+ indexKey = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.indexKey;
24265
+ datum && indexKey && (index = null !== (_d = datum[indexKey]) && void 0 !== _d ? _d : index);
24266
+ const animate = graphic.animate();
24267
+ animate.priority = priority, animate.startAt(startTime), animate.wait(index * oneByOneDelay), loop && loop > 0 && animate.loop(loop), bounce && animate.bounce(!0);
24268
+ return (Array.isArray(timeSlices) ? timeSlices : [timeSlices]).forEach(slice => {
24269
+ this.applyTimeSliceToAnimate(slice, animate, graphic, controlOptions);
24270
+ }), oneByOneDelay && animate.wait(oneByOneDelay * (count - index - 1)), animate;
24271
+ }
24272
+ applyTimeSliceToAnimate(slice, animate, graphic, controlOptions) {
24273
+ var _a, _b, _c, _d;
24274
+ const {
24275
+ effects: effects,
24276
+ duration = 300,
24277
+ delay = 0,
24278
+ delayAfter = 0
24279
+ } = slice,
24280
+ delayValue = isFunction$7(delay) ? delay(null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], graphic, {}) : delay,
24281
+ delayAfterValue = isFunction$7(delayAfter) ? delayAfter(null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], graphic, {}) : delayAfter;
24282
+ delayValue > 0 && animate.wait(delayValue);
24283
+ (Array.isArray(effects) ? effects : [effects]).forEach(effect => {
24284
+ var _a;
24285
+ const {
24286
+ type = "fromTo",
24287
+ channel: channel,
24288
+ customParameters: customParameters,
24289
+ easing = "linear",
24290
+ options: options
24291
+ } = effect;
24292
+ let parsedFromProps = null,
24293
+ props = effect.to,
24294
+ from = effect.from;
24295
+ props || (parsedFromProps || (parsedFromProps = this.createPropsFromChannel(channel, graphic)), props = parsedFromProps.props), from || (parsedFromProps || (parsedFromProps = this.createPropsFromChannel(channel, graphic)), from = parsedFromProps.from);
24296
+ const custom = null !== (_a = effect.custom) && void 0 !== _a ? _a : AnimateExecutor.builtInAnimateMap[type],
24297
+ customType = effect.customType;
24298
+ this._handleRunAnimate(animate, custom, customType, from, props, duration, easing, customParameters, controlOptions, options, type, graphic);
24299
+ }), delayAfterValue > 0 && animate.wait(delayAfterValue);
24300
+ }
24301
+ createCustomInterpolatorAnimation(animate, interpolator, props, duration, easing, customParams) {
24302
+ const to = props;
24303
+ Object.keys(to).forEach(key => {
24304
+ animate.target.getComputedAttribute(key);
24305
+ }), animate.interpolateUpdateFunction = (from, to, ratio, step, target) => {
24306
+ interpolator(ratio, from, to, step, target, animate.target, customParams);
24307
+ }, animate.to(props, duration, easing);
24308
+ }
24309
+ createCustomAnimation(animate, CustomAnimateConstructor, from, props, duration, easing, customParams) {
24310
+ const customAnimate = new CustomAnimateConstructor(from, props, duration, easing, customParams);
24311
+ animate.play(customAnimate);
24312
+ }
24313
+ createPropsFromChannel(channel, graphic) {
24314
+ const props = {};
24315
+ let from = null;
24316
+ return channel ? (Array.isArray(channel) ? channel.forEach(key => {
24317
+ var _a, _b;
24318
+ const value = null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.diffAttrs) || void 0 === _b ? void 0 : _b[key];
24319
+ void 0 !== value && (props[key] = value);
24320
+ }) : Object.keys(channel).forEach(key => {
24321
+ var _a, _b, _c, _d;
24322
+ const config = channel[key];
24323
+ void 0 !== config.to && ("function" == typeof config.to ? props[key] = config.to(null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], graphic, {}) : props[key] = config.to), void 0 !== config.from && (from || (from = {}), "function" == typeof config.from ? from[key] = config.from(null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], graphic, {}) : from[key] = config.from);
24324
+ }), {
24325
+ from: from,
24326
+ props: props
24327
+ }) : {
24328
+ from: from,
24329
+ props: props
24330
+ };
24331
+ }
24332
+ resolveValue(value, graphic, defaultValue) {
24333
+ var _a, _b;
24334
+ return void 0 === value ? defaultValue : "function" == typeof value && graphic ? value(null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], graphic, {}) : value;
24335
+ }
24336
+ executeItem(params, graphic, index = 0, count = 1) {
24337
+ return Array.isArray(params) ? params.map(param => this._executeItem(param, graphic, index, count)).filter(Boolean) : [this._executeItem(params, graphic, index, count)].filter(Boolean);
24338
+ }
24339
+ _executeItem(params, graphic, index = 0, count = 1) {
24340
+ if (!graphic) return null;
24341
+ const isTimeline = ("timeSlices" in params);
24342
+ let animate = null;
24343
+ const parsedParams = this.parseParams(params, isTimeline);
24344
+ return animate = isTimeline ? this.executeTimelineItem(parsedParams, graphic, index, count) : this.executeTypeConfigItem(parsedParams, graphic, index, count), animate && this._trackAnimation(animate), animate;
24345
+ }
24346
+ stop(type) {
24347
+ for (; this._animates.length > 0;) {
24348
+ const animate = this._animates.pop();
24349
+ null == animate || animate.stop(type);
24350
+ }
24351
+ this._animates = [], this._activeCount = 0, this._started && (this._started = !1, this.onEnd());
24352
+ }
24353
+ }
24354
+ AnimateExecutor.builtInAnimateMap = {};
24355
+
24356
+ const AnimationStates = {
24357
+ APPEAR: "appear",
24358
+ DISAPPEAR: "disappear",
24359
+ UPDATE: "update",
24360
+ HIGHLIGHT: "highlight",
24361
+ UNHIGHLIGHT: "unhighlight",
24362
+ SELECT: "select",
24363
+ UNSELECT: "unselect",
24364
+ HOVER: "hover",
24365
+ UNHOVER: "unhover",
24366
+ ACTIVE: "active",
24367
+ INACTIVE: "inactive"
24368
+ };
24369
+ class AnimationStateStore {
24370
+ constructor(graphic) {
24371
+ this.graphic = graphic;
24372
+ }
24373
+ registerState(state) {
24374
+ this.states || (this.states = new Map()), this.states.set(state.name, state);
24375
+ }
24376
+ clearStates() {
24377
+ var _a;
24378
+ null === (_a = this.states) || void 0 === _a || _a.clear();
24379
+ }
24380
+ }
24381
+ class AnimationStateManager {
24382
+ constructor(graphic) {
24383
+ this.stateList = null, this.graphic = graphic;
24384
+ }
24385
+ applyState(nextState, animationConfig, callback) {
24386
+ const registry = AnimationTransitionRegistry.getInstance(),
24387
+ shouldStopState = [],
24388
+ shouldApplyState = [];
24389
+ if (this.stateList && this.stateList.length ? nextState.forEach((state, index) => {
24390
+ const result = {
24391
+ allowTransition: !0,
24392
+ stopOriginalTransition: !0
24393
+ };
24394
+ this.stateList.forEach(currState => {
24395
+ const _result = registry.isTransitionAllowed(currState.state, state, this.graphic);
24396
+ result.allowTransition = result.allowTransition && _result.allowTransition;
24397
+ }), result.allowTransition && (shouldApplyState.push({
24398
+ state: state,
24399
+ animationConfig: isArray$9(animationConfig[index]) ? animationConfig[index].map(item => item.animation) : animationConfig[index].animation,
24400
+ executor: new AnimateExecutor(this.graphic)
24401
+ }), this.stateList.forEach(currState => {
24402
+ registry.isTransitionAllowed(currState.state, state, this.graphic).stopOriginalTransition && shouldStopState.push(currState);
24403
+ }));
24404
+ }) : nextState.forEach((state, index) => {
24405
+ shouldApplyState.push({
24406
+ state: state,
24407
+ animationConfig: isArray$9(animationConfig[index]) ? animationConfig[index].map(item => item.animation) : animationConfig[index].animation,
24408
+ executor: new AnimateExecutor(this.graphic)
24409
+ });
24410
+ }), shouldStopState.forEach(state => {
24411
+ state.executor.stop();
24412
+ }), shouldApplyState.length) {
24413
+ shouldApplyState[0].executor.execute(shouldApplyState[0].animationConfig);
24414
+ for (let i = 0; i < shouldApplyState.length; i++) {
24415
+ const nextState = shouldApplyState[i + 1],
24416
+ currentState = shouldApplyState[i];
24417
+ currentState.executor.onEnd(() => {
24418
+ nextState && nextState.executor.execute(nextState.animationConfig), this.stateList = this.stateList.filter(state => state !== currentState), i === shouldApplyState.length - 1 && callback && callback(!1);
24419
+ });
24420
+ }
24421
+ } else callback && callback(!0);
24422
+ this.stateList ? this.stateList = this.stateList.filter(state => !shouldStopState.includes(state)) : this.stateList = [], this.stateList.push(...shouldApplyState);
24423
+ }
24424
+ applyAppearState(animationConfig, callback) {
24425
+ this.applyState([AnimationStates.APPEAR], [{
24426
+ name: AnimationStates.APPEAR,
24427
+ animation: animationConfig
24428
+ }], callback);
24429
+ }
24430
+ applyDisappearState(animationConfig, callback) {
24431
+ this.applyState([AnimationStates.DISAPPEAR], [{
24432
+ name: AnimationStates.DISAPPEAR,
24433
+ animation: animationConfig
24434
+ }], callback);
24435
+ }
24436
+ applyUpdateState(animationConfig, callback) {
24437
+ this.applyState([AnimationStates.UPDATE], [{
24438
+ name: AnimationStates.UPDATE,
24439
+ animation: animationConfig
24440
+ }], callback);
24441
+ }
24442
+ applyHighlightState(animationConfig, callback) {
24443
+ this.applyState([AnimationStates.HIGHLIGHT], [{
24444
+ name: AnimationStates.HIGHLIGHT,
24445
+ animation: animationConfig
24446
+ }], callback);
24447
+ }
24448
+ applyUnhighlightState(animationConfig, callback) {
24449
+ this.applyState([AnimationStates.UNHIGHLIGHT], [{
24450
+ name: AnimationStates.UNHIGHLIGHT,
24451
+ animation: animationConfig
24452
+ }], callback);
24453
+ }
24454
+ stopState(state, type) {
24455
+ var _a;
24456
+ const stateInfo = null === (_a = this.stateList) || void 0 === _a ? void 0 : _a.find(stateInfo => stateInfo.state === state);
24457
+ stateInfo && stateInfo.executor.stop(type);
24458
+ }
24459
+ clearState() {
24460
+ var _a;
24461
+ null === (_a = this.stateList) || void 0 === _a || _a.forEach(state => {
24462
+ state.executor.stop();
24463
+ }), this.stateList = null;
24464
+ }
24465
+ }
24466
+
24467
+ class GraphicStateExtension {
24468
+ _getAnimationStateManager(graphic) {
24469
+ return graphic._animationStateManager || (graphic._animationStateManager = new AnimationStateManager(graphic)), graphic._animationStateManager;
24470
+ }
24471
+ _getAnimationStateStore(graphic) {
24472
+ return graphic._animationStateStore || (graphic._animationStateStore = new AnimationStateStore(graphic)), graphic._animationStateStore;
24473
+ }
24474
+ registerAnimationState(state) {
24475
+ return this._getAnimationStateStore(this).registerState(state), this;
24476
+ }
24477
+ applyAnimationState(state, animationConfig, callback) {
24478
+ return this._getAnimationStateManager(this).applyState(state, animationConfig, callback), this;
24479
+ }
24480
+ applyAppearState(animationConfig, callback) {
24481
+ return this._getAnimationStateManager(this).applyAppearState(animationConfig, callback), this;
24482
+ }
24483
+ applyDisappearState(animationConfig, callback) {
24484
+ return this._getAnimationStateManager(this).applyDisappearState(animationConfig, callback), this;
24485
+ }
24486
+ applyUpdateState(animationConfig, callback) {
24487
+ return this._getAnimationStateManager(this).applyUpdateState(animationConfig, callback), this;
24488
+ }
24489
+ applyHighlightState(animationConfig, callback) {
24490
+ return this._getAnimationStateManager(this).applyHighlightState(animationConfig, callback), this;
24491
+ }
24492
+ applyUnhighlightState(animationConfig, callback) {
24493
+ return this._getAnimationStateManager(this).applyUnhighlightState(animationConfig, callback), this;
24494
+ }
24495
+ stopAnimationState(state, type) {
24496
+ return this._getAnimationStateManager(this).stopState(state, type), this;
24497
+ }
24498
+ clearAnimationStates() {
24499
+ return this._getAnimationStateManager(this).clearState(), this;
24500
+ }
24501
+ static extend(graphic) {
24502
+ return new GraphicStateExtension()._getAnimationStateManager(graphic), graphic;
24503
+ }
24504
+ }
24505
+
24506
+ class AnimateExtension {
24507
+ getAttributes(final = !1) {
24508
+ return final && this.finalAttribute ? this.finalAttribute : this.attribute;
24509
+ }
24510
+ animate(params) {
24511
+ var _a, _b, _c;
24512
+ const animate = new Animate(null == params ? void 0 : params.id, null !== (_b = null !== (_a = null == params ? void 0 : params.timeline) && void 0 !== _a ? _a : this.stage && this.stage.getTimeline()) && void 0 !== _b ? _b : defaultTimeline, null == params ? void 0 : params.slience);
24513
+ if (animate.bind(this), params) {
24514
+ const {
24515
+ onStart: onStart,
24516
+ onEnd: onEnd,
24517
+ onRemove: onRemove
24518
+ } = params;
24519
+ null != onStart && animate.onStart(onStart), null != onEnd && animate.onEnd(onEnd), null != onRemove && animate.onRemove(onRemove);
24520
+ }
24521
+ return null === (_c = this.stage) || void 0 === _c || _c.ticker.start(), animate;
24522
+ }
24523
+ createTimeline() {
24524
+ return new DefaultTimeline();
24525
+ }
24526
+ createTicker(stage) {
24527
+ return new DefaultTicker(stage);
24528
+ }
24529
+ setFinalAttributes(finalAttribute) {
24530
+ this.finalAttribute || (this.finalAttribute = {}), Object.assign(this.finalAttribute, finalAttribute);
24531
+ }
24532
+ initFinalAttributes(finalAttribute) {
24533
+ this.finalAttribute = finalAttribute;
24534
+ }
24535
+ initAnimateExecutor() {
24536
+ this._animateExecutor || (this._animateExecutor = new AnimateExecutor(this));
24537
+ }
24538
+ executeAnimation(config) {
24539
+ return this.initAnimateExecutor(), this._animateExecutor.execute(config), this;
24540
+ }
24541
+ executeAnimations(configs) {
24542
+ return this.initAnimateExecutor(), configs.forEach(config => {
24543
+ this._animateExecutor.execute(config);
24544
+ }), this;
24545
+ }
24546
+ getFinalAttribute() {
24547
+ return this.finalAttribute;
24548
+ }
24549
+ getGraphicAttribute(key, prev = !1) {
24550
+ return !prev && this.finalAttribute ? this.finalAttribute[key] : this.attribute[key];
24551
+ }
24552
+ }
24553
+
24554
+ function registerAnimate() {
24555
+ mixin$1(Graphic, GraphicStateExtension), mixin$1(Graphic, AnimateExtension);
24556
+ }
24557
+
24558
+ class ACustomAnimate extends Step {
24559
+ constructor(customFrom, customTo, duration, easing, params) {
24560
+ super("customAnimate", customTo, duration, easing), this.type = "customAnimate", this.customFrom = customFrom, this.params = params, this.from = customFrom, this.to = customTo;
24561
+ }
24562
+ update(end, ratio, out) {
24563
+ if (this.onStart(), !this.props || !this.propKeys) return;
24564
+ const easedRatio = this.easing(ratio);
24565
+ this.onUpdate(end, easedRatio, out), this.syncAttributeUpdate();
24566
+ }
24567
+ setProps(props) {
24568
+ this.props = props, this.propKeys = Object.keys(props), this.animate.reSyncProps();
24569
+ }
24570
+ }
24571
+ class AComponentAnimate extends ACustomAnimate {
24572
+ completeBind(animator) {
24573
+ this.setStartTime(0), this._animator && this._animator.start(), this.setDuration(animator.getDuration());
24574
+ }
24575
+ stop() {
24576
+ this._animator && this._animator.stop();
24577
+ }
24578
+ }
24579
+
24580
+ class ComponentAnimator {
24581
+ constructor(component) {
24582
+ this.tasks = [], this.started = !1, this.completed = 0, this.totalDuration = 0, this.onStartCallbacks = [], this.onEndCallbacks = [], this.onUpdateCallbacks = [], this.component = component;
24583
+ }
24584
+ animate(graphic, config) {
24585
+ return this.started ? (this) : (this.tasks.push({
24586
+ graphic: graphic,
24587
+ config: config
24588
+ }), this);
24589
+ }
24590
+ onStart(callback) {
24591
+ return this.onStartCallbacks.push(callback), this;
24592
+ }
24593
+ onEnd(callback) {
24594
+ return this.onEndCallbacks.push(callback), this;
24595
+ }
24596
+ onUpdate(callback) {
24597
+ return this.onUpdateCallbacks.push(callback), this;
24598
+ }
24599
+ start() {
24600
+ return this.started ? (this) : (this.started = !0, this.completed = 0, this.onStartCallbacks.forEach(callback => callback()), 0 === this.tasks.length ? (setTimeout(() => {
24601
+ this.onEndCallbacks.forEach(callback => callback());
24602
+ }, 0), this) : (this.tasks.forEach(task => {
24603
+ const executor = new AnimateExecutor(task.graphic);
24604
+ executor.onEnd(() => {
24605
+ this.completed++, this.completed === this.tasks.length && this.onEndCallbacks.forEach(callback => callback());
24606
+ });
24607
+ const animate = executor.executeItem(task.config, task.graphic);
24608
+ task.animate = animate, animate.forEach(animate => {
24609
+ this.totalDuration = Math.max(this.totalDuration, animate.getStartTime() + animate.getDuration());
24610
+ });
24611
+ }), this));
24612
+ }
24613
+ deleteSelfAttr(key) {
24614
+ this.tasks.forEach(task => {
24615
+ task.animate && task.animate.forEach(animate => animate.preventAttr(key));
24616
+ });
24617
+ }
24618
+ stop(type) {
24619
+ return this.tasks.forEach(task => {
24620
+ task.animate && task.animate.forEach(animate => animate.stop(type));
24621
+ }), this.started && this.completed !== this.tasks.length && (this.onEndCallbacks.forEach(callback => callback()), this.completed = this.tasks.length), this;
24622
+ }
24623
+ getDuration() {
24624
+ return this.totalDuration;
24625
+ }
24626
+ }
24627
+ function createComponentAnimator(component) {
24628
+ return new ComponentAnimator(component);
24629
+ }
24630
+
24631
+ class IncreaseCount extends ACustomAnimate {
24632
+ constructor(from, to, duration, easing, params) {
24633
+ super(from, to, duration, easing, params), this.formatTemplate = null, this.decimalLength = null == params ? void 0 : params.decimalLength, (null == params ? void 0 : params.formatTemplate) && params.formatTemplate.includes("{{var}}") && (this.formatTemplate = params.formatTemplate);
24634
+ }
24635
+ onFirstRun() {
24636
+ var _a, _b, _c;
24637
+ const fromProps = this.getLastProps(),
24638
+ toProps = this.getEndProps(),
24639
+ fromText = null !== (_a = fromProps.text) && void 0 !== _a ? _a : 0,
24640
+ toText = null !== (_b = toProps.text) && void 0 !== _b ? _b : 0;
24641
+ this.valid = !0;
24642
+ let fromNum = 0,
24643
+ toNum = 0,
24644
+ fromFormat = "",
24645
+ toFormat = "",
24646
+ maxDecimalLength = 0;
24647
+ if ("number" == typeof fromText) {
24648
+ fromNum = fromText;
24649
+ const decimalPart = fromText.toString().split(".")[1] || "";
24650
+ maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);
24651
+ } else {
24652
+ if ("string" != typeof fromText) return void (this.valid = !1);
24653
+ if (fromText.endsWith("%")) {
24654
+ fromFormat = "%";
24655
+ const cleanNumStr = fromText.substring(0, fromText.length - 1).replace(/,/g, "");
24656
+ if (fromNum = parseFloat(cleanNumStr) / 100, isNaN(fromNum)) return void (this.valid = !1);
24657
+ const decimalPart = cleanNumStr.split(".")[1] || "";
24658
+ maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length + 2);
24659
+ } else {
24660
+ const cleanNumStr = fromText.replace(/,/g, "");
24661
+ if (fromNum = parseFloat(cleanNumStr), isNaN(fromNum)) return void (this.valid = !1);
24662
+ fromText.includes(",") && (fromFormat = ",");
24663
+ const decimalPart = cleanNumStr.split(".")[1] || "";
24664
+ maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);
24665
+ }
24666
+ }
24667
+ if ("number" == typeof toText) {
24668
+ toNum = toText;
24669
+ const decimalPart = toText.toString().split(".")[1] || "";
24670
+ maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);
24671
+ } else {
24672
+ if ("string" != typeof toText) return void (this.valid = !1);
24673
+ if (toText.endsWith("%")) {
24674
+ toFormat = "%";
24675
+ const cleanNumStr = toText.substring(0, toText.length - 1).replace(/,/g, "");
24676
+ if (toNum = parseFloat(cleanNumStr) / 100, isNaN(toNum)) return void (this.valid = !1);
24677
+ const decimalPart = cleanNumStr.split(".")[1] || "";
24678
+ maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length + 2);
24679
+ } else {
24680
+ const cleanNumStr = toText.replace(/,/g, "");
24681
+ if (toNum = parseFloat(cleanNumStr), isNaN(toNum)) return void (this.valid = !1);
24682
+ toText.includes(",") && (toFormat = ",");
24683
+ const decimalPart = cleanNumStr.split(".")[1] || "";
24684
+ maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);
24685
+ }
24686
+ }
24687
+ if (null === (_c = this.params) || void 0 === _c ? void 0 : _c.format) {
24688
+ switch (this.params.format) {
24689
+ case "percent":
24690
+ this.format = "%";
24691
+ break;
24692
+ case "thousandth":
24693
+ this.format = ",";
24694
+ break;
24695
+ case "none":
24696
+ this.format = "";
24697
+ break;
24698
+ default:
24699
+ this.format = toFormat || fromFormat;
24700
+ }
24701
+ "%" === this.format && "%" !== toFormat && "%" !== fromFormat && void 0 === this.decimalLength && (this.decimalLength = 2), "%" === this.format || "%" !== toFormat && "%" !== fromFormat || (fromNum *= 100, toNum *= 100);
24702
+ } else this.format = toFormat || fromFormat;
24703
+ this.fromNumber = fromNum, this.toNumber = toNum, void 0 === this.decimalLength && (this.decimalLength = maxDecimalLength);
24704
+ }
24705
+ onEnd(cb) {
24706
+ super.onEnd(cb), cb || this.props && this.target.setAttributes(this.props);
24707
+ }
24708
+ onUpdate(end, ratio, out) {
24709
+ if (!this.valid) return;
24710
+ const currentNumber = this.fromNumber + (this.toNumber - this.fromNumber) * ratio;
24711
+ let formattedText = "";
24712
+ const format = this.format,
24713
+ numberWithDecimals = ("%" === format ? 100 * currentNumber : currentNumber).toFixed(this.decimalLength);
24714
+ let formattedWithBasicFormat,
24715
+ formattedNumber = numberWithDecimals;
24716
+ if (parseFloat(numberWithDecimals) === Math.floor(parseFloat(numberWithDecimals)) && (formattedNumber = Math.floor(parseFloat(numberWithDecimals))), "%" === format) formattedWithBasicFormat = `${formattedNumber}%`;else if ("," === format) {
24717
+ const parts = formattedNumber.toString().split(".");
24718
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ","), formattedWithBasicFormat = parts.join(".");
24719
+ } else formattedWithBasicFormat = formattedNumber;
24720
+ formattedText = this.formatTemplate ? this.formatTemplate.replace("{{var}}", formattedWithBasicFormat.toString()) : formattedWithBasicFormat, this.target.setAttribute("text", formattedText);
24721
+ }
24722
+ }
24723
+
24724
+ class InputText extends ACustomAnimate {
24725
+ constructor(from, to, duration, easing, params) {
24726
+ super(from, to, duration, easing, params), this.fromText = "", this.toText = "", this.showCursor = !1, this.cursorChar = "|", this.blinkCursor = !0, this.beforeText = "", this.afterText = "", void 0 !== (null == params ? void 0 : params.showCursor) && (this.showCursor = params.showCursor), void 0 !== (null == params ? void 0 : params.cursorChar) && (this.cursorChar = params.cursorChar), void 0 !== (null == params ? void 0 : params.blinkCursor) && (this.blinkCursor = params.blinkCursor), void 0 !== (null == params ? void 0 : params.beforeText) && (this.beforeText = params.beforeText), void 0 !== (null == params ? void 0 : params.afterText) && (this.afterText = params.afterText);
24727
+ }
24728
+ onFirstRun() {
24729
+ var _a, _b;
24730
+ const fromProps = this.getLastProps(),
24731
+ toProps = this.getEndProps(),
24732
+ fromText = null !== (_a = fromProps.text) && void 0 !== _a ? _a : "",
24733
+ toText = null !== (_b = toProps.text) && void 0 !== _b ? _b : "";
24734
+ this.valid = !0, this.fromText = fromText.toString(), this.toText = toText.toString(), this.toText || "" === this.toText || (this.valid = !1);
24735
+ }
24736
+ onEnd(cb) {
24737
+ super.onEnd(cb), cb || (this.showCursor && !this.blinkCursor ? this.target.setAttribute("text", this.beforeText + this.toText + this.cursorChar + this.afterText) : this.target.setAttribute("text", this.beforeText + this.toText + this.afterText));
24738
+ }
24739
+ onUpdate(end, ratio, out) {
24740
+ if (!this.valid) return;
24741
+ const totalChars = this.toText.length,
24742
+ fromChars = this.fromText.length;
24743
+ let currentLength, currentText;
24744
+ fromChars > totalChars ? (currentLength = Math.round(fromChars - (fromChars - totalChars) * ratio), currentText = this.fromText.substring(0, currentLength)) : (currentLength = Math.round(fromChars + (totalChars - fromChars) * ratio), currentText = this.toText.startsWith(this.fromText) ? this.toText.substring(0, currentLength) : currentLength <= fromChars ? this.fromText.substring(0, currentLength) : this.toText.substring(0, currentLength - fromChars + Math.min(fromChars, currentLength)));
24745
+ let displayText = this.beforeText + currentText + this.afterText;
24746
+ if (this.showCursor) if (this.blinkCursor) {
24747
+ const blinkRate = .1;
24748
+ Math.floor(ratio / blinkRate) % 2 == 0 && (displayText = this.beforeText + currentText + this.cursorChar + this.afterText);
24749
+ } else displayText = this.beforeText + currentText + this.cursorChar + this.afterText;
24750
+ this.target.setAttribute("text", displayText);
24751
+ }
24752
+ }
24753
+
24754
+ class CommonIn extends ACustomAnimate {
24755
+ constructor(from, to, duration, easing, params) {
24756
+ super(from, to, duration, easing, params);
24757
+ }
24758
+ onBind() {
24759
+ var _a, _b, _c;
24760
+ super.onBind();
24761
+ const attrs = this.target.getFinalAttribute(),
24762
+ fromAttrs = null !== (_a = this.target.attribute) && void 0 !== _a ? _a : {},
24763
+ to = {},
24764
+ from = null !== (_b = this.from) && void 0 !== _b ? _b : {};
24765
+ this.keys.forEach(key => {
24766
+ var _a, _b, _c;
24767
+ to[key] = null !== (_a = null == attrs ? void 0 : attrs[key]) && void 0 !== _a ? _a : 1, from[key] = null !== (_c = null !== (_b = from[key]) && void 0 !== _b ? _b : fromAttrs[key]) && void 0 !== _c ? _c : 0;
24768
+ });
24769
+ const finalAttribute = this.target.getFinalAttribute();
24770
+ finalAttribute && this.target.setAttributes(finalAttribute), this.props = to, this.propKeys = this.keys, this.from = from, this.to = to, !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(from);
24771
+ }
24772
+ onUpdate(end, ratio, out) {
24773
+ const attribute = this.target.attribute;
24774
+ this.propKeys.forEach(key => {
24775
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
24776
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
24777
+ }
24778
+ }
24779
+ class CommonOut extends ACustomAnimate {
24780
+ constructor(from, to, duration, easing, params) {
24781
+ super(from, to, duration, easing, params);
24782
+ }
24783
+ onBind() {
24784
+ super.onBind();
24785
+ const attrs = this.target.attribute,
24786
+ to = {},
24787
+ from = {};
24788
+ this.keys.forEach(key => {
24789
+ var _a;
24790
+ to[key] = 0, from[key] = null !== (_a = attrs[key]) && void 0 !== _a ? _a : 1;
24791
+ }), this.props = to, this.propKeys = this.keys, this.from = from, this.to = to, Object.assign(this.target.attribute, from), this.target.addUpdatePositionTag(), this.target.addUpdateBoundTag();
24792
+ }
24793
+ onEnd(cb) {
24794
+ super.onEnd(cb);
24795
+ }
24796
+ onUpdate(end, ratio, out) {
24797
+ const attribute = this.target.attribute;
24798
+ this.propKeys.forEach(key => {
24799
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
24800
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
24801
+ }
24802
+ }
24803
+
24804
+ class ClipIn extends CommonIn {
24805
+ constructor(from, to, duration, easing, params) {
24806
+ super(from, to, duration, easing, params), this.keys = ["clipRange"], this.from = {
24807
+ clipRange: 0
24808
+ };
24809
+ }
24810
+ onFirstRun() {
24811
+ var _a;
24812
+ super.onFirstRun();
24813
+ const {
24814
+ clipDimension: clipDimension
24815
+ } = (null === (_a = this.params) || void 0 === _a ? void 0 : _a.options) || {};
24816
+ clipDimension && (this.target.attribute.clipRangeByDimension = clipDimension);
24817
+ }
24818
+ }
24819
+ class ClipOut extends CommonOut {
24820
+ constructor(from, to, duration, easing, params) {
24821
+ super(from, to, duration, easing, params), this.keys = ["clipRange"];
24822
+ }
24823
+ }
24824
+
24825
+ class FadeIn extends CommonIn {
24826
+ constructor(from, to, duration, easing, params) {
24827
+ super(from, to, duration, easing, params), this.keys = ["opacity", "fillOpacity", "strokeOpacity"], this.from = {
24828
+ opacity: 0,
24829
+ fillOpacity: 0,
24830
+ strokeOpacity: 0
24831
+ };
24832
+ }
24833
+ }
24834
+ class FadeOut extends CommonOut {
24835
+ constructor(from, to, duration, easing, params) {
24836
+ super(from, to, duration, easing, params), this.keys = ["opacity", "fillOpacity", "strokeOpacity"];
24837
+ }
24838
+ }
24839
+
24840
+ const growAngleInIndividual = (graphic, options, animationParameters) => {
24841
+ const attrs = graphic.getFinalAttribute();
24842
+ return options && "anticlockwise" === options.orient ? {
24843
+ from: {
24844
+ startAngle: null == attrs ? void 0 : attrs.endAngle
24845
+ },
24846
+ to: {
24847
+ startAngle: null == attrs ? void 0 : attrs.startAngle
24848
+ }
24849
+ } : {
24850
+ from: {
24851
+ endAngle: null == attrs ? void 0 : attrs.startAngle
24852
+ },
24853
+ to: {
24854
+ endAngle: null == attrs ? void 0 : attrs.endAngle
24855
+ }
24856
+ };
24857
+ },
24858
+ growAngleInOverall = (graphic, options, animationParameters) => {
24859
+ const attrs = graphic.getFinalAttribute();
24860
+ if (options && "anticlockwise" === options.orient) {
24861
+ const overallValue = isNumber$6(options.overall) ? options.overall : 2 * Math.PI;
24862
+ return {
24863
+ from: {
24864
+ startAngle: overallValue,
24865
+ endAngle: overallValue
24866
+ },
24867
+ to: {
24868
+ startAngle: null == attrs ? void 0 : attrs.startAngle,
24869
+ endAngle: null == attrs ? void 0 : attrs.endAngle
24870
+ }
24871
+ };
24872
+ }
24873
+ const overallValue = isNumber$6(null == options ? void 0 : options.overall) ? options.overall : 0;
24874
+ return {
24875
+ from: {
24876
+ startAngle: overallValue,
24877
+ endAngle: overallValue
24878
+ },
24879
+ to: {
24880
+ startAngle: null == attrs ? void 0 : attrs.startAngle,
24881
+ endAngle: null == attrs ? void 0 : attrs.endAngle
24882
+ }
24883
+ };
24884
+ };
24885
+ const growAngleIn = (graphic, options, animationParameters) => {
24886
+ var _a;
24887
+ return !1 !== (null !== (_a = null == options ? void 0 : options.overall) && void 0 !== _a && _a) ? growAngleInOverall(graphic, options) : growAngleInIndividual(graphic, options);
24888
+ };
24889
+ const growAngleOutIndividual = (graphic, options, animationParameters) => {
24890
+ const attrs = graphic.attribute;
24891
+ return options && "anticlockwise" === options.orient ? {
24892
+ from: {
24893
+ startAngle: attrs.startAngle
24894
+ },
24895
+ to: {
24896
+ startAngle: null == attrs ? void 0 : attrs.endAngle
24897
+ }
24898
+ } : {
24899
+ from: {
24900
+ endAngle: attrs.endAngle
24901
+ },
24902
+ to: {
24903
+ endAngle: null == attrs ? void 0 : attrs.startAngle
24904
+ }
24905
+ };
24906
+ },
24907
+ growAngleOutOverall = (graphic, options, animationParameters) => {
24908
+ const attrs = graphic.attribute;
24909
+ if (options && "anticlockwise" === options.orient) {
24910
+ const overallValue = isNumber$6(options.overall) ? options.overall : 2 * Math.PI;
24911
+ return {
24912
+ from: {
24913
+ startAngle: attrs.startAngle,
24914
+ endAngle: attrs.endAngle
24915
+ },
24916
+ to: {
24917
+ startAngle: overallValue,
24918
+ endAngle: overallValue
24919
+ }
24920
+ };
24921
+ }
24922
+ const overallValue = isNumber$6(null == options ? void 0 : options.overall) ? options.overall : 0;
24923
+ return {
24924
+ from: {
24925
+ startAngle: attrs.startAngle,
24926
+ endAngle: attrs.endAngle
24927
+ },
24928
+ to: {
24929
+ startAngle: overallValue,
24930
+ endAngle: overallValue
24931
+ }
24932
+ };
24933
+ };
24934
+ class GrowAngleBase extends ACustomAnimate {
24935
+ constructor(from, to, duration, easing, params) {
24936
+ super(from, to, duration, easing, params);
24937
+ }
24938
+ determineUpdateFunction() {
24939
+ this.propKeys ? this.propKeys && this.propKeys.length > 1 ? this._updateFunction = this.updateAngle : "startAngle" === this.propKeys[0] ? this._updateFunction = this.updateStartAngle : "endAngle" === this.propKeys[0] ? this._updateFunction = this.updateEndAngle : this.valid = !1 : this.valid = !1;
24940
+ }
24941
+ deleteSelfAttr(key) {
24942
+ delete this.props[key], this.fromProps && delete this.fromProps[key];
24943
+ const index = this.propKeys.indexOf(key);
24944
+ -1 !== index && this.propKeys.splice(index, 1), this.propKeys && this.propKeys.length > 1 ? this._updateFunction = this.updateAngle : "startAngle" === this.propKeys[0] ? this._updateFunction = this.updateStartAngle : "endAngle" === this.propKeys[0] ? this._updateFunction = this.updateEndAngle : this._updateFunction = null;
24945
+ }
24946
+ updateStartAngle(ratio) {
24947
+ this.target.attribute.startAngle = this.from.startAngle + (this.to.startAngle - this.from.startAngle) * ratio;
24948
+ }
24949
+ updateEndAngle(ratio) {
24950
+ this.target.attribute.endAngle = this.from.endAngle + (this.to.endAngle - this.from.endAngle) * ratio;
24951
+ }
24952
+ updateAngle(ratio) {
24953
+ this.updateStartAngle(ratio), this.updateEndAngle(ratio);
24954
+ }
24955
+ onUpdate(end, ratio, out) {
24956
+ this._updateFunction && (this._updateFunction(ratio), this.target.addUpdateShapeAndBoundsTag());
24957
+ }
24958
+ }
24959
+ class GrowAngleIn extends GrowAngleBase {
24960
+ onBind() {
24961
+ var _a, _b;
24962
+ super.onBind();
24963
+ const {
24964
+ from: from,
24965
+ to: to
24966
+ } = growAngleIn(this.target, this.params.options, this.params),
24967
+ fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
24968
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to;
24969
+ const finalAttribute = this.target.getFinalAttribute();
24970
+ finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs), this.determineUpdateFunction();
24971
+ }
24972
+ }
24973
+ class GrowAngleOut extends GrowAngleBase {
24974
+ onBind() {
24975
+ super.onBind();
24976
+ const {
24977
+ from: from,
24978
+ to: to
24979
+ } = (graphic = this.target, options = this.params.options, this.params, !1 !== (null !== (_a = null == options ? void 0 : options.overall) && void 0 !== _a && _a) ? growAngleOutOverall(graphic, options) : growAngleOutIndividual(graphic, options));
24980
+ var graphic, options, _a;
24981
+ const fromAttrs = from;
24982
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = null != fromAttrs ? fromAttrs : this.target.attribute, this.to = to, this.determineUpdateFunction();
24983
+ }
24984
+ }
24985
+
24986
+ const growCenterIn = (graphic, options, animationParameters) => {
24987
+ const attrs = graphic.getFinalAttribute();
24988
+ switch (null == options ? void 0 : options.direction) {
24989
+ case "x":
24990
+ {
24991
+ const x = attrs.x,
24992
+ x1 = attrs.x1,
24993
+ width = attrs.width;
24994
+ return {
24995
+ from: isValid$5(width) ? {
24996
+ x: x + width / 2,
24997
+ x1: void 0,
24998
+ width: 0
24999
+ } : {
25000
+ x: (x + x1) / 2,
25001
+ x1: (x + x1) / 2,
25002
+ width: void 0
25003
+ },
25004
+ to: {
25005
+ x: x,
25006
+ x1: x1,
25007
+ width: width
25008
+ }
25009
+ };
25010
+ }
25011
+ case "y":
25012
+ {
25013
+ const y = attrs.y,
25014
+ y1 = attrs.y1,
25015
+ height = attrs.height;
25016
+ return {
25017
+ from: isValid$5(height) ? {
25018
+ y: y + height / 2,
25019
+ y1: void 0,
25020
+ height: 0
25021
+ } : {
25022
+ y: (y + y1) / 2,
25023
+ y1: (y + y1) / 2,
25024
+ height: void 0
25025
+ },
25026
+ to: {
25027
+ y: y,
25028
+ y1: y1,
25029
+ height: height
25030
+ }
25031
+ };
25032
+ }
25033
+ default:
25034
+ {
25035
+ const x = attrs.x,
25036
+ x1 = attrs.x1,
25037
+ width = attrs.width,
25038
+ y = attrs.y,
25039
+ y1 = attrs.y1,
25040
+ height = attrs.height,
25041
+ from = {};
25042
+ return isValid$5(width) ? (from.x = x + width / 2, from.width = 0, from.x1 = void 0) : (from.x = (x + x1) / 2, from.x1 = (x + x1) / 2, from.width = void 0), isValid$5(height) ? (from.y = y + height / 2, from.height = 0, from.y1 = void 0) : (from.y = (y + y1) / 2, from.y1 = (y + y1) / 2, from.height = void 0), {
25043
+ from: from,
25044
+ to: {
25045
+ x: x,
25046
+ y: y,
25047
+ x1: x1,
25048
+ y1: y1,
25049
+ width: width,
25050
+ height: height
25051
+ }
25052
+ };
25053
+ }
25054
+ }
25055
+ },
25056
+ growCenterOut = (graphic, options, animationParameters) => {
25057
+ const attrs = graphic.attribute;
25058
+ switch (null == options ? void 0 : options.direction) {
25059
+ case "x":
25060
+ {
25061
+ const x = attrs.x,
25062
+ x1 = attrs.x1,
25063
+ width = attrs.width;
25064
+ return {
25065
+ to: isValid$5(width) ? {
25066
+ x: x + width / 2,
25067
+ x1: void 0,
25068
+ width: 0
25069
+ } : {
25070
+ x: (x + x1) / 2,
25071
+ x1: (x + x1) / 2,
25072
+ width: void 0
25073
+ }
25074
+ };
25075
+ }
25076
+ case "y":
25077
+ {
25078
+ const y = attrs.y,
25079
+ y1 = attrs.y1,
25080
+ height = attrs.height;
25081
+ return {
25082
+ to: isValid$5(height) ? {
25083
+ y: y + height / 2,
25084
+ y1: void 0,
25085
+ height: 0
25086
+ } : {
25087
+ y: (y + y1) / 2,
25088
+ y1: (y + y1) / 2,
25089
+ height: void 0
25090
+ }
25091
+ };
25092
+ }
25093
+ default:
25094
+ {
25095
+ const x = attrs.x,
25096
+ y = attrs.y,
25097
+ x1 = attrs.x1,
25098
+ y1 = attrs.y1,
25099
+ width = attrs.width,
25100
+ height = attrs.height,
25101
+ to = {};
25102
+ return isValid$5(width) ? (to.x = x + width / 2, to.width = 0, to.x1 = void 0) : (to.x = (x + x1) / 2, to.x1 = (x + x1) / 2, to.width = void 0), isValid$5(height) ? (to.y = y + height / 2, to.height = 0, to.y1 = void 0) : (to.y = (y + y1) / 2, to.y1 = (y + y1) / 2, to.height = void 0), {
25103
+ to: to
25104
+ };
25105
+ }
25106
+ }
25107
+ };
25108
+ class GrowCenterIn extends ACustomAnimate {
25109
+ constructor(from, to, duration, easing, params) {
25110
+ super(from, to, duration, easing, params);
25111
+ }
25112
+ onBind() {
25113
+ var _a, _b;
25114
+ super.onBind();
25115
+ const {
25116
+ from: from,
25117
+ to: to
25118
+ } = growCenterIn(this.target, this.params.options, this.params),
25119
+ fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
25120
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to;
25121
+ const finalAttribute = this.target.getFinalAttribute();
25122
+ finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs);
25123
+ }
25124
+ onEnd(cb) {
25125
+ super.onEnd(cb);
25126
+ }
25127
+ onUpdate(end, ratio, out) {
25128
+ const attribute = this.target.attribute;
25129
+ this.propKeys.forEach(key => {
25130
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
25131
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
25132
+ }
25133
+ }
25134
+ class GrowCenterOut extends ACustomAnimate {
25135
+ constructor(from, to, duration, easing, params) {
25136
+ super(from, to, duration, easing, params);
25137
+ }
25138
+ onBind() {
25139
+ super.onBind();
25140
+ const {
25141
+ from: from,
25142
+ to: to
25143
+ } = growCenterOut(this.target, this.params.options, this.params);
25144
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = null != from ? from : this.target.attribute, this.to = to;
25145
+ }
25146
+ onEnd(cb) {
25147
+ super.onEnd(cb);
25148
+ }
25149
+ onUpdate(end, ratio, out) {
25150
+ const attribute = this.target.attribute;
25151
+ this.propKeys.forEach(key => {
25152
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
25153
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
25154
+ }
25155
+ }
25156
+
25157
+ function growHeightInIndividual(graphic, options, animationParameters) {
25158
+ const attrs = graphic.getFinalAttribute(),
25159
+ y = attrs.y,
25160
+ y1 = attrs.y1,
25161
+ height = attrs.height;
25162
+ if (options && "negative" === options.orient) {
25163
+ const computedY1 = isValid$5(height) ? Math.max(y, y + height) : Math.max(y, y1);
25164
+ return {
25165
+ from: {
25166
+ y: computedY1,
25167
+ y1: isNil$5(y1) ? void 0 : computedY1,
25168
+ height: isNil$5(height) ? void 0 : 0
25169
+ },
25170
+ to: {
25171
+ y: y,
25172
+ y1: y1,
25173
+ height: height
25174
+ }
25175
+ };
25176
+ }
25177
+ const computedY = isValid$5(height) ? Math.min(y, y + height) : Math.min(y, y1);
25178
+ return {
25179
+ from: {
25180
+ y: computedY,
25181
+ y1: isNil$5(y1) ? void 0 : computedY,
25182
+ height: isNil$5(height) ? void 0 : 0
25183
+ },
25184
+ to: {
25185
+ y: y,
25186
+ y1: y1,
25187
+ height: height
25188
+ }
25189
+ };
25190
+ }
25191
+ function growHeightInOverall(graphic, options, animationParameters) {
25192
+ var _a, _b, _c;
25193
+ const attrs = graphic.getFinalAttribute(),
25194
+ y = attrs.y,
25195
+ y1 = attrs.y1,
25196
+ height = attrs.height;
25197
+ let overallValue;
25198
+ return options && "negative" === options.orient ? isNumber$6(options.overall) ? overallValue = options.overall : animationParameters.group ? (overallValue = null !== (_c = null !== (_a = animationParameters.groupHeight) && void 0 !== _a ? _a : null === (_b = options.layoutRect) || void 0 === _b ? void 0 : _b.height) && void 0 !== _c ? _c : animationParameters.group.getBounds().height(), animationParameters.groupHeight = overallValue) : overallValue = animationParameters.height : overallValue = isNumber$6(null == options ? void 0 : options.overall) ? options.overall : 0, {
25199
+ from: {
25200
+ y: overallValue,
25201
+ y1: isNil$5(y1) ? void 0 : overallValue,
25202
+ height: isNil$5(height) ? void 0 : 0
25203
+ },
25204
+ to: {
25205
+ y: y,
25206
+ y1: y1,
25207
+ height: height
25208
+ }
25209
+ };
25210
+ }
25211
+ const growHeightIn = (graphic, options, animationParameters) => {
25212
+ var _a;
25213
+ return !1 !== (null !== (_a = null == options ? void 0 : options.overall) && void 0 !== _a && _a) ? growHeightInOverall(graphic, options, animationParameters) : growHeightInIndividual(graphic, options);
25214
+ };
25215
+ class GrowHeightIn extends ACustomAnimate {
25216
+ constructor(from, to, duration, easing, params) {
25217
+ super(from, to, duration, easing, params);
25218
+ }
25219
+ onBind() {
25220
+ var _a, _b;
25221
+ super.onBind();
25222
+ const {
25223
+ from: from,
25224
+ to: to
25225
+ } = growHeightIn(this.target, this.params.options, this.params),
25226
+ fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
25227
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to;
25228
+ const finalAttribute = this.target.getFinalAttribute();
25229
+ finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs);
25230
+ }
25231
+ onEnd(cb) {
25232
+ super.onEnd(cb);
25233
+ }
25234
+ onUpdate(end, ratio, out) {
25235
+ const attribute = this.target.attribute;
25236
+ this.propKeys.forEach(key => {
25237
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
25238
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
25239
+ }
25240
+ }
25241
+ function growHeightOutIndividual(graphic, options, animationParameters) {
25242
+ const attrs = graphic.getFinalAttribute(),
25243
+ y = attrs.y,
25244
+ y1 = attrs.y1,
25245
+ height = attrs.height;
25246
+ if (options && "negative" === options.orient) {
25247
+ const computedY1 = isValid$5(height) ? Math.max(y, y + height) : Math.max(y, y1);
25248
+ return {
25249
+ to: {
25250
+ y: computedY1,
25251
+ y1: isNil$5(y1) ? void 0 : computedY1,
25252
+ height: isNil$5(height) ? void 0 : 0
25253
+ }
25254
+ };
25255
+ }
25256
+ const computedY = isValid$5(height) ? Math.min(y, y + height) : Math.min(y, y1);
25257
+ return {
25258
+ to: {
25259
+ y: computedY,
25260
+ y1: isNil$5(y1) ? void 0 : computedY,
25261
+ height: isNil$5(height) ? void 0 : 0
25262
+ }
25263
+ };
25264
+ }
25265
+ function growHeightOutOverall(graphic, options, animationParameters) {
25266
+ var _a, _b, _c;
25267
+ const attrs = graphic.getFinalAttribute(),
25268
+ y1 = attrs.y1,
25269
+ height = attrs.height;
25270
+ let overallValue;
25271
+ return options && "negative" === options.orient ? isNumber$6(options.overall) ? overallValue = options.overall : animationParameters.group ? (overallValue = null !== (_c = null !== (_a = animationParameters.groupHeight) && void 0 !== _a ? _a : null === (_b = options.layoutRect) || void 0 === _b ? void 0 : _b.height) && void 0 !== _c ? _c : animationParameters.group.getBounds().height(), animationParameters.groupHeight = overallValue) : overallValue = animationParameters.height : overallValue = isNumber$6(null == options ? void 0 : options.overall) ? options.overall : 0, {
25272
+ to: {
25273
+ y: overallValue,
25274
+ y1: isNil$5(y1) ? void 0 : overallValue,
25275
+ height: isNil$5(height) ? void 0 : 0
25276
+ }
25277
+ };
25278
+ }
25279
+ class GrowHeightOut extends ACustomAnimate {
25280
+ constructor(from, to, duration, easing, params) {
25281
+ super(from, to, duration, easing, params);
25282
+ }
25283
+ onBind() {
25284
+ super.onBind();
25285
+ const {
25286
+ from: from,
25287
+ to: to
25288
+ } = (graphic = this.target, options = this.params.options, animationParameters = this.params, !1 !== (null !== (_a = null == options ? void 0 : options.overall) && void 0 !== _a && _a) ? growHeightOutOverall(graphic, options, animationParameters) : growHeightOutIndividual(graphic, options));
25289
+ var graphic, options, animationParameters, _a;
25290
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = null != from ? from : this.target.attribute, this.to = to;
25291
+ }
25292
+ onEnd(cb) {
25293
+ super.onEnd(cb);
25294
+ }
25295
+ onUpdate(end, ratio, out) {
25296
+ const attribute = this.target.attribute;
25297
+ this.propKeys.forEach(key => {
25298
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
25299
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
25300
+ }
25301
+ }
25302
+
25303
+ const getCenterPoints = (graphic, options, animationParameters) => {
25304
+ const points = graphic.getFinalAttribute().points,
25305
+ center = {
25306
+ x: 0,
25307
+ y: 0
25308
+ };
25309
+ return points.forEach(point => {
25310
+ center.x += point.x, center.y += point.y;
25311
+ }), center.x /= points.length, center.y /= points.length, options && options.center && (isValidNumber$3(options.center.x) && (center.x = options.center.x), isValidNumber$3(options.center.y) && (center.y = options.center.y)), "area" === graphic.type && (center.x1 = center.x, center.y1 = center.y), points.map(point => Object.assign({}, point, center));
25312
+ };
25313
+ const growPointsIn = (graphic, options, animationParameters) => {
25314
+ const attrs = graphic.getFinalAttribute();
25315
+ return {
25316
+ from: {
25317
+ points: getCenterPoints(graphic, options)
25318
+ },
25319
+ to: {
25320
+ points: attrs.points
25321
+ }
25322
+ };
25323
+ };
25324
+ class GworPointsBase extends ACustomAnimate {
25325
+ constructor(from, to, duration, easing, params) {
25326
+ super(from, to, duration, easing, params);
25327
+ }
25328
+ onUpdate(end, ratio, out) {
25329
+ var _a, _b;
25330
+ const fromPoints = null === (_a = this.from) || void 0 === _a ? void 0 : _a.points,
25331
+ toPoints = null === (_b = this.to) || void 0 === _b ? void 0 : _b.points;
25332
+ fromPoints && toPoints && (this.target.attribute.points = fromPoints.map((point, index) => pointInterpolation(fromPoints[index], toPoints[index], ratio)), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag());
25333
+ }
25334
+ }
25335
+ class GrowPointsIn extends GworPointsBase {
25336
+ onBind() {
25337
+ var _a;
25338
+ if (super.onBind(), ["area", "line", "polygon"].includes(this.target.type)) {
25339
+ const {
25340
+ from: from,
25341
+ to: to
25342
+ } = growPointsIn(this.target, this.params.options, this.params);
25343
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to;
25344
+ const finalAttribute = this.target.getFinalAttribute();
25345
+ finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_a = this.params.controlOptions) || void 0 === _a ? void 0 : _a.immediatelyApply) && this.target.setAttributes(from);
25346
+ } else this.valid = !1;
25347
+ }
25348
+ }
25349
+ class GrowPointsOut extends GworPointsBase {
25350
+ onBind() {
25351
+ if (super.onBind(), ["area", "line"].includes(this.target.type)) {
25352
+ const attrs = this.target.getFinalAttribute(),
25353
+ {
25354
+ from: from,
25355
+ to: to
25356
+ } = (graphic = this.target, options = this.params.options, this.params, {
25357
+ from: {
25358
+ points: graphic.getFinalAttribute().points
25359
+ },
25360
+ to: {
25361
+ points: getCenterPoints(graphic, options)
25362
+ }
25363
+ });
25364
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from || attrs, this.to = to;
25365
+ } else this.valid = !1;
25366
+ var graphic, options;
25367
+ }
25368
+ }
25369
+ const changePointsX = (graphic, options, animationParameters) => graphic.getFinalAttribute().points.map(point => {
25370
+ if (options && "negative" === options.orient) {
25371
+ let groupRight = graphic.stage.viewWidth;
25372
+ return graphic.parent.parent.parent && (groupRight = graphic.parent.parent.parent.AABBBounds.width()), Object.assign(Object.assign({}, point), {
25373
+ x: groupRight,
25374
+ y: point.y,
25375
+ x1: groupRight,
25376
+ y1: point.y1,
25377
+ defined: !1 !== point.defined
25378
+ });
25379
+ }
25380
+ return Object.assign(Object.assign({}, point), {
25381
+ x: 0,
25382
+ y: point.y,
25383
+ x1: 0,
25384
+ y1: point.y1,
25385
+ defined: !1 !== point.defined
25386
+ });
25387
+ }),
25388
+ growPointsXIn = (graphic, options, animationParameters) => {
25389
+ const attrs = graphic.getFinalAttribute();
25390
+ return {
25391
+ from: {
25392
+ points: changePointsX(graphic, options)
25393
+ },
25394
+ to: {
25395
+ points: attrs.points
25396
+ }
25397
+ };
25398
+ };
25399
+ class GrowPointsXIn extends GworPointsBase {
25400
+ onBind() {
25401
+ var _a;
25402
+ if (super.onBind(), ["area", "line", "polygon"].includes(this.target.type)) {
25403
+ const {
25404
+ from: from,
25405
+ to: to
25406
+ } = growPointsXIn(this.target, this.params.options, this.params);
25407
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to;
25408
+ const finalAttribute = this.target.getFinalAttribute();
25409
+ finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_a = this.params.controlOptions) || void 0 === _a ? void 0 : _a.immediatelyApply) && this.target.setAttributes(from);
25410
+ } else this.valid = !1;
25411
+ }
25412
+ }
25413
+ class GrowPointsXOut extends GworPointsBase {
25414
+ onBind() {
25415
+ if (super.onBind(), ["area", "line"].includes(this.target.type)) {
25416
+ const attrs = this.target.getFinalAttribute(),
25417
+ {
25418
+ from: from,
25419
+ to: to
25420
+ } = (graphic = this.target, options = this.params.options, this.params, {
25421
+ from: {
25422
+ points: graphic.getFinalAttribute().points
25423
+ },
25424
+ to: {
25425
+ points: changePointsX(graphic, options)
25426
+ }
25427
+ });
25428
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from || attrs, this.to = to;
25429
+ } else this.valid = !1;
25430
+ var graphic, options;
25431
+ }
25432
+ }
25433
+ const changePointsY = (graphic, options, animationParameters) => graphic.getFinalAttribute().points.map(point => {
25434
+ if (options && "negative" === options.orient) {
25435
+ let groupBottom = graphic.stage.viewHeight;
25436
+ return graphic.parent.parent.parent && (groupBottom = graphic.parent.parent.parent.AABBBounds.height()), Object.assign(Object.assign({}, point), {
25437
+ x: point.x,
25438
+ y: groupBottom,
25439
+ x1: point.x1,
25440
+ y1: groupBottom,
25441
+ defined: !1 !== point.defined
25442
+ });
25443
+ }
25444
+ return Object.assign(Object.assign({}, point), {
25445
+ x: point.x,
25446
+ y: 0,
25447
+ x1: point.x1,
25448
+ y1: 0,
25449
+ defined: !1 !== point.defined
25450
+ });
25451
+ }),
25452
+ growPointsYIn = (graphic, options, animationParameters) => {
25453
+ const attrs = graphic.getFinalAttribute();
25454
+ return {
25455
+ from: {
25456
+ points: changePointsY(graphic, options)
25457
+ },
25458
+ to: {
25459
+ points: attrs.points
25460
+ }
25461
+ };
25462
+ };
25463
+ class GrowPointsYIn extends GworPointsBase {
25464
+ onBind() {
25465
+ var _a;
25466
+ if (super.onBind(), ["area", "line", "polygon"].includes(this.target.type)) {
25467
+ const {
25468
+ from: from,
25469
+ to: to
25470
+ } = growPointsYIn(this.target, this.params.options, this.params);
25471
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to;
25472
+ const finalAttribute = this.target.getFinalAttribute();
25473
+ finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_a = this.params.controlOptions) || void 0 === _a ? void 0 : _a.immediatelyApply) && this.target.setAttributes(from);
25474
+ } else this.valid = !1;
25475
+ }
25476
+ }
25477
+ class GrowPointsYOut extends GworPointsBase {
25478
+ onBind() {
25479
+ if (super.onBind(), ["area", "line", "polygon"].includes(this.target.type)) {
25480
+ const {
25481
+ from: from,
25482
+ to: to
25483
+ } = (graphic = this.target, options = this.params.options, this.params, {
25484
+ from: {
25485
+ points: graphic.getFinalAttribute().points
25486
+ },
25487
+ to: {
25488
+ points: changePointsY(graphic, options)
25489
+ }
25490
+ });
25491
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = null != from ? from : this.target.attribute, this.to = to;
25492
+ } else this.valid = !1;
25493
+ var graphic, options;
25494
+ }
25495
+ }
25496
+
25497
+ const growRadiusInIndividual = (graphic, options, animationParameters) => {
25498
+ const attrs = graphic.getFinalAttribute();
25499
+ return options && "inside" === options.orient ? {
25500
+ from: {
25501
+ innerRadius: null == attrs ? void 0 : attrs.outerRadius
25502
+ },
25503
+ to: {
25504
+ innerRadius: null == attrs ? void 0 : attrs.innerRadius
25505
+ }
25506
+ } : {
25507
+ from: {
25508
+ outerRadius: null == attrs ? void 0 : attrs.innerRadius
25509
+ },
25510
+ to: {
25511
+ outerRadius: null == attrs ? void 0 : attrs.outerRadius
25512
+ }
25513
+ };
25514
+ },
25515
+ growRadiusInOverall = (graphic, options, animationParameters) => {
25516
+ const attrs = graphic.getFinalAttribute(),
25517
+ overallValue = isNumber$6(null == options ? void 0 : options.overall) ? options.overall : 0;
25518
+ return {
25519
+ from: {
25520
+ innerRadius: overallValue,
25521
+ outerRadius: overallValue
25522
+ },
25523
+ to: {
25524
+ innerRadius: null == attrs ? void 0 : attrs.innerRadius,
25525
+ outerRadius: null == attrs ? void 0 : attrs.outerRadius
25526
+ }
25527
+ };
25528
+ };
25529
+ const growRadiusIn = (graphic, options, animationParameters) => {
25530
+ var _a;
25531
+ return !1 !== (null !== (_a = null == options ? void 0 : options.overall) && void 0 !== _a && _a) ? growRadiusInOverall(graphic, options) : growRadiusInIndividual(graphic, options);
25532
+ };
25533
+ const growRadiusOutIndividual = (graphic, options, animationParameters) => {
25534
+ const attrs = graphic.getFinalAttribute();
25535
+ return options && "inside" === options.orient ? {
25536
+ from: {
25537
+ innerRadius: null == attrs ? void 0 : attrs.innerRadius
25538
+ },
25539
+ to: {
25540
+ innerRadius: null == attrs ? void 0 : attrs.outerRadius
25541
+ }
25542
+ } : {
25543
+ from: {
25544
+ outerRadius: null == attrs ? void 0 : attrs.outerRadius
25545
+ },
25546
+ to: {
25547
+ outerRadius: null == attrs ? void 0 : attrs.innerRadius
25548
+ }
25549
+ };
25550
+ },
25551
+ growRadiusOutOverall = (graphic, options, animationParameters) => {
25552
+ const attrs = graphic.getFinalAttribute(),
25553
+ overallValue = isNumber$6(null == options ? void 0 : options.overall) ? options.overall : 0;
25554
+ return {
25555
+ from: {
25556
+ innerRadius: null == attrs ? void 0 : attrs.innerRadius,
25557
+ outerRadius: null == attrs ? void 0 : attrs.outerRadius
25558
+ },
25559
+ to: {
25560
+ innerRadius: overallValue,
25561
+ outerRadius: overallValue
25562
+ }
25563
+ };
25564
+ };
25565
+ class GrowPointsBase extends ACustomAnimate {
25566
+ constructor(from, to, duration, easing, params) {
25567
+ super(from, to, duration, easing, params);
25568
+ }
25569
+ onUpdate(end, ratio, out) {
25570
+ const attribute = this.target.attribute;
25571
+ this.propKeys.forEach(key => {
25572
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
25573
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
25574
+ }
25575
+ }
25576
+ class GrowRadiusIn extends GrowPointsBase {
25577
+ onBind() {
25578
+ var _a, _b;
25579
+ super.onBind();
25580
+ const {
25581
+ from: from,
25582
+ to: to
25583
+ } = growRadiusIn(this.target, this.params.options, this.params),
25584
+ fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
25585
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to;
25586
+ const finalAttribute = this.target.getFinalAttribute();
25587
+ finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs);
25588
+ }
25589
+ }
25590
+ class GrowRadiusOut extends GrowPointsBase {
25591
+ onBind() {
25592
+ super.onBind();
25593
+ const {
25594
+ to: to
25595
+ } = (graphic = this.target, options = this.params.options, this.params, !1 !== (null !== (_a = null == options ? void 0 : options.overall) && void 0 !== _a && _a) ? growRadiusOutOverall(graphic, options) : growRadiusOutIndividual(graphic, options));
25596
+ var graphic, options, _a;
25597
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = this.target.attribute, this.to = to;
25598
+ }
25599
+ }
25600
+
25601
+ function growWidthInIndividual(graphic, options, animationParameters) {
25602
+ const attrs = graphic.getFinalAttribute(),
25603
+ x = attrs.x,
25604
+ x1 = attrs.x1,
25605
+ width = attrs.width;
25606
+ if (options && "negative" === options.orient) {
25607
+ const computedX1 = isValid$5(width) ? Math.max(x, x + width) : Math.max(x, x1);
25608
+ return {
25609
+ from: {
25610
+ x: computedX1,
25611
+ x1: isNil$5(x1) ? void 0 : computedX1,
25612
+ width: isNil$5(width) ? void 0 : 0
25613
+ },
25614
+ to: {
25615
+ x: x,
25616
+ x1: x1,
25617
+ width: width
25618
+ }
25619
+ };
25620
+ }
25621
+ const computedX = isValid$5(width) ? Math.min(x, x + width) : Math.min(x, x1);
25622
+ return {
25623
+ from: {
25624
+ x: computedX,
25625
+ x1: isNil$5(x1) ? void 0 : computedX,
25626
+ width: isNil$5(width) ? void 0 : 0
25627
+ },
25628
+ to: {
25629
+ x: x,
25630
+ x1: x1,
25631
+ width: width
25632
+ }
25633
+ };
25634
+ }
25635
+ function growWidthInOverall(graphic, options, animationParameters) {
25636
+ var _a;
25637
+ const attrs = graphic.getFinalAttribute(),
25638
+ x = attrs.x,
25639
+ x1 = attrs.x1,
25640
+ width = attrs.width;
25641
+ let overallValue;
25642
+ return options && "negative" === options.orient ? isNumber$6(options.overall) ? overallValue = options.overall : animationParameters.group ? (overallValue = null !== (_a = animationParameters.groupWidth) && void 0 !== _a ? _a : animationParameters.group.getBounds().width(), animationParameters.groupWidth = overallValue) : overallValue = animationParameters.width : overallValue = isNumber$6(null == options ? void 0 : options.overall) ? null == options ? void 0 : options.overall : 0, {
25643
+ from: {
25644
+ x: overallValue,
25645
+ x1: isNil$5(x1) ? void 0 : overallValue,
25646
+ width: isNil$5(width) ? void 0 : 0
25647
+ },
25648
+ to: {
25649
+ x: x,
25650
+ x1: x1,
25651
+ width: width
25652
+ }
25653
+ };
25654
+ }
25655
+ const growWidthIn = (graphic, options, animationParameters) => {
25656
+ var _a;
25657
+ return !1 !== (null !== (_a = null == options ? void 0 : options.overall) && void 0 !== _a && _a) ? growWidthInOverall(graphic, options, animationParameters) : growWidthInIndividual(graphic, options);
25658
+ };
25659
+ function growWidthOutIndividual(graphic, options, animationParameters) {
25660
+ const attrs = graphic.getFinalAttribute(),
25661
+ x = attrs.x,
25662
+ x1 = attrs.x1,
25663
+ width = attrs.width;
25664
+ if (options && "negative" === options.orient) {
25665
+ const computedX1 = isValid$5(width) ? Math.max(x, x + width) : Math.max(x, x1);
25666
+ return {
25667
+ to: {
25668
+ x: computedX1,
25669
+ x1: isNil$5(x1) ? void 0 : computedX1,
25670
+ width: isNil$5(width) ? void 0 : 0
25671
+ }
25672
+ };
25673
+ }
25674
+ const computedX = isValid$5(width) ? Math.min(x, x + width) : Math.min(x, x1);
25675
+ return {
25676
+ to: {
25677
+ x: computedX,
25678
+ x1: isNil$5(x1) ? void 0 : computedX,
25679
+ width: isNil$5(width) ? void 0 : 0
25680
+ }
25681
+ };
25682
+ }
25683
+ function growWidthOutOverall(graphic, options, animationParameters) {
25684
+ var _a;
25685
+ const attrs = graphic.getFinalAttribute(),
25686
+ x1 = attrs.x1,
25687
+ width = attrs.width;
25688
+ let overallValue;
25689
+ return options && "negative" === options.orient ? isNumber$6(options.overall) ? overallValue = options.overall : animationParameters.group ? (overallValue = null !== (_a = animationParameters.groupWidth) && void 0 !== _a ? _a : animationParameters.group.getBounds().width(), animationParameters.groupWidth = overallValue) : overallValue = animationParameters.width : overallValue = isNumber$6(null == options ? void 0 : options.overall) ? options.overall : 0, {
25690
+ to: {
25691
+ x: overallValue,
25692
+ x1: isNil$5(x1) ? void 0 : overallValue,
25693
+ width: isNil$5(width) ? void 0 : 0
25694
+ }
25695
+ };
25696
+ }
25697
+ class GrowWidthIn extends ACustomAnimate {
25698
+ constructor(from, to, duration, easing, params) {
25699
+ super(from, to, duration, easing, params);
25700
+ }
25701
+ onBind() {
25702
+ var _a, _b;
25703
+ super.onBind();
25704
+ const {
25705
+ from: from,
25706
+ to: to
25707
+ } = growWidthIn(this.target, this.params.options, this.params),
25708
+ fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
25709
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to;
25710
+ const finalAttribute = this.target.getFinalAttribute();
25711
+ finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs);
25712
+ }
25713
+ onEnd(cb) {
25714
+ super.onEnd(cb);
25715
+ }
25716
+ onUpdate(end, ratio, out) {
25717
+ const attribute = this.target.attribute;
25718
+ this.propKeys.forEach(key => {
25719
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
25720
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
25721
+ }
25722
+ }
25723
+ class GrowWidthOut extends ACustomAnimate {
25724
+ constructor(from, to, duration, easing, params) {
25725
+ super(from, to, duration, easing, params);
25726
+ }
25727
+ onBind() {
25728
+ super.onBind();
25729
+ const {
25730
+ from: from,
25731
+ to: to
25732
+ } = (graphic = this.target, options = this.params.options, animationParameters = this.params, !1 !== (null !== (_a = null == options ? void 0 : options.overall) && void 0 !== _a && _a) ? growWidthOutOverall(graphic, options, animationParameters) : growWidthOutIndividual(graphic, options));
25733
+ var graphic, options, animationParameters, _a;
25734
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = null != from ? from : this.target.attribute, this.to = to;
25735
+ }
25736
+ onEnd(cb) {
25737
+ super.onEnd(cb);
25738
+ }
25739
+ onUpdate(end, ratio, out) {
25740
+ const attribute = this.target.attribute;
25741
+ this.propKeys.forEach(key => {
25742
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
25743
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
25744
+ }
25745
+ }
25746
+
25747
+ class LabelItemAppear extends AComponentAnimate {
25748
+ onBind() {
25749
+ super.onBind();
25750
+ const animator = createComponentAnimator(this.target);
25751
+ this._animator = animator;
25752
+ const duration = this.duration,
25753
+ easing = this.easing,
25754
+ target = this.target,
25755
+ {
25756
+ symbolStartOuterType = "scale",
25757
+ titleType = "typewriter",
25758
+ titlePanelType = "scale"
25759
+ } = this.params,
25760
+ symbolTime = duration / 10;
25761
+ let symbolStartOuterFrom, symbolStartOuterTo;
25762
+ if (target._symbolStart.setAttributes({
25763
+ scaleX: 0,
25764
+ scaleY: 0
25765
+ }), animator.animate(target._symbolStart, {
25766
+ type: "to",
25767
+ to: {
25768
+ scaleX: 1,
25769
+ scaleY: 1
25770
+ },
25771
+ duration: 5 * symbolTime,
25772
+ easing: easing
25773
+ }), "scale" === symbolStartOuterType ? (symbolStartOuterFrom = {
25774
+ scaleX: 0,
25775
+ scaleY: 0
25776
+ }, symbolStartOuterTo = {
25777
+ scaleX: 1,
25778
+ scaleY: 1
25779
+ }) : (symbolStartOuterFrom = {
25780
+ clipRange: 0
25781
+ }, symbolStartOuterTo = {
25782
+ clipRange: 1
25783
+ }), target._symbolStartOuter.setAttributes(symbolStartOuterFrom), animator.animate(target._symbolStartOuter, {
25784
+ type: "to",
25785
+ to: symbolStartOuterTo,
25786
+ duration: 5 * symbolTime,
25787
+ easing: easing
25788
+ }), target._symbolEnd.setAttributes({
25789
+ scaleX: 0,
25790
+ scaleY: 0
25791
+ }), animator.animate(target._symbolEnd, {
25792
+ type: "to",
25793
+ to: {
25794
+ scaleX: 1,
25795
+ scaleY: 1
25796
+ },
25797
+ duration: 2 * symbolTime,
25798
+ delay: 8 * symbolTime,
25799
+ easing: easing
25800
+ }), target._line.setAttributes({
25801
+ clipRange: 0
25802
+ }), animator.animate(target._line, {
25803
+ type: "to",
25804
+ to: {
25805
+ clipRange: 1
25806
+ },
25807
+ duration: 9 * symbolTime,
25808
+ easing: easing
25809
+ }), "typewriter" === titleType) {
25810
+ const titleTopText = target._titleTop.attribute.text;
25811
+ target._titleTop.setAttributes({
25812
+ text: ""
25813
+ }), animator.animate(target._titleTop, {
25814
+ type: "custom",
25815
+ delay: 5 * symbolTime,
25816
+ duration: 4 * symbolTime,
25817
+ easing: "linear",
25818
+ to: {
25819
+ text: titleTopText
25820
+ },
25821
+ custom: InputText
25822
+ });
25823
+ const titleBottomText = target._titleBottom.attribute.text;
25824
+ target._titleBottom.setAttributes({
25825
+ text: ""
25826
+ }), animator.animate(target._titleBottom, {
25827
+ type: "custom",
25828
+ delay: 5 * symbolTime,
25829
+ duration: 4 * symbolTime,
25830
+ easing: "linear",
25831
+ to: {
25832
+ text: titleBottomText
25833
+ },
25834
+ custom: InputText
25835
+ });
25836
+ } else target._titleTop.setAttributes({
25837
+ dy: target._titleTop.AABBBounds.height() + 10
25838
+ }), animator.animate(target._titleTop, {
25839
+ type: "to",
25840
+ to: {
25841
+ dy: 0
25842
+ },
25843
+ delay: 5 * symbolTime,
25844
+ duration: 4 * symbolTime,
25845
+ easing: "linear"
25846
+ }), target._titleBottom.setAttributes({
25847
+ dy: -(10 + target._titleBottom.AABBBounds.height())
25848
+ }), animator.animate(target._titleBottom, {
25849
+ type: "to",
25850
+ to: {
25851
+ dy: 0
25852
+ },
25853
+ delay: 5 * symbolTime,
25854
+ duration: 4 * symbolTime,
25855
+ easing: "linear"
25856
+ });
25857
+ "scale" === titlePanelType ? [target._titleTopPanel, target._titleBottomPanel].forEach(panel => {
25858
+ var _a;
25859
+ const scaleX = null !== (_a = panel.attribute.scaleX) && void 0 !== _a ? _a : 1;
25860
+ panel.setAttributes({
25861
+ scaleX: 0
25862
+ }), animator.animate(panel, {
25863
+ type: "to",
25864
+ to: {
25865
+ scaleX: scaleX
25866
+ },
25867
+ duration: duration,
25868
+ easing: easing
25869
+ });
25870
+ }) : "stroke" === titlePanelType && [target._titleTopPanel, target._titleBottomPanel].forEach(panel => {
25871
+ const b = panel.AABBBounds,
25872
+ totalLen = 2 * (b.width() + b.height());
25873
+ panel.setAttributes({
25874
+ lineDash: [0, 10 * totalLen]
25875
+ }), animator.animate(panel, {
25876
+ type: "to",
25877
+ to: {
25878
+ lineDash: [totalLen, 10 * totalLen]
25879
+ },
25880
+ duration: duration,
25881
+ easing: easing
25882
+ });
25883
+ }), this.completeBind(animator);
25884
+ }
25885
+ }
25886
+ class LabelItemDisappear extends AComponentAnimate {
25887
+ onBind() {
25888
+ super.onBind();
25889
+ const animator = createComponentAnimator(this.target);
25890
+ this._animator = animator;
25891
+ const duration = this.duration,
25892
+ easing = this.easing,
25893
+ target = this.target,
25894
+ {
25895
+ mode: mode
25896
+ } = this.params;
25897
+ "scale" === mode ? animator.animate(target._symbolStart, {
25898
+ type: "to",
25899
+ to: {
25900
+ scaleX: 0,
25901
+ scaleY: 0
25902
+ },
25903
+ duration: duration,
25904
+ easing: easing
25905
+ }) : (animator.animate(target._line, {
25906
+ type: "to",
25907
+ to: {
25908
+ clipRange: 0
25909
+ },
25910
+ duration: duration,
25911
+ easing: easing
25912
+ }), animator.animate(target._symbolStart, {
25913
+ type: "to",
25914
+ to: {
25915
+ scaleX: 0,
25916
+ scaleY: 0
25917
+ },
25918
+ duration: duration / 2,
25919
+ delay: duration / 2,
25920
+ easing: easing
25921
+ }), animator.animate(target._symbolEnd, {
25922
+ type: "to",
25923
+ to: {
25924
+ scaleX: 0,
25925
+ scaleY: 0
25926
+ },
25927
+ duration: duration,
25928
+ easing: easing
25929
+ }), animator.animate(target._titleTop, {
25930
+ type: "to",
25931
+ to: {
25932
+ dy: target._titleTop.AABBBounds.height() + 10
25933
+ },
25934
+ duration: duration / 2,
25935
+ easing: easing
25936
+ }), animator.animate(target._titleBottom, {
25937
+ type: "to",
25938
+ to: {
25939
+ dy: -(10 + target._titleBottom.AABBBounds.height())
25940
+ },
25941
+ duration: duration / 2,
25942
+ easing: easing
25943
+ }), animator.animate(target._symbolStartOuter, {
25944
+ type: "to",
25945
+ to: {
25946
+ clipRange: 0
25947
+ },
25948
+ duration: duration / 2,
25949
+ delay: duration / 2,
25950
+ easing: easing
25951
+ }), animator.animate(target._titleTopPanel, {
25952
+ type: "to",
25953
+ to: {
25954
+ scaleX: 0
25955
+ },
25956
+ duration: duration,
25957
+ easing: easing
25958
+ }), animator.animate(target._titleBottomPanel, {
25959
+ type: "to",
25960
+ to: {
25961
+ scaleX: 0
25962
+ },
25963
+ duration: duration,
25964
+ easing: easing
25965
+ })), this.completeBind(animator);
25966
+ }
25967
+ }
25968
+
25969
+ class PoptipAppear extends AComponentAnimate {
25970
+ onBind() {
25971
+ super.onBind();
25972
+ const animator = createComponentAnimator(this.target);
25973
+ this._animator = animator;
25974
+ const duration = this.duration,
25975
+ easing = this.easing,
25976
+ target = this.target,
25977
+ {
25978
+ wave: wave
25979
+ } = this.params;
25980
+ if (target.setAttributes({
25981
+ scaleX: 0,
25982
+ scaleY: 0
25983
+ }), animator.animate(target, {
25984
+ type: "to",
25985
+ to: {
25986
+ scaleX: 1,
25987
+ scaleY: 1
25988
+ },
25989
+ duration: duration / 3 * 2,
25990
+ easing: easing
25991
+ }), target.titleShape && animator.animate(target.titleShape, {
25992
+ type: "custom",
25993
+ to: {
25994
+ text: target.titleShape.attribute.text
25995
+ },
25996
+ duration: duration,
25997
+ easing: easing,
25998
+ custom: InputText
25999
+ }), target.contentShape && animator.animate(target.contentShape, {
26000
+ type: "custom",
26001
+ to: {
26002
+ text: target.contentShape.attribute.text
26003
+ },
26004
+ duration: duration,
26005
+ easing: easing,
26006
+ custom: InputText
26007
+ }), wave) {
26008
+ const dur = duration / 6;
26009
+ animator.animate(target.group, {
26010
+ timeSlices: [{
26011
+ duration: dur,
26012
+ effects: {
26013
+ type: "to",
26014
+ to: {
26015
+ angle: wave
26016
+ },
26017
+ easing: easing
26018
+ }
26019
+ }, {
26020
+ duration: 2 * dur,
26021
+ effects: {
26022
+ type: "to",
26023
+ to: {
26024
+ angle: -wave
26025
+ },
26026
+ easing: easing
26027
+ }
26028
+ }, {
26029
+ duration: 2 * dur,
26030
+ effects: {
26031
+ type: "to",
26032
+ to: {
26033
+ angle: wave
26034
+ },
26035
+ easing: easing
26036
+ }
26037
+ }, {
26038
+ duration: dur,
26039
+ effects: {
26040
+ type: "to",
26041
+ to: {
26042
+ angle: 0
26043
+ },
26044
+ easing: easing
26045
+ }
26046
+ }]
26047
+ });
26048
+ }
26049
+ this.completeBind(animator);
26050
+ }
26051
+ }
26052
+ class PoptipDisappear extends AComponentAnimate {
26053
+ onBind() {
26054
+ super.onBind();
26055
+ const animator = createComponentAnimator(this.target);
26056
+ this._animator = animator;
26057
+ const duration = this.duration,
26058
+ easing = this.easing,
26059
+ target = this.target;
26060
+ animator.animate(target, {
26061
+ type: "to",
26062
+ to: {
26063
+ scaleX: 0,
26064
+ scaleY: 0
26065
+ },
26066
+ duration: duration,
26067
+ easing: easing
26068
+ }), this.completeBind(animator);
26069
+ }
26070
+ }
26071
+
26072
+ class InputRichText extends ACustomAnimate {
26073
+ constructor(from, to, duration, easing, params) {
26074
+ super(from, to, duration, easing, params), this.fromTextConfig = [], this.toTextConfig = [], this.originalTextConfig = [], this.showCursor = !1, this.cursorChar = "|", this.blinkCursor = !0, this.fadeInChars = !1, this.fadeInDuration = .3, this.strokeFirst = !1, this.strokeToFillRatio = .3, void 0 !== (null == params ? void 0 : params.showCursor) && (this.showCursor = params.showCursor), void 0 !== (null == params ? void 0 : params.cursorChar) && (this.cursorChar = params.cursorChar), void 0 !== (null == params ? void 0 : params.blinkCursor) && (this.blinkCursor = params.blinkCursor), void 0 !== (null == params ? void 0 : params.fadeInChars) && (this.fadeInChars = params.fadeInChars), void 0 !== (null == params ? void 0 : params.fadeInDuration) && (this.fadeInDuration = params.fadeInDuration), void 0 !== (null == params ? void 0 : params.strokeFirst) && (this.strokeFirst = params.strokeFirst), void 0 !== (null == params ? void 0 : params.strokeToFillRatio) && (this.strokeToFillRatio = params.strokeToFillRatio);
26075
+ }
26076
+ onFirstRun() {
26077
+ const fromProps = this.getLastProps(),
26078
+ toProps = this.getEndProps();
26079
+ this.originalTextConfig = toProps.textConfig ? [...toProps.textConfig] : [], this.valid = !0, this.originalTextConfig && 0 !== this.originalTextConfig.length ? (this.fromTextConfig = fromProps.textConfig && fromProps.textConfig.length > 0 ? RichText.TransformTextConfig2SingleCharacter(fromProps.textConfig) : [], this.toTextConfig = RichText.TransformTextConfig2SingleCharacter(this.originalTextConfig)) : this.valid = !1;
26080
+ }
26081
+ onEnd(cb) {
26082
+ super.onEnd(cb), cb || this.target.setAttribute("textConfig", this.originalTextConfig);
26083
+ }
26084
+ onUpdate(end, ratio, out) {
26085
+ if (!this.valid) return;
26086
+ const totalItems = this.toTextConfig.length,
26087
+ fromItems = this.fromTextConfig.length,
26088
+ maxTextShowRatio = this.fadeInChars ? 1 - this.fadeInDuration : 1;
26089
+ let currentLength, currentTextConfig;
26090
+ if (fromItems > totalItems) currentLength = Math.round(fromItems - (fromItems - totalItems) * ratio);else if (this.fadeInChars) {
26091
+ const adjustedRatio = Math.min(1, ratio / maxTextShowRatio);
26092
+ currentLength = Math.round(fromItems + (totalItems - fromItems) * adjustedRatio);
26093
+ } else currentLength = Math.round(fromItems + (totalItems - fromItems) * ratio);
26094
+ if (currentTextConfig = fromItems > totalItems ? this.fromTextConfig.slice(0, currentLength) : this.toTextConfig.slice(0, currentLength).map((item, index) => {
26095
+ if ("text" in item) {
26096
+ const newItem = Object.assign({}, item);
26097
+ if (this.strokeFirst) {
26098
+ const appearTime = index / totalItems * maxTextShowRatio,
26099
+ itemLifetime = Math.max(0, ratio - appearTime),
26100
+ maxLifetime = 1 - appearTime,
26101
+ fillProgress = Math.min(1, itemLifetime / (this.strokeToFillRatio * maxLifetime));
26102
+ if ("fill" in newItem && newItem.fill && (newItem.stroke = newItem.fill, fillProgress < 1 && (newItem.fillOpacity = fillProgress)), this.fadeInChars) {
26103
+ const fadeProgress = Math.min(1, itemLifetime / (this.fadeInDuration * maxLifetime));
26104
+ newItem.opacity = Math.max(0, Math.min(1, fadeProgress));
26105
+ }
26106
+ } else if (this.fadeInChars) {
26107
+ const fadeProgress = (ratio - index / totalItems * maxTextShowRatio) / this.fadeInDuration;
26108
+ newItem.opacity = Math.max(0, Math.min(1, fadeProgress));
26109
+ }
26110
+ return newItem;
26111
+ }
26112
+ return item;
26113
+ }), this.showCursor && currentLength < totalItems) {
26114
+ let shouldShowCursor = !0;
26115
+ if (this.blinkCursor) {
26116
+ const blinkRate = .1;
26117
+ shouldShowCursor = Math.floor(ratio / blinkRate) % 2 == 0;
26118
+ }
26119
+ if (shouldShowCursor && currentTextConfig.length > 0) {
26120
+ const lastIndex = currentTextConfig.length - 1,
26121
+ lastItem = currentTextConfig[lastIndex];
26122
+ if ("text" in lastItem) currentTextConfig[lastIndex] = Object.assign(Object.assign({}, lastItem), {
26123
+ text: String(lastItem.text) + this.cursorChar
26124
+ });else {
26125
+ const cursorItem = {
26126
+ text: this.cursorChar,
26127
+ fontSize: 16
26128
+ };
26129
+ currentTextConfig.push(cursorItem);
26130
+ }
26131
+ }
26132
+ }
26133
+ this.target.setAttribute("textConfig", currentTextConfig);
26134
+ }
26135
+ }
26136
+
26137
+ class OutputRichText extends ACustomAnimate {
26138
+ constructor(from, to, duration, easing, params) {
26139
+ super(from, to, duration, easing, params), this.fromTextConfig = [], this.toTextConfig = [], this.originalTextConfig = [], this.showCursor = !1, this.cursorChar = "|", this.blinkCursor = !0, this.beforeText = "", this.afterText = "", this.fadeOutChars = !1, this.fadeOutDuration = .3, this.direction = "backward", void 0 !== (null == params ? void 0 : params.showCursor) && (this.showCursor = params.showCursor), void 0 !== (null == params ? void 0 : params.cursorChar) && (this.cursorChar = params.cursorChar), void 0 !== (null == params ? void 0 : params.blinkCursor) && (this.blinkCursor = params.blinkCursor), void 0 !== (null == params ? void 0 : params.beforeText) && (this.beforeText = params.beforeText), void 0 !== (null == params ? void 0 : params.afterText) && (this.afterText = params.afterText), void 0 !== (null == params ? void 0 : params.fadeOutChars) && (this.fadeOutChars = params.fadeOutChars), void 0 !== (null == params ? void 0 : params.fadeOutDuration) && (this.fadeOutDuration = params.fadeOutDuration), void 0 !== (null == params ? void 0 : params.direction) && (this.direction = params.direction), this.propKeys = ["textConfig"];
26140
+ }
26141
+ onFirstRun() {
26142
+ const fromProps = this.getLastProps(),
26143
+ toProps = this.getEndProps();
26144
+ this.originalTextConfig = fromProps.textConfig ? [...fromProps.textConfig] : [], this.valid = !0, this.originalTextConfig && 0 !== this.originalTextConfig.length ? (this.fromTextConfig = RichText.TransformTextConfig2SingleCharacter(this.originalTextConfig), this.toTextConfig = toProps.textConfig && toProps.textConfig.length > 0 ? RichText.TransformTextConfig2SingleCharacter(toProps.textConfig) : []) : this.valid = !1;
26145
+ }
26146
+ onEnd(cb) {
26147
+ super.onEnd(cb), cb || (this.toTextConfig.length > 0 ? this.target.setAttribute("textConfig", this.toTextConfig) : this.target.setAttribute("textConfig", []));
26148
+ }
26149
+ onUpdate(end, ratio, out) {
26150
+ if (!this.valid) return;
26151
+ const fromItems = this.fromTextConfig.length,
26152
+ maxTextHideRatio = this.fadeOutChars ? 1 - this.fadeOutDuration : 1;
26153
+ let displayedLength;
26154
+ if ("forward" === this.direction) {
26155
+ if (this.fadeOutChars) {
26156
+ const adjustedRatio = Math.min(1, ratio / maxTextHideRatio);
26157
+ displayedLength = Math.round(fromItems * (1 - adjustedRatio));
26158
+ } else displayedLength = Math.round(fromItems * (1 - ratio));
26159
+ let currentTextConfig = "forward" === this.direction ? this.fromTextConfig.slice(fromItems - displayedLength) : this.fromTextConfig.slice(0, displayedLength);
26160
+ this.fadeOutChars && (currentTextConfig = this.applyFadeEffect(currentTextConfig, ratio, fromItems, displayedLength)), this.showCursor && displayedLength > 0 && (currentTextConfig = this.addCursor(currentTextConfig, ratio)), this.target.setAttribute("textConfig", currentTextConfig);
26161
+ } else {
26162
+ if (this.fadeOutChars) {
26163
+ const adjustedRatio = Math.min(1, ratio / maxTextHideRatio);
26164
+ displayedLength = Math.round(fromItems * (1 - adjustedRatio));
26165
+ } else displayedLength = Math.round(fromItems * (1 - ratio));
26166
+ let currentTextConfig = this.fromTextConfig.slice(0, displayedLength);
26167
+ this.fadeOutChars && (currentTextConfig = this.applyFadeEffect(currentTextConfig, ratio, fromItems, displayedLength)), this.showCursor && displayedLength > 0 && (currentTextConfig = this.addCursor(currentTextConfig, ratio)), this.target.setAttribute("textConfig", currentTextConfig);
26168
+ }
26169
+ }
26170
+ applyFadeEffect(textConfig, ratio, totalItems, displayedLength) {
26171
+ "forward" === this.direction ? totalItems - displayedLength : displayedLength;
26172
+ const fadeProgress = (ratio - (1 - this.fadeOutDuration)) / this.fadeOutDuration,
26173
+ fadeOpacity = Math.max(0, 1 - Math.min(1, fadeProgress));
26174
+ return textConfig.map((item, index) => {
26175
+ if ("forward" === this.direction) {
26176
+ if (0 === index && "text" in item) return Object.assign(Object.assign({}, item), {
26177
+ opacity: fadeOpacity
26178
+ });
26179
+ } else if (index === textConfig.length - 1 && "text" in item) return Object.assign(Object.assign({}, item), {
26180
+ opacity: fadeOpacity
26181
+ });
26182
+ return item;
26183
+ });
26184
+ }
26185
+ addCursor(textConfig, ratio) {
26186
+ let shouldShowCursor = !0;
26187
+ if (this.blinkCursor) {
26188
+ const blinkRate = .1;
26189
+ shouldShowCursor = Math.floor(ratio / blinkRate) % 2 == 0;
26190
+ }
26191
+ if (shouldShowCursor && textConfig.length > 0) {
26192
+ const cursorIndex = "forward" === this.direction ? 0 : textConfig.length - 1,
26193
+ cursorItem = textConfig[cursorIndex];
26194
+ if ("text" in cursorItem) {
26195
+ const result = [...textConfig];
26196
+ return "forward" === this.direction ? result[cursorIndex] = Object.assign(Object.assign({}, cursorItem), {
26197
+ text: this.cursorChar + String(cursorItem.text)
26198
+ }) : result[cursorIndex] = Object.assign(Object.assign({}, cursorItem), {
26199
+ text: String(cursorItem.text) + this.cursorChar
26200
+ }), result;
26201
+ }
26202
+ }
26203
+ return textConfig;
26204
+ }
26205
+ }
26206
+
26207
+ class SlideRichText extends ACustomAnimate {
26208
+ constructor(from, to, duration, easing, params) {
26209
+ super(from, to, duration, easing, params), this.fromTextConfig = [], this.toTextConfig = [], this.originalTextConfig = [], this.singleCharConfig = [], this.fadeInDuration = .3, this.slideDirection = "right", this.slideDistance = 30, this.wordByWord = !1, this.wordRegex = /[a-zA-Z]+(-[a-zA-Z]+)*|[\u4e00-\u9fa5]+|[0-9]+|[^\s\w\u4e00-\u9fa5]/g, this.wordGroups = [], void 0 !== (null == params ? void 0 : params.fadeInDuration) && (this.fadeInDuration = params.fadeInDuration), void 0 !== (null == params ? void 0 : params.slideDirection) && (this.slideDirection = params.slideDirection), void 0 !== (null == params ? void 0 : params.slideDistance) && (this.slideDistance = params.slideDistance), void 0 !== (null == params ? void 0 : params.wordByWord) && (this.wordByWord = params.wordByWord), void 0 !== (null == params ? void 0 : params.wordRegex) && (this.wordRegex = params.wordRegex);
26210
+ }
26211
+ onFirstRun() {
26212
+ const fromProps = this.getLastProps(),
26213
+ toProps = this.getEndProps();
26214
+ this.originalTextConfig = toProps.textConfig ? [...toProps.textConfig] : [], this.valid = !0, this.originalTextConfig && 0 !== this.originalTextConfig.length ? (this.fromTextConfig = fromProps.textConfig && fromProps.textConfig.length > 0 ? RichText.TransformTextConfig2SingleCharacter(fromProps.textConfig) : [], this.toTextConfig = RichText.TransformTextConfig2SingleCharacter(this.originalTextConfig), this.singleCharConfig = this.toTextConfig.map(item => "text" in item ? Object.assign(Object.assign({}, item), {
26215
+ opacity: 0,
26216
+ dx: this.getInitialDx(),
26217
+ dy: this.getInitialDy()
26218
+ }) : Object.assign(Object.assign({}, item), {
26219
+ opacity: 0
26220
+ })), this.wordByWord && this.calculateWordGroups()) : this.valid = !1;
26221
+ }
26222
+ calculateWordGroups() {
26223
+ this.wordGroups = [];
26224
+ let fullText = "";
26225
+ const charMap = {};
26226
+ let match,
26227
+ fullTextIndex = 0;
26228
+ for (this.toTextConfig.forEach((item, configIndex) => {
26229
+ if (("text" in item)) {
26230
+ const text = String(item.text);
26231
+ fullText += text, charMap[fullTextIndex] = configIndex, fullTextIndex++;
26232
+ }
26233
+ }), this.wordRegex.lastIndex = 0; null !== (match = this.wordRegex.exec(fullText));) {
26234
+ const wordStart = match.index,
26235
+ wordEnd = match.index + match[0].length,
26236
+ wordIndices = [];
26237
+ for (let i = wordStart; i < wordEnd; i++) void 0 !== charMap[i] && wordIndices.push(charMap[i]);
26238
+ wordIndices.length > 0 && this.wordGroups.push(wordIndices);
26239
+ }
26240
+ const allocatedIndices = new Set();
26241
+ this.wordGroups.forEach(group => {
26242
+ group.forEach(index => allocatedIndices.add(index));
26243
+ });
26244
+ for (let i = 0; i < this.toTextConfig.length; i++) "text" in this.toTextConfig[i] && !allocatedIndices.has(i) && this.wordGroups.push([i]);
26245
+ }
26246
+ getInitialDx() {
26247
+ switch (this.slideDirection) {
26248
+ case "left":
26249
+ return -this.slideDistance;
26250
+ case "right":
26251
+ return this.slideDistance;
26252
+ default:
26253
+ return 0;
26254
+ }
26255
+ }
26256
+ getInitialDy() {
26257
+ switch (this.slideDirection) {
26258
+ case "up":
26259
+ return -this.slideDistance;
26260
+ case "down":
26261
+ return this.slideDistance;
26262
+ default:
26263
+ return 0;
26264
+ }
26265
+ }
26266
+ onEnd(cb) {
26267
+ super.onEnd(cb), cb || this.target.setAttribute("textConfig", this.originalTextConfig);
26268
+ }
26269
+ onUpdate(end, ratio, out) {
26270
+ if (!this.valid) return;
26271
+ const maxTextShowRatio = 1 - this.fadeInDuration;
26272
+ let updatedTextConfig;
26273
+ updatedTextConfig = this.wordByWord && this.wordGroups.length > 0 ? this.updateByWord(ratio, maxTextShowRatio) : this.updateByCharacter(ratio, maxTextShowRatio), this.target.setAttribute("textConfig", updatedTextConfig);
26274
+ }
26275
+ updateByWord(ratio, maxTextShowRatio) {
26276
+ const totalGroups = this.wordGroups.length,
26277
+ updatedTextConfig = [...this.singleCharConfig];
26278
+ for (let groupIndex = 0; groupIndex < this.wordGroups.length; groupIndex++) {
26279
+ let appearTime;
26280
+ if (appearTime = "left" === this.slideDirection ? (totalGroups - 1 - groupIndex) / totalGroups * maxTextShowRatio : groupIndex / totalGroups * maxTextShowRatio, ratio < appearTime) {
26281
+ for (const charIndex of this.wordGroups[groupIndex]) {
26282
+ const item = updatedTextConfig[charIndex];
26283
+ "text" in item && (updatedTextConfig[charIndex] = Object.assign(Object.assign({}, item), {
26284
+ opacity: 0,
26285
+ dx: this.getInitialDx(),
26286
+ dy: this.getInitialDy()
26287
+ }));
26288
+ }
26289
+ continue;
26290
+ }
26291
+ const animProgress = (ratio - appearTime) / this.fadeInDuration,
26292
+ progress = Math.max(0, Math.min(1, animProgress)),
26293
+ dx = this.getInitialDx() * (1 - progress),
26294
+ dy = this.getInitialDy() * (1 - progress);
26295
+ for (const charIndex of this.wordGroups[groupIndex]) {
26296
+ const item = updatedTextConfig[charIndex];
26297
+ "text" in item && (updatedTextConfig[charIndex] = Object.assign(Object.assign({}, item), {
26298
+ opacity: progress,
26299
+ dx: dx,
26300
+ dy: dy
26301
+ }));
26302
+ }
26303
+ }
26304
+ return updatedTextConfig;
26305
+ }
26306
+ updateByCharacter(ratio, maxTextShowRatio) {
26307
+ const totalItems = this.toTextConfig.length,
26308
+ updatedTextConfig = [...this.singleCharConfig];
26309
+ for (let index = 0; index < updatedTextConfig.length; index++) {
26310
+ const item = updatedTextConfig[index];
26311
+ if ("text" in item) {
26312
+ let appearTime;
26313
+ if (appearTime = "left" === this.slideDirection ? (totalItems - 1 - index) / totalItems * maxTextShowRatio : index / totalItems * maxTextShowRatio, ratio < appearTime) {
26314
+ updatedTextConfig[index] = Object.assign(Object.assign({}, item), {
26315
+ opacity: 0,
26316
+ dx: this.getInitialDx(),
26317
+ dy: this.getInitialDy()
26318
+ });
26319
+ continue;
26320
+ }
26321
+ const animProgress = (ratio - appearTime) / this.fadeInDuration,
26322
+ progress = Math.max(0, Math.min(1, animProgress)),
26323
+ dx = this.getInitialDx() * (1 - progress),
26324
+ dy = this.getInitialDy() * (1 - progress);
26325
+ updatedTextConfig[index] = Object.assign(Object.assign({}, item), {
26326
+ opacity: progress,
26327
+ dx: dx,
26328
+ dy: dy
26329
+ });
26330
+ }
26331
+ }
26332
+ return updatedTextConfig;
26333
+ }
26334
+ }
26335
+
26336
+ class SlideOutRichText extends ACustomAnimate {
26337
+ constructor(from, to, duration, easing, params) {
26338
+ super(from, to, duration, easing, params), this.fromTextConfig = [], this.toTextConfig = [], this.originalTextConfig = [], this.singleCharConfig = [], this.fadeOutDuration = .3, this.slideDirection = "right", this.slideDistance = 30, this.wordByWord = !1, this.wordRegex = /[a-zA-Z]+(-[a-zA-Z]+)*|[\u4e00-\u9fa5]+|[0-9]+|[^\s\w\u4e00-\u9fa5]/g, this.wordGroups = [], this.reverseOrder = !1, void 0 !== (null == params ? void 0 : params.fadeOutDuration) && (this.fadeOutDuration = params.fadeOutDuration), void 0 !== (null == params ? void 0 : params.slideDirection) && (this.slideDirection = params.slideDirection), void 0 !== (null == params ? void 0 : params.slideDistance) && (this.slideDistance = params.slideDistance), void 0 !== (null == params ? void 0 : params.wordByWord) && (this.wordByWord = params.wordByWord), void 0 !== (null == params ? void 0 : params.wordRegex) && (this.wordRegex = params.wordRegex), void 0 !== (null == params ? void 0 : params.reverseOrder) && (this.reverseOrder = params.reverseOrder), this.propKeys = ["textConfig"];
26339
+ }
26340
+ onFirstRun() {
26341
+ const fromProps = this.getLastProps(),
26342
+ toProps = this.getEndProps();
26343
+ this.originalTextConfig = fromProps.textConfig ? [...fromProps.textConfig] : [], this.valid = !0, this.originalTextConfig && 0 !== this.originalTextConfig.length ? (this.fromTextConfig = RichText.TransformTextConfig2SingleCharacter(this.originalTextConfig), this.toTextConfig = toProps.textConfig && toProps.textConfig.length > 0 ? RichText.TransformTextConfig2SingleCharacter(toProps.textConfig) : [], this.singleCharConfig = this.fromTextConfig.map(item => "text" in item ? Object.assign(Object.assign({}, item), {
26344
+ opacity: 1,
26345
+ dx: 0,
26346
+ dy: 0
26347
+ }) : Object.assign(Object.assign({}, item), {
26348
+ opacity: 1
26349
+ })), this.wordByWord && this.calculateWordGroups()) : this.valid = !1;
26350
+ }
26351
+ calculateWordGroups() {
26352
+ this.wordGroups = [];
26353
+ let fullText = "";
26354
+ const charMap = {};
26355
+ let match,
26356
+ fullTextIndex = 0;
26357
+ for (this.fromTextConfig.forEach((item, configIndex) => {
26358
+ if (("text" in item)) {
26359
+ const text = String(item.text);
26360
+ fullText += text, charMap[fullTextIndex] = configIndex, fullTextIndex++;
26361
+ }
26362
+ }), this.wordRegex.lastIndex = 0; null !== (match = this.wordRegex.exec(fullText));) {
26363
+ const wordStart = match.index,
26364
+ wordEnd = match.index + match[0].length,
26365
+ wordIndices = [];
26366
+ for (let i = wordStart; i < wordEnd; i++) void 0 !== charMap[i] && wordIndices.push(charMap[i]);
26367
+ wordIndices.length > 0 && this.wordGroups.push(wordIndices);
26368
+ }
26369
+ const allocatedIndices = new Set();
26370
+ this.wordGroups.forEach(group => {
26371
+ group.forEach(index => allocatedIndices.add(index));
26372
+ });
26373
+ for (let i = 0; i < this.fromTextConfig.length; i++) "text" in this.fromTextConfig[i] && !allocatedIndices.has(i) && this.wordGroups.push([i]);
26374
+ }
26375
+ getTargetDx() {
26376
+ switch (this.slideDirection) {
26377
+ case "left":
26378
+ return -this.slideDistance;
26379
+ case "right":
26380
+ return this.slideDistance;
26381
+ default:
26382
+ return 0;
26383
+ }
26384
+ }
26385
+ getTargetDy() {
26386
+ switch (this.slideDirection) {
26387
+ case "up":
26388
+ return -this.slideDistance;
26389
+ case "down":
26390
+ return this.slideDistance;
26391
+ default:
26392
+ return 0;
26393
+ }
26394
+ }
26395
+ onEnd(cb) {
26396
+ super.onEnd(cb), cb || (this.toTextConfig.length > 0 ? this.target.setAttribute("textConfig", this.toTextConfig) : this.target.setAttribute("textConfig", []));
26397
+ }
26398
+ onUpdate(end, ratio, out) {
26399
+ if (!this.valid) return;
26400
+ const maxTextShowRatio = 1 - this.fadeOutDuration;
26401
+ let updatedTextConfig;
26402
+ updatedTextConfig = this.wordByWord && this.wordGroups.length > 0 ? this.updateByWord(ratio, maxTextShowRatio) : this.updateByCharacter(ratio, maxTextShowRatio), this.target.setAttribute("textConfig", updatedTextConfig);
26403
+ }
26404
+ updateByWord(ratio, maxTextShowRatio) {
26405
+ const totalGroups = this.wordGroups.length,
26406
+ updatedTextConfig = [...this.singleCharConfig];
26407
+ for (let groupIndex = 0; groupIndex < this.wordGroups.length; groupIndex++) {
26408
+ let disappearTime;
26409
+ if (disappearTime = this.reverseOrder ? "left" === this.slideDirection ? groupIndex / totalGroups * maxTextShowRatio : (totalGroups - 1 - groupIndex) / totalGroups * maxTextShowRatio : "left" === this.slideDirection ? (totalGroups - 1 - groupIndex) / totalGroups * maxTextShowRatio : groupIndex / totalGroups * maxTextShowRatio, ratio < disappearTime) {
26410
+ for (const charIndex of this.wordGroups[groupIndex]) {
26411
+ const item = updatedTextConfig[charIndex];
26412
+ "text" in item && (updatedTextConfig[charIndex] = Object.assign(Object.assign({}, item), {
26413
+ opacity: 1,
26414
+ dx: 0,
26415
+ dy: 0
26416
+ }));
26417
+ }
26418
+ continue;
26419
+ }
26420
+ const animProgress = (ratio - disappearTime) / this.fadeOutDuration,
26421
+ progress = Math.max(0, Math.min(1, animProgress)),
26422
+ dx = this.getTargetDx() * progress,
26423
+ dy = this.getTargetDy() * progress,
26424
+ opacity = 1 - progress;
26425
+ for (const charIndex of this.wordGroups[groupIndex]) {
26426
+ const item = updatedTextConfig[charIndex];
26427
+ "text" in item && (updatedTextConfig[charIndex] = Object.assign(Object.assign({}, item), {
26428
+ opacity: opacity,
26429
+ dx: dx,
26430
+ dy: dy
26431
+ }));
26432
+ }
26433
+ }
26434
+ return updatedTextConfig;
26435
+ }
26436
+ updateByCharacter(ratio, maxTextShowRatio) {
26437
+ const totalItems = this.fromTextConfig.length,
26438
+ updatedTextConfig = [...this.singleCharConfig];
26439
+ for (let index = 0; index < updatedTextConfig.length; index++) {
26440
+ const item = updatedTextConfig[index];
26441
+ if ("text" in item) {
26442
+ let disappearTime;
26443
+ if (disappearTime = this.reverseOrder ? "left" === this.slideDirection ? index / totalItems * maxTextShowRatio : (totalItems - 1 - index) / totalItems * maxTextShowRatio : "left" === this.slideDirection ? (totalItems - 1 - index) / totalItems * maxTextShowRatio : index / totalItems * maxTextShowRatio, ratio < disappearTime) {
26444
+ updatedTextConfig[index] = Object.assign(Object.assign({}, item), {
26445
+ opacity: 1,
26446
+ dx: 0,
26447
+ dy: 0
26448
+ });
26449
+ continue;
26450
+ }
26451
+ const animProgress = (ratio - disappearTime) / this.fadeOutDuration,
26452
+ progress = Math.max(0, Math.min(1, animProgress)),
26453
+ dx = this.getTargetDx() * progress,
26454
+ dy = this.getTargetDy() * progress,
26455
+ opacity = 1 - progress;
26456
+ updatedTextConfig[index] = Object.assign(Object.assign({}, item), {
26457
+ opacity: opacity,
26458
+ dx: dx,
26459
+ dy: dy
26460
+ });
26461
+ }
26462
+ }
26463
+ return updatedTextConfig;
26464
+ }
26465
+ }
26466
+
26467
+ class ScaleIn extends ACustomAnimate {
26468
+ constructor(from, to, duration, easing, params) {
26469
+ super(from, to, duration, easing, params);
26470
+ }
26471
+ onBind() {
26472
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
26473
+ let from, to;
26474
+ super.onBind();
26475
+ const attrs = this.target.getFinalAttribute(),
26476
+ fromAttrs = null !== (_a = this.target.attribute) && void 0 !== _a ? _a : {};
26477
+ switch (null === (_b = this.params) || void 0 === _b ? void 0 : _b.direction) {
26478
+ case "x":
26479
+ from = {
26480
+ scaleX: null !== (_c = fromAttrs.scaleX) && void 0 !== _c ? _c : 0
26481
+ }, to = {
26482
+ scaleX: null !== (_d = null == attrs ? void 0 : attrs.scaleX) && void 0 !== _d ? _d : 1
26483
+ }, this._updateFunction = this.updateX;
26484
+ break;
26485
+ case "y":
26486
+ from = {
26487
+ scaleY: null !== (_e = fromAttrs.scaleY) && void 0 !== _e ? _e : 0
26488
+ }, to = {
26489
+ scaleY: null !== (_f = null == attrs ? void 0 : attrs.scaleY) && void 0 !== _f ? _f : 1
26490
+ }, this._updateFunction = this.updateY;
26491
+ break;
26492
+ default:
26493
+ from = {
26494
+ scaleX: null !== (_g = fromAttrs.scaleX) && void 0 !== _g ? _g : 0,
26495
+ scaleY: null !== (_h = fromAttrs.scaleY) && void 0 !== _h ? _h : 0
26496
+ }, to = {
26497
+ scaleX: null !== (_j = null == attrs ? void 0 : attrs.scaleX) && void 0 !== _j ? _j : 1,
26498
+ scaleY: null !== (_k = null == attrs ? void 0 : attrs.scaleY) && void 0 !== _k ? _k : 1
26499
+ }, this._updateFunction = this.updateXY;
26500
+ }
26501
+ const finalAttribute = this.target.getFinalAttribute();
26502
+ finalAttribute && this.target.setAttributes(finalAttribute), this.props = to, this.from = from, this.to = to, !1 !== (null === (_l = this.params.controlOptions) || void 0 === _l ? void 0 : _l.immediatelyApply) && this.target.setAttributes(from);
26503
+ }
26504
+ onEnd(cb) {
26505
+ super.onEnd(cb);
26506
+ }
26507
+ updateX(ratio) {
26508
+ this.target.attribute.scaleX = this.from.scaleX + (this.to.scaleX - this.from.scaleX) * ratio;
26509
+ }
26510
+ updateY(ratio) {
26511
+ this.target.attribute.scaleY = this.from.scaleY + (this.to.scaleY - this.from.scaleY) * ratio;
26512
+ }
26513
+ updateXY(ratio) {
26514
+ this.updateX(ratio), this.updateY(ratio);
26515
+ }
26516
+ deleteSelfAttr(key) {
26517
+ delete this.props[key], this.fromProps && delete this.fromProps[key];
26518
+ const index = this.propKeys.indexOf(key);
26519
+ -1 !== index && this.propKeys.splice(index, 1), this.propKeys && this.propKeys.length > 1 ? this._updateFunction = this.updateXY : "scaleX" === this.propKeys[0] ? this._updateFunction = this.updateX : "scaleY" === this.propKeys[0] ? this._updateFunction = this.updateY : this._updateFunction = null;
26520
+ }
26521
+ onUpdate(end, ratio, out) {
26522
+ this._updateFunction && (this._updateFunction(ratio), this.target.addUpdatePositionTag(), this.target.addUpdateBoundTag());
26523
+ }
26524
+ }
26525
+ class ScaleOut extends ACustomAnimate {
26526
+ constructor(from, to, duration, easing, params) {
26527
+ super(from, to, duration, easing, params);
26528
+ }
26529
+ onBind() {
26530
+ var _a, _b, _c, _d, _e;
26531
+ let from, to;
26532
+ super.onBind();
26533
+ const attrs = this.target.attribute;
26534
+ switch (null === (_a = this.params) || void 0 === _a ? void 0 : _a.direction) {
26535
+ case "x":
26536
+ from = {
26537
+ scaleX: null !== (_b = null == attrs ? void 0 : attrs.scaleX) && void 0 !== _b ? _b : 1
26538
+ }, to = {
26539
+ scaleX: 0
26540
+ };
26541
+ break;
26542
+ case "y":
26543
+ from = {
26544
+ scaleY: null !== (_c = null == attrs ? void 0 : attrs.scaleY) && void 0 !== _c ? _c : 1
26545
+ }, to = {
26546
+ scaleY: 0
26547
+ };
26548
+ break;
26549
+ default:
26550
+ from = {
26551
+ scaleX: null !== (_d = null == attrs ? void 0 : attrs.scaleX) && void 0 !== _d ? _d : 1,
26552
+ scaleY: null !== (_e = null == attrs ? void 0 : attrs.scaleY) && void 0 !== _e ? _e : 1
26553
+ }, to = {
26554
+ scaleX: 0,
26555
+ scaleY: 0
26556
+ };
26557
+ }
26558
+ this.props = to, this.from = from, this.to = to;
26559
+ }
26560
+ onEnd(cb) {
26561
+ super.onEnd(cb);
26562
+ }
26563
+ onUpdate(end, ratio, out) {
26564
+ const attribute = this.target.attribute;
26565
+ this.propKeys.forEach(key => {
26566
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
26567
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateBoundTag();
26568
+ }
26569
+ }
26570
+
26571
+ class State extends ACustomAnimate {
26572
+ constructor(from, to, duration, easing, params) {
26573
+ super(from, to, duration, easing, params);
26574
+ }
26575
+ update(end, ratio, out) {
26576
+ if (this.onStart(), !this.props || !this.propKeys) return;
26577
+ const easedRatio = this.easing(ratio);
26578
+ this.animate.interpolateUpdateFunction ? this.animate.interpolateUpdateFunction(this.fromProps, this.props, easedRatio, this, this.target) : this.interpolateUpdateFunctions.forEach((func, index) => {
26579
+ if (!this.animate.validAttr(this.propKeys[index])) return;
26580
+ const key = this.propKeys[index];
26581
+ func(key, this.fromProps[key], this.props[key], easedRatio, this, this.target);
26582
+ }), this.onUpdate(end, easedRatio, out), this.syncAttributeUpdate();
26583
+ }
26584
+ }
26585
+
26586
+ class SlideIn extends ACustomAnimate {
26587
+ constructor(from, to, duration, easing, params) {
26588
+ super(from, to, duration, easing, params);
26589
+ }
26590
+ onBind() {
26591
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
26592
+ super.onBind();
26593
+ const attrs = this.target.getFinalAttribute(),
26594
+ direction = (null === (_a = this.params) || void 0 === _a ? void 0 : _a.direction) || "right",
26595
+ distance = (null === (_b = this.params) || void 0 === _b ? void 0 : _b.distance) || 50,
26596
+ fromOpacity = null !== (_d = null === (_c = this.params) || void 0 === _c ? void 0 : _c.fromOpacity) && void 0 !== _d ? _d : 0,
26597
+ from = {
26598
+ opacity: fromOpacity,
26599
+ baseOpacity: fromOpacity
26600
+ },
26601
+ to = {
26602
+ opacity: 1,
26603
+ baseOpacity: 1
26604
+ };
26605
+ "top" === direction ? (from.y = (null !== (_e = attrs.y) && void 0 !== _e ? _e : 0) - distance, to.y = null !== (_f = attrs.y) && void 0 !== _f ? _f : 0, this.propKeys = ["opacity", "baseOpacity", "y"]) : "bottom" === direction ? (from.y = (null !== (_g = attrs.y) && void 0 !== _g ? _g : 0) + distance, to.y = null !== (_h = attrs.y) && void 0 !== _h ? _h : 0, this.propKeys = ["opacity", "baseOpacity", "y"]) : "left" === direction ? (from.x = (null !== (_j = attrs.x) && void 0 !== _j ? _j : 0) - distance, to.x = null !== (_k = attrs.x) && void 0 !== _k ? _k : 0, this.propKeys = ["opacity", "baseOpacity", "x"]) : (from.x = (null !== (_l = attrs.x) && void 0 !== _l ? _l : 0) + distance, to.x = null !== (_m = attrs.x) && void 0 !== _m ? _m : 0, this.propKeys = ["opacity", "baseOpacity", "x"]), this.from = from, this.to = to, this.props = to, this.target.setAttributes(from);
26606
+ }
26607
+ onUpdate(end, ratio, out) {
26608
+ const attribute = this.target.attribute;
26609
+ this.propKeys.forEach(key => {
26610
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
26611
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
26612
+ }
26613
+ }
26614
+ class GrowIn extends ACustomAnimate {
26615
+ constructor(from, to, duration, easing, params) {
26616
+ super(from, to, duration, easing, params);
26617
+ }
26618
+ onBind() {
26619
+ var _a, _b, _c, _d, _e, _f, _g;
26620
+ super.onBind();
26621
+ const attrs = this.target.getFinalAttribute(),
26622
+ fromScale = null !== (_b = null === (_a = this.params) || void 0 === _a ? void 0 : _a.fromScale) && void 0 !== _b ? _b : 0,
26623
+ direction = (null === (_c = this.params) || void 0 === _c ? void 0 : _c.direction) || "xy",
26624
+ fromOpacity = null !== (_e = null === (_d = this.params) || void 0 === _d ? void 0 : _d.fromOpacity) && void 0 !== _e ? _e : 0,
26625
+ from = {
26626
+ opacity: fromOpacity,
26627
+ baseOpacity: fromOpacity
26628
+ },
26629
+ to = {
26630
+ opacity: 1,
26631
+ baseOpacity: 1
26632
+ };
26633
+ this.propKeys = ["opacity", "baseOpacity"], "x" !== direction && "xy" !== direction || (from.scaleX = fromScale, to.scaleX = null !== (_f = attrs.scaleX) && void 0 !== _f ? _f : 1, this.propKeys.push("scaleX")), "y" !== direction && "xy" !== direction || (from.scaleY = fromScale, to.scaleY = null !== (_g = attrs.scaleY) && void 0 !== _g ? _g : 1, this.propKeys.push("scaleY")), this.from = from, this.to = to, this.props = to, this.target.setAttributes(from);
26634
+ }
26635
+ onUpdate(end, ratio, out) {
26636
+ const attribute = this.target.attribute;
26637
+ this.propKeys.forEach(key => {
26638
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
26639
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
26640
+ }
26641
+ }
26642
+ class SpinIn extends ACustomAnimate {
26643
+ constructor(from, to, duration, easing, params) {
26644
+ super(from, to, duration, easing, params);
26645
+ }
26646
+ onBind() {
26647
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
26648
+ super.onBind();
26649
+ const attrs = this.target.getFinalAttribute(),
26650
+ fromAngle = null !== (_b = null === (_a = this.params) || void 0 === _a ? void 0 : _a.fromAngle) && void 0 !== _b ? _b : 2 * Math.PI,
26651
+ fromScale = null !== (_d = null === (_c = this.params) || void 0 === _c ? void 0 : _c.fromScale) && void 0 !== _d ? _d : 0,
26652
+ fromOpacity = null !== (_f = null === (_e = this.params) || void 0 === _e ? void 0 : _e.fromOpacity) && void 0 !== _f ? _f : 0,
26653
+ from = {
26654
+ opacity: fromOpacity,
26655
+ baseOpacity: fromOpacity,
26656
+ angle: fromAngle,
26657
+ scaleX: fromScale,
26658
+ scaleY: fromScale
26659
+ },
26660
+ to = {
26661
+ opacity: 1,
26662
+ baseOpacity: 1,
26663
+ angle: null !== (_g = attrs.angle) && void 0 !== _g ? _g : 0,
26664
+ scaleX: null !== (_h = attrs.scaleX) && void 0 !== _h ? _h : 1,
26665
+ scaleY: null !== (_j = attrs.scaleY) && void 0 !== _j ? _j : 1
26666
+ };
26667
+ this.propKeys = ["opacity", "baseOpacity", "angle", "scaleX", "scaleY"], this.from = from, this.to = to, this.props = to, this.target.setAttributes(from);
26668
+ }
26669
+ onUpdate(end, ratio, out) {
26670
+ const attribute = this.target.attribute;
26671
+ this.propKeys.forEach(key => {
26672
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
26673
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
26674
+ }
26675
+ }
26676
+ class StrokeIn extends ACustomAnimate {
26677
+ constructor(from, to, duration, easing, params) {
26678
+ super(from, to, duration, easing, params), this.perimeter = 0, this.originalAttributes = {};
26679
+ }
26680
+ onBind() {
26681
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
26682
+ if (super.onBind(), this.originalAttributes = Object.assign({}, this.target.getAttributes()), "rect" === this.target.type) {
26683
+ const attr = this.target.attribute,
26684
+ width = null !== (_a = attr.width) && void 0 !== _a ? _a : 100,
26685
+ height = null !== (_b = attr.height) && void 0 !== _b ? _b : 100;
26686
+ this.perimeter = 2 * (width + height);
26687
+ } else if ("circle" === this.target.type) {
26688
+ const radius = null !== (_c = this.target.attribute.radius) && void 0 !== _c ? _c : 50;
26689
+ this.perimeter = 2 * Math.PI * radius;
26690
+ } else if ("ellipse" === this.target.type) {
26691
+ const attr = this.target.attribute,
26692
+ radiusX = null !== (_d = attr.radiusX) && void 0 !== _d ? _d : 50,
26693
+ radiusY = null !== (_e = attr.radiusY) && void 0 !== _e ? _e : 50;
26694
+ this.perimeter = 2 * Math.PI * Math.sqrt((radiusX * radiusX + radiusY * radiusY) / 2);
26695
+ } else this.perimeter = 1e3;
26696
+ const lineWidth = null !== (_g = null === (_f = this.params) || void 0 === _f ? void 0 : _f.lineWidth) && void 0 !== _g ? _g : 2,
26697
+ strokeColor = null !== (_j = null === (_h = this.params) || void 0 === _h ? void 0 : _h.strokeColor) && void 0 !== _j ? _j : "black",
26698
+ fromOpacity = null !== (_l = null === (_k = this.params) || void 0 === _k ? void 0 : _k.fromOpacity) && void 0 !== _l ? _l : 1,
26699
+ dashLength = null !== (_o = null === (_m = this.params) || void 0 === _m ? void 0 : _m.dashLength) && void 0 !== _o ? _o : this.perimeter,
26700
+ showFill = null !== (_q = null === (_p = this.params) || void 0 === _p ? void 0 : _p.showFill) && void 0 !== _q && _q,
26701
+ fillOpacity = null !== (_s = null === (_r = this.params) || void 0 === _r ? void 0 : _r.fillOpacity) && void 0 !== _s ? _s : 0;
26702
+ this.from = {
26703
+ lineDash: [dashLength, dashLength],
26704
+ lineDashOffset: dashLength,
26705
+ lineWidth: lineWidth,
26706
+ stroke: strokeColor,
26707
+ strokeOpacity: fromOpacity
26708
+ }, this.to = {
26709
+ lineDash: [dashLength, dashLength],
26710
+ lineDashOffset: 0,
26711
+ lineWidth: lineWidth,
26712
+ stroke: strokeColor,
26713
+ strokeOpacity: fromOpacity
26714
+ }, showFill ? (this.from.fillOpacity = fillOpacity, this.to.fillOpacity = null !== (_t = this.originalAttributes.fillOpacity) && void 0 !== _t ? _t : 1) : (this.from.fillOpacity = 0, this.to.fillOpacity = 0), this.propKeys = ["lineDash", "lineDashOffset", "lineWidth", "stroke", "strokeOpacity", "fillOpacity"], this.props = this.to, this.target.setAttributes(this.from);
26715
+ }
26716
+ onUpdate(end, ratio, out) {
26717
+ var _a;
26718
+ const attribute = this.target.attribute;
26719
+ attribute.lineDashOffset = this.from.lineDashOffset + (this.to.lineDashOffset - this.from.lineDashOffset) * ratio, (null === (_a = this.params) || void 0 === _a ? void 0 : _a.showFill) && (attribute.fillOpacity = this.from.fillOpacity + (this.to.fillOpacity - this.from.fillOpacity) * ratio);
26720
+ }
26721
+ onEnd() {
26722
+ var _a;
26723
+ if (super.onEnd(), !(null === (_a = this.params) || void 0 === _a ? void 0 : _a.showFill)) {
26724
+ const originalAttrs = Object.assign({}, this.originalAttributes);
26725
+ originalAttrs.fillOpacity = 0, this.target.setAttributes(originalAttrs);
26726
+ }
26727
+ }
26728
+ }
26729
+ class StrokeOut extends ACustomAnimate {
26730
+ constructor(from, to, duration, easing, params) {
26731
+ super(from, to, duration, easing, params), this.perimeter = 0, this.originalAttributes = {};
26732
+ }
26733
+ onFirstRun() {
26734
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
26735
+ if (this.originalAttributes = Object.assign({}, this.target.getAttributes()), "rect" === this.target.type) {
26736
+ const attr = this.target.attribute,
26737
+ width = null !== (_a = attr.width) && void 0 !== _a ? _a : 100,
26738
+ height = null !== (_b = attr.height) && void 0 !== _b ? _b : 100;
26739
+ this.perimeter = 2 * (width + height);
26740
+ } else if ("circle" === this.target.type) {
26741
+ const radius = null !== (_c = this.target.attribute.radius) && void 0 !== _c ? _c : 50;
26742
+ this.perimeter = 2 * Math.PI * radius;
26743
+ } else if ("ellipse" === this.target.type) {
26744
+ const attr = this.target.attribute,
26745
+ radiusX = null !== (_d = attr.radiusX) && void 0 !== _d ? _d : 50,
26746
+ radiusY = null !== (_e = attr.radiusY) && void 0 !== _e ? _e : 50;
26747
+ this.perimeter = 2 * Math.PI * Math.sqrt((radiusX * radiusX + radiusY * radiusY) / 2);
26748
+ } else this.perimeter = 1e3;
26749
+ const lineWidth = null !== (_g = null === (_f = this.params) || void 0 === _f ? void 0 : _f.lineWidth) && void 0 !== _g ? _g : 2,
26750
+ strokeColor = null !== (_j = null === (_h = this.params) || void 0 === _h ? void 0 : _h.strokeColor) && void 0 !== _j ? _j : "black",
26751
+ fromOpacity = null !== (_l = null === (_k = this.params) || void 0 === _k ? void 0 : _k.fromOpacity) && void 0 !== _l ? _l : 1,
26752
+ dashLength = null !== (_o = null === (_m = this.params) || void 0 === _m ? void 0 : _m.dashLength) && void 0 !== _o ? _o : this.perimeter,
26753
+ showFill = null !== (_q = null === (_p = this.params) || void 0 === _p ? void 0 : _p.showFill) && void 0 !== _q && _q;
26754
+ this.from = {
26755
+ lineDash: [dashLength, dashLength],
26756
+ lineDashOffset: 0,
26757
+ lineWidth: lineWidth,
26758
+ stroke: strokeColor,
26759
+ strokeOpacity: fromOpacity
26760
+ }, this.to = {
26761
+ lineDash: [dashLength, dashLength],
26762
+ lineDashOffset: -dashLength,
26763
+ lineWidth: lineWidth,
26764
+ stroke: strokeColor,
26765
+ strokeOpacity: fromOpacity
26766
+ }, showFill ? (this.from.fillOpacity = null !== (_r = this.originalAttributes.fillOpacity) && void 0 !== _r ? _r : 1, this.to.fillOpacity = 0) : (this.from.fillOpacity = 0, this.to.fillOpacity = 0), this.propKeys = ["lineDash", "lineDashOffset", "lineWidth", "stroke", "strokeOpacity", "fillOpacity"], this.props = this.to, this.target.setAttributes(this.from);
26767
+ }
26768
+ onUpdate(end, ratio, out) {
26769
+ var _a;
26770
+ const attribute = this.target.attribute;
26771
+ attribute.lineDashOffset = this.from.lineDashOffset + (this.to.lineDashOffset - this.from.lineDashOffset) * ratio, (null === (_a = this.params) || void 0 === _a ? void 0 : _a.showFill) && (attribute.fillOpacity = this.from.fillOpacity + (this.to.fillOpacity - this.from.fillOpacity) * ratio);
26772
+ }
26773
+ }
26774
+ class MoveScaleIn extends ACustomAnimate {
26775
+ constructor(from, to, duration, easing, params) {
26776
+ var _a;
26777
+ super(from, to, duration, easing, params);
26778
+ const slideRatio = null !== (_a = null == params ? void 0 : params.slideRatio) && void 0 !== _a ? _a : .5;
26779
+ this.slideInDuration = duration * slideRatio, this.growInDuration = duration * (1 - slideRatio);
26780
+ }
26781
+ onBind() {
26782
+ var _a, _b, _c, _d, _e, _f;
26783
+ super.onBind();
26784
+ const executor = new AnimateExecutor(this.target);
26785
+ executor.execute({
26786
+ type: "custom",
26787
+ custom: SlideIn,
26788
+ customParameters: {
26789
+ direction: (null === (_a = this.params) || void 0 === _a ? void 0 : _a.slideDirection) || "right",
26790
+ distance: (null === (_b = this.params) || void 0 === _b ? void 0 : _b.slideDistance) || 50,
26791
+ fromOpacity: null !== (_d = null === (_c = this.params) || void 0 === _c ? void 0 : _c.fromOpacity) && void 0 !== _d ? _d : 0
26792
+ },
26793
+ duration: this.slideInDuration,
26794
+ easing: this.easing
26795
+ }), executor.execute({
26796
+ type: "custom",
26797
+ custom: GrowIn,
26798
+ customParameters: {
26799
+ fromScale: (null === (_e = this.params) || void 0 === _e ? void 0 : _e.fromScale) || .5,
26800
+ direction: (null === (_f = this.params) || void 0 === _f ? void 0 : _f.scaleDirection) || "xy",
26801
+ fromOpacity: 1
26802
+ },
26803
+ duration: this.growInDuration,
26804
+ easing: this.easing,
26805
+ delay: this.slideInDuration
26806
+ });
26807
+ }
26808
+ onUpdate(end, ratio, out) {}
26809
+ }
26810
+ class MoveRotateIn extends ACustomAnimate {
26811
+ constructor(from, to, duration, easing, params) {
26812
+ var _a;
26813
+ super(from, to, duration, easing, params);
26814
+ const slideRatio = null !== (_a = null == params ? void 0 : params.slideRatio) && void 0 !== _a ? _a : .5;
26815
+ this.slideInDuration = duration * slideRatio, this.spinInDuration = duration * (1 - slideRatio);
26816
+ }
26817
+ onBind() {
26818
+ var _a, _b, _c, _d, _e, _f;
26819
+ super.onBind();
26820
+ const executor = new AnimateExecutor(this.target);
26821
+ executor.execute({
26822
+ type: "custom",
26823
+ custom: SlideIn,
26824
+ customParameters: {
26825
+ direction: (null === (_a = this.params) || void 0 === _a ? void 0 : _a.slideDirection) || "right",
26826
+ distance: (null === (_b = this.params) || void 0 === _b ? void 0 : _b.slideDistance) || 50,
26827
+ fromOpacity: null !== (_d = null === (_c = this.params) || void 0 === _c ? void 0 : _c.fromOpacity) && void 0 !== _d ? _d : 0
26828
+ },
26829
+ duration: this.slideInDuration,
26830
+ easing: this.easing
26831
+ }), executor.execute({
26832
+ type: "custom",
26833
+ custom: SpinIn,
26834
+ customParameters: {
26835
+ fromAngle: (null === (_e = this.params) || void 0 === _e ? void 0 : _e.fromAngle) || Math.PI,
26836
+ fromScale: (null === (_f = this.params) || void 0 === _f ? void 0 : _f.fromScale) || .5,
26837
+ fromOpacity: 1
26838
+ },
26839
+ duration: this.spinInDuration,
26840
+ easing: this.easing,
26841
+ delay: this.slideInDuration
26842
+ });
26843
+ }
26844
+ onUpdate(end, ratio, out) {}
26845
+ }
26846
+ class SlideOut extends ACustomAnimate {
26847
+ constructor(from, to, duration, easing, params) {
26848
+ super(from, to, duration, easing, params);
26849
+ }
26850
+ onFirstRun() {
26851
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
26852
+ const attrs = this.target.getAttributes(),
26853
+ direction = (null === (_a = this.params) || void 0 === _a ? void 0 : _a.direction) || "right",
26854
+ distance = (null === (_b = this.params) || void 0 === _b ? void 0 : _b.distance) || 50,
26855
+ fromOpacity = null !== (_d = null === (_c = this.params) || void 0 === _c ? void 0 : _c.fromOpacity) && void 0 !== _d ? _d : 1,
26856
+ toOpacity = null !== (_f = null === (_e = this.params) || void 0 === _e ? void 0 : _e.toOpacity) && void 0 !== _f ? _f : 0,
26857
+ from = {
26858
+ opacity: fromOpacity,
26859
+ baseOpacity: fromOpacity
26860
+ },
26861
+ to = {
26862
+ opacity: toOpacity,
26863
+ baseOpacity: toOpacity
26864
+ };
26865
+ "top" === direction ? (from.y = null !== (_g = attrs.y) && void 0 !== _g ? _g : 0, to.y = (null !== (_h = attrs.y) && void 0 !== _h ? _h : 0) - distance, this.propKeys = ["opacity", "baseOpacity", "y"]) : "bottom" === direction ? (from.y = null !== (_j = attrs.y) && void 0 !== _j ? _j : 0, to.y = (null !== (_k = attrs.y) && void 0 !== _k ? _k : 0) + distance, this.propKeys = ["opacity", "baseOpacity", "y"]) : "left" === direction ? (from.x = null !== (_l = attrs.x) && void 0 !== _l ? _l : 0, to.x = (null !== (_m = attrs.x) && void 0 !== _m ? _m : 0) - distance, this.propKeys = ["opacity", "baseOpacity", "x"]) : (from.x = null !== (_o = attrs.x) && void 0 !== _o ? _o : 0, to.x = (null !== (_p = attrs.x) && void 0 !== _p ? _p : 0) + distance, this.propKeys = ["opacity", "baseOpacity", "x"]), this.from = from, this.to = to, this.props = to;
26866
+ }
26867
+ onUpdate(end, ratio, out) {
26868
+ const attribute = this.target.attribute;
26869
+ this.propKeys.forEach(key => {
26870
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
26871
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
26872
+ }
26873
+ }
26874
+ class GrowOut extends ACustomAnimate {
26875
+ constructor(from, to, duration, easing, params) {
26876
+ super(from, to, duration, easing, params);
26877
+ }
26878
+ onFirstRun() {
26879
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
26880
+ const attrs = this.target.getAttributes(),
26881
+ toScale = null !== (_b = null === (_a = this.params) || void 0 === _a ? void 0 : _a.fromScale) && void 0 !== _b ? _b : 0,
26882
+ direction = (null === (_c = this.params) || void 0 === _c ? void 0 : _c.direction) || "xy",
26883
+ fromOpacity = null !== (_e = null === (_d = this.params) || void 0 === _d ? void 0 : _d.fromOpacity) && void 0 !== _e ? _e : 1,
26884
+ toOpacity = null !== (_g = null === (_f = this.params) || void 0 === _f ? void 0 : _f.toOpacity) && void 0 !== _g ? _g : 0,
26885
+ from = {
26886
+ opacity: fromOpacity,
26887
+ baseOpacity: fromOpacity
26888
+ },
26889
+ to = {
26890
+ opacity: toOpacity,
26891
+ baseOpacity: toOpacity
26892
+ };
26893
+ this.propKeys = ["opacity", "baseOpacity"], "x" !== direction && "xy" !== direction || (from.scaleX = null !== (_h = attrs.scaleX) && void 0 !== _h ? _h : 1, to.scaleX = toScale, this.propKeys.push("scaleX")), "y" !== direction && "xy" !== direction || (from.scaleY = null !== (_j = attrs.scaleY) && void 0 !== _j ? _j : 1, to.scaleY = toScale, this.propKeys.push("scaleY")), this.from = from, this.to = to, this.props = to;
26894
+ }
26895
+ onUpdate(end, ratio, out) {
26896
+ const attribute = this.target.attribute;
26897
+ this.propKeys.forEach(key => {
26898
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
26899
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
26900
+ }
26901
+ }
26902
+ class SpinOut extends ACustomAnimate {
26903
+ constructor(from, to, duration, easing, params) {
26904
+ super(from, to, duration, easing, params);
26905
+ }
26906
+ onFirstRun() {
26907
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
26908
+ const attrs = this.target.getAttributes(),
26909
+ toAngle = null !== (_b = null === (_a = this.params) || void 0 === _a ? void 0 : _a.fromAngle) && void 0 !== _b ? _b : 2 * Math.PI,
26910
+ toScale = null !== (_d = null === (_c = this.params) || void 0 === _c ? void 0 : _c.fromScale) && void 0 !== _d ? _d : 0,
26911
+ fromOpacity = null !== (_f = null === (_e = this.params) || void 0 === _e ? void 0 : _e.fromOpacity) && void 0 !== _f ? _f : 1,
26912
+ toOpacity = null !== (_h = null === (_g = this.params) || void 0 === _g ? void 0 : _g.toOpacity) && void 0 !== _h ? _h : 0,
26913
+ from = {
26914
+ opacity: fromOpacity,
26915
+ baseOpacity: fromOpacity,
26916
+ angle: null !== (_j = attrs.angle) && void 0 !== _j ? _j : 0,
26917
+ scaleX: null !== (_k = attrs.scaleX) && void 0 !== _k ? _k : 1,
26918
+ scaleY: null !== (_l = attrs.scaleY) && void 0 !== _l ? _l : 1
26919
+ },
26920
+ to = {
26921
+ opacity: toOpacity,
26922
+ baseOpacity: toOpacity,
26923
+ angle: toAngle,
26924
+ scaleX: toScale,
26925
+ scaleY: toScale
26926
+ };
26927
+ this.propKeys = ["opacity", "baseOpacity", "angle", "scaleX", "scaleY"], this.from = from, this.to = to, this.props = to;
26928
+ }
26929
+ onUpdate(end, ratio, out) {
26930
+ const attribute = this.target.attribute;
26931
+ this.propKeys.forEach(key => {
26932
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
26933
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
26934
+ }
26935
+ }
26936
+ class MoveScaleOut extends ACustomAnimate {
26937
+ constructor(from, to, duration, easing, params) {
26938
+ var _a;
26939
+ super(from, to, duration, easing, params);
26940
+ const slideRatio = null !== (_a = null == params ? void 0 : params.slideRatio) && void 0 !== _a ? _a : .5;
26941
+ this.growOutDuration = duration * (1 - slideRatio), this.slideOutDuration = duration * slideRatio;
26942
+ }
26943
+ onFirstRun() {
26944
+ var _a, _b, _c, _d;
26945
+ const executor = new AnimateExecutor(this.target);
26946
+ executor.execute({
26947
+ type: "custom",
26948
+ custom: GrowOut,
26949
+ customParameters: {
26950
+ fromScale: (null === (_a = this.params) || void 0 === _a ? void 0 : _a.fromScale) || .5,
26951
+ direction: (null === (_b = this.params) || void 0 === _b ? void 0 : _b.scaleDirection) || "xy",
26952
+ fromOpacity: 1,
26953
+ toOpacity: 1
26954
+ },
26955
+ duration: this.growOutDuration,
26956
+ easing: this.easing
26957
+ }), executor.execute({
26958
+ type: "custom",
26959
+ custom: SlideOut,
26960
+ customParameters: {
26961
+ direction: (null === (_c = this.params) || void 0 === _c ? void 0 : _c.slideDirection) || "right",
26962
+ distance: (null === (_d = this.params) || void 0 === _d ? void 0 : _d.slideDistance) || 50,
26963
+ fromOpacity: 1
26964
+ },
26965
+ duration: this.slideOutDuration,
26966
+ easing: this.easing,
26967
+ delay: this.growOutDuration
26968
+ });
26969
+ }
26970
+ onUpdate(end, ratio, out) {}
26971
+ }
26972
+ class MoveRotateOut extends ACustomAnimate {
26973
+ constructor(from, to, duration, easing, params) {
26974
+ var _a;
26975
+ super(from, to, duration, easing, params);
26976
+ const slideRatio = null !== (_a = null == params ? void 0 : params.slideRatio) && void 0 !== _a ? _a : .5;
26977
+ this.spinOutDuration = duration * (1 - slideRatio), this.slideOutDuration = duration * slideRatio;
26978
+ }
26979
+ onFirstRun() {
26980
+ var _a, _b, _c, _d;
26981
+ const executor = new AnimateExecutor(this.target);
26982
+ executor.execute({
26983
+ type: "custom",
26984
+ custom: SpinOut,
26985
+ customParameters: {
26986
+ fromAngle: (null === (_a = this.params) || void 0 === _a ? void 0 : _a.fromAngle) || Math.PI,
26987
+ fromScale: (null === (_b = this.params) || void 0 === _b ? void 0 : _b.fromScale) || .5,
26988
+ fromOpacity: 1,
26989
+ toOpacity: 1
26990
+ },
26991
+ duration: this.spinOutDuration,
26992
+ easing: this.easing
26993
+ }), executor.execute({
26994
+ type: "custom",
26995
+ custom: SlideOut,
26996
+ customParameters: {
26997
+ direction: (null === (_c = this.params) || void 0 === _c ? void 0 : _c.slideDirection) || "right",
26998
+ distance: (null === (_d = this.params) || void 0 === _d ? void 0 : _d.slideDistance) || 50,
26999
+ fromOpacity: 1
27000
+ },
27001
+ duration: this.slideOutDuration,
27002
+ easing: this.easing,
27003
+ delay: this.spinOutDuration
27004
+ });
27005
+ }
27006
+ onUpdate(end, ratio, out) {}
27007
+ }
27008
+ class PulseAnimate extends ACustomAnimate {
27009
+ constructor(from, to, duration, easing, params) {
27010
+ super(from, to, duration, easing, params), this.originalAttributes = {}, this.pulseCount = 3, this.pulseOpacity = .3, this.pulseScale = 1.05, this.pulseColor = null, this.pulseColorIntensity = .2, this.strokeOnly = !1, this.fillOnly = !1, this.useScale = !0, this.useOpacity = !0, this.useStroke = !0, this.useFill = !0, this.useColor = !1, this.originalFill = null, this.originalStroke = null, void 0 !== (null == params ? void 0 : params.pulseCount) && (this.pulseCount = params.pulseCount), void 0 !== (null == params ? void 0 : params.pulseScale) && (this.pulseScale = params.pulseScale), void 0 !== (null == params ? void 0 : params.pulseColor) && (this.pulseColor = params.pulseColor), void 0 !== (null == params ? void 0 : params.pulseColorIntensity) && (this.pulseColorIntensity = params.pulseColorIntensity), void 0 !== (null == params ? void 0 : params.strokeOnly) && (this.strokeOnly = params.strokeOnly), void 0 !== (null == params ? void 0 : params.fillOnly) && (this.fillOnly = params.fillOnly), void 0 !== (null == params ? void 0 : params.useScale) && (this.useScale = params.useScale), void 0 !== (null == params ? void 0 : params.useOpacity) && (this.useOpacity = params.useOpacity), void 0 !== (null == params ? void 0 : params.useStroke) && (this.useStroke = params.useStroke), void 0 !== (null == params ? void 0 : params.useFill) && (this.useFill = params.useFill), void 0 !== (null == params ? void 0 : params.useColor) && (this.useColor = params.useColor);
27011
+ }
27012
+ onBind() {
27013
+ super.onBind(), this.originalAttributes = Object.assign({}, this.target.getAttributes()), this.useColor && (this.originalFill = this.originalAttributes.fill || null, this.originalStroke = this.originalAttributes.stroke || null, this.pulseColor || (this.fillOnly && this.originalFill ? this.pulseColor = this.originalFill : this.strokeOnly && this.originalStroke ? this.pulseColor = this.originalStroke : this.originalFill ? this.pulseColor = this.originalFill : this.originalStroke ? this.pulseColor = this.originalStroke : this.pulseColor = "#FFFFFF"));
27014
+ }
27015
+ onUpdate(end, ratio, out) {
27016
+ const angle = ratio * Math.PI * this.pulseCount,
27017
+ pulseValue = Math.abs(Math.sin(angle)),
27018
+ attribute = this.target.attribute;
27019
+ if (this.useOpacity) {
27020
+ const opacity = 1 + (this.pulseOpacity - 1) * pulseValue;
27021
+ this.useStroke && (attribute.strokeOpacity = (this.originalAttributes.strokeOpacity || 1) * opacity), this.useFill && (attribute.fillOpacity = (this.originalAttributes.fillOpacity || 1) * opacity);
27022
+ }
27023
+ if (this.useScale) {
27024
+ const scale = 1 + (this.pulseScale - 1) * pulseValue;
27025
+ attribute.scaleX = (this.originalAttributes.scaleX || 1) * scale, attribute.scaleY = (this.originalAttributes.scaleY || 1) * scale;
27026
+ }
27027
+ this.useColor && this.pulseColor && this.applyColorPulse(attribute, pulseValue), this.target.addUpdateShapeAndBoundsTag(), this.target.addUpdatePositionTag();
24080
27028
  }
24081
- execute(params) {
24082
- Array.isArray(params) ? params.forEach(param => this._execute(param)) : this._execute(params);
27029
+ applyColorPulse(attribute, pulseValue) {
27030
+ const colorRatio = this.pulseColorIntensity * pulseValue;
27031
+ this.useFill && this.originalFill && this.pulseColor && (attribute.fill = interpolateColor(this.originalFill, this.pulseColor, colorRatio, !0)), this.useStroke && this.originalStroke && this.pulseColor && (attribute.stroke = interpolateColor(this.originalStroke, this.pulseColor, colorRatio, !0));
24083
27032
  }
24084
- _execute(params) {
24085
- if (params.selfOnly) return this._executeItem(params, this._target, 0, 1);
24086
- const isTimeline = ("timeSlices" in params);
24087
- let filteredChildren;
24088
- isTimeline && params.partitioner && (filteredChildren = (null != filteredChildren ? filteredChildren : this._target.getChildren()).filter(child => {
24089
- var _a, _b;
24090
- return params.partitioner(null === (_b = null === (_a = child.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], child, {});
24091
- })), isTimeline && params.sort && (filteredChildren = null != filteredChildren ? filteredChildren : this._target.getChildren(), filteredChildren.sort((a, b) => {
24092
- var _a, _b, _c, _d;
24093
- return params.sort(null === (_b = null === (_a = a.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], null === (_d = null === (_c = b.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], a, b, {});
24094
- }));
24095
- const cb = isTimeline ? (child, index, count) => {
24096
- const parsedParams = this.parseParams(params, isTimeline, child),
24097
- animate = this.executeTimelineItem(parsedParams, child, index, count);
24098
- animate && this._trackAnimation(animate);
24099
- } : (child, index, count) => {
24100
- const parsedParams = this.parseParams(params, isTimeline, child),
24101
- animate = this.executeTypeConfigItem(parsedParams, child, index, count);
24102
- animate && this._trackAnimation(animate);
24103
- };
24104
- filteredChildren ? filteredChildren.forEach((child, index) => cb(child, index, filteredChildren.length)) : this._target.count <= 1 ? cb(this._target, 0, 1) : this._target.forEachChildren((child, index) => cb(child, index, this._target.count - 1));
27033
+ onEnd() {
27034
+ super.onEnd(), this.target.setAttributes(this.originalAttributes);
24105
27035
  }
24106
- executeTypeConfigItem(params, graphic, index, count) {
24107
- var _a, _b, _c, _d, _e, _f, _g, _h;
27036
+ }
27037
+
27038
+ class Update extends ACustomAnimate {
27039
+ constructor(from, to, duration, easing, params) {
27040
+ super(from, to, duration, easing, params);
27041
+ }
27042
+ onBind() {
27043
+ var _a, _b;
27044
+ super.onBind();
27045
+ let {
27046
+ diffAttrs = {}
27047
+ } = null !== (_a = this.target.context) && void 0 !== _a ? _a : {};
24108
27048
  const {
24109
- type = "fromTo",
24110
- channel: channel,
24111
- customParameters: customParameters,
24112
- easing = "linear",
24113
- delay = 0,
24114
- delayAfter = 0,
24115
- duration = 300,
24116
- startTime = 0,
24117
- oneByOneDelay = 0,
24118
- loop: loop,
24119
- bounce: bounce,
24120
- priority = 0,
24121
- options: options,
24122
- custom: custom,
24123
- customType: customType,
24124
- controlOptions: controlOptions
24125
- } = params,
24126
- animate = graphic.animate();
24127
- animate.priority = priority;
24128
- const delayValue = isFunction$7(delay) ? delay(null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], graphic, {}) : delay,
24129
- datum = null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0],
24130
- indexKey = null === (_e = graphic.context) || void 0 === _e ? void 0 : _e.indexKey;
24131
- datum && indexKey && (index = null !== (_f = datum[indexKey]) && void 0 !== _f ? _f : index), animate.startAt(startTime);
24132
- const wait = index * oneByOneDelay + delayValue;
24133
- wait > 0 && animate.wait(wait);
24134
- let parsedFromProps = null,
24135
- props = params.to,
24136
- from = params.from;
24137
- props || (parsedFromProps || (parsedFromProps = this.createPropsFromChannel(channel, graphic)), props = parsedFromProps.props), from || (parsedFromProps || (parsedFromProps = this.createPropsFromChannel(channel, graphic)), from = parsedFromProps.from), this._handleRunAnimate(animate, custom, customType, from, props, duration, easing, customParameters, controlOptions, options, type, graphic);
24138
- let totalDelay = 0;
24139
- oneByOneDelay && (totalDelay = oneByOneDelay * (count - index - 1));
24140
- const delayAfterValue = isFunction$7(delayAfter) ? delayAfter(null === (_h = null === (_g = graphic.context) || void 0 === _g ? void 0 : _g.data) || void 0 === _h ? void 0 : _h[0], graphic, {}) : delayAfter;
24141
- return delayAfterValue > 0 && (totalDelay += delayAfterValue), totalDelay > 0 && animate.wait(totalDelay), loop && loop > 0 && animate.loop(loop), bounce && animate.bounce(!0), animate;
27049
+ options: options
27050
+ } = this.params;
27051
+ diffAttrs = Object.assign({}, diffAttrs), (null === (_b = null == options ? void 0 : options.excludeChannels) || void 0 === _b ? void 0 : _b.length) && options.excludeChannels.forEach(channel => {
27052
+ delete diffAttrs[channel];
27053
+ }), this.props = diffAttrs;
24142
27054
  }
24143
- _handleRunAnimate(animate, custom, customType, from, props, duration, easing, customParameters, controlOptions, options, type, graphic) {
24144
- var _a, _b, _c, _d;
24145
- if (custom && customType) {
24146
- const customParams = Object.assign({
24147
- width: graphic.stage.width,
24148
- height: graphic.stage.height,
24149
- group: this._target.parent
24150
- }, this.resolveValue(customParameters, graphic)),
24151
- objOptions = isFunction$7(options) ? options.call(null, null !== (_b = customParams && (null === (_a = customParams.data) || void 0 === _a ? void 0 : _a[0])) && void 0 !== _b ? _b : null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], graphic, customParams) : options;
24152
- customParams.options = objOptions, customParams.controlOptions = controlOptions, 1 === customType ? this.createCustomAnimation(animate, custom, from, props, duration, easing, customParams) : 2 === customType && this.createCustomInterpolatorAnimation(animate, custom, props, duration, easing, customParams);
24153
- } else "to" === type ? animate.to(props, duration, easing) : "from" === type && animate.from(props, duration, easing);
27055
+ update(end, ratio, out) {
27056
+ if (this.onStart(), !this.props || !this.propKeys) return;
27057
+ const easedRatio = this.easing(ratio);
27058
+ this.animate.interpolateUpdateFunction ? this.animate.interpolateUpdateFunction(this.fromProps, this.props, easedRatio, this, this.target) : this.interpolateUpdateFunctions.forEach((func, index) => {
27059
+ if (!this.animate.validAttr(this.propKeys[index])) return;
27060
+ const key = this.propKeys[index];
27061
+ func(key, this.fromProps[key], this.props[key], easedRatio, this, this.target);
27062
+ }), this.onUpdate(end, easedRatio, out);
24154
27063
  }
24155
- executeTimelineItem(params, graphic, index, count) {
24156
- var _a, _b, _c, _d;
27064
+ }
27065
+
27066
+ const moveIn = (graphic, options, animationParameters) => {
27067
+ var _a, _b, _c, _d;
27068
+ const {
27069
+ offset = 0,
27070
+ orient: orient,
27071
+ direction: direction,
27072
+ point: pointOpt,
27073
+ excludeChannels = [],
27074
+ layoutRect = {}
27075
+ } = null != options ? options : {};
27076
+ let changedX = 0,
27077
+ changedY = 0;
27078
+ "negative" === orient && (changedX = null !== (_a = layoutRect.width) && void 0 !== _a ? _a : graphic.stage.viewWidth, changedY = null !== (_b = layoutRect.height) && void 0 !== _b ? _b : graphic.stage.viewHeight), changedX += offset, changedY += offset;
27079
+ const point = isFunction$7(pointOpt) ? pointOpt.call(null, null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], graphic, animationParameters) : pointOpt,
27080
+ fromX = point && isValidNumber$3(point.x) ? point.x : changedX,
27081
+ fromY = point && isValidNumber$3(point.y) ? point.y : changedY,
27082
+ finalAttrs = graphic.getFinalAttribute(),
27083
+ finalAttrsX = excludeChannels.includes("x") ? graphic.attribute.x : finalAttrs.x,
27084
+ finalAttrsY = excludeChannels.includes("y") ? graphic.attribute.y : finalAttrs.y;
27085
+ switch (direction) {
27086
+ case "x":
27087
+ return {
27088
+ from: {
27089
+ x: fromX
27090
+ },
27091
+ to: {
27092
+ x: finalAttrsX
27093
+ }
27094
+ };
27095
+ case "y":
27096
+ return {
27097
+ from: {
27098
+ y: fromY
27099
+ },
27100
+ to: {
27101
+ y: finalAttrsY
27102
+ }
27103
+ };
27104
+ default:
27105
+ return {
27106
+ from: {
27107
+ x: fromX,
27108
+ y: fromY
27109
+ },
27110
+ to: {
27111
+ x: finalAttrsX,
27112
+ y: finalAttrsY
27113
+ }
27114
+ };
27115
+ }
27116
+ };
27117
+ const moveOut = (graphic, options, animationParameters) => {
27118
+ var _a, _b, _c, _d;
27119
+ const {
27120
+ offset = 0,
27121
+ orient: orient,
27122
+ direction: direction,
27123
+ point: pointOpt
27124
+ } = null != options ? options : {},
27125
+ groupBounds = animationParameters.group ? animationParameters.group.AABBBounds : null,
27126
+ groupWidth = null !== (_a = groupBounds.width()) && void 0 !== _a ? _a : animationParameters.width,
27127
+ groupHeight = null !== (_b = groupBounds.height()) && void 0 !== _b ? _b : animationParameters.height,
27128
+ changedX = ("negative" === orient ? groupWidth : 0) + offset,
27129
+ changedY = ("negative" === orient ? groupHeight : 0) + offset,
27130
+ point = isFunction$7(pointOpt) ? pointOpt.call(null, null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], graphic, animationParameters) : pointOpt,
27131
+ fromX = point && isValidNumber$3(point.x) ? point.x : changedX,
27132
+ fromY = point && isValidNumber$3(point.y) ? point.y : changedY;
27133
+ switch (direction) {
27134
+ case "x":
27135
+ return {
27136
+ from: {
27137
+ x: graphic.attribute.x
27138
+ },
27139
+ to: {
27140
+ x: fromX
27141
+ }
27142
+ };
27143
+ case "y":
27144
+ return {
27145
+ from: {
27146
+ y: graphic.attribute.y
27147
+ },
27148
+ to: {
27149
+ y: fromY
27150
+ }
27151
+ };
27152
+ default:
27153
+ return {
27154
+ from: {
27155
+ x: graphic.attribute.x,
27156
+ y: graphic.attribute.y
27157
+ },
27158
+ to: {
27159
+ x: fromX,
27160
+ y: fromY
27161
+ }
27162
+ };
27163
+ }
27164
+ };
27165
+ class MoveBase extends ACustomAnimate {
27166
+ constructor(from, to, duration, easing, params) {
27167
+ super(from, to, duration, easing, params);
27168
+ }
27169
+ onUpdate(end, ratio, out) {
27170
+ const attribute = this.target.attribute;
27171
+ this.propKeys.forEach(key => {
27172
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
27173
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
27174
+ }
27175
+ }
27176
+ class MoveIn extends MoveBase {
27177
+ onBind() {
27178
+ var _a;
27179
+ super.onBind();
24157
27180
  const {
24158
- timeSlices: timeSlices,
24159
- startTime = 0,
24160
- loop: loop,
24161
- bounce: bounce,
24162
- oneByOneDelay: oneByOneDelay,
24163
- priority: priority,
24164
- controlOptions: controlOptions
24165
- } = params,
24166
- datum = null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0],
24167
- indexKey = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.indexKey;
24168
- datum && indexKey && (index = null !== (_d = datum[indexKey]) && void 0 !== _d ? _d : index);
24169
- const animate = graphic.animate();
24170
- animate.priority = priority, animate.startAt(startTime), animate.wait(index * oneByOneDelay), loop && loop > 0 && animate.loop(loop), bounce && animate.bounce(!0);
24171
- return (Array.isArray(timeSlices) ? timeSlices : [timeSlices]).forEach(slice => {
24172
- this.applyTimeSliceToAnimate(slice, animate, graphic, controlOptions);
24173
- }), oneByOneDelay && animate.wait(oneByOneDelay * (count - index - 1)), animate;
27181
+ from: from,
27182
+ to: to
27183
+ } = moveIn(this.target, this.params.options, this.params);
27184
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to;
27185
+ const finalAttribute = this.target.getFinalAttribute();
27186
+ finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_a = this.params.controlOptions) || void 0 === _a ? void 0 : _a.immediatelyApply) && this.target.setAttributes(from);
24174
27187
  }
24175
- applyTimeSliceToAnimate(slice, animate, graphic, controlOptions) {
24176
- var _a, _b, _c, _d;
27188
+ }
27189
+ class MoveOut extends MoveBase {
27190
+ onBind() {
27191
+ super.onBind();
24177
27192
  const {
24178
- effects: effects,
24179
- duration = 300,
24180
- delay = 0,
24181
- delayAfter = 0
24182
- } = slice,
24183
- delayValue = isFunction$7(delay) ? delay(null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], graphic, {}) : delay,
24184
- delayAfterValue = isFunction$7(delayAfter) ? delayAfter(null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], graphic, {}) : delayAfter;
24185
- delayValue > 0 && animate.wait(delayValue);
24186
- (Array.isArray(effects) ? effects : [effects]).forEach(effect => {
24187
- var _a;
24188
- const {
24189
- type = "fromTo",
24190
- channel: channel,
24191
- customParameters: customParameters,
24192
- easing = "linear",
24193
- options: options
24194
- } = effect;
24195
- let parsedFromProps = null,
24196
- props = effect.to,
24197
- from = effect.from;
24198
- props || (parsedFromProps || (parsedFromProps = this.createPropsFromChannel(channel, graphic)), props = parsedFromProps.props), from || (parsedFromProps || (parsedFromProps = this.createPropsFromChannel(channel, graphic)), from = parsedFromProps.from);
24199
- const custom = null !== (_a = effect.custom) && void 0 !== _a ? _a : AnimateExecutor.builtInAnimateMap[type],
24200
- customType = effect.customType;
24201
- this._handleRunAnimate(animate, custom, customType, from, props, duration, easing, customParameters, controlOptions, options, type, graphic);
24202
- }), delayAfterValue > 0 && animate.wait(delayAfterValue);
27193
+ from: from,
27194
+ to: to
27195
+ } = moveOut(this.target, this.params.options, this.params);
27196
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to;
24203
27197
  }
24204
- createCustomInterpolatorAnimation(animate, interpolator, props, duration, easing, customParams) {
24205
- const to = props;
24206
- Object.keys(to).forEach(key => {
24207
- animate.target.getComputedAttribute(key);
24208
- }), animate.interpolateUpdateFunction = (from, to, ratio, step, target) => {
24209
- interpolator(ratio, from, to, step, target, animate.target, customParams);
24210
- }, animate.to(props, duration, easing);
27198
+ }
27199
+
27200
+ const rotateIn = (graphic, options) => {
27201
+ var _a;
27202
+ const attributeAngle = null !== (_a = graphic.getFinalAttribute().angle) && void 0 !== _a ? _a : 0;
27203
+ let angle = 0;
27204
+ return angle = isNumberClose$1(attributeAngle / (2 * Math.PI), 0) ? Math.round(attributeAngle / (2 * Math.PI)) * Math.PI * 2 : isValidNumber$3(null == options ? void 0 : options.angle) ? options.angle : "anticlockwise" === (null == options ? void 0 : options.orient) ? Math.ceil(attributeAngle / (2 * Math.PI)) * Math.PI * 2 : Math.floor(attributeAngle / (2 * Math.PI)) * Math.PI * 2, {
27205
+ from: {
27206
+ angle: angle
27207
+ },
27208
+ to: {
27209
+ angle: attributeAngle
27210
+ }
27211
+ };
27212
+ };
27213
+ const rotateOut = (graphic, options) => {
27214
+ var _a;
27215
+ const finalAngle = null !== (_a = graphic.getFinalAttribute().angle) && void 0 !== _a ? _a : 0;
27216
+ let angle = 0;
27217
+ return angle = isNumberClose$1(finalAngle / (2 * Math.PI), 0) ? Math.round(finalAngle / (2 * Math.PI)) * Math.PI * 2 : isValidNumber$3(null == options ? void 0 : options.angle) ? options.angle : "anticlockwise" === (null == options ? void 0 : options.orient) ? Math.ceil(finalAngle / (2 * Math.PI)) * Math.PI * 2 : Math.floor(finalAngle / (2 * Math.PI)) * Math.PI * 2, {
27218
+ from: {
27219
+ angle: finalAngle
27220
+ },
27221
+ to: {
27222
+ angle: angle
27223
+ }
27224
+ };
27225
+ };
27226
+ class RotateBase extends ACustomAnimate {
27227
+ constructor(from, to, duration, easing, params) {
27228
+ super(from, to, duration, easing, params);
24211
27229
  }
24212
- createCustomAnimation(animate, CustomAnimateConstructor, from, props, duration, easing, customParams) {
24213
- const customAnimate = new CustomAnimateConstructor(from, props, duration, easing, customParams);
24214
- animate.play(customAnimate);
27230
+ onUpdate(end, ratio, out) {
27231
+ const attribute = this.target.attribute;
27232
+ this.propKeys.forEach(key => {
27233
+ attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
27234
+ }), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
24215
27235
  }
24216
- createPropsFromChannel(channel, graphic) {
24217
- const props = {};
24218
- let from = null;
24219
- return channel ? (Array.isArray(channel) ? channel.forEach(key => {
24220
- var _a, _b;
24221
- const value = null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.diffAttrs) || void 0 === _b ? void 0 : _b[key];
24222
- void 0 !== value && (props[key] = value);
24223
- }) : Object.keys(channel).forEach(key => {
24224
- var _a, _b, _c, _d;
24225
- const config = channel[key];
24226
- void 0 !== config.to && ("function" == typeof config.to ? props[key] = config.to(null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], graphic, {}) : props[key] = config.to), void 0 !== config.from && (from || (from = {}), "function" == typeof config.from ? from[key] = config.from(null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], graphic, {}) : from[key] = config.from);
24227
- }), {
24228
- from: from,
24229
- props: props
24230
- }) : {
27236
+ }
27237
+ class RotateIn extends RotateBase {
27238
+ onBind() {
27239
+ var _a;
27240
+ super.onBind();
27241
+ const {
24231
27242
  from: from,
24232
- props: props
24233
- };
27243
+ to: to
27244
+ } = rotateIn(this.target, this.params.options);
27245
+ this.props = to, this.propKeys = ["angle"], this.from = from, this.to = to;
27246
+ const finalAttribute = this.target.getFinalAttribute();
27247
+ finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_a = this.params.controlOptions) || void 0 === _a ? void 0 : _a.immediatelyApply) && this.target.setAttributes(from);
24234
27248
  }
24235
- resolveValue(value, graphic, defaultValue) {
24236
- var _a, _b;
24237
- return void 0 === value ? defaultValue : "function" == typeof value && graphic ? value(null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], graphic, {}) : value;
27249
+ }
27250
+ class RotateOut extends RotateBase {
27251
+ onBind() {
27252
+ super.onBind();
27253
+ const {
27254
+ from: from,
27255
+ to: to
27256
+ } = rotateOut(this.target, this.params.options);
27257
+ this.props = to, this.propKeys = ["angle"], this.from = from, this.to = to;
24238
27258
  }
24239
- executeItem(params, graphic, index = 0, count = 1) {
24240
- return Array.isArray(params) ? params.map(param => this._executeItem(param, graphic, index, count)).filter(Boolean) : [this._executeItem(params, graphic, index, count)].filter(Boolean);
27259
+ }
27260
+
27261
+ class MotionPath extends ACustomAnimate {
27262
+ constructor(from, to, duration, easing, params) {
27263
+ var _a;
27264
+ super(from, to, duration, easing, params), params && (this.pathLength = params.path.getLength(), this.path = params.path, this.distance = params.distance, this.totalLength = this.distance * this.pathLength, this.initAngle = null !== (_a = params.initAngle) && void 0 !== _a ? _a : 0, this.changeAngle = !!params.changeAngle, this.cb = params.cb);
24241
27265
  }
24242
- _executeItem(params, graphic, index = 0, count = 1) {
24243
- if (!graphic) return null;
24244
- const isTimeline = ("timeSlices" in params);
24245
- let animate = null;
24246
- const parsedParams = this.parseParams(params, isTimeline);
24247
- return animate = isTimeline ? this.executeTimelineItem(parsedParams, graphic, index, count) : this.executeTypeConfigItem(parsedParams, graphic, index, count), animate && this._trackAnimation(animate), animate;
27266
+ onBind() {
27267
+ this.from = {
27268
+ x: 0,
27269
+ y: 0
27270
+ }, this.to = this.path.getAttrAt(this.totalLength).pos, this.props = this.to;
24248
27271
  }
24249
- stop(type) {
24250
- for (; this._animates.length > 0;) {
24251
- const animate = this._animates.pop();
24252
- null == animate || animate.stop(type);
24253
- }
24254
- this._animates = [], this._activeCount = 0, this._started && (this._started = !1, this.onEnd());
27272
+ onUpdate(end, ratio, out) {
27273
+ const attrs = {},
27274
+ at = this.totalLength * ratio,
27275
+ {
27276
+ pos: pos,
27277
+ angle: angle
27278
+ } = this.path.getAttrAt(at);
27279
+ attrs.x = pos.x, attrs.y = pos.y, this.changeAngle && (attrs.angle = angle + this.initAngle), this.cb && this.cb(this.from, this.to, ratio, this.target), this.target.setAttributes(attrs);
24255
27280
  }
24256
27281
  }
24257
- AnimateExecutor.builtInAnimateMap = {};
24258
27282
 
24259
- class ACustomAnimate extends Step {
24260
- constructor(customFrom, customTo, duration, easing, params) {
24261
- super("customAnimate", customTo, duration, easing), this.type = "customAnimate", this.customFrom = customFrom, this.params = params, this.from = customFrom, this.to = customTo;
27283
+ class FromTo extends ACustomAnimate {
27284
+ constructor(from, to, duration, easing, params) {
27285
+ super(from, to, duration, easing, params), this.from = null != from ? from : {};
27286
+ }
27287
+ onBind() {
27288
+ var _a, _b;
27289
+ super.onBind(), Object.keys(this.from).forEach(key => {
27290
+ null == this.props[key] && (this.props[key] = this.target.getGraphicAttribute(key));
27291
+ });
27292
+ const finalAttribute = this.target.getFinalAttribute();
27293
+ "appear" === (null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.animationState) && finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_b = this.params.controlOptions) || void 0 === _b ? void 0 : _b.immediatelyApply) && this.target.setAttributes(this.from);
27294
+ }
27295
+ onFirstRun() {
27296
+ this.from = Object.assign(Object.assign({}, this.getLastProps()), this.from);
27297
+ const startProps = this.animate.getStartProps();
27298
+ this.propKeys && this.propKeys.forEach(key => {
27299
+ var _a;
27300
+ this.from[key] = null !== (_a = this.from[key]) && void 0 !== _a ? _a : startProps[key];
27301
+ }), this.target.setAttributes(this.from);
27302
+ }
27303
+ deleteSelfAttr(key) {
27304
+ super.deleteSelfAttr(key), delete this.from[key];
24262
27305
  }
24263
27306
  update(end, ratio, out) {
24264
27307
  if (this.onStart(), !this.props || !this.propKeys) return;
24265
27308
  const easedRatio = this.easing(ratio);
24266
- this.onUpdate(end, easedRatio, out), this.syncAttributeUpdate();
24267
- }
24268
- setProps(props) {
24269
- this.props = props, this.propKeys = Object.keys(props), this.animate.reSyncProps();
27309
+ this.animate.interpolateUpdateFunction ? this.animate.interpolateUpdateFunction(this.from, this.props, easedRatio, this, this.target) : this.interpolateUpdateFunctions.forEach((func, index) => {
27310
+ if (!this.animate.validAttr(this.propKeys[index])) return;
27311
+ const key = this.propKeys[index];
27312
+ func(key, this.from[key], this.props[key], easedRatio, this, this.target);
27313
+ }), this.onUpdate(end, easedRatio, out), this.syncAttributeUpdate();
24270
27314
  }
24271
27315
  }
24272
- class AComponentAnimate extends ACustomAnimate {
24273
- completeBind(animator) {
24274
- this.setStartTime(0), this._animator && this._animator.start(), this.setDuration(animator.getDuration());
27316
+
27317
+ class StreamLight extends ACustomAnimate {
27318
+ constructor(from, to, duration, easing, params) {
27319
+ super(from, to, duration, easing, params);
24275
27320
  }
24276
- stop() {
24277
- this._animator && this._animator.stop();
27321
+ getEndProps() {
27322
+ return {};
24278
27323
  }
24279
- }
24280
-
24281
- class ComponentAnimator {
24282
- constructor(component) {
24283
- this.tasks = [], this.started = !1, this.completed = 0, this.totalDuration = 0, this.onStartCallbacks = [], this.onEndCallbacks = [], this.onUpdateCallbacks = [], this.component = component;
27324
+ onStart() {
27325
+ this.target && ("rect" === this.target.type ? this.onStartRect() : "line" === this.target.type ? this.onStartLineOrArea("line") : "area" === this.target.type && this.onStartLineOrArea("area"));
24284
27326
  }
24285
- animate(graphic, config) {
24286
- return this.started ? (this) : (this.tasks.push({
24287
- graphic: graphic,
24288
- config: config
24289
- }), this);
27327
+ onStartLineOrArea(type) {
27328
+ var _a;
27329
+ const root = this.target.attachShadow(),
27330
+ line = application.graphicService.creator[type](Object.assign({}, null === (_a = this.params) || void 0 === _a ? void 0 : _a.attribute));
27331
+ this[type] = line, line.pathProxy = new CustomPath2D(), root.add(line);
24290
27332
  }
24291
- onStart(callback) {
24292
- return this.onStartCallbacks.push(callback), this;
27333
+ onStartRect() {
27334
+ var _a, _b, _c;
27335
+ const root = this.target.attachShadow(),
27336
+ isHorizontal = null === (_b = null === (_a = this.params) || void 0 === _a ? void 0 : _a.isHorizontal) || void 0 === _b || _b,
27337
+ sizeAttr = isHorizontal ? "height" : "width",
27338
+ otherSizeAttr = isHorizontal ? "width" : "height",
27339
+ size = this.target.AABBBounds[sizeAttr](),
27340
+ y = isHorizontal ? 0 : this.target.AABBBounds.y1,
27341
+ rect = application.graphicService.creator.rect(Object.assign(Object.assign({
27342
+ [sizeAttr]: size,
27343
+ fill: "#bcdeff",
27344
+ shadowBlur: 30,
27345
+ shadowColor: "#bcdeff"
27346
+ }, null === (_c = this.params) || void 0 === _c ? void 0 : _c.attribute), {
27347
+ x: 0,
27348
+ y: y,
27349
+ [otherSizeAttr]: 0
27350
+ }));
27351
+ this.rect = rect, root.add(rect);
24293
27352
  }
24294
- onEnd(callback) {
24295
- return this.onEndCallbacks.push(callback), this;
27353
+ onBind() {}
27354
+ onEnd() {
27355
+ this.target.detachShadow();
24296
27356
  }
24297
- onUpdate(callback) {
24298
- return this.onUpdateCallbacks.push(callback), this;
27357
+ onUpdate(end, ratio, out) {
27358
+ return this.rect ? this.onUpdateRect(end, ratio, out) : this.line || this.area ? this.onUpdateLineOrArea(end, ratio, out) : void 0;
24299
27359
  }
24300
- start() {
24301
- return this.started ? (this) : (this.started = !0, this.completed = 0, this.onStartCallbacks.forEach(callback => callback()), 0 === this.tasks.length ? (setTimeout(() => {
24302
- this.onEndCallbacks.forEach(callback => callback());
24303
- }, 0), this) : (this.tasks.forEach(task => {
24304
- const executor = new AnimateExecutor(task.graphic);
24305
- executor.onEnd(() => {
24306
- this.completed++, this.completed === this.tasks.length && this.onEndCallbacks.forEach(callback => callback());
27360
+ onUpdateRect(end, ratio, out) {
27361
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
27362
+ const isHorizontal = null === (_b = null === (_a = this.params) || void 0 === _a ? void 0 : _a.isHorizontal) || void 0 === _b || _b,
27363
+ parentAttr = this.target.attribute;
27364
+ if (isHorizontal) {
27365
+ const parentWidth = null !== (_d = null !== (_c = parentAttr.width) && void 0 !== _c ? _c : Math.abs(parentAttr.x1 - parentAttr.x)) && void 0 !== _d ? _d : 250,
27366
+ streamLength = null !== (_f = null === (_e = this.params) || void 0 === _e ? void 0 : _e.streamLength) && void 0 !== _f ? _f : parentWidth,
27367
+ maxLength = null !== (_j = null === (_h = null === (_g = this.params) || void 0 === _g ? void 0 : _g.attribute) || void 0 === _h ? void 0 : _h.width) && void 0 !== _j ? _j : 60,
27368
+ startX = -maxLength,
27369
+ currentX = startX + (streamLength - startX) * ratio,
27370
+ x = Math.max(currentX, 0),
27371
+ w = Math.min(Math.min(currentX + maxLength, maxLength), streamLength - currentX),
27372
+ width = w + x > parentWidth ? Math.max(parentWidth - x, 0) : w;
27373
+ this.rect.setAttributes({
27374
+ x: x,
27375
+ width: width,
27376
+ dx: Math.min(parentAttr.x1 - parentAttr.x, 0)
27377
+ }, !1, {
27378
+ type: AttributeUpdateType.ANIMATE_PLAY,
27379
+ animationState: {
27380
+ ratio: ratio,
27381
+ end: end
27382
+ }
24307
27383
  });
24308
- const animate = executor.executeItem(task.config, task.graphic);
24309
- task.animate = animate, animate.forEach(animate => {
24310
- this.totalDuration = Math.max(this.totalDuration, animate.getStartTime() + animate.getDuration());
27384
+ } else {
27385
+ const parentHeight = null !== (_l = null !== (_k = parentAttr.height) && void 0 !== _k ? _k : Math.abs(parentAttr.y1 - parentAttr.y)) && void 0 !== _l ? _l : 250,
27386
+ streamLength = null !== (_o = null === (_m = this.params) || void 0 === _m ? void 0 : _m.streamLength) && void 0 !== _o ? _o : parentHeight,
27387
+ maxLength = null !== (_r = null === (_q = null === (_p = this.params) || void 0 === _p ? void 0 : _p.attribute) || void 0 === _q ? void 0 : _q.height) && void 0 !== _r ? _r : 60,
27388
+ currentY = parentHeight - (streamLength + maxLength) * ratio;
27389
+ let y = Math.min(currentY, parentHeight);
27390
+ const h = Math.min(parentHeight - currentY, maxLength);
27391
+ let height;
27392
+ y <= 0 ? (height = Math.max(y + h, 0), y = 0) : height = h, this.rect.setAttributes({
27393
+ y: y,
27394
+ height: height,
27395
+ dy: Math.min(parentAttr.y1 - parentAttr.y, 0)
27396
+ }, !1, {
27397
+ type: AttributeUpdateType.ANIMATE_PLAY,
27398
+ animationState: {
27399
+ ratio: ratio,
27400
+ end: end
27401
+ }
24311
27402
  });
24312
- }), this));
27403
+ }
24313
27404
  }
24314
- deleteSelfAttr(key) {
24315
- this.tasks.forEach(task => {
24316
- task.animate && task.animate.forEach(animate => animate.preventAttr(key));
24317
- });
27405
+ onUpdateLineOrArea(end, ratio, out) {
27406
+ const target = this.line || this.area;
27407
+ if (!target) return;
27408
+ const customPath = target.pathProxy,
27409
+ targetLine = this.target;
27410
+ targetLine.cache || targetLine.cacheArea ? this._onUpdateLineOrAreaWithCache(customPath, targetLine, end, ratio, out) : this._onUpdateLineWithoutCache(customPath, targetLine, end, ratio, out);
27411
+ const targetAttrs = targetLine.attribute;
27412
+ target.setAttributes(Object.assign({
27413
+ stroke: targetAttrs.stroke
27414
+ }, target.attribute)), target.addUpdateBoundTag();
24318
27415
  }
24319
- stop(type) {
24320
- return this.tasks.forEach(task => {
24321
- task.animate && task.animate.forEach(animate => animate.stop(type));
24322
- }), this.started && this.completed !== this.tasks.length && (this.onEndCallbacks.forEach(callback => callback()), this.completed = this.tasks.length), this;
27416
+ _onUpdateLineOrAreaWithCache(customPath, g, end, ratio, out) {
27417
+ var _a, _b;
27418
+ if (customPath.clear(), "line" === g.type) {
27419
+ let cache = g.cache;
27420
+ Array.isArray(cache) || (cache = [cache]);
27421
+ const totalLen = cache.reduce((l, c) => l + c.getLength(), 0),
27422
+ curves = [];
27423
+ return cache.forEach(c => {
27424
+ c.curves.forEach(ci => curves.push(ci));
27425
+ }), this._updateCurves(customPath, curves, totalLen, ratio);
27426
+ }
27427
+ if ("area" === g.type && (null === (_b = null === (_a = g.cacheArea) || void 0 === _a ? void 0 : _a.top) || void 0 === _b ? void 0 : _b.curves)) {
27428
+ const cache = g.cacheArea,
27429
+ totalLen = cache.top.curves.reduce((a, b) => a + b.getLength(), 0);
27430
+ return this._updateCurves(customPath, cache.top.curves, totalLen, ratio);
27431
+ }
27432
+ }
27433
+ _updateCurves(customPath, curves, totalLen, ratio) {
27434
+ var _a, _b;
27435
+ const startLen = totalLen * ratio,
27436
+ endLen = Math.min(startLen + (null !== (_b = null === (_a = this.params) || void 0 === _a ? void 0 : _a.streamLength) && void 0 !== _b ? _b : 10), totalLen);
27437
+ let lastLen = 0,
27438
+ start = !1;
27439
+ for (let i = 0; i < curves.length; i++) if (!1 !== curves[i].defined) {
27440
+ const curveItem = curves[i],
27441
+ len = curveItem.getLength(),
27442
+ startPercent = 1 - (lastLen + len - startLen) / len;
27443
+ let curveForStart,
27444
+ endPercent = 1 - (lastLen + len - endLen) / len;
27445
+ if (lastLen < startLen && lastLen + len > startLen) if (start = !0, curveItem.p2 && curveItem.p3) {
27446
+ const [_, curve2] = divideCubic(curveItem, startPercent);
27447
+ customPath.moveTo(curve2.p0.x, curve2.p0.y), curveForStart = curve2;
27448
+ } else {
27449
+ const p = curveItem.getPointAt(startPercent);
27450
+ customPath.moveTo(p.x, p.y);
27451
+ }
27452
+ if (lastLen < endLen && lastLen + len > endLen) {
27453
+ if (curveItem.p2 && curveItem.p3) {
27454
+ curveForStart && (endPercent = (endLen - startLen) / curveForStart.getLength());
27455
+ const [curve1] = divideCubic(curveForStart || curveItem, endPercent);
27456
+ customPath.bezierCurveTo(curve1.p1.x, curve1.p1.y, curve1.p2.x, curve1.p2.y, curve1.p3.x, curve1.p3.y);
27457
+ } else {
27458
+ const p = curveItem.getPointAt(endPercent);
27459
+ customPath.lineTo(p.x, p.y);
27460
+ }
27461
+ break;
27462
+ }
27463
+ if (start) if (curveItem.p2 && curveItem.p3) {
27464
+ const curve = curveForStart || curveItem;
27465
+ customPath.bezierCurveTo(curve.p1.x, curve.p1.y, curve.p2.x, curve.p2.y, curve.p3.x, curve.p3.y);
27466
+ } else customPath.lineTo(curveItem.p1.x, curveItem.p1.y);
27467
+ lastLen += len;
27468
+ }
24323
27469
  }
24324
- getDuration() {
24325
- return this.totalDuration;
27470
+ _onUpdateLineWithoutCache(customPath, line, end, ratio, out) {
27471
+ var _a, _b;
27472
+ const {
27473
+ points: points,
27474
+ curveType: curveType
27475
+ } = line.attribute;
27476
+ if (!points || points.length < 2 || "linear" !== curveType) return;
27477
+ let totalLen = 0;
27478
+ for (let i = 1; i < points.length; i++) totalLen += PointService.distancePP(points[i], points[i - 1]);
27479
+ const startLen = totalLen * ratio,
27480
+ endLen = Math.min(startLen + (null !== (_b = null === (_a = this.params) || void 0 === _a ? void 0 : _a.streamLength) && void 0 !== _b ? _b : 10), totalLen),
27481
+ nextPoints = [];
27482
+ let lastLen = 0;
27483
+ for (let i = 1; i < points.length; i++) {
27484
+ const len = PointService.distancePP(points[i], points[i - 1]);
27485
+ if (lastLen < startLen && lastLen + len > startLen && nextPoints.push(PointService.pointAtPP(points[i - 1], points[i], 1 - (lastLen + len - startLen) / len)), lastLen < endLen && lastLen + len > endLen) {
27486
+ nextPoints.push(PointService.pointAtPP(points[i - 1], points[i], 1 - (lastLen + len - endLen) / len));
27487
+ break;
27488
+ }
27489
+ nextPoints.length && nextPoints.push(points[i]), lastLen += len;
27490
+ }
27491
+ if (nextPoints.length && !(nextPoints.length < 2)) {
27492
+ customPath.clear(), customPath.moveTo(nextPoints[0].x, nextPoints[0].y);
27493
+ for (let i = 1; i < nextPoints.length; i++) customPath.lineTo(nextPoints[i].x, nextPoints[i].y);
27494
+ }
24326
27495
  }
24327
27496
  }
24328
- function createComponentAnimator(component) {
24329
- return new ComponentAnimator(component);
24330
- }
27497
+
27498
+ const registerCustomAnimate = () => {
27499
+ AnimateExecutor.registerBuiltInAnimate("increaseCount", IncreaseCount), AnimateExecutor.registerBuiltInAnimate("fromTo", FromTo), AnimateExecutor.registerBuiltInAnimate("scaleIn", ScaleIn), AnimateExecutor.registerBuiltInAnimate("scaleOut", ScaleOut), AnimateExecutor.registerBuiltInAnimate("growHeightIn", GrowHeightIn), AnimateExecutor.registerBuiltInAnimate("growHeightOut", GrowHeightOut), AnimateExecutor.registerBuiltInAnimate("growWidthIn", GrowWidthIn), AnimateExecutor.registerBuiltInAnimate("growWidthOut", GrowWidthOut), AnimateExecutor.registerBuiltInAnimate("growCenterIn", GrowCenterIn), AnimateExecutor.registerBuiltInAnimate("growCenterOut", GrowCenterOut), AnimateExecutor.registerBuiltInAnimate("clipIn", ClipIn), AnimateExecutor.registerBuiltInAnimate("clipOut", ClipOut), AnimateExecutor.registerBuiltInAnimate("fadeIn", FadeIn), AnimateExecutor.registerBuiltInAnimate("fadeOut", FadeOut), AnimateExecutor.registerBuiltInAnimate("growPointsIn", GrowPointsIn), AnimateExecutor.registerBuiltInAnimate("growPointsOut", GrowPointsOut), AnimateExecutor.registerBuiltInAnimate("growPointsXIn", GrowPointsXIn), AnimateExecutor.registerBuiltInAnimate("growPointsXOut", GrowPointsXOut), AnimateExecutor.registerBuiltInAnimate("growPointsYIn", GrowPointsYIn), AnimateExecutor.registerBuiltInAnimate("growPointsYOut", GrowPointsYOut), AnimateExecutor.registerBuiltInAnimate("growAngleIn", GrowAngleIn), AnimateExecutor.registerBuiltInAnimate("growAngleOut", GrowAngleOut), AnimateExecutor.registerBuiltInAnimate("growRadiusIn", GrowRadiusIn), AnimateExecutor.registerBuiltInAnimate("growRadiusOut", GrowRadiusOut), AnimateExecutor.registerBuiltInAnimate("moveIn", MoveIn), AnimateExecutor.registerBuiltInAnimate("moveOut", MoveOut), AnimateExecutor.registerBuiltInAnimate("rotateIn", RotateIn), AnimateExecutor.registerBuiltInAnimate("rotateOut", RotateOut), AnimateExecutor.registerBuiltInAnimate("update", Update), AnimateExecutor.registerBuiltInAnimate("state", State), AnimateExecutor.registerBuiltInAnimate("labelItemAppear", LabelItemAppear), AnimateExecutor.registerBuiltInAnimate("labelItemDisappear", LabelItemDisappear), AnimateExecutor.registerBuiltInAnimate("poptipAppear", PoptipAppear), AnimateExecutor.registerBuiltInAnimate("poptipDisappear", PoptipDisappear), AnimateExecutor.registerBuiltInAnimate("inputText", InputText), AnimateExecutor.registerBuiltInAnimate("inputRichText", InputRichText), AnimateExecutor.registerBuiltInAnimate("outputRichText", OutputRichText), AnimateExecutor.registerBuiltInAnimate("slideRichText", SlideRichText), AnimateExecutor.registerBuiltInAnimate("slideOutRichText", SlideOutRichText), AnimateExecutor.registerBuiltInAnimate("slideIn", SlideIn), AnimateExecutor.registerBuiltInAnimate("growIn", GrowIn), AnimateExecutor.registerBuiltInAnimate("spinIn", SpinIn), AnimateExecutor.registerBuiltInAnimate("moveScaleIn", MoveScaleIn), AnimateExecutor.registerBuiltInAnimate("moveRotateIn", MoveRotateIn), AnimateExecutor.registerBuiltInAnimate("strokeIn", StrokeIn), AnimateExecutor.registerBuiltInAnimate("slideOut", SlideOut), AnimateExecutor.registerBuiltInAnimate("growOut", GrowOut), AnimateExecutor.registerBuiltInAnimate("spinOut", SpinOut), AnimateExecutor.registerBuiltInAnimate("moveScaleOut", MoveScaleOut), AnimateExecutor.registerBuiltInAnimate("moveRotateOut", MoveRotateOut), AnimateExecutor.registerBuiltInAnimate("strokeOut", StrokeOut), AnimateExecutor.registerBuiltInAnimate("pulse", PulseAnimate), AnimateExecutor.registerBuiltInAnimate("MotionPath", MotionPath), AnimateExecutor.registerBuiltInAnimate("streamLight", StreamLight);
27500
+ };
24331
27501
 
24332
27502
  class AxisEnter extends AComponentAnimate {
24333
27503
  onBind() {
@@ -30299,7 +33469,7 @@
30299
33469
  }
30300
33470
 
30301
33471
  let idCount = 1;
30302
- class ResizeObserver {
33472
+ let ResizeObserver$1 = class ResizeObserver {
30303
33473
  constructor(element, cb, resizeTime) {
30304
33474
  var _a;
30305
33475
  if (this.resizeTime = 100, this.lastSize = {
@@ -30339,7 +33509,7 @@
30339
33509
  height: Math.floor(this.element.clientHeight)
30340
33510
  } : Object.assign({}, this.lastSize);
30341
33511
  }
30342
- }
33512
+ };
30343
33513
  class EventHandler {
30344
33514
  constructor() {
30345
33515
  this.listeners = {}, this.reseizeListeners = {};
@@ -30348,7 +33518,7 @@
30348
33518
  if ("node" === Env.mode) return -1;
30349
33519
  const id = idCount++;
30350
33520
  if (null == target ? void 0 : target.addEventListener) if ("resize" !== type || target === window) null == target || target.addEventListener(type, listener, ...options);else {
30351
- const resizeObserver = new ResizeObserver(target, listener, this.resizeTime);
33521
+ const resizeObserver = new ResizeObserver$1(target, listener, this.resizeTime);
30352
33522
  this.reseizeListeners[id] = resizeObserver;
30353
33523
  }
30354
33524
  const obj = {
@@ -32670,6 +35840,24 @@
32670
35840
  }
32671
35841
  return childTotalLength;
32672
35842
  }
35843
+ _setNodeStateRecursive(node, targetState) {
35844
+ var _a;
35845
+ if (!node) return;
35846
+ const children = null !== (_a = node.filteredChildren) && void 0 !== _a ? _a : node.children;
35847
+ if (children && (Array.isArray(children) ? children.length > 0 : !0 === children) && (node.hierarchyState = targetState), children && Array.isArray(children)) for (const child of children) this._setNodeStateRecursive(child, targetState);
35848
+ }
35849
+ expandAllNodes() {
35850
+ if (Array.isArray(this._source)) {
35851
+ for (const rootNode of this._source) this._setNodeStateRecursive(rootNode, HierarchyState.expand);
35852
+ this.hasHierarchyStateExpand = !0, this.clearSortedIndexMap(), this.restoreTreeHierarchyState(), this.lastSortStates && this.lastSortStates.length > 0 ? this.sort(this.lastSortStates) : this.updatePagerData();
35853
+ }
35854
+ }
35855
+ collapseAllNodes() {
35856
+ if (Array.isArray(this._source)) {
35857
+ for (const rootNode of this._source) this._setNodeStateRecursive(rootNode, HierarchyState.collapse);
35858
+ this.clearSortedIndexMap(), this.restoreTreeHierarchyState(), this.lastSortStates && this.lastSortStates.length > 0 ? this.sort(this.lastSortStates) : this.updatePagerData();
35859
+ }
35860
+ }
32673
35861
  }
32674
35862
  DataSource.EMPTY = new DataSource({
32675
35863
  get() {},
@@ -40634,7 +43822,7 @@
40634
43822
  }
40635
43823
  }
40636
43824
 
40637
- var __awaiter$5 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
43825
+ var __awaiter$6 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
40638
43826
  return new (P || (P = Promise))(function (resolve, reject) {
40639
43827
  function fulfilled(value) {
40640
43828
  try {
@@ -40660,7 +43848,7 @@
40660
43848
  });
40661
43849
  };
40662
43850
  function dynamicSetX(x, screenLeft, isEnd, proxy) {
40663
- return __awaiter$5(this, void 0, void 0, function* () {
43851
+ return __awaiter$6(this, void 0, void 0, function* () {
40664
43852
  if (!screenLeft) return;
40665
43853
  const screenLeftCol = screenLeft.col,
40666
43854
  screenLeftX = screenLeft.left;
@@ -40679,7 +43867,7 @@
40679
43867
  deltaCol > 0 ? (moveColumn(deltaCol, "left", proxy.screenLeftCol, screenLeftX, x, proxy), proxy.updateDeltaX(x, screenLeftX, screenLeftCol), proxy.table.scenegraph.setBodyAndColHeaderX(-x + proxy.deltaX)) : deltaCol < 0 ? (moveColumn(-deltaCol, "right", proxy.screenLeftCol, screenLeftX, x, proxy), proxy.updateDeltaX(x, screenLeftX, screenLeftCol), proxy.table.scenegraph.setBodyAndColHeaderX(-x + proxy.deltaX)) : (proxy.updateDeltaX(x, screenLeftX, screenLeftCol), proxy.table.scenegraph.setBodyAndColHeaderX(-x + proxy.deltaX));
40680
43868
  }
40681
43869
  function moveColumn(count, direction, screenLeftCol, screenLeftX, x, proxy) {
40682
- return __awaiter$5(this, void 0, void 0, function* () {
43870
+ return __awaiter$6(this, void 0, void 0, function* () {
40683
43871
  if ("left" === direction && proxy.colEnd + count > proxy.bodyRightCol ? count = proxy.bodyRightCol - proxy.colEnd : "right" === direction && proxy.colStart - count < proxy.bodyLeftCol && (count = proxy.colStart - proxy.bodyLeftCol), 0 !== count) if (count < 0 && (direction = "left" === direction ? "right" : "left", count = -count), count < proxy.colEnd - proxy.colStart) {
40684
43872
  const startCol = "left" === direction ? proxy.colStart : proxy.colEnd - count + 1,
40685
43873
  endCol = "left" === direction ? proxy.colStart + count - 1 : proxy.colEnd,
@@ -40810,7 +43998,7 @@
40810
43998
  return y = row < table.frozenRowCount ? table.getRowsHeight(0, row - 1) : row >= table.rowCount - table.bottomFrozenRowCount ? table.getRowsHeight(table.rowCount - table.bottomFrozenRowCount, row - 1) : table.getRowsHeight(table.frozenRowCount, row - 1), y;
40811
43999
  }
40812
44000
 
40813
- var __awaiter$4 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
44001
+ var __awaiter$5 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
40814
44002
  return new (P || (P = Promise))(function (resolve, reject) {
40815
44003
  function fulfilled(value) {
40816
44004
  try {
@@ -40836,7 +44024,7 @@
40836
44024
  });
40837
44025
  };
40838
44026
  function dynamicSetY(y, screenTop, isEnd, proxy) {
40839
- return __awaiter$4(this, void 0, void 0, function* () {
44027
+ return __awaiter$5(this, void 0, void 0, function* () {
40840
44028
  if (!screenTop) return;
40841
44029
  const screenTopRow = screenTop.row,
40842
44030
  screenTopY = screenTop.top;
@@ -40854,7 +44042,7 @@
40854
44042
  deltaRow > 0 ? (moveCell(deltaRow, "up", screenTopRow, screenTopY, y, proxy), proxy.updateDeltaY(y, screenTopY, screenTopRow), proxy.updateBody(y - proxy.deltaY)) : deltaRow < 0 ? (moveCell(-deltaRow, "down", screenTopRow, screenTopY, y, proxy), proxy.updateDeltaY(y, screenTopY, screenTopRow), proxy.updateBody(y - proxy.deltaY)) : (proxy.updateDeltaY(y, screenTopY, screenTopRow), proxy.updateBody(y - proxy.deltaY));
40855
44043
  }
40856
44044
  function moveCell(count, direction, screenTopRow, screenTopY, y, proxy) {
40857
- return __awaiter$4(this, void 0, void 0, function* () {
44045
+ return __awaiter$5(this, void 0, void 0, function* () {
40858
44046
  if ("up" === direction && proxy.rowEnd + count > proxy.bodyBottomRow ? count = proxy.bodyBottomRow - proxy.rowEnd : "down" === direction && proxy.rowStart - count < proxy.bodyTopRow && (count = proxy.rowStart - proxy.bodyTopRow), 0 !== count) if (count < 0 && (direction = "up" === direction ? "down" : "up", count = -count), count < proxy.rowEnd - proxy.rowStart) {
40859
44047
  const startRow = "up" === direction ? proxy.rowStart : proxy.rowEnd - count + 1,
40860
44048
  endRow = "up" === direction ? proxy.rowStart + count - 1 : proxy.rowEnd,
@@ -40954,7 +44142,7 @@
40954
44142
  }
40955
44143
  }
40956
44144
 
40957
- var __awaiter$3 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
44145
+ var __awaiter$4 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
40958
44146
  return new (P || (P = Promise))(function (resolve, reject) {
40959
44147
  function fulfilled(value) {
40960
44148
  try {
@@ -40981,7 +44169,7 @@
40981
44169
  };
40982
44170
  function sortVertical(proxy) {
40983
44171
  var _a;
40984
- return __awaiter$3(this, void 0, void 0, function* () {
44172
+ return __awaiter$4(this, void 0, void 0, function* () {
40985
44173
  let syncTopRow, syncBottomRow;
40986
44174
  proxy.table.scenegraph.bodyGroup.forEachChildren((colGroup, index) => {
40987
44175
  "group" === colGroup.type && (colGroup.needUpdate = !0, null == colGroup || colGroup.forEachChildren(cellGroup => {
@@ -41013,7 +44201,7 @@
41013
44201
  });
41014
44202
  }
41015
44203
 
41016
- var __awaiter$2 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
44204
+ var __awaiter$3 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
41017
44205
  return new (P || (P = Promise))(function (resolve, reject) {
41018
44206
  function fulfilled(value) {
41019
44207
  try {
@@ -41039,7 +44227,7 @@
41039
44227
  });
41040
44228
  };
41041
44229
  function sortHorizontal(proxy) {
41042
- return __awaiter$2(this, void 0, void 0, function* () {
44230
+ return __awaiter$3(this, void 0, void 0, function* () {
41043
44231
  proxy.table.scenegraph.bodyGroup.forEachChildren((colGroup, index) => {
41044
44232
  "group" === colGroup.type && (colGroup.needUpdate = !0, null == colGroup || colGroup.forEachChildren(cellGroup => {
41045
44233
  cellGroup.needUpdate = !0;
@@ -41278,7 +44466,7 @@
41278
44466
  return !!(table.theme.headerStyle.textStick || table.theme.rowHeaderStyle.textStick || table.theme.bodyStyle.textStick);
41279
44467
  }
41280
44468
 
41281
- var __awaiter$1 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
44469
+ var __awaiter$2 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
41282
44470
  return new (P || (P = Promise))(function (resolve, reject) {
41283
44471
  function fulfilled(value) {
41284
44472
  try {
@@ -41361,21 +44549,21 @@
41361
44549
  createGroupForFirstScreen(cornerHeaderGroup, colHeaderGroup, rowHeaderGroup, rightFrozenGroup, bottomFrozenGroup, bodyGroup, xOrigin, yOrigin, this);
41362
44550
  }
41363
44551
  progress() {
41364
- return __awaiter$1(this, void 0, void 0, function* () {
44552
+ return __awaiter$2(this, void 0, void 0, function* () {
41365
44553
  if (!this.isProgressing) return this.isProgressing = !0, new Promise((resolve, reject) => {
41366
- setTimeout(() => __awaiter$1(this, void 0, void 0, function* () {
44554
+ setTimeout(() => __awaiter$2(this, void 0, void 0, function* () {
41367
44555
  this.isProgressing = !1, this.isRelease || (this.colUpdatePos <= this.colEnd ? (yield this.updateColCellGroupsAsync(), yield this.progress()) : this.rowUpdatePos <= this.rowEnd ? (yield this.updateRowCellGroupsAsync(), yield this.progress()) : this.currentCol < this.totalCol ? (yield this.createCol(), yield this.progress()) : this.currentRow < this.totalRow && (yield this.createRow(), yield this.progress()), handleTextStick(this.table), this.table.scenegraph.updateNextFrame(), resolve());
41368
44556
  }), 16);
41369
44557
  });
41370
44558
  });
41371
44559
  }
41372
44560
  createRow() {
41373
- return __awaiter$1(this, void 0, void 0, function* () {
44561
+ return __awaiter$2(this, void 0, void 0, function* () {
41374
44562
  this.taskRowCount && this.createRowCellGroup(this.taskRowCount);
41375
44563
  });
41376
44564
  }
41377
44565
  createCol() {
41378
- return __awaiter$1(this, void 0, void 0, function* () {
44566
+ return __awaiter$2(this, void 0, void 0, function* () {
41379
44567
  this.taskColCount && this.createColGroup(this.taskRowCount);
41380
44568
  });
41381
44569
  }
@@ -41439,7 +44627,7 @@
41439
44627
  createColGroup(this.table.scenegraph.bodyGroup, xOrigin, yOrigin, this.currentCol + 1, endCol, this.rowStart, this.rowEnd, "body", this.table), this.currentCol = endCol, this.colUpdatePos = this.colEnd, this.table.scenegraph.updateContainer(), this.table.scenegraph.updateBorderSizeAndPosition();
41440
44628
  }
41441
44629
  setY(y, isEnd = !1) {
41442
- return __awaiter$1(this, void 0, void 0, function* () {
44630
+ return __awaiter$2(this, void 0, void 0, function* () {
41443
44631
  const yLimitTop = this.table.getRowsHeight(this.bodyTopRow, this.bodyTopRow + (this.rowEnd - this.rowStart + 1)) / 2,
41444
44632
  yLimitBottom = this.table.getAllRowsHeight() - yLimitTop,
41445
44633
  screenTop = this.table.getTargetRowAt(y + this.table.scenegraph.colHeaderGroup.attribute.height);
@@ -41447,7 +44635,7 @@
41447
44635
  });
41448
44636
  }
41449
44637
  setX(x, isEnd = !1) {
41450
- return __awaiter$1(this, void 0, void 0, function* () {
44638
+ return __awaiter$2(this, void 0, void 0, function* () {
41451
44639
  const xLimitLeft = this.table.getColsWidth(this.bodyLeftCol, this.bodyLeftCol + (this.colEnd - this.colStart + 1)) / 2,
41452
44640
  xLimitRight = this.table.getAllColsWidth() - xLimitLeft,
41453
44641
  screenLeft = this.table.getTargetColAt(x + this.table.scenegraph.rowHeaderGroup.attribute.width);
@@ -41455,12 +44643,12 @@
41455
44643
  });
41456
44644
  }
41457
44645
  dynamicSetY(y, screenTop, isEnd = !1) {
41458
- return __awaiter$1(this, void 0, void 0, function* () {
44646
+ return __awaiter$2(this, void 0, void 0, function* () {
41459
44647
  dynamicSetY(y, screenTop, isEnd, this);
41460
44648
  });
41461
44649
  }
41462
44650
  dynamicSetX(x, screenLeft, isEnd = !1) {
41463
- return __awaiter$1(this, void 0, void 0, function* () {
44651
+ return __awaiter$2(this, void 0, void 0, function* () {
41464
44652
  dynamicSetX(x, screenLeft, isEnd, this);
41465
44653
  });
41466
44654
  }
@@ -41468,7 +44656,7 @@
41468
44656
  this.table.scenegraph.setBodyAndRowHeaderY(-y);
41469
44657
  }
41470
44658
  updateRowCellGroupsAsync() {
41471
- return __awaiter$1(this, void 0, void 0, function* () {
44659
+ return __awaiter$2(this, void 0, void 0, function* () {
41472
44660
  this.updateCellGroups(this.taskRowCount);
41473
44661
  });
41474
44662
  }
@@ -41487,7 +44675,7 @@
41487
44675
  "autoWidth" === this.table.widthMode && computeColsWidth(this.table, startCol, endCol, !1), updateColContent(startCol, endCol, this), this.table.isAutoRowHeight(this.rowStart) && updateAutoColumn(startCol, endCol, this.table, this.colUpdateDirection);
41488
44676
  }
41489
44677
  updateColCellGroupsAsync() {
41490
- return __awaiter$1(this, void 0, void 0, function* () {
44678
+ return __awaiter$2(this, void 0, void 0, function* () {
41491
44679
  this.updateColGroups(this.taskRowCount);
41492
44680
  });
41493
44681
  }
@@ -41504,12 +44692,12 @@
41504
44692
  return cellGroup.needUpdate = !1, newCellGroup || cellGroup;
41505
44693
  }
41506
44694
  sortCellVertical() {
41507
- return __awaiter$1(this, void 0, void 0, function* () {
44695
+ return __awaiter$2(this, void 0, void 0, function* () {
41508
44696
  yield sortVertical(this);
41509
44697
  });
41510
44698
  }
41511
44699
  sortCellHorizontal() {
41512
- return __awaiter$1(this, void 0, void 0, function* () {
44700
+ return __awaiter$2(this, void 0, void 0, function* () {
41513
44701
  yield sortHorizontal(this);
41514
44702
  });
41515
44703
  }
@@ -45533,15 +48721,26 @@
45533
48721
  var _a;
45534
48722
  let originalFrozenColCount = this.table.options.frozenColCount ? this.table.options.frozenColCount : this.table.isPivotTable() || this.table.isListTable() && this.table.internalProps.transpose ? (null !== (_a = this.table.rowHeaderLevelCount) && void 0 !== _a ? _a : 0) + this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount : 0;
45535
48723
  if (originalFrozenColCount) {
45536
- originalFrozenColCount > this.table.colCount && (originalFrozenColCount = this.table.colCount);
45537
- const maxFrozenWidth = this.table._getMaxFrozenWidth();
45538
- if (this.table.getColsWidth(0, originalFrozenColCount - 1) > maxFrozenWidth) {
48724
+ originalFrozenColCount = Math.min(originalFrozenColCount, this.table.colCount);
48725
+ const container = this.table.getContainer();
48726
+ if (container && 0 === container.clientWidth) {
48727
+ if (this._frozenObserver) return;
48728
+ return this._frozenObserver = new ResizeObserver(entries => {
48729
+ for (const entry of entries) if (entry.contentRect.width > 0) return this.clearFrozenObserver(), this.table.resize(), void setTimeout(() => {
48730
+ this.checkFrozen();
48731
+ }, 0);
48732
+ }), void this._frozenObserver.observe(container);
48733
+ }
48734
+ if (this.table.getColsWidth(0, originalFrozenColCount - 1) > this.table._getMaxFrozenWidth()) {
45539
48735
  if (this.table.internalProps.unfreezeAllOnExceedsMaxWidth) this.table._setFrozenColCount(0), this.setFrozenCol(-1);else {
45540
48736
  const computedFrozenColCount = this.table._getComputedFrozenColCount(originalFrozenColCount);
45541
48737
  this.table._setFrozenColCount(computedFrozenColCount), this.setFrozenCol(computedFrozenColCount);
45542
48738
  }
45543
48739
  } else this.table.frozenColCount !== originalFrozenColCount && (this.table._setFrozenColCount(originalFrozenColCount), this.setFrozenCol(originalFrozenColCount));
45544
- }
48740
+ } else this.clearFrozenObserver();
48741
+ }
48742
+ clearFrozenObserver() {
48743
+ this._frozenObserver && (this._frozenObserver.disconnect(), this._frozenObserver = null);
45545
48744
  }
45546
48745
  setFrozenCol(col) {
45547
48746
  col !== this.frozen.col ? (this.frozen.col = col, this.table.scenegraph.updateFrozen(), this.table.scenegraph.updateFrozenIcon(0, this.table.colCount - 1)) : this.table.scenegraph.updateFrozenIcon(0, this.table.colCount - 1);
@@ -46424,7 +49623,7 @@
46424
49623
  }, 0);
46425
49624
  }
46426
49625
  }), table.scenegraph.tableGroup.addEventListener("rightdown", e => {
46427
- var _a, _b, _c, _d;
49626
+ var _a, _b, _c, _d, _e, _f;
46428
49627
  const eventArgsSet = getCellEventArgsSet(e);
46429
49628
  if (eventArgsSet.eventArgs) {
46430
49629
  stateManager.triggerContextMenu(eventArgsSet.eventArgs.col, eventArgsSet.eventArgs.row, eventArgsSet.abstractPos.x, eventArgsSet.abstractPos.y);
@@ -46450,7 +49649,7 @@
46450
49649
  target: null === (_c = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _c ? void 0 : _c.target,
46451
49650
  mergeCellInfo: null === (_d = eventArgsSet.eventArgs) || void 0 === _d ? void 0 : _d.mergeInfo
46452
49651
  });
46453
- cellInRanges(table.stateManager.select.ranges, col, row) ? cellsEvent.cells = table.getSelectedCellInfos() : cellsEvent.cells = [[cellInfo]], table.fireListeners(TABLE_EVENT_TYPE.CONTEXTMENU_CELL, cellsEvent);
49652
+ (null === (_f = null === (_e = table.options.eventOptions) || void 0 === _e ? void 0 : _e.contextmenuReturnAllSelectedCells) || void 0 === _f || _f) && (cellInRanges(table.stateManager.select.ranges, col, row) ? cellsEvent.cells = table.getSelectedCellInfos() : cellsEvent.cells = [[cellInfo]]), table.fireListeners(TABLE_EVENT_TYPE.CONTEXTMENU_CELL, cellsEvent);
46454
49653
  }
46455
49654
  }
46456
49655
  }), table.scenegraph.tableGroup.addEventListener("pointertap", e => {
@@ -46767,7 +49966,7 @@
46767
49966
  }
46768
49967
  getPixelRatio();
46769
49968
 
46770
- var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
49969
+ var __awaiter$1 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
46771
49970
  return new (P || (P = Promise))(function (resolve, reject) {
46772
49971
  function fulfilled(value) {
46773
49972
  try {
@@ -46859,7 +50058,7 @@
46859
50058
  }
46860
50059
  }
46861
50060
  handleKeydownListener(e);
46862
- }), handler.on(table.getElement(), "copy", e => __awaiter(this, void 0, void 0, function* () {
50061
+ }), handler.on(table.getElement(), "copy", e => __awaiter$1(this, void 0, void 0, function* () {
46863
50062
  var _a, _b;
46864
50063
  if (null === (_a = table.keyboardOptions) || void 0 === _a ? void 0 : _a.copySelected) {
46865
50064
  const data = table.getCopyValue();
@@ -46898,11 +50097,11 @@
46898
50097
  });
46899
50098
  }
46900
50099
  }
46901
- })), handler.on(table.getElement(), "paste", e => {
46902
- var _a, _b, _c, _d;
46903
- if ((null === (_a = table.keyboardOptions) || void 0 === _a ? void 0 : _a.pasteValueToCell) && table.changeCellValues) {
46904
- if (null === (_b = table.editorManager) || void 0 === _b ? void 0 : _b.editingEditor) return;
46905
- if ((null === (_c = table.stateManager.select.ranges) || void 0 === _c ? void 0 : _c.length) > 0) if (null === (_d = navigator.clipboard) || void 0 === _d ? void 0 : _d.read) navigator.clipboard.read().then(clipboardItems => {
50100
+ })), handler.on(table.getElement(), "paste", e => __awaiter$1(this, void 0, void 0, function* () {
50101
+ var _c, _d, _e, _f;
50102
+ if ((null === (_c = table.keyboardOptions) || void 0 === _c ? void 0 : _c.pasteValueToCell) && table.changeCellValues) {
50103
+ if (null === (_d = table.editorManager) || void 0 === _d ? void 0 : _d.editingEditor) return;
50104
+ if ((null === (_e = table.stateManager.select.ranges) || void 0 === _e ? void 0 : _e.length) > 0) if (null === (_f = navigator.clipboard) || void 0 === _f ? void 0 : _f.read) navigator.clipboard.read().then(clipboardItems => {
46906
50105
  for (const item of clipboardItems) item.types.includes("text/html") ? pasteHtmlToTable(item) : 1 === item.types.length && "text/plain" === item.types[0] && pasteTextToTable(item);
46907
50106
  });else {
46908
50107
  const ranges = table.stateManager.select.ranges,
@@ -46917,7 +50116,7 @@
46917
50116
  cellIndex === cells.length - 1 && (cell = cell.trim()), rowValues.push(cell);
46918
50117
  });
46919
50118
  });
46920
- const changedCellResults = table.changeCellValues(col, row, values);
50119
+ const changedCellResults = yield table.changeCellValues(col, row, values);
46921
50120
  table.hasListeners(TABLE_EVENT_TYPE.PASTED_DATA) && table.fireListeners(TABLE_EVENT_TYPE.PASTED_DATA, {
46922
50121
  col: col,
46923
50122
  row: row,
@@ -46926,7 +50125,7 @@
46926
50125
  });
46927
50126
  }
46928
50127
  }
46929
- }), handler.on(table.getElement(), "contextmenu", e => {
50128
+ })), handler.on(table.getElement(), "contextmenu", e => {
46930
50129
  var _a;
46931
50130
  !1 !== (null === (_a = table.eventOptions) || void 0 === _a ? void 0 : _a.preventDefaultContextMenu) ? e.preventDefault() : globalPointerupCallback(e);
46932
50131
  }), table.options.canvas || handler.on(table.getContainer(), "resize", e => {
@@ -46946,7 +50145,7 @@
46946
50145
  pasteValuesRowCount = 0,
46947
50146
  values = [];
46948
50147
  item.getType("text/html").then(blob => {
46949
- blob.text().then(pastedData => {
50148
+ blob.text().then(pastedData => __awaiter$1(this, void 0, void 0, function* () {
46950
50149
  var _a, _b;
46951
50150
  if (pastedData && /(<table)|(<TABLE)/g.test(pastedData)) {
46952
50151
  const matches = Array.from(pastedData.matchAll(regex));
@@ -46956,7 +50155,7 @@
46956
50155
  values.push(rowValues), pasteValuesColCount = Math.max(pasteValuesColCount, null !== (_a = null == rowValues ? void 0 : rowValues.length) && void 0 !== _a ? _a : 0);
46957
50156
  }
46958
50157
  pasteValuesRowCount = null !== (_b = values.length) && void 0 !== _b ? _b : 0, values = handlePasteValues(values, pasteValuesRowCount, pasteValuesColCount, maxRow - row + 1, maxCol - col + 1);
46959
- const changedCellResults = table.changeCellValues(col, row, values, !0);
50158
+ const changedCellResults = yield table.changeCellValues(col, row, values, !0);
46960
50159
  table.hasListeners(TABLE_EVENT_TYPE.PASTED_DATA) && table.fireListeners(TABLE_EVENT_TYPE.PASTED_DATA, {
46961
50160
  col: col,
46962
50161
  row: row,
@@ -46968,34 +50167,36 @@
46968
50167
  blob.text().then(_pasteValue);
46969
50168
  });
46970
50169
  });
46971
- });
50170
+ }));
46972
50171
  });
46973
50172
  }
46974
50173
  function _pasteValue(pastedData) {
46975
50174
  var _a;
46976
- const ranges = table.stateManager.select.ranges,
46977
- selectRangeLength = ranges.length,
46978
- col = Math.min(ranges[selectRangeLength - 1].start.col, ranges[selectRangeLength - 1].end.col),
46979
- row = Math.min(ranges[selectRangeLength - 1].start.row, ranges[selectRangeLength - 1].end.row),
46980
- maxCol = Math.max(ranges[selectRangeLength - 1].start.col, ranges[selectRangeLength - 1].end.col),
46981
- maxRow = Math.max(ranges[selectRangeLength - 1].start.row, ranges[selectRangeLength - 1].end.row);
46982
- let pasteValuesColCount = 0,
46983
- pasteValuesRowCount = 0,
46984
- values = [];
46985
- pastedData.split("\n").forEach(function (rowCells, rowIndex) {
46986
- var _a;
46987
- const cells = rowCells.split("\t"),
46988
- rowValues = [];
46989
- values.push(rowValues), cells.forEach(function (cell, cellIndex) {
46990
- cellIndex === cells.length - 1 && (cell = cell.trim()), rowValues.push(cell);
46991
- }), pasteValuesColCount = Math.max(pasteValuesColCount, null !== (_a = null == rowValues ? void 0 : rowValues.length) && void 0 !== _a ? _a : 0);
46992
- }), pasteValuesRowCount = null !== (_a = values.length) && void 0 !== _a ? _a : 0, values = handlePasteValues(values, pasteValuesRowCount, pasteValuesColCount, maxRow - row + 1, maxCol - col + 1);
46993
- const changedCellResults = table.changeCellValues(col, row, values, !0);
46994
- table.hasListeners(TABLE_EVENT_TYPE.PASTED_DATA) && table.fireListeners(TABLE_EVENT_TYPE.PASTED_DATA, {
46995
- col: col,
46996
- row: row,
46997
- pasteData: values,
46998
- changedCellResults: changedCellResults
50175
+ return __awaiter$1(this, void 0, void 0, function* () {
50176
+ const ranges = table.stateManager.select.ranges,
50177
+ selectRangeLength = ranges.length,
50178
+ col = Math.min(ranges[selectRangeLength - 1].start.col, ranges[selectRangeLength - 1].end.col),
50179
+ row = Math.min(ranges[selectRangeLength - 1].start.row, ranges[selectRangeLength - 1].end.row),
50180
+ maxCol = Math.max(ranges[selectRangeLength - 1].start.col, ranges[selectRangeLength - 1].end.col),
50181
+ maxRow = Math.max(ranges[selectRangeLength - 1].start.row, ranges[selectRangeLength - 1].end.row);
50182
+ let pasteValuesColCount = 0,
50183
+ pasteValuesRowCount = 0,
50184
+ values = [];
50185
+ pastedData.split("\n").forEach(function (rowCells, rowIndex) {
50186
+ var _a;
50187
+ const cells = rowCells.split("\t"),
50188
+ rowValues = [];
50189
+ values.push(rowValues), cells.forEach(function (cell, cellIndex) {
50190
+ cellIndex === cells.length - 1 && (cell = cell.trim()), rowValues.push(cell);
50191
+ }), pasteValuesColCount = Math.max(pasteValuesColCount, null !== (_a = null == rowValues ? void 0 : rowValues.length) && void 0 !== _a ? _a : 0);
50192
+ }), pasteValuesRowCount = null !== (_a = values.length) && void 0 !== _a ? _a : 0, values = handlePasteValues(values, pasteValuesRowCount, pasteValuesColCount, maxRow - row + 1, maxCol - col + 1);
50193
+ const changedCellResults = yield table.changeCellValues(col, row, values, !0);
50194
+ table.hasListeners(TABLE_EVENT_TYPE.PASTED_DATA) && table.fireListeners(TABLE_EVENT_TYPE.PASTED_DATA, {
50195
+ col: col,
50196
+ row: row,
50197
+ pasteData: values,
50198
+ changedCellResults: changedCellResults
50199
+ });
46999
50200
  });
47000
50201
  }
47001
50202
  function pasteTextToTable(item) {
@@ -47008,7 +50209,7 @@
47008
50209
  let pasteValuesColCount = 0,
47009
50210
  pasteValuesRowCount = 0;
47010
50211
  item.getType("text/plain").then(blob => {
47011
- blob.text().then(pastedData => {
50212
+ blob.text().then(pastedData => __awaiter$1(this, void 0, void 0, function* () {
47012
50213
  var _a;
47013
50214
  const rows = pastedData.replace(/\r(?!\n)/g, "\r\n").split("\r\n");
47014
50215
  let values = [];
@@ -47020,14 +50221,14 @@
47020
50221
  cell.includes("\n") && (cell = cell.replace(/^"(.*)"$/, "$1").replace(/["]*/g, match => new Array(Math.floor(match.length / 2)).fill('"').join(""))), rowValues.push(cell);
47021
50222
  }), pasteValuesColCount = Math.max(pasteValuesColCount, null !== (_a = null == rowValues ? void 0 : rowValues.length) && void 0 !== _a ? _a : 0);
47022
50223
  }), pasteValuesRowCount = null !== (_a = values.length) && void 0 !== _a ? _a : 0, values = handlePasteValues(values, pasteValuesRowCount, pasteValuesColCount, maxRow - row + 1, maxCol - col + 1);
47023
- const changedCellResults = table.changeCellValues(col, row, values, !0);
50224
+ const changedCellResults = yield table.changeCellValues(col, row, values, !0);
47024
50225
  table.hasListeners(TABLE_EVENT_TYPE.PASTED_DATA) && table.fireListeners(TABLE_EVENT_TYPE.PASTED_DATA, {
47025
50226
  col: col,
47026
50227
  row: row,
47027
50228
  pasteData: values,
47028
50229
  changedCellResults: changedCellResults
47029
50230
  });
47030
- });
50231
+ }));
47031
50232
  });
47032
50233
  }
47033
50234
  function handlePasteValues(values, rowCount, colCount, selectedRowCount, selectedColCount) {
@@ -49226,6 +52427,14 @@
49226
52427
  const children = cloneDeep$1(this.tree.children);
49227
52428
  return clearNode(children), children;
49228
52429
  }
52430
+ setAllNodesState(state) {
52431
+ this._updateNodeHierarchyState(this.tree, state);
52432
+ }
52433
+ _updateNodeHierarchyState(node, hierarchyState) {
52434
+ node.children && node.children.length > 0 && node.children[0].dimensionKey ? (-1 !== node.level && (node.hierarchyState = hierarchyState), node.children.forEach(child => {
52435
+ this._updateNodeHierarchyState(child, hierarchyState);
52436
+ })) : node.hierarchyState = HierarchyState.none;
52437
+ }
49229
52438
  }
49230
52439
  function clearNode(children) {
49231
52440
  for (let i = 0; i < children.length; i++) {
@@ -50407,7 +53616,7 @@
50407
53616
  }
50408
53617
  constructor(container, options = {}) {
50409
53618
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
50410
- if (super(), this.showFrozenIcon = !0, this.version = "1.19.2", this.id = `VTable${Date.now()}`, this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = throttle2(this.render.bind(this), 200), "node" === Env.mode ? (options = container, container = null) : container instanceof HTMLElement || (options = container, container = container.container ? container.container : null), !container && "node" !== options.mode && !options.canvas) throw new Error("vtable's container is undefined");
53619
+ if (super(), this.showFrozenIcon = !0, this.version = "1.19.3-alpha.0", this.id = `VTable${Date.now()}`, this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = throttle2(this.render.bind(this), 200), "node" === Env.mode ? (options = container, container = null) : container instanceof HTMLElement || (options = container, container = container.container ? container.container : null), !container && "node" !== options.mode && !options.canvas) throw new Error("vtable's container is undefined");
50411
53620
  this.pluginManager = new PluginManager(this, options), this.fireListeners(TABLE_EVENT_TYPE.BEFORE_INIT, {
50412
53621
  options: options,
50413
53622
  container: container
@@ -54690,6 +57899,31 @@
54690
57899
  return {};
54691
57900
  }
54692
57901
 
57902
+ var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
57903
+ return new (P || (P = Promise))(function (resolve, reject) {
57904
+ function fulfilled(value) {
57905
+ try {
57906
+ step(generator.next(value));
57907
+ } catch (e) {
57908
+ reject(e);
57909
+ }
57910
+ }
57911
+ function rejected(value) {
57912
+ try {
57913
+ step(generator.throw(value));
57914
+ } catch (e) {
57915
+ reject(e);
57916
+ }
57917
+ }
57918
+ function step(result) {
57919
+ var value;
57920
+ result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P(function (resolve) {
57921
+ resolve(value);
57922
+ })).then(fulfilled, rejected);
57923
+ }
57924
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
57925
+ });
57926
+ };
54693
57927
  function listTableChangeCellValue(col, row, value, workOnEditableCell, triggerEvent, table) {
54694
57928
  if (workOnEditableCell && table.isHasEditorDefine(col, row) || !1 === workOnEditableCell) {
54695
57929
  const recordIndex = table.getRecordShowIndexByCell(col, row),
@@ -54732,92 +57966,100 @@
54732
57966
  }
54733
57967
  function listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, triggerEvent, table) {
54734
57968
  var _a, _b;
54735
- const changedCellResults = [];
54736
- let pasteColEnd = startCol,
54737
- pasteRowEnd = startRow;
54738
- const beforeChangeValues = [],
54739
- oldValues = [];
54740
- let cellUpdateType;
54741
- for (let i = 0; i < values.length && !(startRow + i > table.rowCount - 1); i++) {
54742
- const rowValues = values[i],
54743
- rawRowValues = [],
54744
- oldRowValues = [];
54745
- beforeChangeValues.push(rawRowValues), oldValues.push(oldRowValues);
54746
- for (let j = 0; j < rowValues.length && !(startCol + j > table.colCount - 1); j++) {
54747
- cellUpdateType = getCellUpdateType(startCol + j, startRow + i, table, cellUpdateType);
54748
- const beforeChangeValue = table.getCellRawValue(startCol + j, startRow + i);
54749
- rawRowValues.push(beforeChangeValue);
54750
- const oldValue = table.getCellOriginValue(startCol + j, startRow + i);
54751
- oldRowValues.push(oldValue);
54752
- }
54753
- }
54754
- for (let i = 0; i < values.length && !(startRow + i > table.rowCount - 1); i++) {
54755
- changedCellResults[i] = [], pasteRowEnd = startRow + i;
54756
- const rowValues = values[i];
54757
- let thisRowPasteColEnd = startCol;
54758
- for (let j = 0; j < rowValues.length && !(startCol + j > table.colCount - 1); j++) {
54759
- thisRowPasteColEnd = startCol + j;
54760
- let isCanChange = !1;
54761
- if (!1 === workOnEditableCell) isCanChange = !0;else if (table.isHasEditorDefine(startCol + j, startRow + i)) {
54762
- const editor = table.getEditor(startCol + j, startRow + i),
54763
- oldValue = oldValues[i][j],
54764
- value = rowValues[j],
54765
- maybePromiseOrValue = null === (_b = null === (_a = null == editor ? void 0 : editor.validateValue) || void 0 === _a ? void 0 : _a.call(editor, value, oldValue)) || void 0 === _b || _b;
54766
- isCanChange = !!isPromise(maybePromiseOrValue) || !0 === maybePromiseOrValue || "validate-exit" === maybePromiseOrValue || "invalidate-exit" === maybePromiseOrValue;
54767
- }
54768
- if (isCanChange) {
54769
- changedCellResults[i][j] = !0;
54770
- const value = rowValues[j],
54771
- recordIndex = table.getRecordShowIndexByCell(startCol + j, startRow + i),
54772
- {
54773
- field: field
54774
- } = table.internalProps.layoutMap.getBody(startCol + j, startRow + i),
54775
- beforeChangeValue = beforeChangeValues[i][j],
54776
- oldValue = oldValues[i][j];
54777
- table.isHeader(startCol + j, startRow + i) ? table.internalProps.layoutMap.updateColumnTitle(startCol + j, startRow + i, value) : table.dataSource.changeFieldValue(value, recordIndex, field, startCol + j, startRow + i, table);
54778
- const changedValue = table.getCellOriginValue(startCol + j, startRow + i);
54779
- oldValue !== changedValue && triggerEvent && table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
54780
- col: startCol + j,
54781
- row: startRow + i,
54782
- rawValue: beforeChangeValue,
54783
- currentValue: oldValue,
54784
- changedValue: changedValue
54785
- });
54786
- } else changedCellResults[i][j] = !1;
57969
+ return __awaiter(this, void 0, void 0, function* () {
57970
+ const changedCellResults = [];
57971
+ let pasteColEnd = startCol,
57972
+ pasteRowEnd = startRow;
57973
+ const beforeChangeValues = [],
57974
+ oldValues = [];
57975
+ let cellUpdateType;
57976
+ for (let i = 0; i < values.length && !(startRow + i > table.rowCount - 1); i++) {
57977
+ const rowValues = values[i],
57978
+ rawRowValues = [],
57979
+ oldRowValues = [];
57980
+ beforeChangeValues.push(rawRowValues), oldValues.push(oldRowValues);
57981
+ for (let j = 0; j < rowValues.length && !(startCol + j > table.colCount - 1); j++) {
57982
+ cellUpdateType = getCellUpdateType(startCol + j, startRow + i, table, cellUpdateType);
57983
+ const beforeChangeValue = table.getCellRawValue(startCol + j, startRow + i);
57984
+ rawRowValues.push(beforeChangeValue);
57985
+ const oldValue = table.getCellOriginValue(startCol + j, startRow + i);
57986
+ oldRowValues.push(oldValue);
57987
+ }
57988
+ }
57989
+ for (let i = 0; i < values.length && !(startRow + i > table.rowCount - 1); i++) {
57990
+ changedCellResults[i] = [], pasteRowEnd = startRow + i;
57991
+ const rowValues = values[i];
57992
+ let thisRowPasteColEnd = startCol;
57993
+ for (let j = 0; j < rowValues.length && !(startCol + j > table.colCount - 1); j++) {
57994
+ thisRowPasteColEnd = startCol + j;
57995
+ let isCanChange = !1;
57996
+ if (!1 === workOnEditableCell) isCanChange = !0;else if (table.isHasEditorDefine(startCol + j, startRow + i)) {
57997
+ const editor = table.getEditor(startCol + j, startRow + i),
57998
+ oldValue = oldValues[i][j],
57999
+ value = rowValues[j],
58000
+ maybePromiseOrValue = null === (_b = null === (_a = null == editor ? void 0 : editor.validateValue) || void 0 === _a ? void 0 : _a.call(editor, value, oldValue, {
58001
+ col: startCol + j,
58002
+ row: startRow + i
58003
+ }, table)) || void 0 === _b || _b;
58004
+ if (isPromise(maybePromiseOrValue)) {
58005
+ const validateResult = yield maybePromiseOrValue;
58006
+ isCanChange = !0 === validateResult || "validate-exit" === validateResult || "validate-not-exit" === validateResult;
58007
+ } else isCanChange = !0 === maybePromiseOrValue || "validate-exit" === maybePromiseOrValue || "validate-not-exit" === maybePromiseOrValue;
58008
+ }
58009
+ if (isCanChange) {
58010
+ changedCellResults[i][j] = !0;
58011
+ const value = rowValues[j],
58012
+ recordIndex = table.getRecordShowIndexByCell(startCol + j, startRow + i),
58013
+ {
58014
+ field: field
58015
+ } = table.internalProps.layoutMap.getBody(startCol + j, startRow + i),
58016
+ beforeChangeValue = beforeChangeValues[i][j],
58017
+ oldValue = oldValues[i][j];
58018
+ table.isHeader(startCol + j, startRow + i) ? table.internalProps.layoutMap.updateColumnTitle(startCol + j, startRow + i, value) : table.dataSource.changeFieldValue(value, recordIndex, field, startCol + j, startRow + i, table);
58019
+ const changedValue = table.getCellOriginValue(startCol + j, startRow + i);
58020
+ oldValue !== changedValue && triggerEvent && table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
58021
+ col: startCol + j,
58022
+ row: startRow + i,
58023
+ rawValue: beforeChangeValue,
58024
+ currentValue: oldValue,
58025
+ changedValue: changedValue
58026
+ });
58027
+ } else changedCellResults[i][j] = !1;
58028
+ }
58029
+ pasteColEnd = Math.max(pasteColEnd, thisRowPasteColEnd);
54787
58030
  }
54788
- pasteColEnd = Math.max(pasteColEnd, thisRowPasteColEnd);
54789
- }
54790
- const startRange = table.getCellRange(startCol, startRow),
54791
- range = table.getCellRange(pasteColEnd, pasteRowEnd),
54792
- aggregators = table.internalProps.layoutMap.getAggregatorsByCellRange(startRange.start.col, startRange.start.row, range.end.col, range.end.row);
54793
- if (aggregators) {
54794
- for (let i = 0; i < (null == aggregators ? void 0 : aggregators.length); i++) aggregators[i].recalculate();
54795
- if ("normal" === cellUpdateType) {
54796
- const aggregatorCells = table.internalProps.layoutMap.getAggregatorCellAddress(startRange.start.col, startRange.start.row, range.end.col, range.end.row);
54797
- for (let i = 0; i < aggregatorCells.length; i++) {
54798
- const range = table.getCellRange(aggregatorCells[i].col, aggregatorCells[i].row);
54799
- for (let sCol = range.start.col; sCol <= range.end.col; sCol++) for (let sRow = range.start.row; sRow <= range.end.row; sRow++) table.scenegraph.updateCellContent(sCol, sRow);
58031
+ const startRange = table.getCellRange(startCol, startRow),
58032
+ range = table.getCellRange(pasteColEnd, pasteRowEnd),
58033
+ aggregators = table.internalProps.layoutMap.getAggregatorsByCellRange(startRange.start.col, startRange.start.row, range.end.col, range.end.row);
58034
+ if (aggregators) {
58035
+ for (let i = 0; i < (null == aggregators ? void 0 : aggregators.length); i++) aggregators[i].recalculate();
58036
+ if ("normal" === cellUpdateType) {
58037
+ const aggregatorCells = table.internalProps.layoutMap.getAggregatorCellAddress(startRange.start.col, startRange.start.row, range.end.col, range.end.row);
58038
+ for (let i = 0; i < aggregatorCells.length; i++) {
58039
+ const range = table.getCellRange(aggregatorCells[i].col, aggregatorCells[i].row);
58040
+ for (let sCol = range.start.col; sCol <= range.end.col; sCol++) for (let sRow = range.start.row; sRow <= range.end.row; sRow++) table.scenegraph.updateCellContent(sCol, sRow);
58041
+ }
54800
58042
  }
54801
58043
  }
54802
- }
54803
- if ("group" === cellUpdateType && table.dataSource.updateRecordsForGroup([], []), "sort" === cellUpdateType || "group" === cellUpdateType) return table.dataSource.sortedIndexMap.clear(), sortRecords(table), table.refreshRowColCount(), table.internalProps.layoutMap.clearCellRangeMap(), table.scenegraph.clearCells(), table.scenegraph.createSceneGraph(), changedCellResults;
54804
- for (let sCol = startRange.start.col; sCol <= range.end.col; sCol++) for (let sRow = startRange.start.row; sRow <= range.end.row; sRow++) table.scenegraph.updateCellContent(sCol, sRow);
54805
- if ("adaptive" === table.widthMode || table.autoFillWidth && table.getAllColsWidth() <= table.tableNoFrameWidth) 0 === table.internalProps._widthResizedColMap.size && table.scenegraph.recalculateColWidths();else for (let sCol = startCol; sCol <= range.end.col; sCol++) if (!table.internalProps._widthResizedColMap.has(sCol)) {
54806
- const oldWidth = table.getColWidth(sCol),
54807
- newWidth = computeColWidth(sCol, 0, table.rowCount - 1, table, !1);
54808
- newWidth !== oldWidth && table.scenegraph.updateColWidth(sCol, newWidth - oldWidth);
54809
- }
54810
- if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) table.scenegraph.recalculateRowHeights();else if (table.isAutoRowHeight(startRow)) {
54811
- const rows = [],
54812
- deltaYs = [];
54813
- for (let sRow = startRow; sRow <= range.end.row; sRow++) if (table.rowHeightsMap.get(sRow)) {
54814
- const oldHeight = table.getRowHeight(sRow),
54815
- newHeight = computeRowHeight(sRow, 0, table.colCount - 1, table);
54816
- rows.push(sRow), deltaYs.push(newHeight - oldHeight);
58044
+ if ("group" === cellUpdateType && table.dataSource.updateRecordsForGroup([], []), "sort" === cellUpdateType || "group" === cellUpdateType) return table.dataSource.sortedIndexMap.clear(), sortRecords(table), table.refreshRowColCount(), table.internalProps.layoutMap.clearCellRangeMap(), table.scenegraph.clearCells(), table.scenegraph.createSceneGraph(), changedCellResults;
58045
+ for (let sCol = startRange.start.col; sCol <= range.end.col; sCol++) for (let sRow = startRange.start.row; sRow <= range.end.row; sRow++) table.scenegraph.updateCellContent(sCol, sRow);
58046
+ if ("adaptive" === table.widthMode || table.autoFillWidth && table.getAllColsWidth() <= table.tableNoFrameWidth) 0 === table.internalProps._widthResizedColMap.size && table.scenegraph.recalculateColWidths();else for (let sCol = startCol; sCol <= range.end.col; sCol++) if (!table.internalProps._widthResizedColMap.has(sCol)) {
58047
+ const oldWidth = table.getColWidth(sCol),
58048
+ newWidth = computeColWidth(sCol, 0, table.rowCount - 1, table, !1);
58049
+ newWidth !== oldWidth && table.scenegraph.updateColWidth(sCol, newWidth - oldWidth);
54817
58050
  }
54818
- table.scenegraph.updateRowsHeight(rows, deltaYs);
54819
- }
54820
- return table.scenegraph.updateNextFrame(), changedCellResults;
58051
+ if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) table.scenegraph.recalculateRowHeights();else if (table.isAutoRowHeight(startRow)) {
58052
+ const rows = [],
58053
+ deltaYs = [];
58054
+ for (let sRow = startRow; sRow <= range.end.row; sRow++) if (table.rowHeightsMap.get(sRow)) {
58055
+ const oldHeight = table.getRowHeight(sRow),
58056
+ newHeight = computeRowHeight(sRow, 0, table.colCount - 1, table);
58057
+ rows.push(sRow), deltaYs.push(newHeight - oldHeight);
58058
+ }
58059
+ table.scenegraph.updateRowsHeight(rows, deltaYs);
58060
+ }
58061
+ return table.scenegraph.updateNextFrame(), changedCellResults;
58062
+ });
54821
58063
  }
54822
58064
  function getCellUpdateType(col, row, table, oldCellUpdateType) {
54823
58065
  if ("group" === oldCellUpdateType) return oldCellUpdateType;
@@ -55230,6 +58472,15 @@
55230
58472
  };
55231
58473
  this.internalProps.columns = cloneDeepSpec(columns, ["children"]), generateAggregationForColumn(this), (null == options ? void 0 : options.clearColWidthCache) && this.internalProps._widthResizedColMap.clear(), this.options.columns = columns, this.internalProps.headerHelper.setTableColumnsEditor(), this._hasAutoImageColumn = void 0, this.refreshHeader(), null === (_b = (_a = this.dataSource).updateColumns) || void 0 === _b || _b.call(_a, this.internalProps.columns), this.records && checkHasAggregationOnColumnDefine(this.internalProps.columns) && this.dataSource.processRecords(null !== (_d = null === (_c = this.dataSource.dataSourceObj) || void 0 === _c ? void 0 : _c.records) && void 0 !== _d ? _d : this.dataSource.dataSourceObj), this.internalProps.useOneRowHeightFillAll = !1, this.headerStyleCache = new Map(), this.bodyStyleCache = new Map(), this.bodyBottomStyleCache = new Map(), this.scenegraph.createSceneGraph(), this.stateManager.updateHoverPos(oldHoverState.col, oldHoverState.row), this.renderAsync(), this.eventManager.updateEventBinder();
55232
58474
  }
58475
+ _recreateSceneForStateChange() {
58476
+ var _a, _b;
58477
+ this.scenegraph.clearCells();
58478
+ const oldHoverState = {
58479
+ col: this.stateManager.hover.cellPos.col,
58480
+ row: this.stateManager.hover.cellPos.row
58481
+ };
58482
+ this._hasAutoImageColumn = void 0, this.refreshHeader(), this.records && checkHasAggregationOnColumnDefine(this.internalProps.columns) && this.dataSource.processRecords(null !== (_b = null === (_a = this.dataSource.dataSourceObj) || void 0 === _a ? void 0 : _a.records) && void 0 !== _b ? _b : this.dataSource.dataSourceObj), this.internalProps.useOneRowHeightFillAll = !1, this.headerStyleCache = new Map(), this.bodyStyleCache = new Map(), this.bodyBottomStyleCache = new Map(), this.scenegraph.createSceneGraph(), this.stateManager.updateHoverPos(oldHoverState.col, oldHoverState.row), this.renderAsync(), this.eventManager.updateEventBinder();
58483
+ }
55233
58484
  addColumn(column) {
55234
58485
  const columns = this.options.columns;
55235
58486
  columns.push(column), this.updateColumns(columns);
@@ -55835,6 +59086,30 @@
55835
59086
  release() {
55836
59087
  this.editorManager.release(), super.release();
55837
59088
  }
59089
+ expandAllTreeNode() {
59090
+ if (!this._hasHierarchyTreeHeader()) return;
59091
+ let stateChanged = !1;
59092
+ this.dataSource && "function" == typeof this.dataSource.expandAllNodes && (this.dataSource.expandAllNodes(), stateChanged = !0), stateChanged && (this._recreateSceneForStateChange(), this.fireListeners(TABLE_EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE, {
59093
+ col: -1,
59094
+ row: -1,
59095
+ hierarchyState: HierarchyState.expand,
59096
+ originData: {
59097
+ children: this.records
59098
+ }
59099
+ }));
59100
+ }
59101
+ collapseAllTreeNode() {
59102
+ if (!this._hasHierarchyTreeHeader()) return;
59103
+ let stateChanged = !1;
59104
+ this.dataSource && "function" == typeof this.dataSource.collapseAllNodes && (this.dataSource.collapseAllNodes(), stateChanged = !0), stateChanged && (this._recreateSceneForStateChange(), this.fireListeners(TABLE_EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE, {
59105
+ col: -1,
59106
+ row: -1,
59107
+ hierarchyState: HierarchyState.collapse,
59108
+ originData: {
59109
+ children: this.records
59110
+ }
59111
+ }));
59112
+ }
55838
59113
  }
55839
59114
 
55840
59115
  function isXAxis(orient) {
@@ -58649,6 +61924,9 @@
58649
61924
  const registerTooltip = () => {
58650
61925
  Factory.registerComponent("tooltipHandler", TooltipHandler);
58651
61926
  };
61927
+ const registerAnimation = () => {
61928
+ registerCustomAnimate(), registerAnimate();
61929
+ };
58652
61930
 
58653
61931
  class ListTreeStickCellPlugin {
58654
61932
  constructor(table) {
@@ -60536,7 +63814,7 @@
60536
63814
  Factory.registerFunction("createVideoCellGroup", createVideoCellGroup);
60537
63815
  };
60538
63816
 
60539
- registerAxis(), registerEmptyTip(), registerLegend(), registerMenu(), registerTitle(), registerTooltip(), registerListTreeStickCellPlugin(), registerCustomCellStylePlugin(), registerChartCell(), registerCheckboxCell(), registerImageCell(), registerProgressBarCell(), registerRadioCell(), registerSwitchCell(), registerButtonCell(), registerSparkLineCell(), registerTextCell(), registerVideoCell();
63817
+ registerAxis(), registerEmptyTip(), registerLegend(), registerMenu(), registerTitle(), registerTooltip(), registerListTreeStickCellPlugin(), registerCustomCellStylePlugin(), registerAnimation(), registerChartCell(), registerCheckboxCell(), registerImageCell(), registerProgressBarCell(), registerRadioCell(), registerSwitchCell(), registerButtonCell(), registerSparkLineCell(), registerTextCell(), registerVideoCell();
60540
63818
  class ListTableAll extends ListTable {}
60541
63819
 
60542
63820
  registerForVrender();