@visactor/vrender-core 1.1.6-alpha.0 → 1.1.6

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.
Files changed (82) hide show
  1. package/cjs/common/canvas-utils.d.ts +4 -1
  2. package/cjs/common/canvas-utils.js +9 -4
  3. package/cjs/common/canvas-utils.js.map +1 -1
  4. package/cjs/common/polygon.d.ts +8 -0
  5. package/cjs/common/polygon.js +107 -3
  6. package/cjs/common/polygon.js.map +1 -1
  7. package/cjs/graphic/graphic-service/polygon-outer-border-bounds.d.ts +4 -0
  8. package/cjs/graphic/graphic-service/polygon-outer-border-bounds.js +36 -0
  9. package/cjs/graphic/graphic-service/polygon-outer-border-bounds.js.map +1 -0
  10. package/cjs/graphic/graphic.d.ts +9 -9
  11. package/cjs/graphic/graphic.js +45 -54
  12. package/cjs/graphic/graphic.js.map +1 -1
  13. package/cjs/graphic/group.d.ts +4 -6
  14. package/cjs/graphic/group.js +11 -21
  15. package/cjs/graphic/group.js.map +1 -1
  16. package/cjs/graphic/node-tree.d.ts +1 -2
  17. package/cjs/graphic/node-tree.js +1 -1
  18. package/cjs/graphic/node-tree.js.map +1 -1
  19. package/cjs/graphic/polygon.d.ts +2 -0
  20. package/cjs/graphic/polygon.js +12 -2
  21. package/cjs/graphic/polygon.js.map +1 -1
  22. package/cjs/graphic/richtext.d.ts +1 -2
  23. package/cjs/graphic/richtext.js +2 -2
  24. package/cjs/graphic/richtext.js.map +1 -1
  25. package/cjs/graphic/state/state-transition-orchestrator.d.ts +4 -0
  26. package/cjs/graphic/state/state-transition-orchestrator.js +11 -5
  27. package/cjs/graphic/state/state-transition-orchestrator.js.map +1 -1
  28. package/cjs/graphic/text.js +7 -3
  29. package/cjs/graphic/text.js.map +1 -1
  30. package/cjs/interface/graphic.d.ts +1 -1
  31. package/cjs/interface/graphic.js.map +1 -1
  32. package/cjs/interface/node-tree.d.ts +1 -2
  33. package/cjs/interface/node-tree.js.map +1 -1
  34. package/cjs/render/contributions/render/contributions/polygon-contribution-render.d.ts +9 -0
  35. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js +40 -2
  36. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  37. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +5 -5
  38. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  39. package/cjs/render/contributions/render/polygon-render.js +1 -1
  40. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  41. package/dist/index.es.js +433 -198
  42. package/es/common/canvas-utils.d.ts +4 -1
  43. package/es/common/canvas-utils.js +6 -2
  44. package/es/common/canvas-utils.js.map +1 -1
  45. package/es/common/polygon.d.ts +8 -0
  46. package/es/common/polygon.js +102 -0
  47. package/es/common/polygon.js.map +1 -1
  48. package/es/graphic/graphic-service/polygon-outer-border-bounds.d.ts +4 -0
  49. package/es/graphic/graphic-service/polygon-outer-border-bounds.js +32 -0
  50. package/es/graphic/graphic-service/polygon-outer-border-bounds.js.map +1 -0
  51. package/es/graphic/graphic.d.ts +9 -9
  52. package/es/graphic/graphic.js +45 -54
  53. package/es/graphic/graphic.js.map +1 -1
  54. package/es/graphic/group.d.ts +4 -6
  55. package/es/graphic/group.js +11 -21
  56. package/es/graphic/group.js.map +1 -1
  57. package/es/graphic/node-tree.d.ts +1 -2
  58. package/es/graphic/node-tree.js +1 -1
  59. package/es/graphic/node-tree.js.map +1 -1
  60. package/es/graphic/polygon.d.ts +2 -0
  61. package/es/graphic/polygon.js +14 -2
  62. package/es/graphic/polygon.js.map +1 -1
  63. package/es/graphic/richtext.d.ts +1 -2
  64. package/es/graphic/richtext.js +2 -2
  65. package/es/graphic/richtext.js.map +1 -1
  66. package/es/graphic/state/state-transition-orchestrator.d.ts +4 -0
  67. package/es/graphic/state/state-transition-orchestrator.js +11 -5
  68. package/es/graphic/state/state-transition-orchestrator.js.map +1 -1
  69. package/es/graphic/text.js +7 -3
  70. package/es/graphic/text.js.map +1 -1
  71. package/es/interface/graphic.d.ts +1 -1
  72. package/es/interface/graphic.js.map +1 -1
  73. package/es/interface/node-tree.d.ts +1 -2
  74. package/es/interface/node-tree.js.map +1 -1
  75. package/es/render/contributions/render/contributions/polygon-contribution-render.d.ts +9 -0
  76. package/es/render/contributions/render/contributions/polygon-contribution-render.js +40 -0
  77. package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  78. package/es/render/contributions/render/contributions/rect-contribution-render.js +5 -5
  79. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  80. package/es/render/contributions/render/polygon-render.js +2 -2
  81. package/es/render/contributions/render/polygon-render.js.map +1 -1
  82. package/package.json +1 -1
package/dist/index.es.js CHANGED
@@ -711,7 +711,7 @@ class Node extends EventEmitter {
711
711
  this.parent = null;
712
712
  this._count = 1;
713
713
  }
714
- onParentSharedStateTreeChanged(_stage, _layer, _inheritedSharedStateScope) {
714
+ onParentSharedStateTreeChanged(_stage, _layer) {
715
715
  return;
716
716
  }
717
717
  forEachChildren(cb, reverse = false) {
@@ -7639,9 +7639,9 @@ class GradientParser {
7639
7639
  }
7640
7640
  }
7641
7641
 
7642
- function getScaledStroke(context, width, dpr) {
7642
+ function getScaledStrokeWithMatrix(matrix, width, dpr) {
7643
7643
  let strokeWidth = width;
7644
- const { a, b, c, d } = context.currentMatrix;
7644
+ const { a, b, c, d } = matrix;
7645
7645
  const scaleX = Math.sign(a) * Math.sqrt(a * a + b * b);
7646
7646
  const scaleY = Math.sign(d) * Math.sqrt(c * c + d * d);
7647
7647
  if (scaleX + scaleY === 0) {
@@ -7650,6 +7650,9 @@ function getScaledStroke(context, width, dpr) {
7650
7650
  strokeWidth = (strokeWidth / Math.abs(scaleX + scaleY)) * 2 * dpr;
7651
7651
  return strokeWidth;
7652
7652
  }
7653
+ function getScaledStroke(context, width, dpr) {
7654
+ return getScaledStrokeWithMatrix(context.currentMatrix, width, dpr);
7655
+ }
7653
7656
  function createColor(context, c, params, offsetX = 0, offsetY = 0) {
7654
7657
  var _a, _b, _c, _d;
7655
7658
  if (!c || c === true) {
@@ -9530,7 +9533,7 @@ function normalizeNoAnimateAttrConfig(config) {
9530
9533
  }
9531
9534
  class StateTransitionOrchestrator {
9532
9535
  analyzeTransition(targetAttrs, hasAnimation, options = {}) {
9533
- var _a, _b;
9536
+ var _a, _b, _c, _d;
9534
9537
  const plan = {
9535
9538
  targetAttrs: Object.assign({}, targetAttrs),
9536
9539
  animateAttrs: {},
@@ -9543,12 +9546,22 @@ class StateTransitionOrchestrator {
9543
9546
  const isClear = options.isClear === true;
9544
9547
  const getDefaultAttribute = options.getDefaultAttribute;
9545
9548
  const readDefaultAttribute = getDefaultAttribute;
9549
+ const readStateTransitionDefaultAttribute = ((_c = options.getStateTransitionDefaultAttribute) !== null && _c !== void 0 ? _c : getDefaultAttribute);
9546
9550
  const shouldSkipDefaultAttribute = options.shouldSkipDefaultAttribute;
9547
- const assignTransitionAttr = (key, value) => {
9551
+ const stateTransitionTargetAttrs = (_d = options.stateTransitionTargetAttrs) !== null && _d !== void 0 ? _d : targetAttrs;
9552
+ const assignTransitionAttr = (key, value, isRemovedStateAttr = false) => {
9548
9553
  if (noWorkAnimateAttr[key]) {
9549
9554
  plan.noAnimateAttrs[key] = value;
9550
9555
  return;
9551
9556
  }
9557
+ if (isRemovedStateAttr && value === undefined) {
9558
+ const defaultValue = readStateTransitionDefaultAttribute === null || readStateTransitionDefaultAttribute === void 0 ? void 0 : readStateTransitionDefaultAttribute(key, stateTransitionTargetAttrs);
9559
+ if (defaultValue === undefined && (shouldSkipDefaultAttribute === null || shouldSkipDefaultAttribute === void 0 ? void 0 : shouldSkipDefaultAttribute(key, stateTransitionTargetAttrs))) {
9560
+ return;
9561
+ }
9562
+ plan.animateAttrs[key] = defaultValue;
9563
+ return;
9564
+ }
9552
9565
  if (isClear && value === undefined) {
9553
9566
  if (shouldSkipDefaultAttribute === null || shouldSkipDefaultAttribute === void 0 ? void 0 : shouldSkipDefaultAttribute(key, targetAttrs)) {
9554
9567
  return;
@@ -9573,7 +9586,7 @@ class StateTransitionOrchestrator {
9573
9586
  (hasTargetAttr && targetAttrs[key] !== undefined)) {
9574
9587
  continue;
9575
9588
  }
9576
- assignTransitionAttr(key, extraAnimateAttrs[key]);
9589
+ assignTransitionAttr(key, extraAnimateAttrs[key], true);
9577
9590
  }
9578
9591
  }
9579
9592
  return plan;
@@ -9613,9 +9626,11 @@ class StateTransitionOrchestrator {
9613
9626
  noWorkAnimateAttr: graphic.getNoWorkAnimateAttr(),
9614
9627
  isClear: true,
9615
9628
  getDefaultAttribute: graphic.getDefaultAttribute.bind(graphic),
9629
+ getStateTransitionDefaultAttribute: options.getStateTransitionDefaultAttribute,
9616
9630
  shouldSkipDefaultAttribute: (_a = options.shouldSkipDefaultAttribute) !== null && _a !== void 0 ? _a : graphic.shouldSkipStateTransitionDefaultAttribute.bind(graphic),
9617
9631
  animateConfig: options.animateConfig,
9618
- extraAnimateAttrs: options.extraAnimateAttrs
9632
+ extraAnimateAttrs: options.extraAnimateAttrs,
9633
+ stateTransitionTargetAttrs: options.stateTransitionTargetAttrs
9619
9634
  });
9620
9635
  return this.applyTransition(graphic, plan, hasAnimation, options);
9621
9636
  }
@@ -9960,8 +9975,9 @@ class GraphicImpl extends Node {
9960
9975
  }
9961
9976
  return (_a = this.stage) === null || _a === void 0 ? void 0 : _a.rootSharedStateScope;
9962
9977
  }
9963
- syncSharedStateScopeBinding(nextScope, markDirty = true) {
9978
+ syncSharedStateScopeBindingFromTree(markDirty = true) {
9964
9979
  var _a;
9980
+ const nextScope = this.resolveBoundSharedStateScope();
9965
9981
  if (this.boundSharedStateScope === nextScope) {
9966
9982
  this.syncSharedStateActiveRegistrations();
9967
9983
  return false;
@@ -9978,13 +9994,7 @@ class GraphicImpl extends Node {
9978
9994
  }
9979
9995
  return true;
9980
9996
  }
9981
- syncSharedStateScopeBindingFromTree(markDirty = true, inheritedSharedStateScope) {
9982
- const nextScope = inheritedSharedStateScope === undefined
9983
- ? this.resolveBoundSharedStateScope()
9984
- : inheritedSharedStateScope !== null && inheritedSharedStateScope !== void 0 ? inheritedSharedStateScope : undefined;
9985
- return this.syncSharedStateScopeBinding(nextScope, markDirty);
9986
- }
9987
- syncSharedStateScopeBindingOnTreeChange(markDirty = true, inheritedSharedStateScope) {
9997
+ syncSharedStateScopeBindingOnTreeChange(markDirty = true) {
9988
9998
  var _a, _b;
9989
9999
  if (!((_a = this.currentStates) === null || _a === void 0 ? void 0 : _a.length) &&
9990
10000
  !this.boundSharedStateScope &&
@@ -9992,7 +10002,7 @@ class GraphicImpl extends Node {
9992
10002
  !this.sharedStateDirty) {
9993
10003
  return false;
9994
10004
  }
9995
- return this.syncSharedStateScopeBindingFromTree(markDirty, inheritedSharedStateScope);
10005
+ return this.syncSharedStateScopeBindingFromTree(markDirty);
9996
10006
  }
9997
10007
  syncSharedStateActiveRegistrations() {
9998
10008
  var _a;
@@ -10007,9 +10017,6 @@ class GraphicImpl extends Node {
10007
10017
  this.registeredActiveScopes = undefined;
10008
10018
  return;
10009
10019
  }
10010
- if ((previousScopes === null || previousScopes === void 0 ? void 0 : previousScopes.size) && this.isSharedStateScopeChainRegistered(previousScopes)) {
10011
- return;
10012
- }
10013
10020
  const nextScopes = new Set(collectSharedStateScopeChain(this.boundSharedStateScope));
10014
10021
  previousScopes === null || previousScopes === void 0 ? void 0 : previousScopes.forEach(scope => {
10015
10022
  if (!nextScopes.has(scope)) {
@@ -10021,18 +10028,6 @@ class GraphicImpl extends Node {
10021
10028
  });
10022
10029
  this.registeredActiveScopes = nextScopes;
10023
10030
  }
10024
- isSharedStateScopeChainRegistered(previousScopes) {
10025
- let scope = this.boundSharedStateScope;
10026
- let scopeCount = 0;
10027
- while (scope) {
10028
- if (!previousScopes.has(scope)) {
10029
- return false;
10030
- }
10031
- scopeCount += 1;
10032
- scope = scope.parentScope;
10033
- }
10034
- return scopeCount === previousScopes.size;
10035
- }
10036
10031
  clearSharedStateActiveRegistrations() {
10037
10032
  const previousScopes = this.registeredActiveScopes;
10038
10033
  if (previousScopes) {
@@ -10048,12 +10043,12 @@ class GraphicImpl extends Node {
10048
10043
  enqueueGraphicSharedStateRefresh(this.stage, this);
10049
10044
  scheduleStageSharedStateRefresh(this.stage);
10050
10045
  }
10051
- onParentSharedStateTreeChanged(stage, layer, inheritedSharedStateScope) {
10046
+ onParentSharedStateTreeChanged(stage, layer) {
10052
10047
  if (this.stage !== stage || this.layer !== layer) {
10053
- this.setStage(stage, layer, inheritedSharedStateScope);
10048
+ this.setStage(stage, layer);
10054
10049
  return;
10055
10050
  }
10056
- this.syncSharedStateScopeBindingOnTreeChange(true, inheritedSharedStateScope);
10051
+ this.syncSharedStateScopeBindingOnTreeChange();
10057
10052
  }
10058
10053
  refreshSharedStateBeforeRender() {
10059
10054
  var _a;
@@ -10144,35 +10139,33 @@ class GraphicImpl extends Node {
10144
10139
  return snapshot;
10145
10140
  }
10146
10141
  buildRemovedStateAnimationAttrs(targetStateAttrs, previousResolvedStatePatch) {
10147
- const extraAttrs = {};
10148
10142
  if (!previousResolvedStatePatch) {
10149
- return extraAttrs;
10143
+ return;
10150
10144
  }
10151
10145
  const snapshot = this.buildStaticAttributeSnapshot();
10152
- const staticTargetAttrs = snapshot;
10146
+ const extraAttrs = {};
10153
10147
  Object.keys(previousResolvedStatePatch).forEach(key => {
10154
10148
  const hasTargetAttr = Object.prototype.hasOwnProperty.call(targetStateAttrs, key);
10155
10149
  if (hasTargetAttr && targetStateAttrs[key] !== undefined) {
10156
10150
  return;
10157
10151
  }
10158
10152
  const assignFallbackAttr = (value) => {
10159
- if (value === undefined && this.shouldSkipStateTransitionDefaultAttribute(key, staticTargetAttrs)) {
10160
- return;
10161
- }
10162
10153
  extraAttrs[key] = value === undefined ? value : cloneAttributeValue(value);
10163
10154
  };
10164
10155
  if (hasTargetAttr) {
10165
- assignFallbackAttr(this.getStateTransitionDefaultAttribute(key, staticTargetAttrs));
10156
+ assignFallbackAttr(targetStateAttrs[key]);
10166
10157
  return;
10167
10158
  }
10168
10159
  if (Object.prototype.hasOwnProperty.call(snapshot, key)) {
10169
- const snapshotValue = snapshot[key];
10170
- assignFallbackAttr(snapshotValue === undefined ? this.getStateTransitionDefaultAttribute(key, staticTargetAttrs) : snapshotValue);
10160
+ assignFallbackAttr(snapshot[key]);
10171
10161
  return;
10172
10162
  }
10173
- assignFallbackAttr(this.getStateTransitionDefaultAttribute(key, staticTargetAttrs));
10163
+ assignFallbackAttr(undefined);
10174
10164
  });
10175
- return extraAttrs;
10165
+ return {
10166
+ extraAttrs: extraAttrs,
10167
+ stateTransitionTargetAttrs: snapshot
10168
+ };
10176
10169
  }
10177
10170
  syncObjectToSnapshot(target, snapshot, excludedKeys) {
10178
10171
  const delta = new Map();
@@ -11210,16 +11203,6 @@ class GraphicImpl extends Node {
11210
11203
  var _a;
11211
11204
  return (_a = this.states) === null || _a === void 0 ? void 0 : _a[stateName];
11212
11205
  }
11213
- setStateDefinitionsWithCompiled(definitions, compiledDefinitions) {
11214
- var _a;
11215
- this.states = definitions;
11216
- if (this.localStateDefinitionsSource !== definitions) {
11217
- this.localStateDefinitionsSource = definitions;
11218
- this.localStateDefinitionsVersion = ((_a = this.localStateDefinitionsVersion) !== null && _a !== void 0 ? _a : 0) + 1;
11219
- }
11220
- this.compiledStateDefinitions = compiledDefinitions;
11221
- this.compiledStateDefinitionsCacheKey = `local:${this.localStateDefinitionsVersion}`;
11222
- }
11223
11206
  getStateResolveBaseAttrs() {
11224
11207
  var _a;
11225
11208
  return ((_a = this.baseAttributes) !== null && _a !== void 0 ? _a : this.attribute);
@@ -11416,7 +11399,8 @@ class GraphicImpl extends Node {
11416
11399
  }
11417
11400
  if (hasAnimation && animateSameStatePatchChange) {
11418
11401
  this._syncFinalAttributeFromStaticTruth();
11419
- this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, false, undefined, this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch));
11402
+ const removedStateAnimationAttrs = this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch);
11403
+ this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, false, undefined, removedStateAnimationAttrs === null || removedStateAnimationAttrs === void 0 ? void 0 : removedStateAnimationAttrs.extraAttrs, removedStateAnimationAttrs === null || removedStateAnimationAttrs === void 0 ? void 0 : removedStateAnimationAttrs.stateTransitionTargetAttrs);
11420
11404
  }
11421
11405
  else {
11422
11406
  this.stopStateAnimates();
@@ -11435,13 +11419,15 @@ class GraphicImpl extends Node {
11435
11419
  var _a, _b, _c;
11436
11420
  return (_c = (_a = animateConfig !== null && animateConfig !== void 0 ? animateConfig : this.stateAnimateConfig) !== null && _a !== void 0 ? _a : (_b = this.context) === null || _b === void 0 ? void 0 : _b.stateAnimateConfig) !== null && _c !== void 0 ? _c : DefaultStateAnimateConfig;
11437
11421
  }
11438
- applyStateAttrs(attrs, stateNames, hasAnimation, isClear, animateConfig, extraAnimateAttrs) {
11422
+ applyStateAttrs(attrs, stateNames, hasAnimation, isClear, animateConfig, extraAnimateAttrs, stateTransitionTargetAttrs) {
11439
11423
  const resolvedAnimateConfig = hasAnimation ? this.resolveStateAnimateConfig(animateConfig) : undefined;
11440
11424
  const transitionOptions = resolvedAnimateConfig
11441
11425
  ? {
11442
11426
  animateConfig: resolvedAnimateConfig,
11443
11427
  extraAnimateAttrs: extraAnimateAttrs,
11444
- shouldSkipDefaultAttribute: this.shouldSkipStateTransitionDefaultAttribute.bind(this)
11428
+ getStateTransitionDefaultAttribute: this.getStateTransitionDefaultAttribute.bind(this),
11429
+ shouldSkipDefaultAttribute: this.shouldSkipStateTransitionDefaultAttribute.bind(this),
11430
+ stateTransitionTargetAttrs: stateTransitionTargetAttrs
11445
11431
  }
11446
11432
  : undefined;
11447
11433
  if (isClear) {
@@ -11452,7 +11438,9 @@ class GraphicImpl extends Node {
11452
11438
  noWorkAnimateAttr: this.getNoWorkAnimateAttr(),
11453
11439
  animateConfig: resolvedAnimateConfig,
11454
11440
  extraAnimateAttrs: extraAnimateAttrs,
11455
- shouldSkipDefaultAttribute: this.shouldSkipStateTransitionDefaultAttribute.bind(this)
11441
+ getStateTransitionDefaultAttribute: this.getStateTransitionDefaultAttribute.bind(this),
11442
+ shouldSkipDefaultAttribute: this.shouldSkipStateTransitionDefaultAttribute.bind(this),
11443
+ stateTransitionTargetAttrs: stateTransitionTargetAttrs
11456
11444
  });
11457
11445
  this.getStateTransitionOrchestrator().applyTransition(this, plan, hasAnimation, transitionOptions);
11458
11446
  }
@@ -11508,7 +11496,8 @@ class GraphicImpl extends Node {
11508
11496
  this.clearSharedStateActiveRegistrations();
11509
11497
  if (hasAnimation) {
11510
11498
  this._syncFinalAttributeFromStaticTruth();
11511
- this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, true, undefined, this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch));
11499
+ const removedStateAnimationAttrs = this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch);
11500
+ this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, true, undefined, removedStateAnimationAttrs === null || removedStateAnimationAttrs === void 0 ? void 0 : removedStateAnimationAttrs.extraAttrs, removedStateAnimationAttrs === null || removedStateAnimationAttrs === void 0 ? void 0 : removedStateAnimationAttrs.stateTransitionTargetAttrs);
11512
11501
  }
11513
11502
  else {
11514
11503
  this.stopStateAnimates();
@@ -11591,7 +11580,8 @@ class GraphicImpl extends Node {
11591
11580
  this.syncSharedStateActiveRegistrations();
11592
11581
  if (hasAnimation) {
11593
11582
  this._syncFinalAttributeFromStaticTruth();
11594
- this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, false, undefined, this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch));
11583
+ const removedStateAnimationAttrs = this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch);
11584
+ this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, false, undefined, removedStateAnimationAttrs === null || removedStateAnimationAttrs === void 0 ? void 0 : removedStateAnimationAttrs.extraAttrs, removedStateAnimationAttrs === null || removedStateAnimationAttrs === void 0 ? void 0 : removedStateAnimationAttrs.stateTransitionTargetAttrs);
11595
11585
  }
11596
11586
  else {
11597
11587
  this.stopStateAnimates();
@@ -11778,7 +11768,7 @@ class GraphicImpl extends Node {
11778
11768
  this._globalTransMatrix.translate(scrollX, scrollY);
11779
11769
  }
11780
11770
  }
11781
- setStage(stage, layer, inheritedSharedStateScope) {
11771
+ setStage(stage, layer) {
11782
11772
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
11783
11773
  const graphicService = (_c = (_a = stage === null || stage === void 0 ? void 0 : stage.graphicService) !== null && _a !== void 0 ? _a : (_b = this.stage) === null || _b === void 0 ? void 0 : _b.graphicService) !== null && _c !== void 0 ? _c : application.graphicService;
11784
11774
  const previousStage = this.stage;
@@ -11789,7 +11779,7 @@ class GraphicImpl extends Node {
11789
11779
  this.boundSharedStateScope ||
11790
11780
  ((_e = this.registeredActiveScopes) === null || _e === void 0 ? void 0 : _e.size) ||
11791
11781
  this.sharedStateDirty) {
11792
- this.syncSharedStateScopeBindingOnTreeChange(true, inheritedSharedStateScope);
11782
+ this.syncSharedStateScopeBindingOnTreeChange(true);
11793
11783
  }
11794
11784
  this.setStageToShadowRoot(stage, layer);
11795
11785
  if (this.mayHaveTrackedAnimates() && this.hasAnyTrackedAnimate()) {
@@ -11839,7 +11829,7 @@ class GraphicImpl extends Node {
11839
11829
  this.boundSharedStateScope ||
11840
11830
  ((_k = this.registeredActiveScopes) === null || _k === void 0 ? void 0 : _k.size) ||
11841
11831
  this.sharedStateDirty) {
11842
- this.syncSharedStateScopeBindingOnTreeChange(true, inheritedSharedStateScope);
11832
+ this.syncSharedStateScopeBindingOnTreeChange(true);
11843
11833
  }
11844
11834
  }
11845
11835
  detachStageForRelease() {
@@ -12760,13 +12750,14 @@ class Text extends Graphic {
12760
12750
  if (!this.obbText) {
12761
12751
  this.obbText = new Text({});
12762
12752
  }
12763
- this.obbText.setAttributes(Object.assign(Object.assign({}, attribute), { angle: 0 }));
12753
+ const { dx = 0, dy = 0 } = attribute;
12754
+ this.obbText.setAttributes(Object.assign(Object.assign({}, attribute), { angle: 0, dx: 0, dy: 0 }));
12764
12755
  const bounds1 = this.obbText.AABBBounds;
12765
12756
  const { x, y } = attribute;
12766
12757
  const boundsCenter = { x: (bounds1.x1 + bounds1.x2) / 2, y: (bounds1.y1 + bounds1.y2) / 2 };
12767
12758
  const center = rotatePoint(boundsCenter, angle, { x, y });
12768
12759
  this._OBBBounds.copy(bounds1);
12769
- this._OBBBounds.translate(center.x - boundsCenter.x, center.y - boundsCenter.y);
12760
+ this._OBBBounds.translate(center.x - boundsCenter.x + dx, center.y - boundsCenter.y + dy);
12770
12761
  this._OBBBounds.angle = angle;
12771
12762
  return this._OBBBounds;
12772
12763
  }
@@ -15626,8 +15617,8 @@ class RichText extends Graphic {
15626
15617
  clone() {
15627
15618
  return new RichText(Object.assign({}, this.attribute));
15628
15619
  }
15629
- setStage(stage, layer, inheritedSharedStateScope) {
15630
- super.setStage(stage, layer, inheritedSharedStateScope);
15620
+ setStage(stage, layer) {
15621
+ super.setStage(stage, layer);
15631
15622
  const frameCache = this.getFrameCache();
15632
15623
  frameCache.icons.forEach(icon => {
15633
15624
  icon.setStage(stage, layer);
@@ -16548,7 +16539,7 @@ class Group extends Graphic {
16548
16539
  });
16549
16540
  this.addUpdateBoundTag();
16550
16541
  }
16551
- setStage(stage, layer, inheritedSharedStateScope) {
16542
+ setStage(stage, layer) {
16552
16543
  var _a, _b, _c, _d, _e, _f;
16553
16544
  const graphicService = (_c = (_a = stage === null || stage === void 0 ? void 0 : stage.graphicService) !== null && _a !== void 0 ? _a : (_b = this.stage) === null || _b === void 0 ? void 0 : _b.graphicService) !== null && _c !== void 0 ? _c : application.graphicService;
16554
16545
  const needsSharedStateTreeSync = this.hasSharedStateDefinitions() ||
@@ -16562,12 +16553,12 @@ class Group extends Graphic {
16562
16553
  this.layer = layer;
16563
16554
  if (needsSharedStateTreeSync) {
16564
16555
  this.ensureSharedStateScopeBound();
16565
- this.syncSharedStateScopeBindingOnTreeChange(true, inheritedSharedStateScope);
16556
+ this.syncSharedStateScopeBindingOnTreeChange(true);
16566
16557
  }
16567
16558
  this.setStageToShadowRoot(stage, layer);
16568
16559
  this._onSetStage && this._onSetStage(this, stage, layer);
16569
16560
  (_f = graphicService === null || graphicService === void 0 ? void 0 : graphicService.onSetStage) === null || _f === void 0 ? void 0 : _f.call(graphicService, this, stage);
16570
- this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope);
16561
+ this.notifyChildrenSharedStateTreeChanged();
16571
16562
  return;
16572
16563
  }
16573
16564
  const layerChanged = this.layer !== layer;
@@ -16576,11 +16567,11 @@ class Group extends Graphic {
16576
16567
  }
16577
16568
  if (needsSharedStateTreeSync) {
16578
16569
  this.ensureSharedStateScopeBound();
16579
- this.syncSharedStateScopeBindingOnTreeChange(true, inheritedSharedStateScope);
16580
- this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope);
16570
+ this.syncSharedStateScopeBindingOnTreeChange(true);
16571
+ this.notifyChildrenSharedStateTreeChanged();
16581
16572
  }
16582
16573
  else if (layerChanged) {
16583
- this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope);
16574
+ this.notifyChildrenSharedStateTreeChanged();
16584
16575
  }
16585
16576
  }
16586
16577
  addUpdatePositionTag() {
@@ -16675,48 +16666,23 @@ class Group extends Graphic {
16675
16666
  hasSharedStateDefinitions() {
16676
16667
  return !!this._sharedStateDefinitions && Object.keys(this._sharedStateDefinitions).length > 0;
16677
16668
  }
16678
- resolveChildSharedStateScope(inheritedSharedStateScope) {
16679
- var _a;
16680
- if (this.sharedStateScope) {
16681
- return this.sharedStateScope;
16682
- }
16683
- if (inheritedSharedStateScope !== undefined) {
16684
- return inheritedSharedStateScope;
16685
- }
16686
- return (_a = this.resolveBoundSharedStateScope()) !== null && _a !== void 0 ? _a : null;
16687
- }
16688
- notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope) {
16689
- const childSharedStateScope = this.resolveChildSharedStateScope(inheritedSharedStateScope);
16669
+ notifyChildrenSharedStateTreeChanged() {
16690
16670
  this.forEachChildren(item => {
16691
- this.setStageToChild(item, childSharedStateScope);
16671
+ this.syncChildSharedStateTreeBinding(item);
16692
16672
  });
16693
16673
  }
16694
- setStageToChild(child, inheritedSharedStateScope) {
16695
- const graphic = child;
16696
- if (typeof graphic.setStage === 'function' &&
16697
- (child.onParentSharedStateTreeChanged === Graphic.prototype.onParentSharedStateTreeChanged ||
16698
- child.onParentSharedStateTreeChanged === Group.prototype.onParentSharedStateTreeChanged) &&
16699
- (graphic.stage !== this.stage || graphic.layer !== this.layer)) {
16700
- graphic.setStage(this.stage, this.layer, inheritedSharedStateScope);
16701
- return;
16702
- }
16703
- child.onParentSharedStateTreeChanged(this.stage, this.layer, inheritedSharedStateScope);
16674
+ syncChildSharedStateTreeBinding(child) {
16675
+ child.onParentSharedStateTreeChanged(this.stage, this.layer);
16704
16676
  }
16705
- syncChildSharedStateTreeBinding(child, inheritedSharedStateScope) {
16706
- if (inheritedSharedStateScope === undefined) {
16707
- inheritedSharedStateScope = this.resolveChildSharedStateScope();
16708
- }
16709
- this.setStageToChild(child, inheritedSharedStateScope);
16710
- }
16711
- onParentSharedStateTreeChanged(stage, layer, inheritedSharedStateScope) {
16677
+ onParentSharedStateTreeChanged(stage, layer) {
16712
16678
  var _a;
16713
16679
  if (this.stage !== stage || this.layer !== layer) {
16714
- this.setStage(stage, layer, inheritedSharedStateScope);
16680
+ this.setStage(stage, layer);
16715
16681
  return;
16716
16682
  }
16717
16683
  this.ensureSharedStateScopeBound();
16718
- this.syncSharedStateScopeBindingOnTreeChange(!!((_a = this.currentStates) === null || _a === void 0 ? void 0 : _a.length), inheritedSharedStateScope);
16719
- this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope);
16684
+ this.syncSharedStateScopeBindingOnTreeChange(!!((_a = this.currentStates) === null || _a === void 0 ? void 0 : _a.length));
16685
+ this.notifyChildrenSharedStateTreeChanged();
16720
16686
  }
16721
16687
  }
16722
16688
  Group.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
@@ -16724,7 +16690,262 @@ function createGroup(attributes) {
16724
16690
  return new Group(attributes);
16725
16691
  }
16726
16692
 
16727
- const POLYGON_UPDATE_TAG_KEY = ['points', 'cornerRadius', ...GRAPHIC_UPDATE_TAG_KEY];
16693
+ function drawPolygon(path, points, x, y) {
16694
+ if (!points || !points.length) {
16695
+ return;
16696
+ }
16697
+ path.moveTo(points[0].x + x, points[0].y + y);
16698
+ for (let i = 1; i < points.length; i++) {
16699
+ path.lineTo(points[i].x + x, points[i].y + y);
16700
+ }
16701
+ }
16702
+ function drawRoundedPolygon(path, points, x, y, cornerRadius, closePath = true) {
16703
+ var _a;
16704
+ const normalized = normalizePolygonPoints(points, cornerRadius, closePath);
16705
+ if (normalized) {
16706
+ drawRoundedPolygon(path, normalized.points, x, y, normalized.cornerRadius, closePath);
16707
+ return;
16708
+ }
16709
+ if (points.length < 3) {
16710
+ drawPolygon(path, points, x, y);
16711
+ return;
16712
+ }
16713
+ let startI = 0;
16714
+ let endI = points.length - 1;
16715
+ if (!closePath) {
16716
+ startI += 1;
16717
+ endI -= 1;
16718
+ path.moveTo(points[0].x + x, points[0].y + y);
16719
+ }
16720
+ for (let i = startI; i <= endI; i++) {
16721
+ const p1 = points[i === 0 ? endI : (i - 1) % points.length];
16722
+ const angularPoint = points[i % points.length];
16723
+ const p2 = points[(i + 1) % points.length];
16724
+ const dx1 = angularPoint.x - p1.x;
16725
+ const dy1 = angularPoint.y - p1.y;
16726
+ const dx2 = angularPoint.x - p2.x;
16727
+ const dy2 = angularPoint.y - p2.y;
16728
+ const angle = (Math.atan2(dy1, dx1) - Math.atan2(dy2, dx2)) / 2;
16729
+ const tan = Math.abs(Math.tan(angle));
16730
+ let radius = Array.isArray(cornerRadius) ? (_a = cornerRadius[i % points.length]) !== null && _a !== void 0 ? _a : 0 : cornerRadius;
16731
+ let segment = radius / tan;
16732
+ const length1 = getLength(dx1, dy1);
16733
+ const length2 = getLength(dx2, dy2);
16734
+ const length = Math.min(length1, length2);
16735
+ if (segment > length) {
16736
+ segment = length;
16737
+ radius = length * tan;
16738
+ }
16739
+ const p1Cross = getProportionPoint(angularPoint, segment, length1, dx1, dy1);
16740
+ const p2Cross = getProportionPoint(angularPoint, segment, length2, dx2, dy2);
16741
+ const dx = angularPoint.x * 2 - p1Cross.x - p2Cross.x;
16742
+ const dy = angularPoint.y * 2 - p1Cross.y - p2Cross.y;
16743
+ const L = getLength(dx, dy);
16744
+ const d = getLength(segment, radius);
16745
+ const circlePoint = getProportionPoint(angularPoint, d, L, dx, dy);
16746
+ let startAngle = Math.atan2(p1Cross.y - circlePoint.y, p1Cross.x - circlePoint.x);
16747
+ const endAngle = Math.atan2(p2Cross.y - circlePoint.y, p2Cross.x - circlePoint.x);
16748
+ let sweepAngle = endAngle - startAngle;
16749
+ if (sweepAngle < 0) {
16750
+ startAngle = endAngle;
16751
+ sweepAngle = -sweepAngle;
16752
+ }
16753
+ if (sweepAngle > Math.PI) {
16754
+ sweepAngle = sweepAngle - Math.PI;
16755
+ }
16756
+ if (i === 0) {
16757
+ path.moveTo(p1Cross.x + x, p1Cross.y + y);
16758
+ }
16759
+ else {
16760
+ path.lineTo(p1Cross.x + x, p1Cross.y + y);
16761
+ }
16762
+ if (sweepAngle) {
16763
+ path.arcTo(angularPoint.x + x, angularPoint.y + y, p2Cross.x + x, p2Cross.y + y, radius);
16764
+ }
16765
+ path.lineTo(p2Cross.x + x, p2Cross.y + y);
16766
+ }
16767
+ if (!closePath) {
16768
+ path.lineTo(points[endI + 1].x + x, points[endI + 1].y + y);
16769
+ }
16770
+ }
16771
+ function getLength(dx, dy) {
16772
+ return Math.sqrt(dx * dx + dy * dy);
16773
+ }
16774
+ function getProportionPoint(point, segment, length, dx, dy) {
16775
+ const factor = segment / length;
16776
+ return {
16777
+ x: point.x - dx * factor,
16778
+ y: point.y - dy * factor
16779
+ };
16780
+ }
16781
+ function normalizePolygonPoints(points, cornerRadius, closePath = true) {
16782
+ var _a;
16783
+ let hasDuplicate = false;
16784
+ for (let i = 1; i < points.length; i++) {
16785
+ if (isSamePoint(points[i - 1], points[i])) {
16786
+ hasDuplicate = true;
16787
+ break;
16788
+ }
16789
+ }
16790
+ if (!hasDuplicate && closePath && points.length > 1 && isSamePoint(points[0], points[points.length - 1])) {
16791
+ hasDuplicate = true;
16792
+ }
16793
+ if (!hasDuplicate) {
16794
+ return null;
16795
+ }
16796
+ const normalizedPoints = [];
16797
+ const normalizedCornerRadius = Array.isArray(cornerRadius) ? [] : null;
16798
+ for (let i = 0; i < points.length; i++) {
16799
+ if (normalizedPoints.length && isSamePoint(normalizedPoints[normalizedPoints.length - 1], points[i])) {
16800
+ continue;
16801
+ }
16802
+ normalizedPoints.push(points[i]);
16803
+ normalizedCornerRadius === null || normalizedCornerRadius === void 0 ? void 0 : normalizedCornerRadius.push((_a = cornerRadius[i]) !== null && _a !== void 0 ? _a : 0);
16804
+ }
16805
+ if (closePath &&
16806
+ normalizedPoints.length > 1 &&
16807
+ isSamePoint(normalizedPoints[0], normalizedPoints[normalizedPoints.length - 1])) {
16808
+ normalizedPoints.pop();
16809
+ normalizedCornerRadius === null || normalizedCornerRadius === void 0 ? void 0 : normalizedCornerRadius.pop();
16810
+ }
16811
+ return {
16812
+ points: normalizedPoints,
16813
+ cornerRadius: normalizedCornerRadius !== null && normalizedCornerRadius !== void 0 ? normalizedCornerRadius : cornerRadius
16814
+ };
16815
+ }
16816
+ function isSamePoint(a, b) {
16817
+ return a.x === b.x && a.y === b.y;
16818
+ }
16819
+ function getPolygonWinding(points) {
16820
+ let signedArea = 0;
16821
+ for (let i = 0; i < points.length; i++) {
16822
+ const current = points[i];
16823
+ const next = points[(i + 1) % points.length];
16824
+ signedArea += current.x * next.y - next.x * current.y;
16825
+ }
16826
+ return signedArea > 0 ? 1 : -1;
16827
+ }
16828
+ function offsetPolygonPoints(points, distance, closePath = true) {
16829
+ var _a;
16830
+ const n = (_a = points === null || points === void 0 ? void 0 : points.length) !== null && _a !== void 0 ? _a : 0;
16831
+ if (n < 2 || (closePath && n < 3) || !distance) {
16832
+ return points;
16833
+ }
16834
+ const sign = getPolygonWinding(points);
16835
+ const edgeCount = closePath ? n : n - 1;
16836
+ const lines = [];
16837
+ for (let i = 0; i < edgeCount; i++) {
16838
+ const cur = points[i];
16839
+ const next = points[(i + 1) % n];
16840
+ const dx = next.x - cur.x;
16841
+ const dy = next.y - cur.y;
16842
+ const len = Math.sqrt(dx * dx + dy * dy);
16843
+ if (!len) {
16844
+ lines.push(null);
16845
+ continue;
16846
+ }
16847
+ const offsetX = (sign * dy * distance) / len;
16848
+ const offsetY = (-sign * dx * distance) / len;
16849
+ lines.push({ x: cur.x + offsetX, y: cur.y + offsetY, dx, dy, len, offsetX, offsetY });
16850
+ }
16851
+ const prevLines = new Array(n);
16852
+ let prevLine = null;
16853
+ if (closePath) {
16854
+ for (let i = edgeCount - 1; i >= 0; i--) {
16855
+ if (lines[i]) {
16856
+ prevLine = lines[i];
16857
+ break;
16858
+ }
16859
+ }
16860
+ }
16861
+ for (let i = 0; i < n; i++) {
16862
+ prevLines[i] = prevLine;
16863
+ if (i < edgeCount && lines[i]) {
16864
+ prevLine = lines[i];
16865
+ }
16866
+ }
16867
+ const nextLines = new Array(n);
16868
+ let nextLine = null;
16869
+ if (closePath) {
16870
+ for (let count = 0; count < edgeCount; count++) {
16871
+ const line = lines[(n - 1 + count) % edgeCount];
16872
+ if (line) {
16873
+ nextLine = line;
16874
+ break;
16875
+ }
16876
+ }
16877
+ }
16878
+ for (let i = n - 1; i >= 0; i--) {
16879
+ if (i < edgeCount && lines[i]) {
16880
+ nextLine = lines[i];
16881
+ }
16882
+ nextLines[i] = nextLine;
16883
+ }
16884
+ const offsetPointByLine = (point, line) => ({
16885
+ x: point.x + line.offsetX,
16886
+ y: point.y + line.offsetY
16887
+ });
16888
+ const result = [];
16889
+ for (let i = 0; i < n; i++) {
16890
+ const prev = prevLines[i];
16891
+ const cur = nextLines[i];
16892
+ const line = prev || cur;
16893
+ if (!line) {
16894
+ result.push(points[i]);
16895
+ continue;
16896
+ }
16897
+ if (!prev || !cur) {
16898
+ result.push(offsetPointByLine(points[i], line));
16899
+ continue;
16900
+ }
16901
+ const denominator = prev.dx * cur.dy - prev.dy * cur.dx;
16902
+ if (Math.abs(denominator) <= 1e-12 * prev.len * cur.len) {
16903
+ result.push(offsetPointByLine(points[i], cur));
16904
+ continue;
16905
+ }
16906
+ const t = ((cur.x - prev.x) * cur.dy - (cur.y - prev.y) * cur.dx) / denominator;
16907
+ const point = { x: prev.x + prev.dx * t, y: prev.y + prev.dy * t };
16908
+ result.push(Number.isFinite(point.x) && Number.isFinite(point.y) ? point : offsetPointByLine(points[i], cur));
16909
+ }
16910
+ return result;
16911
+ }
16912
+
16913
+ const getBoundsScaleMatrix = (polygon) => {
16914
+ var _a;
16915
+ const globalMatrix = polygon.globalTransMatrix;
16916
+ const viewBoxMatrix = (_a = polygon.stage) === null || _a === void 0 ? void 0 : _a.window.getViewBoxTransform();
16917
+ if (!viewBoxMatrix) {
16918
+ return globalMatrix;
16919
+ }
16920
+ return {
16921
+ a: viewBoxMatrix.a * globalMatrix.a + viewBoxMatrix.c * globalMatrix.b,
16922
+ b: viewBoxMatrix.b * globalMatrix.a + viewBoxMatrix.d * globalMatrix.b,
16923
+ c: viewBoxMatrix.a * globalMatrix.c + viewBoxMatrix.c * globalMatrix.d,
16924
+ d: viewBoxMatrix.b * globalMatrix.c + viewBoxMatrix.d * globalMatrix.d
16925
+ };
16926
+ };
16927
+ const getPolygonBoundsScale = (polygon) => getScaledStrokeWithMatrix(getBoundsScaleMatrix(polygon), 1, 1);
16928
+ const updateBoundsOfPolygonOuterBorder = (attribute, polygonTheme, aabbBounds, polygon) => {
16929
+ const { outerBorder, points = polygonTheme.points, closePath = polygonTheme.closePath, shadowBlur = polygonTheme.shadowBlur, keepStrokeScale = polygonTheme.keepStrokeScale } = attribute;
16930
+ if (outerBorder && outerBorder.visible !== false) {
16931
+ const defaultOuterBorder = polygonTheme.outerBorder;
16932
+ const { distance = defaultOuterBorder.distance, lineWidth = defaultOuterBorder.lineWidth, lineJoin = defaultOuterBorder.lineJoin, strokeBoundsBuffer = defaultOuterBorder.strokeBoundsBuffer } = outerBorder;
16933
+ const boundsScale = getPolygonBoundsScale(polygon);
16934
+ let scaledDistance = distance;
16935
+ if (!keepStrokeScale) {
16936
+ scaledDistance *= boundsScale;
16937
+ }
16938
+ offsetPolygonPoints(points, scaledDistance, closePath).forEach(point => {
16939
+ aabbBounds.add(point.x, point.y);
16940
+ });
16941
+ const scaledLineWidth = lineWidth * (keepStrokeScale ? 1 : boundsScale);
16942
+ const scaledShadowBlur = shadowBlur * boundsScale;
16943
+ boundStroke(aabbBounds, (scaledShadowBlur + scaledLineWidth) / 2, lineJoin === 'miter', strokeBoundsBuffer);
16944
+ }
16945
+ return aabbBounds;
16946
+ };
16947
+
16948
+ const POLYGON_UPDATE_TAG_KEY = ['points', 'cornerRadius', 'outerBorder', 'keepStrokeScale', ...GRAPHIC_UPDATE_TAG_KEY];
16728
16949
  class Polygon extends Graphic {
16729
16950
  constructor(params) {
16730
16951
  super(params);
@@ -16741,6 +16962,20 @@ class Polygon extends Graphic {
16741
16962
  getGraphicTheme() {
16742
16963
  return getTheme(this).polygon;
16743
16964
  }
16965
+ tryUpdateAABBBounds() {
16966
+ const { outerBorder } = this.attribute;
16967
+ if (outerBorder && outerBorder.visible !== false) {
16968
+ const boundsScale = getPolygonBoundsScale(this);
16969
+ if (boundsScale !== this._outerBorderBoundsScale) {
16970
+ this._outerBorderBoundsScale = boundsScale;
16971
+ this.addUpdateBoundTag();
16972
+ }
16973
+ }
16974
+ else {
16975
+ this._outerBorderBoundsScale = undefined;
16976
+ }
16977
+ return super.tryUpdateAABBBounds();
16978
+ }
16744
16979
  updateAABBBounds(attribute, polygonTheme, aabbBounds) {
16745
16980
  if (!this.updatePathProxyAABBBounds(aabbBounds)) {
16746
16981
  this.updatePolygonAABBBoundsImprecise(attribute, polygonTheme, aabbBounds);
@@ -16757,6 +16992,7 @@ class Polygon extends Graphic {
16757
16992
  points.forEach(p => {
16758
16993
  aabbBounds.add(p.x, p.y);
16759
16994
  });
16995
+ updateBoundsOfPolygonOuterBorder(attribute, polygonTheme, aabbBounds, this);
16760
16996
  return aabbBounds;
16761
16997
  }
16762
16998
  _interpolate(key, ratio, lastStepVal, nextStepVal, nextAttributes) {
@@ -22413,23 +22649,27 @@ class DefaultRectRenderContribution {
22413
22649
  }
22414
22650
  const { cornerRadius = rectAttribute.cornerRadius, cornerType = rectAttribute.cornerType, opacity = rectAttribute.opacity, x: originX = rectAttribute.x, y: originY = rectAttribute.y, scaleX = rectAttribute.scaleX, scaleY = rectAttribute.scaleY, x1, y1, keepStrokeScale = rectAttribute.keepStrokeScale } = rect.attribute;
22415
22651
  let { width, height } = rect.attribute;
22416
- width = (width !== null && width !== void 0 ? width : x1 - x) || 0;
22417
- height = (height !== null && height !== void 0 ? height : y1 - y) || 0;
22652
+ width = (width !== null && width !== void 0 ? width : x1 - originX) || 0;
22653
+ height = (height !== null && height !== void 0 ? height : y1 - originY) || 0;
22654
+ const borderX = width < 0 ? x + width : x;
22655
+ const borderY = height < 0 ? y + height : y;
22656
+ const borderWidth = width < 0 ? -width : width;
22657
+ const borderHeight = height < 0 ? -height : height;
22418
22658
  const renderBorder = (borderStyle, key) => {
22419
22659
  const doStroke = !!(borderStyle && borderStyle.stroke);
22420
22660
  const sign = key === 'outerBorder' ? -1 : 1;
22421
22661
  const { distance = rectAttribute[key].distance } = borderStyle;
22422
22662
  const d = keepStrokeScale ? distance : getScaledStroke(context, distance, context.dpr);
22423
- const nextX = x + sign * d;
22424
- const nextY = y + sign * d;
22663
+ const nextX = borderX + sign * d;
22664
+ const nextY = borderY + sign * d;
22425
22665
  const dw = d * 2;
22426
22666
  if (cornerRadius === 0 || (isArray(cornerRadius) && cornerRadius.every(num => num === 0))) {
22427
22667
  context.beginPath();
22428
- context.rect(nextX, nextY, width - sign * dw, height - sign * dw);
22668
+ context.rect(nextX, nextY, borderWidth - sign * dw, borderHeight - sign * dw);
22429
22669
  }
22430
22670
  else {
22431
22671
  context.beginPath();
22432
- createRectPath(context, nextX, nextY, width - sign * dw, height - sign * dw, cornerRadius, cornerType !== 'bevel');
22672
+ createRectPath(context, nextX, nextY, borderWidth - sign * dw, borderHeight - sign * dw, cornerRadius, cornerType !== 'bevel');
22433
22673
  }
22434
22674
  context.setShadowBlendStyle && context.setShadowBlendStyle(rect, rect.attribute, rectAttribute);
22435
22675
  if (strokeCb) {
@@ -25903,99 +26143,94 @@ class DefaultCanvasTextRender extends BaseRender {
25903
26143
  class AbstractGraphicRender {
25904
26144
  }
25905
26145
 
25906
- function drawPolygon(path, points, x, y) {
25907
- if (!points || !points.length) {
25908
- return;
25909
- }
25910
- path.moveTo(points[0].x + x, points[0].y + y);
25911
- for (let i = 1; i < points.length; i++) {
25912
- path.lineTo(points[i].x + x, points[i].y + y);
25913
- }
25914
- }
25915
- function drawRoundedPolygon(path, points, x, y, cornerRadius, closePath = true) {
25916
- var _a;
25917
- if (points.length < 3) {
25918
- drawPolygon(path, points, x, y);
25919
- return;
25920
- }
25921
- let startI = 0;
25922
- let endI = points.length - 1;
25923
- if (!closePath) {
25924
- startI += 1;
25925
- endI -= 1;
25926
- path.moveTo(points[0].x + x, points[0].y + y);
26146
+ const defaultPolygonTextureRenderContribution = defaultBaseTextureRenderContribution;
26147
+ const defaultPolygonBackgroundRenderContribution = defaultBaseBackgroundRenderContribution;
26148
+ class DefaultPolygonRenderContribution {
26149
+ constructor() {
26150
+ this.time = BaseRenderContributionTime.afterFillStroke;
26151
+ this.useStyle = true;
26152
+ this.order = 0;
25927
26153
  }
25928
- for (let i = startI; i <= endI; i++) {
25929
- const p1 = points[i === 0 ? endI : (i - 1) % points.length];
25930
- const angularPoint = points[i % points.length];
25931
- const p2 = points[(i + 1) % points.length];
25932
- const dx1 = angularPoint.x - p1.x;
25933
- const dy1 = angularPoint.y - p1.y;
25934
- const dx2 = angularPoint.x - p2.x;
25935
- const dy2 = angularPoint.y - p2.y;
25936
- const angle = (Math.atan2(dy1, dx1) - Math.atan2(dy2, dx2)) / 2;
25937
- const tan = Math.abs(Math.tan(angle));
25938
- let radius = Array.isArray(cornerRadius) ? ((_a = cornerRadius[i % points.length]) !== null && _a !== void 0 ? _a : 0) : cornerRadius;
25939
- let segment = radius / tan;
25940
- const length1 = getLength(dx1, dy1);
25941
- const length2 = getLength(dx2, dy2);
25942
- const length = Math.min(length1, length2);
25943
- if (segment > length) {
25944
- segment = length;
25945
- radius = length * tan;
25946
- }
25947
- const p1Cross = getProportionPoint(angularPoint, segment, length1, dx1, dy1);
25948
- const p2Cross = getProportionPoint(angularPoint, segment, length2, dx2, dy2);
25949
- const dx = angularPoint.x * 2 - p1Cross.x - p2Cross.x;
25950
- const dy = angularPoint.y * 2 - p1Cross.y - p2Cross.y;
25951
- const L = getLength(dx, dy);
25952
- const d = getLength(segment, radius);
25953
- const circlePoint = getProportionPoint(angularPoint, d, L, dx, dy);
25954
- let startAngle = Math.atan2(p1Cross.y - circlePoint.y, p1Cross.x - circlePoint.x);
25955
- const endAngle = Math.atan2(p2Cross.y - circlePoint.y, p2Cross.x - circlePoint.x);
25956
- let sweepAngle = endAngle - startAngle;
25957
- if (sweepAngle < 0) {
25958
- startAngle = endAngle;
25959
- sweepAngle = -sweepAngle;
25960
- }
25961
- if (sweepAngle > Math.PI) {
25962
- sweepAngle = sweepAngle - Math.PI;
25963
- }
25964
- if (i === 0) {
25965
- path.moveTo(p1Cross.x + x, p1Cross.y + y);
25966
- }
25967
- else {
25968
- path.lineTo(p1Cross.x + x, p1Cross.y + y);
25969
- }
25970
- if (sweepAngle) {
25971
- path.arcTo(angularPoint.x + x, angularPoint.y + y, p2Cross.x + x, p2Cross.y + y, radius);
26154
+ drawShape(polygon, context, x, y, doFill, doStroke, fVisible, sVisible, polygonAttribute, drawContext, fillCb, strokeCb) {
26155
+ const { outerBorder, innerBorder } = polygon.attribute;
26156
+ const doOuterBorder = outerBorder && outerBorder.visible !== false;
26157
+ const doInnerBorder = innerBorder && innerBorder.visible !== false;
26158
+ if (!(doOuterBorder || doInnerBorder)) {
26159
+ return;
25972
26160
  }
25973
- path.lineTo(p2Cross.x + x, p2Cross.y + y);
25974
- }
25975
- if (!closePath) {
25976
- path.lineTo(points[endI + 1].x + x, points[endI + 1].y + y);
26161
+ const { points = polygonAttribute.points, cornerRadius = polygonAttribute.cornerRadius, opacity = polygonAttribute.opacity, x: originX = polygonAttribute.x, y: originY = polygonAttribute.y, scaleX = polygonAttribute.scaleX, scaleY = polygonAttribute.scaleY, keepStrokeScale = polygonAttribute.keepStrokeScale, closePath = polygonAttribute.closePath } = polygon.attribute;
26162
+ const renderBorder = (borderStyle, key) => {
26163
+ var _a, _b;
26164
+ const doBorderStroke = !!borderStyle.stroke;
26165
+ const distanceDirection = key === 'outerBorder' ? 1 : -1;
26166
+ const { distance = polygonAttribute[key].distance } = borderStyle;
26167
+ const borderDistance = distanceDirection *
26168
+ (keepStrokeScale ? distance : getScaledStroke(context, distance, context.dpr));
26169
+ const normalized = normalizePolygonPoints(points, cornerRadius, closePath);
26170
+ const normalizedPoints = (_a = normalized === null || normalized === void 0 ? void 0 : normalized.points) !== null && _a !== void 0 ? _a : points;
26171
+ const normalizedCornerRadius = (_b = normalized === null || normalized === void 0 ? void 0 : normalized.cornerRadius) !== null && _b !== void 0 ? _b : cornerRadius;
26172
+ const borderPoints = offsetPolygonPoints(normalizedPoints, borderDistance, closePath);
26173
+ const winding = getPolygonWinding(normalizedPoints);
26174
+ const borderCornerRadius = normalizedPoints.map((point, i) => {
26175
+ var _a;
26176
+ const radius = isArray(normalizedCornerRadius)
26177
+ ? (_a = normalizedCornerRadius[i]) !== null && _a !== void 0 ? _a : 0
26178
+ : normalizedCornerRadius || 0;
26179
+ if ((!closePath && (i === 0 || i === normalizedPoints.length - 1)) || normalizedPoints.length < 3) {
26180
+ return radius;
26181
+ }
26182
+ const prev = normalizedPoints[(i - 1 + normalizedPoints.length) % normalizedPoints.length];
26183
+ const next = normalizedPoints[(i + 1) % normalizedPoints.length];
26184
+ const cross = (point.x - prev.x) * (next.y - point.y) - (point.y - prev.y) * (next.x - point.x);
26185
+ const cornerDirection = cross * winding < 0 ? -1 : 1;
26186
+ return Math.max(0, radius + borderDistance * cornerDirection);
26187
+ });
26188
+ const noCorner = borderCornerRadius.length === 0 || borderCornerRadius.every(r => r === 0);
26189
+ context.beginPath();
26190
+ if (noCorner) {
26191
+ drawPolygon(context.camera ? context : context.nativeContext, borderPoints, x, y);
26192
+ }
26193
+ else {
26194
+ drawRoundedPolygon(context.camera ? context : context.nativeContext, borderPoints, x, y, borderCornerRadius, closePath);
26195
+ }
26196
+ closePath && context.closePath();
26197
+ context.setShadowBlendStyle && context.setShadowBlendStyle(polygon, polygon.attribute, polygonAttribute);
26198
+ if (strokeCb) {
26199
+ strokeCb(context, borderStyle, polygonAttribute[key]);
26200
+ }
26201
+ else if (doBorderStroke) {
26202
+ const lastOpacity = polygonAttribute[key].opacity;
26203
+ const borderStyleWithStrokeScale = borderStyle;
26204
+ const lastKeepStrokeScale = borderStyleWithStrokeScale.keepStrokeScale;
26205
+ polygonAttribute[key].opacity = opacity;
26206
+ borderStyleWithStrokeScale.keepStrokeScale = keepStrokeScale;
26207
+ context.setStrokeStyle(polygon, borderStyleWithStrokeScale, (originX - x) / scaleX, (originY - y) / scaleY, polygonAttribute[key]);
26208
+ polygonAttribute[key].opacity = lastOpacity;
26209
+ if (lastKeepStrokeScale === undefined) {
26210
+ delete borderStyleWithStrokeScale.keepStrokeScale;
26211
+ }
26212
+ else {
26213
+ borderStyleWithStrokeScale.keepStrokeScale = lastKeepStrokeScale;
26214
+ }
26215
+ context.stroke();
26216
+ }
26217
+ };
26218
+ doOuterBorder && renderBorder(outerBorder, 'outerBorder');
26219
+ doInnerBorder && renderBorder(innerBorder, 'innerBorder');
25977
26220
  }
25978
26221
  }
25979
- function getLength(dx, dy) {
25980
- return Math.sqrt(dx * dx + dy * dy);
25981
- }
25982
- function getProportionPoint(point, segment, length, dx, dy) {
25983
- const factor = segment / length;
25984
- return {
25985
- x: point.x - dx * factor,
25986
- y: point.y - dy * factor
25987
- };
25988
- }
25989
-
25990
- const defaultPolygonTextureRenderContribution = defaultBaseTextureRenderContribution;
25991
- const defaultPolygonBackgroundRenderContribution = defaultBaseBackgroundRenderContribution;
26222
+ const defaultPolygonRenderContribution = new DefaultPolygonRenderContribution();
25992
26223
 
25993
26224
  class DefaultCanvasPolygonRender extends BaseRender {
25994
26225
  constructor(graphicRenderContributions) {
25995
26226
  super();
25996
26227
  this.graphicRenderContributions = graphicRenderContributions;
25997
26228
  this.numberType = POLYGON_NUMBER_TYPE;
25998
- this.builtinContributions = [defaultPolygonBackgroundRenderContribution, defaultPolygonTextureRenderContribution];
26229
+ this.builtinContributions = [
26230
+ defaultPolygonRenderContribution,
26231
+ defaultPolygonBackgroundRenderContribution,
26232
+ defaultPolygonTextureRenderContribution
26233
+ ];
25999
26234
  this.init(graphicRenderContributions);
26000
26235
  }
26001
26236
  drawShape(polygon, context, x, y, drawContext, params, fillCb, strokeCb) {
@@ -30889,4 +31124,4 @@ const registerFlexLayoutPlugin = () => {
30889
31124
  Factory.registerPlugin('FlexLayoutPlugin', FlexLayoutPlugin);
30890
31125
  };
30891
31126
 
30892
- export { APPLICATION_STATE_SYMBOL, ARC3D_NUMBER_TYPE, ARC_NUMBER_TYPE, AREA_NUMBER_TYPE, AbstractGraphicRender, AnimateMode, AnimateStatus, AnimateStepType, AppContext, Application, Arc, Arc3d, Arc3dRender, ArcRender, ArcRenderContribution, Area, AreaRender, AreaRenderContribution, AttributeUpdateType, AutoEnablePlugins, Base3dRender, BaseCanvas, BaseEnvContribution, BaseRender, BaseRenderContributionTime, BaseWindowHandlerContribution, Basis, BeforeRenderConstribution, BoundsContext, BoundsPicker, BrowserEntry, CIRCLE_NUMBER_TYPE, CONTRIBUTION_STORE_STATE_SYMBOL, Canvas3DDrawItemInterceptor, Canvas3DPickItemInterceptor, CanvasFactory, CanvasTextLayout, Circle, CircleRender, CircleRenderContribution, ColorInterpolate, ColorStore, ColorType, CommonDrawItemInterceptorContribution, CommonRenderContribution, Context2dFactory, ContributionProvider, ContributionRegistry, ContributionStore, CubicBezierCurve, CurveContext, CurveTypeEnum, CustomEvent, CustomPath2D, CustomSymbolClass, DEFAULT_TEXT_FONT_FAMILY, DebugDrawItemInterceptorContribution, DefaultArcAllocate, DefaultArcAttribute, DefaultArcRenderContribution, DefaultAreaAllocate, DefaultAreaAttribute, DefaultAreaTextureRenderContribution, DefaultAttribute, DefaultBaseBackgroundRenderContribution, DefaultBaseClipRenderAfterContribution, DefaultBaseClipRenderBeforeContribution, DefaultBaseInteractiveRenderContribution, DefaultBaseTextureRenderContribution, DefaultCanvasAllocate, DefaultCanvasArc3DRender, DefaultCanvasArcRender, DefaultCanvasAreaRender, DefaultCanvasCircleRender, DefaultCanvasGroupRender, DefaultCanvasImageRender, DefaultCanvasLineRender, DefaultCanvasPathRender, DefaultCanvasPolygonRender, DefaultCanvasPyramid3dRender, DefaultCanvasRect3dRender, DefaultCanvasRectRender, DefaultCanvasSymbolRender, DefaultCanvasTextRender, DefaultCircleAllocate, DefaultCircleAttribute, DefaultCircleRenderContribution, DefaultConnectAttribute, DefaultDebugAttribute, DefaultFillStyle, DefaultGlobal, DefaultGlobalPickerService, DefaultGlyphAttribute, DefaultGraphicAllocate, DefaultGraphicMemoryManager, DefaultGraphicService, DefaultGraphicUtil, DefaultGroupAttribute, DefaultGroupBackgroundRenderContribution, DefaultImageAttribute, DefaultImageRenderContribution, DefaultLayerService, DefaultLayout, DefaultLineAllocate, DefaultLineAttribute, DefaultMat4Allocate, DefaultMatrixAllocate, DefaultPathAllocate, DefaultPathAttribute, DefaultPickService, DefaultPickStyle, DefaultPolygonAttribute, DefaultRect3dAttribute, DefaultRectAllocate, DefaultRectAttribute, DefaultRectRenderContribution, DefaultRenderService, DefaultRichTextAttribute, DefaultRichTextIconAttribute, DefaultStarAttribute, DefaultStrokeStyle, DefaultStyle, DefaultSymbolAllocate, DefaultSymbolAttribute, DefaultSymbolClipRangeStrokeRenderContribution, DefaultSymbolRenderContribution, DefaultTextAllocate, DefaultTextAttribute, DefaultTextMeasureContribution, DefaultTextStyle, DefaultTransform, DefaultTransformUtil, DefaultWindow, Direction, DirectionalLight, DrawContribution, DrawItemInterceptor, DynamicLayerHandlerContribution, Edge, EditModule, EmptyContext2d, EnvContribution, EventManager, EventSystem, EventTarget, FACTORY_STATE_SYMBOL, FORMAT_ALL_TEXT_COMMAND, FORMAT_ELEMENT_COMMAND, FORMAT_TEXT_COMMAND, Factory, FederatedEvent, FederatedMouseEvent, FederatedPointerEvent, FederatedWheelEvent, FlexLayoutPlugin, GLYPH_NUMBER_TYPE, GRAPHIC_CLASS_SYMBOL, GRAPHIC_REGISTRY_SYMBOL, GRAPHIC_UPDATE_TAG_KEY, GROUP_NUMBER_TYPE, Generator, GlobalPickerService, Glyph, GlyphRender, GradientParser, Graphic, GraphicCreator$1 as GraphicCreator, GraphicFactory, GraphicPicker, GraphicRender, GraphicService, GraphicUtil, Group, GroupRender, GroupRenderContribution, GroupUpdateAABBBoundsMode, HtmlAttributePlugin, IContainPointMode, IMAGE_NUMBER_TYPE, Image, ImageRender, ImageRenderContribution, IncrementalDrawContribution, InteractiveDrawItemInterceptorContribution, InteractivePickItemInterceptorContribution, InteractiveSubRenderContribution, LINE_NUMBER_TYPE, Layer, LayerFactory, LayerService, Line$1 as Line, LineRender, Linear, LinearClosed, Mat4Allocate, MatrixAllocate, MeasureModeEnum, MiniappEntry, MonotoneX, MonotoneY, NOWORK_ANIMATE_ATTR, Node, NodeEntry, OrthoCamera, PATH_NUMBER_TYPE, POLYGON_NUMBER_TYPE, PURE_STYLE_KEY, PYRAMID3D_NUMBER_TYPE, Path, PathRender, PathRenderContribution, PerformanceRAF, PickItemInterceptor, PickServiceInterceptor, PickerRegistry, PickerService, PluginRegistry, PluginService, Polygon, PolygonRender, PolygonRenderContribution, Pyramid3d, Pyramid3dRender, RECT3D_NUMBER_TYPE, RECT_NUMBER_TYPE, RICHTEXT_NUMBER_TYPE, RUNTIME_INSTALLER_STATE_SYMBOL, RafBasedSTO, ReactAttributePlugin, Rect, Rect3DRender, Rect3d, RectRender, RectRenderContribution, ReflectSegContext, RenderSelector, RenderService, RendererRegistry, ResourceLoader, RichText, RichTextEditPlugin, RichTextRender, STAR_NUMBER_TYPE, STATUS$1 as STATUS, SVG_ATTRIBUTE_MAP, SVG_ATTRIBUTE_MAP_KEYS, SVG_PARSE_ATTRIBUTE_MAP, SVG_PARSE_ATTRIBUTE_MAP_KEYS, SYMBOL_NUMBER_TYPE, SegContext, ShadowPickServiceInterceptorContribution, ShadowRoot, ShadowRootDrawItemInterceptorContribution, ShadowRootPickItemInterceptorContribution, SplitRectAfterRenderContribution, SplitRectBeforeRenderContribution, Stage, StageFactory, Star, StarRender, StarRenderContribution, StateDefinitionCompiler, StateEngine, StaticLayerHandlerContribution, Step, StepClosed, Symbol$1 as Symbol, SymbolRender, SymbolRenderContribution, TEXT_NUMBER_TYPE, Text, TextDirection, TextMeasureContribution, TextRender, TextRenderContribution, Theme, TransformUtil, UpdateTag, VGlobal, VWindow, ViewTransform3dPlugin, VirtualLayerHandlerContribution, WILDCARD, WindowHandlerContribution, WrapText, XMLParser, _calculateLineHeight, _interpolateColor, addArcToBezierPath, addAttributeToPrototype, alignBezierCurves, alignSubpath, application, applyTransformOnBezierCurves, arc3dModule, arcModule, areaModule, bezier, bezierCurversToPath, binarySplitPolygon, bindArc3dRenderModule, bindArcRenderModule, bindAreaRenderModule, bindCircleRenderModule, bindContributionProvider, bindContributionProviderNoSingletonScope, bindGlyphRenderModule, bindImageRenderModule, bindLineRenderModule, bindPathRenderModule, bindPolygonRenderModule, bindPyramid3dRenderModule, bindRect3dRenderModule, bindRectRenderModule, bindRichtextRenderModule, bindStarRenderModule, bindSymbolRenderModule, bindTextRenderModule, boundStroke, builtInSymbolStrMap, builtinSymbols, builtinSymbolsMap, calcLineCache, calculateArcCornerRadius, calculateLineHeight, canvasAllocate, centroidOfSubpath, circleBounds, circleModule, clock, colorEqual, colorStringInterpolationToStr, configureRuntimeApplicationForApp, container, cornerTangents, createBrowserApp as createApp, createArc, createArc3d, createArea, createBrowserApp, createCanvasEventTransformer, createCircle, createColor, createConicalGradient, createContributionProvider, createEventTransformer, createGlyph, createGraphic, createGroup, createImage, createLine, createMat4, createMiniappApp, createNodeApp, createPath, createPolygon, createPyramid3d, createRect, createRect3d, createRectPath, createRichText, createShadowRoot, createStage, createStar, createSymbol, createText, createWrapText, cubicCalc, cubicLength, cubicPointAt, cubicSubdivide, defaultArcAllocate, defaultArcBackgroundRenderContribution, defaultArcRenderContribution, defaultArcTextureRenderContribution, defaultAreaAllocate, defaultBaseBackgroundRenderContribution, defaultBaseClipRenderAfterContribution, defaultBaseClipRenderBeforeContribution, defaultBaseTextureRenderContribution, defaultCircleAllocate, defaultCircleBackgroundRenderContribution, defaultCircleRenderContribution, defaultCircleTextureRenderContribution, defaultGraphicMemoryManager, defaultGroupBackgroundRenderContribution, defaultImageBackgroundRenderContribution, defaultImageRenderContribution, defaultLineAllocate, defaultPathAllocate, defaultRectAllocate, defaultRectBackgroundRenderContribution, defaultRectRenderContribution, defaultRectTextureRenderContribution, defaultStarBackgroundRenderContribution, defaultStarTextureRenderContribution, defaultSymbolAllocate, defaultSymbolBackgroundRenderContribution, defaultSymbolClipRangeStrokeRenderContribution, defaultSymbolRenderContribution, defaultSymbolTextureRenderContribution, defaultTextAllocate, diff, divideCubic, drawArc, drawArcPath$1 as drawArcPath, drawAreaSegments, drawBackgroundImage, drawImageWithLayout, drawIncrementalAreaSegments, drawIncrementalSegments, drawSegments, enumCommandMap, fillVisible, findBestMorphingRotation, findConfigIndexByCursorIdx, findCursorIdxByConfigIndex, findNextGraphic, flatten_simplify, foreach, foreachAsync, genBasisSegments, genBasisTypeSegments, genLinearClosedSegments, genLinearClosedTypeSegments, genLinearSegments, genLinearTypeSegments, genMonotoneXSegments, genMonotoneXTypeSegments, genMonotoneYSegments, genMonotoneYTypeSegments, genNumberType, genStepClosedSegments, genStepSegments, genStepTypeSegments, getApplicationState, getAttributeFromDefaultAttrList, getBackgroundImage, getConicGradientAt, getContributionStoreState, getCurrentEnv, getDefaultCharacterConfig, getExtraModelMatrix, getFactoryState, getGraphicClassState, getGraphicRegistryState, getLegacyBindingContext, getModelMatrix, getRichTextBounds, getRuntimeInstallerBindingContext, getRuntimeInstallerGlobal, getRuntimeInstallerState, getScaledStroke, getTextBounds, getTheme, getThemeFromGroup, globalTheme, glyphModule, graphicCreator, graphicService, graphicUtil, identityMat4, imageModule, incrementalAddTo, installRuntimeContributionModule, installRuntimeDrawContributionsToApp, installRuntimeGraphicRenderersToApp, installRuntimePickersToApp, interpolateColor, interpolateGradientConicalColor, interpolateGradientLinearColor, interpolateGradientRadialColor, interpolatePureColorArray, interpolatePureColorArrayToStr, intersect, isBrowserEnv, isNoRepeatSizingMode, isNodeEnv, isSvg, isXML, layerService, lineModule, lookAt, mapToCanvasPointForCanvas, mat3Tomat4, mat4Allocate, matrixAllocate, multiplyMat4Mat3, multiplyMat4Mat4, newThemeObj, ortho, parsePadding, parseStroke, parseSvgPath, pathModule, pathToBezierCurves, point$3 as point, pointEqual, pointInterpolation, pointInterpolationHighPerformance, pointsEqual, pointsInterpolation, polygonModule, preLoadAllModule, pyramid3dModule, quadCalc, quadLength, quadPointAt, rafBasedSto, rect3dModule, rectFillVisible, rectModule, rectStrokeVisible, recursiveCallBinarySplit, refreshRuntimeInstallerContributions, registerArc3dGraphic, registerArcGraphic, registerAreaGraphic, registerCircleGraphic, registerDirectionalLight, registerFlexLayoutPlugin, registerGlobalEventTransformer, registerGlyphGraphic, registerGraphic, registerGroupGraphic, registerHtmlAttributePlugin, registerImageGraphic, registerLineGraphic, registerOrthoCamera, registerPathGraphic, registerPolygonGraphic, registerPyramid3dGraphic, registerReactAttributePlugin, registerRect3dGraphic, registerRectGraphic, registerRichtextGraphic, registerShadowRootGraphic, registerStarGraphic, registerSymbolGraphic, registerTextGraphic, registerViewTransform3dPlugin, registerWindowEventTransformer, registerWrapTextGraphic, renderCommandList, resolveBackgroundDrawMode, resolveBackgroundParamsByImageSizing, resolveBackgroundPosition, resolveBackgroundSizing, resolveContainerBinding, resolveImageMode, resolveImageRepeatMode, resolveRenderableImageSize, rewriteProto, richtextModule, rotateX, rotateY, rotateZ, runFill, runStroke, scaleMat4, segments, shouldClipImageByLayout, shouldUseMat4, snapLength, splitArc, splitArea, splitCircle, splitLine, splitPath, splitPolygon, splitRect, splitToGrids, starModule, strCommandMap, strokeVisible, symbolModule, textAttributesToStyle, textDrawOffsetX, textDrawOffsetY, textLayoutOffsetY, textModule, transformMat4, transformPointForCanvas, transformUtil, translate, verticalLayout, vglobal, waitForAllSubLayers, wrapCanvas, wrapContext, xul };
31127
+ export { APPLICATION_STATE_SYMBOL, ARC3D_NUMBER_TYPE, ARC_NUMBER_TYPE, AREA_NUMBER_TYPE, AbstractGraphicRender, AnimateMode, AnimateStatus, AnimateStepType, AppContext, Application, Arc, Arc3d, Arc3dRender, ArcRender, ArcRenderContribution, Area, AreaRender, AreaRenderContribution, AttributeUpdateType, AutoEnablePlugins, Base3dRender, BaseCanvas, BaseEnvContribution, BaseRender, BaseRenderContributionTime, BaseWindowHandlerContribution, Basis, BeforeRenderConstribution, BoundsContext, BoundsPicker, BrowserEntry, CIRCLE_NUMBER_TYPE, CONTRIBUTION_STORE_STATE_SYMBOL, Canvas3DDrawItemInterceptor, Canvas3DPickItemInterceptor, CanvasFactory, CanvasTextLayout, Circle, CircleRender, CircleRenderContribution, ColorInterpolate, ColorStore, ColorType, CommonDrawItemInterceptorContribution, CommonRenderContribution, Context2dFactory, ContributionProvider, ContributionRegistry, ContributionStore, CubicBezierCurve, CurveContext, CurveTypeEnum, CustomEvent, CustomPath2D, CustomSymbolClass, DEFAULT_TEXT_FONT_FAMILY, DebugDrawItemInterceptorContribution, DefaultArcAllocate, DefaultArcAttribute, DefaultArcRenderContribution, DefaultAreaAllocate, DefaultAreaAttribute, DefaultAreaTextureRenderContribution, DefaultAttribute, DefaultBaseBackgroundRenderContribution, DefaultBaseClipRenderAfterContribution, DefaultBaseClipRenderBeforeContribution, DefaultBaseInteractiveRenderContribution, DefaultBaseTextureRenderContribution, DefaultCanvasAllocate, DefaultCanvasArc3DRender, DefaultCanvasArcRender, DefaultCanvasAreaRender, DefaultCanvasCircleRender, DefaultCanvasGroupRender, DefaultCanvasImageRender, DefaultCanvasLineRender, DefaultCanvasPathRender, DefaultCanvasPolygonRender, DefaultCanvasPyramid3dRender, DefaultCanvasRect3dRender, DefaultCanvasRectRender, DefaultCanvasSymbolRender, DefaultCanvasTextRender, DefaultCircleAllocate, DefaultCircleAttribute, DefaultCircleRenderContribution, DefaultConnectAttribute, DefaultDebugAttribute, DefaultFillStyle, DefaultGlobal, DefaultGlobalPickerService, DefaultGlyphAttribute, DefaultGraphicAllocate, DefaultGraphicMemoryManager, DefaultGraphicService, DefaultGraphicUtil, DefaultGroupAttribute, DefaultGroupBackgroundRenderContribution, DefaultImageAttribute, DefaultImageRenderContribution, DefaultLayerService, DefaultLayout, DefaultLineAllocate, DefaultLineAttribute, DefaultMat4Allocate, DefaultMatrixAllocate, DefaultPathAllocate, DefaultPathAttribute, DefaultPickService, DefaultPickStyle, DefaultPolygonAttribute, DefaultRect3dAttribute, DefaultRectAllocate, DefaultRectAttribute, DefaultRectRenderContribution, DefaultRenderService, DefaultRichTextAttribute, DefaultRichTextIconAttribute, DefaultStarAttribute, DefaultStrokeStyle, DefaultStyle, DefaultSymbolAllocate, DefaultSymbolAttribute, DefaultSymbolClipRangeStrokeRenderContribution, DefaultSymbolRenderContribution, DefaultTextAllocate, DefaultTextAttribute, DefaultTextMeasureContribution, DefaultTextStyle, DefaultTransform, DefaultTransformUtil, DefaultWindow, Direction, DirectionalLight, DrawContribution, DrawItemInterceptor, DynamicLayerHandlerContribution, Edge, EditModule, EmptyContext2d, EnvContribution, EventManager, EventSystem, EventTarget, FACTORY_STATE_SYMBOL, FORMAT_ALL_TEXT_COMMAND, FORMAT_ELEMENT_COMMAND, FORMAT_TEXT_COMMAND, Factory, FederatedEvent, FederatedMouseEvent, FederatedPointerEvent, FederatedWheelEvent, FlexLayoutPlugin, GLYPH_NUMBER_TYPE, GRAPHIC_CLASS_SYMBOL, GRAPHIC_REGISTRY_SYMBOL, GRAPHIC_UPDATE_TAG_KEY, GROUP_NUMBER_TYPE, Generator, GlobalPickerService, Glyph, GlyphRender, GradientParser, Graphic, GraphicCreator$1 as GraphicCreator, GraphicFactory, GraphicPicker, GraphicRender, GraphicService, GraphicUtil, Group, GroupRender, GroupRenderContribution, GroupUpdateAABBBoundsMode, HtmlAttributePlugin, IContainPointMode, IMAGE_NUMBER_TYPE, Image, ImageRender, ImageRenderContribution, IncrementalDrawContribution, InteractiveDrawItemInterceptorContribution, InteractivePickItemInterceptorContribution, InteractiveSubRenderContribution, LINE_NUMBER_TYPE, Layer, LayerFactory, LayerService, Line$1 as Line, LineRender, Linear, LinearClosed, Mat4Allocate, MatrixAllocate, MeasureModeEnum, MiniappEntry, MonotoneX, MonotoneY, NOWORK_ANIMATE_ATTR, Node, NodeEntry, OrthoCamera, PATH_NUMBER_TYPE, POLYGON_NUMBER_TYPE, PURE_STYLE_KEY, PYRAMID3D_NUMBER_TYPE, Path, PathRender, PathRenderContribution, PerformanceRAF, PickItemInterceptor, PickServiceInterceptor, PickerRegistry, PickerService, PluginRegistry, PluginService, Polygon, PolygonRender, PolygonRenderContribution, Pyramid3d, Pyramid3dRender, RECT3D_NUMBER_TYPE, RECT_NUMBER_TYPE, RICHTEXT_NUMBER_TYPE, RUNTIME_INSTALLER_STATE_SYMBOL, RafBasedSTO, ReactAttributePlugin, Rect, Rect3DRender, Rect3d, RectRender, RectRenderContribution, ReflectSegContext, RenderSelector, RenderService, RendererRegistry, ResourceLoader, RichText, RichTextEditPlugin, RichTextRender, STAR_NUMBER_TYPE, STATUS$1 as STATUS, SVG_ATTRIBUTE_MAP, SVG_ATTRIBUTE_MAP_KEYS, SVG_PARSE_ATTRIBUTE_MAP, SVG_PARSE_ATTRIBUTE_MAP_KEYS, SYMBOL_NUMBER_TYPE, SegContext, ShadowPickServiceInterceptorContribution, ShadowRoot, ShadowRootDrawItemInterceptorContribution, ShadowRootPickItemInterceptorContribution, SplitRectAfterRenderContribution, SplitRectBeforeRenderContribution, Stage, StageFactory, Star, StarRender, StarRenderContribution, StateDefinitionCompiler, StateEngine, StaticLayerHandlerContribution, Step, StepClosed, Symbol$1 as Symbol, SymbolRender, SymbolRenderContribution, TEXT_NUMBER_TYPE, Text, TextDirection, TextMeasureContribution, TextRender, TextRenderContribution, Theme, TransformUtil, UpdateTag, VGlobal, VWindow, ViewTransform3dPlugin, VirtualLayerHandlerContribution, WILDCARD, WindowHandlerContribution, WrapText, XMLParser, _calculateLineHeight, _interpolateColor, addArcToBezierPath, addAttributeToPrototype, alignBezierCurves, alignSubpath, application, applyTransformOnBezierCurves, arc3dModule, arcModule, areaModule, bezier, bezierCurversToPath, binarySplitPolygon, bindArc3dRenderModule, bindArcRenderModule, bindAreaRenderModule, bindCircleRenderModule, bindContributionProvider, bindContributionProviderNoSingletonScope, bindGlyphRenderModule, bindImageRenderModule, bindLineRenderModule, bindPathRenderModule, bindPolygonRenderModule, bindPyramid3dRenderModule, bindRect3dRenderModule, bindRectRenderModule, bindRichtextRenderModule, bindStarRenderModule, bindSymbolRenderModule, bindTextRenderModule, boundStroke, builtInSymbolStrMap, builtinSymbols, builtinSymbolsMap, calcLineCache, calculateArcCornerRadius, calculateLineHeight, canvasAllocate, centroidOfSubpath, circleBounds, circleModule, clock, colorEqual, colorStringInterpolationToStr, configureRuntimeApplicationForApp, container, cornerTangents, createBrowserApp as createApp, createArc, createArc3d, createArea, createBrowserApp, createCanvasEventTransformer, createCircle, createColor, createConicalGradient, createContributionProvider, createEventTransformer, createGlyph, createGraphic, createGroup, createImage, createLine, createMat4, createMiniappApp, createNodeApp, createPath, createPolygon, createPyramid3d, createRect, createRect3d, createRectPath, createRichText, createShadowRoot, createStage, createStar, createSymbol, createText, createWrapText, cubicCalc, cubicLength, cubicPointAt, cubicSubdivide, defaultArcAllocate, defaultArcBackgroundRenderContribution, defaultArcRenderContribution, defaultArcTextureRenderContribution, defaultAreaAllocate, defaultBaseBackgroundRenderContribution, defaultBaseClipRenderAfterContribution, defaultBaseClipRenderBeforeContribution, defaultBaseTextureRenderContribution, defaultCircleAllocate, defaultCircleBackgroundRenderContribution, defaultCircleRenderContribution, defaultCircleTextureRenderContribution, defaultGraphicMemoryManager, defaultGroupBackgroundRenderContribution, defaultImageBackgroundRenderContribution, defaultImageRenderContribution, defaultLineAllocate, defaultPathAllocate, defaultRectAllocate, defaultRectBackgroundRenderContribution, defaultRectRenderContribution, defaultRectTextureRenderContribution, defaultStarBackgroundRenderContribution, defaultStarTextureRenderContribution, defaultSymbolAllocate, defaultSymbolBackgroundRenderContribution, defaultSymbolClipRangeStrokeRenderContribution, defaultSymbolRenderContribution, defaultSymbolTextureRenderContribution, defaultTextAllocate, diff, divideCubic, drawArc, drawArcPath$1 as drawArcPath, drawAreaSegments, drawBackgroundImage, drawImageWithLayout, drawIncrementalAreaSegments, drawIncrementalSegments, drawSegments, enumCommandMap, fillVisible, findBestMorphingRotation, findConfigIndexByCursorIdx, findCursorIdxByConfigIndex, findNextGraphic, flatten_simplify, foreach, foreachAsync, genBasisSegments, genBasisTypeSegments, genLinearClosedSegments, genLinearClosedTypeSegments, genLinearSegments, genLinearTypeSegments, genMonotoneXSegments, genMonotoneXTypeSegments, genMonotoneYSegments, genMonotoneYTypeSegments, genNumberType, genStepClosedSegments, genStepSegments, genStepTypeSegments, getApplicationState, getAttributeFromDefaultAttrList, getBackgroundImage, getConicGradientAt, getContributionStoreState, getCurrentEnv, getDefaultCharacterConfig, getExtraModelMatrix, getFactoryState, getGraphicClassState, getGraphicRegistryState, getLegacyBindingContext, getModelMatrix, getRichTextBounds, getRuntimeInstallerBindingContext, getRuntimeInstallerGlobal, getRuntimeInstallerState, getScaledStroke, getScaledStrokeWithMatrix, getTextBounds, getTheme, getThemeFromGroup, globalTheme, glyphModule, graphicCreator, graphicService, graphicUtil, identityMat4, imageModule, incrementalAddTo, installRuntimeContributionModule, installRuntimeDrawContributionsToApp, installRuntimeGraphicRenderersToApp, installRuntimePickersToApp, interpolateColor, interpolateGradientConicalColor, interpolateGradientLinearColor, interpolateGradientRadialColor, interpolatePureColorArray, interpolatePureColorArrayToStr, intersect, isBrowserEnv, isNoRepeatSizingMode, isNodeEnv, isSvg, isXML, layerService, lineModule, lookAt, mapToCanvasPointForCanvas, mat3Tomat4, mat4Allocate, matrixAllocate, multiplyMat4Mat3, multiplyMat4Mat4, newThemeObj, ortho, parsePadding, parseStroke, parseSvgPath, pathModule, pathToBezierCurves, point$3 as point, pointEqual, pointInterpolation, pointInterpolationHighPerformance, pointsEqual, pointsInterpolation, polygonModule, preLoadAllModule, pyramid3dModule, quadCalc, quadLength, quadPointAt, rafBasedSto, rect3dModule, rectFillVisible, rectModule, rectStrokeVisible, recursiveCallBinarySplit, refreshRuntimeInstallerContributions, registerArc3dGraphic, registerArcGraphic, registerAreaGraphic, registerCircleGraphic, registerDirectionalLight, registerFlexLayoutPlugin, registerGlobalEventTransformer, registerGlyphGraphic, registerGraphic, registerGroupGraphic, registerHtmlAttributePlugin, registerImageGraphic, registerLineGraphic, registerOrthoCamera, registerPathGraphic, registerPolygonGraphic, registerPyramid3dGraphic, registerReactAttributePlugin, registerRect3dGraphic, registerRectGraphic, registerRichtextGraphic, registerShadowRootGraphic, registerStarGraphic, registerSymbolGraphic, registerTextGraphic, registerViewTransform3dPlugin, registerWindowEventTransformer, registerWrapTextGraphic, renderCommandList, resolveBackgroundDrawMode, resolveBackgroundParamsByImageSizing, resolveBackgroundPosition, resolveBackgroundSizing, resolveContainerBinding, resolveImageMode, resolveImageRepeatMode, resolveRenderableImageSize, rewriteProto, richtextModule, rotateX, rotateY, rotateZ, runFill, runStroke, scaleMat4, segments, shouldClipImageByLayout, shouldUseMat4, snapLength, splitArc, splitArea, splitCircle, splitLine, splitPath, splitPolygon, splitRect, splitToGrids, starModule, strCommandMap, strokeVisible, symbolModule, textAttributesToStyle, textDrawOffsetX, textDrawOffsetY, textLayoutOffsetY, textModule, transformMat4, transformPointForCanvas, transformUtil, translate, verticalLayout, vglobal, waitForAllSubLayers, wrapCanvas, wrapContext, xul };