@visactor/vrender-core 1.1.0-alpha.8 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/cjs/allocator/graphic-allocate.js +1 -2
  2. package/cjs/canvas/constants.js +2 -1
  3. package/cjs/common/color-utils.js +1 -2
  4. package/cjs/common/event-transformer.js +2 -1
  5. package/cjs/common/module-guard.d.ts +1 -0
  6. package/cjs/common/module-guard.js +11 -0
  7. package/cjs/common/module-guard.js.map +1 -0
  8. package/cjs/common/rect-utils.js +1 -1
  9. package/cjs/common/render-area.js +1 -2
  10. package/cjs/common/render-command-list.js +1 -1
  11. package/cjs/common/render-curve.js +1 -1
  12. package/cjs/common/render-utils.js +1 -1
  13. package/cjs/common/seg-context.js +1 -1
  14. package/cjs/common/simplify.js +1 -1
  15. package/cjs/common/sort.js +1 -1
  16. package/cjs/common/split-path.js +1 -1
  17. package/cjs/common/xml/is-xml.d.ts +2 -0
  18. package/cjs/common/xml/is-xml.js +14 -0
  19. package/cjs/common/xml/is-xml.js.map +1 -0
  20. package/cjs/common/xml/parser.d.ts +2 -2
  21. package/cjs/common/xml/parser.js +14 -11
  22. package/cjs/common/xml/parser.js.map +1 -1
  23. package/cjs/container.d.ts +2 -0
  24. package/cjs/container.js +50 -0
  25. package/cjs/container.js.map +1 -0
  26. package/cjs/core/camera.js +1 -1
  27. package/cjs/core/constants.js +1 -1
  28. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +1 -0
  29. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  30. package/cjs/core/core-modules.js +1 -1
  31. package/cjs/core/global.js +1 -1
  32. package/cjs/core/graphic-utils.js +1 -1
  33. package/cjs/core/index.js +1 -1
  34. package/cjs/core/layer-service.js +2 -1
  35. package/cjs/core/layer.js +1 -1
  36. package/cjs/core/light.js +1 -1
  37. package/cjs/core/stage.d.ts +2 -8
  38. package/cjs/core/stage.js +22 -28
  39. package/cjs/core/stage.js.map +1 -1
  40. package/cjs/core/window.js +1 -1
  41. package/cjs/entries/miniapp.d.ts +0 -1
  42. package/cjs/entries/miniapp.js +1 -5
  43. package/cjs/entries/miniapp.js.map +1 -1
  44. package/cjs/entries/node.d.ts +0 -1
  45. package/cjs/entries/node.js +1 -5
  46. package/cjs/entries/node.js.map +1 -1
  47. package/cjs/entries/runtime-installer.js +35 -9
  48. package/cjs/entries/runtime-installer.js.map +1 -1
  49. package/cjs/env.d.ts +1 -0
  50. package/cjs/env.js +25 -0
  51. package/cjs/env.js.map +1 -0
  52. package/cjs/event/public-constant.d.ts +7 -0
  53. package/cjs/event/public-constant.js +100 -0
  54. package/cjs/event/public-constant.js.map +1 -0
  55. package/cjs/event/util.d.ts +1 -1
  56. package/cjs/graphic/arc.js +6 -4
  57. package/cjs/graphic/arc.js.map +1 -1
  58. package/cjs/graphic/base.d.ts +2 -0
  59. package/cjs/graphic/base.js +15 -0
  60. package/cjs/graphic/base.js.map +1 -0
  61. package/cjs/graphic/config.js +1 -0
  62. package/cjs/graphic/config.js.map +1 -1
  63. package/cjs/graphic/creator.d.ts +16 -0
  64. package/cjs/graphic/creator.js +160 -0
  65. package/cjs/graphic/creator.js.map +1 -0
  66. package/cjs/graphic/glyph.js +4 -8
  67. package/cjs/graphic/glyph.js.map +1 -1
  68. package/cjs/graphic/graphic-service/graphic-service.d.ts +4 -1
  69. package/cjs/graphic/graphic-service/graphic-service.js +7 -13
  70. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  71. package/cjs/graphic/graphic.d.ts +74 -24
  72. package/cjs/graphic/graphic.js +474 -212
  73. package/cjs/graphic/graphic.js.map +1 -1
  74. package/cjs/graphic/group.d.ts +5 -3
  75. package/cjs/graphic/group.js +44 -31
  76. package/cjs/graphic/group.js.map +1 -1
  77. package/cjs/graphic/modules.d.ts +16 -0
  78. package/cjs/graphic/modules.js +150 -0
  79. package/cjs/graphic/modules.js.map +1 -0
  80. package/cjs/graphic/node-tree.d.ts +3 -3
  81. package/cjs/graphic/node-tree.js +1 -0
  82. package/cjs/graphic/node-tree.js.map +1 -1
  83. package/cjs/graphic/state/shared-state-refresh.js +11 -31
  84. package/cjs/graphic/state/shared-state-refresh.js.map +1 -1
  85. package/cjs/graphic/state/shared-state-scope.d.ts +2 -5
  86. package/cjs/graphic/state/shared-state-scope.js +8 -27
  87. package/cjs/graphic/state/shared-state-scope.js.map +1 -1
  88. package/cjs/graphic/state/state-definition-compiler.js +4 -5
  89. package/cjs/graphic/state/state-definition-compiler.js.map +1 -1
  90. package/cjs/graphic/state/state-definition.d.ts +2 -5
  91. package/cjs/graphic/state/state-definition.js.map +1 -1
  92. package/cjs/graphic/state/state-engine.d.ts +0 -5
  93. package/cjs/graphic/state/state-engine.js +21 -70
  94. package/cjs/graphic/state/state-engine.js.map +1 -1
  95. package/cjs/graphic/state/state-transition-orchestrator.d.ts +7 -9
  96. package/cjs/graphic/state/state-transition-orchestrator.js +10 -13
  97. package/cjs/graphic/state/state-transition-orchestrator.js.map +1 -1
  98. package/cjs/graphic/tools.js +2 -2
  99. package/cjs/graphic/tools.js.map +1 -1
  100. package/cjs/index.js.map +1 -1
  101. package/cjs/interface/animation/animate.d.ts +1 -0
  102. package/cjs/interface/animation/animate.js.map +1 -1
  103. package/cjs/interface/global.d.ts +8 -4
  104. package/cjs/interface/global.js.map +1 -1
  105. package/cjs/interface/graphic/arc.d.ts +1 -0
  106. package/cjs/interface/graphic/arc.js.map +1 -1
  107. package/cjs/interface/graphic/group.d.ts +0 -2
  108. package/cjs/interface/graphic/group.js.map +1 -1
  109. package/cjs/interface/graphic.d.ts +10 -5
  110. package/cjs/interface/graphic.js.map +1 -1
  111. package/cjs/interface/index.js.map +1 -1
  112. package/cjs/interface/node-tree.d.ts +3 -0
  113. package/cjs/interface/node-tree.js.map +1 -1
  114. package/cjs/interface/stage.d.ts +0 -7
  115. package/cjs/interface/stage.js.map +1 -1
  116. package/cjs/interpolate.d.ts +2 -0
  117. package/cjs/interpolate.js +34 -0
  118. package/cjs/interpolate.js.map +1 -0
  119. package/cjs/modules.js.map +1 -1
  120. package/cjs/path.d.ts +4 -0
  121. package/cjs/path.js +33 -0
  122. package/cjs/path.js.map +1 -0
  123. package/cjs/plugin/3d.d.ts +3 -0
  124. package/cjs/plugin/3d.js +33 -0
  125. package/cjs/plugin/3d.js.map +1 -0
  126. package/cjs/plugin/attribute.d.ts +2 -0
  127. package/cjs/plugin/attribute.js +24 -0
  128. package/cjs/plugin/attribute.js.map +1 -0
  129. package/cjs/plugin/flex-layout.d.ts +1 -0
  130. package/cjs/plugin/flex-layout.js +15 -0
  131. package/cjs/plugin/flex-layout.js.map +1 -0
  132. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.d.ts +4 -1
  133. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +27 -17
  134. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  135. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +3 -2
  136. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  137. package/cjs/plugins/index.d.ts +0 -4
  138. package/cjs/plugins/index.js +1 -3
  139. package/cjs/plugins/index.js.map +1 -1
  140. package/cjs/plugins/plugin-service.d.ts +0 -1
  141. package/cjs/plugins/plugin-service.js +2 -3
  142. package/cjs/plugins/plugin-service.js.map +1 -1
  143. package/cjs/plugins/types.d.ts +1 -8
  144. package/cjs/plugins/types.js.map +1 -1
  145. package/cjs/register/graphic.d.ts +19 -0
  146. package/cjs/register/graphic.js +177 -0
  147. package/cjs/register/graphic.js.map +1 -0
  148. package/cjs/registry/contribution-registry.d.ts +1 -1
  149. package/cjs/registry/contribution-registry.js +6 -2
  150. package/cjs/registry/contribution-registry.js.map +1 -1
  151. package/cjs/registry/picker-registry.d.ts +1 -1
  152. package/cjs/registry/picker-registry.js +2 -2
  153. package/cjs/registry/picker-registry.js.map +1 -1
  154. package/cjs/registry/renderer-registry.d.ts +1 -1
  155. package/cjs/registry/renderer-registry.js +2 -2
  156. package/cjs/registry/renderer-registry.js.map +1 -1
  157. package/cjs/registry/types.d.ts +3 -3
  158. package/cjs/registry/types.js.map +1 -1
  159. package/cjs/render/contributions/render/arc-module.js +5 -6
  160. package/cjs/render/contributions/render/arc-module.js.map +1 -1
  161. package/cjs/render/contributions/render/arc3d-module.js +3 -5
  162. package/cjs/render/contributions/render/arc3d-module.js.map +1 -1
  163. package/cjs/render/contributions/render/area-module.js +6 -8
  164. package/cjs/render/contributions/render/area-module.js.map +1 -1
  165. package/cjs/render/contributions/render/base-render.js +8 -7
  166. package/cjs/render/contributions/render/base-render.js.map +1 -1
  167. package/cjs/render/contributions/render/circle-module.js +4 -5
  168. package/cjs/render/contributions/render/circle-module.js.map +1 -1
  169. package/cjs/render/contributions/render/glyph-module.js +3 -5
  170. package/cjs/render/contributions/render/glyph-module.js.map +1 -1
  171. package/cjs/render/contributions/render/image-module.js +3 -4
  172. package/cjs/render/contributions/render/image-module.js.map +1 -1
  173. package/cjs/render/contributions/render/line-module.js +3 -7
  174. package/cjs/render/contributions/render/line-module.js.map +1 -1
  175. package/cjs/render/contributions/render/path-module.js +5 -6
  176. package/cjs/render/contributions/render/path-module.js.map +1 -1
  177. package/cjs/render/contributions/render/polygon-module.js +3 -4
  178. package/cjs/render/contributions/render/polygon-module.js.map +1 -1
  179. package/cjs/render/contributions/render/pyramid3d-module.js +3 -4
  180. package/cjs/render/contributions/render/pyramid3d-module.js.map +1 -1
  181. package/cjs/render/contributions/render/rect-module.js +2 -4
  182. package/cjs/render/contributions/render/rect-module.js.map +1 -1
  183. package/cjs/render/contributions/render/rect3d-module.js +3 -4
  184. package/cjs/render/contributions/render/rect3d-module.js.map +1 -1
  185. package/cjs/render/contributions/render/richtext-module.js +3 -4
  186. package/cjs/render/contributions/render/richtext-module.js.map +1 -1
  187. package/cjs/render/contributions/render/star-module.js +4 -5
  188. package/cjs/render/contributions/render/star-module.js.map +1 -1
  189. package/cjs/render/contributions/render/star-render.d.ts +2 -2
  190. package/cjs/render/contributions/render/star-render.js +3 -3
  191. package/cjs/render/contributions/render/star-render.js.map +1 -1
  192. package/cjs/render/contributions/render/symbol-module.js +4 -5
  193. package/cjs/render/contributions/render/symbol-module.js.map +1 -1
  194. package/cjs/render/contributions/render/text-module.js +3 -4
  195. package/cjs/render/contributions/render/text-module.js.map +1 -1
  196. package/cjs/resource-loader/loader.js +5 -0
  197. package/cjs/resource-loader/loader.js.map +1 -1
  198. package/cjs/svg.d.ts +1 -0
  199. package/cjs/svg.js +15 -0
  200. package/cjs/svg.js.map +1 -0
  201. package/cjs/text.d.ts +2 -0
  202. package/cjs/text.js +29 -0
  203. package/cjs/text.js.map +1 -0
  204. package/dist/index.es.js +1297 -1752
  205. package/es/allocator/graphic-allocate.js +1 -2
  206. package/es/canvas/constants.js +2 -1
  207. package/es/common/color-utils.js +1 -2
  208. package/es/common/event-transformer.js +2 -1
  209. package/es/common/module-guard.d.ts +1 -0
  210. package/es/common/module-guard.js +5 -0
  211. package/es/common/module-guard.js.map +1 -0
  212. package/es/common/rect-utils.js +1 -1
  213. package/es/common/render-area.js +1 -2
  214. package/es/common/render-command-list.js +1 -1
  215. package/es/common/render-curve.js +1 -1
  216. package/es/common/render-utils.js +1 -1
  217. package/es/common/seg-context.js +1 -1
  218. package/es/common/simplify.js +1 -1
  219. package/es/common/sort.js +1 -1
  220. package/es/common/split-path.js +1 -1
  221. package/es/common/xml/is-xml.d.ts +2 -0
  222. package/es/common/xml/is-xml.js +8 -0
  223. package/es/common/xml/is-xml.js.map +1 -0
  224. package/es/common/xml/parser.d.ts +2 -2
  225. package/es/common/xml/parser.js +3 -7
  226. package/es/common/xml/parser.js.map +1 -1
  227. package/es/container.d.ts +2 -0
  228. package/es/container.js +2 -0
  229. package/es/container.js.map +1 -0
  230. package/es/core/camera.js +1 -1
  231. package/es/core/constants.js +1 -1
  232. package/es/core/contributions/layerHandler/canvas2d-contribution.js +1 -0
  233. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  234. package/es/core/core-modules.js +1 -1
  235. package/es/core/global.js +1 -1
  236. package/es/core/graphic-utils.js +1 -1
  237. package/es/core/index.js +1 -1
  238. package/es/core/layer-service.js +2 -1
  239. package/es/core/layer.js +1 -1
  240. package/es/core/light.js +1 -1
  241. package/es/core/stage.d.ts +2 -8
  242. package/es/core/stage.js +20 -30
  243. package/es/core/stage.js.map +1 -1
  244. package/es/core/window.js +1 -1
  245. package/es/entries/miniapp.d.ts +0 -1
  246. package/es/entries/miniapp.js +1 -5
  247. package/es/entries/miniapp.js.map +1 -1
  248. package/es/entries/node.d.ts +0 -1
  249. package/es/entries/node.js +1 -5
  250. package/es/entries/node.js.map +1 -1
  251. package/es/entries/runtime-installer.js +36 -9
  252. package/es/entries/runtime-installer.js.map +1 -1
  253. package/es/env.d.ts +1 -0
  254. package/es/env.js +2 -0
  255. package/es/env.js.map +1 -0
  256. package/es/event/public-constant.d.ts +7 -0
  257. package/es/event/public-constant.js +12 -0
  258. package/es/event/public-constant.js.map +1 -0
  259. package/es/event/util.d.ts +1 -1
  260. package/es/graphic/arc.js +5 -4
  261. package/es/graphic/arc.js.map +1 -1
  262. package/es/graphic/base.d.ts +2 -0
  263. package/es/graphic/base.js +2 -0
  264. package/es/graphic/base.js.map +1 -0
  265. package/es/graphic/config.js +1 -0
  266. package/es/graphic/config.js.map +1 -1
  267. package/es/graphic/creator.d.ts +16 -0
  268. package/es/graphic/creator.js +32 -0
  269. package/es/graphic/creator.js.map +1 -0
  270. package/es/graphic/glyph.js +4 -8
  271. package/es/graphic/glyph.js.map +1 -1
  272. package/es/graphic/graphic-service/graphic-service.d.ts +4 -1
  273. package/es/graphic/graphic-service/graphic-service.js +6 -15
  274. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  275. package/es/graphic/graphic.d.ts +74 -24
  276. package/es/graphic/graphic.js +467 -209
  277. package/es/graphic/graphic.js.map +1 -1
  278. package/es/graphic/group.d.ts +5 -3
  279. package/es/graphic/group.js +43 -31
  280. package/es/graphic/group.js.map +1 -1
  281. package/es/graphic/modules.d.ts +16 -0
  282. package/es/graphic/modules.js +32 -0
  283. package/es/graphic/modules.js.map +1 -0
  284. package/es/graphic/node-tree.d.ts +3 -3
  285. package/es/graphic/node-tree.js +1 -0
  286. package/es/graphic/node-tree.js.map +1 -1
  287. package/es/graphic/state/shared-state-refresh.js +8 -27
  288. package/es/graphic/state/shared-state-refresh.js.map +1 -1
  289. package/es/graphic/state/shared-state-scope.d.ts +2 -5
  290. package/es/graphic/state/shared-state-scope.js +7 -28
  291. package/es/graphic/state/shared-state-scope.js.map +1 -1
  292. package/es/graphic/state/state-definition-compiler.js +4 -5
  293. package/es/graphic/state/state-definition-compiler.js.map +1 -1
  294. package/es/graphic/state/state-definition.d.ts +2 -5
  295. package/es/graphic/state/state-definition.js.map +1 -1
  296. package/es/graphic/state/state-engine.d.ts +0 -5
  297. package/es/graphic/state/state-engine.js +18 -67
  298. package/es/graphic/state/state-engine.js.map +1 -1
  299. package/es/graphic/state/state-transition-orchestrator.d.ts +7 -9
  300. package/es/graphic/state/state-transition-orchestrator.js +10 -13
  301. package/es/graphic/state/state-transition-orchestrator.js.map +1 -1
  302. package/es/graphic/tools.js +1 -3
  303. package/es/graphic/tools.js.map +1 -1
  304. package/es/index.js.map +1 -1
  305. package/es/interface/animation/animate.d.ts +1 -0
  306. package/es/interface/animation/animate.js.map +1 -1
  307. package/es/interface/global.d.ts +8 -4
  308. package/es/interface/global.js.map +1 -1
  309. package/es/interface/graphic/arc.d.ts +1 -0
  310. package/es/interface/graphic/arc.js.map +1 -1
  311. package/es/interface/graphic/group.d.ts +0 -2
  312. package/es/interface/graphic/group.js.map +1 -1
  313. package/es/interface/graphic.d.ts +10 -5
  314. package/es/interface/graphic.js.map +1 -1
  315. package/es/interface/index.js.map +1 -1
  316. package/es/interface/node-tree.d.ts +3 -0
  317. package/es/interface/node-tree.js.map +1 -1
  318. package/es/interface/stage.d.ts +0 -7
  319. package/es/interface/stage.js.map +1 -1
  320. package/es/interpolate.d.ts +2 -0
  321. package/es/interpolate.js +4 -0
  322. package/es/interpolate.js.map +1 -0
  323. package/es/modules.js.map +1 -1
  324. package/es/path.d.ts +4 -0
  325. package/es/path.js +6 -0
  326. package/es/path.js.map +1 -0
  327. package/es/plugin/3d.d.ts +3 -0
  328. package/es/plugin/3d.js +6 -0
  329. package/es/plugin/3d.js.map +1 -0
  330. package/es/plugin/attribute.d.ts +2 -0
  331. package/es/plugin/attribute.js +4 -0
  332. package/es/plugin/attribute.js.map +1 -0
  333. package/es/plugin/flex-layout.d.ts +1 -0
  334. package/es/plugin/flex-layout.js +2 -0
  335. package/es/plugin/flex-layout.js.map +1 -0
  336. package/es/plugins/builtin-plugin/dirty-bounds-plugin.d.ts +4 -1
  337. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +27 -17
  338. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  339. package/es/plugins/builtin-plugin/flex-layout-plugin.js +3 -2
  340. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  341. package/es/plugins/index.d.ts +0 -4
  342. package/es/plugins/index.js +0 -8
  343. package/es/plugins/index.js.map +1 -1
  344. package/es/plugins/plugin-service.d.ts +0 -1
  345. package/es/plugins/plugin-service.js +2 -3
  346. package/es/plugins/plugin-service.js.map +1 -1
  347. package/es/plugins/types.d.ts +1 -8
  348. package/es/plugins/types.js.map +1 -1
  349. package/es/register/graphic.d.ts +19 -0
  350. package/es/register/graphic.js +38 -0
  351. package/es/register/graphic.js.map +1 -0
  352. package/es/registry/contribution-registry.d.ts +1 -1
  353. package/es/registry/contribution-registry.js +6 -2
  354. package/es/registry/contribution-registry.js.map +1 -1
  355. package/es/registry/picker-registry.d.ts +1 -1
  356. package/es/registry/picker-registry.js +2 -2
  357. package/es/registry/picker-registry.js.map +1 -1
  358. package/es/registry/renderer-registry.d.ts +1 -1
  359. package/es/registry/renderer-registry.js +2 -2
  360. package/es/registry/renderer-registry.js.map +1 -1
  361. package/es/registry/types.d.ts +3 -3
  362. package/es/registry/types.js.map +1 -1
  363. package/es/render/contributions/render/arc-module.js +6 -4
  364. package/es/render/contributions/render/arc-module.js.map +1 -1
  365. package/es/render/contributions/render/arc3d-module.js +5 -3
  366. package/es/render/contributions/render/arc3d-module.js.map +1 -1
  367. package/es/render/contributions/render/area-module.js +7 -7
  368. package/es/render/contributions/render/area-module.js.map +1 -1
  369. package/es/render/contributions/render/base-render.js +8 -6
  370. package/es/render/contributions/render/base-render.js.map +1 -1
  371. package/es/render/contributions/render/circle-module.js +6 -4
  372. package/es/render/contributions/render/circle-module.js.map +1 -1
  373. package/es/render/contributions/render/glyph-module.js +5 -3
  374. package/es/render/contributions/render/glyph-module.js.map +1 -1
  375. package/es/render/contributions/render/image-module.js +5 -3
  376. package/es/render/contributions/render/image-module.js.map +1 -1
  377. package/es/render/contributions/render/line-module.js +4 -5
  378. package/es/render/contributions/render/line-module.js.map +1 -1
  379. package/es/render/contributions/render/path-module.js +6 -4
  380. package/es/render/contributions/render/path-module.js.map +1 -1
  381. package/es/render/contributions/render/polygon-module.js +5 -3
  382. package/es/render/contributions/render/polygon-module.js.map +1 -1
  383. package/es/render/contributions/render/pyramid3d-module.js +5 -3
  384. package/es/render/contributions/render/pyramid3d-module.js.map +1 -1
  385. package/es/render/contributions/render/rect-module.js +4 -2
  386. package/es/render/contributions/render/rect-module.js.map +1 -1
  387. package/es/render/contributions/render/rect3d-module.js +5 -3
  388. package/es/render/contributions/render/rect3d-module.js.map +1 -1
  389. package/es/render/contributions/render/richtext-module.js +5 -3
  390. package/es/render/contributions/render/richtext-module.js.map +1 -1
  391. package/es/render/contributions/render/star-module.js +7 -4
  392. package/es/render/contributions/render/star-module.js.map +1 -1
  393. package/es/render/contributions/render/star-render.d.ts +2 -2
  394. package/es/render/contributions/render/star-render.js +3 -3
  395. package/es/render/contributions/render/star-render.js.map +1 -1
  396. package/es/render/contributions/render/symbol-module.js +6 -4
  397. package/es/render/contributions/render/symbol-module.js.map +1 -1
  398. package/es/render/contributions/render/text-module.js +5 -3
  399. package/es/render/contributions/render/text-module.js.map +1 -1
  400. package/es/resource-loader/loader.js +5 -0
  401. package/es/resource-loader/loader.js.map +1 -1
  402. package/es/svg.d.ts +1 -0
  403. package/es/svg.js +2 -0
  404. package/es/svg.js.map +1 -0
  405. package/es/text.d.ts +2 -0
  406. package/es/text.js +4 -0
  407. package/es/text.js.map +1 -0
  408. package/package.json +247 -3
  409. package/cjs/allocator/constants.d.ts +0 -9
  410. package/cjs/allocator/constants.js +0 -11
  411. package/cjs/allocator/constants.js.map +0 -1
  412. package/cjs/common/Reflect-metadata.d.ts +0 -2
  413. package/cjs/common/Reflect-metadata.js +0 -182
  414. package/cjs/common/Reflect-metadata.js.map +0 -1
  415. package/cjs/common/segment/curve/arc.d.ts +0 -17
  416. package/cjs/common/segment/curve/arc.js +0 -38
  417. package/cjs/common/segment/curve/arc.js.map +0 -1
  418. package/cjs/common/segment/curve/ellipse.d.ts +0 -21
  419. package/cjs/common/segment/curve/ellipse.js +0 -39
  420. package/cjs/common/segment/curve/ellipse.js.map +0 -1
  421. package/cjs/common/segment/curve/move.d.ts +0 -16
  422. package/cjs/common/segment/curve/move.js +0 -37
  423. package/cjs/common/segment/curve/move.js.map +0 -1
  424. package/cjs/common/store.d.ts +0 -2
  425. package/cjs/common/store.js +0 -2
  426. package/cjs/common/store.js.map +0 -1
  427. package/cjs/core/application.d.ts +0 -1
  428. package/cjs/core/application.js +0 -6
  429. package/cjs/core/application.js.map +0 -1
  430. package/cjs/core/global-module.d.ts +0 -1
  431. package/cjs/core/global-module.js +0 -1
  432. package/cjs/core/global-module.js.map +0 -1
  433. package/cjs/export.d.ts +0 -1
  434. package/cjs/export.js +0 -1
  435. package/cjs/export.js.map +0 -1
  436. package/cjs/graphic/state/state-batch-scheduler.d.ts +0 -42
  437. package/cjs/graphic/state/state-batch-scheduler.js +0 -285
  438. package/cjs/graphic/state/state-batch-scheduler.js.map +0 -1
  439. package/cjs/graphic/state/state-model.d.ts +0 -43
  440. package/cjs/graphic/state/state-model.js +0 -143
  441. package/cjs/graphic/state/state-model.js.map +0 -1
  442. package/cjs/graphic/state/state-perf-monitor.d.ts +0 -119
  443. package/cjs/graphic/state/state-perf-monitor.js +0 -217
  444. package/cjs/graphic/state/state-perf-monitor.js.map +0 -1
  445. package/cjs/graphic/state/state-style-resolver.d.ts +0 -22
  446. package/cjs/graphic/state/state-style-resolver.js +0 -73
  447. package/cjs/graphic/state/state-style-resolver.js.map +0 -1
  448. package/cjs/interface/animate.d.ts +0 -1
  449. package/cjs/interface/animate.js +0 -3
  450. package/cjs/interface/animate.js.map +0 -1
  451. package/cjs/interface/creator.d.ts +0 -4
  452. package/cjs/interface/creator.js +0 -6
  453. package/cjs/interface/creator.js.map +0 -1
  454. package/cjs/interface/graphic/dynamic-path.d.ts +0 -1
  455. package/cjs/interface/graphic/dynamic-path.js +0 -3
  456. package/cjs/interface/graphic/dynamic-path.js.map +0 -1
  457. package/cjs/interface/graphic-utils.d.ts +0 -1
  458. package/cjs/interface/graphic-utils.js +0 -3
  459. package/cjs/interface/graphic-utils.js.map +0 -1
  460. package/cjs/interface/theme-service.d.ts +0 -1
  461. package/cjs/interface/theme-service.js +0 -3
  462. package/cjs/interface/theme-service.js.map +0 -1
  463. package/cjs/plugins/base-plugin.d.ts +0 -8
  464. package/cjs/plugins/base-plugin.js +0 -15
  465. package/cjs/plugins/base-plugin.js.map +0 -1
  466. package/cjs/plugins/browser-env-plugin.d.ts +0 -8
  467. package/cjs/plugins/browser-env-plugin.js +0 -24
  468. package/cjs/plugins/browser-env-plugin.js.map +0 -1
  469. package/cjs/plugins/builtin-plugin/poptip-plugin.d.ts +0 -1
  470. package/cjs/plugins/builtin-plugin/poptip-plugin.js +0 -3
  471. package/cjs/plugins/builtin-plugin/poptip-plugin.js.map +0 -1
  472. package/cjs/plugins/picker-plugin.d.ts +0 -7
  473. package/cjs/plugins/picker-plugin.js +0 -19
  474. package/cjs/plugins/picker-plugin.js.map +0 -1
  475. package/cjs/plugins/renderer-plugin.d.ts +0 -7
  476. package/cjs/plugins/renderer-plugin.js +0 -19
  477. package/cjs/plugins/renderer-plugin.js.map +0 -1
  478. package/cjs/render/contributions/render/clear-screen.d.ts +0 -1
  479. package/cjs/render/contributions/render/clear-screen.js +0 -3
  480. package/cjs/render/contributions/render/clear-screen.js.map +0 -1
  481. package/cjs/render/contributions/render/render-slector.d.ts +0 -1
  482. package/cjs/render/contributions/render/render-slector.js +0 -3
  483. package/cjs/render/contributions/render/render-slector.js.map +0 -1
  484. package/es/allocator/constants.d.ts +0 -9
  485. package/es/allocator/constants.js +0 -18
  486. package/es/allocator/constants.js.map +0 -1
  487. package/es/common/Reflect-metadata.d.ts +0 -2
  488. package/es/common/Reflect-metadata.js +0 -178
  489. package/es/common/Reflect-metadata.js.map +0 -1
  490. package/es/common/segment/curve/arc.d.ts +0 -17
  491. package/es/common/segment/curve/arc.js +0 -31
  492. package/es/common/segment/curve/arc.js.map +0 -1
  493. package/es/common/segment/curve/ellipse.d.ts +0 -21
  494. package/es/common/segment/curve/ellipse.js +0 -33
  495. package/es/common/segment/curve/ellipse.js.map +0 -1
  496. package/es/common/segment/curve/move.d.ts +0 -16
  497. package/es/common/segment/curve/move.js +0 -31
  498. package/es/common/segment/curve/move.js.map +0 -1
  499. package/es/common/store.d.ts +0 -2
  500. package/es/common/store.js +0 -2
  501. package/es/common/store.js.map +0 -1
  502. package/es/core/application.d.ts +0 -1
  503. package/es/core/application.js +0 -2
  504. package/es/core/application.js.map +0 -1
  505. package/es/core/global-module.d.ts +0 -1
  506. package/es/core/global-module.js +0 -1
  507. package/es/core/global-module.js.map +0 -1
  508. package/es/export.d.ts +0 -1
  509. package/es/export.js +0 -1
  510. package/es/export.js.map +0 -1
  511. package/es/graphic/state/state-batch-scheduler.d.ts +0 -42
  512. package/es/graphic/state/state-batch-scheduler.js +0 -278
  513. package/es/graphic/state/state-batch-scheduler.js.map +0 -1
  514. package/es/graphic/state/state-model.d.ts +0 -43
  515. package/es/graphic/state/state-model.js +0 -135
  516. package/es/graphic/state/state-model.js.map +0 -1
  517. package/es/graphic/state/state-perf-monitor.d.ts +0 -119
  518. package/es/graphic/state/state-perf-monitor.js +0 -207
  519. package/es/graphic/state/state-perf-monitor.js.map +0 -1
  520. package/es/graphic/state/state-style-resolver.d.ts +0 -22
  521. package/es/graphic/state/state-style-resolver.js +0 -65
  522. package/es/graphic/state/state-style-resolver.js.map +0 -1
  523. package/es/interface/animate.d.ts +0 -1
  524. package/es/interface/animate.js +0 -3
  525. package/es/interface/animate.js.map +0 -1
  526. package/es/interface/creator.d.ts +0 -4
  527. package/es/interface/creator.js +0 -2
  528. package/es/interface/creator.js.map +0 -1
  529. package/es/interface/graphic/dynamic-path.d.ts +0 -1
  530. package/es/interface/graphic/dynamic-path.js +0 -3
  531. package/es/interface/graphic/dynamic-path.js.map +0 -1
  532. package/es/interface/graphic-utils.d.ts +0 -1
  533. package/es/interface/graphic-utils.js +0 -3
  534. package/es/interface/graphic-utils.js.map +0 -1
  535. package/es/interface/theme-service.d.ts +0 -1
  536. package/es/interface/theme-service.js +0 -3
  537. package/es/interface/theme-service.js.map +0 -1
  538. package/es/plugins/base-plugin.d.ts +0 -8
  539. package/es/plugins/base-plugin.js +0 -7
  540. package/es/plugins/base-plugin.js.map +0 -1
  541. package/es/plugins/browser-env-plugin.d.ts +0 -8
  542. package/es/plugins/browser-env-plugin.js +0 -16
  543. package/es/plugins/browser-env-plugin.js.map +0 -1
  544. package/es/plugins/builtin-plugin/poptip-plugin.d.ts +0 -1
  545. package/es/plugins/builtin-plugin/poptip-plugin.js +0 -3
  546. package/es/plugins/builtin-plugin/poptip-plugin.js.map +0 -1
  547. package/es/plugins/picker-plugin.d.ts +0 -7
  548. package/es/plugins/picker-plugin.js +0 -11
  549. package/es/plugins/picker-plugin.js.map +0 -1
  550. package/es/plugins/renderer-plugin.d.ts +0 -7
  551. package/es/plugins/renderer-plugin.js +0 -11
  552. package/es/plugins/renderer-plugin.js.map +0 -1
  553. package/es/render/contributions/render/clear-screen.d.ts +0 -1
  554. package/es/render/contributions/render/clear-screen.js +0 -3
  555. package/es/render/contributions/render/clear-screen.js.map +0 -1
  556. package/es/render/contributions/render/render-slector.d.ts +0 -1
  557. package/es/render/contributions/render/render-slector.js +0 -3
  558. package/es/render/contributions/render/render-slector.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphic/graphic-service/graphic-service.ts"],"names":[],"mappings":"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","file":"graphic-service.js","sourcesContent":["import { AABBBounds, isNumber, transformBoundsWithMatrix, type IAABBBounds } from '@visactor/vutils';\nimport { SyncHook } from '../../tapable';\nimport type {\n mat4,\n IGraphicAttribute,\n IGraphic,\n IGroup,\n IStage,\n IText,\n ITextGraphicAttribute,\n ITransform,\n IGraphicService,\n IGraphicCreator,\n ISyncHook\n} from '../../interface';\nimport { textDrawOffsetX, textLayoutOffsetY } from '../../common/text';\nimport { boundStroke } from '../tools';\nimport { mat4Allocate } from '../../allocator/matrix-allocate';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { BoundsContext } from '../../common/bounds-context';\nimport { renderCommandList } from '../../common/render-command-list';\nimport { identityMat4, multiplyMat4Mat4, rotateX, rotateY, rotateZ, scaleMat4, translate } from '../../common/matrix';\nimport { graphicCreator } from '../graphic-creator';\n\nexport function getExtraModelMatrix(dx: number, dy: number, graphic: IGraphic): mat4 | null {\n const { alpha, beta } = graphic.attribute;\n if (!alpha && !beta) {\n return null;\n }\n const { anchor3d = graphic.attribute.anchor } = graphic.attribute;\n\n const _anchor: [number, number] = [0, 0];\n if (anchor3d) {\n if (typeof anchor3d[0] === 'string') {\n const ratio = parseFloat(anchor3d[0]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[0] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[0] = anchor3d[0];\n }\n if (typeof anchor3d[1] === 'string') {\n const ratio = parseFloat(anchor3d[1]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[1] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[1] = anchor3d[1];\n }\n }\n\n if (graphic.type === 'text') {\n const { textAlign } = graphic.attribute as ITextGraphicAttribute;\n // 计算偏移\n _anchor[0] += textDrawOffsetX(textAlign, (graphic as IText).clipedWidth);\n }\n\n // 应用偏移,计算全局的偏移\n _anchor[0] += dx;\n _anchor[1] += dy;\n // matrix.scale(dpr, dpr);\n\n const modelMatrix = mat4Allocate.allocate();\n translate(modelMatrix, modelMatrix, [_anchor[0], _anchor[1], 0]);\n if (beta) {\n rotateX(modelMatrix, modelMatrix, beta);\n }\n if (alpha) {\n rotateY(modelMatrix, modelMatrix, alpha);\n }\n translate(modelMatrix, modelMatrix, [-_anchor[0], -_anchor[1], 0]);\n\n return modelMatrix;\n}\n\n// 计算3d下的模型矩阵\nexport function getModelMatrix(out: mat4, graphic: IGraphic, theme: ITransform) {\n const {\n x = theme.x,\n y = theme.y,\n z = theme.z,\n dx = theme.dx,\n dy = theme.dy,\n dz = theme.dz,\n scaleX = theme.scaleX,\n scaleY = theme.scaleY,\n scaleZ = theme.scaleZ,\n alpha = theme.alpha,\n beta = theme.beta,\n angle = theme.angle,\n anchor3d = graphic.attribute.anchor,\n anchor\n } = graphic.attribute;\n\n const _anchor: [number, number, number] = [0, 0, 0];\n if (anchor3d) {\n if (typeof anchor3d[0] === 'string') {\n const ratio = parseFloat(anchor3d[0]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[0] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[0] = anchor3d[0];\n }\n if (typeof anchor3d[1] === 'string') {\n const ratio = parseFloat(anchor3d[1]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[1] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[1] = anchor3d[1];\n }\n _anchor[2] = anchor3d[2] ?? 0;\n }\n\n // if (graphic.type === 'text') {\n // const { textAlign } = graphic.attribute as ITextGraphicAttribute;\n // // 计算偏移\n // _anchor[0] += textDrawOffsetX(textAlign, (graphic as IText).clipedWidth);\n // }\n\n identityMat4(out);\n // 平移\n translate(out, out, [x + dx, y + dy, z + dz]);\n translate(out, out, [_anchor[0], _anchor[1], _anchor[2]]);\n rotateX(out, out, beta);\n rotateY(out, out, alpha);\n // 基于z轴的偏移基于anchor计算\n // rotateZ(out, out, angle);\n translate(out, out, [-_anchor[0], -_anchor[1], _anchor[2]]);\n scaleMat4(out, out, [scaleX, scaleY, scaleZ]);\n\n // 计算基于z轴的偏移\n if (angle) {\n const m = mat4Allocate.allocate();\n const _anchor: [number, number] = [0, 0];\n if (anchor) {\n if (typeof anchor3d[0] === 'string') {\n const ratio = parseFloat(anchor3d[0]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[0] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[0] = anchor3d[0];\n }\n if (typeof anchor3d[1] === 'string') {\n const ratio = parseFloat(anchor3d[1]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[1] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[1] = anchor3d[1];\n }\n }\n\n translate(m, m, [_anchor[0], _anchor[1], 0]);\n // 基于z轴的偏移基于anchor计算\n rotateZ(m, m, angle);\n translate(m, m, [-_anchor[0], -_anchor[1], 0]);\n\n multiplyMat4Mat4(out, out, m);\n }\n}\n\nexport function shouldUseMat4(graphic: IGraphic) {\n const { alpha, beta } = graphic.attribute;\n return alpha || beta;\n}\n\n// 管理graphic\nexport class DefaultGraphicService implements IGraphicService {\n declare hooks: {\n onAttributeUpdate: ISyncHook<[IGraphic]>;\n onSetStage: ISyncHook<[IGraphic, IStage]>;\n onRemove: ISyncHook<[IGraphic]>;\n onRelease: ISyncHook<[IGraphic]>;\n onAddIncremental: ISyncHook<[IGraphic, IGroup, IStage]>;\n onClearIncremental: ISyncHook<[IGroup, IStage]>;\n beforeUpdateAABBBounds: ISyncHook<[IGraphic, IStage, boolean, IAABBBounds]>;\n afterUpdateAABBBounds: ISyncHook<[IGraphic, IStage, IAABBBounds, { globalAABBBounds: IAABBBounds }, boolean]>;\n clearAABBBounds: ISyncHook<[IGraphic, IStage, IAABBBounds]>;\n };\n\n // 临时bounds,用作缓存\n protected tempAABBBounds1: AABBBounds;\n protected tempAABBBounds2: AABBBounds;\n constructor(public readonly creator: IGraphicCreator = graphicCreator as unknown as IGraphicCreator) {\n this.hooks = {\n onAttributeUpdate: new SyncHook<[IGraphic]>(['graphic']),\n onSetStage: new SyncHook<[IGraphic, IStage]>(['graphic', 'stage']),\n onRemove: new SyncHook<[IGraphic]>(['graphic']),\n onRelease: new SyncHook<[IGraphic]>(['graphic']),\n onAddIncremental: new SyncHook<[IGraphic, IGroup, IStage]>(['graphic', 'group', 'stage']),\n onClearIncremental: new SyncHook<[IGroup, IStage]>(['graphic', 'group', 'stage']),\n beforeUpdateAABBBounds: new SyncHook<[IGraphic, IStage, boolean, IAABBBounds]>([\n 'graphic',\n 'stage',\n 'willUpdate',\n 'aabbBounds'\n ]),\n afterUpdateAABBBounds: new SyncHook<[IGraphic, IStage, IAABBBounds, { globalAABBBounds: IAABBBounds }, boolean]>([\n 'graphic',\n 'stage',\n 'aabbBounds',\n 'globalAABBBounds',\n 'selfChange'\n ]),\n clearAABBBounds: new SyncHook<[IGraphic, IStage, IAABBBounds]>(['graphic', 'stage', 'aabbBounds'])\n };\n this.tempAABBBounds1 = new AABBBounds();\n this.tempAABBBounds2 = new AABBBounds();\n }\n onAttributeUpdate(graphic: IGraphic) {\n if (this.hooks.onAttributeUpdate.taps.length) {\n this.hooks.onAttributeUpdate.call(graphic);\n }\n }\n onSetStage(graphic: IGraphic, stage: IStage): void {\n if (this.hooks.onSetStage.taps.length) {\n this.hooks.onSetStage.call(graphic, stage);\n }\n }\n onRemove(graphic: IGraphic<Partial<IGraphicAttribute>>): void {\n if (this.hooks.onRemove.taps.length) {\n this.hooks.onRemove.call(graphic);\n }\n }\n onRelease(graphic: IGraphic<Partial<IGraphicAttribute>>): void {\n if (this.hooks.onRelease.taps.length) {\n this.hooks.onRelease.call(graphic);\n }\n }\n onAddIncremental(graphic: IGraphic, group: IGroup, stage: IStage): void {\n if (this.hooks.onAddIncremental.taps.length) {\n this.hooks.onAddIncremental.call(graphic, group, stage);\n }\n }\n onClearIncremental(group: IGroup, stage: IStage): void {\n if (this.hooks.onClearIncremental.taps.length) {\n this.hooks.onClearIncremental.call(group, stage);\n }\n }\n beforeUpdateAABBBounds(graphic: IGraphic, stage: IStage, willUpdate: boolean, bounds: IAABBBounds) {\n if (this.hooks.beforeUpdateAABBBounds.taps.length) {\n this.hooks.beforeUpdateAABBBounds.call(graphic, stage, willUpdate, bounds);\n }\n }\n afterUpdateAABBBounds(\n graphic: IGraphic,\n stage: IStage,\n bounds: IAABBBounds,\n params: { globalAABBBounds: IAABBBounds },\n selfChange: boolean\n ) {\n if (this.hooks.afterUpdateAABBBounds.taps.length) {\n this.hooks.afterUpdateAABBBounds.call(graphic, stage, bounds, params, selfChange);\n }\n }\n clearAABBBounds(graphic: IGraphic, stage: IStage, b: IAABBBounds) {\n if (this.hooks.clearAABBBounds.taps.length) {\n this.hooks.clearAABBBounds.call(graphic, stage, b);\n }\n }\n // TODO delete\n updatePathProxyAABBBounds(aabbBounds: IAABBBounds, graphic?: IGraphic): boolean {\n const path = typeof graphic.pathProxy === 'function' ? graphic.pathProxy(graphic.attribute) : graphic.pathProxy;\n if (!path) {\n return false;\n }\n const boundsContext = new BoundsContext(aabbBounds);\n renderCommandList(path.commandList, boundsContext, 0, 0);\n return true;\n }\n\n updateHTMLTextAABBBounds(\n attribute: ITextGraphicAttribute,\n textTheme: Required<ITextGraphicAttribute>,\n aabbBounds: IAABBBounds,\n graphic?: IText\n ) {\n const { textAlign, textBaseline } = attribute;\n if (attribute.forceBoundsHeight != null) {\n const h = isNumber(attribute.forceBoundsHeight) ? attribute.forceBoundsHeight : attribute.forceBoundsHeight();\n const dy = textLayoutOffsetY(textBaseline, h, h);\n aabbBounds.set(aabbBounds.x1, dy, aabbBounds.x2, dy + h);\n }\n if (attribute.forceBoundsWidth != null) {\n const w = isNumber(attribute.forceBoundsWidth) ? attribute.forceBoundsWidth : attribute.forceBoundsWidth();\n const dx = textDrawOffsetX(textAlign, w);\n aabbBounds.set(dx, aabbBounds.y1, dx + w, aabbBounds.y2);\n }\n }\n\n combindShadowAABBBounds(bounds: IAABBBounds, graphic?: IGraphic) {\n // 合并shadowRoot的Bounds\n if (graphic && graphic.shadowRoot) {\n const b = graphic.shadowRoot.AABBBounds;\n bounds.union(b);\n }\n }\n\n transformAABBBounds(\n attribute: Partial<IGraphicAttribute>,\n aabbBounds: IAABBBounds,\n theme: Required<IGraphicAttribute>,\n miter: boolean,\n graphic?: IGraphic\n ) {\n if (!aabbBounds.empty()) {\n const {\n scaleX = theme.scaleX,\n scaleY = theme.scaleY,\n stroke = theme.stroke,\n shadowBlur = theme.shadowBlur,\n lineWidth = theme.lineWidth,\n pickStrokeBuffer = theme.pickStrokeBuffer,\n strokeBoundsBuffer = theme.strokeBoundsBuffer\n } = attribute;\n const tb1 = this.tempAABBBounds1;\n const tb2 = this.tempAABBBounds2;\n if (stroke && lineWidth) {\n const scaledHalfLineWidth = (lineWidth + pickStrokeBuffer) / Math.abs(scaleX + scaleY);\n boundStroke(tb1, scaledHalfLineWidth, miter, strokeBoundsBuffer);\n aabbBounds.union(tb1);\n tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2);\n }\n if (shadowBlur) {\n const { shadowOffsetX = theme.shadowOffsetX, shadowOffsetY = theme.shadowOffsetY } = attribute;\n const shadowBlurWidth = (shadowBlur / Math.abs(scaleX + scaleY)) * 2;\n boundStroke(tb1, shadowBlurWidth, false, strokeBoundsBuffer + 1);\n tb1.translate(shadowOffsetX, shadowOffsetY);\n aabbBounds.union(tb1);\n // tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2);\n }\n }\n\n // 合并shadowRoot的bounds\n this.combindShadowAABBBounds(aabbBounds, graphic);\n if (aabbBounds.empty()) {\n return;\n }\n\n // 性能优化逻辑,group类型变换较少,不需要矩阵变换\n let updateMatrix = true;\n const m = graphic.transMatrix;\n if (graphic && graphic.isContainer) {\n updateMatrix = !(m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1 && m.e === 0 && m.f === 0);\n }\n updateMatrix && transformBoundsWithMatrix(aabbBounds, aabbBounds, m);\n\n // TODO 加上锚点\n // transformBounds(aabbBounds, x, y, scaleX, scaleY, angle);\n // if (graphic.attribute.postMatrix) {\n // console.log('aaa');\n // transformBoundsWithMatrix(aabbBounds, graphic.attribute.postMatrix);\n // }\n // aabbBounds.translate(dx, dy);\n }\n\n validCheck(\n attribute: Partial<IGraphicAttribute>,\n theme: Required<IGraphicAttribute>,\n aabbBounds: IAABBBounds,\n graphic?: IGraphic\n ): boolean {\n if (!graphic) {\n return true;\n }\n\n // 设置了强制wh,那就直接认为是合法的\n if (attribute.forceBoundsHeight != null || attribute.forceBoundsWidth != null) {\n return true;\n }\n\n // 是Group或者有影子节点的话,就直接认为是合法的\n if (graphic.shadowRoot || graphic.isContainer) {\n return true;\n }\n\n const { visible = theme.visible } = attribute;\n\n if (!(graphic.valid && visible)) {\n // application.graphicService.beforeUpdateAABBBounds(graphic, graphic.stage, true, aabbBounds);\n if (!aabbBounds.empty()) {\n graphic.parent && aabbBounds.transformWithMatrix((graphic.parent as IGroup).globalTransMatrix);\n this.clearAABBBounds(graphic, graphic.stage, aabbBounds);\n aabbBounds.clear();\n }\n return false;\n }\n return true;\n }\n\n updateTempAABBBounds(aabbBounds: IAABBBounds) {\n const tb1 = this.tempAABBBounds1;\n const tb2 = this.tempAABBBounds2;\n tb1.setValue(aabbBounds.x1, aabbBounds.y1, aabbBounds.x2, aabbBounds.y2);\n tb2.setValue(aabbBounds.x1, aabbBounds.y1, aabbBounds.x2, aabbBounds.y2);\n\n return { tb1, tb2 };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/graphic/graphic-service/graphic-service.ts"],"names":[],"mappings":"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","file":"graphic-service.js","sourcesContent":["import { AABBBounds, isNumber, transformBoundsWithMatrix, type IAABBBounds } from '@visactor/vutils';\nimport { SyncHook } from '../../tapable';\nimport type {\n mat4,\n IGraphicAttribute,\n IGraphic,\n IGroup,\n IStage,\n IText,\n ITextGraphicAttribute,\n ITransform,\n IGraphicService,\n IGraphicCreator,\n ISyncHook\n} from '../../interface';\nimport { textDrawOffsetX, textLayoutOffsetY } from '../../common/text';\nimport { boundStroke } from '../tools';\nimport { mat4Allocate } from '../../allocator/matrix-allocate';\nimport { identityMat4, multiplyMat4Mat4, rotateX, rotateY, rotateZ, scaleMat4, translate } from '../../common/matrix';\nimport { graphicCreator } from '../graphic-creator';\n\nexport function getExtraModelMatrix(dx: number, dy: number, graphic: IGraphic): mat4 | null {\n const { alpha, beta } = graphic.attribute;\n if (!alpha && !beta) {\n return null;\n }\n const { anchor3d = graphic.attribute.anchor } = graphic.attribute;\n\n const _anchor: [number, number] = [0, 0];\n if (anchor3d) {\n if (typeof anchor3d[0] === 'string') {\n const ratio = parseFloat(anchor3d[0]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[0] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[0] = anchor3d[0];\n }\n if (typeof anchor3d[1] === 'string') {\n const ratio = parseFloat(anchor3d[1]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[1] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[1] = anchor3d[1];\n }\n }\n\n if (graphic.type === 'text') {\n const { textAlign } = graphic.attribute as ITextGraphicAttribute;\n // 计算偏移\n _anchor[0] += textDrawOffsetX(textAlign, (graphic as IText).clipedWidth);\n }\n\n // 应用偏移,计算全局的偏移\n _anchor[0] += dx;\n _anchor[1] += dy;\n // matrix.scale(dpr, dpr);\n\n const modelMatrix = mat4Allocate.allocate();\n translate(modelMatrix, modelMatrix, [_anchor[0], _anchor[1], 0]);\n if (beta) {\n rotateX(modelMatrix, modelMatrix, beta);\n }\n if (alpha) {\n rotateY(modelMatrix, modelMatrix, alpha);\n }\n translate(modelMatrix, modelMatrix, [-_anchor[0], -_anchor[1], 0]);\n\n return modelMatrix;\n}\n\n// 计算3d下的模型矩阵\nexport function getModelMatrix(out: mat4, graphic: IGraphic, theme: ITransform) {\n const {\n x = theme.x,\n y = theme.y,\n z = theme.z,\n dx = theme.dx,\n dy = theme.dy,\n dz = theme.dz,\n scaleX = theme.scaleX,\n scaleY = theme.scaleY,\n scaleZ = theme.scaleZ,\n alpha = theme.alpha,\n beta = theme.beta,\n angle = theme.angle,\n anchor3d = graphic.attribute.anchor,\n anchor\n } = graphic.attribute;\n\n const _anchor: [number, number, number] = [0, 0, 0];\n if (anchor3d) {\n if (typeof anchor3d[0] === 'string') {\n const ratio = parseFloat(anchor3d[0]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[0] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[0] = anchor3d[0];\n }\n if (typeof anchor3d[1] === 'string') {\n const ratio = parseFloat(anchor3d[1]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[1] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[1] = anchor3d[1];\n }\n _anchor[2] = anchor3d[2] ?? 0;\n }\n\n // if (graphic.type === 'text') {\n // const { textAlign } = graphic.attribute as ITextGraphicAttribute;\n // // 计算偏移\n // _anchor[0] += textDrawOffsetX(textAlign, (graphic as IText).clipedWidth);\n // }\n\n identityMat4(out);\n // 平移\n translate(out, out, [x + dx, y + dy, z + dz]);\n translate(out, out, [_anchor[0], _anchor[1], _anchor[2]]);\n rotateX(out, out, beta);\n rotateY(out, out, alpha);\n // 基于z轴的偏移基于anchor计算\n // rotateZ(out, out, angle);\n translate(out, out, [-_anchor[0], -_anchor[1], _anchor[2]]);\n scaleMat4(out, out, [scaleX, scaleY, scaleZ]);\n\n // 计算基于z轴的偏移\n if (angle) {\n const m = mat4Allocate.allocate();\n const _anchor: [number, number] = [0, 0];\n if (anchor) {\n if (typeof anchor3d[0] === 'string') {\n const ratio = parseFloat(anchor3d[0]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[0] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[0] = anchor3d[0];\n }\n if (typeof anchor3d[1] === 'string') {\n const ratio = parseFloat(anchor3d[1]) / 100;\n const bounds = graphic.AABBBounds;\n _anchor[1] = bounds.x1 + (bounds.x2 - bounds.x1) * ratio;\n } else {\n _anchor[1] = anchor3d[1];\n }\n }\n\n translate(m, m, [_anchor[0], _anchor[1], 0]);\n // 基于z轴的偏移基于anchor计算\n rotateZ(m, m, angle);\n translate(m, m, [-_anchor[0], -_anchor[1], 0]);\n\n multiplyMat4Mat4(out, out, m);\n }\n}\n\nexport function shouldUseMat4(graphic: IGraphic) {\n const { alpha, beta } = graphic.attribute;\n return alpha || beta;\n}\n\n// 管理graphic\nexport class DefaultGraphicService implements IGraphicService {\n declare hooks: {\n onAttributeUpdate: ISyncHook<[IGraphic]>;\n onSetStage: ISyncHook<[IGraphic, IStage]>;\n onRemove: ISyncHook<[IGraphic]>;\n onRelease: ISyncHook<[IGraphic]>;\n onAddIncremental: ISyncHook<[IGraphic, IGroup, IStage]>;\n onClearIncremental: ISyncHook<[IGroup, IStage]>;\n beforeUpdateAABBBounds: ISyncHook<[IGraphic, IStage, boolean, IAABBBounds]>;\n afterUpdateAABBBounds: ISyncHook<[IGraphic, IStage, IAABBBounds, { globalAABBBounds: IAABBBounds }, boolean]>;\n clearAABBBounds: ISyncHook<[IGraphic, IStage, IAABBBounds]>;\n };\n\n // 临时bounds,用作缓存\n protected tempAABBBounds1: AABBBounds;\n protected tempAABBBounds2: AABBBounds;\n protected tempAABBBoundsResult: { tb1: AABBBounds; tb2: AABBBounds };\n constructor(public readonly creator: IGraphicCreator = graphicCreator as unknown as IGraphicCreator) {\n this.hooks = {\n onAttributeUpdate: new SyncHook<[IGraphic]>(['graphic']),\n onSetStage: new SyncHook<[IGraphic, IStage]>(['graphic', 'stage']),\n onRemove: new SyncHook<[IGraphic]>(['graphic']),\n onRelease: new SyncHook<[IGraphic]>(['graphic']),\n onAddIncremental: new SyncHook<[IGraphic, IGroup, IStage]>(['graphic', 'group', 'stage']),\n onClearIncremental: new SyncHook<[IGroup, IStage]>(['graphic', 'group', 'stage']),\n beforeUpdateAABBBounds: new SyncHook<[IGraphic, IStage, boolean, IAABBBounds]>([\n 'graphic',\n 'stage',\n 'willUpdate',\n 'aabbBounds'\n ]),\n afterUpdateAABBBounds: new SyncHook<[IGraphic, IStage, IAABBBounds, { globalAABBBounds: IAABBBounds }, boolean]>([\n 'graphic',\n 'stage',\n 'aabbBounds',\n 'globalAABBBounds',\n 'selfChange'\n ]),\n clearAABBBounds: new SyncHook<[IGraphic, IStage, IAABBBounds]>(['graphic', 'stage', 'aabbBounds'])\n };\n this.tempAABBBounds1 = new AABBBounds();\n this.tempAABBBounds2 = new AABBBounds();\n this.tempAABBBoundsResult = {\n tb1: this.tempAABBBounds1,\n tb2: this.tempAABBBounds2\n };\n }\n onAttributeUpdate(graphic: IGraphic) {\n if (this.hooks.onAttributeUpdate.taps.length) {\n this.hooks.onAttributeUpdate.call(graphic);\n }\n }\n onSetStage(graphic: IGraphic, stage: IStage): void {\n if (this.hooks.onSetStage.taps.length) {\n this.hooks.onSetStage.call(graphic, stage);\n }\n }\n onRemove(graphic: IGraphic<Partial<IGraphicAttribute>>): void {\n if (this.hooks.onRemove.taps.length) {\n this.hooks.onRemove.call(graphic);\n }\n }\n onRelease(graphic: IGraphic<Partial<IGraphicAttribute>>): void {\n if (this.hooks.onRelease.taps.length) {\n this.hooks.onRelease.call(graphic);\n }\n }\n onAddIncremental(graphic: IGraphic, group: IGroup, stage: IStage): void {\n if (this.hooks.onAddIncremental.taps.length) {\n this.hooks.onAddIncremental.call(graphic, group, stage);\n }\n }\n onClearIncremental(group: IGroup, stage: IStage): void {\n if (this.hooks.onClearIncremental.taps.length) {\n this.hooks.onClearIncremental.call(group, stage);\n }\n }\n beforeUpdateAABBBounds(graphic: IGraphic, stage: IStage, willUpdate: boolean, bounds: IAABBBounds) {\n if (this.hooks.beforeUpdateAABBBounds.taps.length) {\n this.hooks.beforeUpdateAABBBounds.call(graphic, stage, willUpdate, bounds);\n }\n }\n afterUpdateAABBBounds(\n graphic: IGraphic,\n stage: IStage,\n bounds: IAABBBounds,\n params: { globalAABBBounds: IAABBBounds },\n selfChange: boolean\n ) {\n if (this.hooks.afterUpdateAABBBounds.taps.length) {\n this.hooks.afterUpdateAABBBounds.call(graphic, stage, bounds, params, selfChange);\n }\n }\n clearAABBBounds(graphic: IGraphic, stage: IStage, b: IAABBBounds) {\n if (this.hooks.clearAABBBounds.taps.length) {\n this.hooks.clearAABBBounds.call(graphic, stage, b);\n }\n }\n updateHTMLTextAABBBounds(\n attribute: ITextGraphicAttribute,\n textTheme: Required<ITextGraphicAttribute>,\n aabbBounds: IAABBBounds,\n graphic?: IText\n ) {\n const { textAlign, textBaseline } = attribute;\n if (attribute.forceBoundsHeight != null) {\n const h = isNumber(attribute.forceBoundsHeight) ? attribute.forceBoundsHeight : attribute.forceBoundsHeight();\n const dy = textLayoutOffsetY(textBaseline, h, h);\n aabbBounds.set(aabbBounds.x1, dy, aabbBounds.x2, dy + h);\n }\n if (attribute.forceBoundsWidth != null) {\n const w = isNumber(attribute.forceBoundsWidth) ? attribute.forceBoundsWidth : attribute.forceBoundsWidth();\n const dx = textDrawOffsetX(textAlign, w);\n aabbBounds.set(dx, aabbBounds.y1, dx + w, aabbBounds.y2);\n }\n }\n\n combindShadowAABBBounds(bounds: IAABBBounds, graphic?: IGraphic) {\n // 合并shadowRoot的Bounds\n if (graphic && graphic.shadowRoot) {\n const b = graphic.shadowRoot.AABBBounds;\n bounds.union(b);\n }\n }\n\n transformAABBBounds(\n attribute: Partial<IGraphicAttribute>,\n aabbBounds: IAABBBounds,\n theme: Required<IGraphicAttribute>,\n miter: boolean,\n graphic?: IGraphic\n ) {\n if (!aabbBounds.empty()) {\n const {\n scaleX = theme.scaleX,\n scaleY = theme.scaleY,\n stroke = theme.stroke,\n shadowBlur = theme.shadowBlur,\n lineWidth = theme.lineWidth,\n pickStrokeBuffer = theme.pickStrokeBuffer,\n strokeBoundsBuffer = theme.strokeBoundsBuffer\n } = attribute;\n const tb1 = this.tempAABBBounds1;\n const tb2 = this.tempAABBBounds2;\n if (stroke && lineWidth) {\n const scaledHalfLineWidth = (lineWidth + pickStrokeBuffer) / Math.abs(scaleX + scaleY);\n boundStroke(tb1, scaledHalfLineWidth, miter, strokeBoundsBuffer);\n aabbBounds.union(tb1);\n tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2);\n }\n if (shadowBlur) {\n const { shadowOffsetX = theme.shadowOffsetX, shadowOffsetY = theme.shadowOffsetY } = attribute;\n const shadowBlurWidth = (shadowBlur / Math.abs(scaleX + scaleY)) * 2;\n boundStroke(tb1, shadowBlurWidth, false, strokeBoundsBuffer + 1);\n tb1.translate(shadowOffsetX, shadowOffsetY);\n aabbBounds.union(tb1);\n // tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2);\n }\n }\n\n // 合并shadowRoot的bounds\n this.combindShadowAABBBounds(aabbBounds, graphic);\n if (aabbBounds.empty()) {\n return;\n }\n\n // 性能优化逻辑,group类型变换较少,不需要矩阵变换\n let updateMatrix = true;\n const m = graphic.transMatrix;\n if (graphic && graphic.isContainer) {\n updateMatrix = !(m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1 && m.e === 0 && m.f === 0);\n }\n updateMatrix && transformBoundsWithMatrix(aabbBounds, aabbBounds, m);\n\n // TODO 加上锚点\n // transformBounds(aabbBounds, x, y, scaleX, scaleY, angle);\n // if (graphic.attribute.postMatrix) {\n // console.log('aaa');\n // transformBoundsWithMatrix(aabbBounds, graphic.attribute.postMatrix);\n // }\n // aabbBounds.translate(dx, dy);\n }\n\n validCheck(\n attribute: Partial<IGraphicAttribute>,\n theme: Required<IGraphicAttribute>,\n aabbBounds: IAABBBounds,\n graphic?: IGraphic\n ): boolean {\n if (!graphic) {\n return true;\n }\n\n // 设置了强制wh,那就直接认为是合法的\n if (attribute.forceBoundsHeight != null || attribute.forceBoundsWidth != null) {\n return true;\n }\n\n // 是Group或者有影子节点的话,就直接认为是合法的\n if (graphic.shadowRoot || graphic.isContainer) {\n return true;\n }\n\n const { visible = theme.visible } = attribute;\n\n if (!(graphic.valid && visible)) {\n // application.graphicService.beforeUpdateAABBBounds(graphic, graphic.stage, true, aabbBounds);\n if (!aabbBounds.empty()) {\n graphic.parent && aabbBounds.transformWithMatrix((graphic.parent as IGroup).globalTransMatrix);\n this.clearAABBBounds(graphic, graphic.stage, aabbBounds);\n aabbBounds.clear();\n }\n return false;\n }\n return true;\n }\n\n updateTempAABBBounds(aabbBounds: IAABBBounds) {\n const tb1 = this.tempAABBBounds1;\n const tb2 = this.tempAABBBounds2;\n tb1.setValue(aabbBounds.x1, aabbBounds.y1, aabbBounds.x2, aabbBounds.y2);\n tb2.setValue(aabbBounds.x1, aabbBounds.y1, aabbBounds.x2, aabbBounds.y2);\n\n return this.tempAABBBoundsResult;\n }\n}\n"]}
@@ -1,14 +1,13 @@
1
1
  import type { ICustomPath2D } from './../interface/path';
2
2
  import { Matrix, Point, type Dict, type IAABBBounds, type IOBBBounds, type IPointLike } from '@visactor/vutils';
3
- import type { GraphicType, IAnimateConfig, IGraphicAttribute, IGraphic, IGraphicJson, ISetAttributeContext, ITransform, GraphicReleaseStatus } from '../interface/graphic';
3
+ import type { GraphicType, IAnimateConfig, IGraphicAttribute, IGraphic, IGraphicJson, ISetAttributeContext, ISetStatesOptions, ITransform, GraphicReleaseStatus } from '../interface/graphic';
4
4
  import { Node } from './node-tree';
5
5
  import type { IAnimate, IAnimateTarget, IGlyphGraphicAttribute, ILayer, IPickerService, IShadowRoot, IStage, IStep, ISymbolClass } from '../interface';
6
6
  import { IContainPointMode } from '../common/enums';
7
7
  import { CustomSymbolClass } from './builtin-symbol';
8
- import type { CompiledStateDefinition, StateDefinition, StateDefinitionsInput } from './state/state-definition';
8
+ import type { CompiledStateDefinition, StateDefinition, StateDefinitionsInput, StateMergeMode, StateTransitionResult } from './state/state-definition';
9
9
  import { StateEngine } from './state/state-engine';
10
- import { StateModel } from './state/state-model';
11
- import { StateStyleResolver, type StateMergeMode } from './state/state-style-resolver';
10
+ import { UpdateCategory } from './state/attribute-update-classifier';
12
11
  import { StateTransitionOrchestrator } from './state/state-transition-orchestrator';
13
12
  import { type SharedStateScope } from './state/shared-state-scope';
14
13
  export declare const PURE_STYLE_KEY: string[];
@@ -17,7 +16,16 @@ type AttributeDelta = Map<string, {
17
16
  prev: unknown;
18
17
  next: unknown;
19
18
  }>;
20
- export declare function shouldUseSimpleAttributeFastPath(value: unknown): value is Record<string, any>;
19
+ type GraphicStateTransition = {
20
+ changed: boolean;
21
+ states: string[];
22
+ effectiveStates?: string[];
23
+ };
24
+ type ResolvedGraphicStateTransition<T> = {
25
+ transition: GraphicStateTransition;
26
+ effectiveStates: string[];
27
+ resolvedStateAttrs: Partial<T>;
28
+ };
21
29
  export declare const NOWORK_ANIMATE_ATTR: {
22
30
  strokeSeg: number;
23
31
  boundsPadding: number;
@@ -52,6 +60,8 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
52
60
  static mixin(source: Dict<any>): void;
53
61
  _events?: any;
54
62
  context?: Record<string, any>;
63
+ private transientFromAttrsBeforePreventAnimate?;
64
+ private transientFromAttrsBeforePreventAnimateDiffAttrs?;
55
65
  static userSymbolMap: Record<string, ISymbolClass>;
56
66
  onBeforeAttributeUpdate?: (val: any, attributes: Partial<T>, key: null | string | string[], context?: ISetAttributeContext) => T | undefined;
57
67
  parent: any;
@@ -88,7 +98,9 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
88
98
  protected _updateTag: number;
89
99
  stamp?: number;
90
100
  attribute: T;
91
- baseAttributes: Partial<T>;
101
+ protected _baseAttributes?: Partial<T>;
102
+ get baseAttributes(): Partial<T>;
103
+ set baseAttributes(value: Partial<T>);
92
104
  shadowRoot?: IShadowRoot;
93
105
  releaseStatus?: GraphicReleaseStatus;
94
106
  states?: StateDefinitionsInput<T>;
@@ -99,10 +111,7 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
99
111
  boundSharedStateRevision?: number;
100
112
  sharedStateDirty?: boolean;
101
113
  registeredActiveScopes?: Set<SharedStateScope<T>>;
102
- localFallbackCompiledDefinitions?: Map<string, CompiledStateDefinition<T>>;
103
- localFallbackVersion?: number;
104
114
  stateAnimateConfig?: IAnimateConfig;
105
- stateProxy?: (stateName: string, targetStates?: string[]) => Partial<T>;
106
115
  stateMergeMode?: StateMergeMode;
107
116
  animates: Map<string | number, IAnimate>;
108
117
  animate?: () => IAnimate;
@@ -117,25 +126,23 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
117
126
  protected compiledStateDefinitionsCacheKey?: string;
118
127
  protected stateEngine?: StateEngine<T>;
119
128
  protected stateEngineCompiledDefinitions?: Map<string, CompiledStateDefinition<T>>;
120
- protected stateEngineStateProxy?: (stateName: string, targetStates?: string[]) => Partial<T>;
121
129
  protected stateEngineStateSort?: (stateA: string, stateB: string) => number;
122
130
  protected stateEngineMergeMode?: StateMergeMode;
123
- protected stateEngineStateProxyModeKey?: string;
124
- protected stateStyleResolver?: StateStyleResolver<T>;
125
- protected deepStateStyleResolver?: StateStyleResolver<T>;
126
131
  protected stateTransitionOrchestrator?: StateTransitionOrchestrator<T>;
127
- protected _deprecatedNormalAttrsView?: Partial<T> | null;
128
132
  protected localStateDefinitionsSource?: StateDefinitionsInput<T>;
129
- protected resolverEpoch: number;
133
+ protected localStateDefinitionsVersion?: number;
134
+ protected resolverEpoch?: number;
135
+ protected attributeMayContainTransientAttrs?: boolean;
130
136
  constructor(params?: T);
131
137
  get normalAttrs(): Partial<T> | undefined;
132
- set normalAttrs(value: Partial<T> | undefined);
138
+ set normalAttrs(_value: Partial<T> | undefined);
139
+ protected getBaseAttributesStorage(): Partial<T>;
133
140
  getGraphicService(): import("../interface").IGraphicService;
134
141
  getAttributes(): T;
135
- protected getStateStyleResolver(mergeMode?: StateMergeMode): StateStyleResolver<T>;
136
142
  protected getStateTransitionOrchestrator(): StateTransitionOrchestrator<T>;
137
143
  protected resolveBoundSharedStateScope(): SharedStateScope<T> | SharedStateScope<Record<string, any>> | undefined;
138
144
  protected syncSharedStateScopeBindingFromTree(markDirty?: boolean): boolean;
145
+ protected syncSharedStateScopeBindingOnTreeChange(markDirty?: boolean): boolean;
139
146
  protected syncSharedStateActiveRegistrations(): void;
140
147
  protected clearSharedStateActiveRegistrations(): void;
141
148
  protected markSharedStateDirty(): void;
@@ -144,8 +151,6 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
144
151
  protected getLocalStatesVersion(): number;
145
152
  protected resolveEffectiveCompiledDefinitions(): {
146
153
  compiledDefinitions?: Map<string, CompiledStateDefinition<T>>;
147
- stateProxyModeKey: string;
148
- stateProxyEligibility?: (stateName: string) => boolean;
149
154
  };
150
155
  protected recomputeCurrentStatePatch(): void;
151
156
  protected buildStaticAttributeSnapshot(): Partial<T>;
@@ -153,11 +158,28 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
153
158
  protected syncObjectToSnapshot(target: Record<string, any>, snapshot: Record<string, any>): AttributeDelta;
154
159
  protected _syncAttribute(): AttributeDelta;
155
160
  protected _syncFinalAttributeFromStaticTruth(): void;
161
+ protected mergeAttributeDeltaCategory(category: UpdateCategory, key: string, prev: unknown, next: unknown): number;
162
+ protected submitUpdateByCategory(category: UpdateCategory, forceUpdateTag?: boolean): void;
156
163
  protected submitUpdateByDelta(delta: AttributeDelta, forceUpdateTag?: boolean): void;
164
+ protected submitTouchedKeyUpdate(keys: string[], forceUpdateTag?: boolean): void;
165
+ protected submitTouchedUpdate(needsShapeAndBounds: boolean): void;
157
166
  protected commitBaseAttributeMutation(forceUpdateTag?: boolean, context?: ISetAttributeContext): void;
167
+ protected canCommitBaseAttributesByTouchedKeys(): boolean;
168
+ protected detachAttributeFromBaseAttributes(): void;
169
+ protected commitInternalBaseAttributes(params: Partial<T>, context?: ISetAttributeContext): void;
170
+ protected commitBaseAttributesByTouchedKeys(params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext): void;
171
+ protected commitBaseAttributeBySingleKey(key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext): void;
158
172
  protected applyBaseAttributes(params: Partial<T>): void;
173
+ applyAnimationTransientAttributes(params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext): void;
159
174
  protected applyTransientAttributes(params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext): void;
160
175
  protected _restoreAttributeFromStaticTruth(context?: ISetAttributeContext): void;
176
+ protected collectStatePatchDeltaKeys(previousPatch?: Partial<T>, nextPatch?: Partial<T>): string[];
177
+ protected getStaticTruthValueForStateKey(key: string, nextPatch?: Partial<T>): {
178
+ hasValue: boolean;
179
+ value: any;
180
+ };
181
+ protected syncStatePatchDeltaToTarget(target: Record<string, any>, keys: string[], nextPatch?: Partial<T>, collectCategory?: boolean): UpdateCategory;
182
+ protected restoreAttributeFromStatePatchDelta(previousPatch?: Partial<T>, nextPatch?: Partial<T>, context?: ISetAttributeContext): void;
161
183
  setMode(mode: '2d' | '3d'): void;
162
184
  set3dMode(): void;
163
185
  set2dMode(): void;
@@ -165,6 +187,7 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
165
187
  onAnimateBind(animate: IAnimate): void;
166
188
  protected visitTrackedAnimates(cb: (animate: IAnimate) => void): void;
167
189
  protected hasAnyTrackedAnimate(): any;
190
+ protected mayHaveTrackedAnimates(): boolean;
168
191
  protected tryUpdateAABBBounds(): IAABBBounds;
169
192
  protected tryUpdateOBBBounds(): IOBBBounds;
170
193
  protected combindShadowAABBBounds(bounds: IAABBBounds): void;
@@ -173,7 +196,7 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
173
196
  protected abstract updateAABBBounds(attribute: T, symbolTheme: Required<T>, aabbBounds: IAABBBounds, full?: boolean): IAABBBounds;
174
197
  getClipPath(): ISymbolClass;
175
198
  parsePath(symbolType: string): ISymbolClass | CustomSymbolClass;
176
- protected doUpdateAABBBounds(full?: boolean): IAABBBounds;
199
+ protected doUpdateAABBBounds(full?: boolean, graphicTheme?: Required<T>): IAABBBounds;
177
200
  updatePathProxyAABBBounds(aabbBounds: IAABBBounds): boolean;
178
201
  protected tryUpdateGlobalAABBBounds(): IAABBBounds;
179
202
  protected tryUpdateGlobalTransMatrix(clearTag?: boolean): Matrix;
@@ -189,6 +212,9 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
189
212
  containsPoint(x: number, y: number, mode: IContainPointMode, picker?: IPickerService): boolean;
190
213
  protected setWidthHeightWithoutTransform(aabbBounds: IAABBBounds): void;
191
214
  setAttributesAndPreventAnimate(params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext, ignorePriority?: boolean): void;
215
+ protected syncFinalAttributesFromUpdateContext(context?: ISetAttributeContext): void;
216
+ protected captureTransientFromAttrsBeforePreventAnimate(params: Partial<T>, keys: string[], context?: ISetAttributeContext): void;
217
+ protected consumeTransientFromAttrsBeforePreventAnimate(diffAttrs: Record<string, any>): Record<string, any> | null;
192
218
  setAttributes(params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext): void;
193
219
  _setAttributes(params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext): void;
194
220
  setAttribute(key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext): void;
@@ -209,18 +235,38 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
209
235
  }): void;
210
236
  hasState(stateName?: string): boolean;
211
237
  getState(stateName: string): Partial<T> | StateDefinition<T> | undefined;
212
- protected createStateModel(): StateModel<T>;
238
+ protected getStateResolveBaseAttrs(): Partial<T>;
239
+ protected syncStateResolveContext(stateResolveBaseAttrs?: Partial<T>): Partial<T>;
240
+ protected ensureStateEngine(stateResolveBaseAttrs?: Partial<T>): StateEngine<T>;
241
+ protected toGraphicStateTransition(result: StateTransitionResult): GraphicStateTransition;
242
+ protected sortLocalStates(states: readonly string[]): string[];
243
+ protected resolveLocalUseStatesTransition(states: readonly string[]): GraphicStateTransition;
244
+ protected resolveLocalClearStatesTransition(): GraphicStateTransition;
245
+ protected resolveUseStatesTransition(states: string[], stateResolveBaseAttrs?: Partial<T>): GraphicStateTransition;
246
+ protected resolveClearStatesTransition(): GraphicStateTransition;
247
+ protected resolveAddStateTransition(stateName: string, keepCurrentStates?: boolean): GraphicStateTransition;
248
+ protected resolveRemoveStateTransition(stateName: string | string[]): GraphicStateTransition;
249
+ protected resolveToggleStateTransition(stateName: string): GraphicStateTransition;
250
+ protected resolveGraphicStateTransition(states: string[], forceResolverRefresh?: boolean): ResolvedGraphicStateTransition<T>;
251
+ protected normalizeSetStatesOptions(options?: boolean | ISetStatesOptions): {
252
+ hasAnimation?: boolean;
253
+ animateSameStatePatchChange: boolean;
254
+ shouldRefreshSameStatePatch: boolean;
255
+ };
256
+ protected sameStatePatches(left?: Partial<T>, right?: Partial<T>): boolean;
257
+ protected commitSameStatePatchRefresh(states: string[], hasAnimation?: boolean, animateSameStatePatchChange?: boolean): void;
213
258
  protected resolveStateAnimateConfig(animateConfig?: IAnimateConfig): any;
214
259
  applyStateAttrs(attrs: Partial<T>, stateNames: string[], hasAnimation?: boolean, isClear?: boolean, animateConfig?: IAnimateConfig, extraAnimateAttrs?: Partial<T>): void;
215
- updateNormalAttrs(stateAttrs: Partial<T>): void;
260
+ updateNormalAttrs(_stateAttrs: Partial<T>): void;
216
261
  protected getStateTransitionDefaultAttribute(key: string, targetAttrs?: Partial<T>): any;
217
262
  protected shouldSkipStateTransitionDefaultAttribute(_key: string, _targetAttrs?: Partial<T>): boolean;
218
263
  protected stopStateAnimates(type?: 'start' | 'end'): void;
219
- private getNormalAttribute;
220
264
  clearStates(hasAnimation?: boolean): void;
221
265
  removeState(stateName: string | string[], hasAnimation?: boolean): void;
222
266
  toggleState(stateName: string, hasAnimation?: boolean): void;
223
267
  addState(stateName: string, keepCurrentStates?: boolean, hasAnimation?: boolean): void;
268
+ setStates(states?: string[] | null, hasAnimation?: boolean): void;
269
+ setStates(states?: string[] | null, options?: ISetStatesOptions): void;
224
270
  useStates(states: string[], hasAnimation?: boolean): void;
225
271
  invalidateResolver(): void;
226
272
  private sameStateNames;
@@ -228,6 +274,7 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
228
274
  addUpdatePaintTag(): void;
229
275
  addUpdateShapeTag(): void;
230
276
  addUpdateShapeAndBoundsTag(): void;
277
+ protected addBroadUpdateTag(): void;
231
278
  protected updateShapeAndBoundsTagSetted(): boolean;
232
279
  protected clearUpdateBoundTag(): void;
233
280
  protected clearUpdatePaintTag(): void;
@@ -244,6 +291,7 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
244
291
  protected doUpdateLocalMatrix(): void;
245
292
  protected doUpdateGlobalMatrix(): void;
246
293
  setStage(stage?: IStage, layer?: ILayer): void;
294
+ detachStageForRelease(): void;
247
295
  setStageToShadowRoot(stage?: IStage, layer?: ILayer): void;
248
296
  onAddStep(step: IStep): void;
249
297
  onStop(props?: Partial<T>): void;
@@ -261,8 +309,10 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
261
309
  private _stopAnimates;
262
310
  stopAnimates(stopChildren?: boolean): void;
263
311
  release(): void;
312
+ protected hasCustomEvent(type: string): boolean;
264
313
  protected _dispatchCustomEvent(type: string, context?: any): any;
265
- protected beforeStateUpdate(attrs: Partial<T>, prevStates: string[], nextStates: string[], hasAnimation?: boolean, isClear?: boolean): any;
314
+ protected beforeStateUpdate(attrs: Partial<T>, prevStates: readonly string[], nextStates: readonly string[], hasAnimation?: boolean, isClear?: boolean): any;
315
+ protected emitStateUpdateEvent(): void;
266
316
  protected _emitCustomEvent(type: string, context?: any): void;
267
317
  abstract getNoWorkAnimateAttr(): Record<string, number>;
268
318
  abstract clone(): IGraphic<any>;