@visactor/vrender-core 0.17.0-alpha.8 → 0.17.1-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 (814) hide show
  1. package/cjs/allocator/bounds-allocate.d.ts +13 -0
  2. package/cjs/allocator/bounds-allocate.js +38 -0
  3. package/cjs/allocator/bounds-allocate.js.map +1 -0
  4. package/cjs/allocator/canvas-allocate.d.ts +4 -0
  5. package/cjs/allocator/canvas-allocate.js +19 -6
  6. package/cjs/allocator/canvas-allocate.js.map +1 -1
  7. package/cjs/allocator/graphic-allocate.d.ts +56 -1
  8. package/cjs/allocator/graphic-allocate.js +163 -1
  9. package/cjs/allocator/graphic-allocate.js.map +1 -1
  10. package/cjs/animate/Ticker/default-ticker.js +3 -3
  11. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  12. package/cjs/animate/animate.js +2 -2
  13. package/cjs/animate/animate.js.map +1 -1
  14. package/cjs/animate/config.js +1 -2
  15. package/cjs/animate/custom-animate.d.ts +14 -3
  16. package/cjs/animate/custom-animate.js +100 -5
  17. package/cjs/animate/custom-animate.js.map +1 -1
  18. package/cjs/animate/default-ticker.js +2 -1
  19. package/cjs/canvas/contributions/base-canvas.js +4 -2
  20. package/cjs/canvas/contributions/base-canvas.js.map +1 -1
  21. package/cjs/common/Reflect-metadata.js +349 -359
  22. package/cjs/common/Reflect-metadata.js.map +1 -1
  23. package/cjs/common/bounds-context.js +2 -1
  24. package/cjs/common/inversify/annotation/inject.d.ts +1 -0
  25. package/cjs/common/inversify/annotation/inject.js +10 -0
  26. package/cjs/common/inversify/annotation/inject.js.map +1 -0
  27. package/cjs/common/inversify/annotation/inject_base.d.ts +14 -0
  28. package/cjs/common/inversify/annotation/inject_base.js +39 -0
  29. package/cjs/common/inversify/annotation/inject_base.js.map +1 -0
  30. package/cjs/common/inversify/annotation/injectable.d.ts +1 -0
  31. package/cjs/common/{inversify-lite/annotation/post_construct.js → inversify/annotation/injectable.js} +15 -5
  32. package/cjs/common/inversify/annotation/injectable.js.map +1 -0
  33. package/cjs/common/inversify/annotation/multi_inject.d.ts +1 -0
  34. package/cjs/common/inversify/annotation/multi_inject.js +10 -0
  35. package/cjs/common/inversify/annotation/multi_inject.js.map +1 -0
  36. package/cjs/common/inversify/annotation/named.d.ts +1 -0
  37. package/cjs/common/inversify/annotation/named.js +14 -0
  38. package/cjs/common/inversify/annotation/named.js.map +1 -0
  39. package/cjs/common/inversify/binding.d.ts +18 -0
  40. package/cjs/common/inversify/binding.js +26 -0
  41. package/cjs/common/inversify/binding.js.map +1 -0
  42. package/cjs/common/inversify/container.d.ts +28 -0
  43. package/cjs/common/inversify/container.js +155 -0
  44. package/cjs/common/inversify/container.js.map +1 -0
  45. package/cjs/common/inversify/cotainer-module.d.ts +6 -0
  46. package/cjs/common/inversify/cotainer-module.js +16 -0
  47. package/cjs/common/inversify/cotainer-module.js.map +1 -0
  48. package/cjs/common/inversify/index.d.ts +7 -0
  49. package/cjs/common/inversify/index.js +75 -0
  50. package/cjs/common/inversify/index.js.map +1 -0
  51. package/cjs/common/inversify/interfaces.d.ts +218 -0
  52. package/cjs/common/inversify/interfaces.js +6 -0
  53. package/cjs/common/inversify/interfaces.js.map +1 -0
  54. package/cjs/common/inversify/literal_types.d.ts +5 -0
  55. package/cjs/common/inversify/literal_types.js +34 -0
  56. package/cjs/common/inversify/literal_types.js.map +1 -0
  57. package/cjs/common/inversify/meta-data.d.ts +6 -0
  58. package/cjs/common/inversify/meta-data.js +19 -0
  59. package/cjs/common/inversify/meta-data.js.map +1 -0
  60. package/cjs/common/inversify/metadata_keys.d.ts +12 -0
  61. package/cjs/common/inversify/metadata_keys.js +15 -0
  62. package/cjs/common/inversify/metadata_keys.js.map +1 -0
  63. package/cjs/common/inversify/metadata_reader.d.ts +6 -0
  64. package/cjs/common/inversify/metadata_reader.js +28 -0
  65. package/cjs/common/inversify/metadata_reader.js.map +1 -0
  66. package/cjs/common/inversify/syntax/binding_in_syntax.d.ts +10 -0
  67. package/cjs/common/inversify/syntax/binding_in_syntax.js +29 -0
  68. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +1 -0
  69. package/cjs/common/inversify/syntax/binding_to_syntax.d.ts +12 -0
  70. package/cjs/common/inversify/syntax/binding_to_syntax.js +40 -0
  71. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +1 -0
  72. package/cjs/common/inversify/syntax/constraint_helpers.d.ts +2 -0
  73. package/cjs/common/inversify/syntax/constraint_helpers.js +20 -0
  74. package/cjs/common/inversify/syntax/constraint_helpers.js.map +1 -0
  75. package/cjs/common/inversify-lite/container/container.js +1 -3
  76. package/cjs/common/inversify-lite/container/container.js.map +1 -1
  77. package/cjs/common/inversify-lite/index.d.ts +1 -8
  78. package/cjs/common/inversify-lite/index.js +1 -64
  79. package/cjs/common/inversify-lite/index.js.map +1 -1
  80. package/cjs/common/inversify-lite/interfaces/interfaces.d.ts +0 -2
  81. package/cjs/common/inversify-lite/interfaces/interfaces.js.map +1 -1
  82. package/cjs/common/inversify-lite/planning/queryable_string.d.ts +0 -2
  83. package/cjs/common/inversify-lite/planning/queryable_string.js +0 -10
  84. package/cjs/common/inversify-lite/planning/queryable_string.js.map +1 -1
  85. package/cjs/common/inversify-lite/resolution/resolver.js.map +1 -1
  86. package/cjs/common/segment/monotone.js +2 -2
  87. package/cjs/common/segment/monotone.js.map +1 -1
  88. package/cjs/common/shape/rect.js +2 -1
  89. package/cjs/common/shape/rect.js.map +1 -1
  90. package/cjs/common/sort.js +1 -2
  91. package/cjs/common/store.js +2 -1
  92. package/cjs/common/utils.d.ts +1 -0
  93. package/cjs/common/utils.js +10 -1
  94. package/cjs/common/utils.js.map +1 -1
  95. package/cjs/common/xml/OrderedObjParser.js +2 -2
  96. package/cjs/common/xml/OrderedObjParser.js.map +1 -1
  97. package/cjs/core/contributions/layerHandler/canvas2d-contribution.d.ts +2 -2
  98. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +4 -9
  99. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  100. package/cjs/core/contributions/layerHandler/empty-contribution.d.ts +2 -2
  101. package/cjs/core/contributions/layerHandler/empty-contribution.js +4 -9
  102. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  103. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.d.ts +2 -2
  104. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +4 -9
  105. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  106. package/cjs/core/contributions/textMeasure/AtextMeasure.d.ts +14 -2
  107. package/cjs/core/contributions/textMeasure/AtextMeasure.js +99 -13
  108. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  109. package/cjs/core/contributions/textMeasure/layout.d.ts +2 -2
  110. package/cjs/core/contributions/textMeasure/layout.js +4 -4
  111. package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
  112. package/cjs/core/contributions/textMeasure/modules.js +1 -2
  113. package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
  114. package/cjs/core/core-modules.js +5 -6
  115. package/cjs/core/core-modules.js.map +1 -1
  116. package/cjs/core/global-module.js +2 -0
  117. package/cjs/core/global.d.ts +9 -0
  118. package/cjs/core/global.js +23 -5
  119. package/cjs/core/global.js.map +1 -1
  120. package/cjs/core/graphic-utils.d.ts +7 -4
  121. package/cjs/core/graphic-utils.js +18 -14
  122. package/cjs/core/graphic-utils.js.map +1 -1
  123. package/cjs/core/layer-service.d.ts +5 -2
  124. package/cjs/core/layer-service.js +17 -15
  125. package/cjs/core/layer-service.js.map +1 -1
  126. package/cjs/core/stage.d.ts +8 -4
  127. package/cjs/core/stage.js +42 -27
  128. package/cjs/core/stage.js.map +1 -1
  129. package/cjs/core/window.d.ts +2 -2
  130. package/cjs/core/window.js +7 -12
  131. package/cjs/core/window.js.map +1 -1
  132. package/cjs/env-check.d.ts +3 -0
  133. package/cjs/env-check.js +19 -0
  134. package/cjs/env-check.js.map +1 -0
  135. package/cjs/event/event-manager.d.ts +5 -1
  136. package/cjs/event/event-manager.js +31 -25
  137. package/cjs/event/event-manager.js.map +1 -1
  138. package/cjs/event/event-system.js +12 -11
  139. package/cjs/event/event-system.js.map +1 -1
  140. package/cjs/event/federated-event/base-event.d.ts +5 -6
  141. package/cjs/event/federated-event/base-event.js +15 -5
  142. package/cjs/event/federated-event/base-event.js.map +1 -1
  143. package/cjs/event/federated-event/mouse-event.d.ts +6 -6
  144. package/cjs/event/federated-event/mouse-event.js +17 -3
  145. package/cjs/event/federated-event/mouse-event.js.map +1 -1
  146. package/cjs/graphic/area.js +1 -0
  147. package/cjs/graphic/area.js.map +1 -1
  148. package/cjs/graphic/bounds.d.ts +2 -2
  149. package/cjs/graphic/bounds.js +8 -10
  150. package/cjs/graphic/bounds.js.map +1 -1
  151. package/cjs/graphic/builtin-symbol/index.d.ts +1 -0
  152. package/cjs/graphic/builtin-symbol/index.js +7 -2
  153. package/cjs/graphic/builtin-symbol/index.js.map +1 -1
  154. package/cjs/graphic/builtin-symbol/rect.d.ts +2 -1
  155. package/cjs/graphic/builtin-symbol/rect.js +11 -6
  156. package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
  157. package/cjs/graphic/config.js +11 -3
  158. package/cjs/graphic/config.js.map +1 -1
  159. package/cjs/graphic/graphic-creator.d.ts +24 -36
  160. package/cjs/graphic/graphic-creator.js +16 -99
  161. package/cjs/graphic/graphic-creator.js.map +1 -1
  162. package/cjs/graphic/graphic-service/arc-contribution.d.ts +1 -5
  163. package/cjs/graphic/graphic-service/arc-contribution.js +0 -18
  164. package/cjs/graphic/graphic-service/arc-contribution.js.map +1 -1
  165. package/cjs/graphic/graphic-service/area-contribution.d.ts +1 -1
  166. package/cjs/graphic/graphic-service/area-contribution.js +1 -4
  167. package/cjs/graphic/graphic-service/area-contribution.js.map +1 -1
  168. package/cjs/graphic/graphic-service/circle-contribution.d.ts +1 -5
  169. package/cjs/graphic/graphic-service/circle-contribution.js +0 -18
  170. package/cjs/graphic/graphic-service/circle-contribution.js.map +1 -1
  171. package/cjs/graphic/graphic-service/common-contribution.js +2 -11
  172. package/cjs/graphic/graphic-service/common-contribution.js.map +1 -1
  173. package/cjs/graphic/graphic-service/graphic-module.js +2 -17
  174. package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
  175. package/cjs/graphic/graphic-service/graphic-service.d.ts +5 -9
  176. package/cjs/graphic/graphic-service/graphic-service.js +43 -32
  177. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  178. package/cjs/graphic/graphic-service/path-contribution.d.ts +1 -5
  179. package/cjs/graphic/graphic-service/path-contribution.js +0 -18
  180. package/cjs/graphic/graphic-service/path-contribution.js.map +1 -1
  181. package/cjs/graphic/graphic-service/rect-contribution.d.ts +1 -5
  182. package/cjs/graphic/graphic-service/rect-contribution.js +0 -18
  183. package/cjs/graphic/graphic-service/rect-contribution.js.map +1 -1
  184. package/cjs/graphic/graphic-service/symbol-contribution.d.ts +0 -1
  185. package/cjs/graphic/graphic-service/symbol-contribution.js +4 -13
  186. package/cjs/graphic/graphic-service/symbol-contribution.js.map +1 -1
  187. package/cjs/graphic/graphic.js +9 -7
  188. package/cjs/graphic/graphic.js.map +1 -1
  189. package/cjs/graphic/group.d.ts +1 -0
  190. package/cjs/graphic/group.js +7 -3
  191. package/cjs/graphic/group.js.map +1 -1
  192. package/cjs/graphic/index.d.ts +1 -0
  193. package/cjs/graphic/index.js +6 -5
  194. package/cjs/graphic/index.js.map +1 -1
  195. package/cjs/graphic/line.js +1 -0
  196. package/cjs/graphic/line.js.map +1 -1
  197. package/cjs/graphic/node-tree.js +1 -1
  198. package/cjs/graphic/node-tree.js.map +1 -1
  199. package/cjs/graphic/rect.d.ts +2 -3
  200. package/cjs/graphic/rect.js +3 -5
  201. package/cjs/graphic/rect.js.map +1 -1
  202. package/cjs/graphic/richtext/line.d.ts +1 -0
  203. package/cjs/graphic/richtext/line.js +6 -3
  204. package/cjs/graphic/richtext/line.js.map +1 -1
  205. package/cjs/graphic/richtext/paragraph.js +12 -11
  206. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  207. package/cjs/graphic/richtext/utils.js +2 -1
  208. package/cjs/graphic/richtext/utils.js.map +1 -1
  209. package/cjs/graphic/richtext.d.ts +3 -3
  210. package/cjs/graphic/richtext.js +12 -3
  211. package/cjs/graphic/richtext.js.map +1 -1
  212. package/cjs/graphic/symbol.js +11 -9
  213. package/cjs/graphic/symbol.js.map +1 -1
  214. package/cjs/graphic/text.d.ts +1 -0
  215. package/cjs/graphic/text.js +97 -11
  216. package/cjs/graphic/text.js.map +1 -1
  217. package/cjs/graphic/theme.d.ts +4 -4
  218. package/cjs/graphic/theme.js +26 -27
  219. package/cjs/graphic/theme.js.map +1 -1
  220. package/cjs/graphic/tools.js +1 -1
  221. package/cjs/graphic/tools.js.map +1 -1
  222. package/cjs/graphic/wrap-text.js +6 -5
  223. package/cjs/graphic/wrap-text.js.map +1 -1
  224. package/cjs/index.d.ts +18 -0
  225. package/cjs/index.js +10 -1
  226. package/cjs/index.js.map +1 -1
  227. package/cjs/interface/allocator.d.ts +1 -0
  228. package/cjs/interface/allocator.js.map +1 -1
  229. package/cjs/interface/event.d.ts +15 -44
  230. package/cjs/interface/event.js.map +1 -1
  231. package/cjs/interface/global.d.ts +1 -0
  232. package/cjs/interface/global.js.map +1 -1
  233. package/cjs/interface/graphic/rect.d.ts +2 -0
  234. package/cjs/interface/graphic/rect.js.map +1 -1
  235. package/cjs/interface/graphic/richText.d.ts +1 -1
  236. package/cjs/interface/graphic/richText.js.map +1 -1
  237. package/cjs/interface/graphic/text.d.ts +5 -1
  238. package/cjs/interface/graphic/text.js.map +1 -1
  239. package/cjs/interface/graphic.d.ts +3 -2
  240. package/cjs/interface/graphic.js.map +1 -1
  241. package/cjs/interface/render.d.ts +2 -2
  242. package/cjs/interface/render.js.map +1 -1
  243. package/cjs/interface/stage.d.ts +8 -1
  244. package/cjs/interface/stage.js.map +1 -1
  245. package/cjs/interface/text.d.ts +2 -2
  246. package/cjs/interface/text.js.map +1 -1
  247. package/cjs/modules.d.ts +1 -2
  248. package/cjs/modules.js +8 -8
  249. package/cjs/modules.js.map +1 -1
  250. package/cjs/picker/global-picker-service.d.ts +2 -2
  251. package/cjs/picker/global-picker-service.js +4 -9
  252. package/cjs/picker/global-picker-service.js.map +1 -1
  253. package/cjs/picker/pick-interceptor.js +2 -1
  254. package/cjs/picker/pick-interceptor.js.map +1 -1
  255. package/cjs/picker/pick-modules.js +2 -4
  256. package/cjs/picker/pick-modules.js.map +1 -1
  257. package/cjs/picker/picker-service.d.ts +2 -2
  258. package/cjs/picker/picker-service.js +11 -7
  259. package/cjs/picker/picker-service.js.map +1 -1
  260. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +9 -5
  261. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  262. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +1 -1
  263. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  264. package/cjs/plugins/plugin-modules.js +1 -2
  265. package/cjs/plugins/plugin-modules.js.map +1 -1
  266. package/cjs/render/contributions/render/arc-module.d.ts +2 -0
  267. package/cjs/render/contributions/render/arc-module.js +17 -0
  268. package/cjs/render/contributions/render/arc-module.js.map +1 -0
  269. package/cjs/render/contributions/render/arc-render.js +2 -1
  270. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  271. package/cjs/render/contributions/render/arc3d-module.d.ts +2 -0
  272. package/cjs/render/contributions/render/arc3d-module.js +15 -0
  273. package/cjs/render/contributions/render/arc3d-module.js.map +1 -0
  274. package/cjs/render/contributions/render/area-module.d.ts +2 -0
  275. package/cjs/render/contributions/render/area-module.js +18 -0
  276. package/cjs/render/contributions/render/area-module.js.map +1 -0
  277. package/cjs/render/contributions/render/area-render.d.ts +1 -0
  278. package/cjs/render/contributions/render/area-render.js +44 -6
  279. package/cjs/render/contributions/render/area-render.js.map +1 -1
  280. package/cjs/render/contributions/render/base-render.d.ts +1 -1
  281. package/cjs/render/contributions/render/base-render.js +15 -18
  282. package/cjs/render/contributions/render/base-render.js.map +1 -1
  283. package/cjs/render/contributions/render/circle-module.d.ts +2 -0
  284. package/cjs/render/contributions/render/circle-module.js +17 -0
  285. package/cjs/render/contributions/render/circle-module.js.map +1 -0
  286. package/cjs/render/contributions/render/circle-render.js +2 -1
  287. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  288. package/cjs/render/contributions/render/contributions/arc-contribution-render.d.ts +3 -7
  289. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +7 -30
  290. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  291. package/cjs/render/contributions/render/contributions/area-contribution-render.d.ts +3 -4
  292. package/cjs/render/contributions/render/contributions/area-contribution-render.js +7 -21
  293. package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  294. package/cjs/render/contributions/render/contributions/base-contribution-render.d.ts +4 -0
  295. package/cjs/render/contributions/render/contributions/base-contribution-render.js +24 -15
  296. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  297. package/cjs/render/contributions/render/contributions/circle-contribution-render.d.ts +3 -7
  298. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +7 -30
  299. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  300. package/cjs/render/contributions/render/contributions/constants.d.ts +1 -0
  301. package/cjs/render/contributions/render/contributions/constants.js +2 -2
  302. package/cjs/render/contributions/render/contributions/constants.js.map +1 -1
  303. package/cjs/render/contributions/render/contributions/group-contribution-render.d.ts +1 -0
  304. package/cjs/render/contributions/render/contributions/group-contribution-render.js +8 -14
  305. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  306. package/cjs/render/contributions/render/contributions/image-contribution-render.d.ts +1 -0
  307. package/cjs/render/contributions/render/contributions/image-contribution-render.js +8 -15
  308. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  309. package/cjs/render/contributions/render/contributions/path-contribution-render.d.ts +2 -9
  310. package/cjs/render/contributions/render/contributions/path-contribution-render.js +4 -25
  311. package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  312. package/cjs/render/contributions/render/contributions/polygon-contribution-render.d.ts +2 -9
  313. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js +4 -25
  314. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  315. package/cjs/render/contributions/render/contributions/rect-contribution-render.d.ts +5 -7
  316. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +17 -37
  317. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  318. package/cjs/render/contributions/render/contributions/symbol-contribution-render.d.ts +3 -7
  319. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +6 -27
  320. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  321. package/cjs/render/contributions/render/contributions/text-contribution-render.d.ts +8 -1
  322. package/cjs/render/contributions/render/contributions/text-contribution-render.js +25 -1
  323. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  324. package/cjs/render/contributions/render/draw-contribution.d.ts +7 -6
  325. package/cjs/render/contributions/render/draw-contribution.js +44 -26
  326. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  327. package/cjs/render/contributions/render/draw-interceptor.d.ts +7 -1
  328. package/cjs/render/contributions/render/draw-interceptor.js +43 -28
  329. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  330. package/cjs/render/contributions/render/glyph-module.d.ts +2 -0
  331. package/cjs/render/contributions/render/glyph-module.js +15 -0
  332. package/cjs/render/contributions/render/glyph-module.js.map +1 -0
  333. package/cjs/render/contributions/render/glyph-render.d.ts +1 -2
  334. package/cjs/render/contributions/render/glyph-render.js +13 -8
  335. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  336. package/cjs/render/contributions/render/group-render.js +3 -2
  337. package/cjs/render/contributions/render/group-render.js.map +1 -1
  338. package/cjs/render/contributions/render/image-module.d.ts +2 -0
  339. package/cjs/render/contributions/render/image-module.js +16 -0
  340. package/cjs/render/contributions/render/image-module.js.map +1 -0
  341. package/cjs/render/contributions/render/image-render.js +4 -2
  342. package/cjs/render/contributions/render/image-render.js.map +1 -1
  343. package/cjs/render/contributions/render/incremental-draw-contribution.d.ts +2 -6
  344. package/cjs/render/contributions/render/incremental-draw-contribution.js +8 -11
  345. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  346. package/cjs/render/contributions/render/line-module.d.ts +2 -0
  347. package/cjs/render/contributions/render/line-module.js +17 -0
  348. package/cjs/render/contributions/render/line-module.js.map +1 -0
  349. package/cjs/render/contributions/render/line-render.d.ts +1 -0
  350. package/cjs/render/contributions/render/line-render.js +21 -6
  351. package/cjs/render/contributions/render/line-render.js.map +1 -1
  352. package/cjs/render/contributions/render/module.js +8 -98
  353. package/cjs/render/contributions/render/module.js.map +1 -1
  354. package/cjs/render/contributions/render/path-module.d.ts +2 -0
  355. package/cjs/render/contributions/render/path-module.js +17 -0
  356. package/cjs/render/contributions/render/path-module.js.map +1 -0
  357. package/cjs/render/contributions/render/path-render.d.ts +2 -1
  358. package/cjs/render/contributions/render/path-render.js +8 -5
  359. package/cjs/render/contributions/render/path-render.js.map +1 -1
  360. package/cjs/render/contributions/render/polygon-module.d.ts +2 -0
  361. package/cjs/render/contributions/render/polygon-module.js +16 -0
  362. package/cjs/render/contributions/render/polygon-module.js.map +1 -0
  363. package/cjs/render/contributions/render/polygon-render.js +2 -1
  364. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  365. package/cjs/render/contributions/render/pyramid3d-module.d.ts +2 -0
  366. package/cjs/render/contributions/render/pyramid3d-module.js +15 -0
  367. package/cjs/render/contributions/render/pyramid3d-module.js.map +1 -0
  368. package/cjs/render/contributions/render/rect-module.d.ts +2 -0
  369. package/cjs/render/contributions/render/rect-module.js +17 -0
  370. package/cjs/render/contributions/render/rect-module.js.map +1 -0
  371. package/cjs/render/contributions/render/rect-render.d.ts +2 -1
  372. package/cjs/render/contributions/render/rect-render.js +11 -5
  373. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  374. package/cjs/render/contributions/render/rect3d-module.d.ts +2 -0
  375. package/cjs/render/contributions/render/rect3d-module.js +15 -0
  376. package/cjs/render/contributions/render/rect3d-module.js.map +1 -0
  377. package/cjs/render/contributions/render/render-slector.d.ts +1 -4
  378. package/cjs/render/contributions/render/render-slector.js +0 -20
  379. package/cjs/render/contributions/render/render-slector.js.map +1 -1
  380. package/cjs/render/contributions/render/richtext-module.d.ts +2 -0
  381. package/cjs/render/contributions/render/richtext-module.js +15 -0
  382. package/cjs/render/contributions/render/richtext-module.js.map +1 -0
  383. package/cjs/render/contributions/render/richtext-render.d.ts +1 -0
  384. package/cjs/render/contributions/render/richtext-render.js +12 -7
  385. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  386. package/cjs/render/contributions/render/symbol-module.d.ts +2 -0
  387. package/cjs/render/contributions/render/symbol-module.js +17 -0
  388. package/cjs/render/contributions/render/symbol-module.js.map +1 -0
  389. package/cjs/render/contributions/render/symbol-render.js +22 -5
  390. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  391. package/cjs/render/contributions/render/text-module.d.ts +2 -0
  392. package/cjs/render/contributions/render/text-module.js +16 -0
  393. package/cjs/render/contributions/render/text-module.js.map +1 -0
  394. package/cjs/render/contributions/render/text-render.js +13 -10
  395. package/cjs/render/contributions/render/text-render.js.map +1 -1
  396. package/cjs/render/contributions/render/utils.js +2 -2
  397. package/cjs/render/contributions/render/utils.js.map +1 -1
  398. package/cjs/render/render-modules.js +1 -1
  399. package/cjs/render/render-modules.js.map +1 -1
  400. package/cjs/render/render-service.js +1 -1
  401. package/cjs/render/render-service.js.map +1 -1
  402. package/cjs/resource-loader/loader.js +1 -3
  403. package/cjs/resource-loader/loader.js.map +1 -1
  404. package/dist/index.js +8931 -9097
  405. package/dist/index.min.js +1 -1
  406. package/es/allocator/bounds-allocate.d.ts +13 -0
  407. package/es/allocator/bounds-allocate.js +32 -0
  408. package/es/allocator/bounds-allocate.js.map +1 -0
  409. package/es/allocator/canvas-allocate.d.ts +4 -0
  410. package/es/allocator/canvas-allocate.js +19 -6
  411. package/es/allocator/canvas-allocate.js.map +1 -1
  412. package/es/allocator/graphic-allocate.d.ts +56 -1
  413. package/es/allocator/graphic-allocate.js +155 -1
  414. package/es/allocator/graphic-allocate.js.map +1 -1
  415. package/es/animate/Ticker/default-ticker.js +4 -2
  416. package/es/animate/Ticker/default-ticker.js.map +1 -1
  417. package/es/animate/animate.js +3 -3
  418. package/es/animate/animate.js.map +1 -1
  419. package/es/animate/config.js +1 -2
  420. package/es/animate/custom-animate.d.ts +14 -3
  421. package/es/animate/custom-animate.js +103 -5
  422. package/es/animate/custom-animate.js.map +1 -1
  423. package/es/animate/default-ticker.js +2 -1
  424. package/es/canvas/contributions/base-canvas.js +4 -2
  425. package/es/canvas/contributions/base-canvas.js.map +1 -1
  426. package/es/common/Reflect-metadata.js +349 -359
  427. package/es/common/Reflect-metadata.js.map +1 -1
  428. package/es/common/bounds-context.js +2 -1
  429. package/es/common/inversify/annotation/inject.d.ts +1 -0
  430. package/es/common/inversify/annotation/inject.js +6 -0
  431. package/es/common/inversify/annotation/inject.js.map +1 -0
  432. package/es/common/inversify/annotation/inject_base.d.ts +14 -0
  433. package/es/common/inversify/annotation/inject_base.js +29 -0
  434. package/es/common/inversify/annotation/inject_base.js.map +1 -0
  435. package/es/common/inversify/annotation/injectable.d.ts +1 -0
  436. package/es/common/inversify/annotation/injectable.js +10 -0
  437. package/es/common/inversify/annotation/injectable.js.map +1 -0
  438. package/es/common/inversify/annotation/multi_inject.d.ts +1 -0
  439. package/es/common/inversify/annotation/multi_inject.js +6 -0
  440. package/es/common/inversify/annotation/multi_inject.js.map +1 -0
  441. package/es/common/inversify/annotation/named.d.ts +1 -0
  442. package/es/common/inversify/annotation/named.js +10 -0
  443. package/es/common/inversify/annotation/named.js.map +1 -0
  444. package/es/common/inversify/binding.d.ts +18 -0
  445. package/es/common/inversify/binding.js +22 -0
  446. package/es/common/inversify/binding.js.map +1 -0
  447. package/es/common/inversify/container.d.ts +28 -0
  448. package/es/common/inversify/container.js +155 -0
  449. package/es/common/inversify/container.js.map +1 -0
  450. package/es/common/inversify/cotainer-module.d.ts +6 -0
  451. package/es/common/inversify/cotainer-module.js +8 -0
  452. package/es/common/inversify/cotainer-module.js.map +1 -0
  453. package/es/common/inversify/index.d.ts +7 -0
  454. package/es/common/inversify/index.js +14 -0
  455. package/es/common/inversify/index.js.map +1 -0
  456. package/es/common/inversify/interfaces.d.ts +218 -0
  457. package/es/common/inversify/interfaces.js +2 -0
  458. package/es/common/inversify/interfaces.js.map +1 -0
  459. package/es/common/inversify/literal_types.d.ts +5 -0
  460. package/es/common/inversify/literal_types.js +20 -0
  461. package/es/common/inversify/literal_types.js.map +1 -0
  462. package/es/common/inversify/meta-data.d.ts +6 -0
  463. package/es/common/inversify/meta-data.js +11 -0
  464. package/es/common/inversify/meta-data.js.map +1 -0
  465. package/es/common/inversify/metadata_keys.d.ts +12 -0
  466. package/es/common/inversify/metadata_keys.js +28 -0
  467. package/es/common/inversify/metadata_keys.js.map +1 -0
  468. package/es/common/inversify/metadata_reader.d.ts +6 -0
  469. package/es/common/inversify/metadata_reader.js +18 -0
  470. package/es/common/inversify/metadata_reader.js.map +1 -0
  471. package/es/common/inversify/syntax/binding_in_syntax.d.ts +10 -0
  472. package/es/common/inversify/syntax/binding_in_syntax.js +24 -0
  473. package/es/common/inversify/syntax/binding_in_syntax.js.map +1 -0
  474. package/es/common/inversify/syntax/binding_to_syntax.d.ts +12 -0
  475. package/es/common/inversify/syntax/binding_to_syntax.js +36 -0
  476. package/es/common/inversify/syntax/binding_to_syntax.js.map +1 -0
  477. package/es/common/inversify/syntax/constraint_helpers.d.ts +2 -0
  478. package/es/common/inversify/syntax/constraint_helpers.js +18 -0
  479. package/es/common/inversify/syntax/constraint_helpers.js.map +1 -0
  480. package/es/common/inversify-lite/container/container.js +2 -4
  481. package/es/common/inversify-lite/container/container.js.map +1 -1
  482. package/es/common/inversify-lite/index.d.ts +1 -8
  483. package/es/common/inversify-lite/index.js +1 -15
  484. package/es/common/inversify-lite/index.js.map +1 -1
  485. package/es/common/inversify-lite/interfaces/interfaces.d.ts +0 -2
  486. package/es/common/inversify-lite/interfaces/interfaces.js.map +1 -1
  487. package/es/common/inversify-lite/planning/queryable_string.d.ts +0 -2
  488. package/es/common/inversify-lite/planning/queryable_string.js +0 -10
  489. package/es/common/inversify-lite/planning/queryable_string.js.map +1 -1
  490. package/es/common/inversify-lite/resolution/resolver.js.map +1 -1
  491. package/es/common/segment/monotone.js +2 -2
  492. package/es/common/segment/monotone.js.map +1 -1
  493. package/es/common/shape/rect.js +2 -1
  494. package/es/common/shape/rect.js.map +1 -1
  495. package/es/common/sort.js +1 -2
  496. package/es/common/store.js +2 -1
  497. package/es/common/utils.d.ts +1 -0
  498. package/es/common/utils.js +8 -1
  499. package/es/common/utils.js.map +1 -1
  500. package/es/common/xml/OrderedObjParser.js +2 -2
  501. package/es/common/xml/OrderedObjParser.js.map +1 -1
  502. package/es/core/contributions/layerHandler/canvas2d-contribution.d.ts +2 -2
  503. package/es/core/contributions/layerHandler/canvas2d-contribution.js +5 -9
  504. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  505. package/es/core/contributions/layerHandler/empty-contribution.d.ts +2 -2
  506. package/es/core/contributions/layerHandler/empty-contribution.js +5 -9
  507. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  508. package/es/core/contributions/layerHandler/offscreen2d-contribution.d.ts +2 -2
  509. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +5 -9
  510. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  511. package/es/core/contributions/textMeasure/AtextMeasure.d.ts +14 -2
  512. package/es/core/contributions/textMeasure/AtextMeasure.js +99 -13
  513. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  514. package/es/core/contributions/textMeasure/layout.d.ts +2 -2
  515. package/es/core/contributions/textMeasure/layout.js +4 -4
  516. package/es/core/contributions/textMeasure/layout.js.map +1 -1
  517. package/es/core/contributions/textMeasure/modules.js +1 -1
  518. package/es/core/contributions/textMeasure/modules.js.map +1 -1
  519. package/es/core/core-modules.js +4 -6
  520. package/es/core/core-modules.js.map +1 -1
  521. package/es/core/global-module.js +2 -0
  522. package/es/core/global.d.ts +9 -0
  523. package/es/core/global.js +23 -4
  524. package/es/core/global.js.map +1 -1
  525. package/es/core/graphic-utils.d.ts +7 -4
  526. package/es/core/graphic-utils.js +20 -15
  527. package/es/core/graphic-utils.js.map +1 -1
  528. package/es/core/layer-service.d.ts +5 -2
  529. package/es/core/layer-service.js +18 -15
  530. package/es/core/layer-service.js.map +1 -1
  531. package/es/core/stage.d.ts +8 -4
  532. package/es/core/stage.js +47 -30
  533. package/es/core/stage.js.map +1 -1
  534. package/es/core/window.d.ts +2 -2
  535. package/es/core/window.js +8 -12
  536. package/es/core/window.js.map +1 -1
  537. package/es/env-check.d.ts +3 -0
  538. package/es/env-check.js +12 -0
  539. package/es/env-check.js.map +1 -0
  540. package/es/event/event-manager.d.ts +5 -1
  541. package/es/event/event-manager.js +32 -26
  542. package/es/event/event-manager.js.map +1 -1
  543. package/es/event/event-system.js +8 -6
  544. package/es/event/event-system.js.map +1 -1
  545. package/es/event/federated-event/base-event.d.ts +5 -6
  546. package/es/event/federated-event/base-event.js +15 -5
  547. package/es/event/federated-event/base-event.js.map +1 -1
  548. package/es/event/federated-event/mouse-event.d.ts +6 -6
  549. package/es/event/federated-event/mouse-event.js +16 -4
  550. package/es/event/federated-event/mouse-event.js.map +1 -1
  551. package/es/graphic/area.js +1 -0
  552. package/es/graphic/area.js.map +1 -1
  553. package/es/graphic/bounds.d.ts +2 -2
  554. package/es/graphic/bounds.js +6 -8
  555. package/es/graphic/bounds.js.map +1 -1
  556. package/es/graphic/builtin-symbol/index.d.ts +1 -0
  557. package/es/graphic/builtin-symbol/index.js +7 -0
  558. package/es/graphic/builtin-symbol/index.js.map +1 -1
  559. package/es/graphic/builtin-symbol/rect.d.ts +2 -1
  560. package/es/graphic/builtin-symbol/rect.js +9 -4
  561. package/es/graphic/builtin-symbol/rect.js.map +1 -1
  562. package/es/graphic/config.js +12 -4
  563. package/es/graphic/config.js.map +1 -1
  564. package/es/graphic/graphic-creator.d.ts +24 -36
  565. package/es/graphic/graphic-creator.js +14 -125
  566. package/es/graphic/graphic-creator.js.map +1 -1
  567. package/es/graphic/graphic-service/arc-contribution.d.ts +1 -5
  568. package/es/graphic/graphic-service/arc-contribution.js +0 -15
  569. package/es/graphic/graphic-service/arc-contribution.js.map +1 -1
  570. package/es/graphic/graphic-service/area-contribution.d.ts +1 -1
  571. package/es/graphic/graphic-service/area-contribution.js +2 -1
  572. package/es/graphic/graphic-service/area-contribution.js.map +1 -1
  573. package/es/graphic/graphic-service/circle-contribution.d.ts +1 -5
  574. package/es/graphic/graphic-service/circle-contribution.js +0 -15
  575. package/es/graphic/graphic-service/circle-contribution.js.map +1 -1
  576. package/es/graphic/graphic-service/common-contribution.js +2 -14
  577. package/es/graphic/graphic-service/common-contribution.js.map +1 -1
  578. package/es/graphic/graphic-service/graphic-module.js +1 -23
  579. package/es/graphic/graphic-service/graphic-module.js.map +1 -1
  580. package/es/graphic/graphic-service/graphic-service.d.ts +5 -9
  581. package/es/graphic/graphic-service/graphic-service.js +44 -34
  582. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  583. package/es/graphic/graphic-service/path-contribution.d.ts +1 -5
  584. package/es/graphic/graphic-service/path-contribution.js +0 -15
  585. package/es/graphic/graphic-service/path-contribution.js.map +1 -1
  586. package/es/graphic/graphic-service/rect-contribution.d.ts +1 -5
  587. package/es/graphic/graphic-service/rect-contribution.js +0 -15
  588. package/es/graphic/graphic-service/rect-contribution.js.map +1 -1
  589. package/es/graphic/graphic-service/symbol-contribution.d.ts +0 -1
  590. package/es/graphic/graphic-service/symbol-contribution.js +2 -16
  591. package/es/graphic/graphic-service/symbol-contribution.js.map +1 -1
  592. package/es/graphic/graphic.js +8 -6
  593. package/es/graphic/graphic.js.map +1 -1
  594. package/es/graphic/group.d.ts +1 -0
  595. package/es/graphic/group.js +8 -1
  596. package/es/graphic/group.js.map +1 -1
  597. package/es/graphic/index.d.ts +1 -0
  598. package/es/graphic/index.js +2 -0
  599. package/es/graphic/index.js.map +1 -1
  600. package/es/graphic/line.js +1 -0
  601. package/es/graphic/line.js.map +1 -1
  602. package/es/graphic/node-tree.js +2 -2
  603. package/es/graphic/node-tree.js.map +1 -1
  604. package/es/graphic/rect.d.ts +2 -3
  605. package/es/graphic/rect.js +3 -7
  606. package/es/graphic/rect.js.map +1 -1
  607. package/es/graphic/richtext/line.d.ts +1 -0
  608. package/es/graphic/richtext/line.js +6 -4
  609. package/es/graphic/richtext/line.js.map +1 -1
  610. package/es/graphic/richtext/paragraph.js +5 -2
  611. package/es/graphic/richtext/paragraph.js.map +1 -1
  612. package/es/graphic/richtext/utils.js +2 -1
  613. package/es/graphic/richtext/utils.js.map +1 -1
  614. package/es/graphic/richtext.d.ts +3 -3
  615. package/es/graphic/richtext.js +12 -3
  616. package/es/graphic/richtext.js.map +1 -1
  617. package/es/graphic/symbol.js +11 -10
  618. package/es/graphic/symbol.js.map +1 -1
  619. package/es/graphic/text.d.ts +1 -0
  620. package/es/graphic/text.js +94 -13
  621. package/es/graphic/text.js.map +1 -1
  622. package/es/graphic/theme.d.ts +4 -4
  623. package/es/graphic/theme.js +27 -28
  624. package/es/graphic/theme.js.map +1 -1
  625. package/es/graphic/tools.js +1 -1
  626. package/es/graphic/tools.js.map +1 -1
  627. package/es/graphic/wrap-text.js +6 -4
  628. package/es/graphic/wrap-text.js.map +1 -1
  629. package/es/index.d.ts +18 -0
  630. package/es/index.js +36 -0
  631. package/es/index.js.map +1 -1
  632. package/es/interface/allocator.d.ts +1 -0
  633. package/es/interface/allocator.js.map +1 -1
  634. package/es/interface/event.d.ts +15 -44
  635. package/es/interface/event.js.map +1 -1
  636. package/es/interface/global.d.ts +1 -0
  637. package/es/interface/global.js.map +1 -1
  638. package/es/interface/graphic/rect.d.ts +2 -0
  639. package/es/interface/graphic/rect.js.map +1 -1
  640. package/es/interface/graphic/richText.d.ts +1 -1
  641. package/es/interface/graphic/richText.js.map +1 -1
  642. package/es/interface/graphic/text.d.ts +5 -1
  643. package/es/interface/graphic/text.js.map +1 -1
  644. package/es/interface/graphic.d.ts +3 -2
  645. package/es/interface/graphic.js.map +1 -1
  646. package/es/interface/render.d.ts +2 -2
  647. package/es/interface/render.js.map +1 -1
  648. package/es/interface/stage.d.ts +8 -1
  649. package/es/interface/stage.js.map +1 -1
  650. package/es/interface/text.d.ts +2 -2
  651. package/es/interface/text.js.map +1 -1
  652. package/es/modules.d.ts +1 -2
  653. package/es/modules.js +0 -4
  654. package/es/modules.js.map +1 -1
  655. package/es/picker/global-picker-service.d.ts +2 -2
  656. package/es/picker/global-picker-service.js +5 -9
  657. package/es/picker/global-picker-service.js.map +1 -1
  658. package/es/picker/pick-interceptor.js +2 -1
  659. package/es/picker/pick-interceptor.js.map +1 -1
  660. package/es/picker/pick-modules.js +1 -4
  661. package/es/picker/pick-modules.js.map +1 -1
  662. package/es/picker/picker-service.d.ts +2 -2
  663. package/es/picker/picker-service.js +10 -6
  664. package/es/picker/picker-service.js.map +1 -1
  665. package/es/plugins/builtin-plugin/flex-layout-plugin.js +12 -6
  666. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  667. package/es/plugins/builtin-plugin/html-attribute-plugin.js +1 -1
  668. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  669. package/es/plugins/plugin-modules.js +1 -2
  670. package/es/plugins/plugin-modules.js.map +1 -1
  671. package/es/render/contributions/render/arc-module.d.ts +2 -0
  672. package/es/render/contributions/render/arc-module.js +21 -0
  673. package/es/render/contributions/render/arc-module.js.map +1 -0
  674. package/es/render/contributions/render/arc-render.js +3 -0
  675. package/es/render/contributions/render/arc-render.js.map +1 -1
  676. package/es/render/contributions/render/arc3d-module.d.ts +2 -0
  677. package/es/render/contributions/render/arc3d-module.js +13 -0
  678. package/es/render/contributions/render/arc3d-module.js.map +1 -0
  679. package/es/render/contributions/render/area-module.d.ts +2 -0
  680. package/es/render/contributions/render/area-module.js +23 -0
  681. package/es/render/contributions/render/area-module.js.map +1 -0
  682. package/es/render/contributions/render/area-render.d.ts +1 -0
  683. package/es/render/contributions/render/area-render.js +45 -5
  684. package/es/render/contributions/render/area-render.js.map +1 -1
  685. package/es/render/contributions/render/base-render.d.ts +1 -1
  686. package/es/render/contributions/render/base-render.js +15 -22
  687. package/es/render/contributions/render/base-render.js.map +1 -1
  688. package/es/render/contributions/render/circle-module.d.ts +2 -0
  689. package/es/render/contributions/render/circle-module.js +21 -0
  690. package/es/render/contributions/render/circle-module.js.map +1 -0
  691. package/es/render/contributions/render/circle-render.js +3 -0
  692. package/es/render/contributions/render/circle-render.js.map +1 -1
  693. package/es/render/contributions/render/contributions/arc-contribution-render.d.ts +3 -7
  694. package/es/render/contributions/render/contributions/arc-contribution-render.js +6 -32
  695. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  696. package/es/render/contributions/render/contributions/area-contribution-render.d.ts +3 -4
  697. package/es/render/contributions/render/contributions/area-contribution-render.js +5 -23
  698. package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  699. package/es/render/contributions/render/contributions/base-contribution-render.d.ts +4 -0
  700. package/es/render/contributions/render/contributions/base-contribution-render.js +21 -16
  701. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  702. package/es/render/contributions/render/contributions/circle-contribution-render.d.ts +3 -7
  703. package/es/render/contributions/render/contributions/circle-contribution-render.js +6 -32
  704. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  705. package/es/render/contributions/render/contributions/constants.d.ts +1 -0
  706. package/es/render/contributions/render/contributions/constants.js +2 -0
  707. package/es/render/contributions/render/contributions/constants.js.map +1 -1
  708. package/es/render/contributions/render/contributions/group-contribution-render.d.ts +1 -0
  709. package/es/render/contributions/render/contributions/group-contribution-render.js +5 -15
  710. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  711. package/es/render/contributions/render/contributions/image-contribution-render.d.ts +1 -0
  712. package/es/render/contributions/render/contributions/image-contribution-render.js +6 -17
  713. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  714. package/es/render/contributions/render/contributions/path-contribution-render.d.ts +2 -9
  715. package/es/render/contributions/render/contributions/path-contribution-render.js +3 -29
  716. package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  717. package/es/render/contributions/render/contributions/polygon-contribution-render.d.ts +2 -9
  718. package/es/render/contributions/render/contributions/polygon-contribution-render.js +3 -29
  719. package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  720. package/es/render/contributions/render/contributions/rect-contribution-render.d.ts +5 -7
  721. package/es/render/contributions/render/contributions/rect-contribution-render.js +19 -46
  722. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  723. package/es/render/contributions/render/contributions/symbol-contribution-render.d.ts +3 -7
  724. package/es/render/contributions/render/contributions/symbol-contribution-render.js +6 -24
  725. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  726. package/es/render/contributions/render/contributions/text-contribution-render.d.ts +8 -1
  727. package/es/render/contributions/render/contributions/text-contribution-render.js +24 -1
  728. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  729. package/es/render/contributions/render/draw-contribution.d.ts +7 -6
  730. package/es/render/contributions/render/draw-contribution.js +49 -29
  731. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  732. package/es/render/contributions/render/draw-interceptor.d.ts +7 -1
  733. package/es/render/contributions/render/draw-interceptor.js +42 -38
  734. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  735. package/es/render/contributions/render/glyph-module.d.ts +2 -0
  736. package/es/render/contributions/render/glyph-module.js +13 -0
  737. package/es/render/contributions/render/glyph-module.js.map +1 -0
  738. package/es/render/contributions/render/glyph-render.d.ts +1 -2
  739. package/es/render/contributions/render/glyph-render.js +12 -9
  740. package/es/render/contributions/render/glyph-render.js.map +1 -1
  741. package/es/render/contributions/render/group-render.js +4 -1
  742. package/es/render/contributions/render/group-render.js.map +1 -1
  743. package/es/render/contributions/render/image-module.d.ts +2 -0
  744. package/es/render/contributions/render/image-module.js +20 -0
  745. package/es/render/contributions/render/image-module.js.map +1 -0
  746. package/es/render/contributions/render/image-render.js +5 -2
  747. package/es/render/contributions/render/image-render.js.map +1 -1
  748. package/es/render/contributions/render/incremental-draw-contribution.d.ts +2 -6
  749. package/es/render/contributions/render/incremental-draw-contribution.js +5 -11
  750. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  751. package/es/render/contributions/render/line-module.d.ts +2 -0
  752. package/es/render/contributions/render/line-module.js +16 -0
  753. package/es/render/contributions/render/line-module.js.map +1 -0
  754. package/es/render/contributions/render/line-render.d.ts +1 -0
  755. package/es/render/contributions/render/line-render.js +21 -6
  756. package/es/render/contributions/render/line-render.js.map +1 -1
  757. package/es/render/contributions/render/module.js +8 -129
  758. package/es/render/contributions/render/module.js.map +1 -1
  759. package/es/render/contributions/render/path-module.d.ts +2 -0
  760. package/es/render/contributions/render/path-module.js +21 -0
  761. package/es/render/contributions/render/path-module.js.map +1 -0
  762. package/es/render/contributions/render/path-render.d.ts +2 -1
  763. package/es/render/contributions/render/path-render.js +8 -4
  764. package/es/render/contributions/render/path-render.js.map +1 -1
  765. package/es/render/contributions/render/polygon-module.d.ts +2 -0
  766. package/es/render/contributions/render/polygon-module.js +20 -0
  767. package/es/render/contributions/render/polygon-module.js.map +1 -0
  768. package/es/render/contributions/render/polygon-render.js +3 -0
  769. package/es/render/contributions/render/polygon-render.js.map +1 -1
  770. package/es/render/contributions/render/pyramid3d-module.d.ts +2 -0
  771. package/es/render/contributions/render/pyramid3d-module.js +13 -0
  772. package/es/render/contributions/render/pyramid3d-module.js.map +1 -0
  773. package/es/render/contributions/render/rect-module.d.ts +2 -0
  774. package/es/render/contributions/render/rect-module.js +21 -0
  775. package/es/render/contributions/render/rect-module.js.map +1 -0
  776. package/es/render/contributions/render/rect-render.d.ts +2 -1
  777. package/es/render/contributions/render/rect-render.js +11 -3
  778. package/es/render/contributions/render/rect-render.js.map +1 -1
  779. package/es/render/contributions/render/rect3d-module.d.ts +2 -0
  780. package/es/render/contributions/render/rect3d-module.js +13 -0
  781. package/es/render/contributions/render/rect3d-module.js.map +1 -0
  782. package/es/render/contributions/render/render-slector.d.ts +1 -4
  783. package/es/render/contributions/render/render-slector.js +0 -15
  784. package/es/render/contributions/render/render-slector.js.map +1 -1
  785. package/es/render/contributions/render/richtext-module.d.ts +2 -0
  786. package/es/render/contributions/render/richtext-module.js +13 -0
  787. package/es/render/contributions/render/richtext-module.js.map +1 -0
  788. package/es/render/contributions/render/richtext-render.d.ts +1 -0
  789. package/es/render/contributions/render/richtext-render.js +12 -6
  790. package/es/render/contributions/render/richtext-render.js.map +1 -1
  791. package/es/render/contributions/render/symbol-module.d.ts +2 -0
  792. package/es/render/contributions/render/symbol-module.js +21 -0
  793. package/es/render/contributions/render/symbol-module.js.map +1 -0
  794. package/es/render/contributions/render/symbol-render.js +23 -4
  795. package/es/render/contributions/render/symbol-render.js.map +1 -1
  796. package/es/render/contributions/render/text-module.d.ts +2 -0
  797. package/es/render/contributions/render/text-module.js +20 -0
  798. package/es/render/contributions/render/text-module.js.map +1 -0
  799. package/es/render/contributions/render/text-render.js +16 -10
  800. package/es/render/contributions/render/text-render.js.map +1 -1
  801. package/es/render/contributions/render/utils.js +2 -2
  802. package/es/render/contributions/render/utils.js.map +1 -1
  803. package/es/render/render-modules.js +1 -1
  804. package/es/render/render-modules.js.map +1 -1
  805. package/es/render/render-service.js +1 -1
  806. package/es/render/render-service.js.map +1 -1
  807. package/es/resource-loader/loader.js +1 -3
  808. package/es/resource-loader/loader.js.map +1 -1
  809. package/package.json +7 -3
  810. package/cjs/common/inversify-lite/annotation/post_construct.d.ts +0 -4
  811. package/cjs/common/inversify-lite/annotation/post_construct.js.map +0 -1
  812. package/es/common/inversify-lite/annotation/post_construct.d.ts +0 -4
  813. package/es/common/inversify-lite/annotation/post_construct.js +0 -10
  814. package/es/common/inversify-lite/annotation/post_construct.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify-lite/resolution/resolver.ts"],"names":[],"mappings":"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","file":"resolver.js","sourcesContent":["import * as ERROR_MSGS from '../constants/error_msgs';\nimport { BindingTypeEnum } from '../constants/literal_types';\nimport type { interfaces } from '../interfaces/interfaces';\n// import { getBindingDictionary } from '../planning/planner';\nimport { saveToScope, tryGetFromScope } from '../scope/scope';\n// import { isPromise } from '../utils/async';\nimport { getFactoryDetails, ensureFullyBound } from '../utils/binding_utils';\nimport { tryAndThrowErrorIfStackOverflow } from '../utils/exceptions';\nimport { resolveInstance } from './instantiation';\n\nconst _resolveRequest =\n <T>(requestScope: interfaces.RequestScope) =>\n (request: interfaces.Request): undefined | T | Promise<T> | (T | Promise<T>)[] => {\n request.parentContext.setCurrentRequest(request);\n\n const bindings = request.bindings;\n const childRequests = request.childRequests;\n\n const targetIsAnArray = request.target && request.target.isArray();\n\n const targetParentIsNotAnArray =\n !request.parentRequest ||\n !request.parentRequest.target ||\n !request.target ||\n !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);\n\n if (targetIsAnArray && targetParentIsNotAnArray) {\n // Create an array instead of creating an instance\n return childRequests.map((childRequest: interfaces.Request) => {\n const _f = _resolveRequest(requestScope);\n return _f(childRequest) as T | Promise<T>;\n });\n }\n if (request.target.isOptional() && bindings.length === 0) {\n return undefined;\n }\n\n const binding = bindings[0];\n\n return _resolveBinding<T>(requestScope, request, binding as unknown as interfaces.Binding<T>);\n };\n\nconst _resolveFactoryFromBinding = <T>(binding: interfaces.Binding<T>, context: interfaces.Context): T | Promise<T> => {\n const factoryDetails = getFactoryDetails(binding);\n return tryAndThrowErrorIfStackOverflow(\n () => (factoryDetails.factory as interfaces.FactoryTypeFunction<T>).bind(binding)(context),\n () =>\n new Error(\n ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(\n factoryDetails.factoryType,\n context.currentRequest.serviceIdentifier.toString()\n )\n )\n );\n};\n\nconst _getResolvedFromBinding = <T = unknown>(\n requestScope: interfaces.RequestScope,\n request: interfaces.Request,\n binding: interfaces.Binding<T>\n): T | Promise<T> => {\n let result: T | Promise<T> | undefined;\n const childRequests = request.childRequests;\n\n ensureFullyBound(binding);\n\n switch (binding.type) {\n case BindingTypeEnum.ConstantValue:\n case BindingTypeEnum.Function:\n result = binding.cache as T | Promise<T>;\n break;\n case BindingTypeEnum.Constructor:\n result = binding.implementationType as T;\n break;\n case BindingTypeEnum.Instance:\n result = resolveInstance<T>(\n binding,\n binding.implementationType as interfaces.Newable<T>,\n childRequests,\n _resolveRequest<T>(requestScope)\n );\n break;\n default:\n result = _resolveFactoryFromBinding(binding, request.parentContext);\n }\n\n return result as T | Promise<T>;\n};\n\nconst _resolveInScope = <T>(\n requestScope: interfaces.RequestScope,\n binding: interfaces.Binding<T>,\n resolveFromBinding: () => T | Promise<T>\n): T | Promise<T> => {\n let result = tryGetFromScope<T>(requestScope, binding);\n if (result !== null) {\n return result;\n }\n result = resolveFromBinding();\n saveToScope(requestScope, binding, result);\n return result;\n};\n\nconst _resolveBinding = <T>(\n requestScope: interfaces.RequestScope,\n request: interfaces.Request,\n binding: interfaces.Binding<T>\n): T | Promise<T> => {\n return _resolveInScope<T>(requestScope, binding, () => {\n const result = _getResolvedFromBinding(requestScope, request, binding);\n // if (isPromise(result)) {\n // result = result.then(resolved => _onActivation(request, binding, resolved));\n // } else {\n // result = _onActivation<T>(request, binding, result);\n // }\n return result;\n });\n};\n\n// function _onActivation<T>(request: interfaces.Request, binding: interfaces.Binding<T>, resolved: T): T | Promise<T> {\n// let result = _bindingActivation(request.parentContext, binding, resolved);\n\n// const containersIterator = _getContainersIterator(request.parentContext.container);\n\n// let container: interfaces.Container;\n// let containersIteratorResult = containersIterator.next();\n\n// do {\n// container = containersIteratorResult.value;\n// // const context = request.parentContext;\n// // const serviceIdentifier = request.serviceIdentifier;\n// // const activationsIterator = _getContainerActivationsForService(container, serviceIdentifier);\n\n// // if (isPromise(result)) {\n// // result = _activateContainerAsync<T>(\n// // activationsIterator as Iterator<interfaces.BindingActivation<T>>,\n// // context,\n// // result\n// // );\n// // } else {\n// // result = _activateContainer<T>(activationsIterator as Iterator<interfaces.BindingActivation<T>>, context, result);\n// // }\n\n// containersIteratorResult = containersIterator.next();\n\n// // make sure if we are currently on the container that owns the binding, not to keep looping down to child containers\n// } while (\n// containersIteratorResult.done !== true &&\n// !getBindingDictionary(container).hasKey(request.serviceIdentifier)\n// );\n\n// return result;\n// }\n\n// const _bindingActivation = <T>(\n// context: interfaces.Context,\n// binding: interfaces.Binding<T>,\n// previousResult: T\n// ): T | Promise<T> => {\n// let result: T | Promise<T>;\n\n// // use activation handler if available\n// if (typeof binding.onActivation === 'function') {\n// result = binding.onActivation(context, previousResult);\n// } else {\n// result = previousResult;\n// }\n\n// return result;\n// };\n\n// const _activateContainer = <T>(\n// activationsIterator: Iterator<interfaces.BindingActivation<T>>,\n// context: interfaces.Context,\n// result: T\n// ): T | Promise<T> => {\n// let activation = activationsIterator.next();\n\n// while (!activation.done) {\n// result = activation.value(context, result) as T;\n\n// if (isPromise<T>(result)) {\n// return _activateContainerAsync(activationsIterator, context, result);\n// }\n\n// activation = activationsIterator.next();\n// }\n\n// return result;\n// };\n\n// const _activateContainerAsync = async <T>(\n// activationsIterator: Iterator<interfaces.BindingActivation<T>>,\n// context: interfaces.Context,\n// resultPromise: Promise<T>\n// ): Promise<T> => {\n// let result = await resultPromise;\n// let activation = activationsIterator.next();\n\n// while (!activation.done) {\n// result = await activation.value(context, result);\n\n// activation = activationsIterator.next();\n// }\n\n// return result;\n// };\n\n// const _getContainerActivationsForService = <T>(\n// container: interfaces.Container,\n// serviceIdentifier: interfaces.ServiceIdentifier<T>\n// ) => {\n// // smell accessing _activations, but similar pattern is done in planner.getBindingDictionary()\n// const activations = (\n// container as unknown as { _activations: interfaces.Lookup<interfaces.BindingActivation<unknown>> }\n// )._activations;\n\n// return activations.hasKey(serviceIdentifier) ? activations.get(serviceIdentifier).values() : [].values();\n// };\n\n// const _getContainersIterator = (container: interfaces.Container): Iterator<interfaces.Container> => {\n// const containersStack: interfaces.Container[] = [container];\n\n// let parent = container.parent;\n\n// while (parent !== null) {\n// containersStack.push(parent);\n\n// parent = parent.parent;\n// }\n\n// const getNextContainer: () => IteratorResult<interfaces.Container> = () => {\n// const nextContainer = containersStack.pop();\n\n// if (nextContainer !== undefined) {\n// return { done: false, value: nextContainer };\n// } else {\n// return { done: true, value: undefined };\n// }\n// };\n\n// const containersIterator: Iterator<interfaces.Container> = {\n// next: getNextContainer\n// };\n\n// return containersIterator;\n// };\n\nfunction resolve<T>(context: interfaces.Context): T | Promise<T> | (T | Promise<T>)[] {\n const _f = _resolveRequest<T>(context.plan.rootRequest.requestScope as interfaces.RequestScope);\n return _f(context.plan.rootRequest) as T | Promise<T> | (T | Promise<T>)[];\n}\n\nexport { resolve };\n"]}
1
+ {"version":3,"sources":["../src/common/inversify-lite/resolution/resolver.ts"],"names":[],"mappings":"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","file":"resolver.js","sourcesContent":["import * as ERROR_MSGS from '../constants/error_msgs';\nimport { BindingTypeEnum } from '../constants/literal_types';\nimport type { interfaces } from '../interfaces/interfaces';\n// import { getBindingDictionary } from '../planning/planner';\nimport { saveToScope, tryGetFromScope } from '../scope/scope';\n// import { isPromise } from '../utils/async';\nimport { getFactoryDetails, ensureFullyBound } from '../utils/binding_utils';\nimport { tryAndThrowErrorIfStackOverflow } from '../utils/exceptions';\nimport { resolveInstance } from './instantiation';\n\nconst _resolveRequest =\n <T>(requestScope: interfaces.RequestScope) =>\n (request: interfaces.Request): undefined | T | Promise<T> | (T | Promise<T>)[] => {\n request.parentContext.setCurrentRequest(request);\n\n const bindings = request.bindings;\n const childRequests = request.childRequests;\n\n const targetIsAnArray = request.target && request.target.isArray();\n\n const targetParentIsNotAnArray =\n !request.parentRequest ||\n !request.parentRequest.target ||\n !request.target ||\n !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);\n\n if (targetIsAnArray && targetParentIsNotAnArray) {\n // Create an array instead of creating an instance\n return childRequests.map((childRequest: interfaces.Request) => {\n const _f = _resolveRequest(requestScope);\n return _f(childRequest) as T | Promise<T>;\n });\n }\n if (request.target.isOptional() && bindings.length === 0) {\n return undefined;\n }\n\n const binding = bindings[0];\n\n return _resolveBinding<T>(requestScope, request, binding as unknown as interfaces.Binding<T>);\n };\n\nconst _resolveFactoryFromBinding = <T>(binding: interfaces.Binding<T>, context: interfaces.Context): T | Promise<T> => {\n // console.count('_resolveFactoryFromBinding');\n const factoryDetails = getFactoryDetails(binding);\n return tryAndThrowErrorIfStackOverflow(\n () => (factoryDetails.factory as interfaces.FactoryTypeFunction<T>).bind(binding)(context),\n () =>\n new Error(\n ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(\n factoryDetails.factoryType,\n context.currentRequest.serviceIdentifier.toString()\n )\n )\n );\n};\n\nconst _getResolvedFromBinding = <T = unknown>(\n requestScope: interfaces.RequestScope,\n request: interfaces.Request,\n binding: interfaces.Binding<T>\n): T | Promise<T> => {\n // console.count('_getResolvedFromBinding');\n // console.log('_getResolvedFromBinding', binding);\n // if (!(window as any).map) {\n // (window as any).map = new Map();\n // }\n // const d = (window as any).map.get(binding.serviceIdentifier) || [];\n // (window as any).map.set(binding.serviceIdentifier, [...d, binding]);\n let result: T | Promise<T> | undefined;\n const childRequests = request.childRequests;\n\n ensureFullyBound(binding);\n\n switch (binding.type) {\n case BindingTypeEnum.ConstantValue:\n case BindingTypeEnum.Function:\n result = binding.cache as T | Promise<T>;\n break;\n case BindingTypeEnum.Constructor:\n result = binding.implementationType as T;\n break;\n case BindingTypeEnum.Instance:\n result = resolveInstance<T>(\n binding,\n binding.implementationType as interfaces.Newable<T>,\n childRequests,\n _resolveRequest<T>(requestScope)\n );\n break;\n default:\n result = _resolveFactoryFromBinding(binding, request.parentContext);\n }\n\n return result as T | Promise<T>;\n};\n\nconst _resolveInScope = <T>(\n requestScope: interfaces.RequestScope,\n binding: interfaces.Binding<T>,\n resolveFromBinding: () => T | Promise<T>\n): T | Promise<T> => {\n let result = tryGetFromScope<T>(requestScope, binding);\n if (result !== null) {\n return result;\n }\n result = resolveFromBinding();\n saveToScope(requestScope, binding, result);\n return result;\n};\n\nconst _resolveBinding = <T>(\n requestScope: interfaces.RequestScope,\n request: interfaces.Request,\n binding: interfaces.Binding<T>\n): T | Promise<T> => {\n return _resolveInScope<T>(requestScope, binding, () => {\n const result = _getResolvedFromBinding(requestScope, request, binding);\n // if (isPromise(result)) {\n // result = result.then(resolved => _onActivation(request, binding, resolved));\n // } else {\n // result = _onActivation<T>(request, binding, result);\n // }\n return result;\n });\n};\n\n// function _onActivation<T>(request: interfaces.Request, binding: interfaces.Binding<T>, resolved: T): T | Promise<T> {\n// let result = _bindingActivation(request.parentContext, binding, resolved);\n\n// const containersIterator = _getContainersIterator(request.parentContext.container);\n\n// let container: interfaces.Container;\n// let containersIteratorResult = containersIterator.next();\n\n// do {\n// container = containersIteratorResult.value;\n// // const context = request.parentContext;\n// // const serviceIdentifier = request.serviceIdentifier;\n// // const activationsIterator = _getContainerActivationsForService(container, serviceIdentifier);\n\n// // if (isPromise(result)) {\n// // result = _activateContainerAsync<T>(\n// // activationsIterator as Iterator<interfaces.BindingActivation<T>>,\n// // context,\n// // result\n// // );\n// // } else {\n// // result = _activateContainer<T>(activationsIterator as Iterator<interfaces.BindingActivation<T>>, context, result);\n// // }\n\n// containersIteratorResult = containersIterator.next();\n\n// // make sure if we are currently on the container that owns the binding, not to keep looping down to child containers\n// } while (\n// containersIteratorResult.done !== true &&\n// !getBindingDictionary(container).hasKey(request.serviceIdentifier)\n// );\n\n// return result;\n// }\n\n// const _bindingActivation = <T>(\n// context: interfaces.Context,\n// binding: interfaces.Binding<T>,\n// previousResult: T\n// ): T | Promise<T> => {\n// let result: T | Promise<T>;\n\n// // use activation handler if available\n// if (typeof binding.onActivation === 'function') {\n// result = binding.onActivation(context, previousResult);\n// } else {\n// result = previousResult;\n// }\n\n// return result;\n// };\n\n// const _activateContainer = <T>(\n// activationsIterator: Iterator<interfaces.BindingActivation<T>>,\n// context: interfaces.Context,\n// result: T\n// ): T | Promise<T> => {\n// let activation = activationsIterator.next();\n\n// while (!activation.done) {\n// result = activation.value(context, result) as T;\n\n// if (isPromise<T>(result)) {\n// return _activateContainerAsync(activationsIterator, context, result);\n// }\n\n// activation = activationsIterator.next();\n// }\n\n// return result;\n// };\n\n// const _activateContainerAsync = async <T>(\n// activationsIterator: Iterator<interfaces.BindingActivation<T>>,\n// context: interfaces.Context,\n// resultPromise: Promise<T>\n// ): Promise<T> => {\n// let result = await resultPromise;\n// let activation = activationsIterator.next();\n\n// while (!activation.done) {\n// result = await activation.value(context, result);\n\n// activation = activationsIterator.next();\n// }\n\n// return result;\n// };\n\n// const _getContainerActivationsForService = <T>(\n// container: interfaces.Container,\n// serviceIdentifier: interfaces.ServiceIdentifier<T>\n// ) => {\n// // smell accessing _activations, but similar pattern is done in planner.getBindingDictionary()\n// const activations = (\n// container as unknown as { _activations: interfaces.Lookup<interfaces.BindingActivation<unknown>> }\n// )._activations;\n\n// return activations.hasKey(serviceIdentifier) ? activations.get(serviceIdentifier).values() : [].values();\n// };\n\n// const _getContainersIterator = (container: interfaces.Container): Iterator<interfaces.Container> => {\n// const containersStack: interfaces.Container[] = [container];\n\n// let parent = container.parent;\n\n// while (parent !== null) {\n// containersStack.push(parent);\n\n// parent = parent.parent;\n// }\n\n// const getNextContainer: () => IteratorResult<interfaces.Container> = () => {\n// const nextContainer = containersStack.pop();\n\n// if (nextContainer !== undefined) {\n// return { done: false, value: nextContainer };\n// } else {\n// return { done: true, value: undefined };\n// }\n// };\n\n// const containersIterator: Iterator<interfaces.Container> = {\n// next: getNextContainer\n// };\n\n// return containersIterator;\n// };\n\nfunction resolve<T>(context: interfaces.Context): T | Promise<T> | (T | Promise<T>)[] {\n const _f = _resolveRequest<T>(context.plan.rootRequest.requestScope as interfaces.RequestScope);\n return _f(context.plan.rootRequest) as T | Promise<T> | (T | Promise<T>)[];\n}\n\nexport { resolve };\n"]}
@@ -43,11 +43,11 @@ export class MonotoneX {
43
43
  lineEnd() {
44
44
  switch (this._point) {
45
45
  case 2:
46
- this.context.lineTo(this._x1, this._y1, !1 !== this._lastDefined2, this.lastPoint1);
46
+ this.context.lineTo(this._x1, this._y1, !1 !== this._lastDefined1 && !1 !== this._lastDefined2, this.lastPoint1);
47
47
  break;
48
48
 
49
49
  case 3:
50
- point(this, this._t0, slope2(this, this._t0), !1 !== this._lastDefined2, this.lastPoint1);
50
+ point(this, this._t0, slope2(this, this._t0), !1 !== this._lastDefined1 && !1 !== this._lastDefined2, this.lastPoint1);
51
51
  }
52
52
  (this._line || 0 !== this._line && 1 === this._point) && this.context.closePath(),
53
53
  this._line = 1 - this._line;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/monotone.ts"],"names":[],"mappings":"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","file":"monotone.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { abs } from '@visactor/vutils';\nimport { genLinearSegments } from './linear';\nimport { genCurveSegments } from './common';\nimport { ReflectSegContext, SegContext } from '../seg-context';\nimport { Direction } from '../enums';\nimport type { ICurvedSegment, IGenSegmentParams, ISegPath2D } from '../../interface/curve';\n\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n// 基于d3-shape重构\n// https://github.com/d3/d3-shape/blob/main/src/curve/monotone.js\nfunction sign(x: number): number {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(curveClass: MonotoneX | MonotoneY, x2: number, y2: number) {\n const h0 = curveClass._x1 - curveClass._x0;\n const h1 = x2 - curveClass._x1;\n const s0 = (curveClass._y1 - curveClass._y0) / (h0 || Number(h1 < 0 && -0));\n const s1 = (y2 - curveClass._y1) / (h1 || Number(h0 < 0 && -0));\n const p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(curveClass: MonotoneX | MonotoneY, t: number) {\n const h = curveClass._x1 - curveClass._x0;\n return h ? ((3 * (curveClass._y1 - curveClass._y0)) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(curveClass: MonotoneX | MonotoneY, t0: number, t1: number, defined: boolean, p: IPointLike) {\n const x0 = curveClass._x0;\n const y0 = curveClass._y0;\n const x1 = curveClass._x1;\n const y1 = curveClass._y1;\n const dx = (x1 - x0) / 3;\n curveClass.context.bezierCurveTo(\n x0 + dx,\n y0 + dx * t0,\n x1 - dx,\n y1 - dx * t1,\n x1,\n y1,\n defined,\n curveClass.lastPoint1\n );\n}\n\nexport class MonotoneX implements ICurvedSegment {\n protected _lastDefined1?: boolean;\n protected _lastDefined2?: boolean;\n declare context: ISegPath2D;\n declare _t0: number;\n\n protected startPoint?: IPointLike;\n lastPoint0?: IPointLike;\n lastPoint1?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n this.context = context;\n this.startPoint = startPoint;\n }\n _x: number;\n _y: number;\n _x0: number;\n _x1: number;\n _y0: number;\n _y1: number;\n _line: number;\n _point: number;\n\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;\n this._point = 0;\n this.startPoint && this.point(this.startPoint);\n }\n lineEnd() {\n switch (this._point) {\n case 2:\n this.context.lineTo(this._x1, this._y1, this._lastDefined2 !== false, this.lastPoint1);\n break;\n case 3:\n point(this, this._t0, slope2(this, this._t0), this._lastDefined2 !== false, this.lastPoint1);\n break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) {\n this.context.closePath();\n }\n this._line = 1 - this._line;\n }\n point(p: IPointLike): void {\n let t1 = NaN;\n const x = p.x;\n const y = p.y;\n if (x === this._x1 && y === this._y1) {\n return;\n } // Ignore coincident points.\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line\n ? this.context.lineTo(x, y, this._lastDefined1 !== false && this._lastDefined2 !== false, p)\n : this.context.moveTo(x, y, p);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n point(\n this,\n slope2(this, (t1 = slope3(this, x, y))),\n t1,\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n p\n );\n break;\n default:\n point(\n this,\n this._t0,\n (t1 = slope3(this, x, y)),\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n p\n );\n break;\n }\n\n (this._x0 = this._x1), (this._x1 = x);\n (this._y0 = this._y1), (this._y1 = y);\n this._t0 = t1;\n this._lastDefined1 = this._lastDefined2;\n this._lastDefined2 = p.defined !== false;\n this.lastPoint0 = this.lastPoint1;\n this.lastPoint1 = p;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport class MonotoneY extends MonotoneX {\n declare context: ISegPath2D;\n\n protected declare startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super(context, startPoint);\n }\n\n point(p: IPointLike): void {\n return super.point({ y: p.x, x: p.y, defined: p.defined } as any);\n }\n}\n\nexport function genMonotpneXTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneXSegments(points: IPointLike[], params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n if (points.length < 3 - Number(!!startPoint)) {\n return genLinearSegments(points, params);\n }\n const segContext = new SegContext(\n 'monotoneX',\n direction ??\n (abs(points[points.length - 1].x - points[0].x) > abs(points[points.length - 1].y - points[0].y)\n ? Direction.ROW\n : Direction.COLUMN)\n );\n const monotoneX = new MonotoneX(segContext, startPoint);\n\n genMonotpneXTypeSegments(monotoneX, points);\n\n return segContext;\n}\n\nexport function genMonotpneYTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneYSegments(points: IPointLike[], params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n if (points.length < 3 - Number(!!startPoint)) {\n return genLinearSegments(points, params);\n }\n const segContext = new ReflectSegContext(\n 'monotoneY',\n direction ??\n (abs(points[points.length - 1].x - points[0].x) > abs(points[points.length - 1].y - points[0].y)\n ? Direction.ROW\n : Direction.COLUMN)\n );\n const monotoneY = new MonotoneY(segContext, startPoint);\n\n genMonotpneYTypeSegments(monotoneY, points);\n\n return segContext;\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/monotone.ts"],"names":[],"mappings":"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","file":"monotone.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { abs } from '@visactor/vutils';\nimport { genLinearSegments } from './linear';\nimport { genCurveSegments } from './common';\nimport { ReflectSegContext, SegContext } from '../seg-context';\nimport { Direction } from '../enums';\nimport type { ICurvedSegment, IGenSegmentParams, ISegPath2D } from '../../interface/curve';\n\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n// 基于d3-shape重构\n// https://github.com/d3/d3-shape/blob/main/src/curve/monotone.js\nfunction sign(x: number): number {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(curveClass: MonotoneX | MonotoneY, x2: number, y2: number) {\n const h0 = curveClass._x1 - curveClass._x0;\n const h1 = x2 - curveClass._x1;\n const s0 = (curveClass._y1 - curveClass._y0) / (h0 || Number(h1 < 0 && -0));\n const s1 = (y2 - curveClass._y1) / (h1 || Number(h0 < 0 && -0));\n const p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(curveClass: MonotoneX | MonotoneY, t: number) {\n const h = curveClass._x1 - curveClass._x0;\n return h ? ((3 * (curveClass._y1 - curveClass._y0)) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(curveClass: MonotoneX | MonotoneY, t0: number, t1: number, defined: boolean, p: IPointLike) {\n const x0 = curveClass._x0;\n const y0 = curveClass._y0;\n const x1 = curveClass._x1;\n const y1 = curveClass._y1;\n const dx = (x1 - x0) / 3;\n curveClass.context.bezierCurveTo(\n x0 + dx,\n y0 + dx * t0,\n x1 - dx,\n y1 - dx * t1,\n x1,\n y1,\n defined,\n curveClass.lastPoint1\n );\n}\n\nexport class MonotoneX implements ICurvedSegment {\n protected _lastDefined1?: boolean;\n protected _lastDefined2?: boolean;\n declare context: ISegPath2D;\n declare _t0: number;\n\n protected startPoint?: IPointLike;\n lastPoint0?: IPointLike;\n lastPoint1?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n this.context = context;\n this.startPoint = startPoint;\n }\n _x: number;\n _y: number;\n _x0: number;\n _x1: number;\n _y0: number;\n _y1: number;\n _line: number;\n _point: number;\n\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;\n this._point = 0;\n this.startPoint && this.point(this.startPoint);\n }\n lineEnd() {\n switch (this._point) {\n case 2:\n this.context.lineTo(\n this._x1,\n this._y1,\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n this.lastPoint1\n );\n break;\n case 3:\n point(\n this,\n this._t0,\n slope2(this, this._t0),\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n this.lastPoint1\n );\n break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) {\n this.context.closePath();\n }\n this._line = 1 - this._line;\n }\n point(p: IPointLike): void {\n let t1 = NaN;\n const x = p.x;\n const y = p.y;\n if (x === this._x1 && y === this._y1) {\n return;\n } // Ignore coincident points.\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line\n ? this.context.lineTo(x, y, this._lastDefined1 !== false && this._lastDefined2 !== false, p)\n : this.context.moveTo(x, y, p);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n point(\n this,\n slope2(this, (t1 = slope3(this, x, y))),\n t1,\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n p\n );\n break;\n default:\n point(\n this,\n this._t0,\n (t1 = slope3(this, x, y)),\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n p\n );\n break;\n }\n\n (this._x0 = this._x1), (this._x1 = x);\n (this._y0 = this._y1), (this._y1 = y);\n this._t0 = t1;\n this._lastDefined1 = this._lastDefined2;\n this._lastDefined2 = p.defined !== false;\n this.lastPoint0 = this.lastPoint1;\n this.lastPoint1 = p;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport class MonotoneY extends MonotoneX {\n declare context: ISegPath2D;\n\n protected declare startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super(context, startPoint);\n }\n\n point(p: IPointLike): void {\n return super.point({ y: p.x, x: p.y, defined: p.defined } as any);\n }\n}\n\nexport function genMonotpneXTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneXSegments(points: IPointLike[], params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n if (points.length < 3 - Number(!!startPoint)) {\n return genLinearSegments(points, params);\n }\n const segContext = new SegContext(\n 'monotoneX',\n direction ??\n (abs(points[points.length - 1].x - points[0].x) > abs(points[points.length - 1].y - points[0].y)\n ? Direction.ROW\n : Direction.COLUMN)\n );\n const monotoneX = new MonotoneX(segContext, startPoint);\n\n genMonotpneXTypeSegments(monotoneX, points);\n\n return segContext;\n}\n\nexport function genMonotpneYTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneYSegments(points: IPointLike[], params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n if (points.length < 3 - Number(!!startPoint)) {\n return genLinearSegments(points, params);\n }\n const segContext = new ReflectSegContext(\n 'monotoneY',\n direction ??\n (abs(points[points.length - 1].x - points[0].x) > abs(points[points.length - 1].y - points[0].y)\n ? Direction.ROW\n : Direction.COLUMN)\n );\n const monotoneY = new MonotoneY(segContext, startPoint);\n\n genMonotpneYTypeSegments(monotoneY, points);\n\n return segContext;\n}\n"]}
@@ -4,7 +4,8 @@ const halfPi = pi / 2;
4
4
 
5
5
  export function createRectPath(path, x, y, width, height, rectCornerRadius) {
6
6
  let cornerRadius;
7
- if (isNumber(rectCornerRadius, !0)) cornerRadius = [ rectCornerRadius, rectCornerRadius, rectCornerRadius, rectCornerRadius ]; else if (Array.isArray(rectCornerRadius)) {
7
+ if (width < 0 && (x += width, width = -width), height < 0 && (y += height, height = -height),
8
+ isNumber(rectCornerRadius, !0)) cornerRadius = [ rectCornerRadius, rectCornerRadius, rectCornerRadius, rectCornerRadius ]; else if (Array.isArray(rectCornerRadius)) {
8
9
  const cornerRadiusArr = rectCornerRadius;
9
10
  switch (cornerRadiusArr.length) {
10
11
  case 0:
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/shape/rect.ts"],"names":[],"mappings":"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","file":"rect.js","sourcesContent":["import type { vec2, vec4 } from '@visactor/vutils';\nimport { isNumber, arrayEqual, pi } from '@visactor/vutils';\nimport type { IContext2d, ICustomPath2D } from '../../interface';\n\nconst halfPi = pi / 2;\n\nexport function createRectPath(\n path: ICustomPath2D | IContext2d,\n x: number,\n y: number,\n width: number,\n height: number,\n rectCornerRadius: number | number[]\n) {\n // 匹配cornerRadius\n let cornerRadius: vec4;\n if (isNumber(rectCornerRadius, true)) {\n cornerRadius = [\n <number>rectCornerRadius,\n <number>rectCornerRadius,\n <number>rectCornerRadius,\n <number>rectCornerRadius\n ];\n } else if (Array.isArray(rectCornerRadius)) {\n const cornerRadiusArr: number[] = rectCornerRadius as number[];\n switch (cornerRadiusArr.length) {\n case 0:\n cornerRadius = [0, 0, 0, 0];\n break;\n case 1:\n cornerRadius = [cornerRadiusArr[0], cornerRadiusArr[0], cornerRadiusArr[0], cornerRadiusArr[0]];\n break;\n case 2:\n case 3:\n cornerRadius = [cornerRadiusArr[0], cornerRadiusArr[1], cornerRadiusArr[0], cornerRadiusArr[1]];\n break;\n default:\n cornerRadius = cornerRadiusArr.slice(0, 5) as [number, number, number, number];\n break;\n }\n } else {\n cornerRadius = [0, 0, 0, 0];\n }\n\n // 当宽度小于0 或者 cornerRadius 极小时,不绘制 cornerRadius\n if (\n width < 0 ||\n Math.abs(cornerRadius[0]) + Math.abs(cornerRadius[1]) + Math.abs(cornerRadius[2]) + Math.abs(cornerRadius[3]) <\n 1e-12\n ) {\n return path.rect(x, y, width, height);\n }\n\n const [leftTop, rightTop, rightBottom, leftBottom]: [vec2, vec2, vec2, vec2] = [\n [x, y],\n [x + width, y],\n [x + width, y + height],\n [x, y + height]\n ];\n //\n // *(leftTopPoint1)******************(rightTopPoint1)\n // (leftTopPoint2) (rightTopPoint2)\n // * *\n // * *\n // (leftBottomPoint2) (rightBottomPoint2)\n // *(leftBottomPoint1)***************(rightBottomPoint1)\n //\n const maxCornerRadius = Math.min(width / 2, height / 2);\n const _cornerRadius: vec4 = [\n Math.min(maxCornerRadius, cornerRadius[0]),\n Math.min(maxCornerRadius, cornerRadius[1]),\n Math.min(maxCornerRadius, cornerRadius[2]),\n Math.min(maxCornerRadius, cornerRadius[3])\n ];\n const leftTopPoint1: vec2 = [leftTop[0] + _cornerRadius[0], leftTop[1]];\n const leftTopPoint2: vec2 = [leftTop[0], leftTop[1] + _cornerRadius[0]];\n const rightTopPoint1: vec2 = [rightTop[0] - _cornerRadius[1], rightTop[1]];\n const rightTopPoint2: vec2 = [rightTop[0], rightTop[1] + _cornerRadius[1]];\n const rightBottomPoint1: vec2 = [rightBottom[0] - _cornerRadius[2], rightBottom[1]];\n const rightBottomPoint2: vec2 = [rightBottom[0], rightBottom[1] - _cornerRadius[2]];\n const leftBottomPoint1: vec2 = [leftBottom[0] + _cornerRadius[3], leftBottom[1]];\n const leftBottomPoint2: vec2 = [leftBottom[0], leftBottom[1] - _cornerRadius[3]];\n\n path.moveTo(leftTopPoint1[0], leftTopPoint1[1]);\n path.lineTo(rightTopPoint1[0], rightTopPoint1[1]);\n if (!arrayEqual(rightTopPoint1, rightTopPoint2)) {\n const centerX = rightTopPoint1[0];\n const centerY = rightTopPoint1[1] + _cornerRadius[1];\n path.arc(\n centerX,\n centerY,\n _cornerRadius[1],\n -halfPi,\n 0,\n // Math.atan2(rightTopPoint1[1] - centerY, rightTopPoint1[0] - centerX),\n // Math.atan2(rightTopPoint2[1] - centerY, rightTopPoint2[0] - centerX),\n false\n );\n // path.arcTo(rightTop[0], rightTop[1], rightTopPoint2[0], rightTopPoint2[1], _cornerRadius[1]);\n }\n\n path.lineTo(rightBottomPoint2[0], rightBottomPoint2[1]);\n if (!arrayEqual(rightBottomPoint1, rightBottomPoint2)) {\n const centerX = rightBottomPoint2[0] - _cornerRadius[2];\n const centerY = rightBottomPoint2[1];\n path.arc(\n centerX,\n centerY,\n _cornerRadius[2],\n 0,\n halfPi,\n // Math.atan2(rightBottomPoint2[1] - centerY, rightBottomPoint2[0] - centerX),\n // Math.atan2(rightBottomPoint1[1] - centerY, rightBottomPoint1[0] - centerX),\n false\n );\n // path.arcTo(rightBottom[0], rightBottom[1], rightBottomPoint1[0], rightBottomPoint1[1], _cornerRadius[2]);\n }\n\n path.lineTo(leftBottomPoint1[0], leftBottomPoint1[1]);\n if (!arrayEqual(leftBottomPoint1, leftBottomPoint2)) {\n const centerX = leftBottomPoint1[0];\n const centerY = leftBottomPoint1[1] - _cornerRadius[3];\n path.arc(\n centerX,\n centerY,\n _cornerRadius[3],\n halfPi,\n pi,\n // Math.atan2(leftBottomPoint1[1] - centerY, leftBottomPoint1[0] - centerX),\n // Math.atan2(leftBottomPoint2[1] - centerY, leftBottomPoint2[0] - centerX),\n false\n );\n // path.arcTo(leftBottom[0], leftBottom[1], leftBottomPoint2[0], leftBottomPoint2[1], _cornerRadius[3]);\n }\n\n path.lineTo(leftTopPoint2[0], leftTopPoint2[1]);\n if (!arrayEqual(leftTopPoint1, leftTopPoint2)) {\n const centerX = leftTopPoint1[0];\n const centerY = leftTopPoint1[1] + _cornerRadius[0];\n path.arc(\n centerX,\n centerY,\n _cornerRadius[0],\n pi,\n pi + halfPi,\n // Math.atan2(leftTopPoint2[1] - centerY, leftTopPoint2[0] - centerX),\n // Math.atan2(leftTopPoint1[1] - centerY, leftTopPoint1[0] - centerX) + Math.PI * 2,\n false\n );\n // path.arcTo(leftTop[0], leftTop[1], leftTopPoint1[0], leftTopPoint1[1], _cornerRadius[0]);\n }\n path.closePath();\n return path;\n}\n"]}
1
+ {"version":3,"sources":["../src/common/shape/rect.ts"],"names":[],"mappings":"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","file":"rect.js","sourcesContent":["import type { vec2, vec4 } from '@visactor/vutils';\nimport { isNumber, arrayEqual, pi } from '@visactor/vutils';\nimport type { IContext2d, ICustomPath2D } from '../../interface';\n\nconst halfPi = pi / 2;\n\nexport function createRectPath(\n path: ICustomPath2D | IContext2d,\n x: number,\n y: number,\n width: number,\n height: number,\n rectCornerRadius: number | number[]\n) {\n if (width < 0) {\n x += width;\n width = -width;\n }\n if (height < 0) {\n y += height;\n height = -height;\n }\n // 匹配cornerRadius\n let cornerRadius: vec4;\n if (isNumber(rectCornerRadius, true)) {\n cornerRadius = [\n <number>rectCornerRadius,\n <number>rectCornerRadius,\n <number>rectCornerRadius,\n <number>rectCornerRadius\n ];\n } else if (Array.isArray(rectCornerRadius)) {\n const cornerRadiusArr: number[] = rectCornerRadius as number[];\n switch (cornerRadiusArr.length) {\n case 0:\n cornerRadius = [0, 0, 0, 0];\n break;\n case 1:\n cornerRadius = [cornerRadiusArr[0], cornerRadiusArr[0], cornerRadiusArr[0], cornerRadiusArr[0]];\n break;\n case 2:\n case 3:\n cornerRadius = [cornerRadiusArr[0], cornerRadiusArr[1], cornerRadiusArr[0], cornerRadiusArr[1]];\n break;\n default:\n cornerRadius = cornerRadiusArr.slice(0, 5) as [number, number, number, number];\n break;\n }\n } else {\n cornerRadius = [0, 0, 0, 0];\n }\n\n // 当宽度小于0 或者 cornerRadius 极小时,不绘制 cornerRadius\n if (\n width < 0 ||\n Math.abs(cornerRadius[0]) + Math.abs(cornerRadius[1]) + Math.abs(cornerRadius[2]) + Math.abs(cornerRadius[3]) <\n 1e-12\n ) {\n return path.rect(x, y, width, height);\n }\n\n const [leftTop, rightTop, rightBottom, leftBottom]: [vec2, vec2, vec2, vec2] = [\n [x, y],\n [x + width, y],\n [x + width, y + height],\n [x, y + height]\n ];\n //\n // *(leftTopPoint1)******************(rightTopPoint1)\n // (leftTopPoint2) (rightTopPoint2)\n // * *\n // * *\n // (leftBottomPoint2) (rightBottomPoint2)\n // *(leftBottomPoint1)***************(rightBottomPoint1)\n //\n const maxCornerRadius = Math.min(width / 2, height / 2);\n const _cornerRadius: vec4 = [\n Math.min(maxCornerRadius, cornerRadius[0]),\n Math.min(maxCornerRadius, cornerRadius[1]),\n Math.min(maxCornerRadius, cornerRadius[2]),\n Math.min(maxCornerRadius, cornerRadius[3])\n ];\n const leftTopPoint1: vec2 = [leftTop[0] + _cornerRadius[0], leftTop[1]];\n const leftTopPoint2: vec2 = [leftTop[0], leftTop[1] + _cornerRadius[0]];\n const rightTopPoint1: vec2 = [rightTop[0] - _cornerRadius[1], rightTop[1]];\n const rightTopPoint2: vec2 = [rightTop[0], rightTop[1] + _cornerRadius[1]];\n const rightBottomPoint1: vec2 = [rightBottom[0] - _cornerRadius[2], rightBottom[1]];\n const rightBottomPoint2: vec2 = [rightBottom[0], rightBottom[1] - _cornerRadius[2]];\n const leftBottomPoint1: vec2 = [leftBottom[0] + _cornerRadius[3], leftBottom[1]];\n const leftBottomPoint2: vec2 = [leftBottom[0], leftBottom[1] - _cornerRadius[3]];\n\n path.moveTo(leftTopPoint1[0], leftTopPoint1[1]);\n path.lineTo(rightTopPoint1[0], rightTopPoint1[1]);\n if (!arrayEqual(rightTopPoint1, rightTopPoint2)) {\n const centerX = rightTopPoint1[0];\n const centerY = rightTopPoint1[1] + _cornerRadius[1];\n path.arc(\n centerX,\n centerY,\n _cornerRadius[1],\n -halfPi,\n 0,\n // Math.atan2(rightTopPoint1[1] - centerY, rightTopPoint1[0] - centerX),\n // Math.atan2(rightTopPoint2[1] - centerY, rightTopPoint2[0] - centerX),\n false\n );\n // path.arcTo(rightTop[0], rightTop[1], rightTopPoint2[0], rightTopPoint2[1], _cornerRadius[1]);\n }\n\n path.lineTo(rightBottomPoint2[0], rightBottomPoint2[1]);\n if (!arrayEqual(rightBottomPoint1, rightBottomPoint2)) {\n const centerX = rightBottomPoint2[0] - _cornerRadius[2];\n const centerY = rightBottomPoint2[1];\n path.arc(\n centerX,\n centerY,\n _cornerRadius[2],\n 0,\n halfPi,\n // Math.atan2(rightBottomPoint2[1] - centerY, rightBottomPoint2[0] - centerX),\n // Math.atan2(rightBottomPoint1[1] - centerY, rightBottomPoint1[0] - centerX),\n false\n );\n // path.arcTo(rightBottom[0], rightBottom[1], rightBottomPoint1[0], rightBottomPoint1[1], _cornerRadius[2]);\n }\n\n path.lineTo(leftBottomPoint1[0], leftBottomPoint1[1]);\n if (!arrayEqual(leftBottomPoint1, leftBottomPoint2)) {\n const centerX = leftBottomPoint1[0];\n const centerY = leftBottomPoint1[1] - _cornerRadius[3];\n path.arc(\n centerX,\n centerY,\n _cornerRadius[3],\n halfPi,\n pi,\n // Math.atan2(leftBottomPoint1[1] - centerY, leftBottomPoint1[0] - centerX),\n // Math.atan2(leftBottomPoint2[1] - centerY, leftBottomPoint2[0] - centerX),\n false\n );\n // path.arcTo(leftBottom[0], leftBottom[1], leftBottomPoint2[0], leftBottomPoint2[1], _cornerRadius[3]);\n }\n\n path.lineTo(leftTopPoint2[0], leftTopPoint2[1]);\n if (!arrayEqual(leftTopPoint1, leftTopPoint2)) {\n const centerX = leftTopPoint1[0];\n const centerY = leftTopPoint1[1] + _cornerRadius[0];\n path.arc(\n centerX,\n centerY,\n _cornerRadius[0],\n pi,\n pi + halfPi,\n // Math.atan2(leftTopPoint2[1] - centerY, leftTopPoint2[0] - centerX),\n // Math.atan2(leftTopPoint1[1] - centerY, leftTopPoint1[0] - centerX) + Math.PI * 2,\n false\n );\n // path.arcTo(leftTop[0], leftTop[1], leftTopPoint1[0], leftTopPoint1[1], _cornerRadius[0]);\n }\n path.closePath();\n return path;\n}\n"]}
package/es/common/sort.js CHANGED
@@ -90,5 +90,4 @@ export function findNextGraphic(graphic, id, defaultZIndex, reverse = !1) {
90
90
  } else graphic.forEachChildren((item => next ? (result = item, !0) : (item._uid === id && (next = !0),
91
91
  !1)), reverse);
92
92
  return result;
93
- }
94
- //# sourceMappingURL=sort.js.map
93
+ }
@@ -1 +1,2 @@
1
- class StageStore {}
1
+ class StageStore {}
2
+ //# sourceMappingURL=store.js.map
@@ -38,3 +38,4 @@ export declare class RafBasedSTO {
38
38
  appendDuration(d: number): void;
39
39
  }
40
40
  export declare const rafBasedSto: RafBasedSTO;
41
+ export declare const calculateLineHeight: (lineHeight: string | number, fontSize: number) => number;
@@ -1,4 +1,4 @@
1
- import { isBoolean, halfPi, pi, pi2, sin, cos, isArray, pointAt, Point } from "@visactor/vutils";
1
+ import { isBoolean, halfPi, pi, pi2, sin, cos, isArray, pointAt, Point, isString } from "@visactor/vutils";
2
2
 
3
3
  export var Edge;
4
4
 
@@ -140,4 +140,11 @@ export class RafBasedSTO {
140
140
  RafBasedSTO.TimeOut = 1e3 / 60;
141
141
 
142
142
  export const rafBasedSto = new RafBasedSTO;
143
+
144
+ export const calculateLineHeight = (lineHeight, fontSize) => {
145
+ if (isString(lineHeight) && "%" === lineHeight[lineHeight.length - 1]) {
146
+ return fontSize * (Number.parseFloat(lineHeight.substring(0, lineHeight.length - 1)) / 100);
147
+ }
148
+ return lineHeight;
149
+ };
143
150
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { IBounds, IPointLike } from '@visactor/vutils';\nimport { isBoolean, isNumber, halfPi, pi, pi2, max, min, sin, cos, isArray, pointAt, Point } from '@visactor/vutils';\nimport type { IGraphicAttribute, IStrokeStyle } from '../interface';\n\n// todo: 迁移到@visactor/vutils\n\nexport enum Edge {\n Top = 0b000001,\n Right = 0b000010,\n Bottom = 0b000100,\n Left = 0b001000,\n\n ALL = 0b001111\n}\n\n// 公共的stroke数组,避免大量数组生成\nconst _strokeVec4: [boolean | string, boolean | string, boolean | string, boolean | string] = [\n false,\n false,\n false,\n false\n];\n/**\n * 解析stroke配置\n * @param stroke\n * @returns\n */\nexport const parseStroke = (\n stroke: IStrokeStyle['stroke']\n): {\n isFullStroke: boolean;\n stroke: (boolean | string)[];\n} => {\n let isFullStroke: boolean = true;\n // 首先判断\n if (isBoolean(stroke, true)) {\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = stroke as boolean;\n isFullStroke &&= !!(_strokeVec4[i] ?? true);\n }\n isFullStroke = stroke as boolean;\n } else if (Array.isArray(stroke)) {\n // array\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = !!stroke[i];\n isFullStroke &&= !!_strokeVec4[i];\n }\n } else {\n _strokeVec4[0] = false;\n _strokeVec4[1] = false;\n _strokeVec4[2] = false;\n _strokeVec4[3] = false;\n }\n\n return {\n isFullStroke,\n stroke: _strokeVec4\n };\n};\n\n// 公共的padding数组,避免大量数组生成\nconst _paddingVec4: [number, number, number, number] = [0, 0, 0, 0];\n/**\n * 解析padding配置\n * @param padding\n * @returns\n */\nexport const parsePadding = (\n padding: IGraphicAttribute['boundsPadding']\n): number | [number, number, number, number] => {\n if (!padding) {\n return 0;\n }\n if (isArray(padding)) {\n if (padding.length === 0) {\n return 0;\n } else if (padding.length === 1) {\n return padding[0];\n } else if (padding.length === 2) {\n _paddingVec4[0] = padding[0];\n _paddingVec4[2] = padding[0];\n _paddingVec4[1] = padding[1];\n _paddingVec4[3] = padding[1];\n return _paddingVec4;\n }\n // 不考虑三个数的情况,三个数是用户传错了\n return padding as [number, number, number, number];\n }\n\n return padding as number;\n};\n\nconst _coords: [IPointLike, IPointLike, IPointLike, IPointLike] = [\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n];\nconst indexList = [1, 2, 3, 0, 1, 2, 3, 0];\n/**\n * 计算circle一段弧线的bounds\n * @param startAngle 小于2pi\n * @param endAngle\n * @param radius\n * @param bounds\n */\nexport function circleBounds(startAngle: number, endAngle: number, radius: number, bounds: IBounds) {\n // startAngle小于2pi\n // endAngle - startAngle小于2pi\n while (startAngle >= pi2) {\n startAngle -= pi2;\n }\n while (startAngle < 0) {\n startAngle += pi2;\n }\n while (startAngle > endAngle) {\n endAngle += pi2;\n }\n _coords[0].x = radius;\n // _coords[0].y = 0;\n // _coords[1].x = 0;\n _coords[1].y = radius;\n _coords[2].x = -radius;\n // _coords[2].y = -radius;\n // _coords[3].x = 0;\n _coords[3].y = -radius;\n\n // (0,pi/2], (pi/2, pi], (pi, pi/2*3], (pi/2*3, 2pi]\n // 1, 2, 3, 0\n const startIdx = Math.ceil(startAngle / halfPi) % 4;\n const endIdx = Math.ceil(endAngle / halfPi) % 4;\n // console.log(startAngle, endAngle, cos(startAngle), sin(startAngle), cos(endAngle), sin(endAngle));\n bounds.add(cos(startAngle) * radius, sin(startAngle) * radius);\n bounds.add(cos(endAngle) * radius, sin(endAngle) * radius);\n if (startIdx !== endIdx || endAngle - startAngle > pi) {\n let match = false;\n for (let i = 0; i < indexList.length; i++) {\n if (!match && startIdx === indexList[i]) {\n match = true;\n const p = _coords[startIdx];\n bounds.add(p.x, p.y);\n continue;\n } else if (match && endIdx === indexList[i]) {\n break;\n }\n if (match) {\n const p = _coords[indexList[i]];\n bounds.add(p.x, p.y);\n }\n }\n }\n // const delta = Math.floor((endAngle - startAngle) / halfPi);\n // for (let i = 0; i < delta; i++) {\n // const p = _coords[(startIdx + i) % 4];\n // bounds.add(p.x, p.y);\n // }\n\n // // 计算y1, y2\n // const y2 = halfPi >= startAngle && halfPi <= endAngle ? radius : max(sin(startAngle), sin(endAngle)) * radius;\n // const y1 =\n // halfPi + pi >= startAngle && halfPi + pi <= endAngle ? -radius : min(sin(startAngle), sin(endAngle)) * radius;\n // const x2 = pi2 >= startAngle && pi2 <= endAngle ? radius : max(cos(startAngle), cos(endAngle)) * radius;\n // const x1 = pi >= startAngle && pi <= endAngle ? -radius : min(cos(startAngle), cos(endAngle)) * radius;\n\n // // bounds.set(x1, y1, x2, y2);\n // bounds.add(x1, y1);\n // bounds.add(x2, y2);\n}\n\n/**\n * 比较两个点数组是否相同\n * @param pointsA 数组A\n * @param pointsB 数组B\n */\nexport function pointsEqual(pointsA: IPointLike[] | IPointLike, pointsB: IPointLike[] | IPointLike): boolean {\n if (!pointsA || !pointsB) {\n return false;\n } // 需要传入pointsA和pointsB\n if (Array.isArray(pointsA) && Array.isArray(pointsB)) {\n // 如果pointsA和pointsB是数组\n if (pointsA.length !== pointsB.length) {\n return false;\n }\n return pointsA.every((point, index) => pointEqual(point, pointsB[index]));\n }\n if (!Number.isNaN((pointsA as IPointLike).x + (pointsA as IPointLike).y)) {\n // 如果pointA是IPoint(防止参数是undefined)\n return pointEqual(pointsA as IPointLike, pointsB as IPointLike);\n }\n return false;\n}\n\n/**\n * 比较两个点是否相同\n * @param pointA 点A\n * @param pointB 点B\n */\nexport function pointEqual(pointA: IPointLike, pointB: IPointLike): boolean {\n return (\n pointA.x === pointB.x &&\n pointA.y === pointB.y &&\n pointA.x1 === pointB.x1 &&\n pointA.y1 === pointB.y1 &&\n pointA.defined === pointB.defined\n );\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolation(pointA: IPointLike, pointB: IPointLike, ratio: number): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n const point = new Point(x as number, y as number, x1, y1);\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolationHighPerformance(\n pointA: IPointLike,\n pointB: IPointLike,\n ratio: number,\n point: IPointLike\n): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n // const point = new Point(x as number, y as number, x1, y1);\n point.x = x as number;\n point.y = y as number;\n point.x1 = x1;\n point.y1 = y1;\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 点数组插值\n * @param pointsA 点数组A\n * @param pointsB 点数组B\n * @param ratio 比例\n */\nexport function pointsInterpolation(\n pointsA: IPointLike[] | IPointLike,\n pointsB: IPointLike[] | IPointLike,\n ratio: number\n): IPointLike[] {\n if (!pointsA || !pointsB) {\n return [];\n } // 需要传入pointsA和pointsB\n if (!Array.isArray(pointsA)) {\n pointsA = [pointsA];\n }\n if (!Array.isArray(pointsB)) {\n pointsB = [pointsB];\n }\n\n let points: IPointLike[] = [];\n if (pointsA.length > pointsB.length) {\n // 如果变短了,那么后面点的直接clip\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsB.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n } else {\n // 如果变长了,加上后面的点\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsA.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n }\n return points;\n}\n\nexport const transformKeys = [\n 'x',\n 'y',\n 'dx',\n 'dy',\n 'scaleX',\n 'scaleY',\n 'angle',\n 'anchor',\n 'postMatrix',\n 'scrollX',\n 'scrollY'\n];\nexport const isTransformKey = (key: string) => {\n return transformKeys.includes(key);\n};\n\nexport function getAttributeFromDefaultAttrList(attr: Record<string, any> | Record<string, any>[], key: string) {\n if (isArray(attr)) {\n let val;\n for (let i = 0; i < attr.length && val === undefined; i++) {\n val = attr[i][key];\n }\n return val;\n }\n return attr[key];\n}\n\nexport class RafBasedSTO {\n static TimeOut = 1000 / 60;\n durations: number[];\n timeout: number;\n lastDate: number;\n durationsListThreshold: number;\n\n constructor() {\n this.durations = [];\n this.timeout = RafBasedSTO.TimeOut;\n this.lastDate = 0;\n this.durationsListThreshold = 30;\n }\n\n call(cb: FrameRequestCallback) {\n this.lastDate = Date.now();\n return setTimeout(\n () => {\n this.appendDuration(Date.now() - this.lastDate);\n cb(0);\n },\n this.timeout,\n true\n );\n }\n\n clear(h: number) {\n clearTimeout(h);\n }\n\n appendDuration(d: number) {\n this.durations.push(d);\n if (this.durations.length > this.durationsListThreshold) {\n this.durations.shift();\n }\n // 最多60fps, 最少30fps\n this.timeout = Math.min(\n Math.max(this.durations.reduce((a, b) => a + b, 0) / this.durations.length, 1000 / 60),\n 1000 / 30\n );\n }\n}\n\nexport const rafBasedSto = new RafBasedSTO();\n"]}
1
+ {"version":3,"sources":["../src/common/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { IBounds, IPointLike } from '@visactor/vutils';\nimport { isBoolean, halfPi, pi, pi2, sin, cos, isArray, pointAt, Point, isString } from '@visactor/vutils';\nimport type { IGraphicAttribute, IStrokeStyle } from '../interface';\n\n// todo: 迁移到@visactor/vutils\n\nexport enum Edge {\n Top = 0b000001,\n Right = 0b000010,\n Bottom = 0b000100,\n Left = 0b001000,\n\n ALL = 0b001111\n}\n\n// 公共的stroke数组,避免大量数组生成\nconst _strokeVec4: [boolean | string, boolean | string, boolean | string, boolean | string] = [\n false,\n false,\n false,\n false\n];\n/**\n * 解析stroke配置\n * @param stroke\n * @returns\n */\nexport const parseStroke = (\n stroke: IStrokeStyle['stroke']\n): {\n isFullStroke: boolean;\n stroke: (boolean | string)[];\n} => {\n let isFullStroke: boolean = true;\n // 首先判断\n if (isBoolean(stroke, true)) {\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = stroke as boolean;\n isFullStroke &&= !!(_strokeVec4[i] ?? true);\n }\n isFullStroke = stroke as boolean;\n } else if (Array.isArray(stroke)) {\n // array\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = !!stroke[i];\n isFullStroke &&= !!_strokeVec4[i];\n }\n } else {\n _strokeVec4[0] = false;\n _strokeVec4[1] = false;\n _strokeVec4[2] = false;\n _strokeVec4[3] = false;\n }\n\n return {\n isFullStroke,\n stroke: _strokeVec4\n };\n};\n\n// 公共的padding数组,避免大量数组生成\nconst _paddingVec4: [number, number, number, number] = [0, 0, 0, 0];\n/**\n * 解析padding配置\n * @param padding\n * @returns\n */\nexport const parsePadding = (\n padding: IGraphicAttribute['boundsPadding']\n): number | [number, number, number, number] => {\n if (!padding) {\n return 0;\n }\n if (isArray(padding)) {\n if (padding.length === 0) {\n return 0;\n } else if (padding.length === 1) {\n return padding[0];\n } else if (padding.length === 2) {\n _paddingVec4[0] = padding[0];\n _paddingVec4[2] = padding[0];\n _paddingVec4[1] = padding[1];\n _paddingVec4[3] = padding[1];\n return _paddingVec4;\n }\n // 不考虑三个数的情况,三个数是用户传错了\n return padding as [number, number, number, number];\n }\n\n return padding as number;\n};\n\nconst _coords: [IPointLike, IPointLike, IPointLike, IPointLike] = [\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n];\nconst indexList = [1, 2, 3, 0, 1, 2, 3, 0];\n/**\n * 计算circle一段弧线的bounds\n * @param startAngle 小于2pi\n * @param endAngle\n * @param radius\n * @param bounds\n */\nexport function circleBounds(startAngle: number, endAngle: number, radius: number, bounds: IBounds) {\n // startAngle小于2pi\n // endAngle - startAngle小于2pi\n while (startAngle >= pi2) {\n startAngle -= pi2;\n }\n while (startAngle < 0) {\n startAngle += pi2;\n }\n while (startAngle > endAngle) {\n endAngle += pi2;\n }\n _coords[0].x = radius;\n // _coords[0].y = 0;\n // _coords[1].x = 0;\n _coords[1].y = radius;\n _coords[2].x = -radius;\n // _coords[2].y = -radius;\n // _coords[3].x = 0;\n _coords[3].y = -radius;\n\n // (0,pi/2], (pi/2, pi], (pi, pi/2*3], (pi/2*3, 2pi]\n // 1, 2, 3, 0\n const startIdx = Math.ceil(startAngle / halfPi) % 4;\n const endIdx = Math.ceil(endAngle / halfPi) % 4;\n // console.log(startAngle, endAngle, cos(startAngle), sin(startAngle), cos(endAngle), sin(endAngle));\n bounds.add(cos(startAngle) * radius, sin(startAngle) * radius);\n bounds.add(cos(endAngle) * radius, sin(endAngle) * radius);\n if (startIdx !== endIdx || endAngle - startAngle > pi) {\n let match = false;\n for (let i = 0; i < indexList.length; i++) {\n if (!match && startIdx === indexList[i]) {\n match = true;\n const p = _coords[startIdx];\n bounds.add(p.x, p.y);\n continue;\n } else if (match && endIdx === indexList[i]) {\n break;\n }\n if (match) {\n const p = _coords[indexList[i]];\n bounds.add(p.x, p.y);\n }\n }\n }\n // const delta = Math.floor((endAngle - startAngle) / halfPi);\n // for (let i = 0; i < delta; i++) {\n // const p = _coords[(startIdx + i) % 4];\n // bounds.add(p.x, p.y);\n // }\n\n // // 计算y1, y2\n // const y2 = halfPi >= startAngle && halfPi <= endAngle ? radius : max(sin(startAngle), sin(endAngle)) * radius;\n // const y1 =\n // halfPi + pi >= startAngle && halfPi + pi <= endAngle ? -radius : min(sin(startAngle), sin(endAngle)) * radius;\n // const x2 = pi2 >= startAngle && pi2 <= endAngle ? radius : max(cos(startAngle), cos(endAngle)) * radius;\n // const x1 = pi >= startAngle && pi <= endAngle ? -radius : min(cos(startAngle), cos(endAngle)) * radius;\n\n // // bounds.set(x1, y1, x2, y2);\n // bounds.add(x1, y1);\n // bounds.add(x2, y2);\n}\n\n/**\n * 比较两个点数组是否相同\n * @param pointsA 数组A\n * @param pointsB 数组B\n */\nexport function pointsEqual(pointsA: IPointLike[] | IPointLike, pointsB: IPointLike[] | IPointLike): boolean {\n if (!pointsA || !pointsB) {\n return false;\n } // 需要传入pointsA和pointsB\n if (Array.isArray(pointsA) && Array.isArray(pointsB)) {\n // 如果pointsA和pointsB是数组\n if (pointsA.length !== pointsB.length) {\n return false;\n }\n return pointsA.every((point, index) => pointEqual(point, pointsB[index]));\n }\n if (!Number.isNaN((pointsA as IPointLike).x + (pointsA as IPointLike).y)) {\n // 如果pointA是IPoint(防止参数是undefined)\n return pointEqual(pointsA as IPointLike, pointsB as IPointLike);\n }\n return false;\n}\n\n/**\n * 比较两个点是否相同\n * @param pointA 点A\n * @param pointB 点B\n */\nexport function pointEqual(pointA: IPointLike, pointB: IPointLike): boolean {\n return (\n pointA.x === pointB.x &&\n pointA.y === pointB.y &&\n pointA.x1 === pointB.x1 &&\n pointA.y1 === pointB.y1 &&\n pointA.defined === pointB.defined\n );\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolation(pointA: IPointLike, pointB: IPointLike, ratio: number): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n const point = new Point(x as number, y as number, x1, y1);\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolationHighPerformance(\n pointA: IPointLike,\n pointB: IPointLike,\n ratio: number,\n point: IPointLike\n): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n // const point = new Point(x as number, y as number, x1, y1);\n point.x = x as number;\n point.y = y as number;\n point.x1 = x1;\n point.y1 = y1;\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 点数组插值\n * @param pointsA 点数组A\n * @param pointsB 点数组B\n * @param ratio 比例\n */\nexport function pointsInterpolation(\n pointsA: IPointLike[] | IPointLike,\n pointsB: IPointLike[] | IPointLike,\n ratio: number\n): IPointLike[] {\n if (!pointsA || !pointsB) {\n return [];\n } // 需要传入pointsA和pointsB\n if (!Array.isArray(pointsA)) {\n pointsA = [pointsA];\n }\n if (!Array.isArray(pointsB)) {\n pointsB = [pointsB];\n }\n\n let points: IPointLike[] = [];\n if (pointsA.length > pointsB.length) {\n // 如果变短了,那么后面点的直接clip\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsB.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n } else {\n // 如果变长了,加上后面的点\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsA.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n }\n return points;\n}\n\nexport const transformKeys = [\n 'x',\n 'y',\n 'dx',\n 'dy',\n 'scaleX',\n 'scaleY',\n 'angle',\n 'anchor',\n 'postMatrix',\n 'scrollX',\n 'scrollY'\n];\nexport const isTransformKey = (key: string) => {\n return transformKeys.includes(key);\n};\n\nexport function getAttributeFromDefaultAttrList(attr: Record<string, any> | Record<string, any>[], key: string) {\n if (isArray(attr)) {\n let val;\n for (let i = 0; i < attr.length && val === undefined; i++) {\n val = attr[i][key];\n }\n return val;\n }\n return attr[key];\n}\n\nexport class RafBasedSTO {\n static TimeOut = 1000 / 60;\n durations: number[];\n timeout: number;\n lastDate: number;\n durationsListThreshold: number;\n\n constructor() {\n this.durations = [];\n this.timeout = RafBasedSTO.TimeOut;\n this.lastDate = 0;\n this.durationsListThreshold = 30;\n }\n\n call(cb: FrameRequestCallback) {\n this.lastDate = Date.now();\n return setTimeout(\n () => {\n this.appendDuration(Date.now() - this.lastDate);\n cb(0);\n },\n this.timeout,\n true\n );\n }\n\n clear(h: number) {\n clearTimeout(h);\n }\n\n appendDuration(d: number) {\n this.durations.push(d);\n if (this.durations.length > this.durationsListThreshold) {\n this.durations.shift();\n }\n // 最多60fps, 最少30fps\n this.timeout = Math.min(\n Math.max(this.durations.reduce((a, b) => a + b, 0) / this.durations.length, 1000 / 60),\n 1000 / 30\n );\n }\n}\n\nexport const rafBasedSto = new RafBasedSTO();\n\nexport const calculateLineHeight = (lineHeight: string | number, fontSize: number): number => {\n if (isString(lineHeight) && lineHeight[lineHeight.length - 1] === '%') {\n const scale = Number.parseFloat(lineHeight.substring(0, lineHeight.length - 1)) / 100;\n return fontSize * scale;\n }\n return lineHeight as number;\n};\n"]}
@@ -92,8 +92,8 @@ export class OrderedObjParser {
92
92
  for (let i = 0; i < xmlData.length; i++) {
93
93
  if ("<" === xmlData[i]) if ("/" === xmlData[i + 1]) {
94
94
  const closeIndex = findClosingIndex(xmlData, ">", i, "Closing Tag is not closed."), propIndex = jPath.lastIndexOf(".");
95
- jPath = jPath.substring(0, propIndex), currentNode = this.tagsNodeStack.pop(), textData = "",
96
- i = closeIndex;
95
+ jPath = jPath.substring(0, propIndex), currentNode = this.tagsNodeStack.pop(), currentNode && currentNode.child && textData && currentNode.child[currentNode.child.length - 1][":@"] && (currentNode.child[currentNode.child.length - 1][":@"].text = textData),
96
+ textData = "", i = closeIndex;
97
97
  } else if ("?" === xmlData[i + 1]) {
98
98
  i = readTagExp(xmlData, i, !1, "?>").closeIndex + 1;
99
99
  } else if ("!--" === xmlData.substr(i + 1, 3)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/xml/OrderedObjParser.ts"],"names":[],"mappings":"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","file":"OrderedObjParser.js","sourcesContent":["// 参考fast-xml-parser\n// https://github.com/NaturalIntelligence/fast-xml-parser\n/**\n * MIT License\n\nCopyright (c) 2017 Amit Kumar Gupta\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n */\nimport type { X2jOptions } from './type';\nimport { getAllMatches } from './utils';\n\nclass XmlNode {\n declare tagname: string;\n declare child: any[];\n\n constructor(tagname: string) {\n this.tagname = tagname;\n this.child = []; //nested tags, text, cdata, comments in order\n this[':@'] = {}; //attributes map\n }\n add(key: string, val: string) {\n // this.child.push( {name : key, val: val, isCdata: isCdata });\n if (key === '__proto__') {\n key = '#__proto__';\n }\n this.child.push({ [key]: val });\n }\n addChild(node: XmlNode) {\n if (node.tagname === '__proto__') {\n node.tagname = '#__proto__';\n }\n if (node[':@'] && Object.keys(node[':@']).length > 0) {\n this.child.push({ [node.tagname]: node.child, [':@']: node[':@'] });\n } else {\n this.child.push({ [node.tagname]: node.child });\n }\n }\n}\n\nfunction findClosingIndex(xmlData: string, str: string, i: number, errMsg: string) {\n const closingIndex = xmlData.indexOf(str, i);\n if (closingIndex === -1) {\n throw new Error(errMsg);\n } else {\n return closingIndex + str.length - 1;\n }\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData\n * @param {number} i starting index\n * @returns\n */\nfunction tagExpWithClosingIndex(xmlData: string, i: number, closingChar = '>') {\n let attrBoundary;\n let tagExp = '';\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) {\n attrBoundary = '';\n } //reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if (closingChar[1]) {\n if (xmlData[index + 1] === closingChar[1]) {\n return {\n data: tagExp,\n index: index\n };\n }\n } else {\n return {\n data: tagExp,\n index: index\n };\n }\n } else if (ch === '\\t') {\n ch = ' ';\n }\n tagExp += ch;\n }\n}\n\nfunction readTagExp(xmlData: string, i: number, removeNSPrefix: boolean, closingChar = '>') {\n const result = tagExpWithClosingIndex(xmlData, i + 1, closingChar);\n if (!result) {\n return;\n }\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if (separatorIndex !== -1) {\n //separate tag name and attributes expression\n tagName = tagExp.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n tagExp = tagExp.substr(separatorIndex + 1);\n }\n\n const rawTagName = tagName;\n if (removeNSPrefix) {\n const colonIndex = tagName.indexOf(':');\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n return {\n tagName: tagName,\n tagExp: tagExp,\n closeIndex: closeIndex,\n attrExpPresent: attrExpPresent,\n rawTagName: rawTagName\n };\n}\n\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nexport class OrderedObjParser {\n declare options: Partial<X2jOptions>;\n declare currentNode: XmlNode | null;\n declare tagsNodeStack: XmlNode[];\n declare docTypeEntities: Record<string, any>;\n\n constructor(options: Partial<X2jOptions>) {\n this.currentNode = null;\n this.options = options;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n }\n\n protected addChild(currentNode: XmlNode, childNode: XmlNode, jPath: string) {\n const result = childNode.tagname;\n if (typeof result === 'string') {\n childNode.tagname = result;\n currentNode.addChild(childNode);\n } else {\n currentNode.addChild(childNode);\n }\n }\n\n protected buildAttributesMap(attrStr: string, jPath: string, tagName: string) {\n const attrs = {};\n if (!attrStr) {\n return;\n }\n const matches = getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n const attrName = matches[i][1];\n const oldVal = matches[i][4];\n const aName = attrName;\n if (attrName) {\n if (oldVal !== undefined) {\n attrs[aName] = isNaN(oldVal) ? oldVal : Number(oldVal);\n } else {\n attrs[aName] = true;\n }\n }\n }\n return attrs;\n }\n\n parseXml(xmlData: string) {\n // 判断xml的合法性\n xmlData = xmlData.replace(/\\r\\n?/g, '\\n');\n const xmlObj = new XmlNode('!xml');\n let currentNode = xmlObj;\n let textData = '';\n let jPath = '';\n for (let i = 0; i < xmlData.length; i++) {\n const ch = xmlData[i];\n if (ch === '<') {\n if (xmlData[i + 1] === '/') {\n const closeIndex = findClosingIndex(xmlData, '>', i, 'Closing Tag is not closed.');\n const propIndex = jPath.lastIndexOf('.');\n jPath = jPath.substring(0, propIndex);\n currentNode = this.tagsNodeStack.pop();\n textData = '';\n i = closeIndex;\n } else if (xmlData[i + 1] === '?') {\n const tagData = readTagExp(xmlData, i, false, '?>');\n i = tagData.closeIndex + 1;\n } else if (xmlData.substr(i + 1, 3) === '!--') {\n const endIndex = findClosingIndex(xmlData, '-->', i + 4, 'Comment is not closed.');\n i = endIndex;\n } else {\n const result = readTagExp(xmlData, i, false);\n let tagName = result.tagName;\n let tagExp = result.tagExp;\n const attrExpPresent = result.attrExpPresent;\n const closeIndex = result.closeIndex;\n if (tagName !== xmlObj.tagname) {\n jPath += jPath ? '.' + tagName : tagName;\n }\n if (tagExp.length > 0 && tagExp.lastIndexOf('/') === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === '/') {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n const childNode = new XmlNode(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[':@'] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n jPath = jPath.substr(0, jPath.lastIndexOf('.'));\n } else {\n const childNode = new XmlNode(tagName);\n this.tagsNodeStack.push(currentNode);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[':@'] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n currentNode = childNode;\n }\n textData = '';\n i = closeIndex;\n }\n } else {\n textData += xmlData[i];\n }\n }\n return xmlObj.child;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/xml/OrderedObjParser.ts"],"names":[],"mappings":"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","file":"OrderedObjParser.js","sourcesContent":["// 参考fast-xml-parser\n// https://github.com/NaturalIntelligence/fast-xml-parser\n/**\n * MIT License\n\nCopyright (c) 2017 Amit Kumar Gupta\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n */\nimport type { X2jOptions } from './type';\nimport { getAllMatches } from './utils';\n\nclass XmlNode {\n declare tagname: string;\n declare child: any[];\n\n constructor(tagname: string) {\n this.tagname = tagname;\n this.child = []; //nested tags, text, cdata, comments in order\n this[':@'] = {}; //attributes map\n }\n add(key: string, val: string) {\n // this.child.push( {name : key, val: val, isCdata: isCdata });\n if (key === '__proto__') {\n key = '#__proto__';\n }\n this.child.push({ [key]: val });\n }\n addChild(node: XmlNode) {\n if (node.tagname === '__proto__') {\n node.tagname = '#__proto__';\n }\n if (node[':@'] && Object.keys(node[':@']).length > 0) {\n this.child.push({ [node.tagname]: node.child, [':@']: node[':@'] });\n } else {\n this.child.push({ [node.tagname]: node.child });\n }\n }\n}\n\nfunction findClosingIndex(xmlData: string, str: string, i: number, errMsg: string) {\n const closingIndex = xmlData.indexOf(str, i);\n if (closingIndex === -1) {\n throw new Error(errMsg);\n } else {\n return closingIndex + str.length - 1;\n }\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData\n * @param {number} i starting index\n * @returns\n */\nfunction tagExpWithClosingIndex(xmlData: string, i: number, closingChar = '>') {\n let attrBoundary;\n let tagExp = '';\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) {\n attrBoundary = '';\n } //reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if (closingChar[1]) {\n if (xmlData[index + 1] === closingChar[1]) {\n return {\n data: tagExp,\n index: index\n };\n }\n } else {\n return {\n data: tagExp,\n index: index\n };\n }\n } else if (ch === '\\t') {\n ch = ' ';\n }\n tagExp += ch;\n }\n}\n\nfunction readTagExp(xmlData: string, i: number, removeNSPrefix: boolean, closingChar = '>') {\n const result = tagExpWithClosingIndex(xmlData, i + 1, closingChar);\n if (!result) {\n return;\n }\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if (separatorIndex !== -1) {\n //separate tag name and attributes expression\n tagName = tagExp.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n tagExp = tagExp.substr(separatorIndex + 1);\n }\n\n const rawTagName = tagName;\n if (removeNSPrefix) {\n const colonIndex = tagName.indexOf(':');\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n return {\n tagName: tagName,\n tagExp: tagExp,\n closeIndex: closeIndex,\n attrExpPresent: attrExpPresent,\n rawTagName: rawTagName\n };\n}\n\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nexport class OrderedObjParser {\n declare options: Partial<X2jOptions>;\n declare currentNode: XmlNode | null;\n declare tagsNodeStack: XmlNode[];\n declare docTypeEntities: Record<string, any>;\n\n constructor(options: Partial<X2jOptions>) {\n this.currentNode = null;\n this.options = options;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n }\n\n protected addChild(currentNode: XmlNode, childNode: XmlNode, jPath: string) {\n const result = childNode.tagname;\n if (typeof result === 'string') {\n childNode.tagname = result;\n currentNode.addChild(childNode);\n } else {\n currentNode.addChild(childNode);\n }\n }\n\n protected buildAttributesMap(attrStr: string, jPath: string, tagName: string) {\n const attrs = {};\n if (!attrStr) {\n return;\n }\n const matches = getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n const attrName = matches[i][1];\n const oldVal = matches[i][4];\n const aName = attrName;\n if (attrName) {\n if (oldVal !== undefined) {\n attrs[aName] = isNaN(oldVal) ? oldVal : Number(oldVal);\n } else {\n attrs[aName] = true;\n }\n }\n }\n return attrs;\n }\n\n parseXml(xmlData: string) {\n // 判断xml的合法性\n xmlData = xmlData.replace(/\\r\\n?/g, '\\n');\n const xmlObj = new XmlNode('!xml');\n let currentNode = xmlObj;\n let textData = '';\n let jPath = '';\n for (let i = 0; i < xmlData.length; i++) {\n const ch = xmlData[i];\n if (ch === '<') {\n if (xmlData[i + 1] === '/') {\n const closeIndex = findClosingIndex(xmlData, '>', i, 'Closing Tag is not closed.');\n const propIndex = jPath.lastIndexOf('.');\n jPath = jPath.substring(0, propIndex);\n currentNode = this.tagsNodeStack.pop();\n if (currentNode && currentNode.child && textData) {\n currentNode.child[currentNode.child.length - 1][':@'] &&\n (currentNode.child[currentNode.child.length - 1][':@'].text = textData);\n }\n textData = '';\n i = closeIndex;\n } else if (xmlData[i + 1] === '?') {\n const tagData = readTagExp(xmlData, i, false, '?>');\n i = tagData.closeIndex + 1;\n } else if (xmlData.substr(i + 1, 3) === '!--') {\n const endIndex = findClosingIndex(xmlData, '-->', i + 4, 'Comment is not closed.');\n i = endIndex;\n } else {\n const result = readTagExp(xmlData, i, false);\n let tagName = result.tagName;\n let tagExp = result.tagExp;\n const attrExpPresent = result.attrExpPresent;\n const closeIndex = result.closeIndex;\n if (tagName !== xmlObj.tagname) {\n jPath += jPath ? '.' + tagName : tagName;\n }\n if (tagExp.length > 0 && tagExp.lastIndexOf('/') === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === '/') {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n const childNode = new XmlNode(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[':@'] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n jPath = jPath.substr(0, jPath.lastIndexOf('.'));\n } else {\n const childNode = new XmlNode(tagName);\n this.tagsNodeStack.push(currentNode);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[':@'] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n currentNode = childNode;\n }\n textData = '';\n i = closeIndex;\n }\n } else {\n textData += xmlData[i];\n }\n }\n return xmlObj.child;\n }\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  import type { IGlobal, ICanvas, IContext2d, IDrawToParams, IGroup, ILayer, ILayerHandlerContribution, IWindow, ILayerHandlerInitParams, ILayerHandlerDrawParams, IDrawContext, LayerMode } from '../../../interface';
2
2
  import type { IBounds } from '@visactor/vutils';
3
3
  export declare class CanvasLayerHandlerContribution implements ILayerHandlerContribution {
4
- readonly global: IGlobal;
5
4
  layer: ILayer;
6
5
  canvas: ICanvas;
7
6
  context: IContext2d;
@@ -9,8 +8,9 @@ export declare class CanvasLayerHandlerContribution implements ILayerHandlerCont
9
8
  main: boolean;
10
9
  window: IWindow;
11
10
  type: LayerMode;
11
+ global: IGlobal;
12
12
  secondaryHandlers: ILayerHandlerContribution[];
13
- constructor(global: IGlobal);
13
+ constructor();
14
14
  setDpr(dpr: number): void;
15
15
  init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void;
16
16
  resize(w: number, h: number): void;
@@ -4,21 +4,17 @@ var __decorate = this && this.__decorate || function(decorators, target, key, de
4
4
  return c > 3 && r && Object.defineProperty(target, key, r), r;
5
5
  }, __metadata = this && this.__metadata || function(k, v) {
6
6
  if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
- }, __param = this && this.__param || function(paramIndex, decorator) {
8
- return function(target, key) {
9
- decorator(target, key, paramIndex);
10
- };
11
7
  };
12
8
 
13
- import { inject, injectable } from "../../../common/inversify-lite";
9
+ import { injectable } from "../../../common/inversify-lite";
14
10
 
15
11
  import { wrapCanvas } from "../../../canvas/util";
16
12
 
17
- import { VGlobal } from "../../../constants";
13
+ import { application } from "../../../application";
18
14
 
19
15
  let CanvasLayerHandlerContribution = class {
20
- constructor(global) {
21
- this.global = global, this.type = "static", this.offscreen = !1;
16
+ constructor() {
17
+ this.type = "static", this.offscreen = !1, this.global = application.global;
22
18
  }
23
19
  setDpr(dpr) {
24
20
  this.canvas.dpr = dpr;
@@ -84,7 +80,7 @@ let CanvasLayerHandlerContribution = class {
84
80
  }
85
81
  };
86
82
 
87
- CanvasLayerHandlerContribution = __decorate([ injectable(), __param(0, inject(VGlobal)), __metadata("design:paramtypes", [ Object ]) ], CanvasLayerHandlerContribution);
83
+ CanvasLayerHandlerContribution = __decorate([ injectable(), __metadata("design:paramtypes", []) ], CanvasLayerHandlerContribution);
88
84
 
89
85
  export { CanvasLayerHandlerContribution };
90
86
  //# sourceMappingURL=canvas2d-contribution.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/layerHandler/canvas2d-contribution.ts"],"names":[],"mappings":"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","file":"canvas2d-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 IWindow,\n ILayerHandlerInitParams,\n ILayerHandlerDrawParams,\n IDrawContext,\n LayerMode\n} from '../../../interface';\nimport type { IBounds } from '@visactor/vutils';\nimport { VGlobal } from '../../../constants';\n\n@injectable()\nexport class CanvasLayerHandlerContribution implements ILayerHandlerContribution {\n layer: ILayer;\n canvas: ICanvas;\n context: IContext2d;\n offscreen: boolean;\n main: boolean;\n window: IWindow;\n type: LayerMode = 'static';\n // 所绑定的副layer handler\n secondaryHandlers: ILayerHandlerContribution[];\n\n constructor(@inject(VGlobal) public readonly global: IGlobal) {\n this.offscreen = false;\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 this.window = window;\n // 默认图层,那么直接拿window上的上下文和canvas即可\n if (params.main) {\n this.main = true;\n this.context = window.getContext();\n this.canvas = this.context.getCanvas();\n } else {\n this.main = false;\n let nativeCanvas: HTMLElement;\n if (params.canvasId) {\n nativeCanvas = this.global.getElementById(params.canvasId);\n } else {\n nativeCanvas = this.global.createCanvas({\n width: window.width,\n height: window.height\n });\n }\n // 不是main的话,就穿透点击事件\n if (nativeCanvas.style) {\n nativeCanvas.style['pointer-events'] = 'none';\n }\n const windowContext = window.getContext();\n const windowCanvas = windowContext.getCanvas().nativeCanvas;\n const canvas = wrapCanvas({\n nativeCanvas,\n width: window.width,\n height: window.height,\n dpr: window.dpr,\n canvasControled: true,\n container: window.getContainer(),\n x: windowCanvas.offsetLeft,\n y: windowCanvas.offsetTop\n });\n canvas.applyPosition();\n this.canvas = canvas;\n this.context = canvas.getContext();\n }\n }\n\n resize(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n resizeView(w: number, h: number) {\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams, userParams?: Partial<IDrawContext>): void {\n // 调整位置\n if (!this.main) {\n const windowContext = this.window.getContext();\n const windowCanvas = windowContext.getCanvas().nativeCanvas;\n if (windowCanvas && (this.canvas.x !== windowCanvas.offsetLeft || this.canvas.y !== windowCanvas.offsetTop)) {\n this.canvas.x = windowCanvas.offsetLeft;\n this.canvas.y = windowCanvas.offsetTop;\n this.canvas.applyPosition();\n }\n }\n params.renderService.render(group, {\n context: this.context,\n clear: params.background ?? '#ffffff',\n ...params,\n ...userParams\n });\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n layerHandlers.forEach(l => {\n const ctx = l.getContext();\n const canvas = ctx.canvas.nativeCanvas;\n this.context.drawImage(canvas, 0, 0);\n });\n }\n\n prepare(dirtyBounds: IBounds, params: ILayerHandlerDrawParams) {\n return;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n params.renderService.render(group, {\n context,\n ...params,\n clear: params.clear ? params.background ?? '#fff' : undefined\n });\n return;\n }\n\n getContext(): IContext2d {\n return this.context;\n }\n\n release() {\n this.canvas.release();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/layerHandler/canvas2d-contribution.ts"],"names":[],"mappings":"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","file":"canvas2d-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 IWindow,\n ILayerHandlerInitParams,\n ILayerHandlerDrawParams,\n IDrawContext,\n LayerMode\n} from '../../../interface';\nimport type { IBounds } from '@visactor/vutils';\nimport { application } from '../../../application';\n\n@injectable()\nexport class CanvasLayerHandlerContribution implements ILayerHandlerContribution {\n layer: ILayer;\n canvas: ICanvas;\n context: IContext2d;\n offscreen: boolean;\n main: boolean;\n window: IWindow;\n type: LayerMode = 'static';\n global: IGlobal;\n // 所绑定的副layer handler\n secondaryHandlers: ILayerHandlerContribution[];\n\n constructor() {\n this.offscreen = false;\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 this.window = window;\n // 默认图层,那么直接拿window上的上下文和canvas即可\n if (params.main) {\n this.main = true;\n this.context = window.getContext();\n this.canvas = this.context.getCanvas();\n } else {\n this.main = false;\n let nativeCanvas: HTMLElement;\n if (params.canvasId) {\n nativeCanvas = this.global.getElementById(params.canvasId);\n } else {\n nativeCanvas = this.global.createCanvas({\n width: window.width,\n height: window.height\n });\n }\n // 不是main的话,就穿透点击事件\n if (nativeCanvas.style) {\n nativeCanvas.style['pointer-events'] = 'none';\n }\n const windowContext = window.getContext();\n const windowCanvas = windowContext.getCanvas().nativeCanvas;\n const canvas = wrapCanvas({\n nativeCanvas,\n width: window.width,\n height: window.height,\n dpr: window.dpr,\n canvasControled: true,\n container: window.getContainer(),\n x: windowCanvas.offsetLeft,\n y: windowCanvas.offsetTop\n });\n canvas.applyPosition();\n this.canvas = canvas;\n this.context = canvas.getContext();\n }\n }\n\n resize(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n resizeView(w: number, h: number) {\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams, userParams?: Partial<IDrawContext>): void {\n // 调整位置\n if (!this.main) {\n const windowContext = this.window.getContext();\n const windowCanvas = windowContext.getCanvas().nativeCanvas;\n if (windowCanvas && (this.canvas.x !== windowCanvas.offsetLeft || this.canvas.y !== windowCanvas.offsetTop)) {\n this.canvas.x = windowCanvas.offsetLeft;\n this.canvas.y = windowCanvas.offsetTop;\n this.canvas.applyPosition();\n }\n }\n params.renderService.render(group, {\n context: this.context,\n clear: params.background ?? '#ffffff',\n ...params,\n ...userParams\n });\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n layerHandlers.forEach(l => {\n const ctx = l.getContext();\n const canvas = ctx.canvas.nativeCanvas;\n this.context.drawImage(canvas, 0, 0);\n });\n }\n\n prepare(dirtyBounds: IBounds, params: ILayerHandlerDrawParams) {\n return;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n params.renderService.render(group, {\n context,\n ...params,\n clear: params.clear ? params.background ?? '#fff' : undefined\n });\n return;\n }\n\n getContext(): IContext2d {\n return this.context;\n }\n\n release() {\n this.canvas.release();\n }\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  import type { IGlobal, IDrawToParams, IGroup, ILayer, ILayerHandlerContribution, IWindow, ILayerHandlerInitParams, ILayerHandlerDrawParams, IDrawContext, LayerMode } from '../../../interface';
2
2
  import type { IBounds } from '@visactor/vutils';
3
3
  export declare class EmptyLayerHandlerContribution implements ILayerHandlerContribution {
4
- readonly global: IGlobal;
5
4
  layer: ILayer;
6
5
  canvas: null;
7
6
  context: null;
@@ -10,7 +9,8 @@ export declare class EmptyLayerHandlerContribution implements ILayerHandlerContr
10
9
  window: IWindow;
11
10
  type: LayerMode;
12
11
  mainHandler: ILayerHandlerContribution;
13
- constructor(global: IGlobal);
12
+ global: IGlobal;
13
+ constructor();
14
14
  setDpr(dpr: number): void;
15
15
  init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void;
16
16
  resize(w: number, h: number): void;
@@ -4,19 +4,15 @@ var __decorate = this && this.__decorate || function(decorators, target, key, de
4
4
  return c > 3 && r && Object.defineProperty(target, key, r), r;
5
5
  }, __metadata = this && this.__metadata || function(k, v) {
6
6
  if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
- }, __param = this && this.__param || function(paramIndex, decorator) {
8
- return function(target, key) {
9
- decorator(target, key, paramIndex);
10
- };
11
7
  };
12
8
 
13
- import { inject, injectable } from "../../../common/inversify-lite";
9
+ import { injectable } from "../../../common/inversify-lite";
14
10
 
15
- import { VGlobal } from "../../../constants";
11
+ import { application } from "../../../application";
16
12
 
17
13
  let EmptyLayerHandlerContribution = class {
18
- constructor(global) {
19
- this.global = global, this.type = "virtual", this.offscreen = !1;
14
+ constructor() {
15
+ this.offscreen = !1, this.type = "virtual", this.global = application.global;
20
16
  }
21
17
  setDpr(dpr) {}
22
18
  init(layer, window, params) {
@@ -47,7 +43,7 @@ let EmptyLayerHandlerContribution = class {
47
43
  release() {}
48
44
  };
49
45
 
50
- EmptyLayerHandlerContribution = __decorate([ injectable(), __param(0, inject(VGlobal)), __metadata("design:paramtypes", [ Object ]) ], EmptyLayerHandlerContribution);
46
+ EmptyLayerHandlerContribution = __decorate([ injectable(), __metadata("design:paramtypes", []) ], EmptyLayerHandlerContribution);
51
47
 
52
48
  export { EmptyLayerHandlerContribution };
53
49
  //# sourceMappingURL=empty-contribution.js.map