leafer-game 2.2.6 → 2.2.7

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.
@@ -4814,7 +4814,7 @@ const matrix$1 = {}, {round: round$3} = Math;
4814
4814
  const LeafHelper = {
4815
4815
  updateAllMatrix(leaf, checkAutoLayout, waitAutoLayout) {
4816
4816
  if (checkAutoLayout && leaf.__hasAutoLayout && leaf.__layout.matrixChanged) waitAutoLayout = true;
4817
- updateMatrix$3(leaf, checkAutoLayout, waitAutoLayout);
4817
+ updateMatrix$2(leaf, checkAutoLayout, waitAutoLayout);
4818
4818
  if (leaf.isBranch) {
4819
4819
  const {children: children} = leaf;
4820
4820
  for (let i = 0, len = children.length; i < len; i++) {
@@ -4835,9 +4835,10 @@ const LeafHelper = {
4835
4835
  if (layout.matrixChanged) leaf.__updateLocalMatrix();
4836
4836
  if (!layout.waitAutoLayout) leaf.__updateWorldMatrix();
4837
4837
  },
4838
- updateBounds(leaf) {
4838
+ updateBounds(leaf, noUpdateSize) {
4839
4839
  const layout = leaf.__layout;
4840
4840
  if (layout.boundsChanged) leaf.__updateLocalBounds();
4841
+ if (noUpdateSize) layout.resized = undefined;
4841
4842
  if (!layout.waitAutoLayout) leaf.__updateWorldBounds();
4842
4843
  },
4843
4844
  updateAllWorldOpacity(leaf) {
@@ -4860,7 +4861,7 @@ const LeafHelper = {
4860
4861
  }
4861
4862
  },
4862
4863
  updateAllChange(leaf) {
4863
- updateChange$1(leaf);
4864
+ updateChange(leaf);
4864
4865
  if (leaf.isBranch) {
4865
4866
  const {children: children} = leaf;
4866
4867
  for (let i = 0, len = children.length; i < len; i++) {
@@ -5032,7 +5033,7 @@ const LeafHelper = {
5032
5033
 
5033
5034
  const L$1 = LeafHelper;
5034
5035
 
5035
- const {updateAllMatrix: updateAllMatrix$4, updateMatrix: updateMatrix$3, updateAllWorldOpacity: updateAllWorldOpacity, updateAllChange: updateAllChange$1, updateChange: updateChange$1} = L$1;
5036
+ const {updateAllMatrix: updateAllMatrix$4, updateMatrix: updateMatrix$2, updateAllWorldOpacity: updateAllWorldOpacity, updateAllChange: updateAllChange$1, updateChange: updateChange} = L$1;
5036
5037
 
5037
5038
  function getTempLocal(t, worldPoint) {
5038
5039
  t.updateLayout();
@@ -5078,7 +5079,7 @@ function checkMask(target, index) {
5078
5079
  return findMask < 0 ? null : (findMask && (findMask = -1), true);
5079
5080
  }
5080
5081
 
5081
- const {updateBounds: updateBounds$4} = LeafHelper;
5082
+ const {updateBounds: updateBounds$3} = LeafHelper;
5082
5083
 
5083
5084
  const BranchHelper = {
5084
5085
  sort(a, b) {
@@ -5139,10 +5140,10 @@ const BranchHelper = {
5139
5140
  branch = branchStack[i];
5140
5141
  children = branch.children;
5141
5142
  for (let j = 0, len = children.length; j < len; j++) {
5142
- updateBounds$4(children[j]);
5143
+ updateBounds$3(children[j]);
5143
5144
  }
5144
5145
  if (exclude && exclude === branch) continue;
5145
- updateBounds$4(branch);
5146
+ updateBounds$3(branch);
5146
5147
  }
5147
5148
  },
5148
5149
  move(branch, x, y) {
@@ -5204,7 +5205,7 @@ const WaitHelper = {
5204
5205
  }
5205
5206
  };
5206
5207
 
5207
- const {getRelativeWorld: getRelativeWorld$1, updateBounds: updateBounds$3} = LeafHelper;
5208
+ const {getRelativeWorld: getRelativeWorld$1, updateBounds: updateBounds$2} = LeafHelper;
5208
5209
 
5209
5210
  const {toOuterOf: toOuterOf$3, getPoints: getPoints, copy: copy$4} = BoundsHelper;
5210
5211
 
@@ -5312,7 +5313,7 @@ class LeafLayout {
5312
5313
  }
5313
5314
  update() {
5314
5315
  const {leaf: leaf} = this, {leafer: leafer} = leaf;
5315
- if (leaf.isApp) return updateBounds$3(leaf);
5316
+ if (leaf.isApp) return updateBounds$2(leaf);
5316
5317
  if (leafer) {
5317
5318
  if (leafer.ready) leafer.watcher.changed && leafer.layouter.layout(); else leafer.start();
5318
5319
  } else {
@@ -6049,9 +6050,12 @@ const LeafDataProxy = {
6049
6050
  }
6050
6051
  },
6051
6052
  emitPropertyEvent(type, name, oldValue, newValue) {
6052
- const event = new PropertyEvent(type, this, name, oldValue, newValue);
6053
- this.isLeafer || this.hasEvent(type) && this.emitEvent(event);
6054
- this.leafer.emitEvent(event);
6053
+ const {leafer: leafer} = this;
6054
+ if (leafer.config.trackChanges || leafer.zoomLayer === this) {
6055
+ const event = new PropertyEvent(type, this, name, oldValue, newValue);
6056
+ this.isLeafer || this.hasEvent(type) && this.emitEvent(event);
6057
+ leafer.emitEvent(event);
6058
+ } else leafer.watcher.add(this);
6055
6059
  },
6056
6060
  __realSetAttr(name, newValue) {
6057
6061
  const data = this.__;
@@ -6096,9 +6100,9 @@ const LeafMatrix = {
6096
6100
  }
6097
6101
  };
6098
6102
 
6099
- const {updateMatrix: updateMatrix$2, updateAllMatrix: updateAllMatrix$3} = LeafHelper;
6103
+ const {updateMatrix: updateMatrix$1, updateAllMatrix: updateAllMatrix$3} = LeafHelper;
6100
6104
 
6101
- const {updateBounds: updateBounds$2} = BranchHelper;
6105
+ const {updateBounds: updateBounds$1} = BranchHelper;
6102
6106
 
6103
6107
  const {toOuterOf: toOuterOf$2, copyAndSpread: copyAndSpread$2, copy: copy$3} = BoundsHelper;
6104
6108
 
@@ -6201,14 +6205,14 @@ const LeafBounds = {
6201
6205
  if (this.__layout.childrenSortChanged) this.__updateSortChildren();
6202
6206
  if (this.__layout.boxChanged) this.__updateFlowLayout();
6203
6207
  updateAllMatrix$3(this);
6204
- updateBounds$2(this, this);
6208
+ updateBounds$1(this, this);
6205
6209
  if (this.__.__autoSide) this.__updateBoxBounds(true);
6206
6210
  } else {
6207
6211
  updateAllMatrix$3(this);
6208
- updateBounds$2(this, this);
6212
+ updateBounds$1(this, this);
6209
6213
  }
6210
6214
  } else {
6211
- updateMatrix$2(this);
6215
+ updateMatrix$1(this);
6212
6216
  }
6213
6217
  },
6214
6218
  __updateNaturalSize() {
@@ -6881,9 +6885,12 @@ let Branch = class Branch extends Leaf {
6881
6885
  if (this.isFrame) child.__bindFrame(null);
6882
6886
  }
6883
6887
  __emitChildEvent(type, child) {
6884
- const event = new ChildEvent(type, child, this);
6885
- if (this.hasEvent(type) && !this.isLeafer) this.emitEvent(event);
6886
- this.leafer.emitEvent(event);
6888
+ const {leafer: leafer} = this;
6889
+ if (leafer.config.trackChanges || leafer.zoomLayer === this) {
6890
+ const event = new ChildEvent(type, child, this);
6891
+ if (this.hasEvent(type) && !this.isLeafer) this.emitEvent(event);
6892
+ leafer.emitEvent(event);
6893
+ } else leafer.watcher.addChild(child, this, type);
6887
6894
  }
6888
6895
  };
6889
6896
 
@@ -7036,7 +7043,7 @@ class LeafLevelList {
7036
7043
  }
7037
7044
  }
7038
7045
 
7039
- const version = "2.2.6";
7046
+ const version = "2.2.7";
7040
7047
 
7041
7048
  const debug$5 = Debug.get("LeaferCanvas");
7042
7049
 
@@ -7364,6 +7371,7 @@ class Watcher {
7364
7371
  }
7365
7372
  constructor(target, userConfig) {
7366
7373
  this.totalTimes = 0;
7374
+ this.changed = 0;
7367
7375
  this.config = {};
7368
7376
  this.__updatedList = new LeafList;
7369
7377
  this.target = target;
@@ -7383,8 +7391,10 @@ class Watcher {
7383
7391
  this.disabled = true;
7384
7392
  }
7385
7393
  update() {
7386
- this.changed = true;
7387
- if (this.running) this.target.emit(RenderEvent.REQUEST);
7394
+ if (this.changed < 100) {
7395
+ this.changed++;
7396
+ if (this.running) this.target.emit(RenderEvent.REQUEST);
7397
+ }
7388
7398
  }
7389
7399
  __onAttrChange(event) {
7390
7400
  this.add(event.target);
@@ -7393,18 +7403,21 @@ class Watcher {
7393
7403
  if (this.config.usePartLayout) this.__updatedList.add(leaf);
7394
7404
  this.update();
7395
7405
  }
7396
- __onChildEvent(event) {
7406
+ addChild(child, parent, eventType) {
7397
7407
  if (this.config.usePartLayout) {
7398
- if (event.type === ChildEvent.ADD) {
7408
+ if (eventType === ChildEvent.ADD) {
7399
7409
  this.hasAdd = true;
7400
- this.__pushChild(event.child);
7410
+ this.__pushChild(child);
7401
7411
  } else {
7402
7412
  this.hasRemove = true;
7403
- this.__updatedList.add(event.parent);
7413
+ this.__updatedList.add(parent);
7404
7414
  }
7405
7415
  }
7406
7416
  this.update();
7407
7417
  }
7418
+ __onChildEvent(event) {
7419
+ this.addChild(event.child, event.parent, event.type);
7420
+ }
7408
7421
  __pushChild(child) {
7409
7422
  this.__updatedList.add(child);
7410
7423
  if (child.isBranch) this.__loopChildren(child);
@@ -7419,7 +7432,8 @@ class Watcher {
7419
7432
  }));
7420
7433
  this.__updatedList = new LeafList;
7421
7434
  this.totalTimes++;
7422
- this.changed = this.hasVisible = this.hasRemove = this.hasAdd = false;
7435
+ this.hasVisible = this.hasRemove = this.hasAdd = false;
7436
+ this.changed = 0;
7423
7437
  }
7424
7438
  __listenEvents() {
7425
7439
  this.__eventIds = [ this.target.on_([ [ PropertyEvent.CHANGE, this.__onAttrChange, this ], [ [ ChildEvent.ADD, ChildEvent.REMOVE ], this.__onChildEvent, this ], [ WatchEvent.REQUEST, this.__onRquestData, this ] ]) ];
@@ -7440,47 +7454,57 @@ const {updateAllMatrix: updateAllMatrix$2, updateBounds: updateOneBounds, update
7440
7454
 
7441
7455
  const {pushAllChildBranch: pushAllChildBranch, pushAllParent: pushAllParent} = BranchHelper;
7442
7456
 
7443
- function updateMatrix$1(updateList, levelList) {
7444
- let layout;
7445
- updateList.list.forEach(leaf => {
7446
- layout = leaf.__layout;
7447
- if (levelList.without(leaf) && !layout.proxyZoom) {
7448
- if (layout.matrixChanged) {
7449
- updateAllMatrix$2(leaf, true);
7450
- levelList.add(leaf);
7451
- if (leaf.isBranch) pushAllChildBranch(leaf, levelList);
7452
- pushAllParent(leaf, levelList);
7453
- } else if (layout.boundsChanged) {
7454
- levelList.add(leaf);
7455
- if (leaf.isBranch) leaf.__tempNumber = 0;
7456
- pushAllParent(leaf, levelList);
7457
+ const LayouterHelper = {
7458
+ updateMatrix(updateList, levelList) {
7459
+ let index = 0, leaf, layout;
7460
+ const {list: list} = updateList;
7461
+ while (index < list.length) {
7462
+ leaf = list[index];
7463
+ layout = leaf.__layout;
7464
+ if (levelList.without(leaf) && !layout.proxyZoom) {
7465
+ if (layout.matrixChanged) {
7466
+ updateAllMatrix$2(leaf, true);
7467
+ if (leaf.isBranch) pushAllChildBranch(leaf, levelList);
7468
+ push(leaf, levelList);
7469
+ } else if (layout.boundsChanged) {
7470
+ if (leaf.isBranch) leaf.__tempNumber = 0;
7471
+ push(leaf, levelList);
7472
+ }
7457
7473
  }
7474
+ index++;
7458
7475
  }
7459
- });
7460
- }
7461
-
7462
- function updateBounds$1(boundsList) {
7463
- let list, branch, children;
7464
- boundsList.sort(true);
7465
- boundsList.levels.forEach(level => {
7466
- list = boundsList.levelMap[level];
7467
- for (let i = 0, len = list.length; i < len; i++) {
7468
- branch = list[i];
7469
- if (branch.isBranch && branch.__tempNumber) {
7470
- children = branch.children;
7471
- for (let j = 0, jLen = children.length; j < jLen; j++) {
7472
- if (!children[j].isBranch) {
7473
- updateOneBounds(children[j]);
7476
+ },
7477
+ updateBounds(boundsList) {
7478
+ let index = 0, level, list, branch, children;
7479
+ const {levels: levels, levelMap: levelMap} = boundsList;
7480
+ boundsList.sort(true);
7481
+ while (index < levels.length) {
7482
+ level = levels[index];
7483
+ list = levelMap[level];
7484
+ for (let i = 0, len = list.length; i < len; i++) {
7485
+ branch = list[i];
7486
+ if (branch.isBranch && branch.__tempNumber) {
7487
+ children = branch.children;
7488
+ for (let j = 0, jLen = children.length; j < jLen; j++) {
7489
+ if (!children[j].isBranch) {
7490
+ updateOneBounds(children[j]);
7491
+ }
7474
7492
  }
7475
7493
  }
7494
+ updateOneBounds(branch);
7476
7495
  }
7477
- updateOneBounds(branch);
7496
+ index++;
7478
7497
  }
7479
- });
7480
- }
7498
+ },
7499
+ updateChange(updateList) {
7500
+ updateList.list.forEach(updateOneChange);
7501
+ },
7502
+ push: push
7503
+ };
7481
7504
 
7482
- function updateChange(updateList) {
7483
- updateList.list.forEach(updateOneChange);
7505
+ function push(leaf, levelList) {
7506
+ levelList.add(leaf);
7507
+ pushAllParent(leaf, levelList);
7484
7508
  }
7485
7509
 
7486
7510
  const {worldBounds: worldBounds} = LeafBoundsHelper;
@@ -7587,9 +7611,9 @@ class Layouter {
7587
7611
  target.emitEvent(new LayoutEvent(BEFORE, blocks, this.times));
7588
7612
  this.extraBlock = null;
7589
7613
  updateList.sort();
7590
- updateMatrix$1(updateList, this.__levelList);
7591
- updateBounds$1(this.__levelList);
7592
- updateChange(updateList);
7614
+ LayouterHelper.updateMatrix(updateList, this.__levelList);
7615
+ LayouterHelper.updateBounds(this.__levelList);
7616
+ LayouterHelper.updateChange(updateList);
7593
7617
  if (this.extraBlock) blocks.push(this.extraBlock);
7594
7618
  blocks.forEach(item => item.setAfter());
7595
7619
  target.emitEvent(new LayoutEvent(LAYOUT, blocks, this.times));
@@ -7619,11 +7643,16 @@ class Layouter {
7619
7643
  if (target.isBranch) BranchHelper.updateBounds(target); else LeafHelper.updateBounds(target);
7620
7644
  updateAllChange(target);
7621
7645
  }
7622
- addExtra(leaf) {
7646
+ addExtra(leaf, updateBounds) {
7623
7647
  if (!this.__updatedList.has(leaf)) {
7624
7648
  const {updatedList: updatedList, beforeBounds: beforeBounds} = this.extraBlock || (this.extraBlock = new LayoutBlockData([]));
7625
7649
  updatedList.length ? beforeBounds.add(leaf.__world) : beforeBounds.set(leaf.__world);
7626
7650
  updatedList.add(leaf);
7651
+ if (updateBounds) {
7652
+ const list = this.__levelList;
7653
+ LayouterHelper.push(leaf, list);
7654
+ list.sort(true);
7655
+ }
7627
7656
  }
7628
7657
  }
7629
7658
  createBlock(data) {
@@ -7948,7 +7977,7 @@ class Picker {
7948
7977
  for (let i = 0, len = list.length; i < len; i++) {
7949
7978
  find = list[i];
7950
7979
  if (ignoreHittable || LeafHelper.worldHittable(find)) {
7951
- this.hitChild(find, find.hitThrough ? this.point : point);
7980
+ this.hitChild(find, find.hitThrough ? this.point : point, find.mask && find.parent && find.parent.__onlyHitMask);
7952
7981
  if (findList.length) {
7953
7982
  if (find.isBranchLeaf && list.some(item => item !== find && LeafHelper.hasParent(item, find))) {
7954
7983
  findList.reset();
@@ -8047,7 +8076,7 @@ class Picker {
8047
8076
  }
8048
8077
  const leaf = proxy || child, {hitThrough: hitThrough} = child, {findList: findList} = this;
8049
8078
  if (hitThrough) {
8050
- const index = findList.list.findIndex(item => item[hitThrough] === child[hitThrough]);
8079
+ const index = findList.list.findIndex(item => hitThrough === "parent" ? LeafHelper.hasParent(item.parent, child.parent) : item[hitThrough] === child[hitThrough]);
8051
8080
  if (index > 0) return findList.addAt(leaf, index);
8052
8081
  }
8053
8082
  findList.add(leaf);
@@ -9075,6 +9104,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
9075
9104
  start: true,
9076
9105
  hittable: true,
9077
9106
  smooth: true,
9107
+ trackChanges: true,
9078
9108
  lazySpeard: 100
9079
9109
  };
9080
9110
  this.leafs = 0;
@@ -12342,7 +12372,7 @@ function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds
12342
12372
  data.__naturalHeight = image.height / data.pixelRatio;
12343
12373
  if (data.__autoSide) {
12344
12374
  ui.forceUpdate();
12345
- LeafHelper.updateBounds(ui);
12375
+ LeafHelper.updateBounds(ui, true);
12346
12376
  ui.__layout.boundsChanged = true;
12347
12377
  if (ui.__proxyData) {
12348
12378
  ui.setProxyAttr("width", data.width);
@@ -15585,12 +15615,12 @@ ui$1.getMotionContentHeight = function() {
15585
15615
  return this.__layout.boxBounds.height;
15586
15616
  };
15587
15617
 
15588
- ui$1.getMotionPoint = function(motionDistance, motionVertical, pathElement, offsetX = 0, offsetY = 0) {
15618
+ ui$1.getMotionPoint = function(motionDistance, motionAround, motionVertical, offsetX = 0, offsetY = 0, pathElement) {
15589
15619
  if (!pathElement) pathElement = getMotionPath(this);
15590
15620
  const data = getMotionPathData(pathElement);
15591
15621
  if (!data.total) return {};
15592
15622
  const point = HighCurveHelper.getDistancePoint(data, motionDistance, pathElement.motionPrecision, offsetX);
15593
- const {motionRotation: motionRotation, motionAround: motionAround} = this;
15623
+ const {motionRotation: motionRotation} = this;
15594
15624
  if (isNumber(motionRotation)) point.rotation += motionRotation;
15595
15625
  if (motionAround && motionAround !== "top-left") {
15596
15626
  AroundHelper.toPoint(motionAround, this.__layout.boxBounds, tempPoint);
@@ -15650,7 +15680,7 @@ function updateMotion(leaf) {
15650
15680
  if (data.total) leaf.__.__pathForRender = HighCurveHelper.getDistancePath(data, motion, leaf.motionPrecision);
15651
15681
  } else {
15652
15682
  if (leaf.motionText) leaf.__updateMotionText(); else {
15653
- const point = leaf.getMotionPoint(motion);
15683
+ const point = leaf.getMotionPoint(motion, leaf.motionAround);
15654
15684
  if (leaf.motionRotation === false) delete point.rotation;
15655
15685
  leaf.set(point);
15656
15686
  }
@@ -15837,4 +15867,4 @@ LeafHelper.cacheId = function(t) {
15837
15867
  if (leafer.cacheInnerId) leafer.app.innerIdMap[t.innerId] = t;
15838
15868
  };
15839
15869
 
15840
- export { AlignHelper, Animate, AnimateEasing, AnimateEvent, AnimateList, Answer, App, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragBoundsHelper, DragEvent$1 as DragEvent, Dragger, DropEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Finder, FourNumberHelper, Frame, FrameData, Group, GroupData, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image$1 as 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, LeaferFilm, LeaferImage, LeaferVideo, Line, LineData, MathHelper, Matrix, MatrixHelper, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, MyTouchEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent$1 as PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Robot, RobotData, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TouchEvent, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, UnitConvertHelper, WaitHelper, WatchEvent, Watcher, ZoomEvent, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, dimType, doBoundsType, doStrokeType, doSurfaceType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, motionPathType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerPointsCurve, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, stateStyleType, stateType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$6 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
15870
+ export { AlignHelper, Animate, AnimateEasing, AnimateEvent, AnimateList, Answer, App, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragBoundsHelper, DragEvent$1 as DragEvent, Dragger, DropEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Finder, FourNumberHelper, Frame, FrameData, Group, GroupData, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image$1 as Image, ImageData, ImageEvent, ImageManager, IncrementId, Interaction, InteractionBase, InteractionHelper, KeyEvent, Keyboard, LayoutEvent, Layouter, LayouterHelper, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferFilm, LeaferImage, LeaferVideo, Line, LineData, MathHelper, Matrix, MatrixHelper, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, MyTouchEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent$1 as PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Robot, RobotData, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TouchEvent, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, UnitConvertHelper, WaitHelper, WatchEvent, Watcher, ZoomEvent, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, dimType, doBoundsType, doStrokeType, doSurfaceType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, motionPathType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerPointsCurve, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, stateStyleType, stateType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$6 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };