@visactor/vrender-core 1.1.0-alpha.0 → 1.1.0-alpha.10

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 (1018) hide show
  1. package/cjs/allocator/canvas-allocate.js +5 -7
  2. package/cjs/allocator/canvas-allocate.js.map +1 -1
  3. package/cjs/allocator/graphic-allocate.js +17 -17
  4. package/cjs/allocator/graphic-allocate.js.map +1 -1
  5. package/cjs/application.d.ts +19 -18
  6. package/cjs/application.js +1 -31
  7. package/cjs/application.js.map +1 -1
  8. package/cjs/canvas/conical-gradient.js +2 -2
  9. package/cjs/canvas/conical-gradient.js.map +1 -1
  10. package/cjs/canvas/constants.js +2 -1
  11. package/cjs/canvas/contributions/base-canvas.js +2 -2
  12. package/cjs/canvas/contributions/base-canvas.js.map +1 -1
  13. package/cjs/canvas/util.d.ts +2 -3
  14. package/cjs/canvas/util.js +17 -7
  15. package/cjs/canvas/util.js.map +1 -1
  16. package/cjs/color-string/index.js +1 -2
  17. package/cjs/common/contribution-provider.d.ts +27 -0
  18. package/cjs/common/contribution-provider.js +51 -0
  19. package/cjs/common/contribution-provider.js.map +1 -0
  20. package/cjs/common/diff.js +1 -2
  21. package/cjs/common/enums.d.ts +2 -0
  22. package/cjs/common/enums.js +3 -1
  23. package/cjs/common/enums.js.map +1 -1
  24. package/cjs/common/event-listener-manager.d.ts +18 -1
  25. package/cjs/common/event-listener-manager.js +40 -10
  26. package/cjs/common/event-listener-manager.js.map +1 -1
  27. package/cjs/common/event-transformer.js +41 -5
  28. package/cjs/common/event-transformer.js.map +1 -1
  29. package/cjs/common/explicit-binding.d.ts +5 -0
  30. package/cjs/common/explicit-binding.js +16 -0
  31. package/cjs/common/explicit-binding.js.map +1 -0
  32. package/cjs/common/performance-raf.d.ts +1 -0
  33. package/cjs/common/performance-raf.js +7 -2
  34. package/cjs/common/performance-raf.js.map +1 -1
  35. package/cjs/common/seg-context.js +1 -2
  36. package/cjs/common/sort.js +2 -1
  37. package/cjs/core/camera.js +1 -1
  38. package/cjs/core/constants.js +1 -1
  39. package/cjs/core/contributions/env/modules.d.ts +4 -0
  40. package/cjs/core/contributions/env/modules.js +14 -0
  41. package/cjs/core/contributions/env/modules.js.map +1 -0
  42. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +2 -2
  43. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  44. package/cjs/core/contributions/layerHandler/empty-contribution.js +2 -2
  45. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  46. package/cjs/core/contributions/layerHandler/modules.d.ts +4 -0
  47. package/cjs/core/contributions/layerHandler/modules.js +14 -0
  48. package/cjs/core/contributions/layerHandler/modules.js.map +1 -0
  49. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +2 -2
  50. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  51. package/cjs/core/contributions/modules.d.ts +2 -1
  52. package/cjs/core/contributions/modules.js +20 -2
  53. package/cjs/core/contributions/modules.js.map +1 -1
  54. package/cjs/core/contributions/textMeasure/modules.d.ts +4 -0
  55. package/cjs/core/contributions/textMeasure/modules.js +15 -0
  56. package/cjs/core/contributions/textMeasure/modules.js.map +1 -0
  57. package/cjs/core/core-modules.d.ts +4 -0
  58. package/cjs/core/core-modules.js +19 -0
  59. package/cjs/core/core-modules.js.map +1 -0
  60. package/cjs/core/global-module.d.ts +1 -0
  61. package/cjs/core/global-module.js +3 -0
  62. package/cjs/core/global-module.js.map +1 -0
  63. package/cjs/core/global.d.ts +4 -2
  64. package/cjs/core/global.js +8 -5
  65. package/cjs/core/global.js.map +1 -1
  66. package/cjs/core/graphic-utils.d.ts +3 -4
  67. package/cjs/core/graphic-utils.js +4 -5
  68. package/cjs/core/graphic-utils.js.map +1 -1
  69. package/cjs/core/layer-service.d.ts +7 -2
  70. package/cjs/core/layer-service.js +23 -13
  71. package/cjs/core/layer-service.js.map +1 -1
  72. package/cjs/core/layer.d.ts +1 -1
  73. package/cjs/core/layer.js +3 -3
  74. package/cjs/core/layer.js.map +1 -1
  75. package/cjs/core/stage.d.ts +17 -3
  76. package/cjs/core/stage.js +47 -25
  77. package/cjs/core/stage.js.map +1 -1
  78. package/cjs/core/window.d.ts +7 -5
  79. package/cjs/core/window.js +11 -7
  80. package/cjs/core/window.js.map +1 -1
  81. package/cjs/create.d.ts +1 -2
  82. package/cjs/create.js +2 -2
  83. package/cjs/create.js.map +1 -1
  84. package/cjs/entries/app-context.d.ts +30 -0
  85. package/cjs/entries/app-context.js +84 -0
  86. package/cjs/entries/app-context.js.map +1 -0
  87. package/cjs/entries/browser.d.ts +25 -0
  88. package/cjs/entries/browser.js +44 -0
  89. package/cjs/entries/browser.js.map +1 -0
  90. package/cjs/entries/index.d.ts +7 -0
  91. package/cjs/entries/index.js +32 -0
  92. package/cjs/entries/index.js.map +1 -0
  93. package/cjs/entries/miniapp.d.ts +6 -0
  94. package/cjs/entries/miniapp.js +20 -0
  95. package/cjs/entries/miniapp.js.map +1 -0
  96. package/cjs/entries/node.d.ts +6 -0
  97. package/cjs/entries/node.js +20 -0
  98. package/cjs/entries/node.js.map +1 -0
  99. package/cjs/entries/runtime-installer.d.ts +11 -0
  100. package/cjs/entries/runtime-installer.js +111 -0
  101. package/cjs/entries/runtime-installer.js.map +1 -0
  102. package/cjs/entries/types.d.ts +29 -0
  103. package/cjs/entries/types.js.map +1 -0
  104. package/cjs/env-check.js +3 -3
  105. package/cjs/env-check.js.map +1 -1
  106. package/cjs/event/event-manager.js +4 -1
  107. package/cjs/event/event-manager.js.map +1 -1
  108. package/cjs/event/util.d.ts +1 -1
  109. package/cjs/factory/graphic-factory.d.ts +7 -0
  110. package/cjs/factory/graphic-factory.js +23 -0
  111. package/cjs/factory/graphic-factory.js.map +1 -0
  112. package/cjs/factory/index.d.ts +4 -0
  113. package/cjs/factory/index.js +22 -0
  114. package/cjs/factory/index.js.map +1 -0
  115. package/cjs/factory/layer-factory.d.ts +7 -0
  116. package/cjs/factory/layer-factory.js +19 -0
  117. package/cjs/factory/layer-factory.js.map +1 -0
  118. package/cjs/factory/stage-factory.d.ts +8 -0
  119. package/cjs/factory/stage-factory.js +20 -0
  120. package/cjs/factory/stage-factory.js.map +1 -0
  121. package/cjs/factory/types.d.ts +34 -0
  122. package/cjs/factory/types.js +6 -0
  123. package/cjs/factory/types.js.map +1 -0
  124. package/cjs/factory.d.ts +1 -0
  125. package/cjs/factory.js +16 -1
  126. package/cjs/factory.js.map +1 -1
  127. package/cjs/global.d.ts +2 -0
  128. package/cjs/global.js +11 -0
  129. package/cjs/global.js.map +1 -0
  130. package/cjs/graphic/arc.js +3 -3
  131. package/cjs/graphic/arc.js.map +1 -1
  132. package/cjs/graphic/arc3d.js +3 -3
  133. package/cjs/graphic/arc3d.js.map +1 -1
  134. package/cjs/graphic/area.js +3 -3
  135. package/cjs/graphic/area.js.map +1 -1
  136. package/cjs/graphic/bounds.js +3 -3
  137. package/cjs/graphic/bounds.js.map +1 -1
  138. package/cjs/graphic/circle.js +3 -3
  139. package/cjs/graphic/circle.js.map +1 -1
  140. package/cjs/graphic/config.js +7 -1
  141. package/cjs/graphic/config.js.map +1 -1
  142. package/cjs/graphic/glyph.js +9 -3
  143. package/cjs/graphic/glyph.js.map +1 -1
  144. package/cjs/graphic/graphic-creator.d.ts +9 -4
  145. package/cjs/graphic/graphic-creator.js +35 -7
  146. package/cjs/graphic/graphic-creator.js.map +1 -1
  147. package/cjs/graphic/graphic-service/graphic-module.d.ts +4 -0
  148. package/cjs/graphic/graphic-service/graphic-module.js +14 -0
  149. package/cjs/graphic/graphic-service/graphic-module.js.map +1 -0
  150. package/cjs/graphic/graphic-service/graphic-service.d.ts +2 -3
  151. package/cjs/graphic/graphic-service/graphic-service.js +3 -4
  152. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  153. package/cjs/graphic/graphic.d.ts +81 -7
  154. package/cjs/graphic/graphic.js +517 -146
  155. package/cjs/graphic/graphic.js.map +1 -1
  156. package/cjs/graphic/group.d.ts +11 -1
  157. package/cjs/graphic/group.js +49 -13
  158. package/cjs/graphic/group.js.map +1 -1
  159. package/cjs/graphic/image.d.ts +1 -0
  160. package/cjs/graphic/image.js +4 -3
  161. package/cjs/graphic/image.js.map +1 -1
  162. package/cjs/graphic/index.d.ts +3 -0
  163. package/cjs/graphic/index.js +34 -15
  164. package/cjs/graphic/index.js.map +1 -1
  165. package/cjs/graphic/line.js +3 -3
  166. package/cjs/graphic/line.js.map +1 -1
  167. package/cjs/graphic/path.js +3 -3
  168. package/cjs/graphic/path.js.map +1 -1
  169. package/cjs/graphic/polygon.js +3 -3
  170. package/cjs/graphic/polygon.js.map +1 -1
  171. package/cjs/graphic/pyramid3d.js +3 -2
  172. package/cjs/graphic/pyramid3d.js.map +1 -1
  173. package/cjs/graphic/rect.d.ts +2 -0
  174. package/cjs/graphic/rect.js +47 -3
  175. package/cjs/graphic/rect.js.map +1 -1
  176. package/cjs/graphic/richtext/utils.js +3 -3
  177. package/cjs/graphic/richtext/utils.js.map +1 -1
  178. package/cjs/graphic/richtext.js +4 -4
  179. package/cjs/graphic/richtext.js.map +1 -1
  180. package/cjs/graphic/star.js +3 -3
  181. package/cjs/graphic/star.js.map +1 -1
  182. package/cjs/graphic/state/attribute-update-classifier.d.ts +13 -0
  183. package/cjs/graphic/state/attribute-update-classifier.js +67 -0
  184. package/cjs/graphic/state/attribute-update-classifier.js.map +1 -0
  185. package/cjs/graphic/state/shared-state-refresh.d.ts +6 -0
  186. package/cjs/graphic/state/shared-state-refresh.js +55 -0
  187. package/cjs/graphic/state/shared-state-refresh.js.map +1 -0
  188. package/cjs/graphic/state/shared-state-scope.d.ts +25 -0
  189. package/cjs/graphic/state/shared-state-scope.js +98 -0
  190. package/cjs/graphic/state/shared-state-scope.js.map +1 -0
  191. package/cjs/graphic/state/state-batch-scheduler.d.ts +42 -0
  192. package/cjs/graphic/state/state-batch-scheduler.js +285 -0
  193. package/cjs/graphic/state/state-batch-scheduler.js.map +1 -0
  194. package/cjs/graphic/state/state-definition-compiler.d.ts +6 -0
  195. package/cjs/graphic/state/state-definition-compiler.js +91 -0
  196. package/cjs/graphic/state/state-definition-compiler.js.map +1 -0
  197. package/cjs/graphic/state/state-definition.d.ts +44 -0
  198. package/cjs/graphic/state/state-definition.js +6 -0
  199. package/cjs/graphic/state/state-definition.js.map +1 -0
  200. package/cjs/graphic/state/state-engine.d.ts +38 -0
  201. package/cjs/graphic/state/state-engine.js +220 -0
  202. package/cjs/graphic/state/state-engine.js.map +1 -0
  203. package/cjs/graphic/state/state-model.d.ts +43 -0
  204. package/cjs/graphic/state/state-model.js +143 -0
  205. package/cjs/graphic/state/state-model.js.map +1 -0
  206. package/cjs/graphic/state/state-perf-monitor.d.ts +119 -0
  207. package/cjs/graphic/state/state-perf-monitor.js +217 -0
  208. package/cjs/graphic/state/state-perf-monitor.js.map +1 -0
  209. package/cjs/graphic/state/state-style-resolver.d.ts +22 -0
  210. package/cjs/graphic/state/state-style-resolver.js +73 -0
  211. package/cjs/graphic/state/state-style-resolver.js.map +1 -0
  212. package/cjs/graphic/state/state-transition-orchestrator.d.ts +46 -0
  213. package/cjs/graphic/state/state-transition-orchestrator.js +86 -0
  214. package/cjs/graphic/state/state-transition-orchestrator.js.map +1 -0
  215. package/cjs/graphic/symbol.js +3 -3
  216. package/cjs/graphic/symbol.js.map +1 -1
  217. package/cjs/graphic/text.d.ts +3 -2
  218. package/cjs/graphic/text.js +29 -20
  219. package/cjs/graphic/text.js.map +1 -1
  220. package/cjs/graphic/theme.d.ts +5 -0
  221. package/cjs/graphic/theme.js +7 -0
  222. package/cjs/graphic/theme.js.map +1 -1
  223. package/cjs/graphic/tools.js +2 -2
  224. package/cjs/graphic/tools.js.map +1 -1
  225. package/cjs/graphic/wrap-text.d.ts +1 -1
  226. package/cjs/graphic/wrap-text.js +18 -15
  227. package/cjs/graphic/wrap-text.js.map +1 -1
  228. package/cjs/index.d.ts +26 -4
  229. package/cjs/index.js +83 -45
  230. package/cjs/index.js.map +1 -1
  231. package/cjs/interface/canvas.d.ts +1 -1
  232. package/cjs/interface/canvas.js.map +1 -1
  233. package/cjs/interface/global.d.ts +2 -0
  234. package/cjs/interface/global.js.map +1 -1
  235. package/cjs/interface/graphic/group.d.ts +6 -0
  236. package/cjs/interface/graphic/group.js.map +1 -1
  237. package/cjs/interface/graphic/image.d.ts +7 -1
  238. package/cjs/interface/graphic/image.js.map +1 -1
  239. package/cjs/interface/graphic/theme.d.ts +3 -0
  240. package/cjs/interface/graphic/theme.js.map +1 -1
  241. package/cjs/interface/graphic.d.ts +34 -5
  242. package/cjs/interface/graphic.js.map +1 -1
  243. package/cjs/interface/layer.d.ts +3 -2
  244. package/cjs/interface/layer.js.map +1 -1
  245. package/cjs/interface/plugin.d.ts +2 -0
  246. package/cjs/interface/plugin.js.map +1 -1
  247. package/cjs/interface/render.d.ts +1 -1
  248. package/cjs/interface/render.js.map +1 -1
  249. package/cjs/interface/stage.d.ts +9 -0
  250. package/cjs/interface/stage.js.map +1 -1
  251. package/cjs/interface/theme-service.js.map +1 -1
  252. package/cjs/legacy/binding-context.d.ts +24 -0
  253. package/cjs/legacy/binding-context.js +98 -0
  254. package/cjs/legacy/binding-context.js.map +1 -0
  255. package/cjs/legacy/bootstrap.d.ts +10 -0
  256. package/cjs/legacy/bootstrap.js +72 -0
  257. package/cjs/legacy/bootstrap.js.map +1 -0
  258. package/cjs/legacy/module-types.d.ts +2 -0
  259. package/cjs/legacy/module-types.js +6 -0
  260. package/cjs/legacy/module-types.js.map +1 -0
  261. package/cjs/modules.d.ts +5 -6
  262. package/cjs/modules.js +54 -9
  263. package/cjs/modules.js.map +1 -1
  264. package/cjs/picker/global-picker-service.js +2 -2
  265. package/cjs/picker/global-picker-service.js.map +1 -1
  266. package/cjs/picker/pick-modules.d.ts +5 -0
  267. package/cjs/picker/pick-modules.js +24 -0
  268. package/cjs/picker/pick-modules.js.map +1 -0
  269. package/cjs/picker/picker-service.d.ts +13 -4
  270. package/cjs/picker/picker-service.js +15 -8
  271. package/cjs/picker/picker-service.js.map +1 -1
  272. package/cjs/plugins/base-plugin.d.ts +8 -0
  273. package/cjs/plugins/base-plugin.js +15 -0
  274. package/cjs/plugins/base-plugin.js.map +1 -0
  275. package/cjs/plugins/browser-env-plugin.d.ts +8 -0
  276. package/cjs/plugins/browser-env-plugin.js +24 -0
  277. package/cjs/plugins/browser-env-plugin.js.map +1 -0
  278. package/cjs/plugins/builtin-plugin/auto-refresh-plugin.js +6 -5
  279. package/cjs/plugins/builtin-plugin/auto-refresh-plugin.js.map +1 -1
  280. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  281. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.d.ts +4 -1
  282. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +25 -4
  283. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  284. package/cjs/plugins/builtin-plugin/edit-module.js +4 -3
  285. package/cjs/plugins/builtin-plugin/edit-module.js.map +1 -1
  286. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  287. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +8 -8
  288. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  289. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js +2 -2
  290. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  291. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js +3 -3
  292. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  293. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js +13 -9
  294. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  295. package/cjs/plugins/index.d.ts +5 -0
  296. package/cjs/plugins/index.js +23 -0
  297. package/cjs/plugins/index.js.map +1 -0
  298. package/cjs/plugins/picker-plugin.d.ts +7 -0
  299. package/cjs/plugins/picker-plugin.js +19 -0
  300. package/cjs/plugins/picker-plugin.js.map +1 -0
  301. package/cjs/plugins/plugin-modules.d.ts +4 -0
  302. package/cjs/plugins/plugin-modules.js +14 -0
  303. package/cjs/plugins/plugin-modules.js.map +1 -0
  304. package/cjs/plugins/plugin-service.d.ts +16 -2
  305. package/cjs/plugins/plugin-service.js +23 -11
  306. package/cjs/plugins/plugin-service.js.map +1 -1
  307. package/cjs/plugins/renderer-plugin.d.ts +7 -0
  308. package/cjs/plugins/renderer-plugin.js +19 -0
  309. package/cjs/plugins/renderer-plugin.js.map +1 -0
  310. package/cjs/plugins/types.d.ts +28 -0
  311. package/cjs/plugins/types.js +6 -0
  312. package/cjs/plugins/types.js.map +1 -0
  313. package/cjs/register/register-arc.js +1 -1
  314. package/cjs/register/register-arc.js.map +1 -1
  315. package/cjs/register/register-arc3d.js +1 -1
  316. package/cjs/register/register-arc3d.js.map +1 -1
  317. package/cjs/register/register-area.js +1 -1
  318. package/cjs/register/register-area.js.map +1 -1
  319. package/cjs/register/register-circle.js +1 -1
  320. package/cjs/register/register-circle.js.map +1 -1
  321. package/cjs/register/register-glyph.js +1 -1
  322. package/cjs/register/register-glyph.js.map +1 -1
  323. package/cjs/register/register-group.js +1 -1
  324. package/cjs/register/register-group.js.map +1 -1
  325. package/cjs/register/register-image.js +1 -1
  326. package/cjs/register/register-image.js.map +1 -1
  327. package/cjs/register/register-line.js +1 -1
  328. package/cjs/register/register-line.js.map +1 -1
  329. package/cjs/register/register-path.js +1 -1
  330. package/cjs/register/register-path.js.map +1 -1
  331. package/cjs/register/register-polygon.js +1 -1
  332. package/cjs/register/register-polygon.js.map +1 -1
  333. package/cjs/register/register-pyramid3d.js +1 -1
  334. package/cjs/register/register-pyramid3d.js.map +1 -1
  335. package/cjs/register/register-rect.js +1 -1
  336. package/cjs/register/register-rect.js.map +1 -1
  337. package/cjs/register/register-rect3d.js +1 -1
  338. package/cjs/register/register-rect3d.js.map +1 -1
  339. package/cjs/register/register-richtext.js +1 -1
  340. package/cjs/register/register-richtext.js.map +1 -1
  341. package/cjs/register/register-shadowRoot.js +1 -1
  342. package/cjs/register/register-shadowRoot.js.map +1 -1
  343. package/cjs/register/register-star.js +1 -1
  344. package/cjs/register/register-star.js.map +1 -1
  345. package/cjs/register/register-symbol.js +1 -1
  346. package/cjs/register/register-symbol.js.map +1 -1
  347. package/cjs/register/register-text.js +1 -1
  348. package/cjs/register/register-text.js.map +1 -1
  349. package/cjs/register/register-wraptext.js +1 -1
  350. package/cjs/register/register-wraptext.js.map +1 -1
  351. package/cjs/registry/contribution-registry.d.ts +9 -0
  352. package/cjs/registry/contribution-registry.js +33 -0
  353. package/cjs/registry/contribution-registry.js.map +1 -0
  354. package/cjs/registry/index.d.ts +5 -0
  355. package/cjs/registry/index.js +23 -0
  356. package/cjs/registry/index.js.map +1 -0
  357. package/cjs/registry/picker-registry.d.ts +10 -0
  358. package/cjs/registry/picker-registry.js +29 -0
  359. package/cjs/registry/picker-registry.js.map +1 -0
  360. package/cjs/registry/plugin-registry.d.ts +10 -0
  361. package/cjs/registry/plugin-registry.js +29 -0
  362. package/cjs/registry/plugin-registry.js.map +1 -0
  363. package/cjs/registry/renderer-registry.d.ts +11 -0
  364. package/cjs/registry/renderer-registry.js +37 -0
  365. package/cjs/registry/renderer-registry.js.map +1 -0
  366. package/cjs/registry/types.d.ts +34 -0
  367. package/cjs/registry/types.js +6 -0
  368. package/cjs/registry/types.js.map +1 -0
  369. package/cjs/render/contributions/modules.d.ts +2 -0
  370. package/cjs/render/contributions/modules.js +22 -0
  371. package/cjs/render/contributions/modules.js.map +1 -0
  372. package/cjs/render/contributions/render/arc-module.d.ts +4 -0
  373. package/cjs/render/contributions/render/arc-module.js +19 -0
  374. package/cjs/render/contributions/render/arc-module.js.map +1 -0
  375. package/cjs/render/contributions/render/arc-render.d.ts +2 -2
  376. package/cjs/render/contributions/render/arc-render.js +4 -5
  377. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  378. package/cjs/render/contributions/render/arc3d-module.d.ts +4 -0
  379. package/cjs/render/contributions/render/arc3d-module.js +17 -0
  380. package/cjs/render/contributions/render/arc3d-module.js.map +1 -0
  381. package/cjs/render/contributions/render/area-module.d.ts +4 -0
  382. package/cjs/render/contributions/render/area-module.js +20 -0
  383. package/cjs/render/contributions/render/area-module.js.map +1 -0
  384. package/cjs/render/contributions/render/area-render.d.ts +2 -2
  385. package/cjs/render/contributions/render/area-render.js +4 -5
  386. package/cjs/render/contributions/render/area-render.js.map +1 -1
  387. package/cjs/render/contributions/render/base-render.js +1 -1
  388. package/cjs/render/contributions/render/base-render.js.map +1 -1
  389. package/cjs/render/contributions/render/circle-module.d.ts +4 -0
  390. package/cjs/render/contributions/render/circle-module.js +19 -0
  391. package/cjs/render/contributions/render/circle-module.js.map +1 -0
  392. package/cjs/render/contributions/render/circle-render.d.ts +2 -2
  393. package/cjs/render/contributions/render/circle-render.js +4 -5
  394. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  395. package/cjs/render/contributions/render/contributions/base-contribution-render.d.ts +29 -11
  396. package/cjs/render/contributions/render/contributions/base-contribution-render.js +150 -39
  397. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  398. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.d.ts +4 -2
  399. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js +84 -31
  400. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  401. package/cjs/render/contributions/render/contributions/group-contribution-render.js +8 -6
  402. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  403. package/cjs/render/contributions/render/contributions/image-contribution-render.d.ts +2 -1
  404. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  405. package/cjs/render/contributions/render/contributions/text-contribution-render.js +20 -16
  406. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  407. package/cjs/render/contributions/render/draw-contribution.d.ts +13 -4
  408. package/cjs/render/contributions/render/draw-contribution.js +37 -13
  409. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  410. package/cjs/render/contributions/render/draw-interceptor.js +2 -3
  411. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  412. package/cjs/render/contributions/render/glyph-module.d.ts +4 -0
  413. package/cjs/render/contributions/render/glyph-module.js +17 -0
  414. package/cjs/render/contributions/render/glyph-module.js.map +1 -0
  415. package/cjs/render/contributions/render/group-render.d.ts +2 -2
  416. package/cjs/render/contributions/render/group-render.js +3 -5
  417. package/cjs/render/contributions/render/group-render.js.map +1 -1
  418. package/cjs/render/contributions/render/image-module.d.ts +4 -0
  419. package/cjs/render/contributions/render/image-module.js +18 -0
  420. package/cjs/render/contributions/render/image-module.js.map +1 -0
  421. package/cjs/render/contributions/render/image-render.d.ts +16 -3
  422. package/cjs/render/contributions/render/image-render.js +101 -24
  423. package/cjs/render/contributions/render/image-render.js.map +1 -1
  424. package/cjs/render/contributions/render/incremental-draw-contribution.d.ts +5 -3
  425. package/cjs/render/contributions/render/incremental-draw-contribution.js +5 -7
  426. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  427. package/cjs/render/contributions/render/index.d.ts +4 -12
  428. package/cjs/render/contributions/render/index.js +7 -11
  429. package/cjs/render/contributions/render/index.js.map +1 -1
  430. package/cjs/render/contributions/render/line-module.d.ts +4 -0
  431. package/cjs/render/contributions/render/line-module.js +19 -0
  432. package/cjs/render/contributions/render/line-module.js.map +1 -0
  433. package/cjs/render/contributions/render/module.d.ts +4 -0
  434. package/cjs/render/contributions/render/module.js +27 -0
  435. package/cjs/render/contributions/render/module.js.map +1 -0
  436. package/cjs/render/contributions/render/path-module.d.ts +4 -0
  437. package/cjs/render/contributions/render/path-module.js +19 -0
  438. package/cjs/render/contributions/render/path-module.js.map +1 -0
  439. package/cjs/render/contributions/render/path-render.d.ts +2 -2
  440. package/cjs/render/contributions/render/path-render.js +4 -5
  441. package/cjs/render/contributions/render/path-render.js.map +1 -1
  442. package/cjs/render/contributions/render/polygon-module.d.ts +4 -0
  443. package/cjs/render/contributions/render/polygon-module.js +18 -0
  444. package/cjs/render/contributions/render/polygon-module.js.map +1 -0
  445. package/cjs/render/contributions/render/polygon-render.d.ts +2 -2
  446. package/cjs/render/contributions/render/polygon-render.js +4 -5
  447. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  448. package/cjs/render/contributions/render/pyramid3d-module.d.ts +4 -0
  449. package/cjs/render/contributions/render/pyramid3d-module.js +17 -0
  450. package/cjs/render/contributions/render/pyramid3d-module.js.map +1 -0
  451. package/cjs/render/contributions/render/rect-module.d.ts +4 -0
  452. package/cjs/render/contributions/render/rect-module.js +23 -0
  453. package/cjs/render/contributions/render/rect-module.js.map +1 -0
  454. package/cjs/render/contributions/render/rect-render.d.ts +2 -2
  455. package/cjs/render/contributions/render/rect-render.js +4 -5
  456. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  457. package/cjs/render/contributions/render/rect3d-module.d.ts +4 -0
  458. package/cjs/render/contributions/render/rect3d-module.js +17 -0
  459. package/cjs/render/contributions/render/rect3d-module.js.map +1 -0
  460. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  461. package/cjs/render/contributions/render/render-slector.js.map +1 -1
  462. package/cjs/render/contributions/render/richtext-module.d.ts +4 -0
  463. package/cjs/render/contributions/render/richtext-module.js +17 -0
  464. package/cjs/render/contributions/render/richtext-module.js.map +1 -0
  465. package/cjs/render/contributions/render/star-module.d.ts +4 -0
  466. package/cjs/render/contributions/render/star-module.js +18 -0
  467. package/cjs/render/contributions/render/star-module.js.map +1 -0
  468. package/cjs/render/contributions/render/star-render.d.ts +2 -2
  469. package/cjs/render/contributions/render/star-render.js +4 -5
  470. package/cjs/render/contributions/render/star-render.js.map +1 -1
  471. package/cjs/render/contributions/render/symbol-module.d.ts +4 -0
  472. package/cjs/render/contributions/render/symbol-module.js +19 -0
  473. package/cjs/render/contributions/render/symbol-module.js.map +1 -0
  474. package/cjs/render/contributions/render/symbol-render.d.ts +2 -2
  475. package/cjs/render/contributions/render/symbol-render.js +4 -5
  476. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  477. package/cjs/render/contributions/render/symbol.d.ts +0 -2
  478. package/cjs/render/contributions/render/symbol.js +1 -3
  479. package/cjs/render/contributions/render/symbol.js.map +1 -1
  480. package/cjs/render/contributions/render/text-module.d.ts +4 -0
  481. package/cjs/render/contributions/render/text-module.js +18 -0
  482. package/cjs/render/contributions/render/text-module.js.map +1 -0
  483. package/cjs/render/contributions/render/text-render.d.ts +2 -2
  484. package/cjs/render/contributions/render/text-render.js +4 -5
  485. package/cjs/render/contributions/render/text-render.js.map +1 -1
  486. package/cjs/render/render-modules.d.ts +4 -0
  487. package/cjs/render/render-modules.js +14 -0
  488. package/cjs/render/render-modules.js.map +1 -0
  489. package/cjs/render/render-service.d.ts +1 -1
  490. package/cjs/render/render-service.js +3 -1
  491. package/cjs/render/render-service.js.map +1 -1
  492. package/cjs/resource-loader/loader.js +6 -6
  493. package/cjs/resource-loader/loader.js.map +1 -1
  494. package/dist/index.es.js +23943 -20059
  495. package/es/allocator/canvas-allocate.js +6 -8
  496. package/es/allocator/canvas-allocate.js.map +1 -1
  497. package/es/allocator/graphic-allocate.js +17 -17
  498. package/es/allocator/graphic-allocate.js.map +1 -1
  499. package/es/application.d.ts +19 -18
  500. package/es/application.js +1 -39
  501. package/es/application.js.map +1 -1
  502. package/es/canvas/conical-gradient.js +2 -2
  503. package/es/canvas/conical-gradient.js.map +1 -1
  504. package/es/canvas/constants.js +2 -1
  505. package/es/canvas/contributions/base-canvas.js +2 -2
  506. package/es/canvas/contributions/base-canvas.js.map +1 -1
  507. package/es/canvas/util.d.ts +2 -3
  508. package/es/canvas/util.js +16 -8
  509. package/es/canvas/util.js.map +1 -1
  510. package/es/color-string/index.js +1 -2
  511. package/es/common/contribution-provider.d.ts +27 -0
  512. package/es/common/contribution-provider.js +43 -0
  513. package/es/common/contribution-provider.js.map +1 -0
  514. package/es/common/diff.js +1 -2
  515. package/es/common/enums.d.ts +2 -0
  516. package/es/common/enums.js +3 -1
  517. package/es/common/enums.js.map +1 -1
  518. package/es/common/event-listener-manager.d.ts +18 -1
  519. package/es/common/event-listener-manager.js +40 -10
  520. package/es/common/event-listener-manager.js.map +1 -1
  521. package/es/common/event-transformer.js +41 -5
  522. package/es/common/event-transformer.js.map +1 -1
  523. package/es/common/explicit-binding.d.ts +5 -0
  524. package/es/common/explicit-binding.js +10 -0
  525. package/es/common/explicit-binding.js.map +1 -0
  526. package/es/common/performance-raf.d.ts +1 -0
  527. package/es/common/performance-raf.js +7 -2
  528. package/es/common/performance-raf.js.map +1 -1
  529. package/es/common/seg-context.js +1 -2
  530. package/es/common/sort.js +2 -1
  531. package/es/core/camera.js +1 -1
  532. package/es/core/constants.js +1 -1
  533. package/es/core/contributions/env/modules.d.ts +4 -0
  534. package/es/core/contributions/env/modules.js +10 -0
  535. package/es/core/contributions/env/modules.js.map +1 -0
  536. package/es/core/contributions/layerHandler/canvas2d-contribution.js +2 -2
  537. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  538. package/es/core/contributions/layerHandler/empty-contribution.js +2 -2
  539. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  540. package/es/core/contributions/layerHandler/modules.d.ts +4 -0
  541. package/es/core/contributions/layerHandler/modules.js +10 -0
  542. package/es/core/contributions/layerHandler/modules.js.map +1 -0
  543. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +2 -2
  544. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  545. package/es/core/contributions/modules.d.ts +2 -1
  546. package/es/core/contributions/modules.js +15 -1
  547. package/es/core/contributions/modules.js.map +1 -1
  548. package/es/core/contributions/textMeasure/modules.d.ts +4 -0
  549. package/es/core/contributions/textMeasure/modules.js +11 -0
  550. package/es/core/contributions/textMeasure/modules.js.map +1 -0
  551. package/es/core/core-modules.d.ts +4 -0
  552. package/es/core/core-modules.js +24 -0
  553. package/es/core/core-modules.js.map +1 -0
  554. package/es/core/global-module.d.ts +1 -0
  555. package/es/core/global-module.js +3 -0
  556. package/es/core/global-module.js.map +1 -0
  557. package/es/core/global.d.ts +4 -2
  558. package/es/core/global.js +7 -8
  559. package/es/core/global.js.map +1 -1
  560. package/es/core/graphic-utils.d.ts +3 -4
  561. package/es/core/graphic-utils.js +6 -11
  562. package/es/core/graphic-utils.js.map +1 -1
  563. package/es/core/layer-service.d.ts +7 -2
  564. package/es/core/layer-service.js +23 -17
  565. package/es/core/layer-service.js.map +1 -1
  566. package/es/core/layer.d.ts +1 -1
  567. package/es/core/layer.js +3 -3
  568. package/es/core/layer.js.map +1 -1
  569. package/es/core/stage.d.ts +17 -3
  570. package/es/core/stage.js +58 -30
  571. package/es/core/stage.js.map +1 -1
  572. package/es/core/window.d.ts +7 -5
  573. package/es/core/window.js +11 -9
  574. package/es/core/window.js.map +1 -1
  575. package/es/create.d.ts +1 -2
  576. package/es/create.js +4 -2
  577. package/es/create.js.map +1 -1
  578. package/es/entries/app-context.d.ts +30 -0
  579. package/es/entries/app-context.js +86 -0
  580. package/es/entries/app-context.js.map +1 -0
  581. package/es/entries/browser.d.ts +25 -0
  582. package/es/entries/browser.js +36 -0
  583. package/es/entries/browser.js.map +1 -0
  584. package/es/entries/index.d.ts +7 -0
  585. package/es/entries/index.js +14 -0
  586. package/es/entries/index.js.map +1 -0
  587. package/es/entries/miniapp.d.ts +6 -0
  588. package/es/entries/miniapp.js +12 -0
  589. package/es/entries/miniapp.js.map +1 -0
  590. package/es/entries/node.d.ts +6 -0
  591. package/es/entries/node.js +12 -0
  592. package/es/entries/node.js.map +1 -0
  593. package/es/entries/runtime-installer.d.ts +11 -0
  594. package/es/entries/runtime-installer.js +130 -0
  595. package/es/entries/runtime-installer.js.map +1 -0
  596. package/es/entries/types.d.ts +29 -0
  597. package/es/entries/types.js.map +1 -0
  598. package/es/env-check.js +3 -3
  599. package/es/env-check.js.map +1 -1
  600. package/es/event/event-manager.js +4 -1
  601. package/es/event/event-manager.js.map +1 -1
  602. package/es/event/util.d.ts +1 -1
  603. package/es/factory/graphic-factory.d.ts +7 -0
  604. package/es/factory/graphic-factory.js +15 -0
  605. package/es/factory/graphic-factory.js.map +1 -0
  606. package/es/factory/index.d.ts +4 -0
  607. package/es/factory/index.js +8 -0
  608. package/es/factory/index.js.map +1 -0
  609. package/es/factory/layer-factory.d.ts +7 -0
  610. package/es/factory/layer-factory.js +11 -0
  611. package/es/factory/layer-factory.js.map +1 -0
  612. package/es/factory/stage-factory.d.ts +8 -0
  613. package/es/factory/stage-factory.js +12 -0
  614. package/es/factory/stage-factory.js.map +1 -0
  615. package/es/factory/types.d.ts +34 -0
  616. package/es/factory/types.js +2 -0
  617. package/es/factory/types.js.map +1 -0
  618. package/es/factory.d.ts +1 -0
  619. package/es/factory.js +2 -0
  620. package/es/factory.js.map +1 -1
  621. package/es/global.d.ts +2 -0
  622. package/es/global.js +10 -0
  623. package/es/global.js.map +1 -0
  624. package/es/graphic/arc.js +3 -3
  625. package/es/graphic/arc.js.map +1 -1
  626. package/es/graphic/arc3d.js +4 -3
  627. package/es/graphic/arc3d.js.map +1 -1
  628. package/es/graphic/area.js +3 -3
  629. package/es/graphic/area.js.map +1 -1
  630. package/es/graphic/bounds.js +3 -3
  631. package/es/graphic/bounds.js.map +1 -1
  632. package/es/graphic/circle.js +3 -3
  633. package/es/graphic/circle.js.map +1 -1
  634. package/es/graphic/config.js +7 -1
  635. package/es/graphic/config.js.map +1 -1
  636. package/es/graphic/glyph.js +9 -3
  637. package/es/graphic/glyph.js.map +1 -1
  638. package/es/graphic/graphic-creator.d.ts +9 -4
  639. package/es/graphic/graphic-creator.js +32 -5
  640. package/es/graphic/graphic-creator.js.map +1 -1
  641. package/es/graphic/graphic-service/graphic-module.d.ts +4 -0
  642. package/es/graphic/graphic-service/graphic-module.js +12 -0
  643. package/es/graphic/graphic-service/graphic-module.js.map +1 -0
  644. package/es/graphic/graphic-service/graphic-service.d.ts +2 -3
  645. package/es/graphic/graphic-service/graphic-service.js +3 -5
  646. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  647. package/es/graphic/graphic.d.ts +81 -7
  648. package/es/graphic/graphic.js +516 -140
  649. package/es/graphic/graphic.js.map +1 -1
  650. package/es/graphic/group.d.ts +11 -1
  651. package/es/graphic/group.js +49 -13
  652. package/es/graphic/group.js.map +1 -1
  653. package/es/graphic/image.d.ts +1 -0
  654. package/es/graphic/image.js +5 -4
  655. package/es/graphic/image.js.map +1 -1
  656. package/es/graphic/index.d.ts +3 -0
  657. package/es/graphic/index.js +4 -0
  658. package/es/graphic/index.js.map +1 -1
  659. package/es/graphic/line.js +3 -3
  660. package/es/graphic/line.js.map +1 -1
  661. package/es/graphic/path.js +3 -3
  662. package/es/graphic/path.js.map +1 -1
  663. package/es/graphic/polygon.js +3 -3
  664. package/es/graphic/polygon.js.map +1 -1
  665. package/es/graphic/pyramid3d.js +2 -2
  666. package/es/graphic/pyramid3d.js.map +1 -1
  667. package/es/graphic/rect.d.ts +2 -0
  668. package/es/graphic/rect.js +47 -3
  669. package/es/graphic/rect.js.map +1 -1
  670. package/es/graphic/richtext/utils.js +3 -3
  671. package/es/graphic/richtext/utils.js.map +1 -1
  672. package/es/graphic/richtext.js +4 -4
  673. package/es/graphic/richtext.js.map +1 -1
  674. package/es/graphic/star.js +3 -3
  675. package/es/graphic/star.js.map +1 -1
  676. package/es/graphic/state/attribute-update-classifier.d.ts +13 -0
  677. package/es/graphic/state/attribute-update-classifier.js +61 -0
  678. package/es/graphic/state/attribute-update-classifier.js.map +1 -0
  679. package/es/graphic/state/shared-state-refresh.d.ts +6 -0
  680. package/es/graphic/state/shared-state-refresh.js +46 -0
  681. package/es/graphic/state/shared-state-refresh.js.map +1 -0
  682. package/es/graphic/state/shared-state-scope.d.ts +25 -0
  683. package/es/graphic/state/shared-state-scope.js +90 -0
  684. package/es/graphic/state/shared-state-scope.js.map +1 -0
  685. package/es/graphic/state/state-batch-scheduler.d.ts +42 -0
  686. package/es/graphic/state/state-batch-scheduler.js +278 -0
  687. package/es/graphic/state/state-batch-scheduler.js.map +1 -0
  688. package/es/graphic/state/state-definition-compiler.d.ts +6 -0
  689. package/es/graphic/state/state-definition-compiler.js +83 -0
  690. package/es/graphic/state/state-definition-compiler.js.map +1 -0
  691. package/es/graphic/state/state-definition.d.ts +44 -0
  692. package/es/graphic/state/state-definition.js +2 -0
  693. package/es/graphic/state/state-definition.js.map +1 -0
  694. package/es/graphic/state/state-engine.d.ts +38 -0
  695. package/es/graphic/state/state-engine.js +212 -0
  696. package/es/graphic/state/state-engine.js.map +1 -0
  697. package/es/graphic/state/state-model.d.ts +43 -0
  698. package/es/graphic/state/state-model.js +135 -0
  699. package/es/graphic/state/state-model.js.map +1 -0
  700. package/es/graphic/state/state-perf-monitor.d.ts +119 -0
  701. package/es/graphic/state/state-perf-monitor.js +207 -0
  702. package/es/graphic/state/state-perf-monitor.js.map +1 -0
  703. package/es/graphic/state/state-style-resolver.d.ts +22 -0
  704. package/es/graphic/state/state-style-resolver.js +65 -0
  705. package/es/graphic/state/state-style-resolver.js.map +1 -0
  706. package/es/graphic/state/state-transition-orchestrator.d.ts +46 -0
  707. package/es/graphic/state/state-transition-orchestrator.js +80 -0
  708. package/es/graphic/state/state-transition-orchestrator.js.map +1 -0
  709. package/es/graphic/symbol.js +3 -3
  710. package/es/graphic/symbol.js.map +1 -1
  711. package/es/graphic/text.d.ts +3 -2
  712. package/es/graphic/text.js +28 -19
  713. package/es/graphic/text.js.map +1 -1
  714. package/es/graphic/theme.d.ts +5 -0
  715. package/es/graphic/theme.js +7 -0
  716. package/es/graphic/theme.js.map +1 -1
  717. package/es/graphic/tools.js +2 -2
  718. package/es/graphic/tools.js.map +1 -1
  719. package/es/graphic/wrap-text.d.ts +1 -1
  720. package/es/graphic/wrap-text.js +20 -15
  721. package/es/graphic/wrap-text.js.map +1 -1
  722. package/es/index.d.ts +26 -4
  723. package/es/index.js +49 -5
  724. package/es/index.js.map +1 -1
  725. package/es/interface/canvas.d.ts +1 -1
  726. package/es/interface/canvas.js.map +1 -1
  727. package/es/interface/global.d.ts +2 -0
  728. package/es/interface/global.js.map +1 -1
  729. package/es/interface/graphic/group.d.ts +6 -0
  730. package/es/interface/graphic/group.js.map +1 -1
  731. package/es/interface/graphic/image.d.ts +7 -1
  732. package/es/interface/graphic/image.js.map +1 -1
  733. package/es/interface/graphic/theme.d.ts +3 -0
  734. package/es/interface/graphic/theme.js.map +1 -1
  735. package/es/interface/graphic.d.ts +34 -5
  736. package/es/interface/graphic.js.map +1 -1
  737. package/es/interface/layer.d.ts +3 -2
  738. package/es/interface/layer.js.map +1 -1
  739. package/es/interface/plugin.d.ts +2 -0
  740. package/es/interface/plugin.js.map +1 -1
  741. package/es/interface/render.d.ts +1 -1
  742. package/es/interface/render.js.map +1 -1
  743. package/es/interface/stage.d.ts +9 -0
  744. package/es/interface/stage.js.map +1 -1
  745. package/es/interface/theme-service.js.map +1 -1
  746. package/es/legacy/binding-context.d.ts +24 -0
  747. package/es/legacy/binding-context.js +90 -0
  748. package/es/legacy/binding-context.js.map +1 -0
  749. package/es/legacy/bootstrap.d.ts +10 -0
  750. package/es/legacy/bootstrap.js +73 -0
  751. package/es/legacy/bootstrap.js.map +1 -0
  752. package/es/legacy/module-types.d.ts +2 -0
  753. package/es/legacy/module-types.js +2 -0
  754. package/es/legacy/module-types.js.map +1 -0
  755. package/es/modules.d.ts +5 -6
  756. package/es/modules.js +44 -14
  757. package/es/modules.js.map +1 -1
  758. package/es/picker/global-picker-service.js +2 -2
  759. package/es/picker/global-picker-service.js.map +1 -1
  760. package/es/picker/pick-modules.d.ts +5 -0
  761. package/es/picker/pick-modules.js +18 -0
  762. package/es/picker/pick-modules.js.map +1 -0
  763. package/es/picker/picker-service.d.ts +13 -4
  764. package/es/picker/picker-service.js +16 -11
  765. package/es/picker/picker-service.js.map +1 -1
  766. package/es/plugins/base-plugin.d.ts +8 -0
  767. package/es/plugins/base-plugin.js +7 -0
  768. package/es/plugins/base-plugin.js.map +1 -0
  769. package/es/plugins/browser-env-plugin.d.ts +8 -0
  770. package/es/plugins/browser-env-plugin.js +16 -0
  771. package/es/plugins/browser-env-plugin.js.map +1 -0
  772. package/es/plugins/builtin-plugin/auto-refresh-plugin.js +6 -6
  773. package/es/plugins/builtin-plugin/auto-refresh-plugin.js.map +1 -1
  774. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  775. package/es/plugins/builtin-plugin/dirty-bounds-plugin.d.ts +4 -1
  776. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +26 -3
  777. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  778. package/es/plugins/builtin-plugin/edit-module.js +3 -3
  779. package/es/plugins/builtin-plugin/edit-module.js.map +1 -1
  780. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  781. package/es/plugins/builtin-plugin/html-attribute-plugin.js +8 -8
  782. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  783. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js +2 -2
  784. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  785. package/es/plugins/builtin-plugin/react-attribute-plugin.js +3 -3
  786. package/es/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  787. package/es/plugins/builtin-plugin/richtext-edit-plugin.js +9 -7
  788. package/es/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  789. package/es/plugins/index.d.ts +5 -0
  790. package/es/plugins/index.js +10 -0
  791. package/es/plugins/index.js.map +1 -0
  792. package/es/plugins/picker-plugin.d.ts +7 -0
  793. package/es/plugins/picker-plugin.js +11 -0
  794. package/es/plugins/picker-plugin.js.map +1 -0
  795. package/es/plugins/plugin-modules.d.ts +4 -0
  796. package/es/plugins/plugin-modules.js +14 -0
  797. package/es/plugins/plugin-modules.js.map +1 -0
  798. package/es/plugins/plugin-service.d.ts +16 -2
  799. package/es/plugins/plugin-service.js +24 -12
  800. package/es/plugins/plugin-service.js.map +1 -1
  801. package/es/plugins/renderer-plugin.d.ts +7 -0
  802. package/es/plugins/renderer-plugin.js +11 -0
  803. package/es/plugins/renderer-plugin.js.map +1 -0
  804. package/es/plugins/types.d.ts +28 -0
  805. package/es/plugins/types.js +2 -0
  806. package/es/plugins/types.js.map +1 -0
  807. package/es/register/register-arc.js +2 -2
  808. package/es/register/register-arc.js.map +1 -1
  809. package/es/register/register-arc3d.js +2 -2
  810. package/es/register/register-arc3d.js.map +1 -1
  811. package/es/register/register-area.js +2 -2
  812. package/es/register/register-area.js.map +1 -1
  813. package/es/register/register-circle.js +2 -2
  814. package/es/register/register-circle.js.map +1 -1
  815. package/es/register/register-glyph.js +2 -2
  816. package/es/register/register-glyph.js.map +1 -1
  817. package/es/register/register-group.js +2 -2
  818. package/es/register/register-group.js.map +1 -1
  819. package/es/register/register-image.js +2 -2
  820. package/es/register/register-image.js.map +1 -1
  821. package/es/register/register-line.js +2 -2
  822. package/es/register/register-line.js.map +1 -1
  823. package/es/register/register-path.js +2 -2
  824. package/es/register/register-path.js.map +1 -1
  825. package/es/register/register-polygon.js +2 -2
  826. package/es/register/register-polygon.js.map +1 -1
  827. package/es/register/register-pyramid3d.js +2 -2
  828. package/es/register/register-pyramid3d.js.map +1 -1
  829. package/es/register/register-rect.js +2 -2
  830. package/es/register/register-rect.js.map +1 -1
  831. package/es/register/register-rect3d.js +2 -2
  832. package/es/register/register-rect3d.js.map +1 -1
  833. package/es/register/register-richtext.js +2 -2
  834. package/es/register/register-richtext.js.map +1 -1
  835. package/es/register/register-shadowRoot.js +2 -2
  836. package/es/register/register-shadowRoot.js.map +1 -1
  837. package/es/register/register-star.js +2 -2
  838. package/es/register/register-star.js.map +1 -1
  839. package/es/register/register-symbol.js +2 -2
  840. package/es/register/register-symbol.js.map +1 -1
  841. package/es/register/register-text.js +2 -2
  842. package/es/register/register-text.js.map +1 -1
  843. package/es/register/register-wraptext.js +2 -2
  844. package/es/register/register-wraptext.js.map +1 -1
  845. package/es/registry/contribution-registry.d.ts +9 -0
  846. package/es/registry/contribution-registry.js +25 -0
  847. package/es/registry/contribution-registry.js.map +1 -0
  848. package/es/registry/index.d.ts +5 -0
  849. package/es/registry/index.js +10 -0
  850. package/es/registry/index.js.map +1 -0
  851. package/es/registry/picker-registry.d.ts +10 -0
  852. package/es/registry/picker-registry.js +21 -0
  853. package/es/registry/picker-registry.js.map +1 -0
  854. package/es/registry/plugin-registry.d.ts +10 -0
  855. package/es/registry/plugin-registry.js +21 -0
  856. package/es/registry/plugin-registry.js.map +1 -0
  857. package/es/registry/renderer-registry.d.ts +11 -0
  858. package/es/registry/renderer-registry.js +29 -0
  859. package/es/registry/renderer-registry.js.map +1 -0
  860. package/es/registry/types.d.ts +34 -0
  861. package/es/registry/types.js +2 -0
  862. package/es/registry/types.js.map +1 -0
  863. package/es/render/contributions/modules.d.ts +2 -0
  864. package/es/render/contributions/modules.js +8 -0
  865. package/es/render/contributions/modules.js.map +1 -0
  866. package/es/render/contributions/render/arc-module.d.ts +4 -0
  867. package/es/render/contributions/render/arc-module.js +21 -0
  868. package/es/render/contributions/render/arc-module.js.map +1 -0
  869. package/es/render/contributions/render/arc-render.d.ts +2 -2
  870. package/es/render/contributions/render/arc-render.js +3 -8
  871. package/es/render/contributions/render/arc-render.js.map +1 -1
  872. package/es/render/contributions/render/arc3d-module.d.ts +4 -0
  873. package/es/render/contributions/render/arc3d-module.js +13 -0
  874. package/es/render/contributions/render/arc3d-module.js.map +1 -0
  875. package/es/render/contributions/render/area-module.d.ts +4 -0
  876. package/es/render/contributions/render/area-module.js +23 -0
  877. package/es/render/contributions/render/area-module.js.map +1 -0
  878. package/es/render/contributions/render/area-render.d.ts +2 -2
  879. package/es/render/contributions/render/area-render.js +3 -8
  880. package/es/render/contributions/render/area-render.js.map +1 -1
  881. package/es/render/contributions/render/base-render.js +1 -1
  882. package/es/render/contributions/render/base-render.js.map +1 -1
  883. package/es/render/contributions/render/circle-module.d.ts +4 -0
  884. package/es/render/contributions/render/circle-module.js +21 -0
  885. package/es/render/contributions/render/circle-module.js.map +1 -0
  886. package/es/render/contributions/render/circle-render.d.ts +2 -2
  887. package/es/render/contributions/render/circle-render.js +3 -8
  888. package/es/render/contributions/render/circle-render.js.map +1 -1
  889. package/es/render/contributions/render/contributions/base-contribution-render.d.ts +29 -11
  890. package/es/render/contributions/render/contributions/base-contribution-render.js +142 -41
  891. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  892. package/es/render/contributions/render/contributions/base-texture-contribution-render.d.ts +4 -2
  893. package/es/render/contributions/render/contributions/base-texture-contribution-render.js +85 -30
  894. package/es/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  895. package/es/render/contributions/render/contributions/group-contribution-render.js +9 -7
  896. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  897. package/es/render/contributions/render/contributions/image-contribution-render.d.ts +2 -1
  898. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  899. package/es/render/contributions/render/contributions/text-contribution-render.js +20 -16
  900. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  901. package/es/render/contributions/render/draw-contribution.d.ts +13 -4
  902. package/es/render/contributions/render/draw-contribution.js +40 -19
  903. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  904. package/es/render/contributions/render/draw-interceptor.js +2 -3
  905. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  906. package/es/render/contributions/render/glyph-module.d.ts +4 -0
  907. package/es/render/contributions/render/glyph-module.js +13 -0
  908. package/es/render/contributions/render/glyph-module.js.map +1 -0
  909. package/es/render/contributions/render/group-render.d.ts +2 -2
  910. package/es/render/contributions/render/group-render.js +3 -9
  911. package/es/render/contributions/render/group-render.js.map +1 -1
  912. package/es/render/contributions/render/image-module.d.ts +4 -0
  913. package/es/render/contributions/render/image-module.js +20 -0
  914. package/es/render/contributions/render/image-module.js.map +1 -0
  915. package/es/render/contributions/render/image-render.d.ts +16 -3
  916. package/es/render/contributions/render/image-render.js +95 -25
  917. package/es/render/contributions/render/image-render.js.map +1 -1
  918. package/es/render/contributions/render/incremental-draw-contribution.d.ts +5 -3
  919. package/es/render/contributions/render/incremental-draw-contribution.js +4 -12
  920. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  921. package/es/render/contributions/render/index.d.ts +4 -12
  922. package/es/render/contributions/render/index.js +8 -24
  923. package/es/render/contributions/render/index.js.map +1 -1
  924. package/es/render/contributions/render/line-module.d.ts +4 -0
  925. package/es/render/contributions/render/line-module.js +16 -0
  926. package/es/render/contributions/render/line-module.js.map +1 -0
  927. package/es/render/contributions/render/module.d.ts +4 -0
  928. package/es/render/contributions/render/module.js +28 -0
  929. package/es/render/contributions/render/module.js.map +1 -0
  930. package/es/render/contributions/render/path-module.d.ts +4 -0
  931. package/es/render/contributions/render/path-module.js +21 -0
  932. package/es/render/contributions/render/path-module.js.map +1 -0
  933. package/es/render/contributions/render/path-render.d.ts +2 -2
  934. package/es/render/contributions/render/path-render.js +3 -8
  935. package/es/render/contributions/render/path-render.js.map +1 -1
  936. package/es/render/contributions/render/polygon-module.d.ts +4 -0
  937. package/es/render/contributions/render/polygon-module.js +20 -0
  938. package/es/render/contributions/render/polygon-module.js.map +1 -0
  939. package/es/render/contributions/render/polygon-render.d.ts +2 -2
  940. package/es/render/contributions/render/polygon-render.js +3 -8
  941. package/es/render/contributions/render/polygon-render.js.map +1 -1
  942. package/es/render/contributions/render/pyramid3d-module.d.ts +4 -0
  943. package/es/render/contributions/render/pyramid3d-module.js +13 -0
  944. package/es/render/contributions/render/pyramid3d-module.js.map +1 -0
  945. package/es/render/contributions/render/rect-module.d.ts +4 -0
  946. package/es/render/contributions/render/rect-module.js +23 -0
  947. package/es/render/contributions/render/rect-module.js.map +1 -0
  948. package/es/render/contributions/render/rect-render.d.ts +2 -2
  949. package/es/render/contributions/render/rect-render.js +3 -8
  950. package/es/render/contributions/render/rect-render.js.map +1 -1
  951. package/es/render/contributions/render/rect3d-module.d.ts +4 -0
  952. package/es/render/contributions/render/rect3d-module.js +13 -0
  953. package/es/render/contributions/render/rect3d-module.js.map +1 -0
  954. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  955. package/es/render/contributions/render/render-slector.js.map +1 -1
  956. package/es/render/contributions/render/richtext-module.d.ts +4 -0
  957. package/es/render/contributions/render/richtext-module.js +13 -0
  958. package/es/render/contributions/render/richtext-module.js.map +1 -0
  959. package/es/render/contributions/render/star-module.d.ts +4 -0
  960. package/es/render/contributions/render/star-module.js +17 -0
  961. package/es/render/contributions/render/star-module.js.map +1 -0
  962. package/es/render/contributions/render/star-render.d.ts +2 -2
  963. package/es/render/contributions/render/star-render.js +3 -8
  964. package/es/render/contributions/render/star-render.js.map +1 -1
  965. package/es/render/contributions/render/symbol-module.d.ts +4 -0
  966. package/es/render/contributions/render/symbol-module.js +21 -0
  967. package/es/render/contributions/render/symbol-module.js.map +1 -0
  968. package/es/render/contributions/render/symbol-render.d.ts +2 -2
  969. package/es/render/contributions/render/symbol-render.js +3 -8
  970. package/es/render/contributions/render/symbol-render.js.map +1 -1
  971. package/es/render/contributions/render/symbol.d.ts +0 -2
  972. package/es/render/contributions/render/symbol.js +0 -4
  973. package/es/render/contributions/render/symbol.js.map +1 -1
  974. package/es/render/contributions/render/text-module.d.ts +4 -0
  975. package/es/render/contributions/render/text-module.js +20 -0
  976. package/es/render/contributions/render/text-module.js.map +1 -0
  977. package/es/render/contributions/render/text-render.d.ts +2 -2
  978. package/es/render/contributions/render/text-render.js +2 -7
  979. package/es/render/contributions/render/text-render.js.map +1 -1
  980. package/es/render/render-modules.d.ts +4 -0
  981. package/es/render/render-modules.js +10 -0
  982. package/es/render/render-modules.js.map +1 -0
  983. package/es/render/render-service.d.ts +1 -1
  984. package/es/render/render-service.js +3 -1
  985. package/es/render/render-service.js.map +1 -1
  986. package/es/resource-loader/loader.js +6 -6
  987. package/es/resource-loader/loader.js.map +1 -1
  988. package/package.json +8 -7
  989. package/cjs/common/registry/contribution-registry.d.ts +0 -24
  990. package/cjs/common/registry/contribution-registry.js +0 -61
  991. package/cjs/common/registry/contribution-registry.js.map +0 -1
  992. package/cjs/common/registry/index.d.ts +0 -5
  993. package/cjs/common/registry/index.js +0 -34
  994. package/cjs/common/registry/index.js.map +0 -1
  995. package/cjs/common/registry/service-registry.d.ts +0 -16
  996. package/cjs/common/registry/service-registry.js +0 -57
  997. package/cjs/common/registry/service-registry.js.map +0 -1
  998. package/cjs/common/registry/types.d.ts +0 -1
  999. package/cjs/common/registry/types.js.map +0 -1
  1000. package/cjs/register-modules.d.ts +0 -9
  1001. package/cjs/register-modules.js +0 -79
  1002. package/cjs/register-modules.js.map +0 -1
  1003. package/es/common/registry/contribution-registry.d.ts +0 -24
  1004. package/es/common/registry/contribution-registry.js +0 -55
  1005. package/es/common/registry/contribution-registry.js.map +0 -1
  1006. package/es/common/registry/index.d.ts +0 -5
  1007. package/es/common/registry/index.js +0 -4
  1008. package/es/common/registry/index.js.map +0 -1
  1009. package/es/common/registry/service-registry.d.ts +0 -16
  1010. package/es/common/registry/service-registry.js +0 -51
  1011. package/es/common/registry/service-registry.js.map +0 -1
  1012. package/es/common/registry/types.d.ts +0 -1
  1013. package/es/common/registry/types.js.map +0 -1
  1014. package/es/register-modules.d.ts +0 -9
  1015. package/es/register-modules.js +0 -117
  1016. package/es/register-modules.js.map +0 -1
  1017. /package/cjs/{common/registry → entries}/types.js +0 -0
  1018. /package/es/{common/registry → entries}/types.js +0 -0
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.createGroup = exports.Group = exports.GroupUpdateAABBBoundsMode = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), modules_1 = require("../modules"), graphic_1 = require("./graphic"), theme_1 = require("./theme"), enums_1 = require("../common/enums"), constants_1 = require("./constants"), config_1 = require("./config");
7
+ const vutils_1 = require("@visactor/vutils"), application_1 = require("../application"), graphic_1 = require("./graphic"), theme_1 = require("./theme"), enums_1 = require("../common/enums"), constants_1 = require("./constants"), config_1 = require("./config"), shared_state_scope_1 = require("./state/shared-state-scope"), shared_state_refresh_1 = require("./state/shared-state-refresh");
8
8
 
9
9
  var GroupUpdateAABBBoundsMode;
10
10
 
@@ -18,6 +18,14 @@ class Group extends graphic_1.Graphic {
18
18
  super(params), this.type = "group", this.parent = null, this.isContainer = !0, this.numberType = constants_1.GROUP_NUMBER_TYPE,
19
19
  this._childUpdateTag = enums_1.UpdateTag.UPDATE_BOUNDS;
20
20
  }
21
+ get sharedStateDefinitions() {
22
+ return this._sharedStateDefinitions;
23
+ }
24
+ set sharedStateDefinitions(value) {
25
+ this._sharedStateDefinitions !== value && (this._sharedStateDefinitions = value,
26
+ this.ensureSharedStateScopeBound(), this.sharedStateScope && ((0, shared_state_scope_1.setSharedStateScopeLocalDefinitions)(this.sharedStateScope, value),
27
+ (0, shared_state_refresh_1.markScopeActiveDescendantsDirty)(this.sharedStateScope, this.stage)));
28
+ }
21
29
  setMode(mode) {
22
30
  "3d" === mode ? this.set3dMode() : this.set2dMode();
23
31
  }
@@ -84,7 +92,8 @@ class Group extends graphic_1.Graphic {
84
92
  const {scrollX: scrollX = 0, scrollY: scrollY = 0} = attribute;
85
93
  aabbBounds.translate(scrollX, scrollY);
86
94
  }
87
- return modules_1.graphicService.updateTempAABBBounds(aabbBounds), modules_1.graphicService.transformAABBBounds(attribute, aabbBounds, groupTheme, !1, this),
95
+ return application_1.application.graphicService.updateTempAABBBounds(aabbBounds),
96
+ application_1.application.graphicService.transformAABBBounds(attribute, aabbBounds, groupTheme, !1, this),
88
97
  originalAABBBounds.copy(aabbBounds), originalAABBBounds;
89
98
  }
90
99
  doUpdateAABBBounds() {
@@ -108,7 +117,7 @@ class Group extends graphic_1.Graphic {
108
117
  }
109
118
  incrementalAppendChild(node) {
110
119
  const data = super.appendChild(node);
111
- return this.stage && data && (data.stage = this.stage, data.layer = this.layer),
120
+ return data && (!this.stage || data.stage === this.stage && data.layer === this.layer ? data.onParentSharedStateTreeChanged && data.onParentSharedStateTreeChanged(this.stage, this.layer) : data.setStage(this.stage, this.layer)),
112
121
  this.addUpdateBoundTag(), this.getGraphicService().onAddIncremental(node, this, this.stage),
113
122
  data;
114
123
  }
@@ -116,12 +125,12 @@ class Group extends graphic_1.Graphic {
116
125
  super.removeAllChild(), this.addUpdateBoundTag(), this.getGraphicService().onClearIncremental(this, this.stage);
117
126
  }
118
127
  _updateChildToStage(child) {
119
- return this.stage && child && child.setStage(this.stage, this.layer), this.addUpdateBoundTag(),
120
- child;
128
+ return child && (!this.stage || child.stage === this.stage && child.layer === this.layer ? child.onParentSharedStateTreeChanged && child.onParentSharedStateTreeChanged(this.stage, this.layer) : child.setStage(this.stage, this.layer)),
129
+ this.addUpdateBoundTag(), child;
121
130
  }
122
131
  appendChild(node, addStage = !0) {
123
132
  const data = super.appendChild(node);
124
- return addStage && this.stage && data && data.setStage(this.stage, this.layer),
133
+ return data && (addStage && this.stage && (data.stage !== this.stage || data.layer !== this.layer) ? data.setStage(this.stage, this.layer) : data.onParentSharedStateTreeChanged && data.onParentSharedStateTreeChanged(this.stage, this.layer)),
125
134
  this.addUpdateBoundTag(), data;
126
135
  }
127
136
  insertBefore(newNode, referenceNode) {
@@ -135,20 +144,32 @@ class Group extends graphic_1.Graphic {
135
144
  }
136
145
  removeChild(child) {
137
146
  const data = super.removeChild(child);
138
- return this.getGraphicService().onRemove(child), child.stage = null, this.addUpdateBoundTag(),
147
+ return this.getGraphicService().onRemove(child), child.setStage(null, null), this.addUpdateBoundTag(),
139
148
  data;
140
149
  }
141
150
  removeAllChild(deep = !1) {
151
+ const children = this.children.slice();
142
152
  this.forEachChildren((child => {
143
153
  this.getGraphicService().onRemove(child), deep && child.isContainer && child.removeAllChild(deep);
144
- })), super.removeAllChild(), this.addUpdateBoundTag();
154
+ })), super.removeAllChild(), children.forEach((child => {
155
+ child.setStage(null, null);
156
+ })), this.addUpdateBoundTag();
145
157
  }
146
158
  setStage(stage, layer) {
147
- this.stage !== stage && (this.stage = stage, this.layer = layer, this.setStageToShadowRoot(stage, layer),
148
- this._onSetStage && this._onSetStage(this, stage, layer), this.getGraphicService().onSetStage(this, stage),
149
- this.forEachChildren((item => {
159
+ var _a, _b, _c, _d, _e, _f;
160
+ const graphicService = null !== (_c = null !== (_a = null == stage ? void 0 : stage.graphicService) && void 0 !== _a ? _a : null === (_b = this.stage) || void 0 === _b ? void 0 : _b.graphicService) && void 0 !== _c ? _c : application_1.application.graphicService;
161
+ if (this.stage !== stage) return this.stage = stage, this.layer = layer, this.ensureSharedStateScopeBound(),
162
+ this.syncSharedStateScopeBindingFromTree(!!(null === (_d = this.currentStates) || void 0 === _d ? void 0 : _d.length)),
163
+ this.setStageToShadowRoot(stage, layer), this._onSetStage && this._onSetStage(this, stage, layer),
164
+ null === (_e = null == graphicService ? void 0 : graphicService.onSetStage) || void 0 === _e || _e.call(graphicService, this, stage),
165
+ void this.forEachChildren((item => {
150
166
  item.setStage(stage, this.layer);
151
- })));
167
+ }));
168
+ this.layer !== layer && (this.layer = layer), this.ensureSharedStateScopeBound(),
169
+ this.syncSharedStateScopeBindingFromTree(!!(null === (_f = this.currentStates) || void 0 === _f ? void 0 : _f.length)),
170
+ this.forEachChildren((item => {
171
+ item.onParentSharedStateTreeChanged && item.onParentSharedStateTreeChanged(stage, this.layer);
172
+ }));
152
173
  }
153
174
  addUpdatePositionTag() {
154
175
  super.addUpdatePositionTag(), this.forEachChildren((g => {
@@ -180,7 +201,7 @@ class Group extends graphic_1.Graphic {
180
201
  }
181
202
  createOrUpdateChild(graphicName, attributes, graphicType) {
182
203
  let graphic = this._getChildByName(graphicName);
183
- return graphic ? graphic.setAttributes(attributes) : (graphic = modules_1.graphicService.creator[graphicType](attributes),
204
+ return graphic ? graphic.setAttributes(attributes) : (graphic = application_1.application.graphicService.creator[graphicType](attributes),
184
205
  graphic.name = graphicName, this.add(graphic)), graphic;
185
206
  }
186
207
  clone() {
@@ -194,6 +215,21 @@ class Group extends graphic_1.Graphic {
194
215
  g.release(all);
195
216
  })), super.release();
196
217
  }
218
+ ensureSharedStateScopeBound() {
219
+ var _a, _b, _c;
220
+ const parentScope = null !== (_b = null === (_a = this.parent) || void 0 === _a ? void 0 : _a.sharedStateScope) && void 0 !== _b ? _b : null === (_c = this.stage) || void 0 === _c ? void 0 : _c.rootSharedStateScope;
221
+ this.sharedStateScope ? (this.sharedStateScope.ownerGroup = this, this.sharedStateScope.ownerStage = this.stage,
222
+ (0, shared_state_scope_1.setSharedStateScopeParent)(this.sharedStateScope, parentScope),
223
+ this.sharedStateScope.localStateDefinitions !== this._sharedStateDefinitions && (0,
224
+ shared_state_scope_1.setSharedStateScopeLocalDefinitions)(this.sharedStateScope, this._sharedStateDefinitions)) : this.sharedStateScope = (0,
225
+ shared_state_scope_1.createGroupSharedStateScope)(this, parentScope, this._sharedStateDefinitions);
226
+ }
227
+ onParentSharedStateTreeChanged(stage, layer) {
228
+ this.stage === stage && this.layer === layer ? (this.ensureSharedStateScopeBound(),
229
+ this.syncSharedStateScopeBindingFromTree(), this.forEachChildren((item => {
230
+ item.onParentSharedStateTreeChanged && item.onParentSharedStateTreeChanged(stage, this.layer);
231
+ }))) : this.setStage(stage, layer);
232
+ }
197
233
  }
198
234
 
199
235
  function createGroup(attributes) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphic/group.ts"],"names":[],"mappings":"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","file":"group.js","sourcesContent":["import type { IAABBBounds, Matrix } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { Point } from '@visactor/vutils';\nimport { vglobal, graphicService } from '../modules';\nimport type {\n IStage,\n GraphicAttributeMap,\n INode,\n IGraphic,\n ITheme,\n IThemeSpec,\n ILayer,\n GraphicType\n} from '../interface';\nimport type { IGroup, IGroupGraphicAttribute } from '../interface/graphic/group';\nimport { Graphic, NOWORK_ANIMATE_ATTR } from './graphic';\nimport { getTheme, Theme } from './theme';\nimport { UpdateTag, IContainPointMode } from '../common/enums';\nimport { GROUP_NUMBER_TYPE } from './constants';\nimport { DefaultTransform } from './config';\n\n// Group更新AABBBounds的策略\nexport enum GroupUpdateAABBBoundsMode {\n // Group较少的情况,不会批量设置所有父层的tag,而是每次都查找\n LESS_GROUP = 0,\n // Group较多的情况,每次都会设置tag到最顶层\n MORE_GROUP = 1\n}\n\nexport class Group extends Graphic<IGroupGraphicAttribute> implements IGroup {\n type: GraphicType = 'group';\n parent: any = null;\n isContainer: boolean = true;\n // 子元素的更新标记\n declare _childUpdateTag: number;\n\n declare theme?: ITheme;\n\n static NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;\n\n constructor(params: IGroupGraphicAttribute) {\n super(params);\n this.numberType = GROUP_NUMBER_TYPE;\n this._childUpdateTag = UpdateTag.UPDATE_BOUNDS;\n // this.theme = new Theme();\n }\n\n setMode(mode: '2d' | '3d') {\n mode === '3d' ? this.set3dMode() : this.set2dMode();\n }\n\n set3dMode() {\n this.in3dMode = true;\n // this.forEachChildren((c: IGraphic) => {\n // c.setMode('3d');\n // });\n }\n set2dMode() {\n this.in3dMode = false;\n // this.forEachChildren((c: IGraphic) => {\n // c.setMode('2d');\n // });\n }\n\n setTheme(t: IThemeSpec) {\n if (!this.theme) {\n this.theme = new Theme();\n }\n return this.theme.setTheme(t, this);\n }\n\n createTheme() {\n if (!this.theme) {\n this.theme = new Theme();\n }\n }\n\n visibleAll(visible: boolean) {\n this.setAttribute('visible', visible);\n this.forEachChildren((item: IGraphic) => {\n if (item.isContainer && (item as any).visibleAll) {\n (item as any).visibleAll(visible);\n } else {\n item.setAttribute('visible', visible);\n }\n });\n }\n\n hideAll() {\n this.visibleAll(false);\n }\n\n showAll() {\n this.visibleAll(true);\n }\n\n /**\n * 是否包含某个点(点需要是全局坐标系)\n * group containsPoint 只需要判断bounds\n * TODO: group的shape判断\n * @param x\n * @param y\n * @param mode\n * @returns\n */\n containsPoint(x: number, y: number, mode: IContainPointMode): boolean {\n if (mode === IContainPointMode.GLOBAL) {\n // 转换x,y更精准\n const point = new Point(x, y);\n if (this.parent) {\n this.parent.globalTransMatrix.transformPoint(point, point);\n }\n return this.AABBBounds.contains(point.x, point.y);\n }\n return this.AABBBounds.contains(x, y);\n }\n\n shouldUpdateAABBBounds(): boolean {\n // 检索自己是否需要更新\n if (super.shouldUpdateAABBBounds()) {\n return true;\n }\n // 检索叶子节点是否有更新(如果children是叶子节点的话)\n if (this._childUpdateTag & UpdateTag.UPDATE_BOUNDS) {\n return true;\n }\n return false;\n // // 检索是否子group需要更新\n // let needUpdate = false;\n // this.forEachChildren((node: IGraphic) => {\n // // 只查找group层级\n // if (node.isContainer && (node as Group).shouldUpdateAABBBounds()) {\n // needUpdate = true;\n // return true;\n // }\n // return false;\n // });\n // return needUpdate;\n }\n\n protected tryUpdateAABBBounds(): IAABBBounds {\n if (!this.shouldUpdateAABBBounds()) {\n return this._AABBBounds;\n }\n this.getGraphicService().beforeUpdateAABBBounds(this, this.stage, true, this._AABBBounds);\n const selfChange = this.shouldSelfChangeUpdateAABBBounds();\n const bounds = this.doUpdateAABBBounds();\n this.addUpdateLayoutTag();\n this.getGraphicService().afterUpdateAABBBounds(this, this.stage, this._AABBBounds, this, selfChange);\n // 直接返回空Bounds,但是前面的流程还是要走\n if (this.attribute.boundsMode === 'empty') {\n bounds.clear();\n }\n return bounds;\n }\n\n /**\n * 大部分group不需要更新matrix,这里特殊优化一下\n * 更新局部matrix的具体函数\n */\n protected doUpdateLocalMatrix() {\n const {\n x = DefaultTransform.x,\n y = DefaultTransform.y,\n dx = DefaultTransform.dx,\n dy = DefaultTransform.dy,\n scaleX = DefaultTransform.scaleX,\n scaleY = DefaultTransform.scaleY,\n angle = DefaultTransform.angle,\n postMatrix\n } = this.attribute;\n if (x === 0 && y === 0 && dx === 0 && dy === 0 && scaleX === 1 && scaleY === 1 && angle === 0 && !postMatrix) {\n this._transMatrix.reset();\n return;\n }\n return super.doUpdateLocalMatrix();\n }\n\n getGraphicTheme(): Required<IGroupGraphicAttribute> {\n return getTheme(this).group;\n }\n\n protected updateAABBBounds(\n attribute: IGroupGraphicAttribute,\n groupTheme: Required<IGroupGraphicAttribute>,\n aabbBounds: IAABBBounds\n ) {\n const originalAABBBounds = aabbBounds; // fix aabbbounds update error in flex layout\n aabbBounds = aabbBounds.clone();\n\n const { width, height, path, clip = groupTheme.clip } = attribute;\n // 添加自身的fill或者clip\n if (path && path.length) {\n path.forEach(g => {\n aabbBounds.union(g.AABBBounds);\n });\n } else if (width != null && height != null) {\n aabbBounds.set(0, 0, Math.max(0, width), Math.max(0, height)); // fix bounds set when auto size in vtable\n }\n if (!clip) {\n // 添加子节点\n this.forEachChildren((node: IGraphic) => {\n aabbBounds.union(node.AABBBounds);\n });\n // 如果没有clip的话,还需要加一下scroll\n const { scrollX = 0, scrollY = 0 } = attribute;\n aabbBounds.translate(scrollX, scrollY);\n }\n graphicService.updateTempAABBBounds(aabbBounds);\n\n graphicService.transformAABBBounds(attribute, aabbBounds, groupTheme, false, this);\n\n originalAABBBounds.copy(aabbBounds);\n return originalAABBBounds;\n }\n\n protected doUpdateAABBBounds(): IAABBBounds {\n this.updateAABBBoundsStamp++;\n const bounds = super.doUpdateAABBBounds();\n\n // 更新bounds之后需要设置父节点,否则tag丢失\n this.parent && this.parent.addChildUpdateBoundTag();\n this._emitCustomEvent('AAABBBoundsChange');\n\n return bounds;\n }\n\n protected clearUpdateBoundTag() {\n this._updateTag &= UpdateTag.CLEAR_BOUNDS;\n this._childUpdateTag &= UpdateTag.CLEAR_BOUNDS;\n }\n\n addUpdateBoundTag() {\n this._updateTag |= UpdateTag.UPDATE_BOUNDS; // for bounds\n if (this.parent) {\n this.parent.addChildUpdateBoundTag();\n }\n }\n\n addChildUpdateBoundTag() {\n // 如果已经设置过updateTag,那就不需要设置了\n if (this._childUpdateTag & UpdateTag.UPDATE_BOUNDS) {\n return;\n }\n // 如果没有设置过,那么继续向上设置\n this._childUpdateTag |= UpdateTag.UPDATE_BOUNDS;\n this.parent && this.parent.addChildUpdateBoundTag();\n }\n\n getTheme() {\n return this.theme.getTheme(this);\n }\n\n /* 场景树结构 */\n incrementalAppendChild(node: INode): INode | null {\n const data = super.appendChild(node);\n if (this.stage && data) {\n (data as unknown as this).stage = this.stage;\n (data as unknown as this).layer = this.layer;\n }\n this.addUpdateBoundTag();\n this.getGraphicService().onAddIncremental(node as unknown as IGraphic, this, this.stage);\n return data;\n }\n incrementalClearChild(): void {\n super.removeAllChild();\n this.addUpdateBoundTag();\n this.getGraphicService().onClearIncremental(this, this.stage);\n return;\n }\n\n protected _updateChildToStage(child: IGraphic) {\n if (this.stage && child) {\n child.setStage(this.stage, this.layer);\n }\n this.addUpdateBoundTag();\n return child;\n }\n // TODO 代码优化\n appendChild(node: INode, addStage: boolean = true): INode | null {\n const data = super.appendChild(node);\n if (addStage && this.stage && data) {\n (data as unknown as this).setStage(this.stage, this.layer);\n }\n this.addUpdateBoundTag();\n return data;\n }\n insertBefore(newNode: INode, referenceNode: INode): INode | null {\n return this._updateChildToStage(super.insertBefore(newNode, referenceNode) as undefined as IGraphic);\n }\n insertAfter(newNode: INode, referenceNode: INode): INode | null {\n return this._updateChildToStage(super.insertAfter(newNode, referenceNode) as undefined as IGraphic);\n }\n insertInto(newNode: INode, idx: number): INode | null {\n return this._updateChildToStage(super.insertInto(newNode, idx) as undefined as IGraphic);\n }\n\n removeChild(child: IGraphic): IGraphic {\n const data = super.removeChild(child);\n this.getGraphicService().onRemove(child);\n child.stage = null;\n this.addUpdateBoundTag();\n return data as IGraphic;\n }\n\n removeAllChild(deep: boolean = false): void {\n this.forEachChildren((child: IGraphic) => {\n this.getGraphicService().onRemove(child);\n if (deep && child.isContainer) {\n child.removeAllChild(deep);\n }\n });\n super.removeAllChild();\n this.addUpdateBoundTag();\n }\n\n setStage(stage?: IStage, layer?: ILayer) {\n if (this.stage !== stage) {\n this.stage = stage;\n this.layer = layer;\n this.setStageToShadowRoot(stage, layer);\n this._onSetStage && this._onSetStage(this, stage, layer);\n this.getGraphicService().onSetStage(this, stage);\n this.forEachChildren(item => {\n (item as any).setStage(stage, this.layer);\n });\n }\n }\n /**\n * 更新位置tag,包括全局tag和局部tag\n */\n addUpdatePositionTag() {\n super.addUpdatePositionTag();\n // 批量设置底层group的global tag\n this.forEachChildren((g: Group) => {\n if (g.isContainer) {\n g.addUpdateGlobalPositionTag();\n }\n });\n }\n /**\n * 更新全局位置tag\n */\n addUpdateGlobalPositionTag() {\n super.addUpdateGlobalPositionTag();\n // 批量设置底层group的global tag\n this.forEachChildren((g: Group) => {\n if (g.isContainer) {\n g.addUpdateGlobalPositionTag();\n }\n });\n }\n /**\n * group更新全局的transMatrix\n * @param clearTag\n * @returns\n */\n protected tryUpdateGlobalTransMatrix(clearTag: boolean = true): Matrix {\n if (this.shouldUpdateGlobalMatrix()) {\n if (!this._globalTransMatrix) {\n this._globalTransMatrix = this.parent\n ? (this.parent as IGroup).globalTransMatrix.clone()\n : this.transMatrix.clone();\n } else if (this.parent) {\n const m = (this.parent as IGroup).globalTransMatrix;\n this._globalTransMatrix.setValue(m.a, m.b, m.c, m.d, m.e, m.f);\n }\n this.doUpdateGlobalMatrix();\n clearTag && this.clearUpdateGlobalPositionTag();\n }\n return this._globalTransMatrix;\n }\n /**\n * 查找自身更新global的tag,如果存在,就更新\n * @returns\n */\n shouldUpdateGlobalMatrix(): boolean {\n const shouldUpdate = !!(this._updateTag & UpdateTag.UPDATE_GLOBAL_MATRIX);\n return shouldUpdate;\n }\n\n private _getChildByName<T extends INode = INode>(name: string, deep?: boolean): T | null {\n return this.find(node => node.name === name, deep);\n }\n\n /**\n * if graphic exist then update attributes, otherwise create a new instance\n * @param graphicName the name of graphic\n * @param attributes the attributes of graphic\n * @param graphicType the type of graphic\n * @returns the graphic instance\n */\n createOrUpdateChild<T extends keyof GraphicAttributeMap>(\n graphicName: string,\n attributes: GraphicAttributeMap[T],\n graphicType: T\n ): INode {\n let graphic = this._getChildByName(graphicName) as IGraphic;\n if (graphic) {\n graphic.setAttributes(attributes);\n } else {\n graphic = graphicService.creator[graphicType](attributes as any);\n graphic.name = graphicName;\n this.add(graphic);\n }\n\n return graphic;\n }\n\n clone() {\n return new Group({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Group.NOWORK_ANIMATE_ATTR;\n }\n\n release(all?: boolean) {\n if (all) {\n this.forEachChildren((g: IGraphic) => {\n g.release(all);\n });\n }\n super.release();\n }\n}\n\nexport function createGroup(attributes: IGroupGraphicAttribute): IGroup {\n return new Group(attributes);\n}\n"]}
1
+ {"version":3,"sources":["../src/graphic/group.ts"],"names":[],"mappings":"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","file":"group.js","sourcesContent":["import { Point, type IAABBBounds, type Matrix } from '@visactor/vutils';\nimport { application } from '../application';\nimport type {\n IStage,\n GraphicAttributeMap,\n INode,\n IGraphic,\n ITheme,\n IThemeSpec,\n ILayer,\n GraphicType\n} from '../interface';\nimport type { IGroup, IGroupGraphicAttribute } from '../interface/graphic/group';\nimport type { IDeferredStateOwnerConfig } from './state/state-perf-monitor';\nimport { Graphic, NOWORK_ANIMATE_ATTR } from './graphic';\nimport { getTheme, Theme } from './theme';\nimport { UpdateTag, IContainPointMode } from '../common/enums';\nimport { GROUP_NUMBER_TYPE } from './constants';\nimport { DefaultTransform } from './config';\nimport type { StateDefinitionsInput } from './state/state-definition';\nimport {\n type SharedStateScope,\n createGroupSharedStateScope,\n setSharedStateScopeLocalDefinitions,\n setSharedStateScopeParent\n} from './state/shared-state-scope';\nimport { markScopeActiveDescendantsDirty } from './state/shared-state-refresh';\n\n// Group更新AABBBounds的策略\nexport enum GroupUpdateAABBBoundsMode {\n // Group较少的情况,不会批量设置所有父层的tag,而是每次都查找\n LESS_GROUP = 0,\n // Group较多的情况,每次都会设置tag到最顶层\n MORE_GROUP = 1\n}\n\nexport class Group extends Graphic<IGroupGraphicAttribute> implements IGroup {\n type: GraphicType = 'group';\n parent: any = null;\n isContainer: boolean = true;\n // 子元素的更新标记\n declare _childUpdateTag: number;\n\n declare theme?: ITheme;\n protected _sharedStateDefinitions?: StateDefinitionsInput<Record<string, any>>;\n declare sharedStateScope?: SharedStateScope<Record<string, any>>;\n declare deferredStateConfig?: IDeferredStateOwnerConfig;\n\n static NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;\n\n constructor(params: IGroupGraphicAttribute) {\n super(params);\n this.numberType = GROUP_NUMBER_TYPE;\n this._childUpdateTag = UpdateTag.UPDATE_BOUNDS;\n // this.theme = new Theme();\n }\n\n get sharedStateDefinitions(): StateDefinitionsInput<Record<string, any>> | undefined {\n return this._sharedStateDefinitions;\n }\n\n set sharedStateDefinitions(value: StateDefinitionsInput<Record<string, any>> | undefined) {\n if (this._sharedStateDefinitions === value) {\n return;\n }\n\n this._sharedStateDefinitions = value;\n this.ensureSharedStateScopeBound();\n if (this.sharedStateScope) {\n setSharedStateScopeLocalDefinitions(this.sharedStateScope, value);\n markScopeActiveDescendantsDirty(this.sharedStateScope, this.stage);\n }\n }\n\n setMode(mode: '2d' | '3d') {\n mode === '3d' ? this.set3dMode() : this.set2dMode();\n }\n\n set3dMode() {\n this.in3dMode = true;\n // this.forEachChildren((c: IGraphic) => {\n // c.setMode('3d');\n // });\n }\n set2dMode() {\n this.in3dMode = false;\n // this.forEachChildren((c: IGraphic) => {\n // c.setMode('2d');\n // });\n }\n\n setTheme(t: IThemeSpec) {\n if (!this.theme) {\n this.theme = new Theme();\n }\n return this.theme.setTheme(t, this);\n }\n\n createTheme() {\n if (!this.theme) {\n this.theme = new Theme();\n }\n }\n\n visibleAll(visible: boolean) {\n this.setAttribute('visible', visible);\n this.forEachChildren((item: IGraphic) => {\n if (item.isContainer && (item as any).visibleAll) {\n (item as any).visibleAll(visible);\n } else {\n item.setAttribute('visible', visible);\n }\n });\n }\n\n hideAll() {\n this.visibleAll(false);\n }\n\n showAll() {\n this.visibleAll(true);\n }\n\n /**\n * 是否包含某个点(点需要是全局坐标系)\n * group containsPoint 只需要判断bounds\n * TODO: group的shape判断\n * @param x\n * @param y\n * @param mode\n * @returns\n */\n containsPoint(x: number, y: number, mode: IContainPointMode): boolean {\n if (mode === IContainPointMode.GLOBAL) {\n // 转换x,y更精准\n const point = new Point(x, y);\n if (this.parent) {\n this.parent.globalTransMatrix.transformPoint(point, point);\n }\n return this.AABBBounds.contains(point.x, point.y);\n }\n return this.AABBBounds.contains(x, y);\n }\n\n shouldUpdateAABBBounds(): boolean {\n // 检索自己是否需要更新\n if (super.shouldUpdateAABBBounds()) {\n return true;\n }\n // 检索叶子节点是否有更新(如果children是叶子节点的话)\n if (this._childUpdateTag & UpdateTag.UPDATE_BOUNDS) {\n return true;\n }\n return false;\n // // 检索是否子group需要更新\n // let needUpdate = false;\n // this.forEachChildren((node: IGraphic) => {\n // // 只查找group层级\n // if (node.isContainer && (node as Group).shouldUpdateAABBBounds()) {\n // needUpdate = true;\n // return true;\n // }\n // return false;\n // });\n // return needUpdate;\n }\n\n protected tryUpdateAABBBounds(): IAABBBounds {\n if (!this.shouldUpdateAABBBounds()) {\n return this._AABBBounds;\n }\n this.getGraphicService().beforeUpdateAABBBounds(this, this.stage, true, this._AABBBounds);\n const selfChange = this.shouldSelfChangeUpdateAABBBounds();\n const bounds = this.doUpdateAABBBounds();\n this.addUpdateLayoutTag();\n this.getGraphicService().afterUpdateAABBBounds(this, this.stage, this._AABBBounds, this, selfChange);\n // 直接返回空Bounds,但是前面的流程还是要走\n if (this.attribute.boundsMode === 'empty') {\n bounds.clear();\n }\n return bounds;\n }\n\n /**\n * 大部分group不需要更新matrix,这里特殊优化一下\n * 更新局部matrix的具体函数\n */\n protected doUpdateLocalMatrix() {\n const {\n x = DefaultTransform.x,\n y = DefaultTransform.y,\n dx = DefaultTransform.dx,\n dy = DefaultTransform.dy,\n scaleX = DefaultTransform.scaleX,\n scaleY = DefaultTransform.scaleY,\n angle = DefaultTransform.angle,\n postMatrix\n } = this.attribute;\n if (x === 0 && y === 0 && dx === 0 && dy === 0 && scaleX === 1 && scaleY === 1 && angle === 0 && !postMatrix) {\n this._transMatrix.reset();\n return;\n }\n return super.doUpdateLocalMatrix();\n }\n\n getGraphicTheme(): Required<IGroupGraphicAttribute> {\n return getTheme(this).group;\n }\n\n protected updateAABBBounds(\n attribute: IGroupGraphicAttribute,\n groupTheme: Required<IGroupGraphicAttribute>,\n aabbBounds: IAABBBounds\n ) {\n const originalAABBBounds = aabbBounds; // fix aabbbounds update error in flex layout\n aabbBounds = aabbBounds.clone();\n\n const { width, height, path, clip = groupTheme.clip } = attribute;\n // 添加自身的fill或者clip\n if (path && path.length) {\n path.forEach(g => {\n aabbBounds.union(g.AABBBounds);\n });\n } else if (width != null && height != null) {\n aabbBounds.set(0, 0, Math.max(0, width), Math.max(0, height)); // fix bounds set when auto size in vtable\n }\n if (!clip) {\n // 添加子节点\n this.forEachChildren((node: IGraphic) => {\n aabbBounds.union(node.AABBBounds);\n });\n // 如果没有clip的话,还需要加一下scroll\n const { scrollX = 0, scrollY = 0 } = attribute;\n aabbBounds.translate(scrollX, scrollY);\n }\n application.graphicService.updateTempAABBBounds(aabbBounds);\n\n application.graphicService.transformAABBBounds(attribute, aabbBounds, groupTheme, false, this);\n\n originalAABBBounds.copy(aabbBounds);\n return originalAABBBounds;\n }\n\n protected doUpdateAABBBounds(): IAABBBounds {\n this.updateAABBBoundsStamp++;\n const bounds = super.doUpdateAABBBounds();\n\n // 更新bounds之后需要设置父节点,否则tag丢失\n this.parent && this.parent.addChildUpdateBoundTag();\n this._emitCustomEvent('AAABBBoundsChange');\n\n return bounds;\n }\n\n protected clearUpdateBoundTag() {\n this._updateTag &= UpdateTag.CLEAR_BOUNDS;\n this._childUpdateTag &= UpdateTag.CLEAR_BOUNDS;\n }\n\n addUpdateBoundTag() {\n this._updateTag |= UpdateTag.UPDATE_BOUNDS; // for bounds\n if (this.parent) {\n this.parent.addChildUpdateBoundTag();\n }\n }\n\n addChildUpdateBoundTag() {\n // 如果已经设置过updateTag,那就不需要设置了\n if (this._childUpdateTag & UpdateTag.UPDATE_BOUNDS) {\n return;\n }\n // 如果没有设置过,那么继续向上设置\n this._childUpdateTag |= UpdateTag.UPDATE_BOUNDS;\n this.parent && this.parent.addChildUpdateBoundTag();\n }\n\n getTheme() {\n return this.theme.getTheme(this);\n }\n\n /* 场景树结构 */\n incrementalAppendChild(node: INode): INode | null {\n const data = super.appendChild(node);\n if (data) {\n if (\n this.stage &&\n ((data as unknown as this).stage !== this.stage || (data as unknown as this).layer !== this.layer)\n ) {\n (data as unknown as this).setStage(this.stage, this.layer);\n } else if ((data as any).onParentSharedStateTreeChanged) {\n (data as any).onParentSharedStateTreeChanged(this.stage, this.layer);\n }\n }\n this.addUpdateBoundTag();\n this.getGraphicService().onAddIncremental(node as unknown as IGraphic, this, this.stage);\n return data;\n }\n incrementalClearChild(): void {\n super.removeAllChild();\n this.addUpdateBoundTag();\n this.getGraphicService().onClearIncremental(this, this.stage);\n return;\n }\n\n protected _updateChildToStage(child: IGraphic) {\n if (child) {\n if (this.stage && (child.stage !== this.stage || child.layer !== this.layer)) {\n child.setStage(this.stage, this.layer);\n } else if ((child as any).onParentSharedStateTreeChanged) {\n (child as any).onParentSharedStateTreeChanged(this.stage, this.layer);\n }\n }\n this.addUpdateBoundTag();\n return child;\n }\n // TODO 代码优化\n appendChild(node: INode, addStage: boolean = true): INode | null {\n const data = super.appendChild(node);\n if (data) {\n if (\n addStage &&\n this.stage &&\n ((data as unknown as this).stage !== this.stage || (data as unknown as this).layer !== this.layer)\n ) {\n (data as unknown as this).setStage(this.stage, this.layer);\n } else if ((data as any).onParentSharedStateTreeChanged) {\n (data as any).onParentSharedStateTreeChanged(this.stage, this.layer);\n }\n }\n this.addUpdateBoundTag();\n return data;\n }\n insertBefore(newNode: INode, referenceNode: INode): INode | null {\n return this._updateChildToStage(super.insertBefore(newNode, referenceNode) as undefined as IGraphic);\n }\n insertAfter(newNode: INode, referenceNode: INode): INode | null {\n return this._updateChildToStage(super.insertAfter(newNode, referenceNode) as undefined as IGraphic);\n }\n insertInto(newNode: INode, idx: number): INode | null {\n return this._updateChildToStage(super.insertInto(newNode, idx) as undefined as IGraphic);\n }\n\n removeChild(child: IGraphic): IGraphic {\n const data = super.removeChild(child);\n this.getGraphicService().onRemove(child);\n child.setStage(null as any, null as any);\n this.addUpdateBoundTag();\n return data as IGraphic;\n }\n\n removeAllChild(deep: boolean = false): void {\n const children = this.children.slice() as IGraphic[];\n this.forEachChildren((child: IGraphic) => {\n this.getGraphicService().onRemove(child);\n if (deep && child.isContainer) {\n child.removeAllChild(deep);\n }\n });\n super.removeAllChild();\n children.forEach(child => {\n child.setStage(null as any, null as any);\n });\n this.addUpdateBoundTag();\n }\n\n setStage(stage?: IStage, layer?: ILayer) {\n const graphicService = stage?.graphicService ?? this.stage?.graphicService ?? application.graphicService;\n if (this.stage !== stage) {\n this.stage = stage;\n this.layer = layer;\n this.ensureSharedStateScopeBound();\n this.syncSharedStateScopeBindingFromTree(!!this.currentStates?.length);\n this.setStageToShadowRoot(stage, layer);\n this._onSetStage && this._onSetStage(this, stage, layer);\n graphicService?.onSetStage?.(this, stage);\n this.forEachChildren(item => {\n (item as any).setStage(stage, this.layer);\n });\n return;\n }\n\n if (this.layer !== layer) {\n this.layer = layer;\n }\n this.ensureSharedStateScopeBound();\n this.syncSharedStateScopeBindingFromTree(!!this.currentStates?.length);\n this.forEachChildren(item => {\n if ((item as any).onParentSharedStateTreeChanged) {\n (item as any).onParentSharedStateTreeChanged(stage, this.layer);\n }\n });\n }\n /**\n * 更新位置tag,包括全局tag和局部tag\n */\n addUpdatePositionTag() {\n super.addUpdatePositionTag();\n // 批量设置底层group的global tag\n this.forEachChildren((g: Group) => {\n if (g.isContainer) {\n g.addUpdateGlobalPositionTag();\n }\n });\n }\n /**\n * 更新全局位置tag\n */\n addUpdateGlobalPositionTag() {\n super.addUpdateGlobalPositionTag();\n // 批量设置底层group的global tag\n this.forEachChildren((g: Group) => {\n if (g.isContainer) {\n g.addUpdateGlobalPositionTag();\n }\n });\n }\n /**\n * group更新全局的transMatrix\n * @param clearTag\n * @returns\n */\n protected tryUpdateGlobalTransMatrix(clearTag: boolean = true): Matrix {\n if (this.shouldUpdateGlobalMatrix()) {\n if (!this._globalTransMatrix) {\n this._globalTransMatrix = this.parent\n ? (this.parent as IGroup).globalTransMatrix.clone()\n : this.transMatrix.clone();\n } else if (this.parent) {\n const m = (this.parent as IGroup).globalTransMatrix;\n this._globalTransMatrix.setValue(m.a, m.b, m.c, m.d, m.e, m.f);\n }\n this.doUpdateGlobalMatrix();\n clearTag && this.clearUpdateGlobalPositionTag();\n }\n return this._globalTransMatrix;\n }\n /**\n * 查找自身更新global的tag,如果存在,就更新\n * @returns\n */\n shouldUpdateGlobalMatrix(): boolean {\n const shouldUpdate = !!(this._updateTag & UpdateTag.UPDATE_GLOBAL_MATRIX);\n return shouldUpdate;\n }\n\n private _getChildByName<T extends INode = INode>(name: string, deep?: boolean): T | null {\n return this.find(node => node.name === name, deep);\n }\n\n /**\n * if graphic exist then update attributes, otherwise create a new instance\n * @param graphicName the name of graphic\n * @param attributes the attributes of graphic\n * @param graphicType the type of graphic\n * @returns the graphic instance\n */\n createOrUpdateChild<T extends keyof GraphicAttributeMap>(\n graphicName: string,\n attributes: GraphicAttributeMap[T],\n graphicType: T\n ): INode {\n let graphic = this._getChildByName(graphicName) as IGraphic;\n if (graphic) {\n graphic.setAttributes(attributes);\n } else {\n graphic = application.graphicService.creator[graphicType](attributes as any);\n graphic.name = graphicName;\n this.add(graphic);\n }\n\n return graphic;\n }\n\n clone() {\n return new Group({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Group.NOWORK_ANIMATE_ATTR;\n }\n\n release(all?: boolean) {\n if (all) {\n this.forEachChildren((g: IGraphic) => {\n g.release(all);\n });\n }\n super.release();\n }\n\n protected ensureSharedStateScopeBound(): void {\n const parentScope = (this.parent as any)?.sharedStateScope ?? this.stage?.rootSharedStateScope;\n if (!this.sharedStateScope) {\n this.sharedStateScope = createGroupSharedStateScope(this, parentScope, this._sharedStateDefinitions);\n return;\n }\n\n this.sharedStateScope.ownerGroup = this;\n this.sharedStateScope.ownerStage = this.stage;\n setSharedStateScopeParent(this.sharedStateScope, parentScope);\n\n if (this.sharedStateScope.localStateDefinitions !== this._sharedStateDefinitions) {\n setSharedStateScopeLocalDefinitions(this.sharedStateScope, this._sharedStateDefinitions);\n }\n }\n\n onParentSharedStateTreeChanged(stage?: IStage, layer?: ILayer): void {\n if (this.stage !== stage || this.layer !== layer) {\n this.setStage(stage, layer);\n return;\n }\n\n this.ensureSharedStateScopeBound();\n this.syncSharedStateScopeBindingFromTree();\n this.forEachChildren(item => {\n if ((item as any).onParentSharedStateTreeChanged) {\n (item as any).onParentSharedStateTreeChanged(stage, this.layer);\n }\n });\n }\n}\n\nexport function createGroup(attributes: IGroupGraphicAttribute): IGroup {\n return new Group(attributes);\n}\n"]}
@@ -37,6 +37,7 @@ export declare class Image extends Graphic<IImageGraphicAttribute> implements II
37
37
  cursor: number;
38
38
  html: number;
39
39
  image: number;
40
+ imageMode: number;
40
41
  repeatX: number;
41
42
  repeatY: number;
42
43
  };
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.createImage = exports.Image = void 0;
6
6
 
7
- const graphic_1 = require("./graphic"), config_1 = require("./config"), theme_1 = require("./theme"), modules_1 = require("../modules"), constants_1 = require("./constants"), common_outer_boder_bounds_1 = require("./graphic-service/common-outer-boder-bounds"), IMAGE_UPDATE_TAG_KEY = [ "width", "height", "image", ...graphic_1.GRAPHIC_UPDATE_TAG_KEY ];
7
+ const graphic_1 = require("./graphic"), config_1 = require("./config"), theme_1 = require("./theme"), application_1 = require("../application"), constants_1 = require("./constants"), common_outer_boder_bounds_1 = require("./graphic-service/common-outer-boder-bounds"), IMAGE_UPDATE_TAG_KEY = [ "width", "height", "image", "imageMode", "imagePosition", "imageScale", "imageOffsetX", "imageOffsetY", ...graphic_1.GRAPHIC_UPDATE_TAG_KEY ];
8
8
 
9
9
  class Image extends graphic_1.Graphic {
10
10
  constructor(params) {
@@ -79,10 +79,10 @@ class Image extends graphic_1.Graphic {
79
79
  }
80
80
  this._actualWidth = width, this._actualHeight = height, aabbBounds.set(0, 0, width, height);
81
81
  }
82
- const {tb1: tb1, tb2: tb2} = modules_1.graphicService.updateTempAABBBounds(aabbBounds);
82
+ const {tb1: tb1, tb2: tb2} = application_1.application.graphicService.updateTempAABBBounds(aabbBounds);
83
83
  return (0, common_outer_boder_bounds_1.updateBoundsOfCommonOuterBorder)(attribute, imageTheme, tb1),
84
84
  aabbBounds.union(tb1), tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2), this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1,
85
- this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1, modules_1.graphicService.transformAABBBounds(attribute, aabbBounds, imageTheme, !1, this),
85
+ this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1, application_1.application.graphicService.transformAABBBounds(attribute, aabbBounds, imageTheme, !1, this),
86
86
  aabbBounds;
87
87
  }
88
88
  getDefaultAttribute(name) {
@@ -108,6 +108,7 @@ function createImage(attributes) {
108
108
 
109
109
  exports.Image = Image, Image.NOWORK_ANIMATE_ATTR = Object.assign({
110
110
  image: 1,
111
+ imageMode: 1,
111
112
  repeatX: 1,
112
113
  repeatY: 1
113
114
  }, graphic_1.NOWORK_ANIMATE_ATTR), exports.createImage = createImage;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphic/image.ts"],"names":[],"mappings":"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","file":"image.js","sourcesContent":["import type { IAABBBounds } from '@visactor/vutils';\nimport type { IImage, IImageGraphicAttribute, IRepeatType, ISetAttributeContext } from '../interface';\nimport { Graphic, GRAPHIC_UPDATE_TAG_KEY, NOWORK_ANIMATE_ATTR } from './graphic';\nimport { DefaultImageAttribute } from './config';\nimport { getTheme } from './theme';\nimport { vglobal, graphicService } from '../modules';\nimport { IMAGE_NUMBER_TYPE } from './constants';\nimport { updateBoundsOfCommonOuterBorder } from './graphic-service/common-outer-boder-bounds';\n\nconst IMAGE_UPDATE_TAG_KEY = ['width', 'height', 'image', ...GRAPHIC_UPDATE_TAG_KEY];\n\n/**\n * TODO image 需要考虑加载问题 等load模块\n * 同时需要在Graphic增加 图片填充 or 图片按形状clip功能\n */\nexport class Image extends Graphic<IImageGraphicAttribute> implements IImage {\n type: 'image' = 'image';\n // 资源加载完成后回调,外部通过回调获取图片资源尺寸\n successCallback?: () => void;\n failCallback?: () => void;\n declare _actualWidth?: number;\n declare _actualHeight?: number;\n\n static NOWORK_ANIMATE_ATTR = {\n image: 1,\n repeatX: 1,\n repeatY: 1,\n ...NOWORK_ANIMATE_ATTR\n };\n\n constructor(params: IImageGraphicAttribute) {\n super(params);\n this.numberType = IMAGE_NUMBER_TYPE;\n\n this.loadImage(this.attribute.image);\n }\n\n getImageElement(): HTMLImageElement | HTMLCanvasElement | null {\n const { image } = this.attribute;\n if (!image || !this.resources) {\n return null;\n }\n const res = this.resources.get(image);\n if (res.state !== 'success') {\n return null;\n }\n return res.data;\n }\n\n get width(): number {\n this.tryUpdateAABBBounds();\n return this._actualWidth;\n }\n // set width(width: number) {\n // if (this.attribute.width === width) {\n // this.attribute.width = width;\n // this.addUpdateShapeAndBoundsTag();\n // }\n // }\n\n get height(): number {\n this.tryUpdateAABBBounds();\n return this._actualHeight;\n }\n // set height(height: number) {\n // if (this.attribute.height === height) {\n // this.attribute.height = height;\n // this.addUpdateShapeAndBoundsTag();\n // }\n // }\n get repeatX(): IRepeatType {\n return this.attribute.repeatX ?? 'no-repeat';\n }\n set repeatX(repeatX: IRepeatType) {\n if (this.attribute.repeatX === repeatX) {\n this.attribute.repeatX = repeatX;\n }\n }\n get repeatY(): IRepeatType {\n return this.attribute.repeatY ?? 'no-repeat';\n }\n set repeatY(repeatY: IRepeatType) {\n if (this.attribute.repeatY === repeatY) {\n this.attribute.repeatY = repeatY;\n }\n }\n get image(): string | HTMLImageElement | HTMLCanvasElement {\n return this.attribute.image;\n }\n set image(image: string | HTMLImageElement | HTMLCanvasElement) {\n if (image !== this.attribute.image) {\n this.attribute.image = image;\n this.loadImage(this.attribute.image);\n // this.addUpdateShapeAndBoundsTag();\n }\n }\n\n imageLoadSuccess(url: string, image: HTMLImageElement, cb?: () => void): void {\n super.imageLoadSuccess(url, image, () => {\n if (this.successCallback) {\n this.successCallback();\n }\n });\n this.addUpdateBoundTag();\n }\n\n imageLoadFail(url: string, cb?: () => void): void {\n super.imageLoadFail(url, () => {\n if (this.failCallback) {\n this.failCallback();\n }\n });\n }\n\n setAttributes(\n params: Partial<IImageGraphicAttribute>,\n forceUpdateTag?: boolean,\n context?: ISetAttributeContext\n ): void {\n if (params.image) {\n this.loadImage(params.image);\n }\n return super.setAttributes(params, forceUpdateTag, context);\n }\n\n setAttribute(key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext): void {\n if (key === 'image') {\n this.loadImage(value);\n }\n return super.setAttribute(key, value, forceUpdateTag, context);\n }\n\n getGraphicTheme(): Required<IImageGraphicAttribute> {\n return getTheme(this).image;\n }\n\n protected updateAABBBounds(\n attribute: IImageGraphicAttribute,\n imageTheme: Required<IImageGraphicAttribute>,\n aabbBounds: IAABBBounds\n ) {\n if (!this.updatePathProxyAABBBounds(aabbBounds)) {\n const { maxWidth = imageTheme.maxWidth, maxHeight = imageTheme.maxHeight } = attribute;\n let { width, height } = attribute;\n if (width == null || height == null) {\n const imageElement = this.getImageElement();\n if (imageElement) {\n // 如果给了width或者height,那就使用已给的width或者height来按比例缩放,否则就在maxWidth和maxHeight之间按比例缩放\n const imageWidth = imageElement.width;\n const imageHeight = imageElement.height;\n if (width != null) {\n height = width * (imageHeight / imageWidth);\n } else if (height != null) {\n width = height * (imageWidth / imageHeight);\n } else {\n // 如果width和height都没有给,那就使用maxWidth和maxHeight来按比例缩放\n const imageRatio = imageWidth / imageHeight;\n const maxWHRatio = maxWidth / maxHeight;\n if (imageRatio > maxWHRatio) {\n width = maxWidth;\n height = maxWidth / imageRatio;\n } else {\n height = maxHeight;\n width = maxHeight * imageRatio;\n }\n }\n } else {\n width = maxWidth;\n height = maxHeight;\n }\n }\n this._actualWidth = width;\n this._actualHeight = height;\n aabbBounds.set(0, 0, width, height);\n }\n\n const { tb1, tb2 } = graphicService.updateTempAABBBounds(aabbBounds);\n\n updateBoundsOfCommonOuterBorder(attribute, imageTheme, tb1);\n aabbBounds.union(tb1);\n tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2);\n\n this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1;\n this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;\n\n graphicService.transformAABBBounds(attribute, aabbBounds, imageTheme, false, this);\n return aabbBounds;\n }\n\n getDefaultAttribute(name: string) {\n return (DefaultImageAttribute as any)[name];\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n return super.needUpdateTags(keys, IMAGE_UPDATE_TAG_KEY);\n }\n protected needUpdateTag(key: string): boolean {\n return super.needUpdateTag(key, IMAGE_UPDATE_TAG_KEY);\n }\n\n clone() {\n return new Image({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Image.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createImage(attributes: IImageGraphicAttribute): IImage {\n return new Image(attributes);\n}\n"]}
1
+ {"version":3,"sources":["../src/graphic/image.ts"],"names":[],"mappings":"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","file":"image.js","sourcesContent":["import type { IAABBBounds } from '@visactor/vutils';\nimport type { IImage, IImageGraphicAttribute, IRepeatType, ISetAttributeContext } from '../interface';\nimport { Graphic, GRAPHIC_UPDATE_TAG_KEY, NOWORK_ANIMATE_ATTR } from './graphic';\nimport { DefaultImageAttribute } from './config';\nimport { getTheme } from './theme';\nimport { application } from '../application';\nimport { IMAGE_NUMBER_TYPE } from './constants';\nimport { updateBoundsOfCommonOuterBorder } from './graphic-service/common-outer-boder-bounds';\n\nconst IMAGE_UPDATE_TAG_KEY = [\n 'width',\n 'height',\n 'image',\n 'imageMode',\n 'imagePosition',\n 'imageScale',\n 'imageOffsetX',\n 'imageOffsetY',\n ...GRAPHIC_UPDATE_TAG_KEY\n];\n\n/**\n * TODO image 需要考虑加载问题 等load模块\n * 同时需要在Graphic增加 图片填充 or 图片按形状clip功能\n */\nexport class Image extends Graphic<IImageGraphicAttribute> implements IImage {\n type: 'image' = 'image';\n // 资源加载完成后回调,外部通过回调获取图片资源尺寸\n successCallback?: () => void;\n failCallback?: () => void;\n declare _actualWidth?: number;\n declare _actualHeight?: number;\n\n static NOWORK_ANIMATE_ATTR = {\n image: 1,\n imageMode: 1,\n repeatX: 1,\n repeatY: 1,\n ...NOWORK_ANIMATE_ATTR\n };\n\n constructor(params: IImageGraphicAttribute) {\n super(params);\n this.numberType = IMAGE_NUMBER_TYPE;\n\n this.loadImage(this.attribute.image);\n }\n\n getImageElement(): HTMLImageElement | HTMLCanvasElement | null {\n const { image } = this.attribute;\n if (!image || !this.resources) {\n return null;\n }\n const res = this.resources.get(image);\n if (res.state !== 'success') {\n return null;\n }\n return res.data;\n }\n\n get width(): number {\n this.tryUpdateAABBBounds();\n return this._actualWidth;\n }\n // set width(width: number) {\n // if (this.attribute.width === width) {\n // this.attribute.width = width;\n // this.addUpdateShapeAndBoundsTag();\n // }\n // }\n\n get height(): number {\n this.tryUpdateAABBBounds();\n return this._actualHeight;\n }\n // set height(height: number) {\n // if (this.attribute.height === height) {\n // this.attribute.height = height;\n // this.addUpdateShapeAndBoundsTag();\n // }\n // }\n get repeatX(): IRepeatType {\n return this.attribute.repeatX ?? 'no-repeat';\n }\n set repeatX(repeatX: IRepeatType) {\n if (this.attribute.repeatX === repeatX) {\n this.attribute.repeatX = repeatX;\n }\n }\n get repeatY(): IRepeatType {\n return this.attribute.repeatY ?? 'no-repeat';\n }\n set repeatY(repeatY: IRepeatType) {\n if (this.attribute.repeatY === repeatY) {\n this.attribute.repeatY = repeatY;\n }\n }\n get image(): string | HTMLImageElement | HTMLCanvasElement {\n return this.attribute.image;\n }\n set image(image: string | HTMLImageElement | HTMLCanvasElement) {\n if (image !== this.attribute.image) {\n this.attribute.image = image;\n this.loadImage(this.attribute.image);\n // this.addUpdateShapeAndBoundsTag();\n }\n }\n\n imageLoadSuccess(url: string, image: HTMLImageElement, cb?: () => void): void {\n super.imageLoadSuccess(url, image, () => {\n if (this.successCallback) {\n this.successCallback();\n }\n });\n this.addUpdateBoundTag();\n }\n\n imageLoadFail(url: string, cb?: () => void): void {\n super.imageLoadFail(url, () => {\n if (this.failCallback) {\n this.failCallback();\n }\n });\n }\n\n setAttributes(\n params: Partial<IImageGraphicAttribute>,\n forceUpdateTag?: boolean,\n context?: ISetAttributeContext\n ): void {\n if (params.image) {\n this.loadImage(params.image);\n }\n return super.setAttributes(params, forceUpdateTag, context);\n }\n\n setAttribute(key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext): void {\n if (key === 'image') {\n this.loadImage(value);\n }\n return super.setAttribute(key, value, forceUpdateTag, context);\n }\n\n getGraphicTheme(): Required<IImageGraphicAttribute> {\n return getTheme(this).image;\n }\n\n protected updateAABBBounds(\n attribute: IImageGraphicAttribute,\n imageTheme: Required<IImageGraphicAttribute>,\n aabbBounds: IAABBBounds\n ) {\n if (!this.updatePathProxyAABBBounds(aabbBounds)) {\n const { maxWidth = imageTheme.maxWidth, maxHeight = imageTheme.maxHeight } = attribute;\n let { width, height } = attribute;\n if (width == null || height == null) {\n const imageElement = this.getImageElement();\n if (imageElement) {\n // 如果给了width或者height,那就使用已给的width或者height来按比例缩放,否则就在maxWidth和maxHeight之间按比例缩放\n const imageWidth = imageElement.width;\n const imageHeight = imageElement.height;\n if (width != null) {\n height = width * (imageHeight / imageWidth);\n } else if (height != null) {\n width = height * (imageWidth / imageHeight);\n } else {\n // 如果width和height都没有给,那就使用maxWidth和maxHeight来按比例缩放\n const imageRatio = imageWidth / imageHeight;\n const maxWHRatio = maxWidth / maxHeight;\n if (imageRatio > maxWHRatio) {\n width = maxWidth;\n height = maxWidth / imageRatio;\n } else {\n height = maxHeight;\n width = maxHeight * imageRatio;\n }\n }\n } else {\n width = maxWidth;\n height = maxHeight;\n }\n }\n this._actualWidth = width;\n this._actualHeight = height;\n aabbBounds.set(0, 0, width, height);\n }\n\n const { tb1, tb2 } = application.graphicService.updateTempAABBBounds(aabbBounds);\n\n updateBoundsOfCommonOuterBorder(attribute, imageTheme, tb1);\n aabbBounds.union(tb1);\n tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2);\n\n this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1;\n this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;\n\n application.graphicService.transformAABBBounds(attribute, aabbBounds, imageTheme, false, this);\n return aabbBounds;\n }\n\n getDefaultAttribute(name: string) {\n return (DefaultImageAttribute as any)[name];\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n return super.needUpdateTags(keys, IMAGE_UPDATE_TAG_KEY);\n }\n protected needUpdateTag(key: string): boolean {\n return super.needUpdateTag(key, IMAGE_UPDATE_TAG_KEY);\n }\n\n clone() {\n return new Image({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Image.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createImage(attributes: IImageGraphicAttribute): IImage {\n return new Image(attributes);\n}\n"]}
@@ -28,3 +28,6 @@ export * from './bounds';
28
28
  export * from './theme';
29
29
  export * from './tools';
30
30
  export * from './constants';
31
+ export { StateEngine } from './state/state-engine';
32
+ export { StateDefinitionCompiler } from './state/state-definition-compiler';
33
+ export type { StateDefinition, CompiledStateDefinition, StateResolveContext, StateDefinitionsInput, StateTransitionResult, IStateEngineOptions } from './state/state-definition';
@@ -17,19 +17,38 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
17
17
 
18
18
  Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
- }), __exportStar(require("./node-tree"), exports), __exportStar(require("./circle"), exports),
21
- __exportStar(require("./text"), exports), __exportStar(require("./wrap-text"), exports),
22
- __exportStar(require("./symbol"), exports), __exportStar(require("./builtin-symbol"), exports),
23
- __exportStar(require("./line"), exports), __exportStar(require("./rect"), exports),
24
- __exportStar(require("./rect3d"), exports), __exportStar(require("./glyph"), exports),
25
- __exportStar(require("./richtext"), exports), __exportStar(require("./path"), exports),
26
- __exportStar(require("./area"), exports), __exportStar(require("./image"), exports),
27
- __exportStar(require("./arc"), exports), __exportStar(require("./star"), exports),
28
- __exportStar(require("./arc3d"), exports), __exportStar(require("./group"), exports),
29
- __exportStar(require("./polygon"), exports), __exportStar(require("./pyramid3d"), exports),
30
- __exportStar(require("./shadow-root"), exports), __exportStar(require("./config"), exports),
31
- __exportStar(require("./graphic-service/graphic-service"), exports), __exportStar(require("./graphic-creator"), exports),
32
- __exportStar(require("./builtin-symbol"), exports), __exportStar(require("./graphic"), exports),
33
- __exportStar(require("./bounds"), exports), __exportStar(require("./theme"), exports),
34
- __exportStar(require("./tools"), exports), __exportStar(require("./constants"), exports);
20
+ }), exports.StateDefinitionCompiler = exports.StateEngine = void 0, __exportStar(require("./node-tree"), exports),
21
+ __exportStar(require("./circle"), exports), __exportStar(require("./text"), exports),
22
+ __exportStar(require("./wrap-text"), exports), __exportStar(require("./symbol"), exports),
23
+ __exportStar(require("./builtin-symbol"), exports), __exportStar(require("./line"), exports),
24
+ __exportStar(require("./rect"), exports), __exportStar(require("./rect3d"), exports),
25
+ __exportStar(require("./glyph"), exports), __exportStar(require("./richtext"), exports),
26
+ __exportStar(require("./path"), exports), __exportStar(require("./area"), exports),
27
+ __exportStar(require("./image"), exports), __exportStar(require("./arc"), exports),
28
+ __exportStar(require("./star"), exports), __exportStar(require("./arc3d"), exports),
29
+ __exportStar(require("./group"), exports), __exportStar(require("./polygon"), exports),
30
+ __exportStar(require("./pyramid3d"), exports), __exportStar(require("./shadow-root"), exports),
31
+ __exportStar(require("./config"), exports), __exportStar(require("./graphic-service/graphic-service"), exports),
32
+ __exportStar(require("./graphic-creator"), exports), __exportStar(require("./builtin-symbol"), exports),
33
+ __exportStar(require("./graphic"), exports), __exportStar(require("./bounds"), exports),
34
+ __exportStar(require("./theme"), exports), __exportStar(require("./tools"), exports),
35
+ __exportStar(require("./constants"), exports);
36
+
37
+ var state_engine_1 = require("./state/state-engine");
38
+
39
+ Object.defineProperty(exports, "StateEngine", {
40
+ enumerable: !0,
41
+ get: function() {
42
+ return state_engine_1.StateEngine;
43
+ }
44
+ });
45
+
46
+ var state_definition_compiler_1 = require("./state/state-definition-compiler");
47
+
48
+ Object.defineProperty(exports, "StateDefinitionCompiler", {
49
+ enumerable: !0,
50
+ get: function() {
51
+ return state_definition_compiler_1.StateDefinitionCompiler;
52
+ }
53
+ });
35
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphic/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB;AACzB,yCAAuB;AACvB,8CAA4B;AAC5B,2CAAyB;AACzB,mDAAiC;AACjC,yCAAuB;AACvB,yCAAuB;AACvB,2CAAyB;AACzB,0CAAwB;AACxB,6CAA2B;AAC3B,yCAAuB;AACvB,yCAAuB;AACvB,0CAAwB;AACxB,wCAAsB;AACtB,yCAAuB;AACvB,0CAAwB;AACxB,0CAAwB;AACxB,4CAA0B;AAC1B,8CAA4B;AAC5B,gDAA8B;AAC9B,2CAAyB;AACzB,oEAAkD;AAClD,oDAAkC;AAClC,mDAAiC;AACjC,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AACxB,8CAA4B","file":"index.js","sourcesContent":["export * from './node-tree';\nexport * from './circle';\nexport * from './text';\nexport * from './wrap-text';\nexport * from './symbol';\nexport * from './builtin-symbol';\nexport * from './line';\nexport * from './rect';\nexport * from './rect3d';\nexport * from './glyph';\nexport * from './richtext';\nexport * from './path';\nexport * from './area';\nexport * from './image';\nexport * from './arc';\nexport * from './star';\nexport * from './arc3d';\nexport * from './group';\nexport * from './polygon';\nexport * from './pyramid3d';\nexport * from './shadow-root';\nexport * from './config';\nexport * from './graphic-service/graphic-service';\nexport * from './graphic-creator';\nexport * from './builtin-symbol';\nexport * from './graphic';\nexport * from './bounds';\nexport * from './theme';\nexport * from './tools';\nexport * from './constants';\n"]}
1
+ {"version":3,"sources":["../src/graphic/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB;AACzB,yCAAuB;AACvB,8CAA4B;AAC5B,2CAAyB;AACzB,mDAAiC;AACjC,yCAAuB;AACvB,yCAAuB;AACvB,2CAAyB;AACzB,0CAAwB;AACxB,6CAA2B;AAC3B,yCAAuB;AACvB,yCAAuB;AACvB,0CAAwB;AACxB,wCAAsB;AACtB,yCAAuB;AACvB,0CAAwB;AACxB,0CAAwB;AACxB,4CAA0B;AAC1B,8CAA4B;AAC5B,gDAA8B;AAC9B,2CAAyB;AACzB,oEAAkD;AAClD,oDAAkC;AAClC,mDAAiC;AACjC,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AACxB,8CAA4B;AAC5B,qDAAmD;AAA1C,2GAAA,WAAW,OAAA;AACpB,+EAA4E;AAAnE,oIAAA,uBAAuB,OAAA","file":"index.js","sourcesContent":["export * from './node-tree';\nexport * from './circle';\nexport * from './text';\nexport * from './wrap-text';\nexport * from './symbol';\nexport * from './builtin-symbol';\nexport * from './line';\nexport * from './rect';\nexport * from './rect3d';\nexport * from './glyph';\nexport * from './richtext';\nexport * from './path';\nexport * from './area';\nexport * from './image';\nexport * from './arc';\nexport * from './star';\nexport * from './arc3d';\nexport * from './group';\nexport * from './polygon';\nexport * from './pyramid3d';\nexport * from './shadow-root';\nexport * from './config';\nexport * from './graphic-service/graphic-service';\nexport * from './graphic-creator';\nexport * from './builtin-symbol';\nexport * from './graphic';\nexport * from './bounds';\nexport * from './theme';\nexport * from './tools';\nexport * from './constants';\nexport { StateEngine } from './state/state-engine';\nexport { StateDefinitionCompiler } from './state/state-definition-compiler';\nexport type {\n StateDefinition,\n CompiledStateDefinition,\n StateResolveContext,\n StateDefinitionsInput,\n StateTransitionResult,\n IStateEngineOptions\n} from './state/state-definition';\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.createLine = exports.Line = void 0;
6
6
 
7
- const graphic_1 = require("./graphic"), theme_1 = require("./theme"), modules_1 = require("../modules"), utils_1 = require("../common/utils"), custom_path2d_1 = require("../common/custom-path2d"), constants_1 = require("./constants"), LINE_UPDATE_TAG_KEY = [ "segments", "points", "curveType", "curveTension", ...graphic_1.GRAPHIC_UPDATE_TAG_KEY ];
7
+ const graphic_1 = require("./graphic"), theme_1 = require("./theme"), application_1 = require("../application"), utils_1 = require("../common/utils"), custom_path2d_1 = require("../common/custom-path2d"), constants_1 = require("./constants"), LINE_UPDATE_TAG_KEY = [ "segments", "points", "curveType", "curveTension", ...graphic_1.GRAPHIC_UPDATE_TAG_KEY ];
8
8
 
9
9
  class Line extends graphic_1.Graphic {
10
10
  constructor(params = {}) {
@@ -26,10 +26,10 @@ class Line extends graphic_1.Graphic {
26
26
  }
27
27
  updateAABBBounds(attribute, lineTheme, aabbBounds) {
28
28
  this.updatePathProxyAABBBounds(aabbBounds) || (attribute.segments ? this.updateLineAABBBoundsBySegments(attribute, lineTheme, aabbBounds) : this.updateLineAABBBoundsByPoints(attribute, lineTheme, aabbBounds)),
29
- modules_1.graphicService.updateTempAABBBounds(aabbBounds), this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1,
29
+ application_1.application.graphicService.updateTempAABBBounds(aabbBounds), this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1,
30
30
  this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;
31
31
  const {lineJoin: lineJoin = lineTheme.lineJoin} = attribute;
32
- return modules_1.graphicService.transformAABBBounds(attribute, aabbBounds, lineTheme, "miter" === lineJoin, this),
32
+ return application_1.application.graphicService.transformAABBBounds(attribute, aabbBounds, lineTheme, "miter" === lineJoin, this),
33
33
  aabbBounds;
34
34
  }
35
35
  updateLineAABBBoundsByPoints(attribute, lineTheme, aabbBounds, graphic) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphic/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["import type { IAABBBounds, IPointLike } from '@visactor/vutils';\nimport type { ILine, ILineGraphicAttribute } from '../interface';\nimport { Graphic, GRAPHIC_UPDATE_TAG_KEY, NOWORK_ANIMATE_ATTR } from './graphic';\nimport { getTheme } from './theme';\nimport { vglobal, graphicService } from '../modules';\nimport { pointsInterpolation } from '../common/utils';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport { LINE_NUMBER_TYPE } from './constants';\n\nconst LINE_UPDATE_TAG_KEY = ['segments', 'points', 'curveType', 'curveTension', ...GRAPHIC_UPDATE_TAG_KEY];\n\nexport class Line extends Graphic<ILineGraphicAttribute> implements ILine {\n type: 'line' = 'line';\n\n constructor(params: ILineGraphicAttribute = {}) {\n super(params);\n this.numberType = LINE_NUMBER_TYPE;\n }\n\n static NOWORK_ANIMATE_ATTR = {\n segments: 1,\n curveType: 1,\n ...NOWORK_ANIMATE_ATTR\n };\n\n isValid(): boolean {\n return super.isValid() && this._isValid();\n }\n private _isValid(): boolean {\n if (this.pathProxy) {\n return true;\n }\n const { points, segments } = this.attribute;\n if (segments) {\n if (segments.length === 0) {\n return false;\n }\n return true;\n } else if (points) {\n if (points.length <= 1) {\n return false;\n }\n return true;\n }\n return false;\n }\n\n protected _interpolate(key: string, ratio: number, lastStepVal: any, nextStepVal: any, nextAttributes: any): void {\n if (key === 'points') {\n (nextAttributes as any).points = pointsInterpolation(lastStepVal, nextStepVal, ratio);\n }\n }\n\n getGraphicTheme(): Required<ILineGraphicAttribute> {\n return getTheme(this).line;\n }\n\n protected updateAABBBounds(\n attribute: ILineGraphicAttribute,\n lineTheme: Required<ILineGraphicAttribute>,\n aabbBounds: IAABBBounds\n ) {\n if (!this.updatePathProxyAABBBounds(aabbBounds)) {\n attribute.segments\n ? this.updateLineAABBBoundsBySegments(attribute, lineTheme, aabbBounds)\n : this.updateLineAABBBoundsByPoints(attribute, lineTheme, aabbBounds);\n }\n\n graphicService.updateTempAABBBounds(aabbBounds);\n\n this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1;\n this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;\n\n const { lineJoin = lineTheme.lineJoin } = attribute;\n graphicService.transformAABBBounds(attribute, aabbBounds, lineTheme, lineJoin === 'miter', this);\n return aabbBounds;\n }\n\n protected updateLineAABBBoundsByPoints(\n attribute: ILineGraphicAttribute,\n lineTheme: Required<ILineGraphicAttribute>,\n aabbBounds: IAABBBounds,\n graphic?: ILine\n ): IAABBBounds {\n const { points = lineTheme.points, connectedType } = attribute;\n const b = aabbBounds;\n points.forEach(p => {\n if (p.defined !== false || connectedType === 'connect') {\n b.add(p.x, p.y);\n }\n });\n return b;\n }\n protected updateLineAABBBoundsBySegments(\n attribute: ILineGraphicAttribute,\n lineTheme: Required<ILineGraphicAttribute>,\n aabbBounds: IAABBBounds,\n graphic?: ILine\n ): IAABBBounds {\n const { segments = lineTheme.segments, connectedType } = attribute;\n const b = aabbBounds;\n segments.forEach(s => {\n s.points.forEach(p => {\n if (p.defined !== false || connectedType === 'connect') {\n b.add(p.x, p.y);\n }\n });\n });\n return b;\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n return super.needUpdateTags(keys, LINE_UPDATE_TAG_KEY);\n }\n protected needUpdateTag(key: string): boolean {\n return super.needUpdateTag(key, LINE_UPDATE_TAG_KEY);\n }\n\n toCustomPath() {\n let path = super.toCustomPath();\n if (path) {\n return path;\n }\n const attribute = this.attribute;\n path = new CustomPath2D();\n const segments = attribute.segments;\n\n const parsePoints = (points: IPointLike[]) => {\n if (points && points.length) {\n let isFirst = true;\n points.forEach(point => {\n if (point.defined === false) {\n return;\n }\n if (isFirst) {\n path.moveTo(point.x, point.y);\n } else {\n path.lineTo(point.x, point.y);\n }\n\n isFirst = false;\n });\n }\n };\n\n if (segments && segments.length) {\n segments.forEach(seg => {\n parsePoints(seg.points);\n });\n } else if (attribute.points) {\n parsePoints(attribute.points);\n }\n\n return path;\n }\n\n clone() {\n return new Line({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Line.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createLine(attributes: ILineGraphicAttribute): ILine {\n return new Line(attributes);\n}\n\n// addAttributeToPrototype(DefaultLineStyle, Line, PURE_STYLE_KEY);\n"]}
1
+ {"version":3,"sources":["../src/graphic/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["import type { IAABBBounds, IPointLike } from '@visactor/vutils';\nimport type { ILine, ILineGraphicAttribute } from '../interface';\nimport { Graphic, GRAPHIC_UPDATE_TAG_KEY, NOWORK_ANIMATE_ATTR } from './graphic';\nimport { getTheme } from './theme';\nimport { application } from '../application';\nimport { pointsInterpolation } from '../common/utils';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport { LINE_NUMBER_TYPE } from './constants';\n\nconst LINE_UPDATE_TAG_KEY = ['segments', 'points', 'curveType', 'curveTension', ...GRAPHIC_UPDATE_TAG_KEY];\n\nexport class Line extends Graphic<ILineGraphicAttribute> implements ILine {\n type: 'line' = 'line';\n\n constructor(params: ILineGraphicAttribute = {}) {\n super(params);\n this.numberType = LINE_NUMBER_TYPE;\n }\n\n static NOWORK_ANIMATE_ATTR = {\n segments: 1,\n curveType: 1,\n ...NOWORK_ANIMATE_ATTR\n };\n\n isValid(): boolean {\n return super.isValid() && this._isValid();\n }\n private _isValid(): boolean {\n if (this.pathProxy) {\n return true;\n }\n const { points, segments } = this.attribute;\n if (segments) {\n if (segments.length === 0) {\n return false;\n }\n return true;\n } else if (points) {\n if (points.length <= 1) {\n return false;\n }\n return true;\n }\n return false;\n }\n\n protected _interpolate(key: string, ratio: number, lastStepVal: any, nextStepVal: any, nextAttributes: any): void {\n if (key === 'points') {\n (nextAttributes as any).points = pointsInterpolation(lastStepVal, nextStepVal, ratio);\n }\n }\n\n getGraphicTheme(): Required<ILineGraphicAttribute> {\n return getTheme(this).line;\n }\n\n protected updateAABBBounds(\n attribute: ILineGraphicAttribute,\n lineTheme: Required<ILineGraphicAttribute>,\n aabbBounds: IAABBBounds\n ) {\n if (!this.updatePathProxyAABBBounds(aabbBounds)) {\n attribute.segments\n ? this.updateLineAABBBoundsBySegments(attribute, lineTheme, aabbBounds)\n : this.updateLineAABBBoundsByPoints(attribute, lineTheme, aabbBounds);\n }\n\n application.graphicService.updateTempAABBBounds(aabbBounds);\n\n this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1;\n this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;\n\n const { lineJoin = lineTheme.lineJoin } = attribute;\n application.graphicService.transformAABBBounds(attribute, aabbBounds, lineTheme, lineJoin === 'miter', this);\n return aabbBounds;\n }\n\n protected updateLineAABBBoundsByPoints(\n attribute: ILineGraphicAttribute,\n lineTheme: Required<ILineGraphicAttribute>,\n aabbBounds: IAABBBounds,\n graphic?: ILine\n ): IAABBBounds {\n const { points = lineTheme.points, connectedType } = attribute;\n const b = aabbBounds;\n points.forEach(p => {\n if (p.defined !== false || connectedType === 'connect') {\n b.add(p.x, p.y);\n }\n });\n return b;\n }\n protected updateLineAABBBoundsBySegments(\n attribute: ILineGraphicAttribute,\n lineTheme: Required<ILineGraphicAttribute>,\n aabbBounds: IAABBBounds,\n graphic?: ILine\n ): IAABBBounds {\n const { segments = lineTheme.segments, connectedType } = attribute;\n const b = aabbBounds;\n segments.forEach(s => {\n s.points.forEach(p => {\n if (p.defined !== false || connectedType === 'connect') {\n b.add(p.x, p.y);\n }\n });\n });\n return b;\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n return super.needUpdateTags(keys, LINE_UPDATE_TAG_KEY);\n }\n protected needUpdateTag(key: string): boolean {\n return super.needUpdateTag(key, LINE_UPDATE_TAG_KEY);\n }\n\n toCustomPath() {\n let path = super.toCustomPath();\n if (path) {\n return path;\n }\n const attribute = this.attribute;\n path = new CustomPath2D();\n const segments = attribute.segments;\n\n const parsePoints = (points: IPointLike[]) => {\n if (points && points.length) {\n let isFirst = true;\n points.forEach(point => {\n if (point.defined === false) {\n return;\n }\n if (isFirst) {\n path.moveTo(point.x, point.y);\n } else {\n path.lineTo(point.x, point.y);\n }\n\n isFirst = false;\n });\n }\n };\n\n if (segments && segments.length) {\n segments.forEach(seg => {\n parsePoints(seg.points);\n });\n } else if (attribute.points) {\n parsePoints(attribute.points);\n }\n\n return path;\n }\n\n clone() {\n return new Line({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Line.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createLine(attributes: ILineGraphicAttribute): ILine {\n return new Line(attributes);\n}\n\n// addAttributeToPrototype(DefaultLineStyle, Line, PURE_STYLE_KEY);\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.createPath = exports.Path = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), graphic_1 = require("./graphic"), custom_path2d_1 = require("../common/custom-path2d"), theme_1 = require("./theme"), modules_1 = require("../modules"), constants_1 = require("./constants"), common_outer_boder_bounds_1 = require("./graphic-service/common-outer-boder-bounds"), PATH_UPDATE_TAG_KEY = [ "path", "customPath", ...graphic_1.GRAPHIC_UPDATE_TAG_KEY ];
7
+ const vutils_1 = require("@visactor/vutils"), graphic_1 = require("./graphic"), custom_path2d_1 = require("../common/custom-path2d"), theme_1 = require("./theme"), application_1 = require("../application"), constants_1 = require("./constants"), common_outer_boder_bounds_1 = require("./graphic-service/common-outer-boder-bounds"), PATH_UPDATE_TAG_KEY = [ "path", "customPath", ...graphic_1.GRAPHIC_UPDATE_TAG_KEY ];
8
8
 
9
9
  class Path extends graphic_1.Graphic {
10
10
  constructor(params) {
@@ -35,12 +35,12 @@ class Path extends graphic_1.Graphic {
35
35
  const pathShape = this.getParsedPathShape();
36
36
  aabbBounds.union(pathShape.getBounds());
37
37
  }
38
- const {tb1: tb1, tb2: tb2} = modules_1.graphicService.updateTempAABBBounds(aabbBounds);
38
+ const {tb1: tb1, tb2: tb2} = application_1.application.graphicService.updateTempAABBBounds(aabbBounds);
39
39
  (0, common_outer_boder_bounds_1.updateBoundsOfCommonOuterBorder)(attribute, pathTheme, tb1),
40
40
  aabbBounds.union(tb1), tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2), this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1,
41
41
  this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;
42
42
  const {lineJoin: lineJoin = pathTheme.lineJoin} = attribute;
43
- return modules_1.graphicService.transformAABBBounds(attribute, aabbBounds, pathTheme, "miter" === lineJoin, this),
43
+ return application_1.application.graphicService.transformAABBBounds(attribute, aabbBounds, pathTheme, "miter" === lineJoin, this),
44
44
  aabbBounds;
45
45
  }
46
46
  doUpdateAABBBounds(full) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphic/path.ts"],"names":[],"mappings":";;;AACA,6CAAmD;AACnD,uCAAiF;AAEjF,2DAAuD;AACvD,mCAAmC;AACnC,wCAAqD;AACrD,2CAA+C;AAC/C,2FAA8F;AAE9F,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,gCAAsB,CAAC,CAAC;AAE9E,MAAa,IAAK,SAAQ,iBAA8B;IAUtD,YAAY,MAA6B;QACvC,KAAK,CAAC,MAAM,CAAC,CAAC;QAVhB,SAAI,GAAW,MAAM,CAAC;QAWpB,IAAI,CAAC,UAAU,GAAG,4BAAgB,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;IACO,QAAQ;QACd,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,kBAAkB;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,SAAS,CAAC,IAAoB,CAAC;SACvC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,CAAC,IAAI,YAAY,4BAAY,EAAE;YAC1C,OAAO,SAAS,CAAC,IAAI,CAAC;SACvB;QAED,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QAED,IAAI,IAAI,CAAC,KAAK,YAAY,4BAAY,EAAE;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;QACD,OAAO,SAAS,CAAC,IAAoB,CAAC;IACxC,CAAC;IAED,eAAe;QACb,OAAO,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAC7B,CAAC;IAES,gBAAgB,CACxB,SAAgC,EAChC,SAA0C,EAC1C,UAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE;YAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;SACzC;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,wBAAc,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAErE,IAAA,2DAA+B,EAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAC3D,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAE7C,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAE5D,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC;QACpD,wBAAc,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,KAAK,OAAO,EAAE,IAAI,CAAC,CAAC;QACjG,OAAO,UAAU,CAAC;IACpB,CAAC;IAES,kBAAkB,CAAC,IAAc;QACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAES,iBAAiB;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,IAAA,iBAAQ,EAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;YAClC,IAAI,CAAC,KAAK,GAAG,IAAI,4BAAY,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAc,CAAC,CAAC;SACtE;aAAM,IAAI,SAAS,CAAC,UAAU,EAAE;YAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,4BAAY,EAAE,CAAC;YAChC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACxC;IACH,CAAC;IAES,cAAc,CAAC,IAAc;QACrC,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACzD,CAAC;IACS,aAAa,CAAC,GAAW;QACjC,OAAO,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACvD,CAAC;IAED,YAAY;QACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,CAAC;QAEZ,OAAO,IAAI,4BAAY,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK;QACH,OAAO,IAAI,IAAI,mBAAM,IAAI,CAAC,SAAS,EAAG,CAAC;IACzC,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;;AA/GH,oBAgHC;AA5GQ,wBAAmB,mBACxB,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,CAAC,IACV,6BAAmB,EACtB;AA0GJ,SAAgB,UAAU,CAAC,UAAiC;IAC1D,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAFD,gCAEC","file":"path.js","sourcesContent":["import type { IAABBBounds } from '@visactor/vutils';\nimport { isString, isNil } from '@visactor/vutils';\nimport { Graphic, GRAPHIC_UPDATE_TAG_KEY, NOWORK_ANIMATE_ATTR } from './graphic';\nimport type { ICustomPath2D, IPath, IPathGraphicAttribute } from '../interface';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport { getTheme } from './theme';\nimport { vglobal, graphicService } from '../modules';\nimport { PATH_NUMBER_TYPE } from './constants';\nimport { updateBoundsOfCommonOuterBorder } from './graphic-service/common-outer-boder-bounds';\n\nconst PATH_UPDATE_TAG_KEY = ['path', 'customPath', ...GRAPHIC_UPDATE_TAG_KEY];\n\nexport class Path extends Graphic<IPathGraphicAttribute> implements IPath {\n type: 'path' = 'path';\n cache?: ICustomPath2D;\n\n static NOWORK_ANIMATE_ATTR = {\n path: 1,\n customPath: 1,\n ...NOWORK_ANIMATE_ATTR\n };\n\n constructor(params: IPathGraphicAttribute) {\n super(params);\n this.numberType = PATH_NUMBER_TYPE;\n }\n\n get pathShape(): ICustomPath2D {\n this.tryUpdateAABBBounds();\n return this.getParsedPathShape();\n }\n\n isValid(): boolean {\n return super.isValid() && this._isValid();\n }\n private _isValid(): boolean {\n const { path } = this.attribute;\n return path != null && path !== '';\n }\n\n getParsedPathShape(): CustomPath2D {\n const pathTheme = this.getGraphicTheme();\n if (!this.valid) {\n return pathTheme.path as CustomPath2D;\n }\n const attribute = this.attribute;\n if (attribute.path instanceof CustomPath2D) {\n return attribute.path;\n }\n\n if (isNil(this.cache)) {\n this.doUpdatePathShape();\n }\n\n if (this.cache instanceof CustomPath2D) {\n return this.cache;\n }\n return pathTheme.path as CustomPath2D;\n }\n\n getGraphicTheme(): Required<IPathGraphicAttribute> {\n return getTheme(this).path;\n }\n\n protected updateAABBBounds(\n attribute: IPathGraphicAttribute,\n pathTheme: Required<IPathGraphicAttribute>,\n aabbBounds: IAABBBounds\n ) {\n if (!this.updatePathProxyAABBBounds(aabbBounds)) {\n const pathShape = this.getParsedPathShape();\n aabbBounds.union(pathShape.getBounds());\n }\n\n const { tb1, tb2 } = graphicService.updateTempAABBBounds(aabbBounds);\n\n updateBoundsOfCommonOuterBorder(attribute, pathTheme, tb1);\n aabbBounds.union(tb1);\n tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2);\n\n this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1;\n this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;\n\n const { lineJoin = pathTheme.lineJoin } = attribute;\n graphicService.transformAABBBounds(attribute, aabbBounds, pathTheme, lineJoin === 'miter', this);\n return aabbBounds;\n }\n\n protected doUpdateAABBBounds(full?: boolean) {\n this.doUpdatePathShape();\n return super.doUpdateAABBBounds(full);\n }\n\n protected doUpdatePathShape() {\n const attribute = this.attribute;\n if (isString(attribute.path, true)) {\n this.cache = new CustomPath2D().fromString(attribute.path as string);\n } else if (attribute.customPath) {\n this.cache = new CustomPath2D();\n attribute.customPath(this.cache, this);\n }\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n return super.needUpdateTags(keys, PATH_UPDATE_TAG_KEY);\n }\n protected needUpdateTag(key: string): boolean {\n return super.needUpdateTag(key, PATH_UPDATE_TAG_KEY);\n }\n\n toCustomPath() {\n const x = 0;\n const y = 0;\n\n return new CustomPath2D().fromCustomPath2D(this.getParsedPathShape(), x, y);\n }\n\n clone() {\n return new Path({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Path.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createPath(attributes: IPathGraphicAttribute): IPath {\n return new Path(attributes);\n}\n"]}
1
+ {"version":3,"sources":["../src/graphic/path.ts"],"names":[],"mappings":"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","file":"path.js","sourcesContent":["import type { IAABBBounds } from '@visactor/vutils';\nimport { isString, isNil } from '@visactor/vutils';\nimport { Graphic, GRAPHIC_UPDATE_TAG_KEY, NOWORK_ANIMATE_ATTR } from './graphic';\nimport type { ICustomPath2D, IPath, IPathGraphicAttribute } from '../interface';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport { getTheme } from './theme';\nimport { application } from '../application';\nimport { PATH_NUMBER_TYPE } from './constants';\nimport { updateBoundsOfCommonOuterBorder } from './graphic-service/common-outer-boder-bounds';\n\nconst PATH_UPDATE_TAG_KEY = ['path', 'customPath', ...GRAPHIC_UPDATE_TAG_KEY];\n\nexport class Path extends Graphic<IPathGraphicAttribute> implements IPath {\n type: 'path' = 'path';\n cache?: ICustomPath2D;\n\n static NOWORK_ANIMATE_ATTR = {\n path: 1,\n customPath: 1,\n ...NOWORK_ANIMATE_ATTR\n };\n\n constructor(params: IPathGraphicAttribute) {\n super(params);\n this.numberType = PATH_NUMBER_TYPE;\n }\n\n get pathShape(): ICustomPath2D {\n this.tryUpdateAABBBounds();\n return this.getParsedPathShape();\n }\n\n isValid(): boolean {\n return super.isValid() && this._isValid();\n }\n private _isValid(): boolean {\n const { path } = this.attribute;\n return path != null && path !== '';\n }\n\n getParsedPathShape(): CustomPath2D {\n const pathTheme = this.getGraphicTheme();\n if (!this.valid) {\n return pathTheme.path as CustomPath2D;\n }\n const attribute = this.attribute;\n if (attribute.path instanceof CustomPath2D) {\n return attribute.path;\n }\n\n if (isNil(this.cache)) {\n this.doUpdatePathShape();\n }\n\n if (this.cache instanceof CustomPath2D) {\n return this.cache;\n }\n return pathTheme.path as CustomPath2D;\n }\n\n getGraphicTheme(): Required<IPathGraphicAttribute> {\n return getTheme(this).path;\n }\n\n protected updateAABBBounds(\n attribute: IPathGraphicAttribute,\n pathTheme: Required<IPathGraphicAttribute>,\n aabbBounds: IAABBBounds\n ) {\n if (!this.updatePathProxyAABBBounds(aabbBounds)) {\n const pathShape = this.getParsedPathShape();\n aabbBounds.union(pathShape.getBounds());\n }\n\n const { tb1, tb2 } = application.graphicService.updateTempAABBBounds(aabbBounds);\n\n updateBoundsOfCommonOuterBorder(attribute, pathTheme, tb1);\n aabbBounds.union(tb1);\n tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2);\n\n this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1;\n this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;\n\n const { lineJoin = pathTheme.lineJoin } = attribute;\n application.graphicService.transformAABBBounds(attribute, aabbBounds, pathTheme, lineJoin === 'miter', this);\n return aabbBounds;\n }\n\n protected doUpdateAABBBounds(full?: boolean) {\n this.doUpdatePathShape();\n return super.doUpdateAABBBounds(full);\n }\n\n protected doUpdatePathShape() {\n const attribute = this.attribute;\n if (isString(attribute.path, true)) {\n this.cache = new CustomPath2D().fromString(attribute.path as string);\n } else if (attribute.customPath) {\n this.cache = new CustomPath2D();\n attribute.customPath(this.cache, this);\n }\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n return super.needUpdateTags(keys, PATH_UPDATE_TAG_KEY);\n }\n protected needUpdateTag(key: string): boolean {\n return super.needUpdateTag(key, PATH_UPDATE_TAG_KEY);\n }\n\n toCustomPath() {\n const x = 0;\n const y = 0;\n\n return new CustomPath2D().fromCustomPath2D(this.getParsedPathShape(), x, y);\n }\n\n clone() {\n return new Path({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Path.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createPath(attributes: IPathGraphicAttribute): IPath {\n return new Path(attributes);\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.createPolygon = exports.Polygon = void 0;
6
6
 
7
- const graphic_1 = require("./graphic"), theme_1 = require("./theme"), utils_1 = require("../common/utils"), custom_path2d_1 = require("../common/custom-path2d"), modules_1 = require("../modules"), constants_1 = require("./constants"), POLYGON_UPDATE_TAG_KEY = [ "points", "cornerRadius", ...graphic_1.GRAPHIC_UPDATE_TAG_KEY ];
7
+ const graphic_1 = require("./graphic"), theme_1 = require("./theme"), utils_1 = require("../common/utils"), custom_path2d_1 = require("../common/custom-path2d"), application_1 = require("../application"), constants_1 = require("./constants"), POLYGON_UPDATE_TAG_KEY = [ "points", "cornerRadius", ...graphic_1.GRAPHIC_UPDATE_TAG_KEY ];
8
8
 
9
9
  class Polygon extends graphic_1.Graphic {
10
10
  constructor(params) {
@@ -22,10 +22,10 @@ class Polygon extends graphic_1.Graphic {
22
22
  }
23
23
  updateAABBBounds(attribute, polygonTheme, aabbBounds) {
24
24
  this.updatePathProxyAABBBounds(aabbBounds) || this.updatePolygonAABBBoundsImprecise(attribute, polygonTheme, aabbBounds),
25
- modules_1.graphicService.updateTempAABBBounds(aabbBounds), this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1,
25
+ application_1.application.graphicService.updateTempAABBBounds(aabbBounds), this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1,
26
26
  this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;
27
27
  const {lineJoin: lineJoin = polygonTheme.lineJoin} = attribute;
28
- return modules_1.graphicService.transformAABBBounds(attribute, aabbBounds, polygonTheme, "miter" === lineJoin, this),
28
+ return application_1.application.graphicService.transformAABBBounds(attribute, aabbBounds, polygonTheme, "miter" === lineJoin, this),
29
29
  aabbBounds;
30
30
  }
31
31
  updatePolygonAABBBoundsImprecise(attribute, polygonTheme, aabbBounds) {