@leafer-game/miniapp 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6007,7 +6007,7 @@ class LeafLevelList {
6007
6007
  }
6008
6008
  }
6009
6009
 
6010
- const version = "1.3.0";
6010
+ const version = "1.3.2";
6011
6011
 
6012
6012
  class LeaferCanvas extends LeaferCanvasBase {
6013
6013
  get allowBackgroundColor() { return false; }
@@ -6678,7 +6678,7 @@ class Renderer {
6678
6678
  partRender() {
6679
6679
  const { canvas, updateBlocks: list } = this;
6680
6680
  if (!list)
6681
- return debug$3.warn('PartRender: need update attr');
6681
+ return;
6682
6682
  this.mergeBlocks();
6683
6683
  list.forEach(block => { if (canvas.bounds.hit(block) && !block.isEmpty())
6684
6684
  this.clipRender(block); });
@@ -7534,7 +7534,7 @@ let UI = UI_1 = class UI extends Leaf {
7534
7534
  animate(_keyframe, _options, _type, _isTemp) {
7535
7535
  return Plugin.need('animate');
7536
7536
  }
7537
- killAnimate(_type, _killStyle) { }
7537
+ killAnimate(_type, _nextStyle) { }
7538
7538
  export(_filename, _options) {
7539
7539
  return Plugin.need('export');
7540
7540
  }
@@ -8030,8 +8030,6 @@ let Leafer = Leafer_1 = class Leafer extends Group {
8030
8030
  this.created = true;
8031
8031
  }
8032
8032
  __onReady() {
8033
- if (this.ready)
8034
- return;
8035
8033
  this.ready = true;
8036
8034
  this.emitLeafer(LeaferEvent.BEFORE_READY);
8037
8035
  this.emitLeafer(LeaferEvent.READY);
@@ -8045,6 +8043,20 @@ let Leafer = Leafer_1 = class Leafer extends Group {
8045
8043
  this.emitLeafer(LeaferEvent.VIEW_READY);
8046
8044
  WaitHelper.run(this.__viewReadyWait);
8047
8045
  }
8046
+ __onLayoutEnd() {
8047
+ const { grow, growWidth, growHeight } = this.config;
8048
+ if (grow) {
8049
+ let { width, height, pixelRatio } = this;
8050
+ const bounds = grow === 'box' ? this.worldBoxBounds : this.__world;
8051
+ if (growWidth !== false)
8052
+ width = Math.max(1, bounds.x + bounds.width);
8053
+ if (growHeight !== false)
8054
+ height = Math.max(1, bounds.y + bounds.height);
8055
+ this.__doResize({ width, height, pixelRatio });
8056
+ }
8057
+ if (!this.ready)
8058
+ this.__onReady();
8059
+ }
8048
8060
  __onNextRender() {
8049
8061
  if (this.viewReady) {
8050
8062
  WaitHelper.run(this.__nextRenderWait);
@@ -8138,10 +8150,9 @@ let Leafer = Leafer_1 = class Leafer extends Group {
8138
8150
  const runId = Run.start('FirstCreate ' + this.innerName);
8139
8151
  this.once(LeaferEvent.START, () => Run.end(runId));
8140
8152
  this.once(LayoutEvent.START, () => this.updateLazyBounds());
8141
- this.once(LayoutEvent.END, () => this.__onReady());
8142
8153
  this.once(RenderEvent.START, () => this.__onCreated());
8143
8154
  this.once(RenderEvent.END, () => this.__onViewReady());
8144
- this.__eventIds.push(this.on_(WatchEvent.DATA, this.__onWatchData, this), this.on_(RenderEvent.NEXT, this.__onNextRender, this));
8155
+ this.__eventIds.push(this.on_(WatchEvent.DATA, this.__onWatchData, this), this.on_(LayoutEvent.END, this.__onLayoutEnd, this), this.on_(RenderEvent.NEXT, this.__onNextRender, this));
8145
8156
  }
8146
8157
  __removeListenEvents() {
8147
8158
  this.off_(this.__eventIds);
@@ -11493,7 +11504,7 @@ function layoutChar(drawData, style, width, _height) {
11493
11504
  rows.forEach(row => {
11494
11505
  if (row.words) {
11495
11506
  indentWidth = paraIndent && row.paraStart ? paraIndent : 0;
11496
- addWordWidth = (width && textAlign === 'justify' && row.words.length > 1) ? (width - row.width - indentWidth) / (row.words.length - 1) : 0;
11507
+ addWordWidth = (width && (textAlign === 'justify' || textAlign === 'both') && row.words.length > 1) ? (width - row.width - indentWidth) / (row.words.length - 1) : 0;
11497
11508
  mode = (letterSpacing || row.isOverflow) ? CharMode : (addWordWidth > 0.01 ? WordMode : TextMode);
11498
11509
  if (row.isOverflow && !letterSpacing)
11499
11510
  row.textMode = true;
@@ -11515,7 +11526,7 @@ function layoutChar(drawData, style, width, _height) {
11515
11526
  else {
11516
11527
  charX = toChar(word.data, charX, row.data, row.isOverflow);
11517
11528
  }
11518
- if (!row.paraEnd && addWordWidth) {
11529
+ if (addWordWidth && (!row.paraEnd || textAlign === 'both')) {
11519
11530
  charX += addWordWidth;
11520
11531
  row.width += addWordWidth;
11521
11532
  }
@@ -11997,7 +12008,9 @@ function updateStyle(leaf, style, type) {
11997
12008
  type = null;
11998
12009
  let transition = type ? getTransition(type, style, leaf) : false;
11999
12010
  const fromStyle = transition ? getFromStyle(leaf, style) : undefined;
12000
- leaf.killAnimate('transition');
12011
+ const nextStyle = State.canAnimate && getStyle(leaf);
12012
+ if (nextStyle)
12013
+ leaf.killAnimate('transition');
12001
12014
  if (normalStyle)
12002
12015
  leaf.set(normalStyle, 'temp');
12003
12016
  const statesStyle = getStyle(leaf);
@@ -12370,8 +12383,11 @@ function animationType(defaultValue) {
12370
12383
  return decorateLeafAttr(defaultValue, (key) => attr({
12371
12384
  set(value) {
12372
12385
  this.__setAttr(key, value);
12373
- if (this.leafer)
12374
- value ? this.animate(value, undefined, 'animation') : this.killAnimate('animation');
12386
+ if (this.leafer) {
12387
+ this.killAnimate('animation');
12388
+ if (value)
12389
+ this.animate(value, undefined, 'animation');
12390
+ }
12375
12391
  }
12376
12392
  }));
12377
12393
  }
@@ -12408,6 +12424,7 @@ let Animate = class Animate extends Eventer {
12408
12424
  get completed() { return this.time >= this.duration && !this.started; }
12409
12425
  get frame() { return this.frames[this.nowIndex]; }
12410
12426
  get frameTotalTime() { return this.frame.totalTime || this.frame.duration || 0; }
12427
+ get nowReverse() { return (this.mainReverse ? 1 : 0) + (this.frameReverse ? 1 : 0) === 1; }
12411
12428
  get realEnding() {
12412
12429
  let count;
12413
12430
  const { ending, reverse, loop } = this;
@@ -12424,6 +12441,12 @@ let Animate = class Animate extends Eventer {
12424
12441
  }
12425
12442
  constructor(target, keyframe, options, isTemp) {
12426
12443
  super();
12444
+ if (keyframe) {
12445
+ if (keyframe.keyframes)
12446
+ options = keyframe, keyframe = keyframe.keyframes;
12447
+ else if (keyframe.style)
12448
+ options = keyframe, keyframe = keyframe.style;
12449
+ }
12427
12450
  this.init(target, keyframe, options, isTemp);
12428
12451
  }
12429
12452
  init(target, keyframe, options, isTemp) {
@@ -12439,16 +12462,14 @@ let Animate = class Animate extends Eventer {
12439
12462
  break;
12440
12463
  case 'object': this.config = options, options.event && (this.event = options.event);
12441
12464
  }
12442
- if (!keyframe)
12443
- return;
12444
- this.keyframes = keyframe instanceof Array ? keyframe : [keyframe];
12465
+ this.keyframes = keyframe instanceof Array ? keyframe : (keyframe ? [keyframe] : []);
12445
12466
  const { easing, attrs } = this;
12446
12467
  this.easingFn = AnimateEasing.get(easing);
12447
12468
  if (attrs || this.attrsMap)
12448
12469
  this.attrsMap = attrs ? attrs.reduce((map, value) => { map[value] = true; return map; }, {}) : undefined;
12449
12470
  this.frames = [];
12450
12471
  this.create();
12451
- if (this.autoplay)
12472
+ if (this.autoplay && this.frames.length)
12452
12473
  this.timer = setTimeout(() => {
12453
12474
  this.timer = 0;
12454
12475
  this.play();
@@ -12497,7 +12518,7 @@ let Animate = class Animate extends Eventer {
12497
12518
  }
12498
12519
  create() {
12499
12520
  const { target, frames, keyframes, config } = this, { length } = keyframes, joinBefore = length > 1 ? this.join : true;
12500
- let addedDuration = 0, totalAutoDuration = 0, before, keyframe, item, style;
12521
+ let totalTime = 0, totalAutoTime = 0, before, keyframe, item, style, times;
12501
12522
  if (length > 1)
12502
12523
  this.fromStyle = {}, this.toStyle = {};
12503
12524
  for (let i = 0; i < length; i++) {
@@ -12506,27 +12527,32 @@ let Animate = class Animate extends Eventer {
12506
12527
  if (!before)
12507
12528
  before = joinBefore ? target : style;
12508
12529
  item = { style, beforeStyle: {} };
12530
+ times = 1;
12509
12531
  if (keyframe.style) {
12510
- const { duration, autoDuration, delay, autoDelay, easing } = keyframe;
12532
+ const { duration, autoDuration, delay, autoDelay, easing, swing, loop } = keyframe;
12533
+ if (swing)
12534
+ item.swing = typeof swing === 'number' ? swing : 2, times = item.swing * 2 - 1;
12535
+ if (loop)
12536
+ item.loop = times = typeof loop === 'number' ? loop : 2;
12511
12537
  if (duration) {
12512
- item.duration = duration, addedDuration += duration;
12538
+ item.duration = duration, totalTime += duration * times;
12513
12539
  if (delay)
12514
12540
  item.totalTime = duration + delay;
12515
12541
  }
12516
12542
  else {
12517
12543
  if (autoDuration)
12518
- item.autoDuration = autoDuration, totalAutoDuration += autoDuration;
12544
+ item.autoDuration = autoDuration, totalAutoTime += autoDuration * times;
12519
12545
  }
12520
12546
  if (delay)
12521
- item.delay = delay, addedDuration += delay;
12547
+ item.delay = delay, totalTime += delay * times;
12522
12548
  else if (autoDelay)
12523
- item.autoDelay = autoDelay, totalAutoDuration += autoDelay;
12549
+ item.autoDelay = autoDelay, totalAutoTime += autoDelay * times;
12524
12550
  if (easing)
12525
12551
  item.easingFn = AnimateEasing.get(easing);
12526
12552
  }
12527
12553
  if (!item.autoDuration && item.duration === undefined) {
12528
12554
  if (length > 1)
12529
- (i > 0 || joinBefore) ? totalAutoDuration++ : item.duration = 0;
12555
+ (i > 0 || joinBefore) ? totalAutoTime += times : item.duration = 0;
12530
12556
  else
12531
12557
  item.duration = this.duration;
12532
12558
  }
@@ -12542,14 +12568,14 @@ let Animate = class Animate extends Eventer {
12542
12568
  before = style;
12543
12569
  frames.push(item);
12544
12570
  }
12545
- if (totalAutoDuration) {
12546
- if (this.duration <= addedDuration || !(config && config.duration))
12547
- this.changeDuration(addedDuration + frameDuration * totalAutoDuration);
12548
- this.allocateTime((this.duration - addedDuration) / totalAutoDuration);
12571
+ if (totalAutoTime) {
12572
+ if (this.duration <= totalTime || !(config && config.duration))
12573
+ this.changeDuration(totalTime + frameDuration * totalAutoTime);
12574
+ this.allocateTime((this.duration - totalTime) / totalAutoTime);
12549
12575
  }
12550
12576
  else {
12551
- if (addedDuration)
12552
- this.changeDuration(addedDuration);
12577
+ if (totalTime)
12578
+ this.changeDuration(totalTime);
12553
12579
  }
12554
12580
  this.emit(AnimateEvent.CREATED, this);
12555
12581
  }
@@ -12576,7 +12602,7 @@ let Animate = class Animate extends Eventer {
12576
12602
  if (frame.autoDelay)
12577
12603
  frame.delay = frame.autoDelay * partTime;
12578
12604
  if (frame.delay)
12579
- frame.totalTime = frame.duration, frame.totalTime += frame.delay;
12605
+ frame.totalTime = frame.duration + frame.delay;
12580
12606
  }
12581
12607
  }
12582
12608
  }
@@ -12594,7 +12620,7 @@ let Animate = class Animate extends Eventer {
12594
12620
  if (realTime < duration) {
12595
12621
  while (realTime - this.playedTotalTime > this.frameTotalTime) {
12596
12622
  this.transition(1);
12597
- this.nowReverse ? this.reverseNextFrame() : this.nextFrame();
12623
+ this.mainReverse ? this.reverseNextFrame() : this.nextFrame();
12598
12624
  }
12599
12625
  const itemDelay = this.nowReverse ? 0 : (this.frame.delay || 0);
12600
12626
  const itemPlayedTime = realTime - this.playedTotalTime - itemDelay;
@@ -12618,9 +12644,9 @@ let Animate = class Animate extends Eventer {
12618
12644
  const { loop, loopDelay, swing } = this;
12619
12645
  if (loop !== false || swing) {
12620
12646
  this.looped ? this.looped++ : this.looped = 1;
12621
- if (!(typeof loop === 'number' && (!loop || this.looped >= loop))) {
12647
+ if (this.needLoop(this.looped, loop, swing)) {
12622
12648
  if (swing)
12623
- this.nowReverse = !this.nowReverse;
12649
+ this.mainReverse = !this.mainReverse;
12624
12650
  if (loopDelay)
12625
12651
  this.timer = setTimeout(() => { this.timer = 0, this.begin(); }, loopDelay / this.speed * 1000);
12626
12652
  else
@@ -12635,8 +12661,8 @@ let Animate = class Animate extends Eventer {
12635
12661
  start(seek) {
12636
12662
  this.requestAnimateTime = 1;
12637
12663
  const { reverse } = this;
12638
- if (reverse || this.nowReverse)
12639
- this.nowReverse = reverse;
12664
+ if (reverse || this.mainReverse)
12665
+ this.mainReverse = reverse;
12640
12666
  if (this.looped)
12641
12667
  this.looped = 0;
12642
12668
  if (seek)
@@ -12654,12 +12680,12 @@ let Animate = class Animate extends Eventer {
12654
12680
  }
12655
12681
  begin(seek) {
12656
12682
  this.playedTotalTime = this.time = 0;
12657
- this.nowReverse ? this.setTo() : this.setFrom();
12683
+ this.mainReverse ? this.setTo() : this.setFrom();
12658
12684
  if (!seek)
12659
12685
  this.requestAnimate();
12660
12686
  }
12661
12687
  end() {
12662
- this.nowReverse ? this.setFrom() : this.setTo();
12688
+ this.mainReverse ? this.setFrom() : this.setTo();
12663
12689
  }
12664
12690
  complete() {
12665
12691
  this.requestAnimateTime = 0;
@@ -12682,15 +12708,19 @@ let Animate = class Animate extends Eventer {
12682
12708
  this.setStyle(this.toStyle);
12683
12709
  }
12684
12710
  nextFrame() {
12711
+ if (this.needLoopFrame())
12712
+ return this.increaseTime();
12685
12713
  if (this.nowIndex + 1 >= this.frames.length)
12686
12714
  return;
12687
- this.playedTotalTime += this.frameTotalTime;
12715
+ this.increaseTime();
12688
12716
  this.nowIndex++;
12689
12717
  }
12690
12718
  reverseNextFrame() {
12719
+ if (this.needLoopFrame())
12720
+ return this.increaseTime();
12691
12721
  if (this.nowIndex - 1 < 0)
12692
12722
  return;
12693
- this.playedTotalTime += this.frameTotalTime;
12723
+ this.increaseTime();
12694
12724
  this.nowIndex--;
12695
12725
  }
12696
12726
  transition(t) {
@@ -12726,6 +12756,27 @@ let Animate = class Animate extends Eventer {
12726
12756
  target.__ ? target.set(style, this.isTemp ? 'temp' : false) : Object.assign(target, style);
12727
12757
  }
12728
12758
  }
12759
+ increaseTime() {
12760
+ this.playedTotalTime += this.frameTotalTime;
12761
+ }
12762
+ needLoop(looped, loop, swing) {
12763
+ return !(this.needStopLoop(looped, loop) || this.needStopLoop(looped, swing, true));
12764
+ }
12765
+ needStopLoop(looped, times, swing) {
12766
+ return typeof times === 'number' && (!times || looped >= (swing ? times * 2 - 1 : times));
12767
+ }
12768
+ needLoopFrame() {
12769
+ const { loop, swing } = this.frame;
12770
+ if (loop || swing) {
12771
+ this.frameLooped ? this.frameLooped++ : this.frameLooped = 1;
12772
+ if (swing)
12773
+ this.frameReverse = !this.frameReverse;
12774
+ if (this.needLoop(this.frameLooped, loop, swing))
12775
+ return true;
12776
+ this.frameLooped = this.frameReverse = undefined;
12777
+ }
12778
+ return false;
12779
+ }
12729
12780
  clearTimer(fn) {
12730
12781
  if (this.timer) {
12731
12782
  clearTimeout(this.timer), this.timer = 0;
@@ -12785,6 +12836,64 @@ Animate = __decorate([
12785
12836
  useModule(LeafEventer)
12786
12837
  ], Animate);
12787
12838
 
12839
+ let AnimateList = class AnimateList extends Animate {
12840
+ get completed() { return this.list.every(item => item.completed); }
12841
+ get endingStyle() { return this._endingStyle; }
12842
+ constructor(target, animation, isTemp) {
12843
+ super(target, null);
12844
+ this.list = [];
12845
+ this.updateList(animation, isTemp);
12846
+ }
12847
+ updateList(animation, isTemp) {
12848
+ this.fromStyle = {};
12849
+ this.toStyle = {};
12850
+ this._endingStyle = {};
12851
+ if (!animation)
12852
+ animation = this.list.filter(item => {
12853
+ const { completed } = item;
12854
+ if (completed)
12855
+ item.destroy();
12856
+ return !completed;
12857
+ });
12858
+ this.list = animation.map(item => {
12859
+ const animate = item.target ? item : new Animate(this.target, item, isTemp);
12860
+ Object.assign(this.fromStyle, animate.fromStyle);
12861
+ Object.assign(this.toStyle, animate.toStyle);
12862
+ Object.assign(this._endingStyle, animate.endingStyle);
12863
+ return animate;
12864
+ });
12865
+ }
12866
+ play() {
12867
+ this.each(item => item.play());
12868
+ }
12869
+ pause() {
12870
+ this.each(item => item.pause());
12871
+ }
12872
+ stop() {
12873
+ this.each(item => item.stop());
12874
+ }
12875
+ seek(time) {
12876
+ this.each(item => item.seek(time));
12877
+ }
12878
+ kill(complete, killStyle) {
12879
+ this.each(item => item.kill(complete, killStyle));
12880
+ this.destroy();
12881
+ }
12882
+ each(func) {
12883
+ this.list.forEach(func);
12884
+ }
12885
+ destroy(complete) {
12886
+ const { list } = this;
12887
+ if (list.length) {
12888
+ this.each(item => item.destroy(complete));
12889
+ list.length = 0;
12890
+ }
12891
+ }
12892
+ };
12893
+ AnimateList = __decorate([
12894
+ useModule(LeafEventer)
12895
+ ], AnimateList);
12896
+
12788
12897
  const colorNames = {
12789
12898
  transparent: 'FFF0',
12790
12899
  aliceblue: 'F0F8FF',
@@ -13165,23 +13274,40 @@ dataType()(ui$2, 'transitionOut');
13165
13274
  ui$2.animate = function (keyframe, options, kill, isTemp) {
13166
13275
  if (keyframe === undefined)
13167
13276
  return this.__animate;
13168
- if (typeof keyframe === 'object') {
13169
- if (keyframe.keyframes)
13170
- options = keyframe, keyframe = keyframe.keyframes;
13171
- else if (keyframe.style)
13172
- options = keyframe, keyframe = keyframe.style;
13173
- }
13174
- const animate = new Animate(this, keyframe, options, isTemp);
13175
- this.killAnimate(kill, animate.toStyle);
13176
- return this.__animate = animate;
13277
+ const isAnimationList = keyframe instanceof Array && !options && kill;
13278
+ let nextAnimate = isAnimationList ? new AnimateList(this, keyframe, isTemp) : new Animate(this, keyframe, options, isTemp);
13279
+ this.killAnimate(kill, nextAnimate.toStyle);
13280
+ const animate = this.__animate;
13281
+ if (animate) {
13282
+ if (nextAnimate instanceof AnimateList)
13283
+ nextAnimate.list.unshift(animate);
13284
+ else
13285
+ nextAnimate = new AnimateList(this, [animate, nextAnimate]);
13286
+ }
13287
+ return this.__animate = nextAnimate;
13177
13288
  };
13178
- ui$2.killAnimate = function (_type, killStyle) {
13289
+ ui$2.killAnimate = function (_type, nextStyle) {
13179
13290
  const animate = this.__animate;
13180
- if (animate)
13181
- animate.kill(true, killStyle), this.__animate = null;
13291
+ if (animate) {
13292
+ let kill = false;
13293
+ if (nextStyle && !animate.completed) {
13294
+ if (animate instanceof AnimateList)
13295
+ animate.updateList();
13296
+ const { toStyle } = animate;
13297
+ for (let key in nextStyle)
13298
+ if (key in toStyle) {
13299
+ kill = true;
13300
+ break;
13301
+ }
13302
+ }
13303
+ else
13304
+ kill = true;
13305
+ if (kill)
13306
+ animate.kill(true, nextStyle), this.__animate = null;
13307
+ }
13182
13308
  };
13183
13309
  ui$2.__runAnimation = function (type, complete) {
13184
- this.animate(type === 'in' ? this.animation : this.animationOut);
13310
+ this.animate(type === 'in' ? this.animation : this.animationOut, undefined, 'animation');
13185
13311
  if (complete)
13186
13312
  this.__animate.on(AnimateEvent.COMPLETED, complete);
13187
13313
  };
@@ -13670,6 +13796,7 @@ ui.findOne = function (condition, options) {
13670
13796
  return getSelector(this).getBy(condition, this, true, options);
13671
13797
  };
13672
13798
 
13799
+ Plugin.add('find');
13673
13800
  Creator.finder = function (target) {
13674
13801
  return new Finder(target);
13675
13802
  };
@@ -13698,4 +13825,4 @@ if (platform === 'ios') {
13698
13825
  };
13699
13826
  }
13700
13827
 
13701
- export { AlignHelper, Animate, AnimateEasing, AnimateEvent, Answer, App, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragEvent, Dragger, DropEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Finder, Frame, FrameData, Group, GroupData, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, Interaction, InteractionBase, InteractionHelper, KeyEvent, Keyboard, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Robot, RobotData, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, ZoomEvent, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isNull, layoutProcessor, maskType, motionPathType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, stateStyleType, stateType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix, tempPoint$4 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };
13828
+ export { AlignHelper, Animate, AnimateEasing, AnimateEvent, AnimateList, Answer, App, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragEvent, Dragger, DropEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Finder, Frame, FrameData, Group, GroupData, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, Interaction, InteractionBase, InteractionHelper, KeyEvent, Keyboard, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Robot, RobotData, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, ZoomEvent, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isNull, layoutProcessor, maskType, motionPathType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, stateStyleType, stateType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix, tempPoint$4 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };