@visactor/vrender-core 1.0.47-alpha.0 → 1.1.0-alpha.1

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 (1271) hide show
  1. package/cjs/application.d.ts +14 -5
  2. package/cjs/application.js +1 -8
  3. package/cjs/application.js.map +1 -1
  4. package/cjs/canvas/empty-context.js +4 -14
  5. package/cjs/canvas/empty-context.js.map +1 -1
  6. package/cjs/canvas/util.d.ts +2 -3
  7. package/cjs/canvas/util.js +17 -3
  8. package/cjs/canvas/util.js.map +1 -1
  9. package/cjs/color-string/index.js +2 -1
  10. package/cjs/common/contribution-provider.d.ts +16 -9
  11. package/cjs/common/contribution-provider.js +9 -4
  12. package/cjs/common/contribution-provider.js.map +1 -1
  13. package/cjs/common/diff.js +1 -2
  14. package/cjs/common/enums.d.ts +2 -0
  15. package/cjs/common/enums.js +1 -0
  16. package/cjs/common/enums.js.map +1 -1
  17. package/cjs/common/event-transformer.js +43 -6
  18. package/cjs/common/event-transformer.js.map +1 -1
  19. package/cjs/common/explicit-binding.d.ts +5 -0
  20. package/cjs/common/explicit-binding.js +16 -0
  21. package/cjs/common/explicit-binding.js.map +1 -0
  22. package/cjs/common/performance-raf.d.ts +1 -0
  23. package/cjs/common/performance-raf.js +5 -0
  24. package/cjs/common/performance-raf.js.map +1 -1
  25. package/cjs/common/render-area.js +1 -1
  26. package/cjs/common/render-command-list.js +1 -1
  27. package/cjs/common/render-curve.js +1 -1
  28. package/cjs/common/render-utils.js +1 -1
  29. package/cjs/common/seg-context.js +1 -2
  30. package/cjs/common/simplify.js +1 -1
  31. package/cjs/common/sort.js +1 -1
  32. package/cjs/common/split-path.js +1 -1
  33. package/cjs/common/store.js +1 -1
  34. package/cjs/common/text.js +1 -1
  35. package/cjs/common/utils.js +1 -1
  36. package/cjs/core/application.js +1 -1
  37. package/cjs/core/camera.js +1 -1
  38. package/cjs/core/constants.js +1 -1
  39. package/cjs/core/contributions/env/base-contribution.js +4 -9
  40. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  41. package/cjs/core/contributions/env/modules.d.ts +4 -3
  42. package/cjs/core/contributions/env/modules.js +6 -4
  43. package/cjs/core/contributions/env/modules.js.map +1 -1
  44. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +3 -12
  45. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  46. package/cjs/core/contributions/layerHandler/empty-contribution.js +3 -12
  47. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  48. package/cjs/core/contributions/layerHandler/modules.d.ts +4 -3
  49. package/cjs/core/contributions/layerHandler/modules.js +6 -4
  50. package/cjs/core/contributions/layerHandler/modules.js.map +1 -1
  51. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +3 -12
  52. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  53. package/cjs/core/contributions/modules.d.ts +2 -2
  54. package/cjs/core/contributions/modules.js +7 -1
  55. package/cjs/core/contributions/modules.js.map +1 -1
  56. package/cjs/core/contributions/textMeasure/AtextMeasure.js +3 -10
  57. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  58. package/cjs/core/contributions/textMeasure/modules.d.ts +4 -3
  59. package/cjs/core/contributions/textMeasure/modules.js +6 -4
  60. package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
  61. package/cjs/core/contributions/textMeasure/textMeasure-contribution.js +3 -10
  62. package/cjs/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  63. package/cjs/core/contributions/window/base-contribution.js +3 -12
  64. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  65. package/cjs/core/core-modules.d.ts +4 -3
  66. package/cjs/core/core-modules.js +11 -7
  67. package/cjs/core/core-modules.js.map +1 -1
  68. package/cjs/core/global-module.js +2 -0
  69. package/cjs/core/global-module.js.map +1 -1
  70. package/cjs/core/global.d.ts +2 -0
  71. package/cjs/core/global.js +9 -18
  72. package/cjs/core/global.js.map +1 -1
  73. package/cjs/core/graphic-utils.d.ts +1 -2
  74. package/cjs/core/graphic-utils.js +8 -23
  75. package/cjs/core/graphic-utils.js.map +1 -1
  76. package/cjs/core/index.js +1 -1
  77. package/cjs/core/layer-service.d.ts +7 -2
  78. package/cjs/core/layer-service.js +29 -27
  79. package/cjs/core/layer-service.js.map +1 -1
  80. package/cjs/core/layer.js +1 -1
  81. package/cjs/core/layer.js.map +1 -1
  82. package/cjs/core/light.js +1 -1
  83. package/cjs/core/stage.d.ts +19 -7
  84. package/cjs/core/stage.js +50 -39
  85. package/cjs/core/stage.js.map +1 -1
  86. package/cjs/core/window.d.ts +7 -5
  87. package/cjs/core/window.js +14 -18
  88. package/cjs/core/window.js.map +1 -1
  89. package/cjs/create.d.ts +1 -2
  90. package/cjs/create.js +2 -2
  91. package/cjs/create.js.map +1 -1
  92. package/cjs/entries/app-context.d.ts +30 -0
  93. package/cjs/entries/app-context.js +84 -0
  94. package/cjs/entries/app-context.js.map +1 -0
  95. package/cjs/entries/browser.d.ts +25 -0
  96. package/cjs/entries/browser.js +44 -0
  97. package/cjs/entries/browser.js.map +1 -0
  98. package/cjs/entries/index.d.ts +7 -0
  99. package/cjs/entries/index.js +32 -0
  100. package/cjs/entries/index.js.map +1 -0
  101. package/cjs/entries/miniapp.d.ts +6 -0
  102. package/cjs/entries/miniapp.js +20 -0
  103. package/cjs/entries/miniapp.js.map +1 -0
  104. package/cjs/entries/node.d.ts +6 -0
  105. package/cjs/entries/node.js +20 -0
  106. package/cjs/entries/node.js.map +1 -0
  107. package/cjs/entries/runtime-installer.d.ts +11 -0
  108. package/cjs/entries/runtime-installer.js +111 -0
  109. package/cjs/entries/runtime-installer.js.map +1 -0
  110. package/cjs/entries/types.d.ts +29 -0
  111. package/cjs/{common/inversify-lite/interfaces/interfaces.js → entries/types.js} +1 -1
  112. package/cjs/entries/types.js.map +1 -0
  113. package/cjs/event/util.d.ts +1 -1
  114. package/cjs/factory/graphic-factory.d.ts +7 -0
  115. package/cjs/factory/graphic-factory.js +23 -0
  116. package/cjs/factory/graphic-factory.js.map +1 -0
  117. package/cjs/factory/index.d.ts +4 -0
  118. package/cjs/{common/inversify-lite → factory}/index.js +2 -1
  119. package/cjs/factory/index.js.map +1 -0
  120. package/cjs/factory/layer-factory.d.ts +7 -0
  121. package/cjs/factory/layer-factory.js +19 -0
  122. package/cjs/factory/layer-factory.js.map +1 -0
  123. package/cjs/factory/stage-factory.d.ts +8 -0
  124. package/cjs/factory/stage-factory.js +20 -0
  125. package/cjs/factory/stage-factory.js.map +1 -0
  126. package/cjs/factory/types.d.ts +34 -0
  127. package/cjs/{common/inversify/interfaces.js → factory/types.js} +1 -1
  128. package/cjs/factory/types.js.map +1 -0
  129. package/cjs/factory.d.ts +1 -0
  130. package/cjs/factory.js +16 -1
  131. package/cjs/factory.js.map +1 -1
  132. package/cjs/global.d.ts +2 -0
  133. package/cjs/global.js +11 -0
  134. package/cjs/global.js.map +1 -0
  135. package/cjs/graphic/area.js +1 -1
  136. package/cjs/graphic/area.js.map +1 -1
  137. package/cjs/graphic/bounds.js +3 -3
  138. package/cjs/graphic/bounds.js.map +1 -1
  139. package/cjs/graphic/config.js +0 -1
  140. package/cjs/graphic/config.js.map +1 -1
  141. package/cjs/graphic/glyph.js +9 -3
  142. package/cjs/graphic/glyph.js.map +1 -1
  143. package/cjs/graphic/graphic-creator.d.ts +9 -4
  144. package/cjs/graphic/graphic-creator.js +35 -7
  145. package/cjs/graphic/graphic-creator.js.map +1 -1
  146. package/cjs/graphic/graphic-service/graphic-module.d.ts +4 -3
  147. package/cjs/graphic/graphic-service/graphic-module.js +6 -4
  148. package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
  149. package/cjs/graphic/graphic-service/graphic-service.d.ts +2 -3
  150. package/cjs/graphic/graphic-service/graphic-service.js +5 -20
  151. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  152. package/cjs/graphic/graphic.d.ts +80 -11
  153. package/cjs/graphic/graphic.js +474 -152
  154. package/cjs/graphic/graphic.js.map +1 -1
  155. package/cjs/graphic/group.d.ts +11 -1
  156. package/cjs/graphic/group.js +46 -11
  157. package/cjs/graphic/group.js.map +1 -1
  158. package/cjs/graphic/index.d.ts +3 -0
  159. package/cjs/graphic/index.js +34 -15
  160. package/cjs/graphic/index.js.map +1 -1
  161. package/cjs/graphic/line.js +1 -1
  162. package/cjs/graphic/line.js.map +1 -1
  163. package/cjs/graphic/state/attribute-update-classifier.d.ts +13 -0
  164. package/cjs/graphic/state/attribute-update-classifier.js +67 -0
  165. package/cjs/graphic/state/attribute-update-classifier.js.map +1 -0
  166. package/cjs/graphic/state/shared-state-refresh.d.ts +6 -0
  167. package/cjs/graphic/state/shared-state-refresh.js +55 -0
  168. package/cjs/graphic/state/shared-state-refresh.js.map +1 -0
  169. package/cjs/graphic/state/shared-state-scope.d.ts +25 -0
  170. package/cjs/graphic/state/shared-state-scope.js +98 -0
  171. package/cjs/graphic/state/shared-state-scope.js.map +1 -0
  172. package/cjs/graphic/state/state-batch-scheduler.d.ts +42 -0
  173. package/cjs/graphic/state/state-batch-scheduler.js +285 -0
  174. package/cjs/graphic/state/state-batch-scheduler.js.map +1 -0
  175. package/cjs/graphic/state/state-definition-compiler.d.ts +6 -0
  176. package/cjs/graphic/state/state-definition-compiler.js +91 -0
  177. package/cjs/graphic/state/state-definition-compiler.js.map +1 -0
  178. package/cjs/graphic/state/state-definition.d.ts +44 -0
  179. package/cjs/graphic/state/state-definition.js +6 -0
  180. package/cjs/graphic/state/state-definition.js.map +1 -0
  181. package/cjs/graphic/state/state-engine.d.ts +38 -0
  182. package/cjs/graphic/state/state-engine.js +220 -0
  183. package/cjs/graphic/state/state-engine.js.map +1 -0
  184. package/cjs/graphic/state/state-model.d.ts +43 -0
  185. package/cjs/graphic/state/state-model.js +143 -0
  186. package/cjs/graphic/state/state-model.js.map +1 -0
  187. package/cjs/graphic/state/state-perf-monitor.d.ts +119 -0
  188. package/cjs/graphic/state/state-perf-monitor.js +217 -0
  189. package/cjs/graphic/state/state-perf-monitor.js.map +1 -0
  190. package/cjs/graphic/state/state-style-resolver.d.ts +22 -0
  191. package/cjs/graphic/state/state-style-resolver.js +73 -0
  192. package/cjs/graphic/state/state-style-resolver.js.map +1 -0
  193. package/cjs/graphic/state/state-transition-orchestrator.d.ts +41 -0
  194. package/cjs/graphic/state/state-transition-orchestrator.js +74 -0
  195. package/cjs/graphic/state/state-transition-orchestrator.js.map +1 -0
  196. package/cjs/graphic/text.d.ts +3 -2
  197. package/cjs/graphic/text.js +22 -14
  198. package/cjs/graphic/text.js.map +1 -1
  199. package/cjs/graphic/theme.d.ts +5 -0
  200. package/cjs/graphic/theme.js +7 -0
  201. package/cjs/graphic/theme.js.map +1 -1
  202. package/cjs/graphic/wrap-text.d.ts +1 -1
  203. package/cjs/graphic/wrap-text.js +17 -14
  204. package/cjs/graphic/wrap-text.js.map +1 -1
  205. package/cjs/index.d.ts +7 -4
  206. package/cjs/index.js +95 -25
  207. package/cjs/index.js.map +1 -1
  208. package/cjs/interface/global.d.ts +2 -0
  209. package/cjs/interface/global.js.map +1 -1
  210. package/cjs/interface/graphic/group.d.ts +6 -0
  211. package/cjs/interface/graphic/group.js.map +1 -1
  212. package/cjs/interface/graphic/theme.d.ts +3 -0
  213. package/cjs/interface/graphic/theme.js.map +1 -1
  214. package/cjs/interface/graphic.d.ts +24 -26
  215. package/cjs/interface/graphic.js.map +1 -1
  216. package/cjs/interface/plugin.d.ts +2 -0
  217. package/cjs/interface/plugin.js.map +1 -1
  218. package/cjs/interface/stage.d.ts +11 -3
  219. package/cjs/interface/stage.js.map +1 -1
  220. package/cjs/interface/theme-service.js.map +1 -1
  221. package/cjs/legacy/binding-context.d.ts +24 -0
  222. package/cjs/legacy/binding-context.js +98 -0
  223. package/cjs/legacy/binding-context.js.map +1 -0
  224. package/cjs/legacy/bootstrap.d.ts +10 -0
  225. package/cjs/legacy/bootstrap.js +72 -0
  226. package/cjs/legacy/bootstrap.js.map +1 -0
  227. package/cjs/legacy/module-types.d.ts +2 -0
  228. package/cjs/legacy/module-types.js +6 -0
  229. package/cjs/legacy/module-types.js.map +1 -0
  230. package/cjs/modules.d.ts +5 -6
  231. package/cjs/modules.js +54 -20
  232. package/cjs/modules.js.map +1 -1
  233. package/cjs/picker/global-picker-service.js +3 -12
  234. package/cjs/picker/global-picker-service.js.map +1 -1
  235. package/cjs/picker/pick-interceptor.js +9 -19
  236. package/cjs/picker/pick-interceptor.js.map +1 -1
  237. package/cjs/picker/pick-modules.d.ts +5 -3
  238. package/cjs/picker/pick-modules.js +6 -4
  239. package/cjs/picker/pick-modules.js.map +1 -1
  240. package/cjs/picker/picker-service.d.ts +13 -4
  241. package/cjs/picker/picker-service.js +16 -22
  242. package/cjs/picker/picker-service.js.map +1 -1
  243. package/cjs/plugins/base-plugin.d.ts +8 -0
  244. package/cjs/plugins/base-plugin.js +15 -0
  245. package/cjs/plugins/base-plugin.js.map +1 -0
  246. package/cjs/plugins/browser-env-plugin.d.ts +8 -0
  247. package/cjs/plugins/browser-env-plugin.js +24 -0
  248. package/cjs/plugins/browser-env-plugin.js.map +1 -0
  249. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.d.ts +4 -1
  250. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +25 -4
  251. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  252. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js +3 -1
  253. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  254. package/cjs/plugins/index.d.ts +5 -0
  255. package/cjs/plugins/index.js +23 -0
  256. package/cjs/plugins/index.js.map +1 -0
  257. package/cjs/plugins/picker-plugin.d.ts +7 -0
  258. package/cjs/plugins/picker-plugin.js +19 -0
  259. package/cjs/plugins/picker-plugin.js.map +1 -0
  260. package/cjs/plugins/plugin-modules.d.ts +4 -3
  261. package/cjs/plugins/plugin-modules.js +6 -4
  262. package/cjs/plugins/plugin-modules.js.map +1 -1
  263. package/cjs/plugins/plugin-service.d.ts +16 -2
  264. package/cjs/plugins/plugin-service.js +24 -26
  265. package/cjs/plugins/plugin-service.js.map +1 -1
  266. package/cjs/plugins/renderer-plugin.d.ts +7 -0
  267. package/cjs/plugins/renderer-plugin.js +19 -0
  268. package/cjs/plugins/renderer-plugin.js.map +1 -0
  269. package/cjs/plugins/types.d.ts +28 -0
  270. package/cjs/plugins/types.js +6 -0
  271. package/cjs/plugins/types.js.map +1 -0
  272. package/cjs/register/register-arc.js +1 -1
  273. package/cjs/register/register-arc.js.map +1 -1
  274. package/cjs/register/register-arc3d.js +1 -1
  275. package/cjs/register/register-arc3d.js.map +1 -1
  276. package/cjs/register/register-area.js +1 -1
  277. package/cjs/register/register-area.js.map +1 -1
  278. package/cjs/register/register-circle.js +1 -1
  279. package/cjs/register/register-circle.js.map +1 -1
  280. package/cjs/register/register-glyph.js +1 -1
  281. package/cjs/register/register-glyph.js.map +1 -1
  282. package/cjs/register/register-group.js +1 -1
  283. package/cjs/register/register-group.js.map +1 -1
  284. package/cjs/register/register-image.js +1 -1
  285. package/cjs/register/register-image.js.map +1 -1
  286. package/cjs/register/register-line.js +1 -1
  287. package/cjs/register/register-line.js.map +1 -1
  288. package/cjs/register/register-path.js +1 -1
  289. package/cjs/register/register-path.js.map +1 -1
  290. package/cjs/register/register-polygon.js +1 -1
  291. package/cjs/register/register-polygon.js.map +1 -1
  292. package/cjs/register/register-pyramid3d.js +1 -1
  293. package/cjs/register/register-pyramid3d.js.map +1 -1
  294. package/cjs/register/register-rect.js +1 -1
  295. package/cjs/register/register-rect.js.map +1 -1
  296. package/cjs/register/register-rect3d.js +1 -1
  297. package/cjs/register/register-rect3d.js.map +1 -1
  298. package/cjs/register/register-richtext.js +1 -1
  299. package/cjs/register/register-richtext.js.map +1 -1
  300. package/cjs/register/register-shadowRoot.js +1 -1
  301. package/cjs/register/register-shadowRoot.js.map +1 -1
  302. package/cjs/register/register-star.js +1 -1
  303. package/cjs/register/register-star.js.map +1 -1
  304. package/cjs/register/register-symbol.js +1 -1
  305. package/cjs/register/register-symbol.js.map +1 -1
  306. package/cjs/register/register-text.js +1 -1
  307. package/cjs/register/register-text.js.map +1 -1
  308. package/cjs/register/register-wraptext.js +1 -1
  309. package/cjs/register/register-wraptext.js.map +1 -1
  310. package/cjs/registry/contribution-registry.d.ts +9 -0
  311. package/cjs/registry/contribution-registry.js +33 -0
  312. package/cjs/registry/contribution-registry.js.map +1 -0
  313. package/cjs/registry/index.d.ts +5 -0
  314. package/cjs/registry/index.js +23 -0
  315. package/cjs/registry/index.js.map +1 -0
  316. package/cjs/registry/picker-registry.d.ts +10 -0
  317. package/cjs/registry/picker-registry.js +29 -0
  318. package/cjs/registry/picker-registry.js.map +1 -0
  319. package/cjs/registry/plugin-registry.d.ts +10 -0
  320. package/cjs/registry/plugin-registry.js +29 -0
  321. package/cjs/registry/plugin-registry.js.map +1 -0
  322. package/cjs/registry/renderer-registry.d.ts +11 -0
  323. package/cjs/registry/renderer-registry.js +37 -0
  324. package/cjs/registry/renderer-registry.js.map +1 -0
  325. package/cjs/registry/types.d.ts +34 -0
  326. package/cjs/registry/types.js +6 -0
  327. package/cjs/registry/types.js.map +1 -0
  328. package/cjs/render/contributions/modules.d.ts +2 -2
  329. package/cjs/render/contributions/modules.js +3 -1
  330. package/cjs/render/contributions/modules.js.map +1 -1
  331. package/cjs/render/contributions/render/arc-module.d.ts +4 -2
  332. package/cjs/render/contributions/render/arc-module.js +6 -4
  333. package/cjs/render/contributions/render/arc-module.js.map +1 -1
  334. package/cjs/render/contributions/render/arc-render.js +4 -19
  335. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  336. package/cjs/render/contributions/render/arc3d-module.d.ts +4 -2
  337. package/cjs/render/contributions/render/arc3d-module.js +6 -4
  338. package/cjs/render/contributions/render/arc3d-module.js.map +1 -1
  339. package/cjs/render/contributions/render/arc3d-render.js +3 -10
  340. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  341. package/cjs/render/contributions/render/area-module.d.ts +4 -2
  342. package/cjs/render/contributions/render/area-module.js +6 -4
  343. package/cjs/render/contributions/render/area-module.js.map +1 -1
  344. package/cjs/render/contributions/render/area-render.js +4 -19
  345. package/cjs/render/contributions/render/area-render.js.map +1 -1
  346. package/cjs/render/contributions/render/base-render.js +9 -5
  347. package/cjs/render/contributions/render/base-render.js.map +1 -1
  348. package/cjs/render/contributions/render/circle-module.d.ts +4 -2
  349. package/cjs/render/contributions/render/circle-module.js +6 -4
  350. package/cjs/render/contributions/render/circle-module.js.map +1 -1
  351. package/cjs/render/contributions/render/circle-render.js +3 -18
  352. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  353. package/cjs/render/contributions/render/contributions/base-contribution-render.js +3 -18
  354. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  355. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +5 -13
  356. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  357. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  358. package/cjs/render/contributions/render/draw-contribution.d.ts +13 -4
  359. package/cjs/render/contributions/render/draw-contribution.js +22 -22
  360. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  361. package/cjs/render/contributions/render/draw-interceptor.js +5 -15
  362. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  363. package/cjs/render/contributions/render/glyph-module.d.ts +4 -2
  364. package/cjs/render/contributions/render/glyph-module.js +6 -4
  365. package/cjs/render/contributions/render/glyph-module.js.map +1 -1
  366. package/cjs/render/contributions/render/glyph-render.js +3 -10
  367. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  368. package/cjs/render/contributions/render/graphic-render.js +1 -10
  369. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  370. package/cjs/render/contributions/render/group-render.js +4 -19
  371. package/cjs/render/contributions/render/group-render.js.map +1 -1
  372. package/cjs/render/contributions/render/image-module.d.ts +4 -2
  373. package/cjs/render/contributions/render/image-module.js +6 -4
  374. package/cjs/render/contributions/render/image-module.js.map +1 -1
  375. package/cjs/render/contributions/render/image-render.d.ts +2 -2
  376. package/cjs/render/contributions/render/image-render.js +14 -30
  377. package/cjs/render/contributions/render/image-render.js.map +1 -1
  378. package/cjs/render/contributions/render/incremental-area-render.js +3 -10
  379. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  380. package/cjs/render/contributions/render/incremental-draw-contribution.d.ts +2 -2
  381. package/cjs/render/contributions/render/incremental-draw-contribution.js +4 -19
  382. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  383. package/cjs/render/contributions/render/incremental-line-render.js +3 -10
  384. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  385. package/cjs/render/contributions/render/line-module.d.ts +4 -2
  386. package/cjs/render/contributions/render/line-module.js +6 -4
  387. package/cjs/render/contributions/render/line-module.js.map +1 -1
  388. package/cjs/render/contributions/render/line-render.js +3 -10
  389. package/cjs/render/contributions/render/line-render.js.map +1 -1
  390. package/cjs/render/contributions/render/module.d.ts +4 -3
  391. package/cjs/render/contributions/render/module.js +10 -6
  392. package/cjs/render/contributions/render/module.js.map +1 -1
  393. package/cjs/render/contributions/render/path-module.d.ts +4 -2
  394. package/cjs/render/contributions/render/path-module.js +6 -4
  395. package/cjs/render/contributions/render/path-module.js.map +1 -1
  396. package/cjs/render/contributions/render/path-render.js +3 -18
  397. package/cjs/render/contributions/render/path-render.js.map +1 -1
  398. package/cjs/render/contributions/render/polygon-module.d.ts +4 -2
  399. package/cjs/render/contributions/render/polygon-module.js +6 -4
  400. package/cjs/render/contributions/render/polygon-module.js.map +1 -1
  401. package/cjs/render/contributions/render/polygon-render.js +3 -18
  402. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  403. package/cjs/render/contributions/render/pyramid3d-module.d.ts +4 -2
  404. package/cjs/render/contributions/render/pyramid3d-module.js +6 -4
  405. package/cjs/render/contributions/render/pyramid3d-module.js.map +1 -1
  406. package/cjs/render/contributions/render/pyramid3d-render.js +3 -10
  407. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  408. package/cjs/render/contributions/render/rect-module.d.ts +4 -2
  409. package/cjs/render/contributions/render/rect-module.js +11 -8
  410. package/cjs/render/contributions/render/rect-module.js.map +1 -1
  411. package/cjs/render/contributions/render/rect-render.js +3 -18
  412. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  413. package/cjs/render/contributions/render/rect3d-module.d.ts +4 -2
  414. package/cjs/render/contributions/render/rect3d-module.js +6 -4
  415. package/cjs/render/contributions/render/rect3d-module.js.map +1 -1
  416. package/cjs/render/contributions/render/rect3d-render.js +3 -10
  417. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  418. package/cjs/render/contributions/render/render-slector.js.map +1 -1
  419. package/cjs/render/contributions/render/richtext-module.d.ts +4 -2
  420. package/cjs/render/contributions/render/richtext-module.js +6 -4
  421. package/cjs/render/contributions/render/richtext-module.js.map +1 -1
  422. package/cjs/render/contributions/render/richtext-render.js +3 -12
  423. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  424. package/cjs/render/contributions/render/star-module.d.ts +4 -2
  425. package/cjs/render/contributions/render/star-module.js +9 -6
  426. package/cjs/render/contributions/render/star-module.js.map +1 -1
  427. package/cjs/render/contributions/render/star-render.js +3 -18
  428. package/cjs/render/contributions/render/star-render.js.map +1 -1
  429. package/cjs/render/contributions/render/symbol-module.d.ts +4 -2
  430. package/cjs/render/contributions/render/symbol-module.js +6 -4
  431. package/cjs/render/contributions/render/symbol-module.js.map +1 -1
  432. package/cjs/render/contributions/render/symbol-render.js +3 -18
  433. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  434. package/cjs/render/contributions/render/text-module.d.ts +4 -2
  435. package/cjs/render/contributions/render/text-module.js +6 -4
  436. package/cjs/render/contributions/render/text-module.js.map +1 -1
  437. package/cjs/render/contributions/render/text-render.js +3 -18
  438. package/cjs/render/contributions/render/text-render.js.map +1 -1
  439. package/cjs/render/render-modules.d.ts +4 -3
  440. package/cjs/render/render-modules.js +6 -4
  441. package/cjs/render/render-modules.js.map +1 -1
  442. package/cjs/render/render-service.d.ts +1 -1
  443. package/cjs/render/render-service.js +4 -18
  444. package/cjs/render/render-service.js.map +1 -1
  445. package/dist/index.es.js +22505 -20114
  446. package/es/application.d.ts +14 -5
  447. package/es/application.js +1 -10
  448. package/es/application.js.map +1 -1
  449. package/es/canvas/empty-context.js +2 -17
  450. package/es/canvas/empty-context.js.map +1 -1
  451. package/es/canvas/util.d.ts +2 -3
  452. package/es/canvas/util.js +15 -5
  453. package/es/canvas/util.js.map +1 -1
  454. package/es/color-string/index.js +2 -1
  455. package/es/common/contribution-provider.d.ts +16 -9
  456. package/es/common/contribution-provider.js +6 -2
  457. package/es/common/contribution-provider.js.map +1 -1
  458. package/es/common/diff.js +1 -2
  459. package/es/common/enums.d.ts +2 -0
  460. package/es/common/enums.js +1 -0
  461. package/es/common/enums.js.map +1 -1
  462. package/es/common/event-transformer.js +43 -6
  463. package/es/common/event-transformer.js.map +1 -1
  464. package/es/common/explicit-binding.d.ts +5 -0
  465. package/es/common/explicit-binding.js +10 -0
  466. package/es/common/explicit-binding.js.map +1 -0
  467. package/es/common/performance-raf.d.ts +1 -0
  468. package/es/common/performance-raf.js +5 -0
  469. package/es/common/performance-raf.js.map +1 -1
  470. package/es/common/render-area.js +1 -1
  471. package/es/common/render-command-list.js +1 -1
  472. package/es/common/render-curve.js +1 -1
  473. package/es/common/render-utils.js +1 -1
  474. package/es/common/seg-context.js +1 -2
  475. package/es/common/simplify.js +1 -1
  476. package/es/common/sort.js +1 -1
  477. package/es/common/split-path.js +1 -1
  478. package/es/common/store.js +1 -1
  479. package/es/common/text.js +1 -1
  480. package/es/common/utils.js +1 -1
  481. package/es/core/application.js +1 -1
  482. package/es/core/camera.js +1 -1
  483. package/es/core/constants.js +1 -1
  484. package/es/core/contributions/env/base-contribution.js +3 -13
  485. package/es/core/contributions/env/base-contribution.js.map +1 -1
  486. package/es/core/contributions/env/modules.d.ts +4 -3
  487. package/es/core/contributions/env/modules.js +4 -4
  488. package/es/core/contributions/env/modules.js.map +1 -1
  489. package/es/core/contributions/layerHandler/canvas2d-contribution.js +2 -16
  490. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  491. package/es/core/contributions/layerHandler/empty-contribution.js +2 -16
  492. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  493. package/es/core/contributions/layerHandler/modules.d.ts +4 -3
  494. package/es/core/contributions/layerHandler/modules.js +4 -4
  495. package/es/core/contributions/layerHandler/modules.js.map +1 -1
  496. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +2 -16
  497. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  498. package/es/core/contributions/modules.d.ts +2 -2
  499. package/es/core/contributions/modules.js +7 -1
  500. package/es/core/contributions/modules.js.map +1 -1
  501. package/es/core/contributions/textMeasure/AtextMeasure.js +2 -14
  502. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  503. package/es/core/contributions/textMeasure/modules.d.ts +4 -3
  504. package/es/core/contributions/textMeasure/modules.js +4 -4
  505. package/es/core/contributions/textMeasure/modules.js.map +1 -1
  506. package/es/core/contributions/textMeasure/textMeasure-contribution.js +2 -14
  507. package/es/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  508. package/es/core/contributions/window/base-contribution.js +2 -16
  509. package/es/core/contributions/window/base-contribution.js.map +1 -1
  510. package/es/core/core-modules.d.ts +4 -3
  511. package/es/core/core-modules.js +13 -9
  512. package/es/core/core-modules.js.map +1 -1
  513. package/es/core/global-module.js +2 -0
  514. package/es/core/global-module.js.map +1 -1
  515. package/es/core/global.d.ts +2 -0
  516. package/es/core/global.js +8 -24
  517. package/es/core/global.js.map +1 -1
  518. package/es/core/graphic-utils.d.ts +1 -2
  519. package/es/core/graphic-utils.js +8 -35
  520. package/es/core/graphic-utils.js.map +1 -1
  521. package/es/core/index.js +1 -1
  522. package/es/core/layer-service.d.ts +7 -2
  523. package/es/core/layer-service.js +28 -34
  524. package/es/core/layer-service.js.map +1 -1
  525. package/es/core/layer.js +1 -1
  526. package/es/core/layer.js.map +1 -1
  527. package/es/core/light.js +1 -1
  528. package/es/core/stage.d.ts +19 -7
  529. package/es/core/stage.js +64 -48
  530. package/es/core/stage.js.map +1 -1
  531. package/es/core/window.d.ts +7 -5
  532. package/es/core/window.js +13 -25
  533. package/es/core/window.js.map +1 -1
  534. package/es/create.d.ts +1 -2
  535. package/es/create.js +4 -2
  536. package/es/create.js.map +1 -1
  537. package/es/entries/app-context.d.ts +30 -0
  538. package/es/entries/app-context.js +86 -0
  539. package/es/entries/app-context.js.map +1 -0
  540. package/es/entries/browser.d.ts +25 -0
  541. package/es/entries/browser.js +36 -0
  542. package/es/entries/browser.js.map +1 -0
  543. package/es/entries/index.d.ts +7 -0
  544. package/es/entries/index.js +14 -0
  545. package/es/entries/index.js.map +1 -0
  546. package/es/entries/miniapp.d.ts +6 -0
  547. package/es/entries/miniapp.js +12 -0
  548. package/es/entries/miniapp.js.map +1 -0
  549. package/es/entries/node.d.ts +6 -0
  550. package/es/entries/node.js +12 -0
  551. package/es/entries/node.js.map +1 -0
  552. package/es/entries/runtime-installer.d.ts +11 -0
  553. package/es/entries/runtime-installer.js +130 -0
  554. package/es/entries/runtime-installer.js.map +1 -0
  555. package/es/entries/types.d.ts +29 -0
  556. package/es/entries/types.js +2 -0
  557. package/es/entries/types.js.map +1 -0
  558. package/es/event/util.d.ts +1 -1
  559. package/es/factory/graphic-factory.d.ts +7 -0
  560. package/es/factory/graphic-factory.js +15 -0
  561. package/es/factory/graphic-factory.js.map +1 -0
  562. package/es/factory/index.d.ts +4 -0
  563. package/es/factory/index.js +8 -0
  564. package/es/factory/index.js.map +1 -0
  565. package/es/factory/layer-factory.d.ts +7 -0
  566. package/es/factory/layer-factory.js +11 -0
  567. package/es/factory/layer-factory.js.map +1 -0
  568. package/es/factory/stage-factory.d.ts +8 -0
  569. package/es/factory/stage-factory.js +12 -0
  570. package/es/factory/stage-factory.js.map +1 -0
  571. package/es/factory/types.d.ts +34 -0
  572. package/es/factory/types.js +2 -0
  573. package/es/factory/types.js.map +1 -0
  574. package/es/factory.d.ts +1 -0
  575. package/es/factory.js +2 -0
  576. package/es/factory.js.map +1 -1
  577. package/es/global.d.ts +2 -0
  578. package/es/global.js +10 -0
  579. package/es/global.js.map +1 -0
  580. package/es/graphic/area.js +1 -1
  581. package/es/graphic/area.js.map +1 -1
  582. package/es/graphic/bounds.js +3 -3
  583. package/es/graphic/bounds.js.map +1 -1
  584. package/es/graphic/config.js +0 -1
  585. package/es/graphic/config.js.map +1 -1
  586. package/es/graphic/glyph.js +9 -3
  587. package/es/graphic/glyph.js.map +1 -1
  588. package/es/graphic/graphic-creator.d.ts +9 -4
  589. package/es/graphic/graphic-creator.js +32 -5
  590. package/es/graphic/graphic-creator.js.map +1 -1
  591. package/es/graphic/graphic-service/graphic-module.d.ts +4 -3
  592. package/es/graphic/graphic-service/graphic-module.js +4 -4
  593. package/es/graphic/graphic-service/graphic-module.js.map +1 -1
  594. package/es/graphic/graphic-service/graphic-service.d.ts +2 -3
  595. package/es/graphic/graphic-service/graphic-service.js +6 -25
  596. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  597. package/es/graphic/graphic.d.ts +80 -11
  598. package/es/graphic/graphic.js +473 -139
  599. package/es/graphic/graphic.js.map +1 -1
  600. package/es/graphic/group.d.ts +11 -1
  601. package/es/graphic/group.js +46 -10
  602. package/es/graphic/group.js.map +1 -1
  603. package/es/graphic/index.d.ts +3 -0
  604. package/es/graphic/index.js +4 -0
  605. package/es/graphic/index.js.map +1 -1
  606. package/es/graphic/line.js +1 -1
  607. package/es/graphic/line.js.map +1 -1
  608. package/es/graphic/state/attribute-update-classifier.d.ts +13 -0
  609. package/es/graphic/state/attribute-update-classifier.js +61 -0
  610. package/es/graphic/state/attribute-update-classifier.js.map +1 -0
  611. package/es/graphic/state/shared-state-refresh.d.ts +6 -0
  612. package/es/graphic/state/shared-state-refresh.js +46 -0
  613. package/es/graphic/state/shared-state-refresh.js.map +1 -0
  614. package/es/graphic/state/shared-state-scope.d.ts +25 -0
  615. package/es/graphic/state/shared-state-scope.js +90 -0
  616. package/es/graphic/state/shared-state-scope.js.map +1 -0
  617. package/es/graphic/state/state-batch-scheduler.d.ts +42 -0
  618. package/es/graphic/state/state-batch-scheduler.js +278 -0
  619. package/es/graphic/state/state-batch-scheduler.js.map +1 -0
  620. package/es/graphic/state/state-definition-compiler.d.ts +6 -0
  621. package/es/graphic/state/state-definition-compiler.js +83 -0
  622. package/es/graphic/state/state-definition-compiler.js.map +1 -0
  623. package/es/graphic/state/state-definition.d.ts +44 -0
  624. package/es/graphic/state/state-definition.js +2 -0
  625. package/es/graphic/state/state-definition.js.map +1 -0
  626. package/es/graphic/state/state-engine.d.ts +38 -0
  627. package/es/graphic/state/state-engine.js +212 -0
  628. package/es/graphic/state/state-engine.js.map +1 -0
  629. package/es/graphic/state/state-model.d.ts +43 -0
  630. package/es/graphic/state/state-model.js +135 -0
  631. package/es/graphic/state/state-model.js.map +1 -0
  632. package/es/graphic/state/state-perf-monitor.d.ts +119 -0
  633. package/es/graphic/state/state-perf-monitor.js +207 -0
  634. package/es/graphic/state/state-perf-monitor.js.map +1 -0
  635. package/es/graphic/state/state-style-resolver.d.ts +22 -0
  636. package/es/graphic/state/state-style-resolver.js +65 -0
  637. package/es/graphic/state/state-style-resolver.js.map +1 -0
  638. package/es/graphic/state/state-transition-orchestrator.d.ts +41 -0
  639. package/es/graphic/state/state-transition-orchestrator.js +68 -0
  640. package/es/graphic/state/state-transition-orchestrator.js.map +1 -0
  641. package/es/graphic/text.d.ts +3 -2
  642. package/es/graphic/text.js +22 -13
  643. package/es/graphic/text.js.map +1 -1
  644. package/es/graphic/theme.d.ts +5 -0
  645. package/es/graphic/theme.js +7 -0
  646. package/es/graphic/theme.js.map +1 -1
  647. package/es/graphic/wrap-text.d.ts +1 -1
  648. package/es/graphic/wrap-text.js +18 -13
  649. package/es/graphic/wrap-text.js.map +1 -1
  650. package/es/index.d.ts +7 -4
  651. package/es/index.js +12 -6
  652. package/es/index.js.map +1 -1
  653. package/es/interface/global.d.ts +2 -0
  654. package/es/interface/global.js.map +1 -1
  655. package/es/interface/graphic/group.d.ts +6 -0
  656. package/es/interface/graphic/group.js.map +1 -1
  657. package/es/interface/graphic/theme.d.ts +3 -0
  658. package/es/interface/graphic/theme.js.map +1 -1
  659. package/es/interface/graphic.d.ts +24 -26
  660. package/es/interface/graphic.js.map +1 -1
  661. package/es/interface/plugin.d.ts +2 -0
  662. package/es/interface/plugin.js.map +1 -1
  663. package/es/interface/stage.d.ts +11 -3
  664. package/es/interface/stage.js.map +1 -1
  665. package/es/interface/theme-service.js.map +1 -1
  666. package/es/legacy/binding-context.d.ts +24 -0
  667. package/es/legacy/binding-context.js +90 -0
  668. package/es/legacy/binding-context.js.map +1 -0
  669. package/es/legacy/bootstrap.d.ts +10 -0
  670. package/es/legacy/bootstrap.js +73 -0
  671. package/es/legacy/bootstrap.js.map +1 -0
  672. package/es/legacy/module-types.d.ts +2 -0
  673. package/es/legacy/module-types.js +2 -0
  674. package/es/legacy/module-types.js.map +1 -0
  675. package/es/modules.d.ts +5 -6
  676. package/es/modules.js +37 -33
  677. package/es/modules.js.map +1 -1
  678. package/es/picker/global-picker-service.js +2 -16
  679. package/es/picker/global-picker-service.js.map +1 -1
  680. package/es/picker/pick-interceptor.js +8 -32
  681. package/es/picker/pick-interceptor.js.map +1 -1
  682. package/es/picker/pick-modules.d.ts +5 -3
  683. package/es/picker/pick-modules.js +4 -4
  684. package/es/picker/pick-modules.js.map +1 -1
  685. package/es/picker/picker-service.d.ts +13 -4
  686. package/es/picker/picker-service.js +16 -26
  687. package/es/picker/picker-service.js.map +1 -1
  688. package/es/plugins/base-plugin.d.ts +8 -0
  689. package/es/plugins/base-plugin.js +7 -0
  690. package/es/plugins/base-plugin.js.map +1 -0
  691. package/es/plugins/browser-env-plugin.d.ts +8 -0
  692. package/es/plugins/browser-env-plugin.js +16 -0
  693. package/es/plugins/browser-env-plugin.js.map +1 -0
  694. package/es/plugins/builtin-plugin/dirty-bounds-plugin.d.ts +4 -1
  695. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +26 -3
  696. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  697. package/es/plugins/builtin-plugin/richtext-edit-plugin.js +3 -1
  698. package/es/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  699. package/es/plugins/index.d.ts +5 -0
  700. package/es/plugins/index.js +10 -0
  701. package/es/plugins/index.js.map +1 -0
  702. package/es/plugins/picker-plugin.d.ts +7 -0
  703. package/es/plugins/picker-plugin.js +11 -0
  704. package/es/plugins/picker-plugin.js.map +1 -0
  705. package/es/plugins/plugin-modules.d.ts +4 -3
  706. package/es/plugins/plugin-modules.js +4 -4
  707. package/es/plugins/plugin-modules.js.map +1 -1
  708. package/es/plugins/plugin-service.d.ts +16 -2
  709. package/es/plugins/plugin-service.js +25 -32
  710. package/es/plugins/plugin-service.js.map +1 -1
  711. package/es/plugins/renderer-plugin.d.ts +7 -0
  712. package/es/plugins/renderer-plugin.js +11 -0
  713. package/es/plugins/renderer-plugin.js.map +1 -0
  714. package/es/plugins/types.d.ts +28 -0
  715. package/es/plugins/types.js +2 -0
  716. package/es/plugins/types.js.map +1 -0
  717. package/es/register/register-arc.js +2 -2
  718. package/es/register/register-arc.js.map +1 -1
  719. package/es/register/register-arc3d.js +2 -2
  720. package/es/register/register-arc3d.js.map +1 -1
  721. package/es/register/register-area.js +2 -2
  722. package/es/register/register-area.js.map +1 -1
  723. package/es/register/register-circle.js +2 -2
  724. package/es/register/register-circle.js.map +1 -1
  725. package/es/register/register-glyph.js +2 -2
  726. package/es/register/register-glyph.js.map +1 -1
  727. package/es/register/register-group.js +2 -2
  728. package/es/register/register-group.js.map +1 -1
  729. package/es/register/register-image.js +2 -2
  730. package/es/register/register-image.js.map +1 -1
  731. package/es/register/register-line.js +2 -2
  732. package/es/register/register-line.js.map +1 -1
  733. package/es/register/register-path.js +2 -2
  734. package/es/register/register-path.js.map +1 -1
  735. package/es/register/register-polygon.js +2 -2
  736. package/es/register/register-polygon.js.map +1 -1
  737. package/es/register/register-pyramid3d.js +2 -2
  738. package/es/register/register-pyramid3d.js.map +1 -1
  739. package/es/register/register-rect.js +2 -2
  740. package/es/register/register-rect.js.map +1 -1
  741. package/es/register/register-rect3d.js +2 -2
  742. package/es/register/register-rect3d.js.map +1 -1
  743. package/es/register/register-richtext.js +2 -2
  744. package/es/register/register-richtext.js.map +1 -1
  745. package/es/register/register-shadowRoot.js +2 -2
  746. package/es/register/register-shadowRoot.js.map +1 -1
  747. package/es/register/register-star.js +2 -2
  748. package/es/register/register-star.js.map +1 -1
  749. package/es/register/register-symbol.js +2 -2
  750. package/es/register/register-symbol.js.map +1 -1
  751. package/es/register/register-text.js +2 -2
  752. package/es/register/register-text.js.map +1 -1
  753. package/es/register/register-wraptext.js +2 -2
  754. package/es/register/register-wraptext.js.map +1 -1
  755. package/es/registry/contribution-registry.d.ts +9 -0
  756. package/es/registry/contribution-registry.js +25 -0
  757. package/es/registry/contribution-registry.js.map +1 -0
  758. package/es/registry/index.d.ts +5 -0
  759. package/es/registry/index.js +10 -0
  760. package/es/registry/index.js.map +1 -0
  761. package/es/registry/picker-registry.d.ts +10 -0
  762. package/es/registry/picker-registry.js +21 -0
  763. package/es/registry/picker-registry.js.map +1 -0
  764. package/es/registry/plugin-registry.d.ts +10 -0
  765. package/es/registry/plugin-registry.js +21 -0
  766. package/es/registry/plugin-registry.js.map +1 -0
  767. package/es/registry/renderer-registry.d.ts +11 -0
  768. package/es/registry/renderer-registry.js +29 -0
  769. package/es/registry/renderer-registry.js.map +1 -0
  770. package/es/registry/types.d.ts +34 -0
  771. package/es/registry/types.js +2 -0
  772. package/es/registry/types.js.map +1 -0
  773. package/es/render/contributions/modules.d.ts +2 -2
  774. package/es/render/contributions/modules.js +3 -1
  775. package/es/render/contributions/modules.js.map +1 -1
  776. package/es/render/contributions/render/arc-module.d.ts +4 -2
  777. package/es/render/contributions/render/arc-module.js +4 -4
  778. package/es/render/contributions/render/arc-module.js.map +1 -1
  779. package/es/render/contributions/render/arc-render.js +2 -24
  780. package/es/render/contributions/render/arc-render.js.map +1 -1
  781. package/es/render/contributions/render/arc3d-module.d.ts +4 -2
  782. package/es/render/contributions/render/arc3d-module.js +4 -4
  783. package/es/render/contributions/render/arc3d-module.js.map +1 -1
  784. package/es/render/contributions/render/arc3d-render.js +2 -14
  785. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  786. package/es/render/contributions/render/area-module.d.ts +4 -2
  787. package/es/render/contributions/render/area-module.js +4 -4
  788. package/es/render/contributions/render/area-module.js.map +1 -1
  789. package/es/render/contributions/render/area-render.js +2 -24
  790. package/es/render/contributions/render/area-render.js.map +1 -1
  791. package/es/render/contributions/render/base-render.js +8 -5
  792. package/es/render/contributions/render/base-render.js.map +1 -1
  793. package/es/render/contributions/render/circle-module.d.ts +4 -2
  794. package/es/render/contributions/render/circle-module.js +4 -4
  795. package/es/render/contributions/render/circle-module.js.map +1 -1
  796. package/es/render/contributions/render/circle-render.js +2 -24
  797. package/es/render/contributions/render/circle-render.js.map +1 -1
  798. package/es/render/contributions/render/contributions/base-contribution-render.js +2 -24
  799. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  800. package/es/render/contributions/render/contributions/rect-contribution-render.js +4 -20
  801. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  802. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  803. package/es/render/contributions/render/draw-contribution.d.ts +13 -4
  804. package/es/render/contributions/render/draw-contribution.js +24 -34
  805. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  806. package/es/render/contributions/render/draw-interceptor.js +4 -19
  807. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  808. package/es/render/contributions/render/glyph-module.d.ts +4 -2
  809. package/es/render/contributions/render/glyph-module.js +4 -4
  810. package/es/render/contributions/render/glyph-module.js.map +1 -1
  811. package/es/render/contributions/render/glyph-render.js +2 -14
  812. package/es/render/contributions/render/glyph-render.js.map +1 -1
  813. package/es/render/contributions/render/graphic-render.js +1 -13
  814. package/es/render/contributions/render/graphic-render.js.map +1 -1
  815. package/es/render/contributions/render/group-render.js +2 -24
  816. package/es/render/contributions/render/group-render.js.map +1 -1
  817. package/es/render/contributions/render/image-module.d.ts +4 -2
  818. package/es/render/contributions/render/image-module.js +4 -4
  819. package/es/render/contributions/render/image-module.js.map +1 -1
  820. package/es/render/contributions/render/image-render.d.ts +2 -2
  821. package/es/render/contributions/render/image-render.js +9 -31
  822. package/es/render/contributions/render/image-render.js.map +1 -1
  823. package/es/render/contributions/render/incremental-area-render.js +2 -14
  824. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  825. package/es/render/contributions/render/incremental-draw-contribution.d.ts +2 -2
  826. package/es/render/contributions/render/incremental-draw-contribution.js +3 -29
  827. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  828. package/es/render/contributions/render/incremental-line-render.js +2 -14
  829. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  830. package/es/render/contributions/render/line-module.d.ts +4 -2
  831. package/es/render/contributions/render/line-module.js +4 -4
  832. package/es/render/contributions/render/line-module.js.map +1 -1
  833. package/es/render/contributions/render/line-render.js +2 -14
  834. package/es/render/contributions/render/line-render.js.map +1 -1
  835. package/es/render/contributions/render/module.d.ts +4 -3
  836. package/es/render/contributions/render/module.js +10 -10
  837. package/es/render/contributions/render/module.js.map +1 -1
  838. package/es/render/contributions/render/path-module.d.ts +4 -2
  839. package/es/render/contributions/render/path-module.js +4 -4
  840. package/es/render/contributions/render/path-module.js.map +1 -1
  841. package/es/render/contributions/render/path-render.js +2 -24
  842. package/es/render/contributions/render/path-render.js.map +1 -1
  843. package/es/render/contributions/render/polygon-module.d.ts +4 -2
  844. package/es/render/contributions/render/polygon-module.js +4 -4
  845. package/es/render/contributions/render/polygon-module.js.map +1 -1
  846. package/es/render/contributions/render/polygon-render.js +2 -24
  847. package/es/render/contributions/render/polygon-render.js.map +1 -1
  848. package/es/render/contributions/render/pyramid3d-module.d.ts +4 -2
  849. package/es/render/contributions/render/pyramid3d-module.js +4 -4
  850. package/es/render/contributions/render/pyramid3d-module.js.map +1 -1
  851. package/es/render/contributions/render/pyramid3d-render.js +2 -14
  852. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  853. package/es/render/contributions/render/rect-module.d.ts +4 -2
  854. package/es/render/contributions/render/rect-module.js +7 -7
  855. package/es/render/contributions/render/rect-module.js.map +1 -1
  856. package/es/render/contributions/render/rect-render.js +2 -24
  857. package/es/render/contributions/render/rect-render.js.map +1 -1
  858. package/es/render/contributions/render/rect3d-module.d.ts +4 -2
  859. package/es/render/contributions/render/rect3d-module.js +4 -4
  860. package/es/render/contributions/render/rect3d-module.js.map +1 -1
  861. package/es/render/contributions/render/rect3d-render.js +2 -14
  862. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  863. package/es/render/contributions/render/render-slector.js.map +1 -1
  864. package/es/render/contributions/render/richtext-module.d.ts +4 -2
  865. package/es/render/contributions/render/richtext-module.js +4 -4
  866. package/es/render/contributions/render/richtext-module.js.map +1 -1
  867. package/es/render/contributions/render/richtext-render.js +2 -16
  868. package/es/render/contributions/render/richtext-render.js.map +1 -1
  869. package/es/render/contributions/render/star-module.d.ts +4 -2
  870. package/es/render/contributions/render/star-module.js +9 -5
  871. package/es/render/contributions/render/star-module.js.map +1 -1
  872. package/es/render/contributions/render/star-render.js +2 -24
  873. package/es/render/contributions/render/star-render.js.map +1 -1
  874. package/es/render/contributions/render/symbol-module.d.ts +4 -2
  875. package/es/render/contributions/render/symbol-module.js +4 -4
  876. package/es/render/contributions/render/symbol-module.js.map +1 -1
  877. package/es/render/contributions/render/symbol-render.js +2 -24
  878. package/es/render/contributions/render/symbol-render.js.map +1 -1
  879. package/es/render/contributions/render/text-module.d.ts +4 -2
  880. package/es/render/contributions/render/text-module.js +4 -4
  881. package/es/render/contributions/render/text-module.js.map +1 -1
  882. package/es/render/contributions/render/text-render.js +2 -24
  883. package/es/render/contributions/render/text-render.js.map +1 -1
  884. package/es/render/render-modules.d.ts +4 -3
  885. package/es/render/render-modules.js +4 -4
  886. package/es/render/render-modules.js.map +1 -1
  887. package/es/render/render-service.d.ts +1 -1
  888. package/es/render/render-service.js +4 -22
  889. package/es/render/render-service.js.map +1 -1
  890. package/package.json +8 -7
  891. package/cjs/common/inversify/annotation/inject.d.ts +0 -1
  892. package/cjs/common/inversify/annotation/inject.js +0 -10
  893. package/cjs/common/inversify/annotation/inject.js.map +0 -1
  894. package/cjs/common/inversify/annotation/inject_base.d.ts +0 -14
  895. package/cjs/common/inversify/annotation/inject_base.js +0 -39
  896. package/cjs/common/inversify/annotation/inject_base.js.map +0 -1
  897. package/cjs/common/inversify/annotation/injectable.d.ts +0 -1
  898. package/cjs/common/inversify/annotation/injectable.js +0 -46
  899. package/cjs/common/inversify/annotation/injectable.js.map +0 -1
  900. package/cjs/common/inversify/annotation/multi_inject.d.ts +0 -1
  901. package/cjs/common/inversify/annotation/multi_inject.js +0 -10
  902. package/cjs/common/inversify/annotation/multi_inject.js.map +0 -1
  903. package/cjs/common/inversify/annotation/named.d.ts +0 -1
  904. package/cjs/common/inversify/annotation/named.js +0 -14
  905. package/cjs/common/inversify/annotation/named.js.map +0 -1
  906. package/cjs/common/inversify/annotation/optional.d.ts +0 -2
  907. package/cjs/common/inversify/annotation/optional.js +0 -14
  908. package/cjs/common/inversify/annotation/optional.js.map +0 -1
  909. package/cjs/common/inversify/binding.d.ts +0 -18
  910. package/cjs/common/inversify/binding.js +0 -26
  911. package/cjs/common/inversify/binding.js.map +0 -1
  912. package/cjs/common/inversify/container.d.ts +0 -28
  913. package/cjs/common/inversify/container.js +0 -158
  914. package/cjs/common/inversify/container.js.map +0 -1
  915. package/cjs/common/inversify/cotainer-module.d.ts +0 -6
  916. package/cjs/common/inversify/cotainer-module.js +0 -16
  917. package/cjs/common/inversify/cotainer-module.js.map +0 -1
  918. package/cjs/common/inversify/index.d.ts +0 -7
  919. package/cjs/common/inversify/index.js +0 -75
  920. package/cjs/common/inversify/index.js.map +0 -1
  921. package/cjs/common/inversify/interfaces.d.ts +0 -218
  922. package/cjs/common/inversify/interfaces.js.map +0 -1
  923. package/cjs/common/inversify/literal_types.d.ts +0 -5
  924. package/cjs/common/inversify/literal_types.js +0 -34
  925. package/cjs/common/inversify/literal_types.js.map +0 -1
  926. package/cjs/common/inversify/meta-data.d.ts +0 -6
  927. package/cjs/common/inversify/meta-data.js +0 -19
  928. package/cjs/common/inversify/meta-data.js.map +0 -1
  929. package/cjs/common/inversify/metadata_keys.d.ts +0 -12
  930. package/cjs/common/inversify/metadata_keys.js +0 -15
  931. package/cjs/common/inversify/metadata_keys.js.map +0 -1
  932. package/cjs/common/inversify/metadata_reader.d.ts +0 -6
  933. package/cjs/common/inversify/metadata_reader.js +0 -28
  934. package/cjs/common/inversify/metadata_reader.js.map +0 -1
  935. package/cjs/common/inversify/syntax/binding_in_syntax.d.ts +0 -10
  936. package/cjs/common/inversify/syntax/binding_in_syntax.js +0 -29
  937. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +0 -1
  938. package/cjs/common/inversify/syntax/binding_to_syntax.d.ts +0 -12
  939. package/cjs/common/inversify/syntax/binding_to_syntax.js +0 -40
  940. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +0 -1
  941. package/cjs/common/inversify/syntax/constraint_helpers.d.ts +0 -2
  942. package/cjs/common/inversify/syntax/constraint_helpers.js +0 -20
  943. package/cjs/common/inversify/syntax/constraint_helpers.js.map +0 -1
  944. package/cjs/common/inversify-lite/annotation/decorator_utils.d.ts +0 -16
  945. package/cjs/common/inversify-lite/annotation/decorator_utils.js +0 -97
  946. package/cjs/common/inversify-lite/annotation/decorator_utils.js.map +0 -1
  947. package/cjs/common/inversify-lite/annotation/inject.d.ts +0 -2
  948. package/cjs/common/inversify-lite/annotation/inject.js +0 -36
  949. package/cjs/common/inversify-lite/annotation/inject.js.map +0 -1
  950. package/cjs/common/inversify-lite/annotation/inject_base.d.ts +0 -3
  951. package/cjs/common/inversify-lite/annotation/inject_base.js +0 -20
  952. package/cjs/common/inversify-lite/annotation/inject_base.js.map +0 -1
  953. package/cjs/common/inversify-lite/annotation/injectable.d.ts +0 -2
  954. package/cjs/common/inversify-lite/annotation/injectable.js +0 -48
  955. package/cjs/common/inversify-lite/annotation/injectable.js.map +0 -1
  956. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.d.ts +0 -7
  957. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js +0 -17
  958. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js.map +0 -1
  959. package/cjs/common/inversify-lite/annotation/multi_inject.d.ts +0 -2
  960. package/cjs/common/inversify-lite/annotation/multi_inject.js +0 -36
  961. package/cjs/common/inversify-lite/annotation/multi_inject.js.map +0 -1
  962. package/cjs/common/inversify-lite/annotation/named.d.ts +0 -2
  963. package/cjs/common/inversify-lite/annotation/named.js +0 -39
  964. package/cjs/common/inversify-lite/annotation/named.js.map +0 -1
  965. package/cjs/common/inversify-lite/annotation/property_event_decorator.d.ts +0 -4
  966. package/cjs/common/inversify-lite/annotation/property_event_decorator.js +0 -24
  967. package/cjs/common/inversify-lite/annotation/property_event_decorator.js.map +0 -1
  968. package/cjs/common/inversify-lite/bindings/binding.d.ts +0 -20
  969. package/cjs/common/inversify-lite/bindings/binding.js +0 -27
  970. package/cjs/common/inversify-lite/bindings/binding.js.map +0 -1
  971. package/cjs/common/inversify-lite/bindings/binding_count.d.ts +0 -5
  972. package/cjs/common/inversify-lite/bindings/binding_count.js +0 -10
  973. package/cjs/common/inversify-lite/bindings/binding_count.js.map +0 -1
  974. package/cjs/common/inversify-lite/constants/error_msgs.d.ts +0 -32
  975. package/cjs/common/inversify-lite/constants/error_msgs.js +0 -50
  976. package/cjs/common/inversify-lite/constants/error_msgs.js.map +0 -1
  977. package/cjs/common/inversify-lite/constants/literal_types.d.ts +0 -5
  978. package/cjs/common/inversify-lite/constants/literal_types.js +0 -35
  979. package/cjs/common/inversify-lite/constants/literal_types.js.map +0 -1
  980. package/cjs/common/inversify-lite/constants/metadata_keys.d.ts +0 -13
  981. package/cjs/common/inversify-lite/constants/metadata_keys.js +0 -16
  982. package/cjs/common/inversify-lite/constants/metadata_keys.js.map +0 -1
  983. package/cjs/common/inversify-lite/container/container.d.ts +0 -46
  984. package/cjs/common/inversify-lite/container/container.js +0 -290
  985. package/cjs/common/inversify-lite/container/container.js.map +0 -1
  986. package/cjs/common/inversify-lite/container/container_module.d.ts +0 -11
  987. package/cjs/common/inversify-lite/container/container_module.js +0 -24
  988. package/cjs/common/inversify-lite/container/container_module.js.map +0 -1
  989. package/cjs/common/inversify-lite/container/lookup.d.ts +0 -16
  990. package/cjs/common/inversify-lite/container/lookup.js +0 -97
  991. package/cjs/common/inversify-lite/container/lookup.js.map +0 -1
  992. package/cjs/common/inversify-lite/index.d.ts +0 -1
  993. package/cjs/common/inversify-lite/index.js.map +0 -1
  994. package/cjs/common/inversify-lite/interfaces/interfaces.d.ts +0 -237
  995. package/cjs/common/inversify-lite/interfaces/interfaces.js.map +0 -1
  996. package/cjs/common/inversify-lite/planning/context.d.ts +0 -11
  997. package/cjs/common/inversify-lite/planning/context.js +0 -22
  998. package/cjs/common/inversify-lite/planning/context.js.map +0 -1
  999. package/cjs/common/inversify-lite/planning/metadata.d.ts +0 -8
  1000. package/cjs/common/inversify-lite/planning/metadata.js +0 -44
  1001. package/cjs/common/inversify-lite/planning/metadata.js.map +0 -1
  1002. package/cjs/common/inversify-lite/planning/metadata_reader.d.ts +0 -6
  1003. package/cjs/common/inversify-lite/planning/metadata_reader.js +0 -51
  1004. package/cjs/common/inversify-lite/planning/metadata_reader.js.map +0 -1
  1005. package/cjs/common/inversify-lite/planning/plan.d.ts +0 -7
  1006. package/cjs/common/inversify-lite/planning/plan.js +0 -14
  1007. package/cjs/common/inversify-lite/planning/plan.js.map +0 -1
  1008. package/cjs/common/inversify-lite/planning/planner.d.ts +0 -5
  1009. package/cjs/common/inversify-lite/planning/planner.js +0 -132
  1010. package/cjs/common/inversify-lite/planning/planner.js.map +0 -1
  1011. package/cjs/common/inversify-lite/planning/queryable_string.d.ts +0 -9
  1012. package/cjs/common/inversify-lite/planning/queryable_string.js +0 -23
  1013. package/cjs/common/inversify-lite/planning/queryable_string.js.map +0 -1
  1014. package/cjs/common/inversify-lite/planning/reflection_utils.d.ts +0 -5
  1015. package/cjs/common/inversify-lite/planning/reflection_utils.js +0 -129
  1016. package/cjs/common/inversify-lite/planning/reflection_utils.js.map +0 -1
  1017. package/cjs/common/inversify-lite/planning/request.d.ts +0 -14
  1018. package/cjs/common/inversify-lite/planning/request.js +0 -22
  1019. package/cjs/common/inversify-lite/planning/request.js.map +0 -1
  1020. package/cjs/common/inversify-lite/planning/target.d.ts +0 -23
  1021. package/cjs/common/inversify-lite/planning/target.js +0 -81
  1022. package/cjs/common/inversify-lite/planning/target.js.map +0 -1
  1023. package/cjs/common/inversify-lite/resolution/instantiation.d.ts +0 -3
  1024. package/cjs/common/inversify-lite/resolution/instantiation.js +0 -143
  1025. package/cjs/common/inversify-lite/resolution/instantiation.js.map +0 -1
  1026. package/cjs/common/inversify-lite/resolution/resolver.d.ts +0 -3
  1027. package/cjs/common/inversify-lite/resolution/resolver.js +0 -74
  1028. package/cjs/common/inversify-lite/resolution/resolver.js.map +0 -1
  1029. package/cjs/common/inversify-lite/scope/scope.d.ts +0 -3
  1030. package/cjs/common/inversify-lite/scope/scope.js +0 -56
  1031. package/cjs/common/inversify-lite/scope/scope.js.map +0 -1
  1032. package/cjs/common/inversify-lite/syntax/binding_in_syntax.d.ts +0 -9
  1033. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js +0 -25
  1034. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js.map +0 -1
  1035. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.d.ts +0 -12
  1036. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -29
  1037. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +0 -1
  1038. package/cjs/common/inversify-lite/syntax/binding_on_syntax.d.ts +0 -6
  1039. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js +0 -14
  1040. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js.map +0 -1
  1041. package/cjs/common/inversify-lite/syntax/binding_to_syntax.d.ts +0 -18
  1042. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js +0 -88
  1043. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js.map +0 -1
  1044. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.d.ts +0 -8
  1045. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -19
  1046. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js.map +0 -1
  1047. package/cjs/common/inversify-lite/syntax/binding_when_syntax.d.ts +0 -7
  1048. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js +0 -20
  1049. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js.map +0 -1
  1050. package/cjs/common/inversify-lite/syntax/constraint_helpers.d.ts +0 -3
  1051. package/cjs/common/inversify-lite/syntax/constraint_helpers.js +0 -38
  1052. package/cjs/common/inversify-lite/syntax/constraint_helpers.js.map +0 -1
  1053. package/cjs/common/inversify-lite/utils/async.d.ts +0 -3
  1054. package/cjs/common/inversify-lite/utils/async.js +0 -15
  1055. package/cjs/common/inversify-lite/utils/async.js.map +0 -1
  1056. package/cjs/common/inversify-lite/utils/binding_utils.d.ts +0 -4
  1057. package/cjs/common/inversify-lite/utils/binding_utils.js +0 -94
  1058. package/cjs/common/inversify-lite/utils/binding_utils.js.map +0 -1
  1059. package/cjs/common/inversify-lite/utils/clonable.d.ts +0 -3
  1060. package/cjs/common/inversify-lite/utils/clonable.js +0 -10
  1061. package/cjs/common/inversify-lite/utils/clonable.js.map +0 -1
  1062. package/cjs/common/inversify-lite/utils/exceptions.d.ts +0 -2
  1063. package/cjs/common/inversify-lite/utils/exceptions.js +0 -43
  1064. package/cjs/common/inversify-lite/utils/exceptions.js.map +0 -1
  1065. package/cjs/common/inversify-lite/utils/factory_type.d.ts +0 -5
  1066. package/cjs/common/inversify-lite/utils/factory_type.js +0 -11
  1067. package/cjs/common/inversify-lite/utils/factory_type.js.map +0 -1
  1068. package/cjs/common/inversify-lite/utils/id.d.ts +0 -2
  1069. package/cjs/common/inversify-lite/utils/id.js +0 -14
  1070. package/cjs/common/inversify-lite/utils/id.js.map +0 -1
  1071. package/cjs/common/inversify-lite/utils/js.d.ts +0 -1
  1072. package/cjs/common/inversify-lite/utils/js.js +0 -14
  1073. package/cjs/common/inversify-lite/utils/js.js.map +0 -1
  1074. package/cjs/common/inversify-lite/utils/serialization.d.ts +0 -10
  1075. package/cjs/common/inversify-lite/utils/serialization.js +0 -99
  1076. package/cjs/common/inversify-lite/utils/serialization.js.map +0 -1
  1077. package/cjs/container.d.ts +0 -2
  1078. package/cjs/container.js +0 -10
  1079. package/cjs/container.js.map +0 -1
  1080. package/es/common/inversify/annotation/inject.d.ts +0 -1
  1081. package/es/common/inversify/annotation/inject.js +0 -6
  1082. package/es/common/inversify/annotation/inject.js.map +0 -1
  1083. package/es/common/inversify/annotation/inject_base.d.ts +0 -14
  1084. package/es/common/inversify/annotation/inject_base.js +0 -29
  1085. package/es/common/inversify/annotation/inject_base.js.map +0 -1
  1086. package/es/common/inversify/annotation/injectable.d.ts +0 -1
  1087. package/es/common/inversify/annotation/injectable.js +0 -10
  1088. package/es/common/inversify/annotation/injectable.js.map +0 -1
  1089. package/es/common/inversify/annotation/multi_inject.d.ts +0 -1
  1090. package/es/common/inversify/annotation/multi_inject.js +0 -6
  1091. package/es/common/inversify/annotation/multi_inject.js.map +0 -1
  1092. package/es/common/inversify/annotation/named.d.ts +0 -1
  1093. package/es/common/inversify/annotation/named.js +0 -10
  1094. package/es/common/inversify/annotation/named.js.map +0 -1
  1095. package/es/common/inversify/annotation/optional.d.ts +0 -2
  1096. package/es/common/inversify/annotation/optional.js +0 -12
  1097. package/es/common/inversify/annotation/optional.js.map +0 -1
  1098. package/es/common/inversify/binding.d.ts +0 -18
  1099. package/es/common/inversify/binding.js +0 -22
  1100. package/es/common/inversify/binding.js.map +0 -1
  1101. package/es/common/inversify/container.d.ts +0 -28
  1102. package/es/common/inversify/container.js +0 -158
  1103. package/es/common/inversify/container.js.map +0 -1
  1104. package/es/common/inversify/cotainer-module.d.ts +0 -6
  1105. package/es/common/inversify/cotainer-module.js +0 -8
  1106. package/es/common/inversify/cotainer-module.js.map +0 -1
  1107. package/es/common/inversify/index.d.ts +0 -7
  1108. package/es/common/inversify/index.js +0 -14
  1109. package/es/common/inversify/index.js.map +0 -1
  1110. package/es/common/inversify/interfaces.d.ts +0 -218
  1111. package/es/common/inversify/interfaces.js +0 -2
  1112. package/es/common/inversify/interfaces.js.map +0 -1
  1113. package/es/common/inversify/literal_types.d.ts +0 -5
  1114. package/es/common/inversify/literal_types.js +0 -20
  1115. package/es/common/inversify/literal_types.js.map +0 -1
  1116. package/es/common/inversify/meta-data.d.ts +0 -6
  1117. package/es/common/inversify/meta-data.js +0 -11
  1118. package/es/common/inversify/meta-data.js.map +0 -1
  1119. package/es/common/inversify/metadata_keys.d.ts +0 -12
  1120. package/es/common/inversify/metadata_keys.js +0 -28
  1121. package/es/common/inversify/metadata_keys.js.map +0 -1
  1122. package/es/common/inversify/metadata_reader.d.ts +0 -6
  1123. package/es/common/inversify/metadata_reader.js +0 -18
  1124. package/es/common/inversify/metadata_reader.js.map +0 -1
  1125. package/es/common/inversify/syntax/binding_in_syntax.d.ts +0 -10
  1126. package/es/common/inversify/syntax/binding_in_syntax.js +0 -24
  1127. package/es/common/inversify/syntax/binding_in_syntax.js.map +0 -1
  1128. package/es/common/inversify/syntax/binding_to_syntax.d.ts +0 -12
  1129. package/es/common/inversify/syntax/binding_to_syntax.js +0 -36
  1130. package/es/common/inversify/syntax/binding_to_syntax.js.map +0 -1
  1131. package/es/common/inversify/syntax/constraint_helpers.d.ts +0 -2
  1132. package/es/common/inversify/syntax/constraint_helpers.js +0 -18
  1133. package/es/common/inversify/syntax/constraint_helpers.js.map +0 -1
  1134. package/es/common/inversify-lite/annotation/decorator_utils.d.ts +0 -16
  1135. package/es/common/inversify-lite/annotation/decorator_utils.js +0 -67
  1136. package/es/common/inversify-lite/annotation/decorator_utils.js.map +0 -1
  1137. package/es/common/inversify-lite/annotation/inject.d.ts +0 -2
  1138. package/es/common/inversify-lite/annotation/inject.js +0 -8
  1139. package/es/common/inversify-lite/annotation/inject.js.map +0 -1
  1140. package/es/common/inversify-lite/annotation/inject_base.d.ts +0 -3
  1141. package/es/common/inversify-lite/annotation/inject_base.js +0 -16
  1142. package/es/common/inversify-lite/annotation/inject_base.js.map +0 -1
  1143. package/es/common/inversify-lite/annotation/injectable.d.ts +0 -2
  1144. package/es/common/inversify-lite/annotation/injectable.js +0 -16
  1145. package/es/common/inversify-lite/annotation/injectable.js.map +0 -1
  1146. package/es/common/inversify-lite/annotation/lazy_service_identifier.d.ts +0 -7
  1147. package/es/common/inversify-lite/annotation/lazy_service_identifier.js +0 -9
  1148. package/es/common/inversify-lite/annotation/lazy_service_identifier.js.map +0 -1
  1149. package/es/common/inversify-lite/annotation/multi_inject.d.ts +0 -2
  1150. package/es/common/inversify-lite/annotation/multi_inject.js +0 -8
  1151. package/es/common/inversify-lite/annotation/multi_inject.js.map +0 -1
  1152. package/es/common/inversify-lite/annotation/named.d.ts +0 -2
  1153. package/es/common/inversify-lite/annotation/named.js +0 -12
  1154. package/es/common/inversify-lite/annotation/named.js.map +0 -1
  1155. package/es/common/inversify-lite/annotation/property_event_decorator.d.ts +0 -4
  1156. package/es/common/inversify-lite/annotation/property_event_decorator.js +0 -14
  1157. package/es/common/inversify-lite/annotation/property_event_decorator.js.map +0 -1
  1158. package/es/common/inversify-lite/bindings/binding.d.ts +0 -20
  1159. package/es/common/inversify-lite/bindings/binding.js +0 -23
  1160. package/es/common/inversify-lite/bindings/binding.js.map +0 -1
  1161. package/es/common/inversify-lite/bindings/binding_count.d.ts +0 -5
  1162. package/es/common/inversify-lite/bindings/binding_count.js +0 -6
  1163. package/es/common/inversify-lite/bindings/binding_count.js.map +0 -1
  1164. package/es/common/inversify-lite/constants/error_msgs.d.ts +0 -32
  1165. package/es/common/inversify-lite/constants/error_msgs.js +0 -64
  1166. package/es/common/inversify-lite/constants/error_msgs.js.map +0 -1
  1167. package/es/common/inversify-lite/constants/literal_types.d.ts +0 -5
  1168. package/es/common/inversify-lite/constants/literal_types.js +0 -21
  1169. package/es/common/inversify-lite/constants/literal_types.js.map +0 -1
  1170. package/es/common/inversify-lite/constants/metadata_keys.d.ts +0 -13
  1171. package/es/common/inversify-lite/constants/metadata_keys.js +0 -30
  1172. package/es/common/inversify-lite/constants/metadata_keys.js.map +0 -1
  1173. package/es/common/inversify-lite/container/container.d.ts +0 -46
  1174. package/es/common/inversify-lite/container/container.js +0 -279
  1175. package/es/common/inversify-lite/container/container.js.map +0 -1
  1176. package/es/common/inversify-lite/container/container_module.d.ts +0 -11
  1177. package/es/common/inversify-lite/container/container_module.js +0 -14
  1178. package/es/common/inversify-lite/container/container_module.js.map +0 -1
  1179. package/es/common/inversify-lite/container/lookup.d.ts +0 -16
  1180. package/es/common/inversify-lite/container/lookup.js +0 -68
  1181. package/es/common/inversify-lite/container/lookup.js.map +0 -1
  1182. package/es/common/inversify-lite/index.d.ts +0 -1
  1183. package/es/common/inversify-lite/index.js +0 -2
  1184. package/es/common/inversify-lite/index.js.map +0 -1
  1185. package/es/common/inversify-lite/interfaces/interfaces.d.ts +0 -237
  1186. package/es/common/inversify-lite/interfaces/interfaces.js +0 -2
  1187. package/es/common/inversify-lite/interfaces/interfaces.js.map +0 -1
  1188. package/es/common/inversify-lite/planning/context.d.ts +0 -11
  1189. package/es/common/inversify-lite/planning/context.js +0 -16
  1190. package/es/common/inversify-lite/planning/context.js.map +0 -1
  1191. package/es/common/inversify-lite/planning/metadata.d.ts +0 -8
  1192. package/es/common/inversify-lite/planning/metadata.js +0 -13
  1193. package/es/common/inversify-lite/planning/metadata.js.map +0 -1
  1194. package/es/common/inversify-lite/planning/metadata_reader.d.ts +0 -6
  1195. package/es/common/inversify-lite/planning/metadata_reader.js +0 -18
  1196. package/es/common/inversify-lite/planning/metadata_reader.js.map +0 -1
  1197. package/es/common/inversify-lite/planning/plan.d.ts +0 -7
  1198. package/es/common/inversify-lite/planning/plan.js +0 -8
  1199. package/es/common/inversify-lite/planning/plan.js.map +0 -1
  1200. package/es/common/inversify-lite/planning/planner.d.ts +0 -5
  1201. package/es/common/inversify-lite/planning/planner.js +0 -120
  1202. package/es/common/inversify-lite/planning/planner.js.map +0 -1
  1203. package/es/common/inversify-lite/planning/queryable_string.d.ts +0 -9
  1204. package/es/common/inversify-lite/planning/queryable_string.js +0 -17
  1205. package/es/common/inversify-lite/planning/queryable_string.js.map +0 -1
  1206. package/es/common/inversify-lite/planning/reflection_utils.d.ts +0 -5
  1207. package/es/common/inversify-lite/planning/reflection_utils.js +0 -99
  1208. package/es/common/inversify-lite/planning/reflection_utils.js.map +0 -1
  1209. package/es/common/inversify-lite/planning/request.d.ts +0 -14
  1210. package/es/common/inversify-lite/planning/request.js +0 -16
  1211. package/es/common/inversify-lite/planning/request.js.map +0 -1
  1212. package/es/common/inversify-lite/planning/target.d.ts +0 -23
  1213. package/es/common/inversify-lite/planning/target.js +0 -58
  1214. package/es/common/inversify-lite/planning/target.js.map +0 -1
  1215. package/es/common/inversify-lite/resolution/instantiation.d.ts +0 -3
  1216. package/es/common/inversify-lite/resolution/instantiation.js +0 -117
  1217. package/es/common/inversify-lite/resolution/instantiation.js.map +0 -1
  1218. package/es/common/inversify-lite/resolution/resolver.d.ts +0 -3
  1219. package/es/common/inversify-lite/resolution/resolver.js +0 -55
  1220. package/es/common/inversify-lite/resolution/resolver.js.map +0 -1
  1221. package/es/common/inversify-lite/scope/scope.d.ts +0 -3
  1222. package/es/common/inversify-lite/scope/scope.js +0 -50
  1223. package/es/common/inversify-lite/scope/scope.js.map +0 -1
  1224. package/es/common/inversify-lite/syntax/binding_in_syntax.d.ts +0 -9
  1225. package/es/common/inversify-lite/syntax/binding_in_syntax.js +0 -21
  1226. package/es/common/inversify-lite/syntax/binding_in_syntax.js.map +0 -1
  1227. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.d.ts +0 -12
  1228. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -25
  1229. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +0 -1
  1230. package/es/common/inversify-lite/syntax/binding_on_syntax.d.ts +0 -6
  1231. package/es/common/inversify-lite/syntax/binding_on_syntax.js +0 -8
  1232. package/es/common/inversify-lite/syntax/binding_on_syntax.js.map +0 -1
  1233. package/es/common/inversify-lite/syntax/binding_to_syntax.d.ts +0 -18
  1234. package/es/common/inversify-lite/syntax/binding_to_syntax.js +0 -63
  1235. package/es/common/inversify-lite/syntax/binding_to_syntax.js.map +0 -1
  1236. package/es/common/inversify-lite/syntax/binding_when_on_syntax.d.ts +0 -8
  1237. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -13
  1238. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js.map +0 -1
  1239. package/es/common/inversify-lite/syntax/binding_when_syntax.d.ts +0 -7
  1240. package/es/common/inversify-lite/syntax/binding_when_syntax.js +0 -15
  1241. package/es/common/inversify-lite/syntax/binding_when_syntax.js.map +0 -1
  1242. package/es/common/inversify-lite/syntax/constraint_helpers.d.ts +0 -3
  1243. package/es/common/inversify-lite/syntax/constraint_helpers.js +0 -11
  1244. package/es/common/inversify-lite/syntax/constraint_helpers.js.map +0 -1
  1245. package/es/common/inversify-lite/utils/async.d.ts +0 -3
  1246. package/es/common/inversify-lite/utils/async.js +0 -10
  1247. package/es/common/inversify-lite/utils/async.js.map +0 -1
  1248. package/es/common/inversify-lite/utils/binding_utils.d.ts +0 -4
  1249. package/es/common/inversify-lite/utils/binding_utils.js +0 -65
  1250. package/es/common/inversify-lite/utils/binding_utils.js.map +0 -1
  1251. package/es/common/inversify-lite/utils/clonable.d.ts +0 -3
  1252. package/es/common/inversify-lite/utils/clonable.js +0 -6
  1253. package/es/common/inversify-lite/utils/clonable.js.map +0 -1
  1254. package/es/common/inversify-lite/utils/exceptions.d.ts +0 -2
  1255. package/es/common/inversify-lite/utils/exceptions.js +0 -8
  1256. package/es/common/inversify-lite/utils/exceptions.js.map +0 -1
  1257. package/es/common/inversify-lite/utils/factory_type.d.ts +0 -5
  1258. package/es/common/inversify-lite/utils/factory_type.js +0 -7
  1259. package/es/common/inversify-lite/utils/factory_type.js.map +0 -1
  1260. package/es/common/inversify-lite/utils/id.d.ts +0 -2
  1261. package/es/common/inversify-lite/utils/id.js +0 -8
  1262. package/es/common/inversify-lite/utils/id.js.map +0 -1
  1263. package/es/common/inversify-lite/utils/js.d.ts +0 -1
  1264. package/es/common/inversify-lite/utils/js.js +0 -8
  1265. package/es/common/inversify-lite/utils/js.js.map +0 -1
  1266. package/es/common/inversify-lite/utils/serialization.d.ts +0 -10
  1267. package/es/common/inversify-lite/utils/serialization.js +0 -66
  1268. package/es/common/inversify-lite/utils/serialization.js.map +0 -1
  1269. package/es/container.d.ts +0 -2
  1270. package/es/container.js +0 -4
  1271. package/es/container.js.map +0 -1
@@ -1,3 +1,4 @@
1
- import { ContainerModule } from '../../../common/inversify-lite';
2
- declare const _default: ContainerModule;
3
- export default _default;
1
+ export declare function bindLayerHandlerModules({ bind }: {
2
+ bind: any;
3
+ }): void;
4
+ export default bindLayerHandlerModules;
@@ -1,10 +1,10 @@
1
- import { ContainerModule } from "../../../common/inversify-lite";
2
-
3
1
  import { StaticLayerHandlerContribution } from "../../constants";
4
2
 
5
3
  import { CanvasLayerHandlerContribution } from "./canvas2d-contribution";
6
4
 
7
- export default new ContainerModule((bind => {
5
+ export function bindLayerHandlerModules({bind: bind}) {
8
6
  bind(CanvasLayerHandlerContribution).toSelf(), bind(StaticLayerHandlerContribution).toService(CanvasLayerHandlerContribution);
9
- }));
7
+ }
8
+
9
+ export default bindLayerHandlerModules;
10
10
  //# sourceMappingURL=modules.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/layerHandler/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAEL,8BAA8B,EAE/B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAIzE,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC;IAG9C,IAAI,CAAC,8BAA8B,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;AAUjF,CAAC,CAAC,CAAC","file":"modules.js","sourcesContent":["import { ContainerModule } from '../../../common/inversify-lite';\nimport {\n // DynamicLayerHandlerContribution,\n StaticLayerHandlerContribution\n // VirtualLayerHandlerContribution\n} from '../../constants';\nimport { CanvasLayerHandlerContribution } from './canvas2d-contribution';\n// import { EmptyLayerHandlerContribution } from './empty-contribution';\n// import { OffscreenLayerHandlerContribution } from './offscreen2d-contribution';\n\nexport default new ContainerModule(bind => {\n bind(CanvasLayerHandlerContribution).toSelf();\n // bind(OffscreenLayerHandlerContribution).toSelf();\n // bind(EmptyLayerHandlerContribution).toSelf();\n bind(StaticLayerHandlerContribution).toService(CanvasLayerHandlerContribution);\n // bind(DynamicLayerHandlerContribution).toService(OffscreenLayerHandlerContribution);\n // bind(VirtualLayerHandlerContribution).toService(EmptyLayerHandlerContribution);\n // try {\n // if (typeof OffscreenCanvas === 'function') {\n // bind(LayerHandlerContribution).toService(OffscreenLayerHandlerContribution);\n // }\n // } catch (err) {\n // bind(LayerHandlerContribution).toService(CanvasLayerHandlerContribution);\n // }\n});\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/layerHandler/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,8BAA8B,EAE/B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAIzE,MAAM,UAAU,uBAAuB,CAAC,EAAE,IAAI,EAAiB;IAC7D,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC;IAG9C,IAAI,CAAC,8BAA8B,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;AAUjF,CAAC;AAED,eAAe,uBAAuB,CAAC","file":"modules.js","sourcesContent":["import {\n // DynamicLayerHandlerContribution,\n StaticLayerHandlerContribution\n // VirtualLayerHandlerContribution\n} from '../../constants';\nimport { CanvasLayerHandlerContribution } from './canvas2d-contribution';\n// import { EmptyLayerHandlerContribution } from './empty-contribution';\n// import { OffscreenLayerHandlerContribution } from './offscreen2d-contribution';\n\nexport function bindLayerHandlerModules({ bind }: { bind: any }) {\n bind(CanvasLayerHandlerContribution).toSelf();\n // bind(OffscreenLayerHandlerContribution).toSelf();\n // bind(EmptyLayerHandlerContribution).toSelf();\n bind(StaticLayerHandlerContribution).toService(CanvasLayerHandlerContribution);\n // bind(DynamicLayerHandlerContribution).toService(OffscreenLayerHandlerContribution);\n // bind(VirtualLayerHandlerContribution).toService(EmptyLayerHandlerContribution);\n // try {\n // if (typeof OffscreenCanvas === 'function') {\n // bind(LayerHandlerContribution).toService(OffscreenLayerHandlerContribution);\n // }\n // } catch (err) {\n // bind(LayerHandlerContribution).toService(CanvasLayerHandlerContribution);\n // }\n}\n\nexport default bindLayerHandlerModules;\n"]}
@@ -1,18 +1,8 @@
1
- var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
- var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
- if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
- return c > 3 && r && Object.defineProperty(target, key, r), r;
5
- }, __metadata = this && this.__metadata || function(k, v) {
6
- if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
- };
8
-
9
- import { injectable } from "../../../common/inversify-lite";
10
-
11
1
  import { wrapCanvas } from "../../../canvas/util";
12
2
 
13
3
  import { application } from "../../../application";
14
4
 
15
- let OffscreenLayerHandlerContribution = class {
5
+ export class OffscreenLayerHandlerContribution {
16
6
  constructor() {
17
7
  this.offscreen = !0, this.type = "dynamic", this.global = application.global;
18
8
  }
@@ -64,9 +54,5 @@ let OffscreenLayerHandlerContribution = class {
64
54
  context.nativeContext.restore();
65
55
  }
66
56
  merge(layerHandlers) {}
67
- };
68
-
69
- OffscreenLayerHandlerContribution = __decorate([ injectable(), __metadata("design:paramtypes", []) ], OffscreenLayerHandlerContribution);
70
-
71
- export { OffscreenLayerHandlerContribution };
57
+ }
72
58
  //# sourceMappingURL=offscreen2d-contribution.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/layerHandler/offscreen2d-contribution.ts"],"names":[],"mappings":"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","file":"offscreen2d-contribution.js","sourcesContent":["import { inject, injectable } from '../../../common/inversify-lite';\nimport { wrapCanvas } from '../../../canvas/util';\nimport type {\n IGlobal,\n ICanvas,\n IContext2d,\n IDrawToParams,\n IGroup,\n ILayer,\n ILayerHandlerContribution,\n ILayerHandlerInitParams,\n IWindow,\n ILayerHandlerDrawParams,\n LayerMode\n} from '../../../interface';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { application } from '../../../application';\n\n@injectable()\nexport class OffscreenLayerHandlerContribution implements ILayerHandlerContribution {\n declare layer: ILayer;\n declare canvas: ICanvas;\n declare context: IContext2d;\n declare offscreen: boolean;\n declare type: LayerMode;\n // 所绑定的副layer handler\n declare secondaryHandlers: ILayerHandlerContribution[];\n declare global: IGlobal;\n\n constructor() {\n this.offscreen = true;\n this.type = 'dynamic';\n this.global = application.global;\n }\n\n setDpr(dpr: number) {\n this.canvas.dpr = dpr;\n return;\n }\n\n init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void {\n this.layer = layer;\n const nativeCanvas = this.global.createOffscreenCanvas({\n width: params.width,\n height: params.height,\n dpr: window.dpr\n });\n const canvas = wrapCanvas({\n nativeCanvas,\n width: params.width,\n height: params.height,\n dpr: window.dpr,\n canvasControled: true\n });\n\n this.canvas = canvas;\n this.context = canvas.getContext();\n }\n\n resize(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n resizeView(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams): void {\n params.renderService.render(group, {\n context: this.context,\n viewBox: params.stage.window.getViewBox(),\n transMatrix: params.stage.window.getViewBoxTransform(),\n ...params,\n clear: params.background ?? '#ffffff'\n });\n }\n\n prepare(dirtyBounds: IBoundsLike, params: ILayerHandlerDrawParams) {\n return;\n }\n\n release() {\n this.canvas.release();\n }\n\n getContext(): IContext2d {\n return this.context;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n const targetDpr = target.dpr;\n\n const { viewBox } = params;\n const x = viewBox.x1;\n const y = viewBox.y1;\n const width = viewBox.width();\n const height = viewBox.height();\n // 这个context可能是外部的,不要使用内置的状态,直接用原生的context\n context.nativeContext.save();\n context.nativeContext.setTransform(targetDpr, 0, 0, targetDpr, 0, 0);\n if (params.clear) {\n context.clearRect(x, y, width, height);\n }\n context.drawImage(this.canvas.nativeCanvas, 0, 0, this.canvas.width, this.canvas.height, x, y, width, height);\n context.nativeContext.restore();\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/layerHandler/offscreen2d-contribution.ts"],"names":[],"mappings":"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","file":"offscreen2d-contribution.js","sourcesContent":["import { wrapCanvas } from '../../../canvas/util';\nimport type {\n IGlobal,\n ICanvas,\n IContext2d,\n IDrawToParams,\n IGroup,\n ILayer,\n ILayerHandlerContribution,\n ILayerHandlerInitParams,\n IWindow,\n ILayerHandlerDrawParams,\n LayerMode\n} from '../../../interface';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { application } from '../../../application';\n\nexport class OffscreenLayerHandlerContribution implements ILayerHandlerContribution {\n declare layer: ILayer;\n declare canvas: ICanvas;\n declare context: IContext2d;\n declare offscreen: boolean;\n declare type: LayerMode;\n // 所绑定的副layer handler\n declare secondaryHandlers: ILayerHandlerContribution[];\n declare global: IGlobal;\n\n constructor() {\n this.offscreen = true;\n this.type = 'dynamic';\n this.global = application.global;\n }\n\n setDpr(dpr: number) {\n this.canvas.dpr = dpr;\n return;\n }\n\n init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void {\n this.layer = layer;\n const nativeCanvas = this.global.createOffscreenCanvas({\n width: params.width,\n height: params.height,\n dpr: window.dpr\n });\n const canvas = wrapCanvas({\n nativeCanvas,\n width: params.width,\n height: params.height,\n dpr: window.dpr,\n canvasControled: true\n });\n\n this.canvas = canvas;\n this.context = canvas.getContext();\n }\n\n resize(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n resizeView(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams): void {\n params.renderService.render(group, {\n context: this.context,\n viewBox: params.stage.window.getViewBox(),\n transMatrix: params.stage.window.getViewBoxTransform(),\n ...params,\n clear: params.background ?? '#ffffff'\n });\n }\n\n prepare(dirtyBounds: IBoundsLike, params: ILayerHandlerDrawParams) {\n return;\n }\n\n release() {\n this.canvas.release();\n }\n\n getContext(): IContext2d {\n return this.context;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n const targetDpr = target.dpr;\n\n const { viewBox } = params;\n const x = viewBox.x1;\n const y = viewBox.y1;\n const width = viewBox.width();\n const height = viewBox.height();\n // 这个context可能是外部的,不要使用内置的状态,直接用原生的context\n context.nativeContext.save();\n context.nativeContext.setTransform(targetDpr, 0, 0, targetDpr, 0, 0);\n if (params.clear) {\n context.clearRect(x, y, width, height);\n }\n context.drawImage(this.canvas.nativeCanvas, 0, 0, this.canvas.width, this.canvas.height, x, y, width, height);\n context.nativeContext.restore();\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n return;\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- import type { Container } from '../../common/inversify-lite';
2
- export default function load(container: Container): void;
1
+ import type { ILegacyContributionBindingContext } from '../../legacy/module-types';
2
+ export default function load(container: ILegacyContributionBindingContext): void;
@@ -5,6 +5,12 @@ import textMeasureModules from "./textMeasure/modules";
5
5
  import layerHandlerModules from "./layerHandler/modules";
6
6
 
7
7
  export default function load(container) {
8
- container.load(envModules), container.load(textMeasureModules), container.load(layerHandlerModules);
8
+ envModules({
9
+ bind: container.bind
10
+ }), textMeasureModules({
11
+ bind: container.bind
12
+ }), layerHandlerModules({
13
+ bind: container.bind
14
+ });
9
15
  }
10
16
  //# sourceMappingURL=modules.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/modules.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,SAAoB;IAC/C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACtC,CAAC","file":"modules.js","sourcesContent":["import type { Container } from '../../common/inversify-lite';\nimport envModules from './env/modules';\nimport textMeasureModules from './textMeasure/modules';\nimport layerHandlerModules from './layerHandler/modules';\n\nexport default function load(container: Container) {\n container.load(envModules);\n container.load(textMeasureModules);\n container.load(layerHandlerModules);\n}\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/modules.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AAGzD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,SAA4C;IACvE,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,kBAAkB,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,mBAAmB,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC","file":"modules.js","sourcesContent":["import envModules from './env/modules';\nimport textMeasureModules from './textMeasure/modules';\nimport layerHandlerModules from './layerHandler/modules';\nimport type { ILegacyContributionBindingContext } from '../../legacy/module-types';\n\nexport default function load(container: ILegacyContributionBindingContext) {\n envModules({ bind: container.bind });\n textMeasureModules({ bind: container.bind });\n layerHandlerModules({ bind: container.bind });\n}\n"]}
@@ -1,11 +1,3 @@
1
- var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
- var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
- if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
- return c > 3 && r && Object.defineProperty(target, key, r), r;
5
- };
6
-
7
- import { injectable } from "../../../common/inversify-lite";
8
-
9
1
  import { MeasureModeEnum } from "../../../interface";
10
2
 
11
3
  import { DefaultTextAttribute, DefaultTextStyle } from "../../../graphic/config";
@@ -14,7 +6,7 @@ import { testLetter } from "../../../graphic/richtext/utils";
14
6
 
15
7
  import { Logger } from "@visactor/vutils";
16
8
 
17
- let ATextMeasure = class {
9
+ export class ATextMeasure {
18
10
  constructor() {
19
11
  this.id = "ATextMeasure";
20
12
  }
@@ -382,9 +374,5 @@ let ATextMeasure = class {
382
374
  } else forceSuffix && data.str === text && (data.result = text + suffix);
383
375
  return data.str = data.result, data.width += suffixWidth, data;
384
376
  }
385
- };
386
-
387
- ATextMeasure = __decorate([ injectable() ], ATextMeasure);
388
-
389
- export { ATextMeasure };
377
+ }
390
378
  //# sourceMappingURL=AtextMeasure.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/textMeasure/AtextMeasure.ts"],"names":[],"mappings":"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","file":"AtextMeasure.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport type { IGraphicUtil } from '../../../interface/core';\nimport type { ICanvas, IContext2d, EnvType } from '../../../interface';\nimport { MeasureModeEnum } from '../../../interface';\nimport type { TextOptionsType, ITextMeasure } from '../../../interface/text';\nimport { DefaultTextAttribute, DefaultTextStyle } from '../../../graphic/config';\nimport { testLetter } from '../../../graphic/richtext/utils';\nimport { Logger } from '@visactor/vutils';\n\n@injectable()\nexport class ATextMeasure implements ITextMeasure {\n id: string = 'ATextMeasure';\n release: (...params: any) => void;\n protected canvas?: ICanvas;\n protected context?: IContext2d | null;\n\n configure(service: IGraphicUtil, env: EnvType): void {\n this.canvas = service.canvas;\n this.context = service.context;\n service.bindTextMeasure(this);\n }\n\n protected _measureTextWithoutAlignBaseline(text: string, options: TextOptionsType, compatible?: boolean) {\n this.context.setTextStyleWithoutAlignBaseline(options);\n const metrics = this.context.measureText(text);\n\n return compatible ? this.compatibleMetrics(metrics, options) : metrics;\n }\n\n protected _measureTextWithAlignBaseline(text: string, options: TextOptionsType, compatible?: boolean) {\n this.context.setTextStyle(options);\n const metrics = this.context.measureText(text);\n\n return compatible ? this.compatibleMetrics(metrics, options) : metrics;\n }\n\n protected compatibleMetrics(metrics: TextMetrics | { width: number }, options: TextOptionsType) {\n if (\n (metrics as any).actualBoundingBoxAscent == null ||\n (metrics as any).actualBoundingBoxDescent == null ||\n (metrics as any).fontBoundingBoxAscent == null ||\n (metrics as any).fontBoundingBoxDescent == null\n ) {\n metrics = {\n width: metrics.width\n };\n const { ascent, descent } = this.measureTextBoundADscentEstimate(options);\n (metrics as any).actualBoundingBoxAscent = ascent;\n (metrics as any).actualBoundingBoxDescent = descent;\n (metrics as any).fontBoundingBoxAscent = ascent;\n (metrics as any).fontBoundingBoxDescent = descent;\n }\n if ((metrics as any).actualBoundingBoxLeft == null || (metrics as any).actualBoundingBoxRight == null) {\n metrics = {\n width: metrics.width,\n actualBoundingBoxAscent: (metrics as any).actualBoundingBoxAscent,\n actualBoundingBoxDescent: (metrics as any).actualBoundingBoxDescent,\n fontBoundingBoxAscent: (metrics as any).fontBoundingBoxAscent,\n fontBoundingBoxDescent: (metrics as any).fontBoundingBoxDescent\n };\n const { left, right } = this.measureTextBoundLeftRightEstimate(options);\n (metrics as any).actualBoundingBoxLeft = left;\n (metrics as any).actualBoundingBoxRight = right;\n }\n return metrics;\n }\n\n // 估算文字长度\n protected estimate(\n text: string,\n { fontSize = DefaultTextAttribute.fontSize }: TextOptionsType\n ): { width: number; height: number } {\n // 假设只有英文和中文字符\n let eCharLen = 0; // 英文字符\n let cCharLen = 0; // 中文字符\n // 判断ascii码,如果是\n for (let i = 0; i < text.length; i++) {\n text.charCodeAt(i) < 128 ? eCharLen++ : cCharLen++;\n }\n return {\n width: ~~(0.8 * eCharLen * fontSize + cCharLen * fontSize),\n height: fontSize\n };\n }\n\n /**\n * 获取text宽度,measureText.width\n * @param text\n * @param options\n */\n measureTextWidth(text: string, options: TextOptionsType, textMeasure?: TextMetrics | { width: number }): number {\n if (!this.context) {\n return this.estimate(text, options).width;\n }\n textMeasure = textMeasure ?? this._measureTextWithoutAlignBaseline(text, options);\n return textMeasure.width;\n }\n /**\n * 获取text宽度,measureText.width\n * @param text\n * @param options\n */\n measureTextBoundsWidth(\n text: string,\n options: TextOptionsType,\n textMeasure?: TextMetrics | { width: number }\n ): number {\n if (!this.context) {\n return this.estimate(text, options).width;\n }\n textMeasure = textMeasure ?? this._measureTextWithoutAlignBaseline(text, options);\n return textMeasure.width;\n }\n\n measureTextBoundsLeftRight(text: string, options: TextOptionsType, textMeasure?: TextMetrics | { width: number }) {\n if (!this.context) {\n return this.measureTextBoundLeftRightEstimate(options);\n }\n textMeasure = textMeasure ?? this._measureTextWithAlignBaseline(text, options, true);\n return {\n left: (textMeasure as any).actualBoundingBoxLeft,\n right: (textMeasure as any).actualBoundingBoxRight\n };\n }\n\n /**\n * 获取text像素高度,基于actualBoundingBoxAscent和actualBoundingBoxDescent\n * @param text\n * @param options\n */\n measureTextPixelHeight(\n text: string,\n options: TextOptionsType,\n textMeasure?: TextMetrics | { width: number }\n ): number {\n if (!this.context) {\n return options.fontSize ?? DefaultTextStyle.fontSize;\n }\n textMeasure = textMeasure ?? this._measureTextWithoutAlignBaseline(text, options, true);\n return Math.abs((textMeasure as any).actualBoundingBoxAscent - (textMeasure as any).actualBoundingBoxDescent);\n }\n\n measureTextPixelADscent(text: string, options: TextOptionsType, textMeasure?: TextMetrics | { width: number }) {\n if (!this.context) {\n return this.measureTextBoundADscentEstimate(options);\n }\n textMeasure = textMeasure ?? this._measureTextWithAlignBaseline(text, options, true);\n return {\n ascent: (textMeasure as any).actualBoundingBoxAscent,\n descent: (textMeasure as any).actualBoundingBoxDescent\n };\n }\n\n /**\n * 获取text包围盒的高度,基于fontBoundingBoxAscent和fontBoundingBoxDescent\n * @param text\n * @param options\n */\n measureTextBoundHieght(\n text: string,\n options: TextOptionsType,\n textMeasure?: TextMetrics | { width: number }\n ): number {\n if (!this.context) {\n return options.fontSize ?? DefaultTextStyle.fontSize;\n }\n textMeasure = textMeasure ?? this._measureTextWithoutAlignBaseline(text, options, true);\n return Math.abs((textMeasure as any).fontBoundingBoxAscent - (textMeasure as any).fontBoundingBoxDescent);\n }\n\n measureTextBoundADscent(text: string, options: TextOptionsType, textMeasure?: TextMetrics | { width: number }) {\n if (!this.context) {\n return this.measureTextBoundADscentEstimate(options);\n }\n textMeasure = textMeasure ?? this._measureTextWithAlignBaseline(text, options, true);\n return {\n ascent: (textMeasure as any).fontBoundingBoxAscent,\n descent: (textMeasure as any).fontBoundingBoxDescent\n };\n }\n\n protected measureTextBoundADscentEstimate(options: TextOptionsType) {\n const fontSize = options.fontSize ?? DefaultTextStyle.fontSize;\n return {\n ascent: 0.79 * fontSize,\n descent: 0.21 * fontSize\n };\n // const { textBaseline } = options;\n // if (textBaseline === 'bottom') {\n // return {\n // ascent: fontSize,\n // descent: 0\n // };\n // } else if (textBaseline === 'middle') {\n // return {\n // ascent: fontSize / 2,\n // descent: fontSize / 2\n // };\n // } else if (textBaseline === 'alphabetic') {\n // return {\n // ascent: 0.79 * fontSize,\n // descent: 0.21 * fontSize\n // };\n // }\n\n // return {\n // ascent: 0,\n // descent: fontSize\n // };\n }\n\n protected measureTextBoundLeftRightEstimate(options: TextOptionsType) {\n const fontSize = options.fontSize ?? DefaultTextStyle.fontSize;\n const { textAlign } = options;\n\n if (textAlign === 'center') {\n return {\n left: fontSize / 2,\n right: fontSize / 2\n };\n } else if (textAlign === 'right' || textAlign === 'end') {\n return {\n left: fontSize,\n right: 0\n };\n }\n return {\n left: 0,\n right: fontSize\n };\n }\n\n measureTextPixelADscentAndWidth(\n text: string,\n options: TextOptionsType,\n mode: MeasureModeEnum\n ): { width: number; ascent: number; descent: number } {\n if (!this.context) {\n return {\n ...this.measureTextBoundADscentEstimate(options),\n width: this.estimate(text, options).width\n };\n }\n const out = this._measureTextWithoutAlignBaseline(text, options, true);\n\n if (mode === MeasureModeEnum.actualBounding) {\n return {\n ascent: (out as any).actualBoundingBoxAscent,\n descent: (out as any).actualBoundingBoxDescent,\n width: (out as any).width\n };\n } else if (mode === MeasureModeEnum.estimate) {\n return {\n ...this.measureTextBoundADscentEstimate(options),\n width: (out as any).width\n };\n } else if (mode === MeasureModeEnum.fontBounding) {\n // const { lineHeight = options.fontSize } = options;\n // let ratio = 1;\n // if (lineHeight) {\n // const fontBoundingHeight = (out as any).fontBoundingBoxAscent + (out as any).fontBoundingBoxDescent;\n // ratio = lineHeight / fontBoundingHeight;\n // }\n // 避免二次矫正,应当保证所有字符组合的基线都一样,否则fontBounding就失去意义了\n // 但如果超出边界了,就只能进行二次矫正\n let ascent = (out as any).fontBoundingBoxAscent;\n let descent = (out as any).fontBoundingBoxDescent;\n // 只能一边超出,都超出的话目前无法矫正,因为行高不能超\n if ((out as any).actualBoundingBoxDescent && descent < (out as any).actualBoundingBoxDescent) {\n const delta = (out as any).actualBoundingBoxDescent - descent;\n descent += delta;\n ascent -= delta;\n } else if ((out as any).actualBoundingBoxAscent && ascent < (out as any).actualBoundingBoxAscent) {\n const delta = (out as any).actualBoundingBoxAscent - ascent;\n ascent += delta;\n descent -= delta;\n }\n return {\n ascent,\n descent,\n width: (out as any).width\n };\n }\n return {\n ascent: (out as any).actualBoundingBoxAscent,\n descent: (out as any).actualBoundingBoxDescent,\n width: (out as any).width\n };\n }\n\n /**\n * 获取text测量对象\n * @param text\n * @param options\n */\n measureText(text: string, options: TextOptionsType): TextMetrics | { width: number } {\n if (!this.context) {\n return this.estimate(text, options);\n }\n this.context.setTextStyleWithoutAlignBaseline(options);\n return this.context.measureText(text);\n }\n\n clipTextVertical(\n verticalList: { text: string; width?: number; direction: number }[],\n options: TextOptionsType,\n width: number,\n wordBreak: boolean\n ): {\n verticalList: { text: string; width?: number; direction: number }[];\n width: number;\n } {\n if (verticalList.length === 0) {\n return { verticalList, width: 0 };\n }\n const { fontSize = 12 } = options;\n // 计算每一个区域的width\n verticalList.forEach(item => {\n item.width = item.direction === 0 ? fontSize : this.measureTextWidth(item.text, options);\n });\n const out: { text: string; width?: number; direction: number }[] = [];\n let length = 0;\n let i = 0;\n for (; i < verticalList.length; i++) {\n if (length + verticalList[i].width < width) {\n length += verticalList[i].width;\n out.push(verticalList[i]);\n } else {\n break;\n }\n }\n if (verticalList[i] && verticalList[i].text.length > 1) {\n const clipedData = this._clipText(\n verticalList[i].text,\n options,\n width - length,\n 0,\n verticalList[i].text.length - 1,\n 'end',\n false\n );\n if (wordBreak && clipedData.str !== verticalList[i].text) {\n let text = '';\n let length = 0;\n for (let j = 0; j < i; j++) {\n const item = verticalList[j];\n text += item.text;\n length += item.text.length;\n }\n text += verticalList[i].text;\n const totalLength = length + clipedData.str.length;\n let index = testLetter(text, totalLength);\n index = index - length;\n if (index !== clipedData.str.length - 1) {\n clipedData.str = clipedData.str.substring(0, index);\n clipedData.width = this.measureTextWidth(clipedData.str, options);\n }\n }\n out.push({ ...verticalList[i], text: clipedData.str, width: clipedData.width });\n length += clipedData.width;\n }\n\n return {\n verticalList: out,\n width: length\n };\n }\n\n /**\n * 将文本裁剪到width宽\n * @param text\n * @param options\n * @param width\n */\n clipText(\n text: string,\n options: TextOptionsType,\n width: number,\n wordBreak: boolean,\n keepAllBreak?: boolean\n ): {\n str: string;\n width: number;\n wordBreaked?: number;\n } {\n if (text.length === 0) {\n return { str: '', width: 0 };\n }\n let length = this.measureTextWidth(text, options);\n if (length <= width) {\n return { str: text, width: length };\n }\n length = this.measureTextWidth(text[0], options);\n if (length > width) {\n return { str: '', width: 0 };\n }\n const data = this._clipText(text, options, width, 0, text.length - 1, 'end', false);\n // 如果需要文字截断\n if (wordBreak && data.str !== text) {\n let index = testLetter(text, data.str.length, keepAllBreak);\n if (index !== data.str.length) {\n if (index > data.str.length) {\n (data as any).wordBreaked = index;\n index = data.str.length;\n }\n data.str = text.substring(0, index);\n data.width = this.measureTextWidth(data.str, options);\n }\n }\n return data;\n }\n\n // 二分法找到最佳宽\n // TODO: 后续考虑代码合并\n private _clipText(\n text: string,\n options: TextOptionsType,\n width: number,\n leftIdx: number,\n rightIdx: number,\n position: 'start' | 'end' | 'middle',\n suffix: string | false\n ): { str: string; width: number; result?: string } {\n let data: { str: string; width: number; result?: string };\n if (position === 'start') {\n data = this._clipTextStart(text, options, width, leftIdx, rightIdx);\n suffix && (data.result = suffix + data.str);\n } else if (position === 'middle') {\n const d = this._clipTextMiddle(text, options, width, '', '', 0, 0, 1);\n data = { str: 'none', width: d.width, result: d.left + suffix + d.right };\n } else {\n data = this._clipTextEnd(text, options, width, leftIdx, rightIdx);\n suffix && (data.result = data.str + suffix);\n }\n return data;\n }\n\n private _clipTextEnd(\n text: string,\n options: TextOptionsType,\n width: number,\n leftIdx: number,\n rightIdx: number\n ): { str: string; width: number } {\n // 添加退出条件,如果leftIdx和rightIdx相等,那么就返回这个字符串(理论上这时出问题了)\n if (leftIdx === rightIdx) {\n Logger.getInstance().warn(`【_clipTextEnd】不应该走到这里${text}, ${leftIdx}, ${rightIdx}`);\n // console.warn(`【_clipTextEnd】不应该走到这里${text}, ${leftIdx}, ${rightIdx}`);\n const subText = text.substring(0, rightIdx + 1);\n return { str: subText, width: this.measureTextWidth(subText, options) };\n }\n const middleIdx = Math.floor((leftIdx + rightIdx) / 2);\n const subText = text.substring(0, middleIdx + 1);\n const strWidth = this.measureTextWidth(subText, options);\n let length: number;\n if (strWidth > width) {\n // 如果字符串的宽度大于限制宽度\n if (subText.length <= 1) {\n return { str: '', width: 0 };\n } // 如果子字符串长度小于1,而且大于给定宽的话,返回空字符串\n // 先判断是不是左侧的那个字符\n const str = text.substring(0, middleIdx);\n // 如果到左侧的字符小于或等于width,那么说明就是左侧的字符\n length = this.measureTextWidth(str, options);\n if (length <= width) {\n return { str, width: length };\n }\n // 返回leftIdx到middleIdx\n return this._clipTextEnd(text, options, width, leftIdx, middleIdx);\n } else if (strWidth < width) {\n // 如果字符串的宽度小于限制宽度\n if (middleIdx >= text.length - 1) {\n return { str: text, width: this.measureTextWidth(text, options) };\n } // 如果已经到结尾了,返回text\n // 先判断是不是右侧的那个字符\n const str = text.substring(0, middleIdx + 2);\n // 如果到右侧的字符大于或等于width,那么说明就是这个字符串\n length = this.measureTextWidth(str, options);\n if (length >= width) {\n return { str: subText, width: strWidth };\n }\n // 返回middleIdx到rightIdx\n return this._clipTextEnd(text, options, width, middleIdx, rightIdx);\n }\n // 如果相同,那么就找到text\n return { str: subText, width: strWidth };\n }\n\n private _clipTextStart(\n text: string,\n options: TextOptionsType,\n width: number,\n leftIdx: number,\n rightIdx: number\n ): { str: string; width: number } {\n const middleIdx = Math.ceil((leftIdx + rightIdx) / 2);\n const subText = text.substring(middleIdx - 1, text.length);\n const strWidth = this.measureTextWidth(subText, options);\n let length: number;\n if (strWidth > width) {\n // 如果字符串的宽度大于限制宽度\n if (subText.length <= 1) {\n return { str: '', width: 0 };\n } // 如果子字符串长度小于1,而且大于给定宽的话,返回空字符串\n // 先判断是不是左侧的那个字符\n const str = text.substring(middleIdx, text.length);\n // 如果到左侧的字符小于或等于width,那么说明就是左侧的字符\n length = this.measureTextWidth(str, options);\n if (length <= width) {\n return { str, width: length };\n }\n // 返回leftIdx到middleIdx\n return this._clipTextStart(text, options, width, middleIdx, text.length);\n } else if (strWidth < width) {\n // 如果字符串的宽度小于限制宽度\n if (middleIdx <= 0) {\n return { str: text, width: this.measureTextWidth(text, options) };\n } // 如果已经到结尾了,返回text\n // 先判断是不是右侧的那个字符\n const str = text.substring(middleIdx - 2, text.length);\n // 如果到右侧的字符大于或等于width,那么说明就是这个字符串\n length = this.measureTextWidth(str, options);\n if (length >= width) {\n return { str: subText, width: strWidth };\n }\n // 返回middleIdx到rightIdx\n return this._clipTextStart(text, options, width, leftIdx, middleIdx);\n }\n // 如果相同,那么就找到text\n return { str: subText, width: strWidth };\n }\n\n private _clipTextMiddle(\n text: string,\n options: TextOptionsType,\n width: number,\n left: string,\n right: string,\n leftW: number,\n rightW: number,\n buffer: number\n ): { left: string; right: string; width: number } {\n const subLeftText = text.substring(0, buffer);\n const strLeftWidth = this.measureTextWidth(subLeftText, options);\n if (strLeftWidth + rightW > width) {\n return { left, right, width: leftW + rightW };\n }\n const subRightText = text.substring(text.length - buffer, text.length);\n const strRightWidth = this.measureTextWidth(subRightText, options);\n if (strLeftWidth + strRightWidth > width) {\n return { left: subLeftText, right, width: strLeftWidth + rightW };\n }\n return this._clipTextMiddle(\n text,\n options,\n width,\n subLeftText,\n subRightText,\n strLeftWidth,\n strRightWidth,\n buffer + 1\n );\n }\n\n clipTextWithSuffixVertical(\n verticalList: { text: string; width?: number; direction: number }[],\n options: TextOptionsType,\n width: number,\n suffix: string,\n wordBreak: boolean,\n suffixPosition: 'start' | 'end' | 'middle'\n ): {\n verticalList: { text: string; width?: number; direction: number }[];\n width: number;\n } {\n if (suffix === '') {\n return this.clipTextVertical(verticalList, options, width, wordBreak);\n }\n if (verticalList.length === 0) {\n return { verticalList, width: 0 };\n }\n\n const output = this.clipTextVertical(verticalList, options, width, wordBreak);\n if (\n output.verticalList.length === verticalList.length &&\n output.verticalList[output.verticalList.length - 1].width === verticalList[verticalList.length - 1].width\n ) {\n return output;\n }\n\n const suffixWidth = this.measureTextWidth(suffix, options);\n if (suffixWidth > width) {\n return output;\n }\n\n width -= suffixWidth;\n\n let out;\n if (suffixPosition === 'start') {\n const nextVerticalList = this.revertVerticalList(verticalList);\n out = this.clipTextVertical(nextVerticalList, options, width, wordBreak);\n const v = this.revertVerticalList(out.verticalList);\n v.unshift({\n text: suffix,\n direction: 1,\n width: suffixWidth\n });\n out.verticalList = v;\n } else if (suffixPosition === 'middle') {\n const leftOut = this.clipTextVertical(verticalList, options, width / 2, wordBreak);\n const nextVerticalList = this.revertVerticalList(verticalList);\n const rightOut = this.clipTextVertical(nextVerticalList, options, width / 2, wordBreak);\n // 添加suffix\n leftOut.verticalList.push({\n text: suffix,\n direction: 1,\n width: suffixWidth\n });\n this.revertVerticalList(rightOut.verticalList).forEach(v => leftOut.verticalList.push(v));\n out = {\n verticalList: leftOut.verticalList,\n width: leftOut.width + rightOut.width\n };\n } else {\n out = this.clipTextVertical(verticalList, options, width, wordBreak);\n out.verticalList.push({\n text: suffix,\n direction: 1,\n width: suffixWidth\n });\n }\n out.width += suffixWidth;\n return out;\n }\n\n revertVerticalList(\n verticalList: {\n text: string;\n width?: number;\n direction: number;\n }[]\n ) {\n return verticalList.reverse().map(l => {\n const t = l.text.split('').reverse().join('');\n return {\n ...l,\n text: t\n };\n });\n }\n\n clipTextWithSuffix(\n text: string,\n options: TextOptionsType,\n width: number,\n suffix: string,\n wordBreak: boolean,\n position: 'start' | 'end' | 'middle',\n forceSuffix: boolean = false\n ): {\n str: string;\n width: number;\n } {\n if (suffix === '') {\n return this.clipText(text, options, width, wordBreak);\n }\n if (text.length === 0) {\n return { str: '', width: 0 };\n }\n const length = this.measureTextWidth(text, options);\n if (!forceSuffix && length <= width) {\n return { str: text, width: length };\n }\n const suffixWidth = this.measureTextWidth(suffix, options);\n if (suffixWidth > width) {\n return { str: '', width: 0 };\n }\n if (forceSuffix && length + suffixWidth <= width) {\n return { str: text + suffix, width: length + suffixWidth };\n }\n width -= suffixWidth;\n const data = this._clipText(text, options, width, 0, text.length - 1, position, suffix);\n\n // 如果需要文字截断\n if (wordBreak && data.str !== text) {\n const index = testLetter(text, data.str.length);\n if (index !== data.str.length) {\n data.result = text.substring(0, index);\n data.width = this.measureTextWidth(data.str, options);\n }\n } else if (forceSuffix && data.str === text) {\n data.result = text + suffix;\n }\n data.str = data.result!;\n data.width += suffixWidth;\n return data;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/textMeasure/AtextMeasure.ts"],"names":[],"mappings":"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","file":"AtextMeasure.js","sourcesContent":["import type { IGraphicUtil } from '../../../interface/core';\nimport type { ICanvas, IContext2d, EnvType } from '../../../interface';\nimport { MeasureModeEnum } from '../../../interface';\nimport type { TextOptionsType, ITextMeasure } from '../../../interface/text';\nimport { DefaultTextAttribute, DefaultTextStyle } from '../../../graphic/config';\nimport { testLetter } from '../../../graphic/richtext/utils';\nimport { Logger } from '@visactor/vutils';\n\nexport class ATextMeasure implements ITextMeasure {\n id: string = 'ATextMeasure';\n release: (...params: any) => void;\n protected canvas?: ICanvas;\n protected context?: IContext2d | null;\n\n configure(service: IGraphicUtil, env: EnvType): void {\n this.canvas = service.canvas;\n this.context = service.context;\n service.bindTextMeasure(this);\n }\n\n protected _measureTextWithoutAlignBaseline(text: string, options: TextOptionsType, compatible?: boolean) {\n this.context.setTextStyleWithoutAlignBaseline(options);\n const metrics = this.context.measureText(text);\n\n return compatible ? this.compatibleMetrics(metrics, options) : metrics;\n }\n\n protected _measureTextWithAlignBaseline(text: string, options: TextOptionsType, compatible?: boolean) {\n this.context.setTextStyle(options);\n const metrics = this.context.measureText(text);\n\n return compatible ? this.compatibleMetrics(metrics, options) : metrics;\n }\n\n protected compatibleMetrics(metrics: TextMetrics | { width: number }, options: TextOptionsType) {\n if (\n (metrics as any).actualBoundingBoxAscent == null ||\n (metrics as any).actualBoundingBoxDescent == null ||\n (metrics as any).fontBoundingBoxAscent == null ||\n (metrics as any).fontBoundingBoxDescent == null\n ) {\n metrics = {\n width: metrics.width\n };\n const { ascent, descent } = this.measureTextBoundADscentEstimate(options);\n (metrics as any).actualBoundingBoxAscent = ascent;\n (metrics as any).actualBoundingBoxDescent = descent;\n (metrics as any).fontBoundingBoxAscent = ascent;\n (metrics as any).fontBoundingBoxDescent = descent;\n }\n if ((metrics as any).actualBoundingBoxLeft == null || (metrics as any).actualBoundingBoxRight == null) {\n metrics = {\n width: metrics.width,\n actualBoundingBoxAscent: (metrics as any).actualBoundingBoxAscent,\n actualBoundingBoxDescent: (metrics as any).actualBoundingBoxDescent,\n fontBoundingBoxAscent: (metrics as any).fontBoundingBoxAscent,\n fontBoundingBoxDescent: (metrics as any).fontBoundingBoxDescent\n };\n const { left, right } = this.measureTextBoundLeftRightEstimate(options);\n (metrics as any).actualBoundingBoxLeft = left;\n (metrics as any).actualBoundingBoxRight = right;\n }\n return metrics;\n }\n\n // 估算文字长度\n protected estimate(\n text: string,\n { fontSize = DefaultTextAttribute.fontSize }: TextOptionsType\n ): { width: number; height: number } {\n // 假设只有英文和中文字符\n let eCharLen = 0; // 英文字符\n let cCharLen = 0; // 中文字符\n // 判断ascii码,如果是\n for (let i = 0; i < text.length; i++) {\n text.charCodeAt(i) < 128 ? eCharLen++ : cCharLen++;\n }\n return {\n width: ~~(0.8 * eCharLen * fontSize + cCharLen * fontSize),\n height: fontSize\n };\n }\n\n /**\n * 获取text宽度,measureText.width\n * @param text\n * @param options\n */\n measureTextWidth(text: string, options: TextOptionsType, textMeasure?: TextMetrics | { width: number }): number {\n if (!this.context) {\n return this.estimate(text, options).width;\n }\n textMeasure = textMeasure ?? this._measureTextWithoutAlignBaseline(text, options);\n return textMeasure.width;\n }\n /**\n * 获取text宽度,measureText.width\n * @param text\n * @param options\n */\n measureTextBoundsWidth(\n text: string,\n options: TextOptionsType,\n textMeasure?: TextMetrics | { width: number }\n ): number {\n if (!this.context) {\n return this.estimate(text, options).width;\n }\n textMeasure = textMeasure ?? this._measureTextWithoutAlignBaseline(text, options);\n return textMeasure.width;\n }\n\n measureTextBoundsLeftRight(text: string, options: TextOptionsType, textMeasure?: TextMetrics | { width: number }) {\n if (!this.context) {\n return this.measureTextBoundLeftRightEstimate(options);\n }\n textMeasure = textMeasure ?? this._measureTextWithAlignBaseline(text, options, true);\n return {\n left: (textMeasure as any).actualBoundingBoxLeft,\n right: (textMeasure as any).actualBoundingBoxRight\n };\n }\n\n /**\n * 获取text像素高度,基于actualBoundingBoxAscent和actualBoundingBoxDescent\n * @param text\n * @param options\n */\n measureTextPixelHeight(\n text: string,\n options: TextOptionsType,\n textMeasure?: TextMetrics | { width: number }\n ): number {\n if (!this.context) {\n return options.fontSize ?? DefaultTextStyle.fontSize;\n }\n textMeasure = textMeasure ?? this._measureTextWithoutAlignBaseline(text, options, true);\n return Math.abs((textMeasure as any).actualBoundingBoxAscent - (textMeasure as any).actualBoundingBoxDescent);\n }\n\n measureTextPixelADscent(text: string, options: TextOptionsType, textMeasure?: TextMetrics | { width: number }) {\n if (!this.context) {\n return this.measureTextBoundADscentEstimate(options);\n }\n textMeasure = textMeasure ?? this._measureTextWithAlignBaseline(text, options, true);\n return {\n ascent: (textMeasure as any).actualBoundingBoxAscent,\n descent: (textMeasure as any).actualBoundingBoxDescent\n };\n }\n\n /**\n * 获取text包围盒的高度,基于fontBoundingBoxAscent和fontBoundingBoxDescent\n * @param text\n * @param options\n */\n measureTextBoundHieght(\n text: string,\n options: TextOptionsType,\n textMeasure?: TextMetrics | { width: number }\n ): number {\n if (!this.context) {\n return options.fontSize ?? DefaultTextStyle.fontSize;\n }\n textMeasure = textMeasure ?? this._measureTextWithoutAlignBaseline(text, options, true);\n return Math.abs((textMeasure as any).fontBoundingBoxAscent - (textMeasure as any).fontBoundingBoxDescent);\n }\n\n measureTextBoundADscent(text: string, options: TextOptionsType, textMeasure?: TextMetrics | { width: number }) {\n if (!this.context) {\n return this.measureTextBoundADscentEstimate(options);\n }\n textMeasure = textMeasure ?? this._measureTextWithAlignBaseline(text, options, true);\n return {\n ascent: (textMeasure as any).fontBoundingBoxAscent,\n descent: (textMeasure as any).fontBoundingBoxDescent\n };\n }\n\n protected measureTextBoundADscentEstimate(options: TextOptionsType) {\n const fontSize = options.fontSize ?? DefaultTextStyle.fontSize;\n return {\n ascent: 0.79 * fontSize,\n descent: 0.21 * fontSize\n };\n // const { textBaseline } = options;\n // if (textBaseline === 'bottom') {\n // return {\n // ascent: fontSize,\n // descent: 0\n // };\n // } else if (textBaseline === 'middle') {\n // return {\n // ascent: fontSize / 2,\n // descent: fontSize / 2\n // };\n // } else if (textBaseline === 'alphabetic') {\n // return {\n // ascent: 0.79 * fontSize,\n // descent: 0.21 * fontSize\n // };\n // }\n\n // return {\n // ascent: 0,\n // descent: fontSize\n // };\n }\n\n protected measureTextBoundLeftRightEstimate(options: TextOptionsType) {\n const fontSize = options.fontSize ?? DefaultTextStyle.fontSize;\n const { textAlign } = options;\n\n if (textAlign === 'center') {\n return {\n left: fontSize / 2,\n right: fontSize / 2\n };\n } else if (textAlign === 'right' || textAlign === 'end') {\n return {\n left: fontSize,\n right: 0\n };\n }\n return {\n left: 0,\n right: fontSize\n };\n }\n\n measureTextPixelADscentAndWidth(\n text: string,\n options: TextOptionsType,\n mode: MeasureModeEnum\n ): { width: number; ascent: number; descent: number } {\n if (!this.context) {\n return {\n ...this.measureTextBoundADscentEstimate(options),\n width: this.estimate(text, options).width\n };\n }\n const out = this._measureTextWithoutAlignBaseline(text, options, true);\n\n if (mode === MeasureModeEnum.actualBounding) {\n return {\n ascent: (out as any).actualBoundingBoxAscent,\n descent: (out as any).actualBoundingBoxDescent,\n width: (out as any).width\n };\n } else if (mode === MeasureModeEnum.estimate) {\n return {\n ...this.measureTextBoundADscentEstimate(options),\n width: (out as any).width\n };\n } else if (mode === MeasureModeEnum.fontBounding) {\n // const { lineHeight = options.fontSize } = options;\n // let ratio = 1;\n // if (lineHeight) {\n // const fontBoundingHeight = (out as any).fontBoundingBoxAscent + (out as any).fontBoundingBoxDescent;\n // ratio = lineHeight / fontBoundingHeight;\n // }\n // 避免二次矫正,应当保证所有字符组合的基线都一样,否则fontBounding就失去意义了\n // 但如果超出边界了,就只能进行二次矫正\n let ascent = (out as any).fontBoundingBoxAscent;\n let descent = (out as any).fontBoundingBoxDescent;\n // 只能一边超出,都超出的话目前无法矫正,因为行高不能超\n if ((out as any).actualBoundingBoxDescent && descent < (out as any).actualBoundingBoxDescent) {\n const delta = (out as any).actualBoundingBoxDescent - descent;\n descent += delta;\n ascent -= delta;\n } else if ((out as any).actualBoundingBoxAscent && ascent < (out as any).actualBoundingBoxAscent) {\n const delta = (out as any).actualBoundingBoxAscent - ascent;\n ascent += delta;\n descent -= delta;\n }\n return {\n ascent,\n descent,\n width: (out as any).width\n };\n }\n return {\n ascent: (out as any).actualBoundingBoxAscent,\n descent: (out as any).actualBoundingBoxDescent,\n width: (out as any).width\n };\n }\n\n /**\n * 获取text测量对象\n * @param text\n * @param options\n */\n measureText(text: string, options: TextOptionsType): TextMetrics | { width: number } {\n if (!this.context) {\n return this.estimate(text, options);\n }\n this.context.setTextStyleWithoutAlignBaseline(options);\n return this.context.measureText(text);\n }\n\n clipTextVertical(\n verticalList: { text: string; width?: number; direction: number }[],\n options: TextOptionsType,\n width: number,\n wordBreak: boolean\n ): {\n verticalList: { text: string; width?: number; direction: number }[];\n width: number;\n } {\n if (verticalList.length === 0) {\n return { verticalList, width: 0 };\n }\n const { fontSize = 12 } = options;\n // 计算每一个区域的width\n verticalList.forEach(item => {\n item.width = item.direction === 0 ? fontSize : this.measureTextWidth(item.text, options);\n });\n const out: { text: string; width?: number; direction: number }[] = [];\n let length = 0;\n let i = 0;\n for (; i < verticalList.length; i++) {\n if (length + verticalList[i].width < width) {\n length += verticalList[i].width;\n out.push(verticalList[i]);\n } else {\n break;\n }\n }\n if (verticalList[i] && verticalList[i].text.length > 1) {\n const clipedData = this._clipText(\n verticalList[i].text,\n options,\n width - length,\n 0,\n verticalList[i].text.length - 1,\n 'end',\n false\n );\n if (wordBreak && clipedData.str !== verticalList[i].text) {\n let text = '';\n let length = 0;\n for (let j = 0; j < i; j++) {\n const item = verticalList[j];\n text += item.text;\n length += item.text.length;\n }\n text += verticalList[i].text;\n const totalLength = length + clipedData.str.length;\n let index = testLetter(text, totalLength);\n index = index - length;\n if (index !== clipedData.str.length - 1) {\n clipedData.str = clipedData.str.substring(0, index);\n clipedData.width = this.measureTextWidth(clipedData.str, options);\n }\n }\n out.push({ ...verticalList[i], text: clipedData.str, width: clipedData.width });\n length += clipedData.width;\n }\n\n return {\n verticalList: out,\n width: length\n };\n }\n\n /**\n * 将文本裁剪到width宽\n * @param text\n * @param options\n * @param width\n */\n clipText(\n text: string,\n options: TextOptionsType,\n width: number,\n wordBreak: boolean,\n keepAllBreak?: boolean\n ): {\n str: string;\n width: number;\n wordBreaked?: number;\n } {\n if (text.length === 0) {\n return { str: '', width: 0 };\n }\n let length = this.measureTextWidth(text, options);\n if (length <= width) {\n return { str: text, width: length };\n }\n length = this.measureTextWidth(text[0], options);\n if (length > width) {\n return { str: '', width: 0 };\n }\n const data = this._clipText(text, options, width, 0, text.length - 1, 'end', false);\n // 如果需要文字截断\n if (wordBreak && data.str !== text) {\n let index = testLetter(text, data.str.length, keepAllBreak);\n if (index !== data.str.length) {\n if (index > data.str.length) {\n (data as any).wordBreaked = index;\n index = data.str.length;\n }\n data.str = text.substring(0, index);\n data.width = this.measureTextWidth(data.str, options);\n }\n }\n return data;\n }\n\n // 二分法找到最佳宽\n // TODO: 后续考虑代码合并\n private _clipText(\n text: string,\n options: TextOptionsType,\n width: number,\n leftIdx: number,\n rightIdx: number,\n position: 'start' | 'end' | 'middle',\n suffix: string | false\n ): { str: string; width: number; result?: string } {\n let data: { str: string; width: number; result?: string };\n if (position === 'start') {\n data = this._clipTextStart(text, options, width, leftIdx, rightIdx);\n suffix && (data.result = suffix + data.str);\n } else if (position === 'middle') {\n const d = this._clipTextMiddle(text, options, width, '', '', 0, 0, 1);\n data = { str: 'none', width: d.width, result: d.left + suffix + d.right };\n } else {\n data = this._clipTextEnd(text, options, width, leftIdx, rightIdx);\n suffix && (data.result = data.str + suffix);\n }\n return data;\n }\n\n private _clipTextEnd(\n text: string,\n options: TextOptionsType,\n width: number,\n leftIdx: number,\n rightIdx: number\n ): { str: string; width: number } {\n // 添加退出条件,如果leftIdx和rightIdx相等,那么就返回这个字符串(理论上这时出问题了)\n if (leftIdx === rightIdx) {\n Logger.getInstance().warn(`【_clipTextEnd】不应该走到这里${text}, ${leftIdx}, ${rightIdx}`);\n // console.warn(`【_clipTextEnd】不应该走到这里${text}, ${leftIdx}, ${rightIdx}`);\n const subText = text.substring(0, rightIdx + 1);\n return { str: subText, width: this.measureTextWidth(subText, options) };\n }\n const middleIdx = Math.floor((leftIdx + rightIdx) / 2);\n const subText = text.substring(0, middleIdx + 1);\n const strWidth = this.measureTextWidth(subText, options);\n let length: number;\n if (strWidth > width) {\n // 如果字符串的宽度大于限制宽度\n if (subText.length <= 1) {\n return { str: '', width: 0 };\n } // 如果子字符串长度小于1,而且大于给定宽的话,返回空字符串\n // 先判断是不是左侧的那个字符\n const str = text.substring(0, middleIdx);\n // 如果到左侧的字符小于或等于width,那么说明就是左侧的字符\n length = this.measureTextWidth(str, options);\n if (length <= width) {\n return { str, width: length };\n }\n // 返回leftIdx到middleIdx\n return this._clipTextEnd(text, options, width, leftIdx, middleIdx);\n } else if (strWidth < width) {\n // 如果字符串的宽度小于限制宽度\n if (middleIdx >= text.length - 1) {\n return { str: text, width: this.measureTextWidth(text, options) };\n } // 如果已经到结尾了,返回text\n // 先判断是不是右侧的那个字符\n const str = text.substring(0, middleIdx + 2);\n // 如果到右侧的字符大于或等于width,那么说明就是这个字符串\n length = this.measureTextWidth(str, options);\n if (length >= width) {\n return { str: subText, width: strWidth };\n }\n // 返回middleIdx到rightIdx\n return this._clipTextEnd(text, options, width, middleIdx, rightIdx);\n }\n // 如果相同,那么就找到text\n return { str: subText, width: strWidth };\n }\n\n private _clipTextStart(\n text: string,\n options: TextOptionsType,\n width: number,\n leftIdx: number,\n rightIdx: number\n ): { str: string; width: number } {\n const middleIdx = Math.ceil((leftIdx + rightIdx) / 2);\n const subText = text.substring(middleIdx - 1, text.length);\n const strWidth = this.measureTextWidth(subText, options);\n let length: number;\n if (strWidth > width) {\n // 如果字符串的宽度大于限制宽度\n if (subText.length <= 1) {\n return { str: '', width: 0 };\n } // 如果子字符串长度小于1,而且大于给定宽的话,返回空字符串\n // 先判断是不是左侧的那个字符\n const str = text.substring(middleIdx, text.length);\n // 如果到左侧的字符小于或等于width,那么说明就是左侧的字符\n length = this.measureTextWidth(str, options);\n if (length <= width) {\n return { str, width: length };\n }\n // 返回leftIdx到middleIdx\n return this._clipTextStart(text, options, width, middleIdx, text.length);\n } else if (strWidth < width) {\n // 如果字符串的宽度小于限制宽度\n if (middleIdx <= 0) {\n return { str: text, width: this.measureTextWidth(text, options) };\n } // 如果已经到结尾了,返回text\n // 先判断是不是右侧的那个字符\n const str = text.substring(middleIdx - 2, text.length);\n // 如果到右侧的字符大于或等于width,那么说明就是这个字符串\n length = this.measureTextWidth(str, options);\n if (length >= width) {\n return { str: subText, width: strWidth };\n }\n // 返回middleIdx到rightIdx\n return this._clipTextStart(text, options, width, leftIdx, middleIdx);\n }\n // 如果相同,那么就找到text\n return { str: subText, width: strWidth };\n }\n\n private _clipTextMiddle(\n text: string,\n options: TextOptionsType,\n width: number,\n left: string,\n right: string,\n leftW: number,\n rightW: number,\n buffer: number\n ): { left: string; right: string; width: number } {\n const subLeftText = text.substring(0, buffer);\n const strLeftWidth = this.measureTextWidth(subLeftText, options);\n if (strLeftWidth + rightW > width) {\n return { left, right, width: leftW + rightW };\n }\n const subRightText = text.substring(text.length - buffer, text.length);\n const strRightWidth = this.measureTextWidth(subRightText, options);\n if (strLeftWidth + strRightWidth > width) {\n return { left: subLeftText, right, width: strLeftWidth + rightW };\n }\n return this._clipTextMiddle(\n text,\n options,\n width,\n subLeftText,\n subRightText,\n strLeftWidth,\n strRightWidth,\n buffer + 1\n );\n }\n\n clipTextWithSuffixVertical(\n verticalList: { text: string; width?: number; direction: number }[],\n options: TextOptionsType,\n width: number,\n suffix: string,\n wordBreak: boolean,\n suffixPosition: 'start' | 'end' | 'middle'\n ): {\n verticalList: { text: string; width?: number; direction: number }[];\n width: number;\n } {\n if (suffix === '') {\n return this.clipTextVertical(verticalList, options, width, wordBreak);\n }\n if (verticalList.length === 0) {\n return { verticalList, width: 0 };\n }\n\n const output = this.clipTextVertical(verticalList, options, width, wordBreak);\n if (\n output.verticalList.length === verticalList.length &&\n output.verticalList[output.verticalList.length - 1].width === verticalList[verticalList.length - 1].width\n ) {\n return output;\n }\n\n const suffixWidth = this.measureTextWidth(suffix, options);\n if (suffixWidth > width) {\n return output;\n }\n\n width -= suffixWidth;\n\n let out;\n if (suffixPosition === 'start') {\n const nextVerticalList = this.revertVerticalList(verticalList);\n out = this.clipTextVertical(nextVerticalList, options, width, wordBreak);\n const v = this.revertVerticalList(out.verticalList);\n v.unshift({\n text: suffix,\n direction: 1,\n width: suffixWidth\n });\n out.verticalList = v;\n } else if (suffixPosition === 'middle') {\n const leftOut = this.clipTextVertical(verticalList, options, width / 2, wordBreak);\n const nextVerticalList = this.revertVerticalList(verticalList);\n const rightOut = this.clipTextVertical(nextVerticalList, options, width / 2, wordBreak);\n // 添加suffix\n leftOut.verticalList.push({\n text: suffix,\n direction: 1,\n width: suffixWidth\n });\n this.revertVerticalList(rightOut.verticalList).forEach(v => leftOut.verticalList.push(v));\n out = {\n verticalList: leftOut.verticalList,\n width: leftOut.width + rightOut.width\n };\n } else {\n out = this.clipTextVertical(verticalList, options, width, wordBreak);\n out.verticalList.push({\n text: suffix,\n direction: 1,\n width: suffixWidth\n });\n }\n out.width += suffixWidth;\n return out;\n }\n\n revertVerticalList(\n verticalList: {\n text: string;\n width?: number;\n direction: number;\n }[]\n ) {\n return verticalList.reverse().map(l => {\n const t = l.text.split('').reverse().join('');\n return {\n ...l,\n text: t\n };\n });\n }\n\n clipTextWithSuffix(\n text: string,\n options: TextOptionsType,\n width: number,\n suffix: string,\n wordBreak: boolean,\n position: 'start' | 'end' | 'middle',\n forceSuffix: boolean = false\n ): {\n str: string;\n width: number;\n } {\n if (suffix === '') {\n return this.clipText(text, options, width, wordBreak);\n }\n if (text.length === 0) {\n return { str: '', width: 0 };\n }\n const length = this.measureTextWidth(text, options);\n if (!forceSuffix && length <= width) {\n return { str: text, width: length };\n }\n const suffixWidth = this.measureTextWidth(suffix, options);\n if (suffixWidth > width) {\n return { str: '', width: 0 };\n }\n if (forceSuffix && length + suffixWidth <= width) {\n return { str: text + suffix, width: length + suffixWidth };\n }\n width -= suffixWidth;\n const data = this._clipText(text, options, width, 0, text.length - 1, position, suffix);\n\n // 如果需要文字截断\n if (wordBreak && data.str !== text) {\n const index = testLetter(text, data.str.length);\n if (index !== data.str.length) {\n data.result = text.substring(0, index);\n data.width = this.measureTextWidth(data.str, options);\n }\n } else if (forceSuffix && data.str === text) {\n data.result = text + suffix;\n }\n data.str = data.result!;\n data.width += suffixWidth;\n return data;\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
- import { ContainerModule } from '../../../common/inversify-lite';
2
- declare const _default: ContainerModule;
3
- export default _default;
1
+ export declare function bindTextMeasureModules({ bind }: {
2
+ bind: any;
3
+ }): void;
4
+ export default bindTextMeasureModules;
@@ -1,11 +1,11 @@
1
- import { ContainerModule } from "../../../common/inversify-lite";
2
-
3
1
  import { bindContributionProvider } from "../../../common/contribution-provider";
4
2
 
5
3
  import { DefaultTextMeasureContribution, TextMeasureContribution } from "./textMeasure-contribution";
6
4
 
7
- export default new ContainerModule((bind => {
5
+ export function bindTextMeasureModules({bind: bind}) {
8
6
  bind(TextMeasureContribution).to(DefaultTextMeasureContribution).inSingletonScope(),
9
7
  bindContributionProvider(bind, TextMeasureContribution);
10
- }));
8
+ }
9
+
10
+ export default bindTextMeasureModules;
11
11
  //# sourceMappingURL=modules.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/textMeasure/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErG,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACpF,wBAAwB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC","file":"modules.js","sourcesContent":["import { ContainerModule } from '../../../common/inversify-lite';\nimport { bindContributionProvider } from '../../../common/contribution-provider';\nimport { DefaultTextMeasureContribution, TextMeasureContribution } from './textMeasure-contribution';\n\nexport default new ContainerModule(bind => {\n bind(TextMeasureContribution).to(DefaultTextMeasureContribution).inSingletonScope();\n bindContributionProvider(bind, TextMeasureContribution);\n});\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/textMeasure/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErG,MAAM,UAAU,sBAAsB,CAAC,EAAE,IAAI,EAAiB;IAC5D,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACpF,wBAAwB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;AAC1D,CAAC;AAED,eAAe,sBAAsB,CAAC","file":"modules.js","sourcesContent":["import { bindContributionProvider } from '../../../common/contribution-provider';\nimport { DefaultTextMeasureContribution, TextMeasureContribution } from './textMeasure-contribution';\n\nexport function bindTextMeasureModules({ bind }: { bind: any }) {\n bind(TextMeasureContribution).to(DefaultTextMeasureContribution).inSingletonScope();\n bindContributionProvider(bind, TextMeasureContribution);\n}\n\nexport default bindTextMeasureModules;\n"]}
@@ -1,22 +1,10 @@
1
- var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
- var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
- if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
- return c > 3 && r && Object.defineProperty(target, key, r), r;
5
- };
6
-
7
- import { injectable } from "../../../common/inversify-lite";
8
-
9
1
  import { ATextMeasure } from "./AtextMeasure";
10
2
 
11
3
  export const TextMeasureContribution = Symbol.for("TextMeasureContribution");
12
4
 
13
- let DefaultTextMeasureContribution = class extends ATextMeasure {
5
+ export class DefaultTextMeasureContribution extends ATextMeasure {
14
6
  constructor() {
15
7
  super(...arguments), this.id = "DefaultTextMeasureContribution";
16
8
  }
17
- };
18
-
19
- DefaultTextMeasureContribution = __decorate([ injectable() ], DefaultTextMeasureContribution);
20
-
21
- export { DefaultTextMeasureContribution };
9
+ }
22
10
  //# sourceMappingURL=textMeasure-contribution.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/textMeasure/textMeasure-contribution.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAGtE,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,YAAY;IAAzD;;QACL,OAAE,GAAW,gCAAgC,CAAC;IAChD,CAAC;CAAA,CAAA;AAFY,8BAA8B;IAD1C,UAAU,EAAE;GACA,8BAA8B,CAE1C;SAFY,8BAA8B","file":"textMeasure-contribution.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport { ATextMeasure } from './AtextMeasure';\n\nexport const TextMeasureContribution = Symbol.for('TextMeasureContribution');\n\n@injectable()\nexport class DefaultTextMeasureContribution extends ATextMeasure {\n id: string = 'DefaultTextMeasureContribution';\n}\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/textMeasure/textMeasure-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAE7E,MAAM,OAAO,8BAA+B,SAAQ,YAAY;IAAhE;;QACE,OAAE,GAAW,gCAAgC,CAAC;IAChD,CAAC;CAAA","file":"textMeasure-contribution.js","sourcesContent":["import { ATextMeasure } from './AtextMeasure';\n\nexport const TextMeasureContribution = Symbol.for('TextMeasureContribution');\n\nexport class DefaultTextMeasureContribution extends ATextMeasure {\n id: string = 'DefaultTextMeasureContribution';\n}\n"]}
@@ -1,18 +1,8 @@
1
- var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
- var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
- if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
- return c > 3 && r && Object.defineProperty(target, key, r), r;
5
- }, __metadata = this && this.__metadata || function(k, v) {
6
- if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
- };
8
-
9
- import { injectable } from "../../../common/inversify-lite";
10
-
11
1
  import { Generator } from "../../../common/generator";
12
2
 
13
3
  import { AABBBounds, Matrix } from "@visactor/vutils";
14
4
 
15
- let BaseWindowHandlerContribution = class {
5
+ export class BaseWindowHandlerContribution {
16
6
  constructor() {
17
7
  this._uid = Generator.GenAutoIncrementId(), this.viewBox = new AABBBounds, this.modelMatrix = new Matrix(1, 0, 0, 1, 0, 0);
18
8
  }
@@ -47,9 +37,5 @@ let BaseWindowHandlerContribution = class {
47
37
  getViewBoxTransform() {
48
38
  return this.modelMatrix;
49
39
  }
50
- };
51
-
52
- BaseWindowHandlerContribution = __decorate([ injectable(), __metadata("design:paramtypes", []) ], BaseWindowHandlerContribution);
53
-
54
- export { BaseWindowHandlerContribution };
40
+ }
55
41
  //# sourceMappingURL=base-contribution.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/window/base-contribution.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAWtD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAgD,MAAM,kBAAkB,CAAC;AAK7F,IAAe,6BAA6B,GAA5C,MAAe,6BAA6B;IAOjD;QACE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAID,QAAQ,CAAC,EAAkB;QACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,SAAS,CAAC,MAAe,EAAE,MAAe;QACxC,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE;YAC5B,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC/B;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAsCD,SAAS,CAAC,IAAkB;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,EAAqC;QACnD,OAAO;IACT,CAAC;IAED,UAAU,CAAC,UAAoB;QAC7B,OAAO;YACL,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,EAAe;QACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,mBAAmB,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAClF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,mBAAmB;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF,CAAA;AA3FqB,6BAA6B;IADlD,UAAU,EAAE;;GACS,6BAA6B,CA2FlD;SA3FqB,6BAA6B","file":"base-contribution.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport { Generator } from '../../../common/generator';\nimport type {\n ICanvas,\n IContext2d,\n IDomRectLike,\n EnvType,\n IGlobal,\n IWindowHandlerContribution,\n IWindow,\n IWindowParams\n} from '../../../interface';\nimport { AABBBounds, Matrix, type IBounds, type IBoundsLike, type IMatrix } from '@visactor/vutils';\n\ntype OnchangeCbType = (params?: { x?: number; y?: number; width?: number; height?: number }) => void;\n\n@injectable()\nexport abstract class BaseWindowHandlerContribution implements IWindowHandlerContribution {\n declare type: EnvType;\n\n declare _uid: number;\n protected viewBox: IBounds;\n protected modelMatrix: IMatrix;\n\n constructor() {\n this._uid = Generator.GenAutoIncrementId();\n this.viewBox = new AABBBounds();\n this.modelMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n }\n\n protected declare _onChangeCb?: OnchangeCbType;\n\n onChange(cb: OnchangeCbType) {\n this._onChangeCb = cb;\n }\n\n configure(window: IWindow, global: IGlobal) {\n if (global.env === this.type) {\n window.setWindowHandler(this);\n }\n }\n release(...params: any) {\n this.releaseWindow();\n }\n abstract createWindow(params: IWindowParams): void;\n abstract releaseWindow(): void;\n abstract setDpr(dpr: number): void;\n abstract resizeWindow(width: number, height: number): void;\n abstract getContext(): IContext2d;\n abstract getWH(): { width: number; height: number };\n abstract getTitle(): string;\n abstract getXY(): { x: number; y: number };\n abstract getNativeHandler(): ICanvas | any;\n abstract getDpr(): number;\n abstract clearViewBox(color?: string): void;\n abstract addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n abstract addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void;\n abstract removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n abstract removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void;\n abstract dispatchEvent(event: any): boolean;\n\n abstract getStyle(): CSSStyleDeclaration | Record<string, any>;\n abstract setStyle(style: CSSStyleDeclaration | Record<string, any>): void;\n abstract getBoundingClientRect(): IDomRectLike;\n\n isVisible(bbox?: IBoundsLike) {\n return true;\n }\n\n onVisibleChange(cb: (currentVisible: boolean) => void) {\n return;\n }\n\n getTopLeft(baseWindow?: boolean): { top: number; left: number } {\n return {\n top: 0,\n left: 0\n };\n }\n\n setViewBox(vb: IBoundsLike) {\n this.viewBox.setValue(vb.x1, vb.y1, vb.x2, vb.y2);\n }\n getViewBox() {\n return this.viewBox;\n }\n setViewBoxTransform(a: number, b: number, c: number, d: number, e: number, f: number) {\n this.modelMatrix.setValue(a, b, c, d, e, f);\n }\n getViewBoxTransform(): IMatrix {\n return this.modelMatrix;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/window/base-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAWtD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAgD,MAAM,kBAAkB,CAAC;AAIpG,MAAM,OAAgB,6BAA6B;IAOjD;QACE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAID,QAAQ,CAAC,EAAkB;QACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,SAAS,CAAC,MAAe,EAAE,MAAe;QACxC,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE;YAC5B,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC/B;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAsCD,SAAS,CAAC,IAAkB;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,EAAqC;QACnD,OAAO;IACT,CAAC;IAED,UAAU,CAAC,UAAoB;QAC7B,OAAO;YACL,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,EAAe;QACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,mBAAmB,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAClF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,mBAAmB;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF","file":"base-contribution.js","sourcesContent":["import { Generator } from '../../../common/generator';\nimport type {\n ICanvas,\n IContext2d,\n IDomRectLike,\n EnvType,\n IGlobal,\n IWindowHandlerContribution,\n IWindow,\n IWindowParams\n} from '../../../interface';\nimport { AABBBounds, Matrix, type IBounds, type IBoundsLike, type IMatrix } from '@visactor/vutils';\n\ntype OnchangeCbType = (params?: { x?: number; y?: number; width?: number; height?: number }) => void;\n\nexport abstract class BaseWindowHandlerContribution implements IWindowHandlerContribution {\n declare type: EnvType;\n\n declare _uid: number;\n protected viewBox: IBounds;\n protected modelMatrix: IMatrix;\n\n constructor() {\n this._uid = Generator.GenAutoIncrementId();\n this.viewBox = new AABBBounds();\n this.modelMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n }\n\n protected declare _onChangeCb?: OnchangeCbType;\n\n onChange(cb: OnchangeCbType) {\n this._onChangeCb = cb;\n }\n\n configure(window: IWindow, global: IGlobal) {\n if (global.env === this.type) {\n window.setWindowHandler(this);\n }\n }\n release(...params: any) {\n this.releaseWindow();\n }\n abstract createWindow(params: IWindowParams): void;\n abstract releaseWindow(): void;\n abstract setDpr(dpr: number): void;\n abstract resizeWindow(width: number, height: number): void;\n abstract getContext(): IContext2d;\n abstract getWH(): { width: number; height: number };\n abstract getTitle(): string;\n abstract getXY(): { x: number; y: number };\n abstract getNativeHandler(): ICanvas | any;\n abstract getDpr(): number;\n abstract clearViewBox(color?: string): void;\n abstract addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n abstract addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void;\n abstract removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n abstract removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void;\n abstract dispatchEvent(event: any): boolean;\n\n abstract getStyle(): CSSStyleDeclaration | Record<string, any>;\n abstract setStyle(style: CSSStyleDeclaration | Record<string, any>): void;\n abstract getBoundingClientRect(): IDomRectLike;\n\n isVisible(bbox?: IBoundsLike) {\n return true;\n }\n\n onVisibleChange(cb: (currentVisible: boolean) => void) {\n return;\n }\n\n getTopLeft(baseWindow?: boolean): { top: number; left: number } {\n return {\n top: 0,\n left: 0\n };\n }\n\n setViewBox(vb: IBoundsLike) {\n this.viewBox.setValue(vb.x1, vb.y1, vb.x2, vb.y2);\n }\n getViewBox() {\n return this.viewBox;\n }\n setViewBoxTransform(a: number, b: number, c: number, d: number, e: number, f: number) {\n this.modelMatrix.setValue(a, b, c, d, e, f);\n }\n getViewBoxTransform(): IMatrix {\n return this.modelMatrix;\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
- import { ContainerModule } from '../common/inversify-lite';
2
- declare const _default: ContainerModule;
3
- export default _default;
1
+ export declare function bindCoreModules({ bind }: {
2
+ bind: any;
3
+ }): void;
4
+ export default bindCoreModules;
@@ -1,5 +1,3 @@
1
- import { ContainerModule } from "../common/inversify-lite";
2
-
3
1
  import { DefaultGlobal } from "./global";
4
2
 
5
3
  import { DefaultGraphicUtil, DefaultTransformUtil } from "./graphic-utils";
@@ -10,11 +8,17 @@ import { DefaultWindow, VWindow } from "./window";
10
8
 
11
9
  import { GraphicUtil, LayerService, TransformUtil } from "./constants";
12
10
 
13
- import { VGlobal } from "../constants";
11
+ import { EnvContribution, VGlobal } from "../constants";
12
+
13
+ import { createContributionProvider } from "../common/contribution-provider";
14
+
15
+ import { TextMeasureContribution } from "./contributions/textMeasure/textMeasure-contribution";
16
+
17
+ export function bindCoreModules({bind: bind}) {
18
+ bind(VGlobal).toDynamicValue((({container: container}) => new DefaultGlobal(createContributionProvider(EnvContribution, container)))).inSingletonScope(),
19
+ bind(VWindow).to(DefaultWindow), bind(GraphicUtil).toDynamicValue((({container: container}) => new DefaultGraphicUtil(createContributionProvider(TextMeasureContribution, container)))).inSingletonScope(),
20
+ bind(TransformUtil).to(DefaultTransformUtil).inSingletonScope(), bind(LayerService).to(DefaultLayerService).inSingletonScope();
21
+ }
14
22
 
15
- export default new ContainerModule((bind => {
16
- bind(VGlobal).to(DefaultGlobal).inSingletonScope(), bind(VWindow).to(DefaultWindow),
17
- bind(GraphicUtil).to(DefaultGraphicUtil).inSingletonScope(), bind(TransformUtil).to(DefaultTransformUtil).inSingletonScope(),
18
- bind(LayerService).to(DefaultLayerService).inSingletonScope();
19
- }));
20
- //# sourceMappingURL=core-modules.js.map
23
+ export default bindCoreModules;
24
+ //# sourceMappingURL=core-modules.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/core-modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;IAExC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEnD,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAChC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAChE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAahE,CAAC,CAAC,CAAC","file":"core-modules.js","sourcesContent":["import { ContainerModule } from '../common/inversify-lite';\nimport { DefaultGlobal } from './global';\nimport { DefaultGraphicUtil, DefaultTransformUtil } from './graphic-utils';\nimport { DefaultLayerService } from './layer-service';\nimport { DefaultWindow, VWindow } from './window';\nimport { GraphicUtil, LayerService, TransformUtil } from './constants';\nimport { VGlobal } from '../constants';\n\nexport default new ContainerModule(bind => {\n // global对象,全局单例模式\n bind(VGlobal).to(DefaultGlobal).inSingletonScope();\n\n bind(VWindow).to(DefaultWindow);\n bind(GraphicUtil).to(DefaultGraphicUtil).inSingletonScope();\n bind(TransformUtil).to(DefaultTransformUtil).inSingletonScope();\n bind(LayerService).to(DefaultLayerService).inSingletonScope();\n\n // bind(Stage).to(DefaultStage);\n // bind<(params: Partial<IStageParams>) => IStage>(StageFactory).toFactory<IStage>((context: interface.Context) => {\n // return (params: Partial<IStageParams>) => {\n // const g = context.container.get<IGlobal>(Global);\n // const ws = context.container.get<IWindow>(VWindow);\n // const rs = context.container.get<IRenderService>(RenderService);\n // const layer = context.container.get<ILayer>(Layer);\n // return new DefaultStage(params, g, ws, rs, layer);\n // };\n // });\n // bind(Layer).to(DefaultLayer);\n});\n"]}
1
+ {"version":3,"sources":["../src/core/core-modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAE/F,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAAiB;IAErD,IAAI,CAAC,OAAO,CAAC;SACV,cAAc,CACb,CAAC,EAAE,SAAS,EAAsB,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,0BAA0B,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CACjH;SACA,gBAAgB,EAAE,CAAC;IAEtB,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAChC,IAAI,CAAC,WAAW,CAAC;SACd,cAAc,CACb,CAAC,EAAE,SAAS,EAAsB,EAAE,EAAE,CACpC,IAAI,kBAAkB,CAAC,0BAA0B,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC,CACzF;SACA,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAChE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAahE,CAAC;AAED,eAAe,eAAe,CAAC","file":"core-modules.js","sourcesContent":["import { DefaultGlobal } from './global';\nimport { DefaultGraphicUtil, DefaultTransformUtil } from './graphic-utils';\nimport { DefaultLayerService } from './layer-service';\nimport { DefaultWindow, VWindow } from './window';\nimport { GraphicUtil, LayerService, TransformUtil } from './constants';\nimport { EnvContribution, VGlobal } from '../constants';\nimport { createContributionProvider } from '../common/contribution-provider';\nimport { TextMeasureContribution } from './contributions/textMeasure/textMeasure-contribution';\n\nexport function bindCoreModules({ bind }: { bind: any }) {\n // global对象,全局单例模式\n bind(VGlobal)\n .toDynamicValue(\n ({ container }: { container: any }) => new DefaultGlobal(createContributionProvider(EnvContribution, container))\n )\n .inSingletonScope();\n\n bind(VWindow).to(DefaultWindow);\n bind(GraphicUtil)\n .toDynamicValue(\n ({ container }: { container: any }) =>\n new DefaultGraphicUtil(createContributionProvider(TextMeasureContribution, container))\n )\n .inSingletonScope();\n bind(TransformUtil).to(DefaultTransformUtil).inSingletonScope();\n bind(LayerService).to(DefaultLayerService).inSingletonScope();\n\n // bind(Stage).to(DefaultStage);\n // bind<(params: Partial<IStageParams>) => IStage>(StageFactory).toFactory<IStage>((context: interface.Context) => {\n // return (params: Partial<IStageParams>) => {\n // const g = context.container.get<IGlobal>(Global);\n // const ws = context.container.get<IWindow>(VWindow);\n // const rs = context.container.get<IRenderService>(RenderService);\n // const layer = context.container.get<ILayer>(Layer);\n // return new DefaultStage(params, g, ws, rs, layer);\n // };\n // });\n // bind(Layer).to(DefaultLayer);\n}\n\nexport default bindCoreModules;\n"]}
@@ -1 +1,3 @@
1
+
2
+
1
3
  //# sourceMappingURL=global-module.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/global-module.ts"],"names":[],"mappings":"","file":"global-module.js","sourcesContent":["// import type { IGlobal } from '../interface';\n// import { container } from '../container';\n// import { DefaultGlobal } from './global';\n// import envModules from './contributions/env/modules';\n// import { Global } from '../constants';\n\n// const globalModule = new ContainerModule((bind, unbind, isBound) => {\n// // global对象,全局单例模式\n// if (!isBound(Global)) {\n// bind(DefaultGlobal).toSelf().inSingletonScope();\n// bind(Global).toService(DefaultGlobal);\n// }\n// });\n\n// container.load(globalModule);\n// container.load(envModules);\n\n// export const global = container.get<IGlobal>(Global);\n\n// export default globalModule;\n"]}
1
+ {"version":3,"sources":["../src/core/global-module.ts"],"names":[],"mappings":"","file":"global-module.js","sourcesContent":["// import type { IGlobal } from '../interface';\n// legacy container bootstrap has been removed in major cleanup.\n// import { DefaultGlobal } from './global';\n// import envModules from './contributions/env/modules';\n// import { Global } from '../constants';\n\n// const globalModule = new ContainerModule((bind, unbind, isBound) => {\n// // global对象,全局单例模式\n// if (!isBound(Global)) {\n// bind(DefaultGlobal).toSelf().inSingletonScope();\n// bind(Global).toService(DefaultGlobal);\n// }\n// });\n\n// container.load(globalModule);\n// container.load(envModules);\n\n// export const global = container.get<IGlobal>(Global);\n\n// export default globalModule;\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { CreateDOMParamsType, EnvType, IContributionProvider, ICreateCanvasParams, IEnvContribution, IEnvParamsMap, IGlobal, ISyncHook } from '../interface';
2
2
  import type { IAABBBoundsLike } from '@visactor/vutils';
3
+ import { PerformanceRAF } from '../common/performance-raf';
3
4
  import { EventListenerManager } from '../common/event-listener-manager';
4
5
  export declare class DefaultGlobal extends EventListenerManager implements IGlobal {
5
6
  protected readonly contributions: IContributionProvider<IEnvContribution>;
@@ -47,6 +48,7 @@ export declare class DefaultGlobal extends EventListenerManager implements IGlob
47
48
  releaseCanvas(canvas: HTMLCanvasElement | string | any): void;
48
49
  getRequestAnimationFrame(): (callback: FrameRequestCallback) => number;
49
50
  getSpecifiedRequestAnimationFrame(id: number): (callback: FrameRequestCallback) => number;
51
+ getSpecifiedPerformanceRAF(id: number): PerformanceRAF;
50
52
  getSpecifiedCancelAnimationFrame(id: number): (handle: number) => boolean;
51
53
  getCancelAnimationFrame(): (h: number) => void;
52
54
  getElementById(str: string): HTMLElement | null;