@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.createWrapText = exports.WrapText = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), layout_1 = require("../core/contributions/textMeasure/layout"), modules_1 = require("../modules"), text_1 = require("./text"), utils_1 = require("../common/utils"), WRAP_TEXT_UPDATE_TAG_KEY = [ "heightLimit", "lineClamp" ];
7
+ const vutils_1 = require("@visactor/vutils"), layout_1 = require("../core/contributions/textMeasure/layout"), interface_1 = require("../interface"), application_1 = require("../application"), text_1 = require("./text"), utils_1 = require("../common/utils"), WRAP_TEXT_UPDATE_TAG_KEY = [ "heightLimit", "lineClamp" ];
8
8
 
9
9
  class WrapText extends text_1.Text {
10
10
  constructor(params) {
@@ -25,7 +25,7 @@ class WrapText extends text_1.Text {
25
25
  return this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height),
26
26
  stroke && this._AABBBounds.expand(lineWidth / 2), this._AABBBounds;
27
27
  }
28
- const textMeasure = modules_1.graphicUtil.getTextMeasureInstance(this.textMeasureId || (null === (_c = this.stage) || void 0 === _c ? void 0 : _c.textMeasureId)), layoutObj = new layout_1.CanvasTextLayout(fontFamily, {
28
+ const textMeasure = application_1.application.graphicUtil.getTextMeasureInstance(this.textMeasureId || (null === (_c = this.stage) || void 0 === _c ? void 0 : _c.textMeasureId)), layoutObj = new layout_1.CanvasTextLayout(fontFamily, {
29
29
  fontSize: fontSize,
30
30
  fontWeight: fontWeight,
31
31
  fontFamily: fontFamily
@@ -37,12 +37,12 @@ class WrapText extends text_1.Text {
37
37
  const str = lines[i];
38
38
  let needCut = !0;
39
39
  if (i === lineCountLimit - 1) {
40
- const clip = layoutObj.textMeasure.clipTextWithSuffix(str, layoutObj.textOptions, maxLineWidth, ellipsis, !1, suffixPosition);
40
+ const clip = layoutObj.textMeasure.clipTextWithSuffix(str, layoutObj.textOptions, maxLineWidth, ellipsis, !1, suffixPosition), metrics = layoutObj.textMeasure.measureTextPixelADscentAndWidth(clip.str, layoutObj.textOptions, interface_1.MeasureModeEnum.actualBounding);
41
41
  linesLayout.push({
42
42
  str: clip.str,
43
43
  width: clip.width,
44
- ascent: 0,
45
- descent: 0,
44
+ ascent: metrics.ascent,
45
+ descent: metrics.descent,
46
46
  keepCenterInLine: !1
47
47
  });
48
48
  break;
@@ -55,11 +55,12 @@ class WrapText extends text_1.Text {
55
55
  } else clip.str = "", clip.width = 0;
56
56
  needCut = !1;
57
57
  }
58
+ const metrics = layoutObj.textMeasure.measureTextPixelADscentAndWidth(clip.str, layoutObj.textOptions, interface_1.MeasureModeEnum.actualBounding);
58
59
  if (linesLayout.push({
59
60
  str: clip.str,
60
61
  width: clip.width,
61
- ascent: 0,
62
- descent: 0,
62
+ ascent: metrics.ascent,
63
+ descent: metrics.descent,
63
64
  keepCenterInLine: !1
64
65
  }), clip.str.length === str.length) ; else if (needCut) {
65
66
  const newStr = str.substring(clip.str.length);
@@ -74,22 +75,23 @@ class WrapText extends text_1.Text {
74
75
  let width, text, lineWidth = 0;
75
76
  for (let i = 0, len = lines.length; i < len; i++) {
76
77
  if (i === lineCountLimit - 1) {
77
- const clip = layoutObj.textMeasure.clipTextWithSuffix(lines[i], layoutObj.textOptions, maxLineWidth, ellipsis, !1, suffixPosition);
78
+ const clip = layoutObj.textMeasure.clipTextWithSuffix(lines[i], layoutObj.textOptions, maxLineWidth, ellipsis, !1, suffixPosition), metrics = layoutObj.textMeasure.measureTextPixelADscentAndWidth(clip.str, layoutObj.textOptions, interface_1.MeasureModeEnum.actualBounding);
78
79
  linesLayout.push({
79
80
  str: clip.str,
80
81
  width: clip.width,
81
- ascent: 0,
82
- descent: 0,
82
+ ascent: metrics.ascent,
83
+ descent: metrics.descent,
83
84
  keepCenterInLine: !1
84
85
  }), lineWidth = Math.max(lineWidth, clip.width);
85
86
  break;
86
87
  }
87
- text = lines[i], width = layoutObj.textMeasure.measureTextWidth(text, layoutObj.textOptions, "break-word" === wordBreak),
88
+ text = lines[i], width = layoutObj.textMeasure.measureTextWidth(text, layoutObj.textOptions, "break-word" === wordBreak);
89
+ const metrics = layoutObj.textMeasure.measureTextPixelADscentAndWidth(text, layoutObj.textOptions, interface_1.MeasureModeEnum.actualBounding);
88
90
  lineWidth = Math.max(lineWidth, width), linesLayout.push({
89
91
  str: text,
90
92
  width: width,
91
- ascent: 0,
92
- descent: 0,
93
+ ascent: metrics.ascent,
94
+ descent: metrics.descent,
93
95
  keepCenterInLine: !1
94
96
  });
95
97
  }
@@ -102,9 +104,10 @@ class WrapText extends text_1.Text {
102
104
  width: bboxWH[0],
103
105
  height: bboxWH[1]
104
106
  };
105
- layoutObj.LayoutBBox(bbox, textAlign, textBaseline);
107
+ layoutObj.LayoutBBox(bbox, textAlign, textBaseline, linesLayout);
106
108
  const layoutData = layoutObj.layoutWithBBox(bbox, linesLayout, textAlign, textBaseline, lineHeight);
107
- return this.cache.layoutData = layoutData, this.clearUpdateShapeTag(), this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height),
109
+ return this.getOrCreateCache().layoutData = layoutData, this.clearUpdateShapeTag(),
110
+ this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height),
108
111
  stroke && this._AABBBounds.expand(lineWidth / 2), this._AABBBounds;
109
112
  }
110
113
  needUpdateTags(keys) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphic/wrap-text.ts"],"names":[],"mappings":"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","file":"wrap-text.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { CanvasTextLayout } from '../core/contributions/textMeasure/layout';\nimport type { IText, ITextGraphicAttribute, IWrapTextGraphicAttribute, LayoutItemType } from '../interface';\nimport { vglobal, graphicUtil } from '../modules';\nimport { Text } from './text';\nimport { getTheme } from './theme';\nimport { calculateLineHeight } from '../common/utils';\n\nconst WRAP_TEXT_UPDATE_TAG_KEY = ['heightLimit', 'lineClamp'];\n\n/* WrapText功能\n * 1. 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 2. 高度限制控制显示内容及省略号(heightLimit)\n * 3. 按照行数限制显示内容及省略号(lineClamp)\n */\nexport class WrapText extends Text {\n declare attribute: IWrapTextGraphicAttribute;\n\n constructor(params: ITextGraphicAttribute) {\n super({ ...params, wrap: true });\n }\n\n protected _isValid(): boolean {\n const { text } = this.attribute;\n if (isArray(text)) {\n return !(text as any[]).every((t: any) => t == null || t === '');\n }\n return text != null && text !== '';\n }\n\n /**\n * 计算多行文字的bounds,缓存每行文字的布局位置\n * 自动折行params.text是数组,因此只重新updateMultilineAABBBounds\n * @param text\n */\n updateMultilineAABBBounds(text: (number | string)[]) {\n const textTheme = this.getGraphicTheme();\n const {\n fontFamily = textTheme.fontFamily,\n textAlign = textTheme.textAlign,\n textBaseline = textTheme.textBaseline,\n fontSize = textTheme.fontSize,\n ellipsis = textTheme.ellipsis,\n maxLineWidth,\n stroke = textTheme.stroke,\n lineWidth = textTheme.lineWidth,\n wordBreak = textTheme.wordBreak,\n fontWeight = textTheme.fontWeight,\n // widthLimit,\n ignoreBuf = textTheme.ignoreBuf,\n heightLimit = 0,\n suffixPosition = textTheme.suffixPosition,\n lineClamp\n } = this.attribute;\n const lineHeight =\n calculateLineHeight(this.attribute.lineHeight, this.attribute.fontSize || textTheme.fontSize) ??\n (this.attribute.fontSize || textTheme.fontSize);\n const buf = ignoreBuf ? 0 : 2;\n if (!this.shouldUpdateShape() && this.cache?.layoutData) {\n const bbox = this.cache.layoutData.bbox;\n this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n if (stroke) {\n this._AABBBounds.expand(lineWidth / 2);\n }\n return this._AABBBounds;\n }\n\n const textMeasure = graphicUtil.getTextMeasureInstance(this.textMeasureId || this.stage?.textMeasureId);\n const layoutObj = new CanvasTextLayout(fontFamily, { fontSize, fontWeight, fontFamily }, textMeasure as any) as any;\n\n // layoutObj内逻辑\n const lines = text.map(l => l.toString()) as string[];\n const linesLayout: LayoutItemType[] = [];\n const bboxWH: [number, number] = [0, 0];\n\n let lineCountLimit = Infinity;\n if (heightLimit > 0) {\n lineCountLimit = Math.max(Math.floor(heightLimit / lineHeight), 1);\n }\n if (lineClamp) {\n // 处理行数限制\n lineCountLimit = Math.min(lineCountLimit, lineClamp);\n }\n\n if (typeof maxLineWidth === 'number' && maxLineWidth !== Infinity) {\n // widthLimit > 0\n if (maxLineWidth > 0) {\n for (let i = 0; i < lines.length; i++) {\n const str = lines[i] as string;\n let needCut = true;\n // // 测量当前行宽度\n // width = Math.min(\n // layoutObj.textMeasure.measureTextWidth(str, layoutObj.textOptions),\n // maxLineWidth\n // );\n\n // 判断是否超过高度限制\n if (i === lineCountLimit - 1) {\n // 当前行为最后一行\n const clip = layoutObj.textMeasure.clipTextWithSuffix(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n false,\n suffixPosition\n );\n linesLayout.push({\n str: clip.str,\n width: clip.width,\n ascent: 0,\n descent: 0,\n keepCenterInLine: false\n });\n break; // 不处理后续行\n }\n\n // 测量截断位置\n const clip = layoutObj.textMeasure.clipText(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n wordBreak === 'break-word'\n );\n if (str !== '' && clip.str === '') {\n if (ellipsis) {\n const clipEllipsis = layoutObj.textMeasure.clipTextWithSuffix(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n false,\n suffixPosition\n );\n clip.str = clipEllipsis.str ?? '';\n clip.width = clipEllipsis.width ?? 0;\n } else {\n // 宽度限制不足一个字符,不显示\n clip.str = '';\n clip.width = 0;\n }\n needCut = false;\n }\n\n linesLayout.push({\n str: clip.str,\n width: clip.width,\n ascent: 0,\n descent: 0,\n keepCenterInLine: false\n });\n if (clip.str.length === str.length) {\n // 不需要截断\n } else if (needCut) {\n const newStr = str.substring(clip.str.length);\n lines.splice(i + 1, 0, newStr);\n }\n }\n }\n // bboxWH[0] = maxLineWidth;\n let maxWidth = 0;\n linesLayout.forEach(layout => {\n maxWidth = Math.max(maxWidth, layout.width);\n });\n bboxWH[0] = maxWidth;\n } else {\n // 使用所有行中最长的作为lineWidth\n let lineWidth = 0;\n let width: number;\n let text: string;\n for (let i = 0, len = lines.length; i < len; i++) {\n // 判断是否超过高度限制\n if (i === lineCountLimit - 1) {\n // 当前行为最后一行\n const clip = layoutObj.textMeasure.clipTextWithSuffix(\n lines[i],\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n false,\n suffixPosition\n );\n linesLayout.push({\n str: clip.str,\n width: clip.width,\n ascent: 0,\n descent: 0,\n keepCenterInLine: false\n });\n lineWidth = Math.max(lineWidth, clip.width);\n break; // 不处理后续行\n }\n\n text = lines[i] as string;\n width = layoutObj.textMeasure.measureTextWidth(text, layoutObj.textOptions, wordBreak === 'break-word');\n lineWidth = Math.max(lineWidth, width);\n linesLayout.push({ str: text, width, ascent: 0, descent: 0, keepCenterInLine: false });\n }\n bboxWH[0] = lineWidth;\n }\n bboxWH[1] = linesLayout.length * (lineHeight + buf);\n\n const bbox = {\n xOffset: 0,\n yOffset: 0,\n width: bboxWH[0],\n height: bboxWH[1]\n };\n\n layoutObj.LayoutBBox(bbox, textAlign, textBaseline as any);\n\n const layoutData = layoutObj.layoutWithBBox(bbox, linesLayout, textAlign, textBaseline as any, lineHeight);\n\n // const layoutData = layoutObj.GetLayoutByLines(\n // text,\n // textAlign,\n // textBaseline as any,\n // lineHeight,\n // ellipsis === true ? (DefaultTextAttribute.ellipsis as string) : ellipsis || undefined,\n // maxLineWidth\n // );\n // const { bbox } = layoutData;\n this.cache.layoutData = layoutData;\n this.clearUpdateShapeTag();\n this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n\n if (stroke) {\n this._AABBBounds.expand(lineWidth / 2);\n }\n\n return this._AABBBounds;\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n if (keys.indexOf(attrKey) !== -1) {\n return true;\n }\n }\n return super.needUpdateTags(keys);\n }\n\n protected needUpdateTag(key: string): boolean {\n for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n if (key === attrKey) {\n return true;\n }\n }\n return super.needUpdateTag(key);\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return WrapText.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createWrapText(attributes: ITextGraphicAttribute): IText {\n return new WrapText(attributes);\n}\n"]}
1
+ {"version":3,"sources":["../src/graphic/wrap-text.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,qEAA4E;AAC5E,4CAMsB;AACtB,gDAA6C;AAC7C,iCAA8B;AAC9B,2CAAsD;AAEtD,MAAM,wBAAwB,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAO9D,MAAa,QAAS,SAAQ,WAAI;IAGhC,YAAY,MAA6B;QACvC,KAAK,iCAAM,MAAM,KAAE,IAAI,EAAE,IAAI,IAAG,CAAC;IACnC,CAAC;IAES,QAAQ;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE;YACjB,OAAO,CAAE,IAAc,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAClE;QACD,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;IACrC,CAAC;IAOD,yBAAyB,CAAC,IAAyB;;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,MAAM,EACJ,UAAU,GAAG,SAAS,CAAC,UAAU,EACjC,SAAS,GAAG,SAAS,CAAC,SAAS,EAC/B,YAAY,GAAG,SAAS,CAAC,YAAY,EACrC,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAC7B,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAC7B,YAAY,EACZ,MAAM,GAAG,SAAS,CAAC,MAAM,EACzB,SAAS,GAAG,SAAS,CAAC,SAAS,EAC/B,SAAS,GAAG,SAAS,CAAC,SAAS,EAC/B,UAAU,GAAG,SAAS,CAAC,UAAU,EAEjC,SAAS,GAAG,SAAS,CAAC,SAAS,EAC/B,WAAW,GAAG,CAAC,EACf,cAAc,GAAG,SAAS,CAAC,cAAc,EACzC,SAAS,EACV,GAAG,IAAI,CAAC,SAAS,CAAC;QACnB,MAAM,UAAU,GACd,MAAA,IAAA,2BAAmB,EAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,mCAC7F,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,CAAA,EAAE;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YACxG,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;aACxC;YACD,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QAED,MAAM,WAAW,GAAG,yBAAW,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,KAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,aAAa,CAAA,CAAC,CAAC;QACpH,MAAM,SAAS,GAAG,IAAI,yBAAgB,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,WAAkB,CAAQ,CAAC;QAGpH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAa,CAAC;QACtD,MAAM,WAAW,GAAqB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAExC,IAAI,cAAc,GAAG,QAAQ,CAAC;QAC9B,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;SACpE;QACD,IAAI,SAAS,EAAE;YAEb,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;SACtD;QAED,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,QAAQ,EAAE;YAEjE,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;oBAC/B,IAAI,OAAO,GAAG,IAAI,CAAC;oBAQnB,IAAI,CAAC,KAAK,cAAc,GAAG,CAAC,EAAE;wBAE5B,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CACnD,GAAG,EACH,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,cAAc,CACf,CAAC;wBACF,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,+BAA+B,CACnE,IAAI,CAAC,GAAG,EACR,SAAS,CAAC,WAAW,EACrB,2BAAe,CAAC,cAAc,CAC/B,CAAC;wBACF,WAAW,CAAC,IAAI,CAAC;4BACf,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,gBAAgB,EAAE,KAAK;yBACxB,CAAC,CAAC;wBACH,MAAM;qBACP;oBAGD,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,QAAQ,CACzC,GAAG,EACH,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,SAAS,KAAK,YAAY,CAC3B,CAAC;oBACF,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE;wBACjC,IAAI,QAAQ,EAAE;4BACZ,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAC3D,GAAG,EACH,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,cAAc,CACf,CAAC;4BACF,IAAI,CAAC,GAAG,GAAG,MAAA,YAAY,CAAC,GAAG,mCAAI,EAAE,CAAC;4BAClC,IAAI,CAAC,KAAK,GAAG,MAAA,YAAY,CAAC,KAAK,mCAAI,CAAC,CAAC;yBACtC;6BAAM;4BAEL,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;4BACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;yBAChB;wBACD,OAAO,GAAG,KAAK,CAAC;qBACjB;oBAED,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,+BAA+B,CACnE,IAAI,CAAC,GAAG,EACR,SAAS,CAAC,WAAW,EACrB,2BAAe,CAAC,cAAc,CAC/B,CAAC;oBAEF,WAAW,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;qBAEnC;yBAAM,IAAI,OAAO,EAAE;wBAClB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC9C,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;qBAChC;iBACF;aACF;YAED,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC3B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;SACtB;aAAM;YAEL,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,KAAa,CAAC;YAClB,IAAI,IAAY,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAEhD,IAAI,CAAC,KAAK,cAAc,GAAG,CAAC,EAAE;oBAE5B,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CACnD,KAAK,CAAC,CAAC,CAAC,EACR,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,cAAc,CACf,CAAC;oBACF,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,+BAA+B,CACnE,IAAI,CAAC,GAAG,EACR,SAAS,CAAC,WAAW,EACrB,2BAAe,CAAC,cAAc,CAC/B,CAAC;oBACF,WAAW,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5C,MAAM;iBACP;gBAED,IAAI,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;gBAC1B,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,KAAK,YAAY,CAAC,CAAC;gBACxG,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,+BAA+B,CACnE,IAAI,EACJ,SAAS,CAAC,WAAW,EACrB,2BAAe,CAAC,cAAc,CAC/B,CAAC;gBACF,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACvC,WAAW,CAAC,IAAI,CAAC;oBACf,GAAG,EAAE,IAAI;oBACT,KAAK;oBACL,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;YACD,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;SACvB;QACD,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;SAClB,CAAC;QAEF,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,YAAmB,EAAE,WAAW,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,YAAmB,EAAE,UAAU,CAAC,CAAC;QAW3G,IAAI,CAAC,gBAAgB,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC;QAChD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAExG,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAES,cAAc,CAAC,IAAc;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,MAAM,OAAO,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAES,aAAa,CAAC,GAAW;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,MAAM,OAAO,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,OAAO,EAAE;gBACnB,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,oBAAoB;QAClB,OAAO,QAAQ,CAAC,mBAAmB,CAAC;IACtC,CAAC;CACF;AA5QD,4BA4QC;AAED,SAAgB,cAAc,CAAC,UAAiC;IAC9D,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC;AAFD,wCAEC","file":"wrap-text.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { CanvasTextLayout } from '../core/contributions/textMeasure/layout';\nimport {\n MeasureModeEnum,\n type IText,\n type ITextGraphicAttribute,\n type IWrapTextGraphicAttribute,\n type LayoutItemType\n} from '../interface';\nimport { application } from '../application';\nimport { Text } from './text';\nimport { calculateLineHeight } from '../common/utils';\n\nconst WRAP_TEXT_UPDATE_TAG_KEY = ['heightLimit', 'lineClamp'];\n\n/* WrapText功能\n * 1. 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 2. 高度限制控制显示内容及省略号(heightLimit)\n * 3. 按照行数限制显示内容及省略号(lineClamp)\n */\nexport class WrapText extends Text {\n declare attribute: IWrapTextGraphicAttribute;\n\n constructor(params: ITextGraphicAttribute) {\n super({ ...params, wrap: true });\n }\n\n protected _isValid(): boolean {\n const { text } = this.attribute;\n if (isArray(text)) {\n return !(text as any[]).every((t: any) => t == null || t === '');\n }\n return text != null && text !== '';\n }\n\n /**\n * 计算多行文字的bounds,缓存每行文字的布局位置\n * 自动折行params.text是数组,因此只重新updateMultilineAABBBounds\n * @param text\n */\n updateMultilineAABBBounds(text: (number | string)[]) {\n const textTheme = this.getGraphicTheme();\n const {\n fontFamily = textTheme.fontFamily,\n textAlign = textTheme.textAlign,\n textBaseline = textTheme.textBaseline,\n fontSize = textTheme.fontSize,\n ellipsis = textTheme.ellipsis,\n maxLineWidth,\n stroke = textTheme.stroke,\n lineWidth = textTheme.lineWidth,\n wordBreak = textTheme.wordBreak,\n fontWeight = textTheme.fontWeight,\n // widthLimit,\n ignoreBuf = textTheme.ignoreBuf,\n heightLimit = 0,\n suffixPosition = textTheme.suffixPosition,\n lineClamp\n } = this.attribute;\n const lineHeight =\n calculateLineHeight(this.attribute.lineHeight, this.attribute.fontSize || textTheme.fontSize) ??\n (this.attribute.fontSize || textTheme.fontSize);\n const buf = ignoreBuf ? 0 : 2;\n if (!this.shouldUpdateShape() && this.cache?.layoutData) {\n const bbox = this.cache.layoutData.bbox;\n this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n if (stroke) {\n this._AABBBounds.expand(lineWidth / 2);\n }\n return this._AABBBounds;\n }\n\n const textMeasure = application.graphicUtil.getTextMeasureInstance(this.textMeasureId || this.stage?.textMeasureId);\n const layoutObj = new CanvasTextLayout(fontFamily, { fontSize, fontWeight, fontFamily }, textMeasure as any) as any;\n\n // layoutObj内逻辑\n const lines = text.map(l => l.toString()) as string[];\n const linesLayout: LayoutItemType[] = [];\n const bboxWH: [number, number] = [0, 0];\n\n let lineCountLimit = Infinity;\n if (heightLimit > 0) {\n lineCountLimit = Math.max(Math.floor(heightLimit / lineHeight), 1);\n }\n if (lineClamp) {\n // 处理行数限制\n lineCountLimit = Math.min(lineCountLimit, lineClamp);\n }\n\n if (typeof maxLineWidth === 'number' && maxLineWidth !== Infinity) {\n // widthLimit > 0\n if (maxLineWidth > 0) {\n for (let i = 0; i < lines.length; i++) {\n const str = lines[i] as string;\n let needCut = true;\n // // 测量当前行宽度\n // width = Math.min(\n // layoutObj.textMeasure.measureTextWidth(str, layoutObj.textOptions),\n // maxLineWidth\n // );\n\n // 判断是否超过高度限制\n if (i === lineCountLimit - 1) {\n // 当前行为最后一行\n const clip = layoutObj.textMeasure.clipTextWithSuffix(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n false,\n suffixPosition\n );\n const metrics = layoutObj.textMeasure.measureTextPixelADscentAndWidth(\n clip.str,\n layoutObj.textOptions,\n MeasureModeEnum.actualBounding\n );\n linesLayout.push({\n str: clip.str,\n width: clip.width,\n ascent: metrics.ascent,\n descent: metrics.descent,\n keepCenterInLine: false\n });\n break; // 不处理后续行\n }\n\n // 测量截断位置\n const clip = layoutObj.textMeasure.clipText(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n wordBreak === 'break-word'\n );\n if (str !== '' && clip.str === '') {\n if (ellipsis) {\n const clipEllipsis = layoutObj.textMeasure.clipTextWithSuffix(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n false,\n suffixPosition\n );\n clip.str = clipEllipsis.str ?? '';\n clip.width = clipEllipsis.width ?? 0;\n } else {\n // 宽度限制不足一个字符,不显示\n clip.str = '';\n clip.width = 0;\n }\n needCut = false;\n }\n\n const metrics = layoutObj.textMeasure.measureTextPixelADscentAndWidth(\n clip.str,\n layoutObj.textOptions,\n MeasureModeEnum.actualBounding\n );\n\n linesLayout.push({\n str: clip.str,\n width: clip.width,\n ascent: metrics.ascent,\n descent: metrics.descent,\n keepCenterInLine: false\n });\n if (clip.str.length === str.length) {\n // 不需要截断\n } else if (needCut) {\n const newStr = str.substring(clip.str.length);\n lines.splice(i + 1, 0, newStr);\n }\n }\n }\n // bboxWH[0] = maxLineWidth;\n let maxWidth = 0;\n linesLayout.forEach(layout => {\n maxWidth = Math.max(maxWidth, layout.width);\n });\n bboxWH[0] = maxWidth;\n } else {\n // 使用所有行中最长的作为lineWidth\n let lineWidth = 0;\n let width: number;\n let text: string;\n for (let i = 0, len = lines.length; i < len; i++) {\n // 判断是否超过高度限制\n if (i === lineCountLimit - 1) {\n // 当前行为最后一行\n const clip = layoutObj.textMeasure.clipTextWithSuffix(\n lines[i],\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n false,\n suffixPosition\n );\n const metrics = layoutObj.textMeasure.measureTextPixelADscentAndWidth(\n clip.str,\n layoutObj.textOptions,\n MeasureModeEnum.actualBounding\n );\n linesLayout.push({\n str: clip.str,\n width: clip.width,\n ascent: metrics.ascent,\n descent: metrics.descent,\n keepCenterInLine: false\n });\n lineWidth = Math.max(lineWidth, clip.width);\n break; // 不处理后续行\n }\n\n text = lines[i] as string;\n width = layoutObj.textMeasure.measureTextWidth(text, layoutObj.textOptions, wordBreak === 'break-word');\n const metrics = layoutObj.textMeasure.measureTextPixelADscentAndWidth(\n text,\n layoutObj.textOptions,\n MeasureModeEnum.actualBounding\n );\n lineWidth = Math.max(lineWidth, width);\n linesLayout.push({\n str: text,\n width,\n ascent: metrics.ascent,\n descent: metrics.descent,\n keepCenterInLine: false\n });\n }\n bboxWH[0] = lineWidth;\n }\n bboxWH[1] = linesLayout.length * (lineHeight + buf);\n\n const bbox = {\n xOffset: 0,\n yOffset: 0,\n width: bboxWH[0],\n height: bboxWH[1]\n };\n\n layoutObj.LayoutBBox(bbox, textAlign, textBaseline as any, linesLayout);\n\n const layoutData = layoutObj.layoutWithBBox(bbox, linesLayout, textAlign, textBaseline as any, lineHeight);\n\n // const layoutData = layoutObj.GetLayoutByLines(\n // text,\n // textAlign,\n // textBaseline as any,\n // lineHeight,\n // ellipsis === true ? (DefaultTextAttribute.ellipsis as string) : ellipsis || undefined,\n // maxLineWidth\n // );\n // const { bbox } = layoutData;\n this.getOrCreateCache().layoutData = layoutData;\n this.clearUpdateShapeTag();\n this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n\n if (stroke) {\n this._AABBBounds.expand(lineWidth / 2);\n }\n\n return this._AABBBounds;\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n if (keys.indexOf(attrKey) !== -1) {\n return true;\n }\n }\n return super.needUpdateTags(keys);\n }\n\n protected needUpdateTag(key: string): boolean {\n for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n if (key === attrKey) {\n return true;\n }\n }\n return super.needUpdateTag(key);\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return WrapText.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createWrapText(attributes: ITextGraphicAttribute): IText {\n return new WrapText(attributes);\n}\n"]}
package/cjs/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
- import './modules';
2
1
  export * from './core/global';
3
2
  export * from './graphic';
3
+ export { createGraphic, graphicCreator, registerGraphic } from './graphic/graphic-creator';
4
+ export { container, graphicUtil, transformUtil, graphicService, layerService } from './modules';
5
+ export { preLoadAllModule, getLegacyBindingContext, type ILegacyBindContext, type ILegacyBindingContext } from './legacy/bootstrap';
6
+ export { vglobal } from './global';
4
7
  export * from './create';
5
8
  export * from './event';
6
9
  export * from './interface';
@@ -14,6 +17,8 @@ export * from './picker';
14
17
  export * from './resource-loader/loader';
15
18
  export * from './color-string';
16
19
  export * from './factory';
20
+ export * from './registry';
21
+ export * from './entries';
17
22
  export * from './common/text';
18
23
  export * from './common/color-utils';
19
24
  export * from './common/bezier-utils';
@@ -22,6 +27,7 @@ export * from './common/seg-context';
22
27
  export * from './common/custom-path2d';
23
28
  export * from './common/segment';
24
29
  export * from './common/canvas-utils';
30
+ export * from './common/contribution-provider';
25
31
  export * from './common/generator';
26
32
  export * from './common/utils';
27
33
  export * from './common/shape/arc';
@@ -45,13 +51,29 @@ export * from './plugins/builtin-plugin/richtext-edit-plugin';
45
51
  export * from './allocator/matrix-allocate';
46
52
  export * from './allocator/canvas-allocate';
47
53
  export * from './allocator/graphic-allocate';
54
+ export * from './common/contribution-provider';
48
55
  export { wrapCanvas, wrapContext } from './canvas/util';
49
56
  export * from './common/xml';
57
+ export * from './common/explicit-binding';
50
58
  export * from './constants';
59
+ export * from './application';
51
60
  export * from './env-check';
52
- export * from './common/registry';
53
- export { vglobal, graphicService, graphicUtil, transformUtil, layerService } from './modules';
54
- export { serviceRegistry, contributionRegistry } from './common/registry';
61
+ export * from './render/contributions/render/arc-module';
62
+ export * from './render/contributions/render/rect-module';
63
+ export * from './render/contributions/render/line-module';
64
+ export * from './render/contributions/render/area-module';
65
+ export * from './render/contributions/render/symbol-module';
66
+ export * from './render/contributions/render/circle-module';
67
+ export * from './render/contributions/render/text-module';
68
+ export * from './render/contributions/render/path-module';
69
+ export * from './render/contributions/render/polygon-module';
70
+ export * from './render/contributions/render/star-module';
71
+ export * from './render/contributions/render/glyph-module';
72
+ export * from './render/contributions/render/richtext-module';
73
+ export * from './render/contributions/render/image-module';
74
+ export * from './render/contributions/render/rect3d-module';
75
+ export * from './render/contributions/render/arc3d-module';
76
+ export * from './render/contributions/render/pyramid3d-module';
55
77
  export * from './register/register-arc';
56
78
  export * from './register/register-arc3d';
57
79
  export * from './register/register-area';
package/cjs/index.js CHANGED
@@ -17,58 +17,34 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
17
17
 
18
18
  Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
- }), exports.contributionRegistry = exports.serviceRegistry = exports.layerService = exports.transformUtil = exports.graphicUtil = exports.graphicService = exports.vglobal = exports.wrapContext = exports.wrapCanvas = void 0,
21
- require("./modules"), __exportStar(require("./core/global"), exports), __exportStar(require("./graphic"), exports),
22
- __exportStar(require("./create"), exports), __exportStar(require("./event"), exports),
23
- __exportStar(require("./interface"), exports), __exportStar(require("./render"), exports),
24
- __exportStar(require("./render/contributions/render/base-render"), exports), __exportStar(require("./canvas"), exports),
25
- __exportStar(require("./core"), exports), __exportStar(require("./core/light"), exports),
26
- __exportStar(require("./core/camera"), exports), __exportStar(require("./picker"), exports),
27
- __exportStar(require("./resource-loader/loader"), exports), __exportStar(require("./color-string"), exports),
28
- __exportStar(require("./factory"), exports), __exportStar(require("./common/text"), exports),
29
- __exportStar(require("./common/color-utils"), exports), __exportStar(require("./common/bezier-utils"), exports),
30
- __exportStar(require("./common/bounds-context"), exports), __exportStar(require("./common/seg-context"), exports),
31
- __exportStar(require("./common/custom-path2d"), exports), __exportStar(require("./common/segment"), exports),
32
- __exportStar(require("./common/canvas-utils"), exports), __exportStar(require("./common/generator"), exports),
33
- __exportStar(require("./common/utils"), exports), __exportStar(require("./common/shape/arc"), exports),
34
- __exportStar(require("./common/shape/rect"), exports), __exportStar(require("./common/matrix"), exports),
35
- __exportStar(require("./common/simplify"), exports), __exportStar(require("./common/diff"), exports),
36
- __exportStar(require("./common/path-svg"), exports), __exportStar(require("./common/render-curve"), exports),
37
- __exportStar(require("./common/render-area"), exports), __exportStar(require("./common/render-command-list"), exports),
38
- __exportStar(require("./common/sort"), exports), __exportStar(require("./common/morphing-utils"), exports),
39
- __exportStar(require("./common/split-path"), exports), __exportStar(require("./common/enums"), exports),
40
- __exportStar(require("./common/generator"), exports), __exportStar(require("./common/performance-raf"), exports),
41
- __exportStar(require("./common/event-transformer"), exports), __exportStar(require("./plugins/constants"), exports),
42
- __exportStar(require("./plugins/builtin-plugin/richtext-edit-plugin"), exports),
43
- __exportStar(require("./allocator/matrix-allocate"), exports), __exportStar(require("./allocator/canvas-allocate"), exports),
44
- __exportStar(require("./allocator/graphic-allocate"), exports);
20
+ }), exports.wrapContext = exports.wrapCanvas = exports.vglobal = exports.getLegacyBindingContext = exports.preLoadAllModule = exports.layerService = exports.graphicService = exports.transformUtil = exports.graphicUtil = exports.container = exports.registerGraphic = exports.graphicCreator = exports.createGraphic = void 0,
21
+ __exportStar(require("./core/global"), exports), __exportStar(require("./graphic"), exports);
45
22
 
46
- var util_1 = require("./canvas/util");
23
+ var graphic_creator_1 = require("./graphic/graphic-creator");
47
24
 
48
- Object.defineProperty(exports, "wrapCanvas", {
25
+ Object.defineProperty(exports, "createGraphic", {
49
26
  enumerable: !0,
50
27
  get: function() {
51
- return util_1.wrapCanvas;
28
+ return graphic_creator_1.createGraphic;
52
29
  }
53
- }), Object.defineProperty(exports, "wrapContext", {
30
+ }), Object.defineProperty(exports, "graphicCreator", {
54
31
  enumerable: !0,
55
32
  get: function() {
56
- return util_1.wrapContext;
33
+ return graphic_creator_1.graphicCreator;
57
34
  }
58
- }), __exportStar(require("./common/xml"), exports), __exportStar(require("./constants"), exports),
59
- __exportStar(require("./env-check"), exports), __exportStar(require("./common/registry"), exports);
60
-
61
- var modules_1 = require("./modules");
62
-
63
- Object.defineProperty(exports, "vglobal", {
35
+ }), Object.defineProperty(exports, "registerGraphic", {
64
36
  enumerable: !0,
65
37
  get: function() {
66
- return modules_1.vglobal;
38
+ return graphic_creator_1.registerGraphic;
67
39
  }
68
- }), Object.defineProperty(exports, "graphicService", {
40
+ });
41
+
42
+ var modules_1 = require("./modules");
43
+
44
+ Object.defineProperty(exports, "container", {
69
45
  enumerable: !0,
70
46
  get: function() {
71
- return modules_1.graphicService;
47
+ return modules_1.container;
72
48
  }
73
49
  }), Object.defineProperty(exports, "graphicUtil", {
74
50
  enumerable: !0,
@@ -80,6 +56,11 @@ Object.defineProperty(exports, "vglobal", {
80
56
  get: function() {
81
57
  return modules_1.transformUtil;
82
58
  }
59
+ }), Object.defineProperty(exports, "graphicService", {
60
+ enumerable: !0,
61
+ get: function() {
62
+ return modules_1.graphicService;
63
+ }
83
64
  }), Object.defineProperty(exports, "layerService", {
84
65
  enumerable: !0,
85
66
  get: function() {
@@ -87,19 +68,76 @@ Object.defineProperty(exports, "vglobal", {
87
68
  }
88
69
  });
89
70
 
90
- var registry_1 = require("./common/registry");
71
+ var bootstrap_1 = require("./legacy/bootstrap");
91
72
 
92
- Object.defineProperty(exports, "serviceRegistry", {
73
+ Object.defineProperty(exports, "preLoadAllModule", {
93
74
  enumerable: !0,
94
75
  get: function() {
95
- return registry_1.serviceRegistry;
76
+ return bootstrap_1.preLoadAllModule;
96
77
  }
97
- }), Object.defineProperty(exports, "contributionRegistry", {
78
+ }), Object.defineProperty(exports, "getLegacyBindingContext", {
98
79
  enumerable: !0,
99
80
  get: function() {
100
- return registry_1.contributionRegistry;
81
+ return bootstrap_1.getLegacyBindingContext;
82
+ }
83
+ });
84
+
85
+ var global_1 = require("./global");
86
+
87
+ Object.defineProperty(exports, "vglobal", {
88
+ enumerable: !0,
89
+ get: function() {
90
+ return global_1.vglobal;
91
+ }
92
+ }), __exportStar(require("./create"), exports), __exportStar(require("./event"), exports),
93
+ __exportStar(require("./interface"), exports), __exportStar(require("./render"), exports),
94
+ __exportStar(require("./render/contributions/render/base-render"), exports), __exportStar(require("./canvas"), exports),
95
+ __exportStar(require("./core"), exports), __exportStar(require("./core/light"), exports),
96
+ __exportStar(require("./core/camera"), exports), __exportStar(require("./picker"), exports),
97
+ __exportStar(require("./resource-loader/loader"), exports), __exportStar(require("./color-string"), exports),
98
+ __exportStar(require("./factory"), exports), __exportStar(require("./registry"), exports),
99
+ __exportStar(require("./entries"), exports), __exportStar(require("./common/text"), exports),
100
+ __exportStar(require("./common/color-utils"), exports), __exportStar(require("./common/bezier-utils"), exports),
101
+ __exportStar(require("./common/bounds-context"), exports), __exportStar(require("./common/seg-context"), exports),
102
+ __exportStar(require("./common/custom-path2d"), exports), __exportStar(require("./common/segment"), exports),
103
+ __exportStar(require("./common/canvas-utils"), exports), __exportStar(require("./common/contribution-provider"), exports),
104
+ __exportStar(require("./common/generator"), exports), __exportStar(require("./common/utils"), exports),
105
+ __exportStar(require("./common/shape/arc"), exports), __exportStar(require("./common/shape/rect"), exports),
106
+ __exportStar(require("./common/matrix"), exports), __exportStar(require("./common/simplify"), exports),
107
+ __exportStar(require("./common/diff"), exports), __exportStar(require("./common/path-svg"), exports),
108
+ __exportStar(require("./common/render-curve"), exports), __exportStar(require("./common/render-area"), exports),
109
+ __exportStar(require("./common/render-command-list"), exports), __exportStar(require("./common/sort"), exports),
110
+ __exportStar(require("./common/morphing-utils"), exports), __exportStar(require("./common/split-path"), exports),
111
+ __exportStar(require("./common/enums"), exports), __exportStar(require("./common/generator"), exports),
112
+ __exportStar(require("./common/performance-raf"), exports), __exportStar(require("./common/event-transformer"), exports),
113
+ __exportStar(require("./plugins/constants"), exports), __exportStar(require("./plugins/builtin-plugin/richtext-edit-plugin"), exports),
114
+ __exportStar(require("./allocator/matrix-allocate"), exports), __exportStar(require("./allocator/canvas-allocate"), exports),
115
+ __exportStar(require("./allocator/graphic-allocate"), exports), __exportStar(require("./common/contribution-provider"), exports);
116
+
117
+ var util_1 = require("./canvas/util");
118
+
119
+ Object.defineProperty(exports, "wrapCanvas", {
120
+ enumerable: !0,
121
+ get: function() {
122
+ return util_1.wrapCanvas;
123
+ }
124
+ }), Object.defineProperty(exports, "wrapContext", {
125
+ enumerable: !0,
126
+ get: function() {
127
+ return util_1.wrapContext;
101
128
  }
102
- }), __exportStar(require("./register/register-arc"), exports), __exportStar(require("./register/register-arc3d"), exports),
129
+ }), __exportStar(require("./common/xml"), exports), __exportStar(require("./common/explicit-binding"), exports),
130
+ __exportStar(require("./constants"), exports), __exportStar(require("./application"), exports),
131
+ __exportStar(require("./env-check"), exports), __exportStar(require("./render/contributions/render/arc-module"), exports),
132
+ __exportStar(require("./render/contributions/render/rect-module"), exports), __exportStar(require("./render/contributions/render/line-module"), exports),
133
+ __exportStar(require("./render/contributions/render/area-module"), exports), __exportStar(require("./render/contributions/render/symbol-module"), exports),
134
+ __exportStar(require("./render/contributions/render/circle-module"), exports), __exportStar(require("./render/contributions/render/text-module"), exports),
135
+ __exportStar(require("./render/contributions/render/path-module"), exports), __exportStar(require("./render/contributions/render/polygon-module"), exports),
136
+ __exportStar(require("./render/contributions/render/star-module"), exports), __exportStar(require("./render/contributions/render/glyph-module"), exports),
137
+ __exportStar(require("./render/contributions/render/richtext-module"), exports),
138
+ __exportStar(require("./render/contributions/render/image-module"), exports), __exportStar(require("./render/contributions/render/rect3d-module"), exports),
139
+ __exportStar(require("./render/contributions/render/arc3d-module"), exports), __exportStar(require("./render/contributions/render/pyramid3d-module"), exports),
140
+ __exportStar(require("./register/register-arc"), exports), __exportStar(require("./register/register-arc3d"), exports),
103
141
  __exportStar(require("./register/register-area"), exports), __exportStar(require("./register/register-circle"), exports),
104
142
  __exportStar(require("./register/register-glyph"), exports), __exportStar(require("./register/register-group"), exports),
105
143
  __exportStar(require("./register/register-image"), exports), __exportStar(require("./register/register-line"), exports),
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,qBAAmB;AAEnB,gDAA8B;AAC9B,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,2CAAyB;AACzB,4EAA0D;AAC1D,2CAAyB;AACzB,yCAAuB;AACvB,+CAA6B;AAC7B,gDAA8B;AAC9B,2CAAyB;AACzB,2DAAyC;AACzC,iDAA+B;AAC/B,4CAA0B;AAG1B,gDAA8B;AAC9B,uDAAqC;AACrC,wDAAsC;AACtC,0DAAwC;AACxC,uDAAqC;AACrC,yDAAuC;AACvC,mDAAiC;AACjC,wDAAsC;AACtC,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,sDAAoC;AACpC,kDAAgC;AAChC,oDAAkC;AAClC,gDAA8B;AAE9B,oDAAkC;AAClC,wDAAsC;AACtC,uDAAqC;AACrC,+DAA6C;AAC7C,gDAA8B;AAC9B,0DAAwC;AACxC,sDAAoC;AACpC,iDAA+B;AAC/B,qDAAmC;AACnC,2DAAyC;AACzC,6DAA2C;AAC3C,sDAAoC;AACpC,gFAA8D;AAC9D,8DAA4C;AAC5C,8DAA4C;AAC5C,+DAA6C;AAE7C,sCAAwD;AAA/C,kGAAA,UAAU,OAAA;AAAE,mGAAA,WAAW,OAAA;AAChC,+CAA6B;AAC7B,8CAA4B;AAC5B,8CAA4B;AAC5B,oDAAkC;AAClC,qCAA8F;AAArF,kGAAA,OAAO,OAAA;AAAE,yGAAA,cAAc,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,wGAAA,aAAa,OAAA;AAAE,uGAAA,YAAY,OAAA;AAC1E,8CAA0E;AAAjE,2GAAA,eAAe,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AAE9C,0DAAwC;AACxC,4DAA0C;AAC1C,2DAAyC;AACzC,6DAA2C;AAC3C,4DAA0C;AAC1C,4DAA0C;AAC1C,4DAA0C;AAC1C,2DAAyC;AACzC,2DAAyC;AACzC,8DAA4C;AAC5C,2DAAyC;AACzC,gEAA8C;AAC9C,2DAAyC;AACzC,6DAA2C;AAC3C,+DAA6C;AAC7C,6DAA2C;AAC3C,2DAAyC;AACzC,iEAA+C;AAC/C,+DAA6C;AAG7C,iFAA+D;AAC/D,kFAAgE;AAChE,mFAAiE;AACjE,8EAA4D;AAE5D,uEAAqD","file":"index.js","sourcesContent":["// import 'core-js/proposals/reflect-metadata';\n\n// 必须在所有其他导出之前加载,确保服务注册表被初始化\nimport './modules';\n\nexport * from './core/global';\nexport * from './graphic';\nexport * from './create';\nexport * from './event';\nexport * from './interface';\nexport * from './render';\nexport * from './render/contributions/render/base-render';\nexport * from './canvas';\nexport * from './core';\nexport * from './core/light';\nexport * from './core/camera';\nexport * from './picker';\nexport * from './resource-loader/loader';\nexport * from './color-string';\nexport * from './factory';\n\n/* export common */\nexport * from './common/text';\nexport * from './common/color-utils';\nexport * from './common/bezier-utils';\nexport * from './common/bounds-context';\nexport * from './common/seg-context';\nexport * from './common/custom-path2d';\nexport * from './common/segment';\nexport * from './common/canvas-utils';\nexport * from './common/generator';\nexport * from './common/utils';\nexport * from './common/shape/arc';\nexport * from './common/shape/rect';\nexport * from './common/matrix';\nexport * from './common/simplify';\nexport * from './common/diff';\n\nexport * from './common/path-svg';\nexport * from './common/render-curve';\nexport * from './common/render-area';\nexport * from './common/render-command-list';\nexport * from './common/sort';\nexport * from './common/morphing-utils';\nexport * from './common/split-path';\nexport * from './common/enums';\nexport * from './common/generator';\nexport * from './common/performance-raf';\nexport * from './common/event-transformer';\nexport * from './plugins/constants';\nexport * from './plugins/builtin-plugin/richtext-edit-plugin';\nexport * from './allocator/matrix-allocate';\nexport * from './allocator/canvas-allocate';\nexport * from './allocator/graphic-allocate';\n\nexport { wrapCanvas, wrapContext } from './canvas/util';\nexport * from './common/xml';\nexport * from './constants';\nexport * from './env-check';\nexport * from './common/registry'; // 导出 registry\nexport { vglobal, graphicService, graphicUtil, transformUtil, layerService } from './modules'; // 导出全局服务\nexport { serviceRegistry, contributionRegistry } from './common/registry'; // 导出注册表以供测试使用\n\nexport * from './register/register-arc';\nexport * from './register/register-arc3d';\nexport * from './register/register-area';\nexport * from './register/register-circle';\nexport * from './register/register-glyph';\nexport * from './register/register-group';\nexport * from './register/register-image';\nexport * from './register/register-line';\nexport * from './register/register-path';\nexport * from './register/register-polygon';\nexport * from './register/register-star';\nexport * from './register/register-pyramid3d';\nexport * from './register/register-rect';\nexport * from './register/register-rect3d';\nexport * from './register/register-richtext';\nexport * from './register/register-symbol';\nexport * from './register/register-text';\nexport * from './register/register-shadowRoot';\nexport * from './register/register-wraptext';\n\n// plugin\nexport * from './plugins/builtin-plugin/html-attribute-plugin';\nexport * from './plugins/builtin-plugin/react-attribute-plugin';\nexport * from './plugins/builtin-plugin/3dview-transform-plugin';\nexport * from './plugins/builtin-plugin/flex-layout-plugin';\n\nexport * from './plugins/builtin-plugin/edit-module';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,gDAA8B;AAC9B,4CAA0B;AAC1B,6DAA2F;AAAlF,gHAAA,aAAa,OAAA;AAAE,iHAAA,cAAc,OAAA;AAAE,kHAAA,eAAe,OAAA;AACvD,qCAAgG;AAAvF,oGAAA,SAAS,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,wGAAA,aAAa,OAAA;AAAE,yGAAA,cAAc,OAAA;AAAE,uGAAA,YAAY,OAAA;AAC5E,gDAK4B;AAJ1B,6GAAA,gBAAgB,OAAA;AAChB,oHAAA,uBAAuB,OAAA;AAIzB,mCAAmC;AAA1B,iGAAA,OAAO,OAAA;AAChB,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,2CAAyB;AACzB,4EAA0D;AAC1D,2CAAyB;AACzB,yCAAuB;AACvB,+CAA6B;AAC7B,gDAA8B;AAC9B,2CAAyB;AACzB,2DAAyC;AACzC,iDAA+B;AAC/B,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B;AAG1B,gDAA8B;AAC9B,uDAAqC;AACrC,wDAAsC;AACtC,0DAAwC;AACxC,uDAAqC;AACrC,yDAAuC;AACvC,mDAAiC;AACjC,wDAAsC;AACtC,iEAA+C;AAC/C,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,sDAAoC;AACpC,kDAAgC;AAChC,oDAAkC;AAClC,gDAA8B;AAE9B,oDAAkC;AAClC,wDAAsC;AACtC,uDAAqC;AACrC,+DAA6C;AAC7C,gDAA8B;AAC9B,0DAAwC;AACxC,sDAAoC;AACpC,iDAA+B;AAC/B,qDAAmC;AACnC,2DAAyC;AACzC,6DAA2C;AAC3C,sDAAoC;AACpC,gFAA8D;AAC9D,8DAA4C;AAC5C,8DAA4C;AAC5C,+DAA6C;AAC7C,iEAA+C;AAE/C,sCAAwD;AAA/C,kGAAA,UAAU,OAAA;AAAE,mGAAA,WAAW,OAAA;AAChC,+CAA6B;AAC7B,4DAA0C;AAC1C,8CAA4B;AAC5B,gDAA8B;AAC9B,8CAA4B;AAE5B,2EAAyD;AACzD,4EAA0D;AAC1D,4EAA0D;AAC1D,4EAA0D;AAC1D,8EAA4D;AAC5D,8EAA4D;AAC5D,4EAA0D;AAC1D,4EAA0D;AAC1D,+EAA6D;AAC7D,4EAA0D;AAC1D,6EAA2D;AAC3D,gFAA8D;AAC9D,6EAA2D;AAC3D,8EAA4D;AAC5D,6EAA2D;AAC3D,iFAA+D;AAE/D,0DAAwC;AACxC,4DAA0C;AAC1C,2DAAyC;AACzC,6DAA2C;AAC3C,4DAA0C;AAC1C,4DAA0C;AAC1C,4DAA0C;AAC1C,2DAAyC;AACzC,2DAAyC;AACzC,8DAA4C;AAC5C,2DAAyC;AACzC,gEAA8C;AAC9C,2DAAyC;AACzC,6DAA2C;AAC3C,+DAA6C;AAC7C,6DAA2C;AAC3C,2DAAyC;AACzC,iEAA+C;AAC/C,+DAA6C;AAG7C,iFAA+D;AAC/D,kFAAgE;AAChE,mFAAiE;AACjE,8EAA4D;AAE5D,uEAAqD","file":"index.js","sourcesContent":["// import 'core-js/proposals/reflect-metadata';\nexport * from './core/global';\nexport * from './graphic';\nexport { createGraphic, graphicCreator, registerGraphic } from './graphic/graphic-creator';\nexport { container, graphicUtil, transformUtil, graphicService, layerService } from './modules';\nexport {\n preLoadAllModule,\n getLegacyBindingContext,\n type ILegacyBindContext,\n type ILegacyBindingContext\n} from './legacy/bootstrap';\nexport { vglobal } from './global';\nexport * from './create';\nexport * from './event';\nexport * from './interface';\nexport * from './render';\nexport * from './render/contributions/render/base-render';\nexport * from './canvas';\nexport * from './core';\nexport * from './core/light';\nexport * from './core/camera';\nexport * from './picker';\nexport * from './resource-loader/loader';\nexport * from './color-string';\nexport * from './factory';\nexport * from './registry';\nexport * from './entries';\n\n/* export common */\nexport * from './common/text';\nexport * from './common/color-utils';\nexport * from './common/bezier-utils';\nexport * from './common/bounds-context';\nexport * from './common/seg-context';\nexport * from './common/custom-path2d';\nexport * from './common/segment';\nexport * from './common/canvas-utils';\nexport * from './common/contribution-provider';\nexport * from './common/generator';\nexport * from './common/utils';\nexport * from './common/shape/arc';\nexport * from './common/shape/rect';\nexport * from './common/matrix';\nexport * from './common/simplify';\nexport * from './common/diff';\n\nexport * from './common/path-svg';\nexport * from './common/render-curve';\nexport * from './common/render-area';\nexport * from './common/render-command-list';\nexport * from './common/sort';\nexport * from './common/morphing-utils';\nexport * from './common/split-path';\nexport * from './common/enums';\nexport * from './common/generator';\nexport * from './common/performance-raf';\nexport * from './common/event-transformer';\nexport * from './plugins/constants';\nexport * from './plugins/builtin-plugin/richtext-edit-plugin';\nexport * from './allocator/matrix-allocate';\nexport * from './allocator/canvas-allocate';\nexport * from './allocator/graphic-allocate';\nexport * from './common/contribution-provider';\n\nexport { wrapCanvas, wrapContext } from './canvas/util';\nexport * from './common/xml';\nexport * from './common/explicit-binding';\nexport * from './constants';\nexport * from './application';\nexport * from './env-check';\n\nexport * from './render/contributions/render/arc-module';\nexport * from './render/contributions/render/rect-module';\nexport * from './render/contributions/render/line-module';\nexport * from './render/contributions/render/area-module';\nexport * from './render/contributions/render/symbol-module';\nexport * from './render/contributions/render/circle-module';\nexport * from './render/contributions/render/text-module';\nexport * from './render/contributions/render/path-module';\nexport * from './render/contributions/render/polygon-module';\nexport * from './render/contributions/render/star-module';\nexport * from './render/contributions/render/glyph-module';\nexport * from './render/contributions/render/richtext-module';\nexport * from './render/contributions/render/image-module';\nexport * from './render/contributions/render/rect3d-module';\nexport * from './render/contributions/render/arc3d-module';\nexport * from './render/contributions/render/pyramid3d-module';\n\nexport * from './register/register-arc';\nexport * from './register/register-arc3d';\nexport * from './register/register-area';\nexport * from './register/register-circle';\nexport * from './register/register-glyph';\nexport * from './register/register-group';\nexport * from './register/register-image';\nexport * from './register/register-line';\nexport * from './register/register-path';\nexport * from './register/register-polygon';\nexport * from './register/register-star';\nexport * from './register/register-pyramid3d';\nexport * from './register/register-rect';\nexport * from './register/register-rect3d';\nexport * from './register/register-richtext';\nexport * from './register/register-symbol';\nexport * from './register/register-text';\nexport * from './register/register-shadowRoot';\nexport * from './register/register-wraptext';\n\n// plugin\nexport * from './plugins/builtin-plugin/html-attribute-plugin';\nexport * from './plugins/builtin-plugin/react-attribute-plugin';\nexport * from './plugins/builtin-plugin/3dview-transform-plugin';\nexport * from './plugins/builtin-plugin/flex-layout-plugin';\n\nexport * from './plugins/builtin-plugin/edit-module';\n\n// export const morphPath = {};\n// export const multiToOneMorph = {};\n// export const oneToMultiMorph = {};\n// export class ACustomAnimate {}\n// export const AnimateGroup = {};\n// export const Animate = {};\n// export const defaultTicker = {};\n"]}
@@ -8,7 +8,7 @@ export type CanvasConfigType = {
8
8
  y?: number;
9
9
  container?: HTMLElement | string;
10
10
  visiable?: boolean;
11
- nativeCanvas?: HTMLCanvasElement | any;
11
+ nativeCanvas: HTMLCanvasElement | any;
12
12
  canvasControled?: boolean;
13
13
  id?: string;
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interface/canvas.ts"],"names":[],"mappings":"","file":"canvas.js","sourcesContent":["/**\n * 提供ICanvas和ICanvasLike封装\n */\nimport type { Releaseable } from './common';\nimport type { IContextLike, IContext2d } from './context';\n\nexport type CanvasConfigType = {\n width?: number;\n height?: number;\n dpr?: number;\n x?: number;\n y?: number;\n container?: HTMLElement | string;\n visiable?: boolean;\n nativeCanvas?: HTMLCanvasElement | any;\n canvasControled?: boolean;\n id?: string;\n};\n\nexport interface ICanvas extends Releaseable {\n width: number;\n height: number;\n id: number | string;\n x: number;\n y: number;\n visiable: boolean;\n nativeCanvas: HTMLCanvasElement | any;\n displayWidth: number;\n displayHeight: number;\n dpr: number;\n\n getContext: (contextId?: '2d', contextAttributes?: CanvasRenderingContext2DSettings) => IContext2d | null;\n\n getNativeCanvas: () => HTMLCanvasElement | any;\n\n // getContext(\n // contextId: 'bitmaprenderer',\n // contextAttributes?: WebGLContextAttributes,\n // ): ImageBitmapRenderingContext | null;\n\n // getContext(contextId: 'webgl', contextAttributes?: WebGLContextAttributes): WebGLRenderingContext | null;\n\n // getContext(contextId: 'webgl2', contextAttributes?: WebGLContextAttributes): WebGL2RenderingContext | null;\n\n convertToBlob: (options?: { type?: string | undefined; quality?: number | undefined }) => Promise<Blob>;\n\n transferToImageBitmap: () => ImageBitmap;\n\n resetStyle: (params: Partial<CanvasConfigType>) => void;\n applyPosition: () => void;\n\n hide: () => void;\n show: () => void;\n\n resize: (width: number, height: number) => void;\n\n toDataURL: (() => string) &\n ((mimeType: 'image/png') => string) &\n ((mimeType: 'image/jpeg', quality: number) => string);\n\n readPixels: (x: number, y: number, w: number, h: number) => ImageData | Promise<ImageData>;\n\n release: () => void;\n}\n\nexport interface ICanvasLike {\n width: number;\n height: number;\n\n /** _Non standard._ The type of the canvas. */\n readonly type?: 'image' | 'pdf' | 'svg';\n\n /** _Non standard._ Getter. The stride used by the canvas. */\n readonly stride?: number;\n\n /** Constant used in PNG encoding methods. */\n readonly PNG_NO_FILTERS?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_ALL_FILTERS?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_NONE?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_SUB?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_UP?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_AVG?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_PAETH?: number;\n\n getContext: (contextId: string) => IContextLike;\n}\n\nexport interface ICanvasFactory extends Function {\n (...params: any): ICanvas;\n}\n\nexport interface IContext2dFactory extends Function {\n (...params: any): IContext2d;\n}\n"]}
1
+ {"version":3,"sources":["../src/interface/canvas.ts"],"names":[],"mappings":"","file":"canvas.js","sourcesContent":["/**\n * 提供ICanvas和ICanvasLike封装\n */\nimport type { Releaseable } from './common';\nimport type { IContextLike, IContext2d } from './context';\n\nexport type CanvasConfigType = {\n width?: number;\n height?: number;\n dpr?: number;\n x?: number;\n y?: number;\n container?: HTMLElement | string;\n visiable?: boolean;\n nativeCanvas: HTMLCanvasElement | any;\n canvasControled?: boolean;\n id?: string;\n};\n\nexport interface ICanvas extends Releaseable {\n width: number;\n height: number;\n id: number | string;\n x: number;\n y: number;\n visiable: boolean;\n nativeCanvas: HTMLCanvasElement | any;\n displayWidth: number;\n displayHeight: number;\n dpr: number;\n\n getContext: (contextId?: '2d', contextAttributes?: CanvasRenderingContext2DSettings) => IContext2d | null;\n\n getNativeCanvas: () => HTMLCanvasElement | any;\n\n // getContext(\n // contextId: 'bitmaprenderer',\n // contextAttributes?: WebGLContextAttributes,\n // ): ImageBitmapRenderingContext | null;\n\n // getContext(contextId: 'webgl', contextAttributes?: WebGLContextAttributes): WebGLRenderingContext | null;\n\n // getContext(contextId: 'webgl2', contextAttributes?: WebGLContextAttributes): WebGL2RenderingContext | null;\n\n convertToBlob: (options?: { type?: string | undefined; quality?: number | undefined }) => Promise<Blob>;\n\n transferToImageBitmap: () => ImageBitmap;\n\n resetStyle: (params: Partial<CanvasConfigType>) => void;\n applyPosition: () => void;\n\n hide: () => void;\n show: () => void;\n\n resize: (width: number, height: number) => void;\n\n toDataURL: (() => string) &\n ((mimeType: 'image/png') => string) &\n ((mimeType: 'image/jpeg', quality: number) => string);\n\n readPixels: (x: number, y: number, w: number, h: number) => ImageData | Promise<ImageData>;\n\n release: () => void;\n}\n\nexport interface ICanvasLike {\n width: number;\n height: number;\n\n /** _Non standard._ The type of the canvas. */\n readonly type?: 'image' | 'pdf' | 'svg';\n\n /** _Non standard._ Getter. The stride used by the canvas. */\n readonly stride?: number;\n\n /** Constant used in PNG encoding methods. */\n readonly PNG_NO_FILTERS?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_ALL_FILTERS?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_NONE?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_SUB?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_UP?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_AVG?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_PAETH?: number;\n\n getContext: (contextId: string) => IContextLike;\n}\n\nexport interface ICanvasFactory extends Function {\n (...params: any): ICanvas;\n}\n\nexport interface IContext2dFactory extends Function {\n (...params: any): IContext2d;\n}\n"]}
@@ -3,6 +3,7 @@ import type { ICanvasLike } from './canvas';
3
3
  import type { IEventElement } from './common';
4
4
  import type { IContribution } from './contribution';
5
5
  import type { ISyncHook } from './sync-hook';
6
+ import type { PerformanceRAF } from '../common/performance-raf';
6
7
  export interface ILoader {
7
8
  loadImage: (url: string) => HTMLImageElement | ImageData;
8
9
  loadJson: (url: string) => JSON;
@@ -134,6 +135,7 @@ export interface IGlobal extends Omit<IEventElement, 'on' | 'off' | 'once' | 'em
134
135
  getCancelAnimationFrame: () => null | ((h: number) => void);
135
136
  getSpecifiedRequestAnimationFrame: (id: number) => (callback: FrameRequestCallback) => number;
136
137
  getSpecifiedCancelAnimationFrame: (id: number) => (h: number) => void;
138
+ getSpecifiedPerformanceRAF: (id: number) => PerformanceRAF;
137
139
  mapToCanvasPoint: (nativeEvent: any, domElement?: any) => IPointLike | null;
138
140
  loadImage: (url: string) => Promise<{
139
141
  loadState: 'success' | 'fail';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interface/global.ts"],"names":[],"mappings":"","file":"global.js","sourcesContent":["import type { Dict, IAABBBoundsLike, IPointLike } from '@visactor/vutils';\nimport type { ICanvasLike } from './canvas';\nimport type { IEventElement } from './common';\nimport type { IContribution } from './contribution';\nimport type { ISyncHook } from './sync-hook';\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\n// 环境定义\nexport type EnvType = 'browser' | 'feishu' | 'tt' | 'taro' | 'node' | 'native' | 'lynx' | 'wx' | 'harmony';\n\n// 创建canvas需要的参数\nexport interface ICreateCanvasParams {\n id?: string;\n // 像素宽\n width?: number;\n // 像素高\n height?: number;\n dpr?: number;\n}\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\nexport interface IEnvContribution\n extends IContribution<IGlobal>,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n type: EnvType;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 开始配置环境,相当于init\n configure: (global: IGlobal, ...p: any) => void;\n\n // 创建销毁\n createCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n releaseCanvas: (canvas: ICanvasLike | string | any) => void;\n\n getNativeAABBBounds: (dom: string | HTMLElement | any) => IAABBBoundsLike;\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n // 设备信息\n getDevicePixelRatio: () => number;\n\n // 通用接口\n getRequestAnimationFrame: () => (callback: FrameRequestCallback) => number;\n getCancelAnimationFrame: () => (h: number) => void;\n\n // DOM接口\n getElementById?: (str: string) => HTMLElement | null;\n getRootElement?: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument?: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint?: (event: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n // @since 0.21.3\n /**\n * 加载字体,参数对应Font类\n * @param font 字体名\n * @param source 数据源\n * @param descriptors 其他描述\n * @returns\n */\n loadFont: (\n font: string,\n source: string | any,\n descriptors?: FontFaceDescriptors\n ) => Promise<{\n loadState: 'success' | 'fail';\n }>;\n\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n}\n\nexport type IMiniAppEnvParams = {\n /** dom 容器对象 */\n domref?: Dict<any>;\n /**\n * 强行设置env,如果env重复设置也设置\n */\n force?: boolean;\n /**\n * 可用的canvas列表\n */\n canvasIdLists?: (string | number)[];\n /**\n * 表示可以自由使用的canvas索引\n */\n freeCanvasIdx?: string | number;\n /** taro 环境使用 */\n taro?: any;\n pixelRatio?: number;\n [key: string]: any;\n};\n\nexport interface IEnvParamsMap {\n readonly taro: IMiniAppEnvParams;\n readonly feishu: IMiniAppEnvParams;\n readonly tt: IMiniAppEnvParams;\n readonly browser: any;\n readonly node: any;\n readonly native: any;\n readonly lynx: any;\n readonly wx: any;\n readonly harmony: any;\n}\n\nexport type CreateDOMParamsType = {\n tagName?: string;\n width?: number;\n height?: number;\n style?: string | Record<string, any>;\n parent?: string | HTMLElement;\n};\nexport interface IGlobal extends Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n env: EnvType;\n\n // 设备的dpr\n devicePixelRatio: number;\n\n // 当设置env的时候被调用\n hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n // 设置env的时候传入的参数\n // node环境需要传入整个node-canvas包\n // 小程序环境需要传入小程序要用到的参数\n envParams?: any;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 是否在不显示canvas的时候停止绘图操作,默认false\n optimizeVisible: boolean;\n\n setEnv: (env: EnvType, params?: IEnvParamsMap[EnvType]) => void;\n setActiveEnvContribution: (contribution: IEnvContribution) => void;\n createCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n releaseCanvas: (canvas: HTMLCanvasElement | string | any) => void;\n setEventListenerTransformer: (transformer: (event: Event) => Event) => void;\n\n /**\n * 获取环境中最大动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n isChrome: () => boolean;\n isSafari: () => boolean;\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n\n /**\n * 获取环境中最大静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n /* 浏览器环境 - dom tree */\n getElementById: (str: string) => HTMLElement | null;\n getRootElement: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n /**\n * 测量文字的方法\n */\n measureTextMethod: 'native' | 'simple' | 'quick';\n\n getRequestAnimationFrame: () => null | ((callback: FrameRequestCallback) => number);\n getCancelAnimationFrame: () => null | ((h: number) => void);\n getSpecifiedRequestAnimationFrame: (id: number) => (callback: FrameRequestCallback) => number;\n getSpecifiedCancelAnimationFrame: (id: number) => (h: number) => void;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint: (nativeEvent: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n isImageAnonymous: boolean;\n}\n"]}
1
+ {"version":3,"sources":["../src/interface/global.ts"],"names":[],"mappings":"","file":"global.js","sourcesContent":["import type { Dict, IAABBBoundsLike, IPointLike } from '@visactor/vutils';\nimport type { ICanvasLike } from './canvas';\nimport type { IEventElement } from './common';\nimport type { IContribution } from './contribution';\nimport type { ISyncHook } from './sync-hook';\nimport type { PerformanceRAF } from '../common/performance-raf';\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\n// 环境定义\nexport type EnvType = 'browser' | 'feishu' | 'tt' | 'taro' | 'node' | 'native' | 'lynx' | 'wx' | 'harmony';\n\n// 创建canvas需要的参数\nexport interface ICreateCanvasParams {\n id?: string;\n // 像素宽\n width?: number;\n // 像素高\n height?: number;\n dpr?: number;\n}\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\nexport interface IEnvContribution\n extends IContribution<IGlobal>,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n type: EnvType;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 开始配置环境,相当于init\n configure: (global: IGlobal, ...p: any) => void;\n\n // 创建销毁\n createCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n releaseCanvas: (canvas: ICanvasLike | string | any) => void;\n\n getNativeAABBBounds: (dom: string | HTMLElement | any) => IAABBBoundsLike;\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n // 设备信息\n getDevicePixelRatio: () => number;\n\n // 通用接口\n getRequestAnimationFrame: () => (callback: FrameRequestCallback) => number;\n getCancelAnimationFrame: () => (h: number) => void;\n\n // DOM接口\n getElementById?: (str: string) => HTMLElement | null;\n getRootElement?: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument?: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint?: (event: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n // @since 0.21.3\n /**\n * 加载字体,参数对应Font类\n * @param font 字体名\n * @param source 数据源\n * @param descriptors 其他描述\n * @returns\n */\n loadFont: (\n font: string,\n source: string | any,\n descriptors?: FontFaceDescriptors\n ) => Promise<{\n loadState: 'success' | 'fail';\n }>;\n\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n}\n\nexport type IMiniAppEnvParams = {\n /** dom 容器对象 */\n domref?: Dict<any>;\n /**\n * 强行设置env,如果env重复设置也设置\n */\n force?: boolean;\n /**\n * 可用的canvas列表\n */\n canvasIdLists?: (string | number)[];\n /**\n * 表示可以自由使用的canvas索引\n */\n freeCanvasIdx?: string | number;\n /** taro 环境使用 */\n taro?: any;\n pixelRatio?: number;\n [key: string]: any;\n};\n\nexport interface IEnvParamsMap {\n readonly taro: IMiniAppEnvParams;\n readonly feishu: IMiniAppEnvParams;\n readonly tt: IMiniAppEnvParams;\n readonly browser: any;\n readonly node: any;\n readonly native: any;\n readonly lynx: any;\n readonly wx: any;\n readonly harmony: any;\n}\n\nexport type CreateDOMParamsType = {\n tagName?: string;\n width?: number;\n height?: number;\n style?: string | Record<string, any>;\n parent?: string | HTMLElement;\n};\nexport interface IGlobal extends Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n env: EnvType;\n\n // 设备的dpr\n devicePixelRatio: number;\n\n // 当设置env的时候被调用\n hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n // 设置env的时候传入的参数\n // node环境需要传入整个node-canvas包\n // 小程序环境需要传入小程序要用到的参数\n envParams?: any;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 是否在不显示canvas的时候停止绘图操作,默认false\n optimizeVisible: boolean;\n\n setEnv: (env: EnvType, params?: IEnvParamsMap[EnvType]) => void;\n setActiveEnvContribution: (contribution: IEnvContribution) => void;\n createCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n releaseCanvas: (canvas: HTMLCanvasElement | string | any) => void;\n setEventListenerTransformer: (transformer: (event: Event) => Event) => void;\n\n /**\n * 获取环境中最大动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n isChrome: () => boolean;\n isSafari: () => boolean;\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n\n /**\n * 获取环境中最大静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n /* 浏览器环境 - dom tree */\n getElementById: (str: string) => HTMLElement | null;\n getRootElement: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n /**\n * 测量文字的方法\n */\n measureTextMethod: 'native' | 'simple' | 'quick';\n\n getRequestAnimationFrame: () => null | ((callback: FrameRequestCallback) => number);\n getCancelAnimationFrame: () => null | ((h: number) => void);\n getSpecifiedRequestAnimationFrame: (id: number) => (callback: FrameRequestCallback) => number;\n getSpecifiedCancelAnimationFrame: (id: number) => (h: number) => void;\n getSpecifiedPerformanceRAF: (id: number) => PerformanceRAF;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint: (nativeEvent: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n isImageAnonymous: boolean;\n}\n"]}
@@ -2,6 +2,9 @@ import type { ITheme, IThemeSpec } from './theme';
2
2
  import type { IGraphicAttribute, IGraphic } from '../graphic';
3
3
  import type { INode } from '../node-tree';
4
4
  import type { GraphicAttributeMap } from './creator';
5
+ import type { StateDefinitionsInput } from '../../graphic/state/state-definition';
6
+ import type { SharedStateScope } from '../../graphic/state/shared-state-scope';
7
+ import type { IDeferredStateOwnerConfig } from '../../graphic/state/state-perf-monitor';
5
8
  export type IGroupAttribute = {
6
9
  path: IGraphic[];
7
10
  width: number;
@@ -23,6 +26,9 @@ export type IGroupGraphicAttribute = Partial<IGraphicAttribute> & Partial<IGroup
23
26
  export interface IGroup extends IGraphic<IGroupGraphicAttribute> {
24
27
  childrenPickable?: boolean;
25
28
  theme?: ITheme;
29
+ sharedStateDefinitions?: StateDefinitionsInput<Record<string, any>>;
30
+ sharedStateScope?: SharedStateScope<Record<string, any>>;
31
+ deferredStateConfig?: IDeferredStateOwnerConfig;
26
32
  createTheme: () => void;
27
33
  hideAll: () => void;
28
34
  showAll: () => void;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interface/graphic/group.ts"],"names":[],"mappings":"","file":"group.js","sourcesContent":["import type { ITheme, IThemeSpec } from './theme';\nimport type { IGraphicAttribute, IGraphic } from '../graphic';\nimport type { INode } from '../node-tree';\nimport type { GraphicAttributeMap } from './creator';\n\nexport type IGroupAttribute = {\n /**\n * 路径,用于绘制路径图形或者设置裁剪图形\n */\n path: IGraphic[];\n /**\n * 宽度\n */\n width: number;\n /**\n * 高度\n */\n height: number;\n /**\n * 圆角半径\n */\n cornerRadius: number | number[];\n /**\n * 圆角类型,\n * 'round' - 圆弧\n * 'bevel' - 斜角\n */\n cornerType: 'round' | 'bevel';\n /**\n * 是否剪裁\n */\n clip: boolean;\n /**\n * 所有的子节点是否可见\n */\n visibleAll: boolean;\n /**\n * 布局方式\n */\n display?: 'relative' | 'inner-block' | 'flex';\n /**\n * flex布局的方向\n */\n flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';\n /**\n * flex布局的换行\n */\n flexWrap?: 'nowrap' | 'wrap';\n /**\n * flex布局中,子元素在主轴上的对齐方式\n */\n justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around';\n /**\n * flex布局中,子元素在交叉轴上的对齐方式\n */\n alignItems?: 'flex-start' | 'flex-end' | 'center';\n /**\n * flex布局中,多行内容的垂直对齐方式\n */\n alignContent?: 'flex-start' | 'center' | 'space-between' | 'space-around';\n /**\n * 基准的透明度,用于控制group下面整体图元的透明度\n */\n baseOpacity?: number;\n /**\n * 绘制模式\n * 0 - 直接绘制\n * 1 - 绘制到新Canvas上,再绘制回来,需要绘制背景,然后绘制group\n * 2 - 绘制到新Canvas上,再绘制回来,不需要绘制背景,只需要绘制group\n */\n drawMode?: 0 | 1 | 2;\n};\n\nexport type IGroupGraphicAttribute = Partial<IGraphicAttribute> & Partial<IGroupAttribute>;\n\nexport interface IGroup extends IGraphic<IGroupGraphicAttribute> {\n childrenPickable?: boolean; // 子元素是否可以被pick\n\n theme?: ITheme;\n\n createTheme: () => void;\n hideAll: () => void;\n showAll: () => void;\n\n setTheme: (t: IThemeSpec) => void;\n\n incrementalAppendChild: (node: INode, highPerformance?: boolean) => INode | null;\n incrementalClearChild: () => void;\n\n createOrUpdateChild: <T extends keyof GraphicAttributeMap>(\n graphicName: string,\n attributes: GraphicAttributeMap[T],\n graphicType: T\n ) => INode;\n}\n"]}
1
+ {"version":3,"sources":["../src/interface/graphic/group.ts"],"names":[],"mappings":"","file":"group.js","sourcesContent":["import type { ITheme, IThemeSpec } from './theme';\nimport type { IGraphicAttribute, IGraphic } from '../graphic';\nimport type { INode } from '../node-tree';\nimport type { GraphicAttributeMap } from './creator';\nimport type { StateDefinitionsInput } from '../../graphic/state/state-definition';\nimport type { SharedStateScope } from '../../graphic/state/shared-state-scope';\nimport type { IDeferredStateOwnerConfig } from '../../graphic/state/state-perf-monitor';\n\nexport type IGroupAttribute = {\n /**\n * 路径,用于绘制路径图形或者设置裁剪图形\n */\n path: IGraphic[];\n /**\n * 宽度\n */\n width: number;\n /**\n * 高度\n */\n height: number;\n /**\n * 圆角半径\n */\n cornerRadius: number | number[];\n /**\n * 圆角类型,\n * 'round' - 圆弧\n * 'bevel' - 斜角\n */\n cornerType: 'round' | 'bevel';\n /**\n * 是否剪裁\n */\n clip: boolean;\n /**\n * 所有的子节点是否可见\n */\n visibleAll: boolean;\n /**\n * 布局方式\n */\n display?: 'relative' | 'inner-block' | 'flex';\n /**\n * flex布局的方向\n */\n flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';\n /**\n * flex布局的换行\n */\n flexWrap?: 'nowrap' | 'wrap';\n /**\n * flex布局中,子元素在主轴上的对齐方式\n */\n justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around';\n /**\n * flex布局中,子元素在交叉轴上的对齐方式\n */\n alignItems?: 'flex-start' | 'flex-end' | 'center';\n /**\n * flex布局中,多行内容的垂直对齐方式\n */\n alignContent?: 'flex-start' | 'center' | 'space-between' | 'space-around';\n /**\n * 基准的透明度,用于控制group下面整体图元的透明度\n */\n baseOpacity?: number;\n /**\n * 绘制模式\n * 0 - 直接绘制\n * 1 - 绘制到新Canvas上,再绘制回来,需要绘制背景,然后绘制group\n * 2 - 绘制到新Canvas上,再绘制回来,不需要绘制背景,只需要绘制group\n */\n drawMode?: 0 | 1 | 2;\n};\n\nexport type IGroupGraphicAttribute = Partial<IGraphicAttribute> & Partial<IGroupAttribute>;\n\nexport interface IGroup extends IGraphic<IGroupGraphicAttribute> {\n childrenPickable?: boolean; // 子元素是否可以被pick\n\n theme?: ITheme;\n sharedStateDefinitions?: StateDefinitionsInput<Record<string, any>>;\n sharedStateScope?: SharedStateScope<Record<string, any>>;\n deferredStateConfig?: IDeferredStateOwnerConfig;\n\n createTheme: () => void;\n hideAll: () => void;\n showAll: () => void;\n\n setTheme: (t: IThemeSpec) => void;\n\n incrementalAppendChild: (node: INode, highPerformance?: boolean) => INode | null;\n incrementalClearChild: () => void;\n\n createOrUpdateChild: <T extends keyof GraphicAttributeMap>(\n graphicName: string,\n attributes: GraphicAttributeMap[T],\n graphicType: T\n ) => INode;\n}\n"]}
@@ -1,10 +1,16 @@
1
- import type { IGraphicAttribute, IGraphic } from '../graphic';
1
+ import type { BackgroundPosition, BackgroundSizing, IGraphicAttribute, IGraphic } from '../graphic';
2
2
  export type IRepeatType = 'no-repeat' | 'repeat';
3
+ export type ImageMode = BackgroundSizing;
3
4
  export type IImageAttribute = {
4
5
  width: number;
5
6
  height: number;
6
7
  maxWidth?: number;
7
8
  maxHeight?: number;
9
+ imageMode?: ImageMode;
10
+ imagePosition: BackgroundPosition;
11
+ imageScale: number;
12
+ imageOffsetX: number;
13
+ imageOffsetY: number;
8
14
  repeatX: IRepeatType;
9
15
  repeatY: IRepeatType;
10
16
  image: string | HTMLImageElement | HTMLCanvasElement;