@wcardinal/wcardinal-ui 0.372.0 → 0.374.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/dist/types/wcardinal/ui/d-align-horizontal.d.ts +1 -1
  2. package/dist/types/wcardinal/ui/d-align-vertical.d.ts +1 -1
  3. package/dist/types/wcardinal/ui/d-align-with.d.ts +1 -1
  4. package/dist/types/wcardinal/ui/d-animation.d.ts +5 -5
  5. package/dist/types/wcardinal/ui/d-base-interactive.d.ts +1 -1
  6. package/dist/types/wcardinal/ui/d-base-point.d.ts +1 -1
  7. package/dist/types/wcardinal/ui/d-base-state-matcher.d.ts +1 -1
  8. package/dist/types/wcardinal/ui/d-base-state-set-impl-observable.d.ts +1 -1
  9. package/dist/types/wcardinal/ui/d-base.d.ts +1 -1
  10. package/dist/types/wcardinal/ui/d-border-mask.d.ts +1 -1
  11. package/dist/types/wcardinal/ui/d-button-base-when.d.ts +1 -1
  12. package/dist/types/wcardinal/ui/d-button-file.d.ts +1 -1
  13. package/dist/types/wcardinal/ui/d-button-select.d.ts +2 -2
  14. package/dist/types/wcardinal/ui/d-chart-axis-base-options.d.ts +4 -4
  15. package/dist/types/wcardinal/ui/d-chart-axis-position.d.ts +1 -1
  16. package/dist/types/wcardinal/ui/d-chart-axis-tick-position.d.ts +1 -1
  17. package/dist/types/wcardinal/ui/d-chart-coordinate-direction.d.ts +1 -1
  18. package/dist/types/wcardinal/ui/d-chart-coordinate-tick-major-step-function.d.ts +1 -1
  19. package/dist/types/wcardinal/ui/d-chart-coordinate-tick-minor-step-function.d.ts +1 -1
  20. package/dist/types/wcardinal/ui/d-chart-selection-shape.d.ts +1 -1
  21. package/dist/types/wcardinal/ui/d-chart-selection.d.ts +2 -2
  22. package/dist/types/wcardinal/ui/d-chart-series-scalar.d.ts +1 -1
  23. package/dist/types/wcardinal/ui/d-color-type.d.ts +1 -1
  24. package/dist/types/wcardinal/ui/d-coordinate.d.ts +3 -3
  25. package/dist/types/wcardinal/ui/d-corner-mask.d.ts +1 -1
  26. package/dist/types/wcardinal/ui/d-diagram-base-controller.d.ts +1 -1
  27. package/dist/types/wcardinal/ui/d-diagram-canvas-editor-snap.d.ts +1 -1
  28. package/dist/types/wcardinal/ui/d-diagram-canvas-tile.d.ts +1 -1
  29. package/dist/types/wcardinal/ui/d-diagram-data-mapper.d.ts +1 -1
  30. package/dist/types/wcardinal/ui/d-diagram-layers.d.ts +1 -1
  31. package/dist/types/wcardinal/ui/d-diagram-serialized.d.ts +6 -6
  32. package/dist/types/wcardinal/ui/d-dialog-close-on.d.ts +1 -1
  33. package/dist/types/wcardinal/ui/d-dialog-gesture-mode.d.ts +1 -1
  34. package/dist/types/wcardinal/ui/d-dialog-gesture.d.ts +1 -1
  35. package/dist/types/wcardinal/ui/d-dialog-mode.d.ts +1 -1
  36. package/dist/types/wcardinal/ui/d-dialog-select-search-dismissable.d.ts +1 -1
  37. package/dist/types/wcardinal/ui/d-dialog-select-search-function.d.ts +1 -1
  38. package/dist/types/wcardinal/ui/d-dialog-select.d.ts +2 -2
  39. package/dist/types/wcardinal/ui/d-dynamic-text-style-word-wrap.d.ts +1 -1
  40. package/dist/types/wcardinal/ui/d-dynamic-text-style.d.ts +1 -1
  41. package/dist/types/wcardinal/ui/d-font.d.ts +3 -3
  42. package/dist/types/wcardinal/ui/d-item-updater.d.ts +2 -2
  43. package/dist/types/wcardinal/ui/d-layout-clear-type.d.ts +1 -1
  44. package/dist/types/wcardinal/ui/d-layout-direction.d.ts +1 -1
  45. package/dist/types/wcardinal/ui/d-link-menu-item-id.d.ts +1 -1
  46. package/dist/types/wcardinal/ui/d-link-menu.d.ts +1 -1
  47. package/dist/types/wcardinal/ui/d-link-target.d.ts +1 -1
  48. package/dist/types/wcardinal/ui/d-link.d.ts +4 -4
  49. package/dist/types/wcardinal/ui/d-list-data-selection.d.ts +1 -1
  50. package/dist/types/wcardinal/ui/d-list-data.d.ts +1 -1
  51. package/dist/types/wcardinal/ui/d-list-item-accessor.d.ts +6 -6
  52. package/dist/types/wcardinal/ui/d-map-tile-url-builder.d.ts +1 -1
  53. package/dist/types/wcardinal/ui/d-menu-item-link.d.ts +2 -2
  54. package/dist/types/wcardinal/ui/d-menu-item-options-union.d.ts +1 -1
  55. package/dist/types/wcardinal/ui/d-menu-sided-selection.d.ts +1 -1
  56. package/dist/types/wcardinal/ui/d-menus.d.ts +2 -2
  57. package/dist/types/wcardinal/ui/d-on-options.d.ts +2 -2
  58. package/dist/types/wcardinal/ui/d-picker-datetime-mask.d.ts +1 -1
  59. package/dist/types/wcardinal/ui/d-picker-datetime.d.ts +3 -3
  60. package/dist/types/wcardinal/ui/d-scalar-expression.d.ts +7 -7
  61. package/dist/types/wcardinal/ui/d-scalar-function.d.ts +1 -1
  62. package/dist/types/wcardinal/ui/d-state-aware.d.ts +3 -3
  63. package/dist/types/wcardinal/ui/d-table-body-cell-link.d.ts +2 -2
  64. package/dist/types/wcardinal/ui/d-table-body-cell-options.d.ts +1 -1
  65. package/dist/types/wcardinal/ui/d-table-body-cell.d.ts +1 -1
  66. package/dist/types/wcardinal/ui/d-table-body-row.d.ts +1 -1
  67. package/dist/types/wcardinal/ui/d-table-column-editing.d.ts +4 -4
  68. package/dist/types/wcardinal/ui/d-table-column-formatter.d.ts +1 -1
  69. package/dist/types/wcardinal/ui/d-table-column-getter.d.ts +1 -1
  70. package/dist/types/wcardinal/ui/d-table-column-renderable.d.ts +1 -1
  71. package/dist/types/wcardinal/ui/d-table-column-selecting.d.ts +2 -2
  72. package/dist/types/wcardinal/ui/d-table-column-setter.d.ts +1 -1
  73. package/dist/types/wcardinal/ui/d-table-column-state.d.ts +1 -1
  74. package/dist/types/wcardinal/ui/d-table-column-type.d.ts +1 -1
  75. package/dist/types/wcardinal/ui/d-table-column-update.d.ts +1 -1
  76. package/dist/types/wcardinal/ui/d-table-data-filter.d.ts +2 -2
  77. package/dist/types/wcardinal/ui/d-table-data-selection.d.ts +3 -3
  78. package/dist/types/wcardinal/ui/d-table-data-sorter.d.ts +3 -3
  79. package/dist/types/wcardinal/ui/d-table-data-tree-item-accessor.d.ts +3 -3
  80. package/dist/types/wcardinal/ui/d-table-data-tree-selection.d.ts +1 -1
  81. package/dist/types/wcardinal/ui/d-table-data.d.ts +3 -3
  82. package/dist/types/wcardinal/ui/d-tree-data-mapped-impl.d.ts +3 -2
  83. package/dist/types/wcardinal/ui/d-tree-data-selection.d.ts +1 -1
  84. package/dist/types/wcardinal/ui/d-tree-node-iteratee.d.ts +1 -1
  85. package/dist/types/wcardinal/ui/d-view-constraint.d.ts +1 -1
  86. package/dist/types/wcardinal/ui/d-view-to-target.d.ts +1 -1
  87. package/dist/types/wcardinal/ui/d-view.d.ts +1 -1
  88. package/dist/types/wcardinal/ui/shape/action/e-shape-action-expression-with-parameter.d.ts +1 -1
  89. package/dist/types/wcardinal/ui/shape/action/e-shape-action-expression.d.ts +1 -1
  90. package/dist/types/wcardinal/ui/shape/action/e-shape-action-open-dialog-opener.d.ts +1 -1
  91. package/dist/types/wcardinal/ui/shape/action/e-shape-action-open-opener.d.ts +1 -1
  92. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-blink-type.d.ts +1 -1
  93. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-blink.d.ts +1 -1
  94. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-change-color-brightness.d.ts +2 -2
  95. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-change-color-code.d.ts +2 -2
  96. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-change-color-target.d.ts +1 -1
  97. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-change-color-type-legacy.d.ts +1 -1
  98. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-change-color-type.d.ts +1 -1
  99. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-change-color.d.ts +3 -3
  100. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-change-cursor.d.ts +1 -1
  101. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-change-text-type.d.ts +1 -1
  102. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-change-text.d.ts +1 -1
  103. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-deserializers.d.ts +1 -1
  104. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-emit-event.d.ts +1 -1
  105. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-gesture-operation-type.d.ts +1 -1
  106. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-gesture-type.d.ts +1 -1
  107. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-gesture.d.ts +3 -3
  108. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-misc-execute.d.ts +1 -1
  109. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-misc-type.d.ts +1 -1
  110. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-misc.d.ts +2 -2
  111. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-on-input-action.d.ts +1 -1
  112. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-open-dialog-extension.d.ts +3 -3
  113. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-open-dialog-type.d.ts +1 -1
  114. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-open-dialog.d.ts +5 -5
  115. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-open-type.d.ts +1 -1
  116. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-open.d.ts +3 -3
  117. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-show-hide-layer.d.ts +1 -1
  118. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-show-hide-shape.d.ts +1 -1
  119. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-show-hide-type.d.ts +1 -1
  120. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-show-hide.d.ts +1 -1
  121. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-transform-move-type.d.ts +1 -1
  122. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-transform-move.d.ts +1 -1
  123. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-transform-resize-type.d.ts +1 -1
  124. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-transform-resize.d.ts +1 -1
  125. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-transform-rotate-type.d.ts +1 -1
  126. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-transform-rotate.d.ts +1 -1
  127. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-transform-type.d.ts +1 -1
  128. package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-type.d.ts +1 -1
  129. package/dist/types/wcardinal/ui/shape/e-shape-acceptor-edge-side.d.ts +1 -1
  130. package/dist/types/wcardinal/ui/shape/e-shape-acceptor-edge-type.d.ts +1 -1
  131. package/dist/types/wcardinal/ui/shape/e-shape-acceptor-type.d.ts +1 -1
  132. package/dist/types/wcardinal/ui/shape/e-shape-capability.d.ts +1 -1
  133. package/dist/types/wcardinal/ui/shape/e-shape-connector-body.d.ts +1 -1
  134. package/dist/types/wcardinal/ui/shape/e-shape-connector-container-impl.d.ts +1 -1
  135. package/dist/types/wcardinal/ui/shape/e-shape-connector-container.d.ts +2 -1
  136. package/dist/types/wcardinal/ui/shape/e-shape-connector-edge-container-impl.d.ts +2 -1
  137. package/dist/types/wcardinal/ui/shape/e-shape-connector-edge-container.d.ts +3 -2
  138. package/dist/types/wcardinal/ui/shape/e-shape-connector-edge-impl.d.ts +1 -1
  139. package/dist/types/wcardinal/ui/shape/e-shape-connector-edge.d.ts +2 -2
  140. package/dist/types/wcardinal/ui/shape/e-shape-copy-part.d.ts +1 -1
  141. package/dist/types/wcardinal/ui/shape/e-shape-corner.d.ts +1 -1
  142. package/dist/types/wcardinal/ui/shape/e-shape-data-mapping.d.ts +1 -1
  143. package/dist/types/wcardinal/ui/shape/e-shape-data-value-formatter.d.ts +1 -1
  144. package/dist/types/wcardinal/ui/shape/e-shape-data-value-order.d.ts +1 -1
  145. package/dist/types/wcardinal/ui/shape/e-shape-data-value-range.d.ts +1 -1
  146. package/dist/types/wcardinal/ui/shape/e-shape-data-value-scope.d.ts +1 -1
  147. package/dist/types/wcardinal/ui/shape/e-shape-data-value-state.d.ts +1 -1
  148. package/dist/types/wcardinal/ui/shape/e-shape-data-value-type.d.ts +1 -1
  149. package/dist/types/wcardinal/ui/shape/e-shape-deleter.d.ts +2 -0
  150. package/dist/types/wcardinal/ui/shape/e-shape-deserializers.d.ts +2 -2
  151. package/dist/types/wcardinal/ui/shape/e-shape-points-formatted.d.ts +2 -2
  152. package/dist/types/wcardinal/ui/shape/e-shape-points-formatter.d.ts +1 -1
  153. package/dist/types/wcardinal/ui/shape/e-shape-points-marker-container.d.ts +1 -1
  154. package/dist/types/wcardinal/ui/shape/e-shape-points-marker-type.d.ts +1 -1
  155. package/dist/types/wcardinal/ui/shape/e-shape-points-marker.d.ts +1 -1
  156. package/dist/types/wcardinal/ui/shape/e-shape-points-style.d.ts +1 -1
  157. package/dist/types/wcardinal/ui/shape/e-shape-points-styles.d.ts +1 -1
  158. package/dist/types/wcardinal/ui/shape/e-shape-resource-manager-deserialization-mode.d.ts +1 -1
  159. package/dist/types/wcardinal/ui/shape/e-shape-runtime-reset.d.ts +1 -1
  160. package/dist/types/wcardinal/ui/shape/e-shape-runtimes.d.ts +1 -1
  161. package/dist/types/wcardinal/ui/shape/e-shape-stroke-side.d.ts +1 -1
  162. package/dist/types/wcardinal/ui/shape/e-shape-stroke-style.d.ts +1 -1
  163. package/dist/types/wcardinal/ui/shape/e-shape-text-align-horizontal.d.ts +1 -1
  164. package/dist/types/wcardinal/ui/shape/e-shape-text-align-vertical.d.ts +1 -1
  165. package/dist/types/wcardinal/ui/shape/e-shape-text-direction.d.ts +1 -1
  166. package/dist/types/wcardinal/ui/shape/e-shape-text.d.ts +3 -3
  167. package/dist/types/wcardinal/ui/shape/e-shape-type.d.ts +1 -1
  168. package/dist/types/wcardinal/ui/shape/e-shape-uploaded-constructor.d.ts +1 -1
  169. package/dist/types/wcardinal/ui/shape/e-shape-uploadeds.d.ts +1 -1
  170. package/dist/types/wcardinal/ui/shape/e-shape.d.ts +6 -8
  171. package/dist/types/wcardinal/ui/shape/variant/build-line.d.ts +2 -2
  172. package/dist/types/wcardinal/ui/shape/variant/create-line-of-any-uploaded.d.ts +1 -1
  173. package/dist/types/wcardinal/ui/shape/variant/deserialize-bar.d.ts +1 -1
  174. package/dist/types/wcardinal/ui/shape/variant/deserialize-button.d.ts +1 -1
  175. package/dist/types/wcardinal/ui/shape/variant/deserialize-circle.d.ts +1 -1
  176. package/dist/types/wcardinal/ui/shape/variant/deserialize-connector-elbow.d.ts +1 -1
  177. package/dist/types/wcardinal/ui/shape/variant/deserialize-connector-line.d.ts +1 -1
  178. package/dist/types/wcardinal/ui/shape/variant/deserialize-embedded-acceptor-edge.d.ts +1 -1
  179. package/dist/types/wcardinal/ui/shape/variant/deserialize-group-shadowed.d.ts +1 -1
  180. package/dist/types/wcardinal/ui/shape/variant/deserialize-group.d.ts +1 -1
  181. package/dist/types/wcardinal/ui/shape/variant/deserialize-image-sdf.d.ts +1 -1
  182. package/dist/types/wcardinal/ui/shape/variant/deserialize-image.d.ts +1 -1
  183. package/dist/types/wcardinal/ui/shape/variant/deserialize-label.d.ts +1 -1
  184. package/dist/types/wcardinal/ui/shape/variant/deserialize-line-of-circles.d.ts +1 -1
  185. package/dist/types/wcardinal/ui/shape/variant/deserialize-line-of-rectangle-roundeds.d.ts +1 -1
  186. package/dist/types/wcardinal/ui/shape/variant/deserialize-line-of-rectangles.d.ts +1 -1
  187. package/dist/types/wcardinal/ui/shape/variant/deserialize-line-of-triangle-roundeds.d.ts +1 -1
  188. package/dist/types/wcardinal/ui/shape/variant/deserialize-line-of-triangles.d.ts +1 -1
  189. package/dist/types/wcardinal/ui/shape/variant/deserialize-line.d.ts +1 -1
  190. package/dist/types/wcardinal/ui/shape/variant/deserialize-null.d.ts +1 -1
  191. package/dist/types/wcardinal/ui/shape/variant/deserialize-rectangle-pivoted.d.ts +1 -1
  192. package/dist/types/wcardinal/ui/shape/variant/deserialize-rectangle-rounded.d.ts +1 -1
  193. package/dist/types/wcardinal/ui/shape/variant/deserialize-rectangle.d.ts +1 -1
  194. package/dist/types/wcardinal/ui/shape/variant/deserialize-semicircle.d.ts +1 -1
  195. package/dist/types/wcardinal/ui/shape/variant/deserialize-triangle-rounded.d.ts +1 -1
  196. package/dist/types/wcardinal/ui/shape/variant/deserialize-triangle.d.ts +1 -1
  197. package/dist/types/wcardinal/ui/shape/variant/e-shape-bar-position.d.ts +1 -1
  198. package/dist/types/wcardinal/ui/shape/variant/e-shape-base.d.ts +10 -13
  199. package/dist/types/wcardinal/ui/shape/variant/e-shape-connector-line.d.ts +6 -5
  200. package/dist/types/wcardinal/ui/shape/variant/e-shape-group-size-parent.d.ts +4 -3
  201. package/dist/types/wcardinal/ui/shape/variant/e-shape-line-base-hit-part.d.ts +1 -1
  202. package/dist/types/wcardinal/ui/shape/variant/e-shape-line-base-points-hit-tester-to-range.d.ts +1 -1
  203. package/dist/types/wcardinal/ui/shape/variant/e-shape-line-base-points-hit-tester-to-threshold.d.ts +1 -1
  204. package/dist/types/wcardinal/ui/shape/variant/e-shape-line-base-points-hit-tester.d.ts +1 -1
  205. package/dist/types/wcardinal/ui/shape/variant/e-shape-line-of-any-points-hit-tester-to-range.d.ts +1 -1
  206. package/dist/types/wcardinal/ui/shape/variant/e-shape-line-of-any-points-hit-tester-to-threshold.d.ts +1 -1
  207. package/dist/types/wcardinal/ui/shape/variant/e-shape-line-of-any-points-hit-tester.d.ts +1 -1
  208. package/dist/types/wcardinal/ui/shape/variant/e-shape-line-of-any-value.d.ts +1 -1
  209. package/dist/types/wcardinal/ui/shape/variant/e-shape-line-points.d.ts +1 -1
  210. package/dist/types/wcardinal/ui/shape/variant/e-shape-lock-part.d.ts +8 -0
  211. package/dist/types/wcardinal/ui/shape/variant/e-shape-lock.d.ts +9 -0
  212. package/dist/types/wcardinal/ui/shape/variant/index.d.ts +2 -0
  213. package/dist/types/wcardinal/ui/snapper/e-snapper-target-value.d.ts +1 -1
  214. package/dist/types/wcardinal/ui/snapper/e-snapper.d.ts +1 -1
  215. package/dist/types/wcardinal/ui/util/deep-partial.d.ts +1 -1
  216. package/dist/types/wcardinal/ui/util/dynamic-font-atlas-character-type.d.ts +1 -1
  217. package/dist/types/wcardinal/ui/util/dynamic-font-atlas-characters.d.ts +1 -1
  218. package/dist/types/wcardinal/ui/util/dynamic-sdf-font-generator.d.ts +1 -1
  219. package/dist/types/wcardinal/ui/util/number-formatter-function.d.ts +1 -1
  220. package/dist/types/wcardinal/ui/util/util-attach.d.ts +1 -1
  221. package/dist/types/wcardinal/ui/util/util-click-outside.d.ts +1 -1
  222. package/dist/types/wcardinal/ui/util/util-curve.d.ts +2 -2
  223. package/dist/types/wcardinal/ui/util/util-file-opener.d.ts +2 -2
  224. package/dist/types/wcardinal/ui/util/util-gesture-easing.d.ts +2 -2
  225. package/dist/types/wcardinal/ui/util/util-gesture-mode.d.ts +1 -1
  226. package/dist/types/wcardinal/ui/util/util-gesture-modifier.d.ts +1 -1
  227. package/dist/types/wcardinal/ui/util/util-gesture-modifiers.d.ts +1 -1
  228. package/dist/types/wcardinal/ui/util/util-gesture.d.ts +7 -7
  229. package/dist/types/wcardinal/ui/util/util-html-element-when.d.ts +1 -1
  230. package/dist/types/wcardinal/ui/util/util-html-element.d.ts +7 -7
  231. package/dist/types/wcardinal/ui/util/util-pointer-event.d.ts +2 -2
  232. package/dist/types/wcardinal/ui/util/util-wheel-event.d.ts +2 -2
  233. package/dist/wcardinal/ui/d-animation-base.js +1 -2
  234. package/dist/wcardinal/ui/d-animation-base.js.map +1 -1
  235. package/dist/wcardinal/ui/d-animation-empty.js +1 -2
  236. package/dist/wcardinal/ui/d-animation-empty.js.map +1 -1
  237. package/dist/wcardinal/ui/d-animation-fade-in.js +1 -2
  238. package/dist/wcardinal/ui/d-animation-fade-in.js.map +1 -1
  239. package/dist/wcardinal/ui/d-base.js +1 -2
  240. package/dist/wcardinal/ui/d-base.js.map +1 -1
  241. package/dist/wcardinal/ui/d-button-select.js +1 -2
  242. package/dist/wcardinal/ui/d-button-select.js.map +1 -1
  243. package/dist/wcardinal/ui/d-chart-axis-base-bar.js +3 -2
  244. package/dist/wcardinal/ui/d-chart-axis-base-bar.js.map +1 -1
  245. package/dist/wcardinal/ui/d-chart-axis-base-tick-container.js +7 -6
  246. package/dist/wcardinal/ui/d-chart-axis-base-tick-container.js.map +1 -1
  247. package/dist/wcardinal/ui/d-chart-axis-guide-simple-shape-impl.js +7 -6
  248. package/dist/wcardinal/ui/d-chart-axis-guide-simple-shape-impl.js.map +1 -1
  249. package/dist/wcardinal/ui/d-chart-selection-simple.js +1 -2
  250. package/dist/wcardinal/ui/d-chart-selection-simple.js.map +1 -1
  251. package/dist/wcardinal/ui/d-chart-selection-sub-impl.js +1 -2
  252. package/dist/wcardinal/ui/d-chart-selection-sub-impl.js.map +1 -1
  253. package/dist/wcardinal/ui/d-chart-series-line-of-any.js +4 -4
  254. package/dist/wcardinal/ui/d-chart-series-line-of-any.js.map +1 -1
  255. package/dist/wcardinal/ui/d-chart-series-line.js +4 -4
  256. package/dist/wcardinal/ui/d-chart-series-line.js.map +1 -1
  257. package/dist/wcardinal/ui/d-chart-series-linear.js +3 -2
  258. package/dist/wcardinal/ui/d-chart-series-linear.js.map +1 -1
  259. package/dist/wcardinal/ui/d-diagram-base.js +1 -2
  260. package/dist/wcardinal/ui/d-diagram-base.js.map +1 -1
  261. package/dist/wcardinal/ui/d-diagram-canvas-base.js +1 -2
  262. package/dist/wcardinal/ui/d-diagram-canvas-base.js.map +1 -1
  263. package/dist/wcardinal/ui/d-diagram-canvas-editor-snap.js +5 -4
  264. package/dist/wcardinal/ui/d-diagram-canvas-editor-snap.js.map +1 -1
  265. package/dist/wcardinal/ui/d-dialog-processing.js +1 -2
  266. package/dist/wcardinal/ui/d-dialog-processing.js.map +1 -1
  267. package/dist/wcardinal/ui/d-dialog-select.js +1 -2
  268. package/dist/wcardinal/ui/d-dialog-select.js.map +1 -1
  269. package/dist/wcardinal/ui/d-menu-item-base.js +1 -2
  270. package/dist/wcardinal/ui/d-menu-item-base.js.map +1 -1
  271. package/dist/wcardinal/ui/d-menu-sided-selection.js +1 -2
  272. package/dist/wcardinal/ui/d-menu-sided-selection.js.map +1 -1
  273. package/dist/wcardinal/ui/d-menu-sided.js +1 -2
  274. package/dist/wcardinal/ui/d-menu-sided.js.map +1 -1
  275. package/dist/wcardinal/ui/d-pagination.js +1 -2
  276. package/dist/wcardinal/ui/d-pagination.js.map +1 -1
  277. package/dist/wcardinal/ui/d-pane.js +1 -2
  278. package/dist/wcardinal/ui/d-pane.js.map +1 -1
  279. package/dist/wcardinal/ui/d-scroll-bar.js +1 -2
  280. package/dist/wcardinal/ui/d-scroll-bar.js.map +1 -1
  281. package/dist/wcardinal/ui/d-slider-value.js +1 -2
  282. package/dist/wcardinal/ui/d-slider-value.js.map +1 -1
  283. package/dist/wcardinal/ui/d-table-body-cell-button.js +1 -2
  284. package/dist/wcardinal/ui/d-table-body-cell-button.js.map +1 -1
  285. package/dist/wcardinal/ui/d-table-body-cell-select-dialog.js +1 -2
  286. package/dist/wcardinal/ui/d-table-body-cell-select-dialog.js.map +1 -1
  287. package/dist/wcardinal/ui/d-table-body-cell-select-promise.js +1 -2
  288. package/dist/wcardinal/ui/d-table-body-cell-select-promise.js.map +1 -1
  289. package/dist/wcardinal/ui/d-table-body.js +1 -2
  290. package/dist/wcardinal/ui/d-table-body.js.map +1 -1
  291. package/dist/wcardinal/ui/d-table-category.js +1 -2
  292. package/dist/wcardinal/ui/d-table-category.js.map +1 -1
  293. package/dist/wcardinal/ui/d-table-data-list-selection.js +1 -2
  294. package/dist/wcardinal/ui/d-table-data-list-selection.js.map +1 -1
  295. package/dist/wcardinal/ui/d-table-data-tree-selection-impl.js +1 -2
  296. package/dist/wcardinal/ui/d-table-data-tree-selection-impl.js.map +1 -1
  297. package/dist/wcardinal/ui/d-table-header.js +1 -2
  298. package/dist/wcardinal/ui/d-table-header.js.map +1 -1
  299. package/dist/wcardinal/ui/d-table-row.js +1 -2
  300. package/dist/wcardinal/ui/d-table-row.js.map +1 -1
  301. package/dist/wcardinal/ui/d-tree-data-mapped-impl.js.map +1 -1
  302. package/dist/wcardinal/ui/d-tree-item-button.js +1 -2
  303. package/dist/wcardinal/ui/d-tree-item-button.js.map +1 -1
  304. package/dist/wcardinal/ui/d-view-impl.js +1 -2
  305. package/dist/wcardinal/ui/d-view-impl.js.map +1 -1
  306. package/dist/wcardinal/ui/shape/e-shape-capability.js +1 -1
  307. package/dist/wcardinal/ui/shape/e-shape-capability.js.map +1 -1
  308. package/dist/wcardinal/ui/shape/e-shape-connector-container-impl.js +4 -2
  309. package/dist/wcardinal/ui/shape/e-shape-connector-container-impl.js.map +1 -1
  310. package/dist/wcardinal/ui/shape/e-shape-connector-container.js.map +1 -1
  311. package/dist/wcardinal/ui/shape/e-shape-connector-edge-container-impl.js +3 -3
  312. package/dist/wcardinal/ui/shape/e-shape-connector-edge-container-impl.js.map +1 -1
  313. package/dist/wcardinal/ui/shape/e-shape-connector-edge-container.js.map +1 -1
  314. package/dist/wcardinal/ui/shape/e-shape-connector-edge-impl.js +2 -2
  315. package/dist/wcardinal/ui/shape/e-shape-connector-edge-impl.js.map +1 -1
  316. package/dist/wcardinal/ui/shape/e-shape-connector-edge.js.map +1 -1
  317. package/dist/wcardinal/ui/shape/e-shape-deleter.js +18 -2
  318. package/dist/wcardinal/ui/shape/e-shape-deleter.js.map +1 -1
  319. package/dist/wcardinal/ui/shape/e-shape-runtime-impl.js +5 -4
  320. package/dist/wcardinal/ui/shape/e-shape-runtime-impl.js.map +1 -1
  321. package/dist/wcardinal/ui/shape/e-shape-transforms.js +5 -4
  322. package/dist/wcardinal/ui/shape/e-shape-transforms.js.map +1 -1
  323. package/dist/wcardinal/ui/shape/e-shape.js.map +1 -1
  324. package/dist/wcardinal/ui/shape/variant/deserialize-connector-line.js +3 -2
  325. package/dist/wcardinal/ui/shape/variant/deserialize-connector-line.js.map +1 -1
  326. package/dist/wcardinal/ui/shape/variant/e-shape-base.js +59 -73
  327. package/dist/wcardinal/ui/shape/variant/e-shape-base.js.map +1 -1
  328. package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js +18 -18
  329. package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js.map +1 -1
  330. package/dist/wcardinal/ui/shape/variant/e-shape-group-size-editor.js +33 -26
  331. package/dist/wcardinal/ui/shape/variant/e-shape-group-size-editor.js.map +1 -1
  332. package/dist/wcardinal/ui/shape/variant/e-shape-group-size-layout.js +3 -2
  333. package/dist/wcardinal/ui/shape/variant/e-shape-group-size-layout.js.map +1 -1
  334. package/dist/wcardinal/ui/shape/variant/e-shape-group-size-parent.js.map +1 -1
  335. package/dist/wcardinal/ui/shape/variant/e-shape-group.js +2 -0
  336. package/dist/wcardinal/ui/shape/variant/e-shape-group.js.map +1 -1
  337. package/dist/wcardinal/ui/shape/variant/e-shape-lock-part.js +8 -0
  338. package/dist/wcardinal/ui/shape/variant/e-shape-lock-part.js.map +1 -0
  339. package/dist/wcardinal/ui/shape/variant/e-shape-lock.js +31 -0
  340. package/dist/wcardinal/ui/shape/variant/e-shape-lock.js.map +1 -0
  341. package/dist/wcardinal/ui/shape/variant/index.js +2 -0
  342. package/dist/wcardinal/ui/shape/variant/index.js.map +1 -1
  343. package/dist/wcardinal/ui/shape/variant/to-resized.js +3 -2
  344. package/dist/wcardinal/ui/shape/variant/to-resized.js.map +1 -1
  345. package/dist/wcardinal/ui/snapper/e-snapper-grid.js +1 -2
  346. package/dist/wcardinal/ui/snapper/e-snapper-grid.js.map +1 -1
  347. package/dist/wcardinal/ui/snapper/e-snapper-target.js +1 -2
  348. package/dist/wcardinal/ui/snapper/e-snapper-target.js.map +1 -1
  349. package/dist/wcardinal/ui/snapper/e-snapper.js +1 -2
  350. package/dist/wcardinal/ui/snapper/e-snapper.js.map +1 -1
  351. package/dist/wcardinal/ui/theme/dark/d-theme-dark-atlas.js +1 -1
  352. package/dist/wcardinal/ui/theme/dark/d-theme-dark-atlas.js.map +1 -1
  353. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-cells.js.map +1 -1
  354. package/dist/wcardinal/ui/theme/white/d-theme-white-atlas.js +1 -1
  355. package/dist/wcardinal/ui/theme/white/d-theme-white-atlas.js.map +1 -1
  356. package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-cells.js.map +1 -1
  357. package/dist/wcardinal/ui/util/dynamic-sdf-font-generator.js.map +1 -1
  358. package/dist/wcardinal/ui/util/util-input-number.js +1 -2
  359. package/dist/wcardinal/ui/util/util-input-number.js.map +1 -1
  360. package/dist/wcardinal/ui/util/util-input.js +1 -2
  361. package/dist/wcardinal/ui/util/util-input.js.map +1 -1
  362. package/dist/wcardinal-ui-theme-dark.js +2 -2
  363. package/dist/wcardinal-ui-theme-dark.min.js +2 -2
  364. package/dist/wcardinal-ui-theme-dark.min.js.map +1 -1
  365. package/dist/wcardinal-ui-theme-white.js +2 -2
  366. package/dist/wcardinal-ui-theme-white.min.js +2 -2
  367. package/dist/wcardinal-ui-theme-white.min.js.map +1 -1
  368. package/dist/wcardinal-ui.cjs.js +251 -240
  369. package/dist/wcardinal-ui.js +249 -238
  370. package/dist/wcardinal-ui.min.js +2 -2
  371. package/dist/wcardinal-ui.min.js.map +1 -1
  372. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"e-shape.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DisplayObject, IPoint, Point, Rectangle, Renderer, Texture, utils } from \"pixi.js\";\nimport { DDiagramSerializedItem } from \"../d-diagram-serialized\";\nimport { EShapeAction } from \"./action/e-shape-action\";\nimport { EShapeContainer } from \"./e-shape-container\";\nimport { EShapeCopyPart } from \"./e-shape-copy-part\";\nimport { EShapeCorner } from \"./e-shape-corner\";\nimport { EShapeEditor } from \"./e-shape-editor\";\nimport { EShapeFill } from \"./e-shape-fill\";\nimport { EShapeGradientLike } from \"./e-shape-gradient\";\nimport { EShapeLayout } from \"./e-shape-layout\";\nimport { EShapePoints } from \"./e-shape-points\";\nimport { EShapeResourceManagerSerialization } from \"./e-shape-resource-manager-serialization\";\nimport { EShapeRuntime } from \"./e-shape-runtime\";\nimport { EShapeStateSet } from \"./e-shape-state-set\";\nimport { EShapeStroke } from \"./e-shape-stroke\";\nimport { EShapeData } from \"./e-shape-data\";\nimport { EShapeText } from \"./e-shape-text\";\nimport { EShapeTransform } from \"./e-shape-transform\";\nimport { EShapeType } from \"./e-shape-type\";\nimport { EShapeUploaded } from \"./e-shape-uploaded\";\nimport { EShapeConnectorContainer } from \"./e-shape-connector-container\";\nimport { EShapeCapabilityContainer } from \"./e-shape-capability-container\";\n\nexport interface EShape extends utils.EventEmitter {\n\tid: string; // Used to identity a shape by users\n\tuuid: number; // Used to identify a shape uniquely\n\treadonly type: EShapeType;\n\treadonly size: IPoint;\n\treadonly fill: EShapeFill;\n\treadonly stroke: EShapeStroke;\n\treadonly transform: EShapeTransform;\n\tradius: number;\n\tcorner: EShapeCorner;\n\treadonly points?: EShapePoints;\n\timage?: HTMLImageElement;\n\timageSrc?: string;\n\ttexture?: Texture;\n\tgradient?: EShapeGradientLike;\n\treadonly text: EShapeText;\n\t/** @deprecated in favor of {@link data}. */\n\treadonly tag: EShapeData;\n\treadonly data: EShapeData;\n\treadonly action: EShapeAction;\n\tcursor?: string;\n\tvisible: boolean;\n\treadonly worldVisible: boolean;\n\tinteractive: boolean;\n\tshortcut?: string;\n\ttitle?: string;\n\tconnector: EShapeConnectorContainer;\n\n\t// Hierarchy\n\tparent: EShapeContainer | EShape | null;\n\troot: EShape;\n\tchildren: EShape[];\n\tlayout?: EShapeLayout;\n\n\t// Working space\n\tindex: number; // A work space for sorting.\n\tselected: boolean;\n\treference: number; // Count of references from commands\n\n\t// Working space for the viewer\n\truntime?: EShapeRuntime;\n\n\t// Working space for the editor\n\teditor?: EShapeEditor;\n\n\t// Working space for the renderer\n\tuploaded?: EShapeUploaded;\n\n\t// State\n\treadonly state: EShapeStateSet;\n\n\t// Capability\n\treadonly capability: EShapeCapabilityContainer;\n\tgetCapability(): EShapeCapabilityContainer | undefined;\n\n\t//\n\ttoDirty(): void;\n\tattach(parent: EShapeContainer | EShape, at?: number): this;\n\tonAttach(): void;\n\tdetach(): this;\n\tonDetach(): void;\n\tcopy(source: EShape): this;\n\tcopy(source: EShape, part: EShapeCopyPart): this;\n\tclone(): EShape;\n\tdestroy(): void;\n\n\t//\n\tfocus(): this;\n\tblur(): this;\n\n\t//\n\tonSizeChange(): void;\n\n\t// Action\n\tupdate(time: number): void;\n\tonRender(time: number, renderer: Renderer): void;\n\n\t// Transform\n\tupdateTransform(): void;\n\tdisallowOnTransformChange(): void;\n\tallowOnTransformChange(invokeOnTransformChange: boolean): void;\n\tonTransformChange(): void;\n\tonParentTransformChange(): void;\n\tonChildTransformChange(): void;\n\n\t// Uploaded\n\tdisallowUploadedUpdate(): void;\n\tallowUploadedUpdate(): void;\n\tupdateUploaded(): void;\n\tupdateUploadedRecursively(): void;\n\n\t// Serialization\n\tserialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem;\n\taddUuid(manager: EShapeResourceManagerSerialization): void;\n\tupdateUuid(manager: EShapeResourceManagerSerialization): void;\n\n\t// Hit test\n\tcontains(x: number, y: number): EShape | null;\n\tcontainsBBox(x: number, y: number): boolean;\n\tcontainsAbs(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tsw: number,\n\t\tss: number,\n\t\tsa: number\n\t): boolean;\n\tcontainsAbsBBox(x: number, y: number, ax: number, ay: number): boolean;\n\n\t// Coordinate\n\ttoGlobal(position: IPoint, result: Point, skipUpdate?: boolean): Point;\n\ttoLocal(position: IPoint, from?: DisplayObject, result?: Point, skipUpdate?: boolean): Point;\n\tgetBounds(skipUpdate?: boolean, result?: Rectangle): Rectangle;\n\tgetBoundsInternal(skipUpdate?: boolean, result?: Rectangle): Rectangle;\n\tgetBoundsLocal(skipUpdate?: boolean, result?: Rectangle): Rectangle;\n}\n"]}
1
+ {"version":3,"file":"e-shape.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DisplayObject, IPoint, Point, Rectangle, Renderer, Texture, utils } from \"pixi.js\";\nimport { DDiagramSerializedItem } from \"../d-diagram-serialized\";\nimport { EShapeAction } from \"./action/e-shape-action\";\nimport { EShapeContainer } from \"./e-shape-container\";\nimport { EShapeCopyPart } from \"./e-shape-copy-part\";\nimport { EShapeCorner } from \"./e-shape-corner\";\nimport { EShapeEditor } from \"./e-shape-editor\";\nimport { EShapeFill } from \"./e-shape-fill\";\nimport { EShapeGradientLike } from \"./e-shape-gradient\";\nimport { EShapeLayout } from \"./e-shape-layout\";\nimport { EShapePoints } from \"./e-shape-points\";\nimport { EShapeResourceManagerSerialization } from \"./e-shape-resource-manager-serialization\";\nimport { EShapeRuntime } from \"./e-shape-runtime\";\nimport { EShapeStateSet } from \"./e-shape-state-set\";\nimport { EShapeStroke } from \"./e-shape-stroke\";\nimport { EShapeData } from \"./e-shape-data\";\nimport { EShapeText } from \"./e-shape-text\";\nimport { EShapeTransform } from \"./e-shape-transform\";\nimport { EShapeType } from \"./e-shape-type\";\nimport { EShapeUploaded } from \"./e-shape-uploaded\";\nimport { EShapeConnectorContainer } from \"./e-shape-connector-container\";\nimport { EShapeCapabilityContainer } from \"./e-shape-capability-container\";\nimport { EShapeLockPart } from \"./variant/e-shape-lock-part\";\n\nexport interface EShape extends utils.EventEmitter {\n\tid: string; // Used to identity a shape by users\n\tuuid: number; // Used to identify a shape uniquely\n\treadonly type: EShapeType;\n\treadonly size: IPoint;\n\treadonly fill: EShapeFill;\n\treadonly stroke: EShapeStroke;\n\treadonly transform: EShapeTransform;\n\tradius: number;\n\tcorner: EShapeCorner;\n\treadonly points?: EShapePoints;\n\timage?: HTMLImageElement;\n\timageSrc?: string;\n\ttexture?: Texture;\n\tgradient?: EShapeGradientLike;\n\treadonly text: EShapeText;\n\t/** @deprecated in favor of {@link data}. */\n\treadonly tag: EShapeData;\n\treadonly data: EShapeData;\n\treadonly action: EShapeAction;\n\tcursor?: string;\n\tvisible: boolean;\n\treadonly worldVisible: boolean;\n\tinteractive: boolean;\n\tshortcut?: string;\n\ttitle?: string;\n\tconnector: EShapeConnectorContainer;\n\n\t// Hierarchy\n\tparent: EShapeContainer | EShape | null;\n\troot: EShape;\n\tchildren: EShape[];\n\tlayout?: EShapeLayout;\n\n\t// Working space\n\tindex: number; // A work space for sorting.\n\tselected: boolean;\n\treference: number; // Count of references from commands\n\n\t// Working space for the viewer\n\truntime?: EShapeRuntime;\n\n\t// Working space for the editor\n\teditor?: EShapeEditor;\n\n\t// Working space for the renderer\n\tuploaded?: EShapeUploaded;\n\n\t// State\n\treadonly state: EShapeStateSet;\n\n\t// Capability\n\treadonly capability: EShapeCapabilityContainer;\n\tgetCapability(): EShapeCapabilityContainer | undefined;\n\n\t//\n\ttoDirty(): void;\n\tattach(parent: EShapeContainer | EShape, at?: number): this;\n\tonAttach(): void;\n\tdetach(exceptions?: Set<EShape>): this;\n\tonDetach(exceptions?: Set<EShape>): void;\n\tcopy(source: EShape): this;\n\tcopy(source: EShape, part: EShapeCopyPart): this;\n\tclone(): EShape;\n\tdestroy(): void;\n\n\t//\n\tfocus(): this;\n\tblur(): this;\n\n\t//\n\tonSizeChange(): void;\n\n\t// Action\n\tupdate(time: number): void;\n\tonRender(time: number, renderer: Renderer): void;\n\n\t// Lock & unlock\n\tlock(part: EShapeLockPart): this;\n\tunlock(part: EShapeLockPart, invoke: boolean): this;\n\n\t// Transform\n\tupdateTransform(): void;\n\tonTransformChange(): void;\n\tonParentTransformChange(): void;\n\tonChildTransformChange(): void;\n\n\t// Uploaded\n\tupdateUploaded(recursively?: boolean): void;\n\n\t// Serialization\n\tserialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem;\n\taddUuid(manager: EShapeResourceManagerSerialization): void;\n\tupdateUuid(manager: EShapeResourceManagerSerialization): void;\n\n\t// Hit test\n\tcontains(x: number, y: number): EShape | null;\n\tcontainsBBox(x: number, y: number): boolean;\n\tcontainsAbs(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tsw: number,\n\t\tss: number,\n\t\tsa: number\n\t): boolean;\n\tcontainsAbsBBox(x: number, y: number, ax: number, ay: number): boolean;\n\n\t// Coordinate\n\ttoGlobal(position: IPoint, result: Point, skipUpdate?: boolean): Point;\n\ttoLocal(position: IPoint, from?: DisplayObject, result?: Point, skipUpdate?: boolean): Point;\n\tgetBounds(skipUpdate?: boolean, result?: Rectangle): Rectangle;\n\tgetBoundsInternal(skipUpdate?: boolean, result?: Rectangle): Rectangle;\n\tgetBoundsLocal(skipUpdate?: boolean, result?: Rectangle): Rectangle;\n}\n"]}
@@ -5,6 +5,7 @@
5
5
  import { EShapeConnectorBodies } from "../e-shape-connector-bodies";
6
6
  import { deserializeBase } from "./deserialize-base";
7
7
  import { EShapeConnectorLine } from "./e-shape-connector-line";
8
+ import { EShapeLockPart } from "./e-shape-lock-part";
8
9
  export var deserializeConnectorLine = function (item, manager, shape) {
9
10
  return deserializeBase(item, manager, shape || new EShapeConnectorLine());
10
11
  };
@@ -19,7 +20,7 @@ export var onDeserializedConnectorLine = function (item, shape, mapping, manager
19
20
  manager.setExtension(resourceId, parsed);
20
21
  }
21
22
  // Lock
22
- shape.lock();
23
+ shape.lock(EShapeLockPart.CONNECTOR);
23
24
  // Points
24
25
  var points = shape.points;
25
26
  points.deserialize(parsed[1], manager);
@@ -37,7 +38,7 @@ export var onDeserializedConnectorLine = function (item, shape, mapping, manager
37
38
  body.set(EShapeConnectorBodies.from(points.values, edge.tail.margin, edge.head.margin));
38
39
  }
39
40
  // Unlock
40
- shape.unlock();
41
+ shape.unlock(EShapeLockPart.CONNECTOR, true);
41
42
  }
42
43
  }
43
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize-connector-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/deserialize-connector-line.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACvC,IAA4B,EAC5B,OAA6C,EAC7C,KAA2B;IAE3B,OAAO,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,mBAAmB,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAC1C,IAA4B,EAC5B,KAAa,EACb,OAA0B,EAC1B,OAA6C;IAE7C,IAAI,KAAK,YAAY,mBAAmB,EAAE;QACzC,IAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE;YACrD,IAAI,MAAM,GAAG,OAAO,CAAC,YAAY,CAA4B,UAAU,CAAC,CAAC;YACzE,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAA8B,CAAC;gBACxE,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;aACzC;YAED,OAAO;YACP,KAAK,CAAC,IAAI,EAAE,CAAC;YAEb,SAAS;YACT,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEvC,OAAO;YACP,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9C,OAAO;YACP,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;aAC3C;iBAAM;gBACN,+CAA+C;gBAC/C,IAAI,CAAC,GAAG,CACP,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAC7E,CAAC;aACF;YAED,SAAS;YACT,KAAK,CAAC,MAAM,EAAE,CAAC;SACf;KACD;AACF,CAAC,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeConnectorBodies } from \"../e-shape-connector-bodies\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeUuidMapping } from \"../e-shape-uuid-mapping\";\nimport { deserializeBase } from \"./deserialize-base\";\nimport { EShapeConnectorLine } from \"./e-shape-connector-line\";\n\nexport const deserializeConnectorLine = (\n\titem: DDiagramSerializedItem,\n\tmanager: EShapeResourceManagerDeserialization,\n\tshape?: EShapeConnectorLine\n): Promise<EShapeConnectorLine> | EShapeConnectorLine => {\n\treturn deserializeBase(item, manager, shape || new EShapeConnectorLine());\n};\n\nexport const onDeserializedConnectorLine = (\n\titem: DDiagramSerializedItem,\n\tshape: EShape,\n\tmapping: EShapeUuidMapping,\n\tmanager: EShapeResourceManagerDeserialization\n): void => {\n\tif (shape instanceof EShapeConnectorLine) {\n\t\tconst resources = manager.resources;\n\t\tconst resourceId = item[15];\n\t\tif (0 <= resourceId && resourceId < resources.length) {\n\t\t\tlet parsed = manager.getExtension<[number, number, number?]>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[resourceId]) as [number, number, number?];\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\t\t\t}\n\n\t\t\t// Lock\n\t\t\tshape.lock();\n\n\t\t\t// Points\n\t\t\tconst points = shape.points;\n\t\t\tpoints.deserialize(parsed[1], manager);\n\n\t\t\t// Edge\n\t\t\tconst edge = shape.edge;\n\t\t\tedge.deserialize(parsed[0], mapping, manager);\n\n\t\t\t// Body\n\t\t\tconst body = shape.body;\n\t\t\tconst bodyId = parsed[2];\n\t\t\tif (bodyId != null) {\n\t\t\t\tbody.deserialize(bodyId, mapping, manager);\n\t\t\t} else {\n\t\t\t\t// The following is for backward compatibility.\n\t\t\t\tbody.set(\n\t\t\t\t\tEShapeConnectorBodies.from(points.values, edge.tail.margin, edge.head.margin)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Unlock\n\t\t\tshape.unlock();\n\t\t}\n\t}\n};\n"]}
1
+ {"version":3,"file":"deserialize-connector-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/deserialize-connector-line.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACvC,IAA4B,EAC5B,OAA6C,EAC7C,KAA2B;IAE3B,OAAO,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,mBAAmB,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAC1C,IAA4B,EAC5B,KAAa,EACb,OAA0B,EAC1B,OAA6C;IAE7C,IAAI,KAAK,YAAY,mBAAmB,EAAE;QACzC,IAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE;YACrD,IAAI,MAAM,GAAG,OAAO,CAAC,YAAY,CAA4B,UAAU,CAAC,CAAC;YACzE,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAA8B,CAAC;gBACxE,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;aACzC;YAED,OAAO;YACP,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAErC,SAAS;YACT,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEvC,OAAO;YACP,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9C,OAAO;YACP,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;aAC3C;iBAAM;gBACN,+CAA+C;gBAC/C,IAAI,CAAC,GAAG,CACP,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAC7E,CAAC;aACF;YAED,SAAS;YACT,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAC7C;KACD;AACF,CAAC,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeConnectorBodies } from \"../e-shape-connector-bodies\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeUuidMapping } from \"../e-shape-uuid-mapping\";\nimport { deserializeBase } from \"./deserialize-base\";\nimport { EShapeConnectorLine } from \"./e-shape-connector-line\";\nimport { EShapeLockPart } from \"./e-shape-lock-part\";\n\nexport const deserializeConnectorLine = (\n\titem: DDiagramSerializedItem,\n\tmanager: EShapeResourceManagerDeserialization,\n\tshape?: EShapeConnectorLine\n): Promise<EShapeConnectorLine> | EShapeConnectorLine => {\n\treturn deserializeBase(item, manager, shape || new EShapeConnectorLine());\n};\n\nexport const onDeserializedConnectorLine = (\n\titem: DDiagramSerializedItem,\n\tshape: EShape,\n\tmapping: EShapeUuidMapping,\n\tmanager: EShapeResourceManagerDeserialization\n): void => {\n\tif (shape instanceof EShapeConnectorLine) {\n\t\tconst resources = manager.resources;\n\t\tconst resourceId = item[15];\n\t\tif (0 <= resourceId && resourceId < resources.length) {\n\t\t\tlet parsed = manager.getExtension<[number, number, number?]>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[resourceId]) as [number, number, number?];\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\t\t\t}\n\n\t\t\t// Lock\n\t\t\tshape.lock(EShapeLockPart.CONNECTOR);\n\n\t\t\t// Points\n\t\t\tconst points = shape.points;\n\t\t\tpoints.deserialize(parsed[1], manager);\n\n\t\t\t// Edge\n\t\t\tconst edge = shape.edge;\n\t\t\tedge.deserialize(parsed[0], mapping, manager);\n\n\t\t\t// Body\n\t\t\tconst body = shape.body;\n\t\t\tconst bodyId = parsed[2];\n\t\t\tif (bodyId != null) {\n\t\t\t\tbody.deserialize(bodyId, mapping, manager);\n\t\t\t} else {\n\t\t\t\t// The following is for backward compatibility.\n\t\t\t\tbody.set(\n\t\t\t\t\tEShapeConnectorBodies.from(points.values, edge.tail.margin, edge.head.margin)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Unlock\n\t\t\tshape.unlock(EShapeLockPart.CONNECTOR, true);\n\t\t}\n\t}\n};\n"]}
@@ -16,6 +16,8 @@ import { hitTestBBox } from "./hit-test-bbox";
16
16
  import { toGradientSerialized } from "./to-gradient-serialized";
17
17
  import { EShapeCapabilityContainerImpl } from "../e-shape-capability-container-impl";
18
18
  import { EShapeCapability } from "../e-shape-capability";
19
+ import { EShapeLock } from "./e-shape-lock";
20
+ import { EShapeLockPart } from "./e-shape-lock-part";
19
21
  var EShapeBase = /** @class */ (function (_super) {
20
22
  __extends(EShapeBase, _super);
21
23
  function EShapeBase(type) {
@@ -24,13 +26,11 @@ var EShapeBase = /** @class */ (function (_super) {
24
26
  _this.uuid = 0;
25
27
  _this.type = type;
26
28
  _this.transform = _this.newTransform();
27
- _this._onTransformChangeLock = 0;
28
- _this._isOnTransformChanged = false;
29
29
  _this.action = new EShapeAction();
30
30
  _this._visible = true;
31
- _this._uploadedUpdateLock = 0;
32
- _this._isUploadedUpdated = false;
33
- _this._isUploadedUpdatedRecursively = false;
31
+ _this._lockTransform = new EShapeLock();
32
+ _this._lockTransformParent = new EShapeLock();
33
+ _this._lockUploaded = new EShapeLock();
34
34
  _this._boundsTransformId = NaN;
35
35
  _this._boundsInternalTransformId = NaN;
36
36
  _this._boundsLocalTransformId = NaN;
@@ -71,6 +71,9 @@ var EShapeBase = /** @class */ (function (_super) {
71
71
  this.onParentTransformChange();
72
72
  };
73
73
  EShapeBase.prototype.onParentTransformChange = function () {
74
+ if (this._lockTransformParent.isLocked()) {
75
+ return;
76
+ }
74
77
  this.updateUploaded();
75
78
  var connector = this._connector;
76
79
  if (connector != null) {
@@ -82,79 +85,62 @@ var EShapeBase = /** @class */ (function (_super) {
82
85
  }
83
86
  };
84
87
  EShapeBase.prototype.onTransformChange_ = function () {
85
- if (this._onTransformChangeLock === 0) {
86
- var parent_1 = this.parent;
87
- if (parent_1 != null) {
88
- parent_1.onChildTransformChange();
89
- }
88
+ if (this._lockTransform.isLocked()) {
89
+ return;
90
90
  }
91
- else {
92
- this._isOnTransformChanged = true;
91
+ var parent = this.parent;
92
+ if (parent != null) {
93
+ parent.onChildTransformChange();
93
94
  }
94
95
  };
95
- EShapeBase.prototype.disallowOnTransformChange = function () {
96
- this._onTransformChangeLock += 1;
97
- if (this._onTransformChangeLock === 1) {
98
- this._isOnTransformChanged = false;
96
+ EShapeBase.prototype.lock = function (part) {
97
+ if (part & EShapeLockPart.TRANSFORM) {
98
+ this._lockTransform.lock();
99
+ }
100
+ if (part & EShapeLockPart.TRANSFORM_PARENT) {
101
+ this._lockTransformParent.lock();
102
+ }
103
+ if (part & EShapeLockPart.UPLOADED) {
104
+ this._lockUploaded.lock();
99
105
  }
106
+ return this;
100
107
  };
101
- EShapeBase.prototype.allowOnTransformChange = function (invokeOnTransformChange) {
102
- this._onTransformChangeLock -= 1;
103
- if (this._onTransformChangeLock === 0) {
104
- if (this._isOnTransformChanged) {
105
- this._isOnTransformChanged = false;
106
- if (invokeOnTransformChange) {
107
- this.onTransformChange();
108
- }
108
+ EShapeBase.prototype.unlock = function (part, invoke) {
109
+ if (part & EShapeLockPart.UPLOADED) {
110
+ var lockUploaded = this._lockUploaded;
111
+ if (lockUploaded.unlock() && invoke) {
112
+ this.updateUploaded(lockUploaded.isHigh());
113
+ }
114
+ }
115
+ if (part & EShapeLockPart.TRANSFORM_PARENT) {
116
+ if (this._lockTransformParent.unlock() && invoke) {
117
+ this.onParentTransformChange();
109
118
  }
110
119
  }
120
+ if (part & EShapeLockPart.TRANSFORM) {
121
+ if (this._lockTransform.unlock() && invoke) {
122
+ this.onTransformChange();
123
+ }
124
+ }
125
+ return this;
111
126
  };
112
127
  EShapeBase.prototype.onChildTransformChange = function () {
113
128
  //
114
129
  };
115
- EShapeBase.prototype.disallowUploadedUpdate = function () {
116
- this._uploadedUpdateLock += 1;
117
- if (this._uploadedUpdateLock === 1) {
118
- this._isUploadedUpdated = false;
119
- this._isUploadedUpdatedRecursively = false;
130
+ EShapeBase.prototype.updateUploaded = function (recursively) {
131
+ if (this._lockUploaded.isLocked()) {
132
+ return;
120
133
  }
121
- };
122
- EShapeBase.prototype.allowUploadedUpdate = function () {
123
- this._uploadedUpdateLock -= 1;
124
- if (this._uploadedUpdateLock === 0) {
125
- if (this._isUploadedUpdatedRecursively) {
126
- this._isUploadedUpdatedRecursively = false;
127
- this._isUploadedUpdated = false;
128
- this.updateUploadedRecursively();
129
- }
130
- else if (this._isUploadedUpdated) {
131
- this._isUploadedUpdated = false;
132
- this.updateUploaded();
133
- }
134
+ var uploaded = this.uploaded;
135
+ if (uploaded != null) {
136
+ uploaded.update(this);
134
137
  }
135
- };
136
- EShapeBase.prototype.updateUploadedRecursively = function () {
137
- if (this._uploadedUpdateLock === 0) {
138
- this.updateUploaded();
138
+ if (recursively === true) {
139
139
  var children = this.children;
140
140
  for (var i = 0, imax = children.length; i < imax; ++i) {
141
- children[i].updateUploadedRecursively();
141
+ children[i].updateUploaded(true);
142
142
  }
143
143
  }
144
- else {
145
- this._isUploadedUpdatedRecursively = true;
146
- }
147
- };
148
- EShapeBase.prototype.updateUploaded = function () {
149
- if (this._uploadedUpdateLock === 0) {
150
- var uploaded = this.uploaded;
151
- if (uploaded != null) {
152
- uploaded.update(this);
153
- }
154
- }
155
- else {
156
- this._isUploadedUpdated = true;
157
- }
158
144
  };
159
145
  Object.defineProperty(EShapeBase.prototype, "image", {
160
146
  get: function () {
@@ -199,9 +185,9 @@ var EShapeBase = /** @class */ (function (_super) {
199
185
  Object.defineProperty(EShapeBase.prototype, "visible", {
200
186
  get: function () {
201
187
  if (this._visible) {
202
- var parent_2 = this.parent;
203
- if (parent_2 instanceof EShapeBase) {
204
- return parent_2.visible;
188
+ var parent_1 = this.parent;
189
+ if (parent_1 instanceof EShapeBase) {
190
+ return parent_1.visible;
205
191
  }
206
192
  return true;
207
193
  }
@@ -210,7 +196,7 @@ var EShapeBase = /** @class */ (function (_super) {
210
196
  set: function (visible) {
211
197
  if (this._visible !== visible) {
212
198
  this._visible = visible;
213
- this.updateUploadedRecursively();
199
+ this.updateUploaded(true);
214
200
  }
215
201
  },
216
202
  enumerable: false,
@@ -219,9 +205,9 @@ var EShapeBase = /** @class */ (function (_super) {
219
205
  Object.defineProperty(EShapeBase.prototype, "worldVisible", {
220
206
  get: function () {
221
207
  if (this._visible) {
222
- var parent_3 = this.parent;
223
- if (parent_3) {
224
- return parent_3.worldVisible;
208
+ var parent_2 = this.parent;
209
+ if (parent_2) {
210
+ return parent_2.worldVisible;
225
211
  }
226
212
  return true;
227
213
  }
@@ -265,7 +251,7 @@ var EShapeBase = /** @class */ (function (_super) {
265
251
  children[i].onAttach();
266
252
  }
267
253
  };
268
- EShapeBase.prototype.detach = function () {
254
+ EShapeBase.prototype.detach = function (exceptions) {
269
255
  var parent = this.parent;
270
256
  if (parent) {
271
257
  this.parent = null;
@@ -275,20 +261,20 @@ var EShapeBase = /** @class */ (function (_super) {
275
261
  children.splice(index, 1);
276
262
  parent.onChildTransformChange();
277
263
  parent.toDirty();
278
- this.onDetach();
264
+ this.onDetach(exceptions);
279
265
  }
280
266
  }
281
267
  return this;
282
268
  };
283
- EShapeBase.prototype.onDetach = function () {
269
+ EShapeBase.prototype.onDetach = function (exceptions) {
284
270
  this.uploaded = undefined;
285
271
  var connector = this._connector;
286
272
  if (connector) {
287
- connector.detach();
273
+ connector.detach(exceptions);
288
274
  }
289
275
  var children = this.children;
290
276
  for (var i = 0, imax = children.length; i < imax; ++i) {
291
- children[i].onDetach();
277
+ children[i].onDetach(exceptions);
292
278
  }
293
279
  };
294
280
  // Transform
@@ -1 +1 @@
1
- {"version":3,"file":"e-shape-base.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-base.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n\tDisplayObject,\n\tIPoint,\n\tMatrix,\n\tPoint,\n\tRectangle,\n\tRenderer,\n\tTexture,\n\tTransform,\n\tutils\n} from \"pixi.js\";\nimport { DApplications } from \"../../d-applications\";\nimport { DBaseStateSet } from \"../../d-base-state-set\";\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShapeAction } from \"../action/e-shape-action\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeConnectorContainer } from \"../e-shape-connector-container\";\nimport { EShapeConnectorContainerImpl } from \"../e-shape-connector-container-impl\";\nimport { EShapeContainer } from \"../e-shape-container\";\nimport { EShapeCopyPart } from \"../e-shape-copy-part\";\nimport { EShapeCorner } from \"../e-shape-corner\";\nimport { EShapeEditor } from \"../e-shape-editor\";\nimport { EShapeFill } from \"../e-shape-fill\";\nimport { EShapeGradientLike } from \"../e-shape-gradient\";\nimport { EShapeLayout } from \"../e-shape-layout\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShapeRuntime } from \"../e-shape-runtime\";\nimport { EShapeStateSet } from \"../e-shape-state-set\";\nimport { EShapeStateSetImplObservable } from \"../e-shape-state-set-impl-observable\";\nimport { EShapeStroke } from \"../e-shape-stroke\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport { EShapeData } from \"../e-shape-data\";\nimport { EShapeText } from \"../e-shape-text\";\nimport { EShapeTransform, EShapeTransformImpl } from \"../e-shape-transform\";\nimport { EShapeType } from \"../e-shape-type\";\nimport { EShapeUploaded } from \"../e-shape-uploaded\";\nimport { EShapeBaseHitTestData } from \"./e-shape-base-hit-test-data\";\nimport { hitTestBBox } from \"./hit-test-bbox\";\nimport { toGradientSerialized } from \"./to-gradient-serialized\";\nimport { EShapeCapabilityContainer } from \"../e-shape-capability-container\";\nimport { EShapeCapabilityContainerImpl } from \"../e-shape-capability-container-impl\";\nimport { EShapeCapability } from \"../e-shape-capability\";\n\nexport abstract class EShapeBase extends utils.EventEmitter implements EShape {\n\tprotected static WORK_HIT_TEST_DATA?: EShapeBaseHitTestData;\n\tid: string;\n\tuuid: number;\n\treadonly type: EShapeType;\n\tabstract readonly size: IPoint;\n\tabstract readonly fill: EShapeFill;\n\tabstract readonly stroke: EShapeStroke;\n\treadonly transform: EShapeTransform;\n\tabstract radius: number;\n\tabstract corner: EShapeCorner;\n\tprotected _points?: EShapePoints;\n\tprotected _image?: HTMLImageElement;\n\timageSrc?: string;\n\ttexture?: Texture;\n\tabstract gradient?: EShapeGradientLike;\n\tabstract readonly text: EShapeText;\n\t/** @deprecated in favor of {@link data} */\n\tabstract readonly tag: EShapeData;\n\tabstract readonly data: EShapeData;\n\treadonly action: EShapeAction;\n\tcursor?: string;\n\tinteractive: boolean;\n\tshortcut?: string;\n\ttitle?: string;\n\n\tprotected _connector?: EShapeConnectorContainer;\n\n\tprotected _visible: boolean;\n\tprotected _onTransformChangeLock: number;\n\tprotected _isOnTransformChanged: boolean;\n\tprotected _uploadedUpdateLock: number;\n\tprotected _isUploadedUpdated: boolean;\n\tprotected _isUploadedUpdatedRecursively: boolean;\n\n\tprotected _bounds?: Rectangle;\n\tprotected _boundsTransformId: number;\n\tprotected _boundsInternal?: Rectangle;\n\tprotected _boundsInternalTransformId: number;\n\tprotected _boundsLocal?: Rectangle;\n\tprotected _boundsLocalTransformId: number;\n\n\tprotected _state?: EShapeStateSet;\n\tprotected _capability?: EShapeCapabilityContainer;\n\n\t// Hierarchy\n\tparent: EShapeContainer | EShape | null;\n\tchildren: EShape[];\n\tlayout?: EShapeLayout;\n\n\t// Working space\n\tindex: number; // A work space for sorting.\n\tselected: boolean;\n\treference: number; // Count of references from commands\n\n\t// Working space for the viewer\n\truntime?: EShapeRuntime;\n\n\t// Working space for the editor\n\teditor?: EShapeEditor;\n\n\t// Working space for the renderer\n\tuploaded?: EShapeUploaded;\n\n\tconstructor(type: EShapeType) {\n\t\tsuper();\n\t\tthis.id = \"\";\n\t\tthis.uuid = 0;\n\t\tthis.type = type;\n\t\tthis.transform = this.newTransform();\n\t\tthis._onTransformChangeLock = 0;\n\t\tthis._isOnTransformChanged = false;\n\t\tthis.action = new EShapeAction();\n\t\tthis._visible = true;\n\t\tthis._uploadedUpdateLock = 0;\n\t\tthis._isUploadedUpdated = false;\n\t\tthis._isUploadedUpdatedRecursively = false;\n\n\t\tthis._boundsTransformId = NaN;\n\t\tthis._boundsInternalTransformId = NaN;\n\t\tthis._boundsLocalTransformId = NaN;\n\n\t\tthis.interactive = false;\n\n\t\t//\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\t//\n\t\tthis.selected = false;\n\t\tthis.index = 0;\n\t\tthis.reference = 0;\n\t}\n\n\tprotected newTransform(): EShapeTransform {\n\t\treturn new EShapeTransformImpl(this);\n\t}\n\n\tonSizeChange(): void {\n\t\tthis._boundsTransformId = NaN;\n\t\tthis._boundsInternalTransformId = NaN;\n\t\tthis._boundsLocalTransformId = NaN;\n\n\t\tthis.onTransformChange_();\n\t\tconst points = this._points;\n\t\tif (points != null) {\n\t\t\tpoints.onSizeChange();\n\t\t}\n\t\tthis.updateUploaded();\n\n\t\tconst connector = this._connector;\n\t\tif (connector != null) {\n\t\t\tconnector.fit(true);\n\t\t}\n\n\t\tconst runtime = this.runtime;\n\t\tif (runtime != null) {\n\t\t\truntime.onResize(this);\n\t\t}\n\t}\n\n\tonTransformChange(): void {\n\t\tthis.onTransformChange_();\n\t\tthis.onParentTransformChange();\n\t}\n\n\tonParentTransformChange(): void {\n\t\tthis.updateUploaded();\n\t\tconst connector = this._connector;\n\t\tif (connector != null) {\n\t\t\tconnector.fit(true);\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onParentTransformChange();\n\t\t}\n\t}\n\n\tprotected onTransformChange_(): void {\n\t\tif (this._onTransformChangeLock === 0) {\n\t\t\tconst parent = this.parent;\n\t\t\tif (parent != null) {\n\t\t\t\tparent.onChildTransformChange();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._isOnTransformChanged = true;\n\t\t}\n\t}\n\n\tdisallowOnTransformChange(): void {\n\t\tthis._onTransformChangeLock += 1;\n\t\tif (this._onTransformChangeLock === 1) {\n\t\t\tthis._isOnTransformChanged = false;\n\t\t}\n\t}\n\n\tallowOnTransformChange(invokeOnTransformChange: boolean): void {\n\t\tthis._onTransformChangeLock -= 1;\n\t\tif (this._onTransformChangeLock === 0) {\n\t\t\tif (this._isOnTransformChanged) {\n\t\t\t\tthis._isOnTransformChanged = false;\n\t\t\t\tif (invokeOnTransformChange) {\n\t\t\t\t\tthis.onTransformChange();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonChildTransformChange(): void {\n\t\t//\n\t}\n\n\tdisallowUploadedUpdate(): void {\n\t\tthis._uploadedUpdateLock += 1;\n\t\tif (this._uploadedUpdateLock === 1) {\n\t\t\tthis._isUploadedUpdated = false;\n\t\t\tthis._isUploadedUpdatedRecursively = false;\n\t\t}\n\t}\n\n\tallowUploadedUpdate(): void {\n\t\tthis._uploadedUpdateLock -= 1;\n\t\tif (this._uploadedUpdateLock === 0) {\n\t\t\tif (this._isUploadedUpdatedRecursively) {\n\t\t\t\tthis._isUploadedUpdatedRecursively = false;\n\t\t\t\tthis._isUploadedUpdated = false;\n\t\t\t\tthis.updateUploadedRecursively();\n\t\t\t} else if (this._isUploadedUpdated) {\n\t\t\t\tthis._isUploadedUpdated = false;\n\t\t\t\tthis.updateUploaded();\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateUploadedRecursively(): void {\n\t\tif (this._uploadedUpdateLock === 0) {\n\t\t\tthis.updateUploaded();\n\t\t\tconst children = this.children;\n\t\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\t\tchildren[i].updateUploadedRecursively();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._isUploadedUpdatedRecursively = true;\n\t\t}\n\t}\n\n\tupdateUploaded(): void {\n\t\tif (this._uploadedUpdateLock === 0) {\n\t\t\tconst uploaded = this.uploaded;\n\t\t\tif (uploaded != null) {\n\t\t\t\tuploaded.update(this);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._isUploadedUpdated = true;\n\t\t}\n\t}\n\n\tget image(): HTMLImageElement | undefined {\n\t\treturn this._image;\n\t}\n\n\tset image(image: HTMLImageElement | undefined) {\n\t\tthis._image = image;\n\t}\n\n\tget points(): EShapePoints | undefined {\n\t\treturn this._points;\n\t}\n\n\tget root(): EShape {\n\t\tlet root: EShape = this;\n\t\twhile (root.parent instanceof EShapeBase) {\n\t\t\troot = root.parent;\n\t\t}\n\t\treturn root;\n\t}\n\n\tget connector(): EShapeConnectorContainer {\n\t\tlet result = this._connector;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeConnectorContainerImpl(this);\n\t\t\tthis._connector = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget visible(): boolean {\n\t\tif (this._visible) {\n\t\t\tconst parent = this.parent;\n\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\treturn parent.visible;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tset visible(visible: boolean) {\n\t\tif (this._visible !== visible) {\n\t\t\tthis._visible = visible;\n\t\t\tthis.updateUploadedRecursively();\n\t\t}\n\t}\n\n\tget worldVisible(): boolean {\n\t\tif (this._visible) {\n\t\t\tconst parent = this.parent;\n\t\t\tif (parent) {\n\t\t\t\treturn parent.worldVisible;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t//\n\tabstract clone(): EShape;\n\n\t//\n\ttoDirty(): void {\n\t\tconst parent = this.parent;\n\t\tif (parent != null) {\n\t\t\tparent.toDirty();\n\t\t}\n\t}\n\n\t// Hierarchy\n\tattach(parent: EShapeContainer | EShape, at?: number): this {\n\t\tthis.detach();\n\t\tthis.parent = parent;\n\t\tconst children = parent.children;\n\t\tif (at != null && 0 <= at && at < children.length) {\n\t\t\tchildren.splice(at, 0, this);\n\t\t} else {\n\t\t\tchildren.push(this);\n\t\t}\n\t\tparent.onChildTransformChange();\n\t\tparent.toDirty();\n\t\tthis.onAttach();\n\t\treturn this;\n\t}\n\n\tonAttach(): void {\n\t\tthis.uploaded = undefined;\n\t\tconst connector = this._connector;\n\t\tif (connector) {\n\t\t\tconnector.attach();\n\t\t\tconnector.fit(true);\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onAttach();\n\t\t}\n\t}\n\n\tdetach(): this {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tthis.parent = null;\n\t\t\tconst children = parent.children;\n\t\t\tconst index = children.indexOf(this);\n\t\t\tif (0 <= index) {\n\t\t\t\tchildren.splice(index, 1);\n\t\t\t\tparent.onChildTransformChange();\n\t\t\t\tparent.toDirty();\n\t\t\t\tthis.onDetach();\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tonDetach(): void {\n\t\tthis.uploaded = undefined;\n\t\tconst connector = this._connector;\n\t\tif (connector) {\n\t\t\tconnector.detach();\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onDetach();\n\t\t}\n\t}\n\n\t// Transform\n\tupdateTransform(): void {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tif (parent.parent) {\n\t\t\t\tparent.updateTransform();\n\t\t\t}\n\t\t\tthis.transform.updateTransform(parent.transform);\n\t\t} else {\n\t\t\tthis.transform.updateTransform(Transform.IDENTITY);\n\t\t}\n\t}\n\n\t// Serialization\n\tserializeChildren(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem[] {\n\t\tconst children = this.children;\n\t\tconst childrenSerialized = [];\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tconst child = children[i];\n\t\t\tchildrenSerialized.push(child.serialize(manager));\n\t\t}\n\t\treturn childrenSerialized;\n\t}\n\n\tserializeImage(manager: EShapeResourceManagerSerialization): number {\n\t\tconst image = this._image;\n\t\treturn image != null ? manager.addResource(image.src) : -1;\n\t}\n\n\tserializeGradient(manager: EShapeResourceManagerSerialization): number {\n\t\tconst gradient = this.gradient;\n\t\tif (gradient != null) {\n\t\t\tif (gradient.serialized == null) {\n\t\t\t\tgradient.serialized = toGradientSerialized(gradient);\n\t\t\t}\n\t\t\treturn manager.addResource(gradient.serialized);\n\t\t}\n\t\treturn -1;\n\t}\n\n\tserializeState(manager: EShapeResourceManagerSerialization): number {\n\t\tconst state = this.state;\n\t\treturn (this.interactive ? 1 : 0) | (state.isFocusable ? 0 : 2) | (state.isActive ? 4 : 0);\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem {\n\t\tconst transform = this.transform;\n\t\tconst position = transform.position;\n\t\tconst pivot = transform.pivot;\n\t\tconst size = this.size;\n\t\tconst shortcut = this.shortcut;\n\t\tconst shortcutId = shortcut != null ? manager.addResource(shortcut) : -1;\n\t\tconst cursor = this.cursor;\n\t\tconst cursorId = cursor != null ? manager.addResource(cursor) : -1;\n\t\tconst title = this.title;\n\t\tconst titleId = title != null ? manager.addResource(title) : -1;\n\t\tlet capabilitiesAdded: EShapeCapability = EShapeCapability.NONE;\n\t\tlet capabilitiesRemoved: EShapeCapability = EShapeCapability.NONE;\n\t\tlet capabilitiesLocked: EShapeCapability = EShapeCapability.NONE;\n\t\tconst capability = this._capability;\n\t\tif (capability != null) {\n\t\t\tcapabilitiesAdded = capability.added;\n\t\t\tcapabilitiesRemoved = capability.removed;\n\t\t\tcapabilitiesLocked = capability.locked;\n\t\t}\n\t\treturn [\n\t\t\tthis.type,\n\t\t\tmanager.addResource(this.id),\n\t\t\tposition.x,\n\t\t\tposition.y,\n\t\t\tsize.x,\n\t\t\tsize.y,\n\t\t\ttransform.rotation,\n\t\t\ttransform.skew.x,\n\t\t\tthis.fill.serialize(manager),\n\t\t\tthis.stroke.serialize(manager),\n\t\t\tcursorId,\n\t\t\tthis.text.serialize(manager),\n\t\t\tthis.data.serialize(manager),\n\t\t\tthis.radius,\n\t\t\tthis.corner,\n\t\t\t-1,\n\t\t\t-1,\n\t\t\tthis.action.serialize(manager),\n\t\t\tthis.serializeImage(manager),\n\t\t\tthis.serializeGradient(manager),\n\t\t\tthis.serializeChildren(manager),\n\t\t\tpivot.x,\n\t\t\tpivot.y,\n\t\t\tthis.serializeState(manager),\n\t\t\tshortcutId,\n\t\t\ttitleId,\n\t\t\tthis.uuid,\n\t\t\tcapabilitiesAdded,\n\t\t\tcapabilitiesRemoved,\n\t\t\tcapabilitiesLocked\n\t\t];\n\t}\n\n\taddUuid(manager: EShapeResourceManagerSerialization): void {\n\t\tthis.uuid = manager.addUuid(this.uuid);\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].addUuid(manager);\n\t\t}\n\t}\n\n\tupdateUuid(manager: EShapeResourceManagerSerialization): void {\n\t\tthis.uuid = manager.updateUuid(this.uuid);\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].updateUuid(manager);\n\t\t}\n\t}\n\n\t// Hit test\n\tprotected getShapeScale(): number {\n\t\tconst container = this.root.parent as any;\n\t\tif (container != null && container.getShapeScale != null) {\n\t\t\treturn container.getShapeScale();\n\t\t}\n\t\treturn 1.0;\n\t}\n\n\tprotected getStrokeWidthScale(style: EShapeStrokeStyle): number {\n\t\tif (style & EShapeStrokeStyle.NON_EXPANDING_WIDTH) {\n\t\t\tif (style & EShapeStrokeStyle.NON_SHRINKING_WIDTH) {\n\t\t\t\treturn this.getShapeScale();\n\t\t\t} else {\n\t\t\t\treturn Math.min(1.0, this.getShapeScale());\n\t\t\t}\n\t\t} else {\n\t\t\tif (style & EShapeStrokeStyle.NON_SHRINKING_WIDTH) {\n\t\t\t\treturn Math.max(1.0, this.getShapeScale());\n\t\t\t} else {\n\t\t\t\treturn 1.0;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getHitTestSize(result: EShapeBaseHitTestData): EShapeBaseHitTestData {\n\t\tconst size = this.size;\n\t\tresult.width = 0.5 * size.x;\n\t\tresult.height = 0.5 * size.y;\n\t\treturn result;\n\t}\n\n\ttoHitTestData(x: number, y: number): EShapeBaseHitTestData {\n\t\tconst result = this.getHitTestSize(\n\t\t\t(EShapeBase.WORK_HIT_TEST_DATA ??= new EShapeBaseHitTestData())\n\t\t);\n\t\tconst sx = result.width;\n\t\tconst sy = result.height;\n\t\tconst pivot = this.transform.pivot;\n\t\tconst dx = x - pivot.x;\n\t\tconst dy = y - pivot.y;\n\t\tconst stroke = this.stroke;\n\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\tconst strokeScale = this.getStrokeWidthScale(stroke.style);\n\t\tconst strokeAlign = stroke.align;\n\t\tconst s = strokeWidth * strokeScale * strokeAlign;\n\t\treturn result.set(\n\t\t\t0 <= sx ? +dx : -dx,\n\t\t\t0 <= sy ? +dy : -dy,\n\t\t\tMath.abs(sx) + s,\n\t\t\tMath.abs(sy) + s,\n\t\t\tstrokeWidth,\n\t\t\tstrokeScale,\n\t\t\tstrokeAlign\n\t\t);\n\t}\n\n\tcontains(x: number, y: number): EShape | null {\n\t\tconst data = this.toHitTestData(x, y);\n\t\tif (\n\t\t\tthis.containsAbs(\n\t\t\t\tdata.x,\n\t\t\t\tdata.y,\n\t\t\t\tdata.width,\n\t\t\t\tdata.height,\n\t\t\t\tdata.strokeWidth,\n\t\t\t\tdata.strokeScale,\n\t\t\t\tdata.strokeAlign\n\t\t\t)\n\t\t) {\n\t\t\treturn this;\n\t\t}\n\t\treturn this.containsText(x, y) || this.containsChildren(x, y);\n\t}\n\n\tprotected containsText(x: number, y: number): EShape | null {\n\t\tconst text = this.text;\n\t\tconst textAtlas = text.atlas;\n\t\tif (textAtlas != null) {\n\t\t\tconst textWorld = text.world;\n\t\t\tif (textWorld != null) {\n\t\t\t\tconst transform = this.transform.internalTransform;\n\t\t\t\tconst tx = transform.a * x + transform.c * y + transform.tx - textWorld[0];\n\t\t\t\tconst ty = transform.b * x + transform.d * y + transform.ty - textWorld[1];\n\t\t\t\tconst th = textWorld[2] * tx + textWorld[3] * ty;\n\t\t\t\tconst tv = textWorld[4] * tx + textWorld[5] * ty;\n\t\t\t\tconst w = textWorld[6];\n\t\t\t\tconst h = textWorld[7];\n\t\t\t\tif (0 <= th && th <= w && 0 <= tv && tv <= h) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected containsChildren(x: number, y: number): EShape | null {\n\t\tconst children = this.children;\n\t\tfor (let i = children.length - 1; 0 <= i; --i) {\n\t\t\tconst child = children[i];\n\t\t\tchild.updateTransform();\n\t\t\tconst localTransform = child.transform.localTransform;\n\t\t\tconst a = localTransform.a;\n\t\t\tconst b = localTransform.b;\n\t\t\tconst c = localTransform.c;\n\t\t\tconst d = localTransform.d;\n\t\t\tconst tx = localTransform.tx;\n\t\t\tconst ty = localTransform.ty;\n\t\t\tconst id = 1 / (a * d - c * b);\n\t\t\tconst lx = (d * x - c * y + ty * c - tx * d) * id;\n\t\t\tconst ly = (a * y - b * x - ty * a + tx * b) * id;\n\t\t\tconst childResult = child.contains(lx, ly);\n\t\t\tif (childResult != null) {\n\t\t\t\treturn childResult;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tcontainsBBox(x: number, y: number): boolean {\n\t\tconst data = this.toHitTestData(x, y);\n\t\treturn this.containsAbsBBox(data.x, data.y, data.width, data.height);\n\t}\n\n\tcontainsAbs(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tsw: number,\n\t\tss: number,\n\t\tsa: number\n\t): boolean {\n\t\treturn this.containsAbsBBox(x, y, ax, ay);\n\t}\n\n\tcontainsAbsBBox(x: number, y: number, ax: number, ay: number): boolean {\n\t\treturn hitTestBBox(x, y, ax, ay);\n\t}\n\n\tselect(point: Point): boolean {\n\t\treturn false;\n\t}\n\n\t//\n\ttoGlobal(position: IPoint, result: Point, skipUpdate?: boolean): Point {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tresult.copyFrom(position);\n\t\tthis.transform.worldTransform.apply(result, result);\n\t\treturn result;\n\t}\n\n\ttoLocal(position: IPoint, from?: DisplayObject, result?: Point, skipUpdate?: boolean): Point {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tif (result === undefined) {\n\t\t\tresult = new Point();\n\t\t}\n\t\tresult.copyFrom(position);\n\t\tthis.transform.worldTransform.applyInverse(result, result);\n\t\treturn result;\n\t}\n\n\tgetBounds(skipUpdate?: boolean, result?: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst bounds = this._bounds || new Rectangle();\n\t\tthis._bounds = bounds;\n\t\tconst worldId = this.transform.getWorldId();\n\t\tif (worldId !== this._boundsTransformId) {\n\t\t\tthis._boundsTransformId = worldId;\n\t\t\tthis.getBounds_(this.transform.worldTransform, bounds);\n\t\t}\n\t\tresult ??= new Rectangle();\n\t\tresult.copyFrom(bounds);\n\t\treturn result;\n\t}\n\n\tgetBoundsInternal(skipUpdate?: boolean, result?: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst boundsInternal = this._boundsInternal || new Rectangle();\n\t\tthis._boundsInternal = boundsInternal;\n\t\tconst currentLocalId = this.transform.getLocalIdCurrent();\n\t\tif (currentLocalId !== this._boundsInternalTransformId) {\n\t\t\tthis._boundsInternalTransformId = currentLocalId;\n\t\t\tthis.getBounds_(this.transform.internalTransform, boundsInternal);\n\t\t}\n\t\tresult ??= new Rectangle();\n\t\tresult.copyFrom(boundsInternal);\n\t\treturn result;\n\t}\n\n\tgetBoundsLocal(skipUpdate?: boolean, result?: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst boundsLocal = this._boundsLocal || new Rectangle();\n\t\tthis._boundsLocal = boundsLocal;\n\t\tconst currentLocalId = this.transform.getLocalIdCurrent();\n\t\tif (currentLocalId !== this._boundsLocalTransformId) {\n\t\t\tthis._boundsLocalTransformId = currentLocalId;\n\t\t\tthis.getBounds_(this.transform.localTransform, boundsLocal);\n\t\t}\n\t\tresult ??= new Rectangle();\n\t\tresult.copyFrom(boundsLocal);\n\t\treturn result;\n\t}\n\n\tprotected getBoundsSize(): IPoint {\n\t\treturn this.size;\n\t}\n\n\tprotected getBounds_(transform: Matrix, result: Rectangle): Rectangle {\n\t\tconst pivot = this.transform.pivot;\n\t\tconst px = pivot.x;\n\t\tconst py = pivot.y;\n\t\tconst size = this.getBoundsSize();\n\t\tconst sx = 0.5 * size.x;\n\t\tconst sy = 0.5 * size.y;\n\n\t\tconst a = transform.a;\n\t\tconst b = transform.b;\n\t\tconst c = transform.c;\n\t\tconst d = transform.d;\n\n\t\tlet x = -sx + px;\n\t\tlet y = -sy + py;\n\t\tconst x0 = a * x + c * y;\n\t\tconst y0 = b * x + d * y;\n\n\t\tx = +sx + px;\n\t\ty = -sy + py;\n\t\tconst x1 = a * x + c * y;\n\t\tconst y1 = b * x + d * y;\n\n\t\tx = -sx + px;\n\t\ty = +sy + py;\n\t\tconst x2 = a * x + c * y;\n\t\tconst y2 = b * x + d * y;\n\n\t\tx = +sx + px;\n\t\ty = +sy + py;\n\t\tconst x3 = a * x + c * y;\n\t\tconst y3 = b * x + d * y;\n\n\t\tconst xmin = Math.min(x0, x1, x2, x3);\n\t\tconst ymin = Math.min(y0, y1, y2, y3);\n\t\tconst xmax = Math.max(x0, x1, x2, x3);\n\t\tconst ymax = Math.max(y0, y1, y2, y3);\n\t\tresult.x = xmin + transform.tx;\n\t\tresult.y = ymin + transform.ty;\n\t\tresult.width = xmax - xmin;\n\t\tresult.height = ymax - ymin;\n\t\treturn result;\n\t}\n\n\t//\n\tdestroy(): void {\n\t\tconst children = this.children;\n\t\tfor (let i = children.length - 1; 0 <= i; --i) {\n\t\t\tchildren[i].destroy();\n\t\t}\n\t\tchildren.length = 0;\n\t}\n\n\t//\n\tprotected onStateChange(newState: DBaseStateSet, oldState: DBaseStateSet): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime != null) {\n\t\t\truntime.onStateChange(this, newState, oldState);\n\t\t}\n\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tconst child = children[i];\n\t\t\tif (child instanceof EShapeBase) {\n\t\t\t\tchild.state.onParentChange(newState, oldState);\n\t\t\t}\n\t\t}\n\t}\n\n\tget state(): EShapeStateSet {\n\t\tlet result = this._state;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeStateSetImplObservable((newState, oldState): void => {\n\t\t\t\tthis.onStateChange(newState, oldState);\n\t\t\t});\n\t\t\tthis._state = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget capability(): EShapeCapabilityContainer {\n\t\tlet result = this._capability;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeCapabilityContainerImpl();\n\t\t\tthis._capability = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetCapability(): EShapeCapabilityContainer | undefined {\n\t\treturn this._capability;\n\t}\n\n\tfocus(): this {\n\t\tthis.setFocused(true);\n\t\treturn this;\n\t}\n\n\tblur(): this {\n\t\tthis.setFocused(false);\n\t\treturn this;\n\t}\n\n\tprotected setFocused(isFocused: boolean): void {\n\t\tif (this.state.isFocused !== isFocused) {\n\t\t\tconst layer = DApplications.getLayer(this);\n\t\t\tif (layer) {\n\t\t\t\tlayer.getFocusController().set(this, isFocused);\n\t\t\t}\n\t\t}\n\t}\n\n\tonKeyDown(e: KeyboardEvent): boolean {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\treturn runtime.onKeyDown(this, e);\n\t\t}\n\t\treturn false;\n\t}\n\n\tonKeyUp(e: KeyboardEvent): boolean {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\treturn runtime.onKeyUp(this, e);\n\t\t}\n\t\treturn false;\n\t}\n\n\t//\n\tupdate(time: number): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\truntime.update(this, time);\n\t\t}\n\t}\n\n\tonRender(time: number, renderer: Renderer): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\truntime.onRender(this, time, renderer);\n\t\t}\n\t}\n\n\tupdateRecursively(time: number): void {\n\t\tthis.update(time);\n\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].update(time);\n\t\t}\n\t}\n\n\tcopy(source: EShape, part: EShapeCopyPart = EShapeCopyPart.ALL): this {\n\t\tthis.id = source.id;\n\t\tthis.uuid = source.uuid;\n\t\tthis.visible = source.visible;\n\t\tif (part & EShapeCopyPart.TRANSFORM) {\n\t\t\tconst transform = this.transform;\n\t\t\tconst sourceTransform = source.transform;\n\t\t\ttransform.position.copyFrom(sourceTransform.position);\n\t\t\ttransform.rotation = sourceTransform.rotation;\n\t\t\ttransform.skew.copyFrom(sourceTransform.skew);\n\t\t\ttransform.pivot.copyFrom(sourceTransform.pivot);\n\t\t\ttransform.scale.copyFrom(sourceTransform.scale);\n\t\t}\n\t\tif (part & EShapeCopyPart.SIZE) {\n\t\t\tthis.size.copyFrom(source.size);\n\t\t}\n\t\tif (part & EShapeCopyPart.STYLE) {\n\t\t\tthis.fill.copy(source.fill);\n\t\t\tthis.stroke.copy(source.stroke);\n\t\t\tthis.text.copy(source.text);\n\t\t\tthis.radius = source.radius;\n\t\t\tthis.corner = source.corner;\n\t\t}\n\t\tif (part & EShapeCopyPart.DATA) {\n\t\t\tthis.data.copy(source.data);\n\t\t}\n\t\tif (part & EShapeCopyPart.IMAGE) {\n\t\t\tthis.image = source.image;\n\t\t}\n\t\tif (part & EShapeCopyPart.ACTION) {\n\t\t\tthis.action.clearAndAddAll(source.action.values);\n\t\t\tthis.interactive = source.interactive;\n\t\t\tthis.cursor = source.cursor;\n\t\t\tthis.shortcut = source.shortcut;\n\t\t}\n\t\tif (part & EShapeCopyPart.POINTS) {\n\t\t\tconst sourcePoints = source.points;\n\t\t\tif (sourcePoints != null) {\n\t\t\t\tconst points = this.points;\n\t\t\t\tif (points != null) {\n\t\t\t\t\tpoints.copy(sourcePoints);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (part & EShapeCopyPart.STATE) {\n\t\t\tthis.state.lock(false).copy(source.state).unlock();\n\t\t}\n\t\tif (part & EShapeCopyPart.CONNECTOR) {\n\t\t\tif (source instanceof EShapeBase) {\n\t\t\t\tconst sourceConnector = source._connector;\n\t\t\t\tif (sourceConnector) {\n\t\t\t\t\tthis.connector.copy(sourceConnector);\n\t\t\t\t} else {\n\t\t\t\t\tconst connector = this._connector;\n\t\t\t\t\tif (connector) {\n\t\t\t\t\t\tconnector.clear();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst connector = this._connector;\n\t\t\t\tif (connector) {\n\t\t\t\t\tconnector.clear();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (part & EShapeCopyPart.CAPABILITY) {\n\t\t\tconst sourceCapability = source.getCapability();\n\t\t\tif (sourceCapability != null) {\n\t\t\t\tthis.capability.copy(sourceCapability);\n\t\t\t} else {\n\t\t\t\tconst capability = this._capability;\n\t\t\t\tif (capability != null) {\n\t\t\t\t\tcapability.clear();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n}\n"]}
1
+ {"version":3,"file":"e-shape-base.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-base.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAIN,KAAK,EACL,SAAS,EAGT,SAAS,EACT,KAAK,EACL,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAUtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,EAAmB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;IAAyC,8BAAkB;IA+D1D,oBAAY,IAAgB;QAA5B,YACC,iBAAO,SA0BP;QAzBA,KAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,KAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,YAAY,EAAE,CAAC;QACrC,KAAI,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,KAAI,CAAC,cAAc,GAAG,IAAI,UAAU,EAAE,CAAC;QACvC,KAAI,CAAC,oBAAoB,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7C,KAAI,CAAC,aAAa,GAAG,IAAI,UAAU,EAAE,CAAC;QAEtC,KAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,KAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC;QACtC,KAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC;QAEnC,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,EAAE;QACF,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,KAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QAEnB,EAAE;QACF,KAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC;;IACpB,CAAC;IAES,iCAAY,GAAtB;QACC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,iCAAY,GAAZ;QACC,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC;QACtC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC;QAEnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,MAAM,CAAC,YAAY,EAAE,CAAC;SACtB;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACpB;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB;IACF,CAAC;IAED,sCAAiB,GAAjB;QACC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAChC,CAAC;IAED,4CAAuB,GAAvB;QACC,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE;YACzC,OAAO;SACP;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACpB;QACD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACtD,QAAQ,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC;SACtC;IACF,CAAC;IAES,uCAAkB,GAA5B;QACC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE;YACnC,OAAO;SACP;QACD,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,MAAM,CAAC,sBAAsB,EAAE,CAAC;SAChC;IACF,CAAC;IAED,yBAAI,GAAJ,UAAK,IAAoB;QACxB,IAAI,IAAI,GAAG,cAAc,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;SAC3B;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,gBAAgB,EAAE;YAC3C,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;SACjC;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,QAAQ,EAAE;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC1B;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,2BAAM,GAAN,UAAO,IAAoB,EAAE,MAAe;QAC3C,IAAI,IAAI,GAAG,cAAc,CAAC,QAAQ,EAAE;YACnC,IAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,IAAI,YAAY,CAAC,MAAM,EAAE,IAAI,MAAM,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;aAC3C;SACD;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,gBAAgB,EAAE;YAC3C,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,MAAM,EAAE;gBACjD,IAAI,CAAC,uBAAuB,EAAE,CAAC;aAC/B;SACD;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,SAAS,EAAE;YACpC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,MAAM,EAAE;gBAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;aACzB;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,2CAAsB,GAAtB;QACC,EAAE;IACH,CAAC;IAED,mCAAc,GAAd,UAAe,WAAqB;QACnC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE;YAClC,OAAO;SACP;QACD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,QAAQ,IAAI,IAAI,EAAE;YACrB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACtB;QACD,IAAI,WAAW,KAAK,IAAI,EAAE;YACzB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACtD,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aACjC;SACD;IACF,CAAC;IAED,sBAAI,6BAAK;aAAT;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;aAED,UAAU,KAAmC;YAC5C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,CAAC;;;OAJA;IAMD,sBAAI,8BAAM;aAAV;YACC,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;;;OAAA;IAED,sBAAI,4BAAI;aAAR;YACC,IAAI,IAAI,GAAW,IAAI,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,YAAY,UAAU,EAAE;gBACzC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;aACnB;YACD,OAAO,IAAI,CAAC;QACb,CAAC;;;OAAA;IAED,sBAAI,iCAAS;aAAb;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7B,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;aACzB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAED,sBAAI,+BAAO;aAAX;YACC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAM,QAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,QAAM,YAAY,UAAU,EAAE;oBACjC,OAAO,QAAM,CAAC,OAAO,CAAC;iBACtB;gBACD,OAAO,IAAI,CAAC;aACZ;YACD,OAAO,KAAK,CAAC;QACd,CAAC;aAED,UAAY,OAAgB;YAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;gBAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAC1B;QACF,CAAC;;;OAPA;IASD,sBAAI,oCAAY;aAAhB;YACC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAM,QAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,QAAM,EAAE;oBACX,OAAO,QAAM,CAAC,YAAY,CAAC;iBAC3B;gBACD,OAAO,IAAI,CAAC;aACZ;YACD,OAAO,KAAK,CAAC;QACd,CAAC;;;OAAA;IAKD,EAAE;IACF,4BAAO,GAAP;QACC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,MAAM,CAAC,OAAO,EAAE,CAAC;SACjB;IACF,CAAC;IAED,YAAY;IACZ,2BAAM,GAAN,UAAO,MAAgC,EAAE,EAAW;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE;YAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;SAC7B;aAAM;YACN,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpB;QACD,MAAM,CAAC,sBAAsB,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,6BAAQ,GAAR;QACC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,SAAS,EAAE;YACd,SAAS,CAAC,MAAM,EAAE,CAAC;YACnB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACpB;QACD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACtD,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SACvB;IACF,CAAC;IAED,2BAAM,GAAN,UAAO,UAAwB;QAC9B,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,IAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,KAAK,EAAE;gBACf,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,sBAAsB,EAAE,CAAC;gBAChC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;aAC1B;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,6BAAQ,GAAR,UAAS,UAAwB;QAChC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,SAAS,EAAE;YACd,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SAC7B;QACD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACtD,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACjC;IACF,CAAC;IAED,YAAY;IACZ,oCAAe,GAAf;QACC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACX,IAAI,MAAM,CAAC,MAAM,EAAE;gBAClB,MAAM,CAAC,eAAe,EAAE,CAAC;aACzB;YACD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACjD;aAAM;YACN,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACnD;IACF,CAAC;IAED,gBAAgB;IAChB,sCAAiB,GAAjB,UAAkB,OAA2C;QAC5D,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAM,kBAAkB,GAAG,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACtD,IAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;SAClD;QACD,OAAO,kBAAkB,CAAC;IAC3B,CAAC;IAED,mCAAc,GAAd,UAAe,OAA2C;QACzD,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,sCAAiB,GAAjB,UAAkB,OAA2C;QAC5D,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,QAAQ,IAAI,IAAI,EAAE;YACrB,IAAI,QAAQ,CAAC,UAAU,IAAI,IAAI,EAAE;gBAChC,QAAQ,CAAC,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;aACrD;YACD,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAChD;QACD,OAAO,CAAC,CAAC,CAAC;IACX,CAAC;IAED,mCAAc,GAAd,UAAe,OAA2C;QACzD,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,8BAAS,GAAT,UAAU,OAA2C;QACpD,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QACpC,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC9B,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAM,UAAU,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,QAAQ,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,iBAAiB,GAAqB,gBAAgB,CAAC,IAAI,CAAC;QAChE,IAAI,mBAAmB,GAAqB,gBAAgB,CAAC,IAAI,CAAC;QAClE,IAAI,kBAAkB,GAAqB,gBAAgB,CAAC,IAAI,CAAC;QACjE,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC;YACrC,mBAAmB,GAAG,UAAU,CAAC,OAAO,CAAC;YACzC,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;SACvC;QACD,OAAO;YACN,IAAI,CAAC,IAAI;YACT,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,CAAC;YACV,QAAQ,CAAC,CAAC;YACV,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,CAAC;YACN,SAAS,CAAC,QAAQ;YAClB,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAC9B,QAAQ;YACR,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,MAAM;YACX,CAAC,CAAC;YACF,CAAC,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC/B,KAAK,CAAC,CAAC;YACP,KAAK,CAAC,CAAC;YACP,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC5B,UAAU;YACV,OAAO;YACP,IAAI,CAAC,IAAI;YACT,iBAAiB;YACjB,mBAAmB;YACnB,kBAAkB;SAClB,CAAC;IACH,CAAC;IAED,4BAAO,GAAP,UAAQ,OAA2C;QAClD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACtD,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC7B;IACF,CAAC;IAED,+BAAU,GAAV,UAAW,OAA2C;QACrD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACtD,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAChC;IACF,CAAC;IAED,WAAW;IACD,kCAAa,GAAvB;QACC,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAa,CAAC;QAC1C,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,aAAa,IAAI,IAAI,EAAE;YACzD,OAAO,SAAS,CAAC,aAAa,EAAE,CAAC;SACjC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAES,wCAAmB,GAA7B,UAA8B,KAAwB;QACrD,IAAI,KAAK,GAAG,iBAAiB,CAAC,mBAAmB,EAAE;YAClD,IAAI,KAAK,GAAG,iBAAiB,CAAC,mBAAmB,EAAE;gBAClD,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;aAC5B;iBAAM;gBACN,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;aAC3C;SACD;aAAM;YACN,IAAI,KAAK,GAAG,iBAAiB,CAAC,mBAAmB,EAAE;gBAClD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;aAC3C;iBAAM;gBACN,OAAO,GAAG,CAAC;aACX;SACD;IACF,CAAC;IAES,mCAAc,GAAxB,UAAyB,MAA6B;QACrD,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IACf,CAAC;IAED,kCAAa,GAAb,UAAc,CAAS,EAAE,CAAS;;QACjC,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CACjC,OAAC,UAAU,CAAC,kBAAkB,oCAA7B,UAAU,CAAC,kBAAkB,GAAK,IAAI,qBAAqB,EAAE,EAAC,CAC/D,CAAC;QACF,IAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QACxB,IAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACnC,IAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACvB,IAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACvB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,IAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;QACjC,IAAM,CAAC,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;QAClD,OAAO,MAAM,CAAC,GAAG,CAChB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EACnB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EACnB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAChB,WAAW,EACX,WAAW,EACX,WAAW,CACX,CAAC;IACH,CAAC;IAED,6BAAQ,GAAR,UAAS,CAAS,EAAE,CAAS;QAC5B,IAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,IACC,IAAI,CAAC,WAAW,CACf,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,CAChB,EACA;YACD,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAES,iCAAY,GAAtB,UAAuB,CAAS,EAAE,CAAS;QAC1C,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,SAAS,IAAI,IAAI,EAAE;gBACtB,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;gBACnD,IAAM,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAM,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACjD,IAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACjD,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;oBAC7C,OAAO,IAAI,CAAC;iBACZ;aACD;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,qCAAgB,GAA1B,UAA2B,CAAS,EAAE,CAAS;QAC9C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;YAC9C,IAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;YACtD,IAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;YAC3B,IAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;YAC3B,IAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;YAC3B,IAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;YAC3B,IAAM,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;YAC7B,IAAM,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;YAC7B,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,IAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClD,IAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClD,IAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,WAAW,IAAI,IAAI,EAAE;gBACxB,OAAO,WAAW,CAAC;aACnB;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,iCAAY,GAAZ,UAAa,CAAS,EAAE,CAAS;QAChC,IAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,gCAAW,GAAX,UACC,CAAS,EACT,CAAS,EACT,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU;QAEV,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,oCAAe,GAAf,UAAgB,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU;QAC3D,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,2BAAM,GAAN,UAAO,KAAY;QAClB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,EAAE;IACF,6BAAQ,GAAR,UAAS,QAAgB,EAAE,MAAa,EAAE,UAAoB;QAC7D,IAAI,UAAU,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC;SACvB;QACD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,4BAAO,GAAP,UAAQ,QAAgB,EAAE,IAAoB,EAAE,MAAc,EAAE,UAAoB;QACnF,IAAI,UAAU,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC;SACvB;QACD,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;SACrB;QACD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IACf,CAAC;IAED,8BAAS,GAAT,UAAU,UAAoB,EAAE,MAAkB;QACjD,IAAI,UAAU,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC;SACvB;QACD,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,SAAS,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAC5C,IAAI,OAAO,KAAK,IAAI,CAAC,kBAAkB,EAAE;YACxC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;SACvD;QACD,MAAM,aAAN,MAAM,cAAN,MAAM,IAAN,MAAM,GAAK,IAAI,SAAS,EAAE,EAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,sCAAiB,GAAjB,UAAkB,UAAoB,EAAE,MAAkB;QACzD,IAAI,UAAU,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC;SACvB;QACD,IAAM,cAAc,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,SAAS,EAAE,CAAC;QAC/D,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAC1D,IAAI,cAAc,KAAK,IAAI,CAAC,0BAA0B,EAAE;YACvD,IAAI,CAAC,0BAA0B,GAAG,cAAc,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;SAClE;QACD,MAAM,aAAN,MAAM,cAAN,MAAM,IAAN,MAAM,GAAK,IAAI,SAAS,EAAE,EAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,mCAAc,GAAd,UAAe,UAAoB,EAAE,MAAkB;QACtD,IAAI,UAAU,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC;SACvB;QACD,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAC1D,IAAI,cAAc,KAAK,IAAI,CAAC,uBAAuB,EAAE;YACpD,IAAI,CAAC,uBAAuB,GAAG,cAAc,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;SAC5D;QACD,MAAM,aAAN,MAAM,cAAN,MAAM,IAAN,MAAM,GAAK,IAAI,SAAS,EAAE,EAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IACf,CAAC;IAES,kCAAa,GAAvB;QACC,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAES,+BAAU,GAApB,UAAqB,SAAiB,EAAE,MAAiB;QACxD,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACnC,IAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACnB,IAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACnB,IAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;QACxB,IAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;QAExB,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QACtB,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QACtB,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QACtB,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QAEtB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;QAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;QAC5B,OAAO,MAAM,CAAC;IACf,CAAC;IAED,EAAE;IACF,4BAAO,GAAP;QACC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;YAC9C,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACtB;QACD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,EAAE;IACQ,kCAAa,GAAvB,UAAwB,QAAuB,EAAE,QAAuB;QACvE,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAChD;QAED,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACtD,IAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,YAAY,UAAU,EAAE;gBAChC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC/C;SACD;IACF,CAAC;IAED,sBAAI,6BAAK;aAAT;YAAA,iBASC;YARA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,4BAA4B,CAAC,UAAC,QAAQ,EAAE,QAAQ;oBAC5D,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;aACrB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAED,sBAAI,kCAAU;aAAd;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,6BAA6B,EAAE,CAAC;gBAC7C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;aAC1B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAED,kCAAa,GAAb;QACC,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,0BAAK,GAAL;QACC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,yBAAI,GAAJ;QACC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IAES,+BAAU,GAApB,UAAqB,SAAkB;QACtC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE;YACvC,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,KAAK,EAAE;gBACV,KAAK,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;aAChD;SACD;IACF,CAAC;IAED,8BAAS,GAAT,UAAU,CAAgB;QACzB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,EAAE;YACZ,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAClC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,4BAAO,GAAP,UAAQ,CAAgB;QACvB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,EAAE;YACZ,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAChC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,EAAE;IACF,2BAAM,GAAN,UAAO,IAAY;QAClB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,EAAE;YACZ,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC3B;IACF,CAAC;IAED,6BAAQ,GAAR,UAAS,IAAY,EAAE,QAAkB;QACxC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,EAAE;YACZ,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;SACvC;IACF,CAAC;IAED,sCAAiB,GAAjB,UAAkB,IAAY;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAElB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACtD,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACzB;IACF,CAAC;IAED,yBAAI,GAAJ,UAAK,MAAc,EAAE,IAAyC;QAAzC,qBAAA,EAAA,OAAuB,cAAc,CAAC,GAAG;QAC7D,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,IAAI,GAAG,cAAc,CAAC,SAAS,EAAE;YACpC,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,IAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;YACzC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACtD,SAAS,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;YAC9C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC9C,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAChD,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAChD;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAChC;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;SAC5B;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC5B;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE;YAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;SAC1B;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE;YACjC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;SAChC;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE;YACjC,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;YACnC,IAAI,YAAY,IAAI,IAAI,EAAE;gBACzB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,MAAM,IAAI,IAAI,EAAE;oBACnB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC1B;aACD;SACD;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE;YAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;SACnD;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,SAAS,EAAE;YACpC,IAAI,MAAM,YAAY,UAAU,EAAE;gBACjC,IAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC1C,IAAI,eAAe,EAAE;oBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBACrC;qBAAM;oBACN,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;oBAClC,IAAI,SAAS,EAAE;wBACd,SAAS,CAAC,KAAK,EAAE,CAAC;qBAClB;iBACD;aACD;iBAAM;gBACN,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBAClC,IAAI,SAAS,EAAE;oBACd,SAAS,CAAC,KAAK,EAAE,CAAC;iBAClB;aACD;SACD;QACD,IAAI,IAAI,GAAG,cAAc,CAAC,UAAU,EAAE;YACrC,IAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YAChD,IAAI,gBAAgB,IAAI,IAAI,EAAE;gBAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACvC;iBAAM;gBACN,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;gBACpC,IAAI,UAAU,IAAI,IAAI,EAAE;oBACvB,UAAU,CAAC,KAAK,EAAE,CAAC;iBACnB;aACD;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACF,iBAAC;AAAD,CAAC,AA33BD,CAAyC,KAAK,CAAC,YAAY,GA23B1D","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n\tDisplayObject,\n\tIPoint,\n\tMatrix,\n\tPoint,\n\tRectangle,\n\tRenderer,\n\tTexture,\n\tTransform,\n\tutils\n} from \"pixi.js\";\nimport { DApplications } from \"../../d-applications\";\nimport { DBaseStateSet } from \"../../d-base-state-set\";\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShapeAction } from \"../action/e-shape-action\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeConnectorContainer } from \"../e-shape-connector-container\";\nimport { EShapeConnectorContainerImpl } from \"../e-shape-connector-container-impl\";\nimport { EShapeContainer } from \"../e-shape-container\";\nimport { EShapeCopyPart } from \"../e-shape-copy-part\";\nimport { EShapeCorner } from \"../e-shape-corner\";\nimport { EShapeEditor } from \"../e-shape-editor\";\nimport { EShapeFill } from \"../e-shape-fill\";\nimport { EShapeGradientLike } from \"../e-shape-gradient\";\nimport { EShapeLayout } from \"../e-shape-layout\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShapeRuntime } from \"../e-shape-runtime\";\nimport { EShapeStateSet } from \"../e-shape-state-set\";\nimport { EShapeStateSetImplObservable } from \"../e-shape-state-set-impl-observable\";\nimport { EShapeStroke } from \"../e-shape-stroke\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport { EShapeData } from \"../e-shape-data\";\nimport { EShapeText } from \"../e-shape-text\";\nimport { EShapeTransform, EShapeTransformImpl } from \"../e-shape-transform\";\nimport { EShapeType } from \"../e-shape-type\";\nimport { EShapeUploaded } from \"../e-shape-uploaded\";\nimport { EShapeBaseHitTestData } from \"./e-shape-base-hit-test-data\";\nimport { hitTestBBox } from \"./hit-test-bbox\";\nimport { toGradientSerialized } from \"./to-gradient-serialized\";\nimport { EShapeCapabilityContainer } from \"../e-shape-capability-container\";\nimport { EShapeCapabilityContainerImpl } from \"../e-shape-capability-container-impl\";\nimport { EShapeCapability } from \"../e-shape-capability\";\nimport { EShapeLock } from \"./e-shape-lock\";\nimport { EShapeLockPart } from \"./e-shape-lock-part\";\n\nexport abstract class EShapeBase extends utils.EventEmitter implements EShape {\n\tprotected static WORK_HIT_TEST_DATA?: EShapeBaseHitTestData;\n\tid: string;\n\tuuid: number;\n\treadonly type: EShapeType;\n\tabstract readonly size: IPoint;\n\tabstract readonly fill: EShapeFill;\n\tabstract readonly stroke: EShapeStroke;\n\treadonly transform: EShapeTransform;\n\tabstract radius: number;\n\tabstract corner: EShapeCorner;\n\tprotected _points?: EShapePoints;\n\tprotected _image?: HTMLImageElement;\n\timageSrc?: string;\n\ttexture?: Texture;\n\tabstract gradient?: EShapeGradientLike;\n\tabstract readonly text: EShapeText;\n\t/** @deprecated in favor of {@link data} */\n\tabstract readonly tag: EShapeData;\n\tabstract readonly data: EShapeData;\n\treadonly action: EShapeAction;\n\tcursor?: string;\n\tinteractive: boolean;\n\tshortcut?: string;\n\ttitle?: string;\n\n\tprotected _connector?: EShapeConnectorContainer;\n\n\tprotected _visible: boolean;\n\n\tprotected _lockTransform: EShapeLock;\n\tprotected _lockTransformParent: EShapeLock;\n\tprotected _lockUploaded: EShapeLock;\n\n\tprotected _bounds?: Rectangle;\n\tprotected _boundsTransformId: number;\n\tprotected _boundsInternal?: Rectangle;\n\tprotected _boundsInternalTransformId: number;\n\tprotected _boundsLocal?: Rectangle;\n\tprotected _boundsLocalTransformId: number;\n\n\tprotected _state?: EShapeStateSet;\n\tprotected _capability?: EShapeCapabilityContainer;\n\n\t// Hierarchy\n\tparent: EShapeContainer | EShape | null;\n\tchildren: EShape[];\n\tlayout?: EShapeLayout;\n\n\t// Working space\n\tindex: number; // A work space for sorting.\n\tselected: boolean;\n\treference: number; // Count of references from commands\n\n\t// Working space for the viewer\n\truntime?: EShapeRuntime;\n\n\t// Working space for the editor\n\teditor?: EShapeEditor;\n\n\t// Working space for the renderer\n\tuploaded?: EShapeUploaded;\n\n\tconstructor(type: EShapeType) {\n\t\tsuper();\n\t\tthis.id = \"\";\n\t\tthis.uuid = 0;\n\t\tthis.type = type;\n\t\tthis.transform = this.newTransform();\n\t\tthis.action = new EShapeAction();\n\t\tthis._visible = true;\n\n\t\tthis._lockTransform = new EShapeLock();\n\t\tthis._lockTransformParent = new EShapeLock();\n\t\tthis._lockUploaded = new EShapeLock();\n\n\t\tthis._boundsTransformId = NaN;\n\t\tthis._boundsInternalTransformId = NaN;\n\t\tthis._boundsLocalTransformId = NaN;\n\n\t\tthis.interactive = false;\n\n\t\t//\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\t//\n\t\tthis.selected = false;\n\t\tthis.index = 0;\n\t\tthis.reference = 0;\n\t}\n\n\tprotected newTransform(): EShapeTransform {\n\t\treturn new EShapeTransformImpl(this);\n\t}\n\n\tonSizeChange(): void {\n\t\tthis._boundsTransformId = NaN;\n\t\tthis._boundsInternalTransformId = NaN;\n\t\tthis._boundsLocalTransformId = NaN;\n\n\t\tthis.onTransformChange_();\n\t\tconst points = this._points;\n\t\tif (points != null) {\n\t\t\tpoints.onSizeChange();\n\t\t}\n\t\tthis.updateUploaded();\n\n\t\tconst connector = this._connector;\n\t\tif (connector != null) {\n\t\t\tconnector.fit(true);\n\t\t}\n\n\t\tconst runtime = this.runtime;\n\t\tif (runtime != null) {\n\t\t\truntime.onResize(this);\n\t\t}\n\t}\n\n\tonTransformChange(): void {\n\t\tthis.onTransformChange_();\n\t\tthis.onParentTransformChange();\n\t}\n\n\tonParentTransformChange(): void {\n\t\tif (this._lockTransformParent.isLocked()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.updateUploaded();\n\t\tconst connector = this._connector;\n\t\tif (connector != null) {\n\t\t\tconnector.fit(true);\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onParentTransformChange();\n\t\t}\n\t}\n\n\tprotected onTransformChange_(): void {\n\t\tif (this._lockTransform.isLocked()) {\n\t\t\treturn;\n\t\t}\n\t\tconst parent = this.parent;\n\t\tif (parent != null) {\n\t\t\tparent.onChildTransformChange();\n\t\t}\n\t}\n\n\tlock(part: EShapeLockPart): this {\n\t\tif (part & EShapeLockPart.TRANSFORM) {\n\t\t\tthis._lockTransform.lock();\n\t\t}\n\t\tif (part & EShapeLockPart.TRANSFORM_PARENT) {\n\t\t\tthis._lockTransformParent.lock();\n\t\t}\n\t\tif (part & EShapeLockPart.UPLOADED) {\n\t\t\tthis._lockUploaded.lock();\n\t\t}\n\t\treturn this;\n\t}\n\n\tunlock(part: EShapeLockPart, invoke: boolean): this {\n\t\tif (part & EShapeLockPart.UPLOADED) {\n\t\t\tconst lockUploaded = this._lockUploaded;\n\t\t\tif (lockUploaded.unlock() && invoke) {\n\t\t\t\tthis.updateUploaded(lockUploaded.isHigh());\n\t\t\t}\n\t\t}\n\t\tif (part & EShapeLockPart.TRANSFORM_PARENT) {\n\t\t\tif (this._lockTransformParent.unlock() && invoke) {\n\t\t\t\tthis.onParentTransformChange();\n\t\t\t}\n\t\t}\n\t\tif (part & EShapeLockPart.TRANSFORM) {\n\t\t\tif (this._lockTransform.unlock() && invoke) {\n\t\t\t\tthis.onTransformChange();\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tonChildTransformChange(): void {\n\t\t//\n\t}\n\n\tupdateUploaded(recursively?: boolean): void {\n\t\tif (this._lockUploaded.isLocked()) {\n\t\t\treturn;\n\t\t}\n\t\tconst uploaded = this.uploaded;\n\t\tif (uploaded != null) {\n\t\t\tuploaded.update(this);\n\t\t}\n\t\tif (recursively === true) {\n\t\t\tconst children = this.children;\n\t\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\t\tchildren[i].updateUploaded(true);\n\t\t\t}\n\t\t}\n\t}\n\n\tget image(): HTMLImageElement | undefined {\n\t\treturn this._image;\n\t}\n\n\tset image(image: HTMLImageElement | undefined) {\n\t\tthis._image = image;\n\t}\n\n\tget points(): EShapePoints | undefined {\n\t\treturn this._points;\n\t}\n\n\tget root(): EShape {\n\t\tlet root: EShape = this;\n\t\twhile (root.parent instanceof EShapeBase) {\n\t\t\troot = root.parent;\n\t\t}\n\t\treturn root;\n\t}\n\n\tget connector(): EShapeConnectorContainer {\n\t\tlet result = this._connector;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeConnectorContainerImpl(this);\n\t\t\tthis._connector = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget visible(): boolean {\n\t\tif (this._visible) {\n\t\t\tconst parent = this.parent;\n\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\treturn parent.visible;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tset visible(visible: boolean) {\n\t\tif (this._visible !== visible) {\n\t\t\tthis._visible = visible;\n\t\t\tthis.updateUploaded(true);\n\t\t}\n\t}\n\n\tget worldVisible(): boolean {\n\t\tif (this._visible) {\n\t\t\tconst parent = this.parent;\n\t\t\tif (parent) {\n\t\t\t\treturn parent.worldVisible;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t//\n\tabstract clone(): EShape;\n\n\t//\n\ttoDirty(): void {\n\t\tconst parent = this.parent;\n\t\tif (parent != null) {\n\t\t\tparent.toDirty();\n\t\t}\n\t}\n\n\t// Hierarchy\n\tattach(parent: EShapeContainer | EShape, at?: number): this {\n\t\tthis.detach();\n\t\tthis.parent = parent;\n\t\tconst children = parent.children;\n\t\tif (at != null && 0 <= at && at < children.length) {\n\t\t\tchildren.splice(at, 0, this);\n\t\t} else {\n\t\t\tchildren.push(this);\n\t\t}\n\t\tparent.onChildTransformChange();\n\t\tparent.toDirty();\n\t\tthis.onAttach();\n\t\treturn this;\n\t}\n\n\tonAttach(): void {\n\t\tthis.uploaded = undefined;\n\t\tconst connector = this._connector;\n\t\tif (connector) {\n\t\t\tconnector.attach();\n\t\t\tconnector.fit(true);\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onAttach();\n\t\t}\n\t}\n\n\tdetach(exceptions?: Set<EShape>): this {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tthis.parent = null;\n\t\t\tconst children = parent.children;\n\t\t\tconst index = children.indexOf(this);\n\t\t\tif (0 <= index) {\n\t\t\t\tchildren.splice(index, 1);\n\t\t\t\tparent.onChildTransformChange();\n\t\t\t\tparent.toDirty();\n\t\t\t\tthis.onDetach(exceptions);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tonDetach(exceptions?: Set<EShape>): void {\n\t\tthis.uploaded = undefined;\n\t\tconst connector = this._connector;\n\t\tif (connector) {\n\t\t\tconnector.detach(exceptions);\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onDetach(exceptions);\n\t\t}\n\t}\n\n\t// Transform\n\tupdateTransform(): void {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tif (parent.parent) {\n\t\t\t\tparent.updateTransform();\n\t\t\t}\n\t\t\tthis.transform.updateTransform(parent.transform);\n\t\t} else {\n\t\t\tthis.transform.updateTransform(Transform.IDENTITY);\n\t\t}\n\t}\n\n\t// Serialization\n\tserializeChildren(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem[] {\n\t\tconst children = this.children;\n\t\tconst childrenSerialized = [];\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tconst child = children[i];\n\t\t\tchildrenSerialized.push(child.serialize(manager));\n\t\t}\n\t\treturn childrenSerialized;\n\t}\n\n\tserializeImage(manager: EShapeResourceManagerSerialization): number {\n\t\tconst image = this._image;\n\t\treturn image != null ? manager.addResource(image.src) : -1;\n\t}\n\n\tserializeGradient(manager: EShapeResourceManagerSerialization): number {\n\t\tconst gradient = this.gradient;\n\t\tif (gradient != null) {\n\t\t\tif (gradient.serialized == null) {\n\t\t\t\tgradient.serialized = toGradientSerialized(gradient);\n\t\t\t}\n\t\t\treturn manager.addResource(gradient.serialized);\n\t\t}\n\t\treturn -1;\n\t}\n\n\tserializeState(manager: EShapeResourceManagerSerialization): number {\n\t\tconst state = this.state;\n\t\treturn (this.interactive ? 1 : 0) | (state.isFocusable ? 0 : 2) | (state.isActive ? 4 : 0);\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem {\n\t\tconst transform = this.transform;\n\t\tconst position = transform.position;\n\t\tconst pivot = transform.pivot;\n\t\tconst size = this.size;\n\t\tconst shortcut = this.shortcut;\n\t\tconst shortcutId = shortcut != null ? manager.addResource(shortcut) : -1;\n\t\tconst cursor = this.cursor;\n\t\tconst cursorId = cursor != null ? manager.addResource(cursor) : -1;\n\t\tconst title = this.title;\n\t\tconst titleId = title != null ? manager.addResource(title) : -1;\n\t\tlet capabilitiesAdded: EShapeCapability = EShapeCapability.NONE;\n\t\tlet capabilitiesRemoved: EShapeCapability = EShapeCapability.NONE;\n\t\tlet capabilitiesLocked: EShapeCapability = EShapeCapability.NONE;\n\t\tconst capability = this._capability;\n\t\tif (capability != null) {\n\t\t\tcapabilitiesAdded = capability.added;\n\t\t\tcapabilitiesRemoved = capability.removed;\n\t\t\tcapabilitiesLocked = capability.locked;\n\t\t}\n\t\treturn [\n\t\t\tthis.type,\n\t\t\tmanager.addResource(this.id),\n\t\t\tposition.x,\n\t\t\tposition.y,\n\t\t\tsize.x,\n\t\t\tsize.y,\n\t\t\ttransform.rotation,\n\t\t\ttransform.skew.x,\n\t\t\tthis.fill.serialize(manager),\n\t\t\tthis.stroke.serialize(manager),\n\t\t\tcursorId,\n\t\t\tthis.text.serialize(manager),\n\t\t\tthis.data.serialize(manager),\n\t\t\tthis.radius,\n\t\t\tthis.corner,\n\t\t\t-1,\n\t\t\t-1,\n\t\t\tthis.action.serialize(manager),\n\t\t\tthis.serializeImage(manager),\n\t\t\tthis.serializeGradient(manager),\n\t\t\tthis.serializeChildren(manager),\n\t\t\tpivot.x,\n\t\t\tpivot.y,\n\t\t\tthis.serializeState(manager),\n\t\t\tshortcutId,\n\t\t\ttitleId,\n\t\t\tthis.uuid,\n\t\t\tcapabilitiesAdded,\n\t\t\tcapabilitiesRemoved,\n\t\t\tcapabilitiesLocked\n\t\t];\n\t}\n\n\taddUuid(manager: EShapeResourceManagerSerialization): void {\n\t\tthis.uuid = manager.addUuid(this.uuid);\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].addUuid(manager);\n\t\t}\n\t}\n\n\tupdateUuid(manager: EShapeResourceManagerSerialization): void {\n\t\tthis.uuid = manager.updateUuid(this.uuid);\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].updateUuid(manager);\n\t\t}\n\t}\n\n\t// Hit test\n\tprotected getShapeScale(): number {\n\t\tconst container = this.root.parent as any;\n\t\tif (container != null && container.getShapeScale != null) {\n\t\t\treturn container.getShapeScale();\n\t\t}\n\t\treturn 1.0;\n\t}\n\n\tprotected getStrokeWidthScale(style: EShapeStrokeStyle): number {\n\t\tif (style & EShapeStrokeStyle.NON_EXPANDING_WIDTH) {\n\t\t\tif (style & EShapeStrokeStyle.NON_SHRINKING_WIDTH) {\n\t\t\t\treturn this.getShapeScale();\n\t\t\t} else {\n\t\t\t\treturn Math.min(1.0, this.getShapeScale());\n\t\t\t}\n\t\t} else {\n\t\t\tif (style & EShapeStrokeStyle.NON_SHRINKING_WIDTH) {\n\t\t\t\treturn Math.max(1.0, this.getShapeScale());\n\t\t\t} else {\n\t\t\t\treturn 1.0;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getHitTestSize(result: EShapeBaseHitTestData): EShapeBaseHitTestData {\n\t\tconst size = this.size;\n\t\tresult.width = 0.5 * size.x;\n\t\tresult.height = 0.5 * size.y;\n\t\treturn result;\n\t}\n\n\ttoHitTestData(x: number, y: number): EShapeBaseHitTestData {\n\t\tconst result = this.getHitTestSize(\n\t\t\t(EShapeBase.WORK_HIT_TEST_DATA ??= new EShapeBaseHitTestData())\n\t\t);\n\t\tconst sx = result.width;\n\t\tconst sy = result.height;\n\t\tconst pivot = this.transform.pivot;\n\t\tconst dx = x - pivot.x;\n\t\tconst dy = y - pivot.y;\n\t\tconst stroke = this.stroke;\n\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\tconst strokeScale = this.getStrokeWidthScale(stroke.style);\n\t\tconst strokeAlign = stroke.align;\n\t\tconst s = strokeWidth * strokeScale * strokeAlign;\n\t\treturn result.set(\n\t\t\t0 <= sx ? +dx : -dx,\n\t\t\t0 <= sy ? +dy : -dy,\n\t\t\tMath.abs(sx) + s,\n\t\t\tMath.abs(sy) + s,\n\t\t\tstrokeWidth,\n\t\t\tstrokeScale,\n\t\t\tstrokeAlign\n\t\t);\n\t}\n\n\tcontains(x: number, y: number): EShape | null {\n\t\tconst data = this.toHitTestData(x, y);\n\t\tif (\n\t\t\tthis.containsAbs(\n\t\t\t\tdata.x,\n\t\t\t\tdata.y,\n\t\t\t\tdata.width,\n\t\t\t\tdata.height,\n\t\t\t\tdata.strokeWidth,\n\t\t\t\tdata.strokeScale,\n\t\t\t\tdata.strokeAlign\n\t\t\t)\n\t\t) {\n\t\t\treturn this;\n\t\t}\n\t\treturn this.containsText(x, y) || this.containsChildren(x, y);\n\t}\n\n\tprotected containsText(x: number, y: number): EShape | null {\n\t\tconst text = this.text;\n\t\tconst textAtlas = text.atlas;\n\t\tif (textAtlas != null) {\n\t\t\tconst textWorld = text.world;\n\t\t\tif (textWorld != null) {\n\t\t\t\tconst transform = this.transform.internalTransform;\n\t\t\t\tconst tx = transform.a * x + transform.c * y + transform.tx - textWorld[0];\n\t\t\t\tconst ty = transform.b * x + transform.d * y + transform.ty - textWorld[1];\n\t\t\t\tconst th = textWorld[2] * tx + textWorld[3] * ty;\n\t\t\t\tconst tv = textWorld[4] * tx + textWorld[5] * ty;\n\t\t\t\tconst w = textWorld[6];\n\t\t\t\tconst h = textWorld[7];\n\t\t\t\tif (0 <= th && th <= w && 0 <= tv && tv <= h) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected containsChildren(x: number, y: number): EShape | null {\n\t\tconst children = this.children;\n\t\tfor (let i = children.length - 1; 0 <= i; --i) {\n\t\t\tconst child = children[i];\n\t\t\tchild.updateTransform();\n\t\t\tconst localTransform = child.transform.localTransform;\n\t\t\tconst a = localTransform.a;\n\t\t\tconst b = localTransform.b;\n\t\t\tconst c = localTransform.c;\n\t\t\tconst d = localTransform.d;\n\t\t\tconst tx = localTransform.tx;\n\t\t\tconst ty = localTransform.ty;\n\t\t\tconst id = 1 / (a * d - c * b);\n\t\t\tconst lx = (d * x - c * y + ty * c - tx * d) * id;\n\t\t\tconst ly = (a * y - b * x - ty * a + tx * b) * id;\n\t\t\tconst childResult = child.contains(lx, ly);\n\t\t\tif (childResult != null) {\n\t\t\t\treturn childResult;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tcontainsBBox(x: number, y: number): boolean {\n\t\tconst data = this.toHitTestData(x, y);\n\t\treturn this.containsAbsBBox(data.x, data.y, data.width, data.height);\n\t}\n\n\tcontainsAbs(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tsw: number,\n\t\tss: number,\n\t\tsa: number\n\t): boolean {\n\t\treturn this.containsAbsBBox(x, y, ax, ay);\n\t}\n\n\tcontainsAbsBBox(x: number, y: number, ax: number, ay: number): boolean {\n\t\treturn hitTestBBox(x, y, ax, ay);\n\t}\n\n\tselect(point: Point): boolean {\n\t\treturn false;\n\t}\n\n\t//\n\ttoGlobal(position: IPoint, result: Point, skipUpdate?: boolean): Point {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tresult.copyFrom(position);\n\t\tthis.transform.worldTransform.apply(result, result);\n\t\treturn result;\n\t}\n\n\ttoLocal(position: IPoint, from?: DisplayObject, result?: Point, skipUpdate?: boolean): Point {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tif (result === undefined) {\n\t\t\tresult = new Point();\n\t\t}\n\t\tresult.copyFrom(position);\n\t\tthis.transform.worldTransform.applyInverse(result, result);\n\t\treturn result;\n\t}\n\n\tgetBounds(skipUpdate?: boolean, result?: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst bounds = this._bounds || new Rectangle();\n\t\tthis._bounds = bounds;\n\t\tconst worldId = this.transform.getWorldId();\n\t\tif (worldId !== this._boundsTransformId) {\n\t\t\tthis._boundsTransformId = worldId;\n\t\t\tthis.getBounds_(this.transform.worldTransform, bounds);\n\t\t}\n\t\tresult ??= new Rectangle();\n\t\tresult.copyFrom(bounds);\n\t\treturn result;\n\t}\n\n\tgetBoundsInternal(skipUpdate?: boolean, result?: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst boundsInternal = this._boundsInternal || new Rectangle();\n\t\tthis._boundsInternal = boundsInternal;\n\t\tconst currentLocalId = this.transform.getLocalIdCurrent();\n\t\tif (currentLocalId !== this._boundsInternalTransformId) {\n\t\t\tthis._boundsInternalTransformId = currentLocalId;\n\t\t\tthis.getBounds_(this.transform.internalTransform, boundsInternal);\n\t\t}\n\t\tresult ??= new Rectangle();\n\t\tresult.copyFrom(boundsInternal);\n\t\treturn result;\n\t}\n\n\tgetBoundsLocal(skipUpdate?: boolean, result?: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst boundsLocal = this._boundsLocal || new Rectangle();\n\t\tthis._boundsLocal = boundsLocal;\n\t\tconst currentLocalId = this.transform.getLocalIdCurrent();\n\t\tif (currentLocalId !== this._boundsLocalTransformId) {\n\t\t\tthis._boundsLocalTransformId = currentLocalId;\n\t\t\tthis.getBounds_(this.transform.localTransform, boundsLocal);\n\t\t}\n\t\tresult ??= new Rectangle();\n\t\tresult.copyFrom(boundsLocal);\n\t\treturn result;\n\t}\n\n\tprotected getBoundsSize(): IPoint {\n\t\treturn this.size;\n\t}\n\n\tprotected getBounds_(transform: Matrix, result: Rectangle): Rectangle {\n\t\tconst pivot = this.transform.pivot;\n\t\tconst px = pivot.x;\n\t\tconst py = pivot.y;\n\t\tconst size = this.getBoundsSize();\n\t\tconst sx = 0.5 * size.x;\n\t\tconst sy = 0.5 * size.y;\n\n\t\tconst a = transform.a;\n\t\tconst b = transform.b;\n\t\tconst c = transform.c;\n\t\tconst d = transform.d;\n\n\t\tlet x = -sx + px;\n\t\tlet y = -sy + py;\n\t\tconst x0 = a * x + c * y;\n\t\tconst y0 = b * x + d * y;\n\n\t\tx = +sx + px;\n\t\ty = -sy + py;\n\t\tconst x1 = a * x + c * y;\n\t\tconst y1 = b * x + d * y;\n\n\t\tx = -sx + px;\n\t\ty = +sy + py;\n\t\tconst x2 = a * x + c * y;\n\t\tconst y2 = b * x + d * y;\n\n\t\tx = +sx + px;\n\t\ty = +sy + py;\n\t\tconst x3 = a * x + c * y;\n\t\tconst y3 = b * x + d * y;\n\n\t\tconst xmin = Math.min(x0, x1, x2, x3);\n\t\tconst ymin = Math.min(y0, y1, y2, y3);\n\t\tconst xmax = Math.max(x0, x1, x2, x3);\n\t\tconst ymax = Math.max(y0, y1, y2, y3);\n\t\tresult.x = xmin + transform.tx;\n\t\tresult.y = ymin + transform.ty;\n\t\tresult.width = xmax - xmin;\n\t\tresult.height = ymax - ymin;\n\t\treturn result;\n\t}\n\n\t//\n\tdestroy(): void {\n\t\tconst children = this.children;\n\t\tfor (let i = children.length - 1; 0 <= i; --i) {\n\t\t\tchildren[i].destroy();\n\t\t}\n\t\tchildren.length = 0;\n\t}\n\n\t//\n\tprotected onStateChange(newState: DBaseStateSet, oldState: DBaseStateSet): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime != null) {\n\t\t\truntime.onStateChange(this, newState, oldState);\n\t\t}\n\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tconst child = children[i];\n\t\t\tif (child instanceof EShapeBase) {\n\t\t\t\tchild.state.onParentChange(newState, oldState);\n\t\t\t}\n\t\t}\n\t}\n\n\tget state(): EShapeStateSet {\n\t\tlet result = this._state;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeStateSetImplObservable((newState, oldState): void => {\n\t\t\t\tthis.onStateChange(newState, oldState);\n\t\t\t});\n\t\t\tthis._state = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget capability(): EShapeCapabilityContainer {\n\t\tlet result = this._capability;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeCapabilityContainerImpl();\n\t\t\tthis._capability = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetCapability(): EShapeCapabilityContainer | undefined {\n\t\treturn this._capability;\n\t}\n\n\tfocus(): this {\n\t\tthis.setFocused(true);\n\t\treturn this;\n\t}\n\n\tblur(): this {\n\t\tthis.setFocused(false);\n\t\treturn this;\n\t}\n\n\tprotected setFocused(isFocused: boolean): void {\n\t\tif (this.state.isFocused !== isFocused) {\n\t\t\tconst layer = DApplications.getLayer(this);\n\t\t\tif (layer) {\n\t\t\t\tlayer.getFocusController().set(this, isFocused);\n\t\t\t}\n\t\t}\n\t}\n\n\tonKeyDown(e: KeyboardEvent): boolean {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\treturn runtime.onKeyDown(this, e);\n\t\t}\n\t\treturn false;\n\t}\n\n\tonKeyUp(e: KeyboardEvent): boolean {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\treturn runtime.onKeyUp(this, e);\n\t\t}\n\t\treturn false;\n\t}\n\n\t//\n\tupdate(time: number): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\truntime.update(this, time);\n\t\t}\n\t}\n\n\tonRender(time: number, renderer: Renderer): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\truntime.onRender(this, time, renderer);\n\t\t}\n\t}\n\n\tupdateRecursively(time: number): void {\n\t\tthis.update(time);\n\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].update(time);\n\t\t}\n\t}\n\n\tcopy(source: EShape, part: EShapeCopyPart = EShapeCopyPart.ALL): this {\n\t\tthis.id = source.id;\n\t\tthis.uuid = source.uuid;\n\t\tthis.visible = source.visible;\n\t\tif (part & EShapeCopyPart.TRANSFORM) {\n\t\t\tconst transform = this.transform;\n\t\t\tconst sourceTransform = source.transform;\n\t\t\ttransform.position.copyFrom(sourceTransform.position);\n\t\t\ttransform.rotation = sourceTransform.rotation;\n\t\t\ttransform.skew.copyFrom(sourceTransform.skew);\n\t\t\ttransform.pivot.copyFrom(sourceTransform.pivot);\n\t\t\ttransform.scale.copyFrom(sourceTransform.scale);\n\t\t}\n\t\tif (part & EShapeCopyPart.SIZE) {\n\t\t\tthis.size.copyFrom(source.size);\n\t\t}\n\t\tif (part & EShapeCopyPart.STYLE) {\n\t\t\tthis.fill.copy(source.fill);\n\t\t\tthis.stroke.copy(source.stroke);\n\t\t\tthis.text.copy(source.text);\n\t\t\tthis.radius = source.radius;\n\t\t\tthis.corner = source.corner;\n\t\t}\n\t\tif (part & EShapeCopyPart.DATA) {\n\t\t\tthis.data.copy(source.data);\n\t\t}\n\t\tif (part & EShapeCopyPart.IMAGE) {\n\t\t\tthis.image = source.image;\n\t\t}\n\t\tif (part & EShapeCopyPart.ACTION) {\n\t\t\tthis.action.clearAndAddAll(source.action.values);\n\t\t\tthis.interactive = source.interactive;\n\t\t\tthis.cursor = source.cursor;\n\t\t\tthis.shortcut = source.shortcut;\n\t\t}\n\t\tif (part & EShapeCopyPart.POINTS) {\n\t\t\tconst sourcePoints = source.points;\n\t\t\tif (sourcePoints != null) {\n\t\t\t\tconst points = this.points;\n\t\t\t\tif (points != null) {\n\t\t\t\t\tpoints.copy(sourcePoints);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (part & EShapeCopyPart.STATE) {\n\t\t\tthis.state.lock(false).copy(source.state).unlock();\n\t\t}\n\t\tif (part & EShapeCopyPart.CONNECTOR) {\n\t\t\tif (source instanceof EShapeBase) {\n\t\t\t\tconst sourceConnector = source._connector;\n\t\t\t\tif (sourceConnector) {\n\t\t\t\t\tthis.connector.copy(sourceConnector);\n\t\t\t\t} else {\n\t\t\t\t\tconst connector = this._connector;\n\t\t\t\t\tif (connector) {\n\t\t\t\t\t\tconnector.clear();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst connector = this._connector;\n\t\t\t\tif (connector) {\n\t\t\t\t\tconnector.clear();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (part & EShapeCopyPart.CAPABILITY) {\n\t\t\tconst sourceCapability = source.getCapability();\n\t\t\tif (sourceCapability != null) {\n\t\t\t\tthis.capability.copy(sourceCapability);\n\t\t\t} else {\n\t\t\t\tconst capability = this._capability;\n\t\t\t\tif (capability != null) {\n\t\t\t\t\tcapability.clear();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n}\n"]}