@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
@@ -10,6 +10,7 @@ import type { IStage } from './stage';
10
10
  import type { IGlyphGraphicAttribute } from './graphic/glyph';
11
11
  import type { IContainPointMode } from '../common/enums';
12
12
  import type { IFace3d } from './graphic/face3d';
13
+ import type { IPickerService } from './picker';
13
14
  type IStrokeSeg = {
14
15
  start: number;
15
16
  end: number;
@@ -94,7 +95,7 @@ export type IBackgroundConfig = {
94
95
  };
95
96
  export type IGraphicStyle = IFillStyle & IStrokeStyle & {
96
97
  opacity: number;
97
- backgroundMode: number;
98
+ backgroundMode: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
98
99
  background: string | HTMLImageElement | HTMLCanvasElement | IBackgroundConfig | null;
99
100
  texture: TextureType | string;
100
101
  textureColor: string;
@@ -203,7 +204,7 @@ export interface IGraphic<T extends Partial<IGraphicAttribute> = Partial<IGraphi
203
204
  readonly transMatrix: IMatrix;
204
205
  readonly globalTransMatrix: IMatrix;
205
206
  getOffsetXY: (attr?: ITransform) => IPoint;
206
- containsPoint: (x: number, y: number, mode?: IContainPointMode) => boolean;
207
+ containsPoint: (x: number, y: number, mode?: IContainPointMode, picker?: IPickerService) => boolean;
207
208
  setMode: (mode: '3d' | '2d') => void;
208
209
  isValid: () => boolean;
209
210
  translate: (x: number, y: number) => this;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interface/graphic.ts"],"names":[],"mappings":"","file":"graphic.js","sourcesContent":["import type { IAABBBounds, IOBBBounds, IMatrix, IPointLike, IPoint } from '@visactor/vutils';\nimport type { IAnimate, IStep, EasingType, IAnimateTarget } from './animate';\nimport type { IColor } from './color';\nimport type { IGroup } from './graphic/group';\nimport type { IShadowRoot } from './graphic/shadow-root';\nimport type { ILayer } from './layer';\nimport type { INode } from './node-tree';\nimport type { ICustomPath2D } from './path';\nimport type { IStage } from './stage';\nimport type { IGlyphGraphicAttribute } from './graphic/glyph';\nimport type { IContainPointMode } from '../common/enums';\nimport type { IFace3d } from './graphic/face3d';\n\ntype IStrokeSeg = {\n start: number; // 百分比\n // end和length二选一\n end: number; // 百分比\n length: number; // 像素长度\n};\n\n// TODO 最后加一个any\nexport type GraphicType =\n | 'area'\n | 'circle'\n | 'ellipse'\n | 'line'\n | 'rect'\n | 'rect3d'\n | 'path'\n | 'richtext'\n | 'text'\n | 'arc'\n | 'arc3d'\n | 'image'\n | 'symbol'\n | 'group'\n | 'shadowroot'\n | 'polygon'\n | 'pyramid3d'\n | 'glyph';\n\n// Cursor style\n// See: https://developer.mozilla.org/en-US/docs/Web/CSS/cursor\nexport type Cursor =\n | 'auto'\n | 'default'\n | 'none'\n | 'context-menu'\n | 'help'\n | 'pointer'\n | 'progress'\n | 'wait'\n | 'cell'\n | 'crosshair'\n | 'text'\n | 'vertical-text'\n | 'alias'\n | 'copy'\n | 'move'\n | 'no-drop'\n | 'not-allowed'\n | 'grab'\n | 'grabbing'\n | 'all-scroll'\n | 'col-resize'\n | 'row-resize'\n | 'n-resize'\n | 'e-resize'\n | 's-resize'\n | 'w-resize'\n | 'ne-resize'\n | 'nw-resize'\n | 'se-resize'\n | 'sw-resize'\n | 'ew-resize'\n | 'ns-resize'\n | 'nesw-resize'\n | 'nwse-resize'\n | 'zoom-in'\n | 'zoom-out';\n\nexport type ITransform = {\n x: number;\n y: number;\n z: number;\n dx: number;\n dy: number;\n dz: number;\n scrollX: number;\n scrollY: number;\n scaleX: number;\n scaleY: number;\n scaleZ: number;\n angle: number;\n alpha: number;\n beta: number;\n scaleCenter: [number | string, number | string];\n anchor: [number | string, number | string]; // 基于AABB的锚点位置,用于简单的定位某些path\n anchor3d: [number | string, number | string, number] | [number | string, number | string]; // 3d的锚点位置\n postMatrix: IMatrix;\n};\n\nexport type IFillType = boolean | string | IColor;\nexport type IFillStyle = {\n fillOpacity: number;\n shadowBlur: number;\n shadowColor: string;\n shadowOffsetX: number;\n shadowOffsetY: number;\n fill: IFillType;\n};\n\nexport type ILayout = {\n alignSelf: 'auto' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';\n};\n\nexport type IBorderStyle = Omit<IStrokeStyle, 'outerBorder' | 'innerBorder'> & {\n distance: number | string;\n visible?: boolean;\n};\n\nexport type IStrokeType = boolean | string | IColor | null;\nexport type IStrokeStyle = {\n outerBorder: Partial<IBorderStyle>;\n innerBorder: Partial<IBorderStyle>;\n strokeOpacity: number;\n lineDash: number[];\n lineDashOffset: number;\n lineWidth: number;\n lineCap: CanvasLineCap;\n lineJoin: CanvasLineJoin;\n miterLimit: number;\n // 描边的boundsBuffer,用于控制bounds的buffer\n strokeBoundsBuffer: number;\n /**\n * stroke - true 全描边\n * stroke - false 不描边\n * stroke 为数值类型,适用于rect\\arc等图形,用于配置部分描边的场景,其中\n *\n * 0b00000 - 不描边\n * 0b000001 - top\n * 0b000010 - right\n * 0b000100 - bottom\n * 0b001000 - left\n * 相应的:\n * 0b000011 - top + right\n * 0b000111 - top + right + bottom\n * 0b001111 - 全描边\n *\n * stroke - boolean[],适用于rect\\arc等图形,用于配置部分描边的场景\n */\n stroke: IStrokeType[] | IStrokeType;\n};\n\ntype TextureType = 'circle' | 'diamond' | 'rect' | 'vertical-line' | 'horizontal-line' | 'bias-lr' | 'bias-rl' | 'grid';\n\nexport type IConnectedStyle = {\n // 连接,取零或者断开\n connectedType: 'connect' | 'zero' | 'none';\n connectedStyle: {\n stroke: IStrokeStyle['stroke'];\n strokeOpacity: IStrokeStyle['strokeOpacity'];\n lineDash: IStrokeStyle['lineDash'];\n lineDashOffset: IStrokeStyle['lineDashOffset'];\n lineCap: IStrokeStyle['lineCap'];\n lineJoin: IStrokeStyle['lineJoin'];\n lineWidth: IStrokeStyle['lineWidth'];\n fill: IFillStyle['fill'];\n fillOpacity: IFillStyle['fillOpacity'];\n };\n connectedX: number;\n connectedY: number;\n};\n\nexport type IBackgroundConfig = {\n stroke?: string | boolean;\n fill?: string | boolean;\n lineWidth?: number;\n cornerRadius?: number;\n expandX?: number;\n expandY?: number;\n};\n\nexport type IGraphicStyle = IFillStyle &\n IStrokeStyle & {\n opacity: number;\n backgroundMode: number; // 填充模式(与具体图元有关)\n background: string | HTMLImageElement | HTMLCanvasElement | IBackgroundConfig | null; // 背景,可以与fill同时存在\n texture: TextureType | string; // 纹理\n textureColor: string; // 纹理颜色\n textureSize: number; // 纹理大小\n texturePadding: number; // 纹理间隙\n blur: number;\n cursor: Cursor | null; // 鼠标样式\n // HTML的dom或者string\n html: {\n dom: string | HTMLElement; // dom字符串或者dom\n container: string | HTMLElement | null; // id或者dom\n width: number; // 容器的宽度\n height: number; // 容器的高度\n style: string | Record<string, any>; // 容器的样式\n visible?: boolean;\n anchorType?: 'position' | 'boundsLeftTop';\n } | null;\n };\n\nexport type IDebugType = {\n _debug_bounds: boolean | ((c: any, g: any) => void);\n};\nexport type IGraphicAttribute = IDebugType &\n IGraphicStyle &\n ITransform & {\n /**\n * stroke百分比\n */\n strokeSeg: IStrokeSeg | null;\n // 包围盒的padding\n boundsPadding: number | number[];\n /**\n * 选择模式,精确模式,粗糙模式(包围盒模式),自定义模式\n */\n pickMode: 'accurate' | 'imprecise' | 'custom';\n boundsMode: 'accurate' | 'imprecise';\n customPickShape: () => boolean | null;\n /**\n * 是否支持事件拾取,默认为 true。\n * @default true\n */\n pickable: boolean;\n /**\n * 对于 group 节点,是否支持其子元素的事件拾取,默认为 true。\n * 如果 group `pickable` 关闭,`childrenPickable` 开启,那么 group 的子节点仍参与事件拾取\n * @default true\n */\n childrenPickable: boolean;\n /**\n * 元素是否可见。\n * @default true\n */\n visible: boolean;\n zIndex: number;\n layout: any;\n /**\n * 是否在3d中控制方向\n * false: 不控制方向\n * true: 始终控制方向朝摄像机\n */\n keepDirIn3d?: boolean;\n shadowRootIdx: number;\n globalZIndex: number;\n globalCompositeOperation: CanvasRenderingContext2D['globalCompositeOperation'] | '';\n // 完全支持滚动 | 完全不支持滚动 | 支持x方向的滚动 | 支持y方向的滚动\n overflow: 'scroll' | 'hidden' | 'scroll-x' | 'scroll-y';\n };\n\nexport interface IGraphicJson<T extends Partial<IGraphicAttribute> = Partial<IGraphicAttribute>> {\n attribute: Partial<T>;\n _uid: number;\n type: string;\n name: string;\n children: IGraphicJson<T>[];\n}\n\n/** the context of setAttribute */\nexport type ISetAttributeContext = {\n /** type of setAttribute */\n type?: number;\n animationState?: {\n step?: IStep;\n isFirstFrameOfStep?: boolean;\n /** ratio of animation */\n ratio?: number;\n /** is animation end? */\n end?: boolean;\n };\n skipUpdateCallback?: boolean;\n};\n\nexport type IGraphicAnimateParams = {\n id?: number | string;\n onStart?: () => void;\n onFrame?: (step: IStep, ratio: number) => void;\n onEnd?: () => void;\n onRemove?: () => void;\n interpolate?: (key: string, ratio: number, from: any, to: any, nextAttributes: any) => boolean;\n};\n\nexport interface IGraphic<T extends Partial<IGraphicAttribute> = Partial<IGraphicAttribute>>\n extends INode,\n IAnimateTarget {\n type?: GraphicType;\n numberType?: number;\n stage?: IStage;\n layer?: ILayer;\n shadowRoot?: IShadowRoot;\n glyphHost?: IGraphic<IGlyphGraphicAttribute>;\n backgroundImg?: boolean;\n\n bindDom?: Map<string | HTMLElement, { container: HTMLElement | string; dom: HTMLElement; wrapGroup: HTMLDivElement }>;\n\n valid: boolean;\n parent: IGroup | null;\n isContainer?: boolean;\n // 是否是3d模式(是否应用3d视角)\n in3dMode?: boolean;\n\n // 上次更新的stamp\n stamp?: number;\n animationBackUps?: {\n from: Record<string, any>;\n to: Record<string, any>;\n };\n\n attribute: Partial<T>;\n\n /** 用于实现morph动画场景,转换成bezier曲线渲染 */\n pathProxy?: ICustomPath2D | ((attrs: T) => ICustomPath2D);\n incremental?: number;\n incrementalAt?: number;\n\n /** 记录state对应的图形属性 */\n states?: Record<string, Partial<T>>;\n normalAttrs?: Partial<T>;\n stateProxy?: (stateName: string, targetStates?: string[]) => Partial<T>;\n findFace?: () => IFace3d;\n toggleState: (stateName: string, hasAnimation?: boolean) => void;\n removeState: (stateName: string, hasAnimation?: boolean) => void;\n clearStates: (hasAnimation?: boolean) => void;\n useStates: (states: string[], hasAnimation?: boolean) => void;\n addState: (stateName: string, keepCurrentStates?: boolean, hasAnimation?: boolean) => void;\n hasState: (stateName?: string) => boolean;\n getState: (stateName: string) => Partial<T>;\n onBeforeAttributeUpdate?: (\n val: any,\n attributes: Partial<T>,\n key: null | string | string[],\n context?: ISetAttributeContext\n ) => T | undefined;\n applyStateAttrs: (attrs: Partial<T>, stateNames: string[], hasAnimation?: boolean, isClear?: boolean) => void;\n updateNormalAttrs: (stateAttrs: Partial<T>) => void;\n\n // get\n readonly AABBBounds: IAABBBounds; // 用于获取当前节点的AABB包围盒\n readonly OBBBounds: IOBBBounds; // 获取OBB包围盒,旋转防重叠需要用\n readonly globalAABBBounds: IAABBBounds; // 全局AABB包围盒\n readonly transMatrix: IMatrix; // 变换矩阵,动态计算\n readonly globalTransMatrix: IMatrix; // 变换矩阵,动态计算\n\n getOffsetXY: (attr?: ITransform) => IPoint;\n\n // function\n containsPoint: (x: number, y: number, mode?: IContainPointMode) => boolean;\n\n setMode: (mode: '3d' | '2d') => void;\n isValid: () => boolean;\n\n // TODO: transform API\n // 基于当前transform的变换,普通用户尽量别用,拿捏不住的~\n translate: (x: number, y: number) => this;\n translateTo: (x: number, y: number) => this;\n scale: (scaleX: number, scaleY: number, scaleCenter?: IPointLike) => this;\n scaleTo: (scaleX: number, scaleY: number) => this;\n rotate: (angle: number, rotateCenter?: IPointLike) => this;\n rotateTo: (angle: number) => this;\n skewTo: (b: number, c: number) => this;\n addUpdateBoundTag: () => void;\n addUpdateShapeAndBoundsTag: () => void;\n addUpdateLayoutTag: () => void;\n\n update: (d?: { bounds: boolean; trans: boolean }) => void;\n\n // animate\n animate: (params?: IGraphicAnimateParams) => IAnimate;\n\n // 语法糖,可有可无,有的为了首屏性能考虑做成get方法,有的由外界直接托管,内部不赋值\n name?: string;\n\n // 供render处理shape缓存tag\n shouldUpdateShape: () => boolean;\n clearUpdateShapeTag: () => void;\n\n // // 供render缓存shape\n // cacheShape?: ICustomPath2D;\n // // 线段使用的path2D\n // cacheLine?: ISegPath2D | ISegPath2D[];\n // // 面积图使用的path2D\n // cacheArea?: IAreaCacheItem | IAreaCacheItem[];\n\n setAttributes: (params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext) => void;\n\n initAttributes: (params: Partial<T>) => void;\n\n setAttribute: (key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext) => void;\n\n setStage: (stage?: IStage, layer?: ILayer) => void;\n onSetStage: (cb: (g: IGraphic, stage: IStage) => void) => void;\n\n shouldUpdateAABBBounds: () => boolean;\n shouldSelfChangeUpdateAABBBounds: () => boolean;\n shouldUpdateGlobalMatrix: () => boolean;\n\n addUpdatePositionTag: () => void;\n addUpdateGlobalPositionTag: () => void;\n\n attachShadow: () => IShadowRoot;\n detachShadow: () => void;\n\n toJson: () => IGraphicJson;\n\n /** 创建pathProxy */\n createPathProxy: (path?: string) => void;\n /** 将图形转换成CustomPath2D */\n toCustomPath?: () => ICustomPath2D;\n\n resources?: Map<\n string | HTMLImageElement | HTMLCanvasElement | IBackgroundConfig,\n { state: 'init' | 'loading' | 'success' | 'fail'; data?: HTMLImageElement | HTMLCanvasElement }\n >;\n imageLoadSuccess: (url: string, data: HTMLImageElement) => void;\n imageLoadFail: (url: string) => void;\n\n clone: () => IGraphic;\n stopAnimates: (stopChildren?: boolean) => void;\n getNoWorkAnimateAttr: () => Record<string, number>;\n}\n\nexport interface IRoot extends IGraphic {\n pick: (x: number, y: number) => IGraphic;\n}\n\n/**\n * 动画配置\n */\nexport type IAnimateConfig = {\n duration?: number;\n easing?: EasingType;\n};\n\nexport type GraphicReleaseStatus = 'released' | 'willRelease';\n"]}
1
+ {"version":3,"sources":["../src/interface/graphic.ts"],"names":[],"mappings":"","file":"graphic.js","sourcesContent":["import type { IAABBBounds, IOBBBounds, IMatrix, IPointLike, IPoint } from '@visactor/vutils';\nimport type { IAnimate, IStep, EasingType, IAnimateTarget } from './animate';\nimport type { IColor } from './color';\nimport type { IGroup } from './graphic/group';\nimport type { IShadowRoot } from './graphic/shadow-root';\nimport type { ILayer } from './layer';\nimport type { INode } from './node-tree';\nimport type { ICustomPath2D } from './path';\nimport type { IStage } from './stage';\nimport type { IGlyphGraphicAttribute } from './graphic/glyph';\nimport type { IContainPointMode } from '../common/enums';\nimport type { IFace3d } from './graphic/face3d';\nimport type { IPickerService } from './picker';\n\ntype IStrokeSeg = {\n start: number; // 百分比\n // end和length二选一\n end: number; // 百分比\n length: number; // 像素长度\n};\n\n// TODO 最后加一个any\nexport type GraphicType =\n | 'area'\n | 'circle'\n | 'ellipse'\n | 'line'\n | 'rect'\n | 'rect3d'\n | 'path'\n | 'richtext'\n | 'text'\n | 'arc'\n | 'arc3d'\n | 'image'\n | 'symbol'\n | 'group'\n | 'shadowroot'\n | 'polygon'\n | 'pyramid3d'\n | 'glyph';\n\n// Cursor style\n// See: https://developer.mozilla.org/en-US/docs/Web/CSS/cursor\nexport type Cursor =\n | 'auto'\n | 'default'\n | 'none'\n | 'context-menu'\n | 'help'\n | 'pointer'\n | 'progress'\n | 'wait'\n | 'cell'\n | 'crosshair'\n | 'text'\n | 'vertical-text'\n | 'alias'\n | 'copy'\n | 'move'\n | 'no-drop'\n | 'not-allowed'\n | 'grab'\n | 'grabbing'\n | 'all-scroll'\n | 'col-resize'\n | 'row-resize'\n | 'n-resize'\n | 'e-resize'\n | 's-resize'\n | 'w-resize'\n | 'ne-resize'\n | 'nw-resize'\n | 'se-resize'\n | 'sw-resize'\n | 'ew-resize'\n | 'ns-resize'\n | 'nesw-resize'\n | 'nwse-resize'\n | 'zoom-in'\n | 'zoom-out';\n\nexport type ITransform = {\n x: number;\n y: number;\n z: number;\n dx: number;\n dy: number;\n dz: number;\n scrollX: number;\n scrollY: number;\n scaleX: number;\n scaleY: number;\n scaleZ: number;\n angle: number;\n alpha: number;\n beta: number;\n scaleCenter: [number | string, number | string];\n anchor: [number | string, number | string]; // 基于AABB的锚点位置,用于简单的定位某些path\n anchor3d: [number | string, number | string, number] | [number | string, number | string]; // 3d的锚点位置\n postMatrix: IMatrix;\n};\n\nexport type IFillType = boolean | string | IColor;\nexport type IFillStyle = {\n fillOpacity: number;\n shadowBlur: number;\n shadowColor: string;\n shadowOffsetX: number;\n shadowOffsetY: number;\n fill: IFillType;\n};\n\nexport type ILayout = {\n alignSelf: 'auto' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';\n};\n\nexport type IBorderStyle = Omit<IStrokeStyle, 'outerBorder' | 'innerBorder'> & {\n distance: number | string;\n visible?: boolean;\n};\n\nexport type IStrokeType = boolean | string | IColor | null;\nexport type IStrokeStyle = {\n outerBorder: Partial<IBorderStyle>;\n innerBorder: Partial<IBorderStyle>;\n strokeOpacity: number;\n lineDash: number[];\n lineDashOffset: number;\n lineWidth: number;\n lineCap: CanvasLineCap;\n lineJoin: CanvasLineJoin;\n miterLimit: number;\n // 描边的boundsBuffer,用于控制bounds的buffer\n strokeBoundsBuffer: number;\n /**\n * stroke - true 全描边\n * stroke - false 不描边\n * stroke 为数值类型,适用于rect\\arc等图形,用于配置部分描边的场景,其中\n *\n * 0b00000 - 不描边\n * 0b000001 - top\n * 0b000010 - right\n * 0b000100 - bottom\n * 0b001000 - left\n * 相应的:\n * 0b000011 - top + right\n * 0b000111 - top + right + bottom\n * 0b001111 - 全描边\n *\n * stroke - boolean[],适用于rect\\arc等图形,用于配置部分描边的场景\n */\n stroke: IStrokeType[] | IStrokeType;\n};\n\ntype TextureType = 'circle' | 'diamond' | 'rect' | 'vertical-line' | 'horizontal-line' | 'bias-lr' | 'bias-rl' | 'grid';\n\nexport type IConnectedStyle = {\n // 连接,取零或者断开\n connectedType: 'connect' | 'zero' | 'none';\n connectedStyle: {\n stroke: IStrokeStyle['stroke'];\n strokeOpacity: IStrokeStyle['strokeOpacity'];\n lineDash: IStrokeStyle['lineDash'];\n lineDashOffset: IStrokeStyle['lineDashOffset'];\n lineCap: IStrokeStyle['lineCap'];\n lineJoin: IStrokeStyle['lineJoin'];\n lineWidth: IStrokeStyle['lineWidth'];\n fill: IFillStyle['fill'];\n fillOpacity: IFillStyle['fillOpacity'];\n };\n connectedX: number;\n connectedY: number;\n};\n\nexport type IBackgroundConfig = {\n stroke?: string | boolean;\n fill?: string | boolean;\n lineWidth?: number;\n cornerRadius?: number;\n expandX?: number;\n expandY?: number;\n};\n\nexport type IGraphicStyle = IFillStyle &\n IStrokeStyle & {\n opacity: number;\n backgroundMode: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat'; // 填充模式(与具体图元有关)\n background: string | HTMLImageElement | HTMLCanvasElement | IBackgroundConfig | null; // 背景,可以与fill同时存在\n texture: TextureType | string; // 纹理\n textureColor: string; // 纹理颜色\n textureSize: number; // 纹理大小\n texturePadding: number; // 纹理间隙\n blur: number;\n cursor: Cursor | null; // 鼠标样式\n // HTML的dom或者string\n html: {\n dom: string | HTMLElement; // dom字符串或者dom\n container: string | HTMLElement | null; // id或者dom\n width: number; // 容器的宽度\n height: number; // 容器的高度\n style: string | Record<string, any>; // 容器的样式\n visible?: boolean;\n anchorType?: 'position' | 'boundsLeftTop';\n } | null;\n };\n\nexport type IDebugType = {\n _debug_bounds: boolean | ((c: any, g: any) => void);\n};\nexport type IGraphicAttribute = IDebugType &\n IGraphicStyle &\n ITransform & {\n /**\n * stroke百分比\n */\n strokeSeg: IStrokeSeg | null;\n // 包围盒的padding\n boundsPadding: number | number[];\n /**\n * 选择模式,精确模式,粗糙模式(包围盒模式),自定义模式\n */\n pickMode: 'accurate' | 'imprecise' | 'custom';\n boundsMode: 'accurate' | 'imprecise';\n customPickShape: () => boolean | null;\n /**\n * 是否支持事件拾取,默认为 true。\n * @default true\n */\n pickable: boolean;\n /**\n * 对于 group 节点,是否支持其子元素的事件拾取,默认为 true。\n * 如果 group `pickable` 关闭,`childrenPickable` 开启,那么 group 的子节点仍参与事件拾取\n * @default true\n */\n childrenPickable: boolean;\n /**\n * 元素是否可见。\n * @default true\n */\n visible: boolean;\n zIndex: number;\n layout: any;\n /**\n * 是否在3d中控制方向\n * false: 不控制方向\n * true: 始终控制方向朝摄像机\n */\n keepDirIn3d?: boolean;\n shadowRootIdx: number;\n globalZIndex: number;\n globalCompositeOperation: CanvasRenderingContext2D['globalCompositeOperation'] | '';\n // 完全支持滚动 | 完全不支持滚动 | 支持x方向的滚动 | 支持y方向的滚动\n overflow: 'scroll' | 'hidden' | 'scroll-x' | 'scroll-y';\n };\n\nexport interface IGraphicJson<T extends Partial<IGraphicAttribute> = Partial<IGraphicAttribute>> {\n attribute: Partial<T>;\n _uid: number;\n type: string;\n name: string;\n children: IGraphicJson<T>[];\n}\n\n/** the context of setAttribute */\nexport type ISetAttributeContext = {\n /** type of setAttribute */\n type?: number;\n animationState?: {\n step?: IStep;\n isFirstFrameOfStep?: boolean;\n /** ratio of animation */\n ratio?: number;\n /** is animation end? */\n end?: boolean;\n };\n skipUpdateCallback?: boolean;\n};\n\nexport type IGraphicAnimateParams = {\n id?: number | string;\n onStart?: () => void;\n onFrame?: (step: IStep, ratio: number) => void;\n onEnd?: () => void;\n onRemove?: () => void;\n interpolate?: (key: string, ratio: number, from: any, to: any, nextAttributes: any) => boolean;\n};\n\nexport interface IGraphic<T extends Partial<IGraphicAttribute> = Partial<IGraphicAttribute>>\n extends INode,\n IAnimateTarget {\n type?: GraphicType;\n numberType?: number;\n stage?: IStage;\n layer?: ILayer;\n shadowRoot?: IShadowRoot;\n glyphHost?: IGraphic<IGlyphGraphicAttribute>;\n backgroundImg?: boolean;\n\n bindDom?: Map<string | HTMLElement, { container: HTMLElement | string; dom: HTMLElement; wrapGroup: HTMLDivElement }>;\n\n valid: boolean;\n parent: IGroup | null;\n isContainer?: boolean;\n // 是否是3d模式(是否应用3d视角)\n in3dMode?: boolean;\n\n // 上次更新的stamp\n stamp?: number;\n animationBackUps?: {\n from: Record<string, any>;\n to: Record<string, any>;\n };\n\n attribute: Partial<T>;\n\n /** 用于实现morph动画场景,转换成bezier曲线渲染 */\n pathProxy?: ICustomPath2D | ((attrs: T) => ICustomPath2D);\n incremental?: number;\n incrementalAt?: number;\n\n /** 记录state对应的图形属性 */\n states?: Record<string, Partial<T>>;\n normalAttrs?: Partial<T>;\n stateProxy?: (stateName: string, targetStates?: string[]) => Partial<T>;\n findFace?: () => IFace3d;\n toggleState: (stateName: string, hasAnimation?: boolean) => void;\n removeState: (stateName: string, hasAnimation?: boolean) => void;\n clearStates: (hasAnimation?: boolean) => void;\n useStates: (states: string[], hasAnimation?: boolean) => void;\n addState: (stateName: string, keepCurrentStates?: boolean, hasAnimation?: boolean) => void;\n hasState: (stateName?: string) => boolean;\n getState: (stateName: string) => Partial<T>;\n onBeforeAttributeUpdate?: (\n val: any,\n attributes: Partial<T>,\n key: null | string | string[],\n context?: ISetAttributeContext\n ) => T | undefined;\n applyStateAttrs: (attrs: Partial<T>, stateNames: string[], hasAnimation?: boolean, isClear?: boolean) => void;\n updateNormalAttrs: (stateAttrs: Partial<T>) => void;\n\n // get\n readonly AABBBounds: IAABBBounds; // 用于获取当前节点的AABB包围盒\n readonly OBBBounds: IOBBBounds; // 获取OBB包围盒,旋转防重叠需要用\n readonly globalAABBBounds: IAABBBounds; // 全局AABB包围盒\n readonly transMatrix: IMatrix; // 变换矩阵,动态计算\n readonly globalTransMatrix: IMatrix; // 变换矩阵,动态计算\n\n getOffsetXY: (attr?: ITransform) => IPoint;\n\n // function\n containsPoint: (x: number, y: number, mode?: IContainPointMode, picker?: IPickerService) => boolean;\n\n setMode: (mode: '3d' | '2d') => void;\n isValid: () => boolean;\n\n // TODO: transform API\n // 基于当前transform的变换,普通用户尽量别用,拿捏不住的~\n translate: (x: number, y: number) => this;\n translateTo: (x: number, y: number) => this;\n scale: (scaleX: number, scaleY: number, scaleCenter?: IPointLike) => this;\n scaleTo: (scaleX: number, scaleY: number) => this;\n rotate: (angle: number, rotateCenter?: IPointLike) => this;\n rotateTo: (angle: number) => this;\n skewTo: (b: number, c: number) => this;\n addUpdateBoundTag: () => void;\n addUpdateShapeAndBoundsTag: () => void;\n addUpdateLayoutTag: () => void;\n\n update: (d?: { bounds: boolean; trans: boolean }) => void;\n\n // animate\n animate: (params?: IGraphicAnimateParams) => IAnimate;\n\n // 语法糖,可有可无,有的为了首屏性能考虑做成get方法,有的由外界直接托管,内部不赋值\n name?: string;\n\n // 供render处理shape缓存tag\n shouldUpdateShape: () => boolean;\n clearUpdateShapeTag: () => void;\n\n // // 供render缓存shape\n // cacheShape?: ICustomPath2D;\n // // 线段使用的path2D\n // cacheLine?: ISegPath2D | ISegPath2D[];\n // // 面积图使用的path2D\n // cacheArea?: IAreaCacheItem | IAreaCacheItem[];\n\n setAttributes: (params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext) => void;\n\n initAttributes: (params: Partial<T>) => void;\n\n setAttribute: (key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext) => void;\n\n setStage: (stage?: IStage, layer?: ILayer) => void;\n onSetStage: (cb: (g: IGraphic, stage: IStage) => void) => void;\n\n shouldUpdateAABBBounds: () => boolean;\n shouldSelfChangeUpdateAABBBounds: () => boolean;\n shouldUpdateGlobalMatrix: () => boolean;\n\n addUpdatePositionTag: () => void;\n addUpdateGlobalPositionTag: () => void;\n\n attachShadow: () => IShadowRoot;\n detachShadow: () => void;\n\n toJson: () => IGraphicJson;\n\n /** 创建pathProxy */\n createPathProxy: (path?: string) => void;\n /** 将图形转换成CustomPath2D */\n toCustomPath?: () => ICustomPath2D;\n\n resources?: Map<\n string | HTMLImageElement | HTMLCanvasElement | IBackgroundConfig,\n { state: 'init' | 'loading' | 'success' | 'fail'; data?: HTMLImageElement | HTMLCanvasElement }\n >;\n imageLoadSuccess: (url: string, data: HTMLImageElement) => void;\n imageLoadFail: (url: string) => void;\n\n clone: () => IGraphic;\n stopAnimates: (stopChildren?: boolean) => void;\n getNoWorkAnimateAttr: () => Record<string, number>;\n}\n\nexport interface IRoot extends IGraphic {\n pick: (x: number, y: number) => IGraphic;\n}\n\n/**\n * 动画配置\n */\nexport type IAnimateConfig = {\n duration?: number;\n easing?: EasingType;\n};\n\nexport type GraphicReleaseStatus = 'released' | 'willRelease';\n"]}
@@ -1,4 +1,4 @@
1
- import type { IAABBBounds, IBounds } from '@visactor/vutils';
1
+ import type { IAABBBounds, IBounds, IMatrixLike } from '@visactor/vutils';
2
2
  import type { IColor } from './color';
3
3
  import type { IContext2d } from './context';
4
4
  import type { IGraphic, IGraphicAttribute } from './graphic';
@@ -59,7 +59,7 @@ export interface IDrawContribution {
59
59
  draw: (renderService: IRenderService, drawParams: IDrawContext) => MaybePromise<void>;
60
60
  afterDraw?: (renderService: IRenderService, drawParams: IDrawContext) => MaybePromise<void>;
61
61
  getRenderContribution: (graphic: IGraphic) => IGraphicRender | null;
62
- renderGroup: (group: IGroup, drawContext: IDrawContext, skipSort?: boolean) => void;
62
+ renderGroup: (group: IGroup, drawContext: IDrawContext, matrix: IMatrixLike, skipSort?: boolean) => void;
63
63
  renderItem: (graphic: IGraphic, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) => void;
64
64
  }
65
65
  export interface IGraphicRenderDrawParams {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interface/render.ts"],"names":[],"mappings":"","file":"render.js","sourcesContent":["import type { IAABBBounds, IBounds } from '@visactor/vutils';\nimport type { IColor } from './color';\nimport type { IContext2d } from './context';\nimport type { IGraphic, IGraphicAttribute } from './graphic';\nimport type { IMarkAttribute, IThemeAttribute } from './graphic/creator';\nimport type { IFullThemeSpec } from './graphic/theme';\nimport type { ILayer } from './layer';\nimport type { IStage } from './stage';\nimport type { IGroup } from './graphic/group';\nimport type { MaybePromise } from './common';\nimport type { ISyncHook } from './sync-hook';\n\n// 用于绘制的参数,提供context\n// TODO: 考虑是否可以隐藏上下文类型\nexport interface IRenderServiceDrawParams {\n context?: IContext2d;\n\n // 绘制的区域以及是否需要清屏\n clear?: string | IColor | boolean;\n width: number;\n height: number;\n x: number;\n y: number;\n stage: IStage;\n layer: ILayer;\n renderService: IRenderService;\n updateBounds: boolean;\n renderStyle?: string;\n}\n\nexport interface IRenderService {\n dirtyBounds: IBounds;\n renderTreeRoots: IGraphic[]; // 此次render的数组\n renderLists: IGraphic[];\n drawParams: IRenderServiceDrawParams;\n\n prepare: (updateBounds: boolean) => void;\n prepareRenderList: () => void;\n beforeDraw: (params: IRenderServiceDrawParams) => void;\n draw: (params: IRenderServiceDrawParams) => void;\n afterDraw: (params: IRenderServiceDrawParams) => void;\n render: (groups: IGroup[], params: IRenderServiceDrawParams) => MaybePromise<void>;\n}\n\nexport interface IDrawContext extends IRenderServiceDrawParams {\n startAtId?: number;\n break?: boolean;\n restartIncremental?: boolean;\n // multi图元开始的位置\n multiGraphicOptions?: {\n startAtIdx: number;\n length: number;\n };\n in3dInterceptor?: boolean;\n drawContribution?: IDrawContribution;\n // hack内容\n hack_pieFace?: 'inside' | 'bottom' | 'top' | 'outside';\n}\n\nexport interface IDrawContribution {\n hooks?: {\n completeDraw: ISyncHook<[]>;\n };\n dirtyBounds?: IAABBBounds;\n backupDirtyBounds?: IAABBBounds;\n rendering?: boolean;\n currentRenderMap: Map<number, IGraphicRender>;\n defaultRenderMap: Map<number, IGraphicRender>;\n styleRenderMap: Map<string, Map<number, IGraphicRender>>;\n draw: (renderService: IRenderService, drawParams: IDrawContext) => MaybePromise<void>;\n afterDraw?: (renderService: IRenderService, drawParams: IDrawContext) => MaybePromise<void>;\n getRenderContribution: (graphic: IGraphic) => IGraphicRender | null;\n renderGroup: (group: IGroup, drawContext: IDrawContext, skipSort?: boolean) => void;\n renderItem: (graphic: IGraphic, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) => void;\n}\n\nexport interface IGraphicRenderDrawParams {\n beforeDrawCb?: () => void;\n afterDrawCb?: () => void;\n drawingCb?: () => void;\n skipDraw?: boolean;\n theme?: IFullThemeSpec;\n}\n\nexport interface IGraphicRender {\n type: string; // 图元类型\n numberType: number;\n style?: string;\n z?: number;\n draw: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams\n ) => void;\n drawShape?: (\n graphic: IGraphic,\n ctx: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) => void;\n}\n\nexport interface IBeforeRenderConstribution {\n apply: (renderService: IRenderService) => MaybePromise<void>;\n}\n\nexport interface IRenderSelector {\n selector: (graphic: IGraphic) => IGraphicRender | null;\n}\n\nexport interface IDrawItemInterceptorContribution {\n order: number;\n beforeDrawItem?: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n drawContribution: IDrawContribution,\n params?: IGraphicRenderDrawParams\n ) => boolean;\n afterDrawItem?: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n drawContribution: IDrawContribution,\n params?: IGraphicRenderDrawParams\n ) => boolean;\n}\n"]}
1
+ {"version":3,"sources":["../src/interface/render.ts"],"names":[],"mappings":"","file":"render.js","sourcesContent":["import type { IAABBBounds, IBounds, IMatrixLike } from '@visactor/vutils';\nimport type { IColor } from './color';\nimport type { IContext2d } from './context';\nimport type { IGraphic, IGraphicAttribute } from './graphic';\nimport type { IMarkAttribute, IThemeAttribute } from './graphic/creator';\nimport type { IFullThemeSpec } from './graphic/theme';\nimport type { ILayer } from './layer';\nimport type { IStage } from './stage';\nimport type { IGroup } from './graphic/group';\nimport type { MaybePromise } from './common';\nimport type { ISyncHook } from './sync-hook';\n\n// 用于绘制的参数,提供context\n// TODO: 考虑是否可以隐藏上下文类型\nexport interface IRenderServiceDrawParams {\n context?: IContext2d;\n\n // 绘制的区域以及是否需要清屏\n clear?: string | IColor | boolean;\n width: number;\n height: number;\n x: number;\n y: number;\n stage: IStage;\n layer: ILayer;\n renderService: IRenderService;\n updateBounds: boolean;\n renderStyle?: string;\n}\n\nexport interface IRenderService {\n dirtyBounds: IBounds;\n renderTreeRoots: IGraphic[]; // 此次render的数组\n renderLists: IGraphic[];\n drawParams: IRenderServiceDrawParams;\n\n prepare: (updateBounds: boolean) => void;\n prepareRenderList: () => void;\n beforeDraw: (params: IRenderServiceDrawParams) => void;\n draw: (params: IRenderServiceDrawParams) => void;\n afterDraw: (params: IRenderServiceDrawParams) => void;\n render: (groups: IGroup[], params: IRenderServiceDrawParams) => MaybePromise<void>;\n}\n\nexport interface IDrawContext extends IRenderServiceDrawParams {\n startAtId?: number;\n break?: boolean;\n restartIncremental?: boolean;\n // multi图元开始的位置\n multiGraphicOptions?: {\n startAtIdx: number;\n length: number;\n };\n in3dInterceptor?: boolean;\n drawContribution?: IDrawContribution;\n // hack内容\n hack_pieFace?: 'inside' | 'bottom' | 'top' | 'outside';\n}\n\nexport interface IDrawContribution {\n hooks?: {\n completeDraw: ISyncHook<[]>;\n };\n dirtyBounds?: IAABBBounds;\n backupDirtyBounds?: IAABBBounds;\n rendering?: boolean;\n currentRenderMap: Map<number, IGraphicRender>;\n defaultRenderMap: Map<number, IGraphicRender>;\n styleRenderMap: Map<string, Map<number, IGraphicRender>>;\n draw: (renderService: IRenderService, drawParams: IDrawContext) => MaybePromise<void>;\n afterDraw?: (renderService: IRenderService, drawParams: IDrawContext) => MaybePromise<void>;\n getRenderContribution: (graphic: IGraphic) => IGraphicRender | null;\n renderGroup: (group: IGroup, drawContext: IDrawContext, matrix: IMatrixLike, skipSort?: boolean) => void;\n renderItem: (graphic: IGraphic, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) => void;\n}\n\nexport interface IGraphicRenderDrawParams {\n beforeDrawCb?: () => void;\n afterDrawCb?: () => void;\n drawingCb?: () => void;\n skipDraw?: boolean;\n theme?: IFullThemeSpec;\n}\n\nexport interface IGraphicRender {\n type: string; // 图元类型\n numberType: number;\n style?: string;\n z?: number;\n draw: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams\n ) => void;\n drawShape?: (\n graphic: IGraphic,\n ctx: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) => void;\n}\n\nexport interface IBeforeRenderConstribution {\n apply: (renderService: IRenderService) => MaybePromise<void>;\n}\n\nexport interface IRenderSelector {\n selector: (graphic: IGraphic) => IGraphicRender | null;\n}\n\nexport interface IDrawItemInterceptorContribution {\n order: number;\n beforeDrawItem?: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n drawContribution: IDrawContribution,\n params?: IGraphicRenderDrawParams\n ) => boolean;\n afterDrawItem?: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n drawContribution: IDrawContribution,\n params?: IGraphicRenderDrawParams\n ) => boolean;\n}\n"]}
@@ -36,9 +36,16 @@ export interface IStageParams {
36
36
  ticker?: ITicker;
37
37
  pluginList?: string[];
38
38
  optimize?: IOptimizeType;
39
+ event?: EventConfig;
39
40
  }
41
+ export type EventConfig = {
42
+ autoPreventDefault?: boolean;
43
+ clickInterval?: number;
44
+ [key: string]: any;
45
+ };
40
46
  export type IOptimizeType = {
41
47
  skipRenderWithOutRange?: boolean;
48
+ disableCheckGraphicWidthOutRange?: boolean;
42
49
  };
43
50
  export interface IOption3D {
44
51
  enableView3dTransform?: boolean;
@@ -91,7 +98,7 @@ export interface IStage extends INode {
91
98
  ticker: ITicker;
92
99
  increaseAutoRender: boolean;
93
100
  readonly renderService: IRenderService;
94
- readonly pickerService: IPickerService;
101
+ pickerService?: IPickerService;
95
102
  readonly pluginService: IPluginService;
96
103
  readonly layerService: ILayerService;
97
104
  createLayer: (canvasId?: string, layerMode?: LayerMode) => ILayer;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interface/stage.ts"],"names":[],"mappings":"","file":"stage.js","sourcesContent":["import type { INode } from './node-tree';\nimport type { ILayer, LayerMode } from './layer';\nimport type { IGraphic } from './graphic';\nimport type { IGroup } from './graphic/group';\nimport type { IColor } from './color';\nimport type { IAABBBounds, IBounds, IBoundsLike, IMatrix, IPointLike } from '@visactor/vutils';\nimport type { ICamera } from './camera';\nimport type { vec3 } from './matrix';\nimport type { IDirectionLight } from './light';\nimport type { ISyncHook } from './sync-hook';\nimport type { IDrawContext, IRenderService } from './render';\nimport type { ITicker, ITimeline } from './animate';\nimport type { IPickerService, PickResult } from './picker';\nimport type { IPluginService } from './plugin';\nimport type { IWindow } from './window';\nimport type { ILayerService } from './core';\n\nexport type IExportType = 'canvas' | 'imageData';\n\nexport interface IStageParams {\n // x: number;\n // y: number;\n // // 视口的宽高\n // viewWidth: number;\n // viewHeight: number;\n\n // 视口的宽高\n viewBox: IBoundsLike;\n // 总的宽高\n width: number;\n height: number;\n dpr: number;\n // stage的背景\n background: string | IColor;\n // 外部的canvas\n canvas: string | HTMLCanvasElement;\n // canvas的container容器,如果不传入canvas,那就会在容器中创建canvas\n container: string | HTMLElement;\n // 是否是受控制的canvas,如果不是的话,不会进行resize等操作,也不会修改canvas的样式\n canvasControled: boolean;\n title: string;\n // 是否开启自动渲染\n autoRender: boolean;\n // 是否开启布局支持\n enableLayout: boolean;\n // 是否关闭脏矩形检测\n disableDirtyBounds: boolean;\n // 是否支持interactiveLayer,默认为true\n interactiveLayer: boolean;\n // 是否支持HTML属性\n enableHtmlAttribute: string | boolean | HTMLElement;\n // 是否支持滚动条\n enableScroll: boolean;\n poptip: boolean;\n // 绘制之前的钩子函数\n beforeRender: (stage: IStage) => void;\n // 绘制之后的钩子函数\n afterRender: (stage: IStage) => void;\n renderStyle?: string;\n ticker?: ITicker;\n pluginList?: string[];\n // 优化配置\n optimize?: IOptimizeType;\n}\n\nexport type IOptimizeType = {\n // 视口不在可视区,跳过渲染,默认为true\n skipRenderWithOutRange?: boolean;\n};\n\nexport interface IOption3D {\n enableView3dTransform?: boolean; // 是否开启view3d自动旋转\n alpha?: number; // x轴的转角\n beta?: number; // y轴的转角\n gama?: number; // z轴的转角\n center?: { x?: number; y?: number; z?: number; dx?: number; dy?: number; dz?: number }; // 中心位置\n fieldRatio?: number; // 透视的视域缩放比例\n fieldDepth?: number;\n light?: {\n dir?: vec3;\n color?: string;\n ambient?: number;\n };\n // 配置相机后,alpha、beta、gamma配置会失效\n camera?: any; // 相机配置\n}\n\n// TODO 命名方式\nexport interface IStage extends INode {\n stage?: IStage;\n parent: IStage | null;\n // rootNode: IStage;\n x: number;\n y: number;\n\n params: Partial<IStageParams>;\n\n window: IWindow;\n\n width: number;\n height: number;\n viewWidth: number;\n viewHeight: number;\n defaultLayer: ILayer;\n dirtyBounds: IBounds | null;\n\n autoRender: boolean;\n renderCount: number;\n\n hooks: {\n beforeRender: ISyncHook<[IStage]>;\n afterRender: ISyncHook<[IStage]>;\n };\n\n option3d?: IOption3D;\n\n set3dOptions: (options: IOption3D) => void;\n light?: IDirectionLight;\n camera?: ICamera;\n\n dpr: number;\n\n viewBox: IBoundsLike;\n background: string | IColor;\n ticker: ITicker;\n increaseAutoRender: boolean;\n readonly renderService: IRenderService;\n readonly pickerService: IPickerService;\n readonly pluginService: IPluginService;\n readonly layerService: ILayerService;\n // 如果传入CanvasId,如果存在相同Id,说明这两个图层使用相同的Canvas绘制\n // 但需要注意的是依然是两个图层(用于解决Table嵌入ChartSpace不影响Table的绘制)\n createLayer: (canvasId?: string, layerMode?: LayerMode) => ILayer;\n getLayer: (name: string) => ILayer;\n sortLayer: (cb: (layer1: ILayer, layer2: ILayer) => number) => void;\n removeLayer: (layerId: number) => ILayer | false;\n\n getTimeline: () => ITimeline;\n\n render: (layers?: ILayer[], params?: Partial<IDrawContext>) => void;\n /**\n * 下一帧渲染\n * @param layers 渲染的图层\n * @param force 是否强行下一帧渲染,不采取优化方案\n * @returns\n */\n renderNextFrame: (layers?: ILayer[], force?: boolean) => void;\n tryInitInteractiveLayer: () => void;\n\n // 画布操作\n resize: (w: number, h: number, rerender?: boolean) => void;\n resizeWindow: (w: number, h: number, rerender?: boolean) => void;\n resizeView: (w: number, h: number, rerender?: boolean) => void;\n setViewBox:\n | ((viewBox: IBoundsLike, rerender: boolean) => void)\n | ((x: number, y: number, w: number, h: number, rerender: boolean) => void)\n | ((x: number | IBoundsLike, y: number | boolean, w?: number, h?: number, rerender?: boolean) => void);\n setDpr: (dpr: number, rerender?: boolean) => void;\n setOrigin: (x: number, y: number) => void;\n export: (type: IExportType) => HTMLCanvasElement | ImageData;\n pick: (x: number, y: number) => PickResult | false;\n\n // 动画相关\n startAnimate: (t: number) => void;\n setToFrame: (t: number) => void;\n dirty: (b: IBounds, matrix?: IMatrix) => void;\n // 考虑操作回放\n\n renderTo: (window: IWindow, params: { x: number; y: number; width: number; height: number }) => void;\n\n renderToNewWindow: (fullImage?: boolean) => IWindow;\n\n toCanvas: (fullImage?: boolean, viewBox?: IAABBBounds) => HTMLCanvasElement | null;\n\n setBeforeRender: (cb: (stage: IStage) => void) => void;\n\n setAfterRender: (cb: (stage: IStage) => void) => void;\n\n afterNextRender: (cb: (stage: IStage) => void) => void;\n enableAutoRender: () => void;\n disableAutoRender: () => void;\n enableIncrementalAutoRender: () => void;\n disableIncrementalAutoRender: () => void;\n enableDirtyBounds: () => void;\n disableDirtyBounds: () => void;\n enableView3dTransform: () => void;\n disableView3dTranform: () => void;\n clearViewBox: (color?: string) => void;\n release: () => void;\n setStage: (stage?: IStage) => void;\n\n setCursor: (mode?: string) => void;\n}\n\nexport declare function combineStage(srages: IStage[], params: { canvas: string | HTMLCanvasElement }): IStage;\n"]}
1
+ {"version":3,"sources":["../src/interface/stage.ts"],"names":[],"mappings":"","file":"stage.js","sourcesContent":["import type { INode } from './node-tree';\nimport type { ILayer, LayerMode } from './layer';\nimport type { IGraphic } from './graphic';\nimport type { IGroup } from './graphic/group';\nimport type { IColor } from './color';\nimport type { IAABBBounds, IBounds, IBoundsLike, IMatrix, IPointLike } from '@visactor/vutils';\nimport type { ICamera } from './camera';\nimport type { vec3 } from './matrix';\nimport type { IDirectionLight } from './light';\nimport type { ISyncHook } from './sync-hook';\nimport type { IDrawContext, IRenderService } from './render';\nimport type { ITicker, ITimeline } from './animate';\nimport type { IPickerService, PickResult } from './picker';\nimport type { IPluginService } from './plugin';\nimport type { IWindow } from './window';\nimport type { ILayerService } from './core';\n\nexport type IExportType = 'canvas' | 'imageData';\n\nexport interface IStageParams {\n // x: number;\n // y: number;\n // // 视口的宽高\n // viewWidth: number;\n // viewHeight: number;\n\n // 视口的宽高\n viewBox: IBoundsLike;\n // 总的宽高\n width: number;\n height: number;\n dpr: number;\n // stage的背景\n background: string | IColor;\n // 外部的canvas\n canvas: string | HTMLCanvasElement;\n // canvas的container容器,如果不传入canvas,那就会在容器中创建canvas\n container: string | HTMLElement;\n // 是否是受控制的canvas,如果不是的话,不会进行resize等操作,也不会修改canvas的样式\n canvasControled: boolean;\n title: string;\n // 是否开启自动渲染\n autoRender: boolean;\n // 是否开启布局支持\n enableLayout: boolean;\n // 是否关闭脏矩形检测\n disableDirtyBounds: boolean;\n // 是否支持interactiveLayer,默认为true\n interactiveLayer: boolean;\n // 是否支持HTML属性\n enableHtmlAttribute: string | boolean | HTMLElement;\n // 是否支持滚动条\n enableScroll: boolean;\n poptip: boolean;\n // 绘制之前的钩子函数\n beforeRender: (stage: IStage) => void;\n // 绘制之后的钩子函数\n afterRender: (stage: IStage) => void;\n renderStyle?: string;\n ticker?: ITicker;\n pluginList?: string[];\n // 优化配置\n optimize?: IOptimizeType;\n /**\n * 事件系统相关配置\n */\n event?: EventConfig;\n}\n\nexport type EventConfig = {\n /** 是否自动阻止事件 */\n autoPreventDefault?: boolean;\n /**\n * 多次点击之间的最大时间,默认为 200 ms\n * @default 200\n */\n clickInterval?: number;\n [key: string]: any;\n};\n\nexport type IOptimizeType = {\n // 视口不在可视区,跳过渲染,默认为true\n skipRenderWithOutRange?: boolean;\n // 跳过图元在区间外的判断\n // 不存在dirtyBounds的时候,根据该配置判断是否关闭图元的超出边界判定\n // 如果有dirtyBounds那么该配置不生效\n disableCheckGraphicWidthOutRange?: boolean;\n};\n\nexport interface IOption3D {\n enableView3dTransform?: boolean; // 是否开启view3d自动旋转\n alpha?: number; // x轴的转角\n beta?: number; // y轴的转角\n gama?: number; // z轴的转角\n center?: { x?: number; y?: number; z?: number; dx?: number; dy?: number; dz?: number }; // 中心位置\n fieldRatio?: number; // 透视的视域缩放比例\n fieldDepth?: number;\n light?: {\n dir?: vec3;\n color?: string;\n ambient?: number;\n };\n // 配置相机后,alpha、beta、gamma配置会失效\n camera?: any; // 相机配置\n}\n\n// TODO 命名方式\nexport interface IStage extends INode {\n stage?: IStage;\n parent: IStage | null;\n // rootNode: IStage;\n x: number;\n y: number;\n\n params: Partial<IStageParams>;\n\n window: IWindow;\n\n width: number;\n height: number;\n viewWidth: number;\n viewHeight: number;\n defaultLayer: ILayer;\n dirtyBounds: IBounds | null;\n\n autoRender: boolean;\n renderCount: number;\n\n hooks: {\n beforeRender: ISyncHook<[IStage]>;\n afterRender: ISyncHook<[IStage]>;\n };\n\n option3d?: IOption3D;\n\n set3dOptions: (options: IOption3D) => void;\n light?: IDirectionLight;\n camera?: ICamera;\n\n dpr: number;\n\n viewBox: IBoundsLike;\n background: string | IColor;\n ticker: ITicker;\n increaseAutoRender: boolean;\n readonly renderService: IRenderService;\n pickerService?: IPickerService;\n readonly pluginService: IPluginService;\n readonly layerService: ILayerService;\n // 如果传入CanvasId,如果存在相同Id,说明这两个图层使用相同的Canvas绘制\n // 但需要注意的是依然是两个图层(用于解决Table嵌入ChartSpace不影响Table的绘制)\n createLayer: (canvasId?: string, layerMode?: LayerMode) => ILayer;\n getLayer: (name: string) => ILayer;\n sortLayer: (cb: (layer1: ILayer, layer2: ILayer) => number) => void;\n removeLayer: (layerId: number) => ILayer | false;\n\n getTimeline: () => ITimeline;\n\n render: (layers?: ILayer[], params?: Partial<IDrawContext>) => void;\n /**\n * 下一帧渲染\n * @param layers 渲染的图层\n * @param force 是否强行下一帧渲染,不采取优化方案\n * @returns\n */\n renderNextFrame: (layers?: ILayer[], force?: boolean) => void;\n tryInitInteractiveLayer: () => void;\n\n // 画布操作\n resize: (w: number, h: number, rerender?: boolean) => void;\n resizeWindow: (w: number, h: number, rerender?: boolean) => void;\n resizeView: (w: number, h: number, rerender?: boolean) => void;\n setViewBox:\n | ((viewBox: IBoundsLike, rerender: boolean) => void)\n | ((x: number, y: number, w: number, h: number, rerender: boolean) => void)\n | ((x: number | IBoundsLike, y: number | boolean, w?: number, h?: number, rerender?: boolean) => void);\n setDpr: (dpr: number, rerender?: boolean) => void;\n setOrigin: (x: number, y: number) => void;\n export: (type: IExportType) => HTMLCanvasElement | ImageData;\n pick: (x: number, y: number) => PickResult | false;\n\n // 动画相关\n startAnimate: (t: number) => void;\n setToFrame: (t: number) => void;\n dirty: (b: IBounds, matrix?: IMatrix) => void;\n // 考虑操作回放\n\n renderTo: (window: IWindow, params: { x: number; y: number; width: number; height: number }) => void;\n\n renderToNewWindow: (fullImage?: boolean) => IWindow;\n\n toCanvas: (fullImage?: boolean, viewBox?: IAABBBounds) => HTMLCanvasElement | null;\n\n setBeforeRender: (cb: (stage: IStage) => void) => void;\n\n setAfterRender: (cb: (stage: IStage) => void) => void;\n\n afterNextRender: (cb: (stage: IStage) => void) => void;\n enableAutoRender: () => void;\n disableAutoRender: () => void;\n enableIncrementalAutoRender: () => void;\n disableIncrementalAutoRender: () => void;\n enableDirtyBounds: () => void;\n disableDirtyBounds: () => void;\n enableView3dTransform: () => void;\n disableView3dTranform: () => void;\n clearViewBox: (color?: string) => void;\n release: () => void;\n setStage: (stage?: IStage) => void;\n\n setCursor: (mode?: string) => void;\n}\n\nexport declare function combineStage(srages: IStage[], params: { canvas: string | HTMLCanvasElement }): IStage;\n"]}
@@ -27,7 +27,7 @@ export interface ITextMeasure extends IContribution<IGraphicUtil> {
27
27
  }[];
28
28
  width: number;
29
29
  };
30
- clipTextWithSuffix: (text: string, options: TextOptionsType, width: number, suffix: string, wordBreak: boolean) => {
30
+ clipTextWithSuffix: (text: string, options: TextOptionsType, width: number, suffix: string, wordBreak: boolean, position: 'start' | 'end' | 'middle') => {
31
31
  str: string;
32
32
  width: number;
33
33
  };
@@ -35,7 +35,7 @@ export interface ITextMeasure extends IContribution<IGraphicUtil> {
35
35
  text: string;
36
36
  width?: number;
37
37
  direction: number;
38
- }[], options: TextOptionsType, width: number, suffix: string, wordBreak: boolean) => {
38
+ }[], options: TextOptionsType, width: number, suffix: string, wordBreak: boolean, suffixPosition: 'start' | 'end' | 'middle') => {
39
39
  verticalList: {
40
40
  text: string;
41
41
  width?: number;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interface/text.ts"],"names":[],"mappings":"","file":"text.js","sourcesContent":["import type { IContribution } from './contribution';\nimport type { IGraphicUtil } from './core';\n\nexport interface TextOptionsType {\n fontSize?: number;\n fontWeight?: string | number;\n fontFamily?: string;\n fontStyle?: string;\n fontVariant?: string;\n}\n\nexport interface ITextMeasure extends IContribution<IGraphicUtil> {\n measureTextWidth: (text: string, options: TextOptionsType) => number;\n measureTextPixelHeight: (text: string, options: TextOptionsType) => number;\n measureTextBoundHieght: (text: string, options: TextOptionsType) => number;\n clipText: (\n text: string,\n options: TextOptionsType,\n width: number,\n wordBreak: boolean\n ) => { str: string; width: number };\n clipTextVertical: (\n verticalList: { text: string; width?: number; direction: number }[],\n options: TextOptionsType,\n width: number,\n wordBreak: boolean\n ) => { verticalList: { text: string; width?: number; direction: number }[]; width: number };\n clipTextWithSuffix: (\n text: string,\n options: TextOptionsType,\n width: number,\n suffix: string,\n wordBreak: boolean\n ) => { str: string; width: number };\n clipTextWithSuffixVertical: (\n verticalList: { text: string; width?: number; direction: number }[],\n options: TextOptionsType,\n width: number,\n suffix: string,\n wordBreak: boolean\n ) => { verticalList: { text: string; width?: number; direction: number }[]; width: number };\n measureText: (text: string, options: TextOptionsType) => { width: number };\n}\n"]}
1
+ {"version":3,"sources":["../src/interface/text.ts"],"names":[],"mappings":"","file":"text.js","sourcesContent":["import type { IContribution } from './contribution';\nimport type { IGraphicUtil } from './core';\n\nexport interface TextOptionsType {\n fontSize?: number;\n fontWeight?: string | number;\n fontFamily?: string;\n fontStyle?: string;\n fontVariant?: string;\n}\n\nexport interface ITextMeasure extends IContribution<IGraphicUtil> {\n measureTextWidth: (text: string, options: TextOptionsType) => number;\n measureTextPixelHeight: (text: string, options: TextOptionsType) => number;\n measureTextBoundHieght: (text: string, options: TextOptionsType) => number;\n clipText: (\n text: string,\n options: TextOptionsType,\n width: number,\n wordBreak: boolean\n ) => { str: string; width: number };\n clipTextVertical: (\n verticalList: { text: string; width?: number; direction: number }[],\n options: TextOptionsType,\n width: number,\n wordBreak: boolean\n ) => { verticalList: { text: string; width?: number; direction: number }[]; width: number };\n clipTextWithSuffix: (\n text: string,\n options: TextOptionsType,\n width: number,\n suffix: string,\n wordBreak: boolean,\n position: 'start' | 'end' | 'middle'\n ) => { str: string; width: number };\n clipTextWithSuffixVertical: (\n verticalList: { text: string; width?: number; direction: number }[],\n options: TextOptionsType,\n width: number,\n suffix: string,\n wordBreak: boolean,\n suffixPosition: 'start' | 'end' | 'middle'\n ) => { verticalList: { text: string; width?: number; direction: number }[]; width: number };\n measureText: (text: string, options: TextOptionsType) => { width: number };\n}\n"]}
package/cjs/modules.d.ts CHANGED
@@ -1,8 +1,7 @@
1
- import type { IGlobal, IGraphicService, IPickerService } from './interface';
1
+ import type { IGlobal, IGraphicService } from './interface';
2
2
  import type { IGraphicUtil, ILayerService, ITransformUtil } from './interface/core';
3
3
  export declare const vglobal: IGlobal;
4
4
  export declare const graphicUtil: IGraphicUtil;
5
5
  export declare const transformUtil: ITransformUtil;
6
6
  export declare const graphicService: IGraphicService;
7
- export declare const pickerService: IPickerService;
8
7
  export declare const layerService: ILayerService;
package/cjs/modules.js CHANGED
@@ -8,17 +8,17 @@ var __importDefault = this && this.__importDefault || function(mod) {
8
8
 
9
9
  Object.defineProperty(exports, "__esModule", {
10
10
  value: !0
11
- }), exports.layerService = exports.pickerService = exports.graphicService = exports.transformUtil = exports.graphicUtil = exports.vglobal = void 0;
11
+ }), exports.layerService = exports.graphicService = exports.transformUtil = exports.graphicUtil = exports.vglobal = void 0;
12
12
 
13
- const core_modules_1 = __importDefault(require("./core/core-modules")), render_modules_1 = __importDefault(require("./render/render-modules")), pick_modules_1 = __importDefault(require("./picker/pick-modules")), graphic_module_1 = __importDefault(require("./graphic/graphic-service/graphic-module")), plugin_modules_1 = __importDefault(require("./plugins/plugin-modules")), modules_1 = __importDefault(require("./core/contributions/modules")), modules_2 = __importDefault(require("./render/contributions/modules")), constants_1 = require("./core/constants"), constants_2 = require("./picker/constants"), application_1 = require("./application"), constants_3 = require("./graphic/constants"), constants_4 = require("./core/constants"), container_1 = require("./container"), constants_5 = require("./constants");
13
+ const core_modules_1 = __importDefault(require("./core/core-modules")), render_modules_1 = __importDefault(require("./render/render-modules")), pick_modules_1 = __importDefault(require("./picker/pick-modules")), graphic_module_1 = __importDefault(require("./graphic/graphic-service/graphic-module")), plugin_modules_1 = __importDefault(require("./plugins/plugin-modules")), modules_1 = __importDefault(require("./core/contributions/modules")), modules_2 = __importDefault(require("./render/contributions/modules")), constants_1 = require("./core/constants"), application_1 = require("./application"), constants_2 = require("./graphic/constants"), constants_3 = require("./core/constants"), container_1 = require("./container"), constants_4 = require("./constants");
14
14
 
15
15
  container_1.container.load(core_modules_1.default), container_1.container.load(graphic_module_1.default),
16
16
  container_1.container.load(render_modules_1.default), container_1.container.load(pick_modules_1.default),
17
17
  container_1.container.load(plugin_modules_1.default), (0, modules_1.default)(container_1.container),
18
- (0, modules_2.default)(container_1.container), exports.vglobal = container_1.container.get(constants_5.VGlobal),
19
- application_1.application.global = exports.vglobal, exports.graphicUtil = container_1.container.get(constants_4.GraphicUtil),
20
- application_1.application.graphicUtil = exports.graphicUtil, exports.transformUtil = container_1.container.get(constants_4.TransformUtil),
21
- application_1.application.transformUtil = exports.transformUtil, exports.graphicService = container_1.container.get(constants_3.GraphicService),
22
- application_1.application.graphicService = exports.graphicService, exports.pickerService = container_1.container.get(constants_2.GlobalPickerService),
23
- exports.layerService = container_1.container.get(constants_1.LayerService), application_1.application.layerService = exports.layerService;
18
+ (0, modules_2.default)(container_1.container), exports.vglobal = container_1.container.get(constants_4.VGlobal),
19
+ application_1.application.global = exports.vglobal, exports.graphicUtil = container_1.container.get(constants_3.GraphicUtil),
20
+ application_1.application.graphicUtil = exports.graphicUtil, exports.transformUtil = container_1.container.get(constants_3.TransformUtil),
21
+ application_1.application.transformUtil = exports.transformUtil, exports.graphicService = container_1.container.get(constants_2.GraphicService),
22
+ application_1.application.graphicService = exports.graphicService, exports.layerService = container_1.container.get(constants_1.LayerService),
23
+ application_1.application.layerService = exports.layerService;
24
24
  //# sourceMappingURL=modules.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/modules.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA6C;AAC7C,6EAAmD;AACnD,yEAA+C;AAE/C,8FAAqE;AACrE,8EAAoD;AACpD,2EAAoE;AACpE,6EAAqE;AAGrE,gDAAgD;AAEhD,kDAAyD;AAEzD,+CAA4C;AAE5C,mDAAqD;AACrD,gDAA8D;AAC9D,2CAAwC;AACxC,2CAAsC;AAEtC,qBAAS,CAAC,IAAI,CAAC,sBAAU,CAAC,CAAC;AAC3B,qBAAS,CAAC,IAAI,CAAC,wBAAa,CAAC,CAAC;AAC9B,qBAAS,CAAC,IAAI,CAAC,wBAAY,CAAC,CAAC;AAC7B,qBAAS,CAAC,IAAI,CAAC,sBAAU,CAAC,CAAC;AAE3B,qBAAS,CAAC,IAAI,CAAC,wBAAY,CAAC,CAAC;AAC7B,IAAA,iBAAwB,EAAC,qBAAS,CAAC,CAAC;AACpC,IAAA,iBAAuB,EAAC,qBAAS,CAAC,CAAC;AAKtB,QAAA,OAAO,GAAG,qBAAS,CAAC,GAAG,CAAU,mBAAO,CAAC,CAAC;AACvD,yBAAW,CAAC,MAAM,GAAG,eAAO,CAAC;AAChB,QAAA,WAAW,GAAG,qBAAS,CAAC,GAAG,CAAe,uBAAW,CAAC,CAAC;AACpE,yBAAW,CAAC,WAAW,GAAG,mBAAW,CAAC;AACzB,QAAA,aAAa,GAAG,qBAAS,CAAC,GAAG,CAAiB,yBAAa,CAAC,CAAC;AAC1E,yBAAW,CAAC,aAAa,GAAG,qBAAa,CAAC;AAC7B,QAAA,cAAc,GAAG,qBAAS,CAAC,GAAG,CAAkB,0BAAc,CAAC,CAAC;AAC7E,yBAAW,CAAC,cAAc,GAAG,sBAAc,CAAC;AAY/B,QAAA,aAAa,GAAG,qBAAS,CAAC,GAAG,CAAiB,+BAAmB,CAAC,CAAC;AACnE,QAAA,YAAY,GAAG,qBAAS,CAAC,GAAG,CAAgB,wBAAY,CAAC,CAAC;AACvE,yBAAW,CAAC,YAAY,GAAG,oBAAY,CAAC","file":"modules.js","sourcesContent":["import coreModule from './core/core-modules';\nimport renderModule from './render/render-modules';\nimport pickModule from './picker/pick-modules';\n// import allocatorModule from './allocator/allocator-modules';\nimport graphicModule from './graphic/graphic-service/graphic-module';\nimport pluginModule from './plugins/plugin-modules';\nimport loadBuiltinContributions from './core/contributions/modules';\nimport loadRenderContributions from './render/contributions/modules';\n// import loadPickContributions from './picker/contributions/modules';\n// import loadCanvasContributions from './canvas/contributions/modules';\nimport { LayerService } from './core/constants';\n// import { IMat4Allocate, IMatrixAllocate, Mat4Allocate, MatrixAllocate } from './allocator/matrix-allocate';\nimport { GlobalPickerService } from './picker/constants';\nimport type { IGlobal, IGraphicService, IPickerService } from './interface';\nimport { application } from './application';\nimport type { IGraphicUtil, ILayerService, ITransformUtil } from './interface/core';\nimport { GraphicService } from './graphic/constants';\nimport { GraphicUtil, TransformUtil } from './core/constants';\nimport { container } from './container';\nimport { VGlobal } from './constants';\n\ncontainer.load(coreModule);\ncontainer.load(graphicModule);\ncontainer.load(renderModule);\ncontainer.load(pickModule);\n// container.load(allocatorModule);\ncontainer.load(pluginModule);\nloadBuiltinContributions(container);\nloadRenderContributions(container);\n// loadPickContributions(container);\n// loadCanvasContributions(container);\n\n// 全局变量\nexport const vglobal = container.get<IGlobal>(VGlobal);\napplication.global = vglobal;\nexport const graphicUtil = container.get<IGraphicUtil>(GraphicUtil);\napplication.graphicUtil = graphicUtil;\nexport const transformUtil = container.get<ITransformUtil>(TransformUtil);\napplication.transformUtil = transformUtil;\nexport const graphicService = container.get<IGraphicService>(GraphicService);\napplication.graphicService = graphicService;\n// export const matrixAllocate = container.get<IMatrixAllocate>(MatrixAllocate);\n// export const mat4Allocate = container.get<IMat4Allocate>(Mat4Allocate);\n// export const canvasAllocate = container.get<ICanvasAllocate>(CanvasAllocate);\n// export const arcAllocate = container.get<IArcAllocate>(ArcAllocate);\n// export const areaAllocate = container.get<IAreaAllocate>(AreaAllocate);\n// export const circleAllocate = container.get<ICircleAllocate>(CircleAllocate);\n// export const lineAllocate = container.get<ILineAllocate>(LineAllocate);\n// export const pathAllocate = container.get<IPathAllocate>(PathAllocate);\n// export const rectAllocate = container.get<IRectAllocate>(RectAllocate);\n// export const symbolAllocate = container.get<ISymbolAllocate>(SymbolAllocate);\n// export const textAllocate = container.get<ITextAllocate>(TextAllocate);\nexport const pickerService = container.get<IPickerService>(GlobalPickerService);\nexport const layerService = container.get<ILayerService>(LayerService);\napplication.layerService = layerService;\n"]}
1
+ {"version":3,"sources":["../src/modules.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA6C;AAC7C,6EAAmD;AACnD,yEAA+C;AAE/C,8FAAqE;AACrE,8EAAoD;AACpD,2EAAoE;AACpE,6EAAqE;AAGrE,gDAAgD;AAIhD,+CAA4C;AAE5C,mDAAqD;AACrD,gDAA8D;AAC9D,2CAAwC;AACxC,2CAAsC;AAEtC,qBAAS,CAAC,IAAI,CAAC,sBAAU,CAAC,CAAC;AAC3B,qBAAS,CAAC,IAAI,CAAC,wBAAa,CAAC,CAAC;AAC9B,qBAAS,CAAC,IAAI,CAAC,wBAAY,CAAC,CAAC;AAC7B,qBAAS,CAAC,IAAI,CAAC,sBAAU,CAAC,CAAC;AAE3B,qBAAS,CAAC,IAAI,CAAC,wBAAY,CAAC,CAAC;AAC7B,IAAA,iBAAwB,EAAC,qBAAS,CAAC,CAAC;AACpC,IAAA,iBAAuB,EAAC,qBAAS,CAAC,CAAC;AAKtB,QAAA,OAAO,GAAG,qBAAS,CAAC,GAAG,CAAU,mBAAO,CAAC,CAAC;AACvD,yBAAW,CAAC,MAAM,GAAG,eAAO,CAAC;AAChB,QAAA,WAAW,GAAG,qBAAS,CAAC,GAAG,CAAe,uBAAW,CAAC,CAAC;AACpE,yBAAW,CAAC,WAAW,GAAG,mBAAW,CAAC;AACzB,QAAA,aAAa,GAAG,qBAAS,CAAC,GAAG,CAAiB,yBAAa,CAAC,CAAC;AAC1E,yBAAW,CAAC,aAAa,GAAG,qBAAa,CAAC;AAC7B,QAAA,cAAc,GAAG,qBAAS,CAAC,GAAG,CAAkB,0BAAc,CAAC,CAAC;AAC7E,yBAAW,CAAC,cAAc,GAAG,sBAAc,CAAC;AAa/B,QAAA,YAAY,GAAG,qBAAS,CAAC,GAAG,CAAgB,wBAAY,CAAC,CAAC;AACvE,yBAAW,CAAC,YAAY,GAAG,oBAAY,CAAC","file":"modules.js","sourcesContent":["import coreModule from './core/core-modules';\nimport renderModule from './render/render-modules';\nimport pickModule from './picker/pick-modules';\n// import allocatorModule from './allocator/allocator-modules';\nimport graphicModule from './graphic/graphic-service/graphic-module';\nimport pluginModule from './plugins/plugin-modules';\nimport loadBuiltinContributions from './core/contributions/modules';\nimport loadRenderContributions from './render/contributions/modules';\n// import loadPickContributions from './picker/contributions/modules';\n// import loadCanvasContributions from './canvas/contributions/modules';\nimport { LayerService } from './core/constants';\n// import { IMat4Allocate, IMatrixAllocate, Mat4Allocate, MatrixAllocate } from './allocator/matrix-allocate';\n// import { GlobalPickerService } from './picker/constants';\nimport type { IGlobal, IGraphicService, IPickerService } from './interface';\nimport { application } from './application';\nimport type { IGraphicUtil, ILayerService, ITransformUtil } from './interface/core';\nimport { GraphicService } from './graphic/constants';\nimport { GraphicUtil, TransformUtil } from './core/constants';\nimport { container } from './container';\nimport { VGlobal } from './constants';\n\ncontainer.load(coreModule);\ncontainer.load(graphicModule);\ncontainer.load(renderModule);\ncontainer.load(pickModule);\n// container.load(allocatorModule);\ncontainer.load(pluginModule);\nloadBuiltinContributions(container);\nloadRenderContributions(container);\n// loadPickContributions(container);\n// loadCanvasContributions(container);\n\n// 全局变量\nexport const vglobal = container.get<IGlobal>(VGlobal);\napplication.global = vglobal;\nexport const graphicUtil = container.get<IGraphicUtil>(GraphicUtil);\napplication.graphicUtil = graphicUtil;\nexport const transformUtil = container.get<ITransformUtil>(TransformUtil);\napplication.transformUtil = transformUtil;\nexport const graphicService = container.get<IGraphicService>(GraphicService);\napplication.graphicService = graphicService;\n// export const matrixAllocate = container.get<IMatrixAllocate>(MatrixAllocate);\n// export const mat4Allocate = container.get<IMat4Allocate>(Mat4Allocate);\n// export const canvasAllocate = container.get<ICanvasAllocate>(CanvasAllocate);\n// export const arcAllocate = container.get<IArcAllocate>(ArcAllocate);\n// export const areaAllocate = container.get<IAreaAllocate>(AreaAllocate);\n// export const circleAllocate = container.get<ICircleAllocate>(CircleAllocate);\n// export const lineAllocate = container.get<ILineAllocate>(LineAllocate);\n// export const pathAllocate = container.get<IPathAllocate>(PathAllocate);\n// export const rectAllocate = container.get<IRectAllocate>(RectAllocate);\n// export const symbolAllocate = container.get<ISymbolAllocate>(SymbolAllocate);\n// export const textAllocate = container.get<ITextAllocate>(TextAllocate);\n// export const pickerService = container.get<IPickerService>(GlobalPickerService);\nexport const layerService = container.get<ILayerService>(LayerService);\napplication.layerService = layerService;\n"]}
@@ -1,10 +1,10 @@
1
1
  import type { IMatrix, IPointLike } from '@visactor/vutils';
2
2
  import type { IGraphic, IGroup, EnvType, IGlobal, IPickerService, IGraphicPicker, IPickParams, PickResult } from '../interface';
3
3
  export declare class DefaultGlobalPickerService implements IPickerService {
4
- readonly global: IGlobal;
5
4
  type: 'global';
6
5
  pickerMap: Map<number, IGraphicPicker>;
7
- constructor(global: IGlobal);
6
+ global: IGlobal;
7
+ constructor();
8
8
  configure(global: IGlobal, env: EnvType): void;
9
9
  pick(graphics: IGraphic[], point: IPointLike, params?: IPickParams): PickResult;
10
10
  containsPoint(graphic: IGraphic, point: IPointLike, params?: IPickParams): boolean;
@@ -6,21 +6,17 @@ var __decorate = this && this.__decorate || function(decorators, target, key, de
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  }, __metadata = this && this.__metadata || function(k, v) {
8
8
  if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
9
- }, __param = this && this.__param || function(paramIndex, decorator) {
10
- return function(target, key) {
11
- decorator(target, key, paramIndex);
12
- };
13
9
  };
14
10
 
15
11
  Object.defineProperty(exports, "__esModule", {
16
12
  value: !0
17
13
  }), exports.DefaultGlobalPickerService = void 0;
18
14
 
19
- const vutils_1 = require("@visactor/vutils"), inversify_lite_1 = require("../common/inversify-lite"), constants_1 = require("../constants");
15
+ const vutils_1 = require("@visactor/vutils"), inversify_lite_1 = require("../common/inversify-lite"), application_1 = require("../application");
20
16
 
21
17
  let DefaultGlobalPickerService = class {
22
- constructor(global) {
23
- this.global = global, this.global.hooks.onSetEnv.tap("global-picker-service", ((lastEnv, env, global) => {
18
+ constructor() {
19
+ this.global = application_1.application.global, this.global.hooks.onSetEnv.tap("global-picker-service", ((lastEnv, env, global) => {
24
20
  this.configure(global, env);
25
21
  })), this.configure(this.global, this.global.env);
26
22
  }
@@ -81,7 +77,6 @@ let DefaultGlobalPickerService = class {
81
77
  }
82
78
  };
83
79
 
84
- DefaultGlobalPickerService = __decorate([ (0, inversify_lite_1.injectable)(), __param(0, (0,
85
- inversify_lite_1.inject)(constants_1.VGlobal)), __metadata("design:paramtypes", [ Object ]) ], DefaultGlobalPickerService),
80
+ DefaultGlobalPickerService = __decorate([ (0, inversify_lite_1.injectable)(), __metadata("design:paramtypes", []) ], DefaultGlobalPickerService),
86
81
  exports.DefaultGlobalPickerService = DefaultGlobalPickerService;
87
82
  //# sourceMappingURL=global-picker-service.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/global-picker-service.ts"],"names":[],"mappings":"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","file":"global-picker-service.js","sourcesContent":["import type { IMatrix, IPoint, IPointLike } from '@visactor/vutils';\nimport { Matrix, Point } from '@visactor/vutils';\nimport { inject, injectable } from '../common/inversify-lite';\nimport type {\n IGraphic,\n IGroup,\n EnvType,\n IGlobal,\n IPickerService,\n IGraphicPicker,\n IPickParams,\n PickResult\n} from '../interface';\nimport { VGlobal } from '../constants';\n\n// 默认的pick-service,提供基本的最优选中策略,尽量不需要用户自己实现contribution\n// 用户可以写plugin\n@injectable()\nexport class DefaultGlobalPickerService implements IPickerService {\n type: 'global';\n\n declare pickerMap: Map<number, IGraphicPicker>;\n\n constructor(\n // @inject(ContributionProvider)\n // @named(PickerContribution)\n // protected readonly contributions: ContributionProvider<IPickerContribution>,\n @inject(VGlobal) public readonly global: IGlobal\n ) {\n this.global.hooks.onSetEnv.tap('global-picker-service', (lastEnv, env, global) => {\n this.configure(global, env);\n });\n this.configure(this.global, this.global.env);\n }\n\n configure(global: IGlobal, env: EnvType) {\n // if (!this.global.env) return;\n // this.contributions.getContributions().forEach(handlerContribution => {\n // handlerContribution.configure(this, this.global);\n // });\n }\n\n // todo: params支持\n // todo: 性能优化\n pick(graphics: IGraphic[], point: IPointLike, params?: IPickParams): PickResult {\n let result: PickResult = {\n graphic: null,\n group: null\n };\n const parentMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n let group: IGroup;\n for (let i = 0; i < graphics.length; i++) {\n if (graphics[i].isContainer) {\n result = this.pickGroup(graphics[i] as IGroup, point, parentMatrix, params);\n } else {\n const data = this.pickItem(graphics[i], point, parentMatrix, params);\n if (data) {\n result.graphic = data.graphic;\n result.params = data.params;\n }\n }\n if (result.graphic) {\n break;\n }\n if (!group) {\n group = result.group;\n }\n }\n if (!result.graphic) {\n result.group = group;\n }\n // 判断是否有shadow-dom\n if (result.graphic) {\n let g = result.graphic;\n while (g.parent) {\n g = g.parent;\n }\n if (g.shadowHost) {\n result.params = {\n shadowTarget: result.graphic\n };\n result.graphic = g.shadowHost;\n }\n }\n return result;\n }\n\n containsPoint(graphic: IGraphic, point: IPointLike, params?: IPickParams): boolean {\n return !!this.pickItem(graphic, point, null, params);\n }\n\n pickGroup(group: IGroup, point: IPointLike, parentMatrix: IMatrix, params?: IPickParams): PickResult {\n let result: PickResult = {\n group: null,\n graphic: null\n };\n if (group.attribute.visibleAll === false) {\n return result;\n }\n // 转换坐标空间\n const transMatrix = group.transMatrix;\n\n const newPoint: IPoint = new Point(point.x, point.y);\n parentMatrix.transformPoint(newPoint, newPoint);\n const insideGroup = group.AABBBounds.containsPoint(newPoint);\n // 如果group没有被选中,直接跳过\n if (!insideGroup) {\n return result;\n }\n // todo: 支持带有path的group的选中\n const groupPicked = group.attribute.pickable !== false && insideGroup;\n\n parentMatrix.multiply(transMatrix.a, transMatrix.b, transMatrix.c, transMatrix.d, transMatrix.e, transMatrix.f);\n\n if (group.attribute.childrenPickable !== false) {\n group.forEachChildren((graphic: IGraphic) => {\n if (graphic.isContainer) {\n result = this.pickGroup(graphic as IGroup, point, parentMatrix, params);\n } else {\n const newPoint: IPoint = new Point(point.x, point.y);\n parentMatrix.transformPoint(newPoint, newPoint);\n const data = this.pickItem(graphic, newPoint, parentMatrix, params);\n if (data) {\n result.graphic = data.graphic;\n result.params = data.params;\n }\n }\n return !!result.graphic || !!result.group;\n });\n }\n\n if (!result.graphic && !result.group && groupPicked) {\n result.group = group;\n }\n\n return result;\n }\n\n // todo: switch统一改为数字map\n pickItem(\n graphic: IGraphic,\n point: IPointLike,\n parentMatrix: IMatrix | null,\n params?: IPickParams\n ): PickResult | null {\n if (graphic.attribute.pickable === false) {\n return null;\n }\n if (graphic.AABBBounds.containsPoint(point)) {\n return {\n graphic: graphic\n };\n }\n return null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/picker/global-picker-service.ts"],"names":[],"mappings":"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","file":"global-picker-service.js","sourcesContent":["import type { IMatrix, IPoint, IPointLike } from '@visactor/vutils';\nimport { Matrix, Point } from '@visactor/vutils';\nimport { inject, injectable } from '../common/inversify-lite';\nimport type {\n IGraphic,\n IGroup,\n EnvType,\n IGlobal,\n IPickerService,\n IGraphicPicker,\n IPickParams,\n PickResult\n} from '../interface';\nimport { application } from '../application';\n\n// 默认的pick-service,提供基本的最优选中策略,尽量不需要用户自己实现contribution\n// 用户可以写plugin\n@injectable()\nexport class DefaultGlobalPickerService implements IPickerService {\n type: 'global';\n\n declare pickerMap: Map<number, IGraphicPicker>;\n declare global: IGlobal;\n\n constructor() {\n this.global = application.global;\n this.global.hooks.onSetEnv.tap('global-picker-service', (lastEnv, env, global) => {\n this.configure(global, env);\n });\n this.configure(this.global, this.global.env);\n }\n\n configure(global: IGlobal, env: EnvType) {\n // if (!this.global.env) return;\n // this.contributions.getContributions().forEach(handlerContribution => {\n // handlerContribution.configure(this, this.global);\n // });\n }\n\n // todo: params支持\n // todo: 性能优化\n pick(graphics: IGraphic[], point: IPointLike, params?: IPickParams): PickResult {\n let result: PickResult = {\n graphic: null,\n group: null\n };\n const parentMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n let group: IGroup;\n for (let i = 0; i < graphics.length; i++) {\n if (graphics[i].isContainer) {\n result = this.pickGroup(graphics[i] as IGroup, point, parentMatrix, params);\n } else {\n const data = this.pickItem(graphics[i], point, parentMatrix, params);\n if (data) {\n result.graphic = data.graphic;\n result.params = data.params;\n }\n }\n if (result.graphic) {\n break;\n }\n if (!group) {\n group = result.group;\n }\n }\n if (!result.graphic) {\n result.group = group;\n }\n // 判断是否有shadow-dom\n if (result.graphic) {\n let g = result.graphic;\n while (g.parent) {\n g = g.parent;\n }\n if (g.shadowHost) {\n result.params = {\n shadowTarget: result.graphic\n };\n result.graphic = g.shadowHost;\n }\n }\n return result;\n }\n\n containsPoint(graphic: IGraphic, point: IPointLike, params?: IPickParams): boolean {\n return !!this.pickItem(graphic, point, null, params);\n }\n\n pickGroup(group: IGroup, point: IPointLike, parentMatrix: IMatrix, params?: IPickParams): PickResult {\n let result: PickResult = {\n group: null,\n graphic: null\n };\n if (group.attribute.visibleAll === false) {\n return result;\n }\n // 转换坐标空间\n const transMatrix = group.transMatrix;\n\n const newPoint: IPoint = new Point(point.x, point.y);\n parentMatrix.transformPoint(newPoint, newPoint);\n const insideGroup = group.AABBBounds.containsPoint(newPoint);\n // 如果group没有被选中,直接跳过\n if (!insideGroup) {\n return result;\n }\n // todo: 支持带有path的group的选中\n const groupPicked = group.attribute.pickable !== false && insideGroup;\n\n parentMatrix.multiply(transMatrix.a, transMatrix.b, transMatrix.c, transMatrix.d, transMatrix.e, transMatrix.f);\n\n if (group.attribute.childrenPickable !== false) {\n group.forEachChildren((graphic: IGraphic) => {\n if (graphic.isContainer) {\n result = this.pickGroup(graphic as IGroup, point, parentMatrix, params);\n } else {\n const newPoint: IPoint = new Point(point.x, point.y);\n parentMatrix.transformPoint(newPoint, newPoint);\n const data = this.pickItem(graphic, newPoint, parentMatrix, params);\n if (data) {\n result.graphic = data.graphic;\n result.params = data.params;\n }\n }\n return !!result.graphic || !!result.group;\n });\n }\n\n if (!result.graphic && !result.group && groupPicked) {\n result.group = group;\n }\n\n return result;\n }\n\n // todo: switch统一改为数字map\n pickItem(\n graphic: IGraphic,\n point: IPointLike,\n parentMatrix: IMatrix | null,\n params?: IPickParams\n ): PickResult | null {\n if (graphic.attribute.pickable === false) {\n return null;\n }\n if (graphic.AABBBounds.containsPoint(point)) {\n return {\n graphic: graphic\n };\n }\n return null;\n }\n}\n"]}
@@ -114,7 +114,8 @@ let Canvas3DPickItemInterceptor = class {
114
114
  graphic.add(g);
115
115
  }));
116
116
  } else result = pickerService.pickGroup(graphic, point, params.parentMatrix, pickParams);
117
- return context.camera = null, pickParams.in3dInterceptor = !1, result;
117
+ return context.camera = null, pickParams.in3dInterceptor = !1, context.restore(),
118
+ result;
118
119
  }
119
120
  return context.restore(), null;
120
121
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/pick-interceptor.ts"],"names":[],"mappings":"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","file":"pick-interceptor.js","sourcesContent":["import type { IMatrix, IPointLike } from '@visactor/vutils';\nimport { Point, pi2 } from '@visactor/vutils';\nimport { injectable } from '../common/inversify-lite';\nimport { ARC3D_NUMBER_TYPE } from '../graphic/constants';\nimport type {\n IArc,\n IContext2d,\n IGraphic,\n IGroup,\n IPickItemInterceptorContribution,\n IPickParams,\n IPickerService,\n PickResult\n} from '../interface';\nimport { matrixAllocate } from '../allocator/matrix-allocate';\n\n// 拦截器\nexport const PickItemInterceptor = Symbol.for('PickItemInterceptor');\n\n/**\n * 影子节点拦截器,用于渲染影子节点\n */\n@injectable()\nexport class ShadowRootPickItemInterceptorContribution implements IPickItemInterceptorContribution {\n order: number = 1;\n afterPickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ): null | PickResult {\n if (graphic.attribute.shadowRootIdx > 0 || !graphic.attribute.shadowRootIdx) {\n return this._pickItem(graphic, pickerService, point, pickParams, params);\n }\n return null;\n }\n\n beforePickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ): null | PickResult {\n if (graphic.attribute.shadowRootIdx < 0) {\n return this._pickItem(graphic, pickerService, point, pickParams, params);\n }\n return null;\n }\n\n protected _pickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ): PickResult | null {\n if (!graphic.shadowRoot) {\n return null;\n }\n const { parentMatrix } = params || {};\n if (!parentMatrix) {\n return null;\n }\n\n const context = pickerService.pickContext;\n context.highPerformanceSave();\n\n const g = graphic.shadowRoot;\n const currentGroupMatrix = matrixAllocate.allocateByObj(parentMatrix);\n const newPoint = new Point(point.x, point.y);\n parentMatrix.transformPoint(newPoint, newPoint);\n const transMatrix = graphic.transMatrix;\n currentGroupMatrix.multiply(\n transMatrix.a,\n transMatrix.b,\n transMatrix.c,\n transMatrix.d,\n transMatrix.e,\n transMatrix.f\n );\n\n const result = pickerService.pickGroup(g, newPoint.clone(), currentGroupMatrix, pickParams);\n\n context.highPerformanceRestore();\n\n return result;\n }\n}\n\n@injectable()\nexport class InteractivePickItemInterceptorContribution implements IPickItemInterceptorContribution {\n order: number = 1;\n\n beforePickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ): null | PickResult {\n const originGraphic = graphic.baseGraphic;\n if (originGraphic && originGraphic.parent) {\n const newPoint = new Point(point.x, point.y);\n const context = pickerService.pickContext;\n context.highPerformanceSave();\n const parentMatrix = originGraphic.parent.globalTransMatrix;\n parentMatrix.transformPoint(newPoint, newPoint);\n\n const result = originGraphic.isContainer\n ? pickerService.pickGroup(originGraphic, newPoint.clone(), parentMatrix, pickParams)\n : pickerService.pickItem(originGraphic, newPoint.clone(), parentMatrix, pickParams);\n context.highPerformanceRestore();\n return result;\n }\n return null;\n }\n}\n\n/**\n * 3d拦截器,用于渲染3d视角\n */\n@injectable()\nexport class Canvas3DPickItemInterceptor implements IPickItemInterceptorContribution {\n // canvas?: ICanvas;\n order: number = 1;\n\n beforePickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ) {\n if (!graphic.in3dMode || pickParams.in3dInterceptor) {\n return null;\n }\n\n const context = pickerService.pickContext;\n const stage = graphic.stage;\n if (!(context && stage)) {\n return null;\n }\n pickParams.in3dInterceptor = true;\n\n // 使用3d模式渲染\n context.save();\n this.initCanvasCtx(context);\n context.camera = stage.camera;\n\n // 设置context的transform到上一个节点\n if (graphic.isContainer) {\n // hack逻辑,如果是饼图的话,需要依次绘制不同的边\n let isPie: boolean = false;\n let is3d: boolean = false;\n graphic.forEachChildren((c: IGraphic) => {\n isPie = c.numberType === ARC3D_NUMBER_TYPE;\n return !isPie;\n });\n graphic.forEachChildren((c: IGraphic) => {\n is3d = !!c.findFace;\n return !is3d;\n });\n\n let result: PickResult;\n if (isPie) {\n const children = graphic.getChildren() as IArc[];\n // 绘制内层\n // drawContext.hack_pieFace = 'inside';\n // drawContribution.renderGroup(graphic as IGroup, drawContext);\n // 绘制底部\n // drawContext.hack_pieFace = 'bottom';\n // drawContribution.renderGroup(graphic as IGroup, drawContext);\n // 绘制外部\n // 排序一下\n const sortedChildren = [...children];\n sortedChildren.sort((a, b) => {\n let angle1 = (a.attribute.startAngle ?? 0 + a.attribute.endAngle ?? 0) / 2;\n let angle2 = (b.attribute.startAngle ?? 0 + b.attribute.endAngle ?? 0) / 2;\n while (angle1 < 0) {\n angle1 += pi2;\n }\n while (angle2 < 0) {\n angle2 += pi2;\n }\n return angle2 - angle1;\n });\n sortedChildren.forEach(c => {\n c._next = null;\n c._prev = null;\n });\n graphic.removeAllChild();\n graphic.update();\n sortedChildren.forEach(c => {\n graphic.appendChild(c);\n });\n pickParams.hack_pieFace = 'outside';\n result = pickerService.pickGroup(graphic as IGroup, point, params.parentMatrix, pickParams);\n if (!result.graphic) {\n // 绘制内部\n pickParams.hack_pieFace = 'inside';\n result = pickerService.pickGroup(graphic as IGroup, point, params.parentMatrix, pickParams);\n }\n if (!result.graphic) {\n // 绘制顶部\n pickParams.hack_pieFace = 'top';\n result = pickerService.pickGroup(graphic as IGroup, point, params.parentMatrix, pickParams);\n }\n graphic.removeAllChild();\n children.forEach(c => {\n c._next = null;\n c._prev = null;\n });\n children.forEach(c => {\n graphic.appendChild(c);\n });\n } else if (is3d) {\n // 排序这些图元\n const children = graphic.getChildren() as IGraphic[];\n const zChildren = children.map(g => {\n const face3d = g.findFace();\n const vertices = face3d.vertices;\n // 计算每个顶点的view\n const viewdVerticesZ = vertices.map(v => {\n return context.view(v[0], v[1], v[2] + g.attribute.z ?? 0)[2];\n });\n const ave_z = viewdVerticesZ.reduce((a, b) => a + b, 0);\n return {\n ave_z,\n g\n };\n });\n zChildren.sort((a, b) => b.ave_z - a.ave_z);\n graphic.removeAllChild();\n zChildren.forEach(i => {\n i.g._next = null;\n i.g._prev = null;\n });\n graphic.update();\n zChildren.forEach(i => {\n graphic.add(i.g);\n });\n\n result = pickerService.pickGroup(graphic as IGroup, point, params.parentMatrix, pickParams);\n\n graphic.removeAllChild();\n children.forEach(g => {\n g._next = null;\n g._prev = null;\n });\n graphic.update();\n children.forEach(g => {\n graphic.add(g);\n });\n } else {\n result = pickerService.pickGroup(graphic as IGroup, point, params.parentMatrix, pickParams);\n }\n\n context.camera = null;\n\n pickParams.in3dInterceptor = false;\n return result;\n }\n context.restore();\n return null;\n }\n\n initCanvasCtx(context: IContext2d) {\n context.setTransformForCurrent();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/picker/pick-interceptor.ts"],"names":[],"mappings":"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","file":"pick-interceptor.js","sourcesContent":["import type { IMatrix, IPointLike } from '@visactor/vutils';\nimport { Point, pi2 } from '@visactor/vutils';\nimport { injectable } from '../common/inversify-lite';\nimport { ARC3D_NUMBER_TYPE } from '../graphic/constants';\nimport type {\n IArc,\n IContext2d,\n IGraphic,\n IGroup,\n IPickItemInterceptorContribution,\n IPickParams,\n IPickerService,\n PickResult\n} from '../interface';\nimport { matrixAllocate } from '../allocator/matrix-allocate';\n\n// 拦截器\nexport const PickItemInterceptor = Symbol.for('PickItemInterceptor');\n\n/**\n * 影子节点拦截器,用于渲染影子节点\n */\n@injectable()\nexport class ShadowRootPickItemInterceptorContribution implements IPickItemInterceptorContribution {\n order: number = 1;\n afterPickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ): null | PickResult {\n if (graphic.attribute.shadowRootIdx > 0 || !graphic.attribute.shadowRootIdx) {\n return this._pickItem(graphic, pickerService, point, pickParams, params);\n }\n return null;\n }\n\n beforePickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ): null | PickResult {\n if (graphic.attribute.shadowRootIdx < 0) {\n return this._pickItem(graphic, pickerService, point, pickParams, params);\n }\n return null;\n }\n\n protected _pickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ): PickResult | null {\n if (!graphic.shadowRoot) {\n return null;\n }\n const { parentMatrix } = params || {};\n if (!parentMatrix) {\n return null;\n }\n\n const context = pickerService.pickContext;\n context.highPerformanceSave();\n\n const g = graphic.shadowRoot;\n const currentGroupMatrix = matrixAllocate.allocateByObj(parentMatrix);\n const newPoint = new Point(point.x, point.y);\n parentMatrix.transformPoint(newPoint, newPoint);\n const transMatrix = graphic.transMatrix;\n currentGroupMatrix.multiply(\n transMatrix.a,\n transMatrix.b,\n transMatrix.c,\n transMatrix.d,\n transMatrix.e,\n transMatrix.f\n );\n\n const result = pickerService.pickGroup(g, newPoint.clone(), currentGroupMatrix, pickParams);\n\n context.highPerformanceRestore();\n\n return result;\n }\n}\n\n@injectable()\nexport class InteractivePickItemInterceptorContribution implements IPickItemInterceptorContribution {\n order: number = 1;\n\n beforePickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ): null | PickResult {\n const originGraphic = graphic.baseGraphic;\n if (originGraphic && originGraphic.parent) {\n const newPoint = new Point(point.x, point.y);\n const context = pickerService.pickContext;\n context.highPerformanceSave();\n const parentMatrix = originGraphic.parent.globalTransMatrix;\n parentMatrix.transformPoint(newPoint, newPoint);\n\n const result = originGraphic.isContainer\n ? pickerService.pickGroup(originGraphic, newPoint.clone(), parentMatrix, pickParams)\n : pickerService.pickItem(originGraphic, newPoint.clone(), parentMatrix, pickParams);\n context.highPerformanceRestore();\n return result;\n }\n return null;\n }\n}\n\n/**\n * 3d拦截器,用于渲染3d视角\n */\n@injectable()\nexport class Canvas3DPickItemInterceptor implements IPickItemInterceptorContribution {\n // canvas?: ICanvas;\n order: number = 1;\n\n beforePickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ) {\n if (!graphic.in3dMode || pickParams.in3dInterceptor) {\n return null;\n }\n\n const context = pickerService.pickContext;\n const stage = graphic.stage;\n if (!(context && stage)) {\n return null;\n }\n pickParams.in3dInterceptor = true;\n\n // 使用3d模式渲染\n context.save();\n this.initCanvasCtx(context);\n context.camera = stage.camera;\n\n // 设置context的transform到上一个节点\n if (graphic.isContainer) {\n // hack逻辑,如果是饼图的话,需要依次绘制不同的边\n let isPie: boolean = false;\n let is3d: boolean = false;\n graphic.forEachChildren((c: IGraphic) => {\n isPie = c.numberType === ARC3D_NUMBER_TYPE;\n return !isPie;\n });\n graphic.forEachChildren((c: IGraphic) => {\n is3d = !!c.findFace;\n return !is3d;\n });\n\n let result: PickResult;\n if (isPie) {\n const children = graphic.getChildren() as IArc[];\n // 绘制内层\n // drawContext.hack_pieFace = 'inside';\n // drawContribution.renderGroup(graphic as IGroup, drawContext);\n // 绘制底部\n // drawContext.hack_pieFace = 'bottom';\n // drawContribution.renderGroup(graphic as IGroup, drawContext);\n // 绘制外部\n // 排序一下\n const sortedChildren = [...children];\n sortedChildren.sort((a, b) => {\n let angle1 = (a.attribute.startAngle ?? 0 + a.attribute.endAngle ?? 0) / 2;\n let angle2 = (b.attribute.startAngle ?? 0 + b.attribute.endAngle ?? 0) / 2;\n while (angle1 < 0) {\n angle1 += pi2;\n }\n while (angle2 < 0) {\n angle2 += pi2;\n }\n return angle2 - angle1;\n });\n sortedChildren.forEach(c => {\n c._next = null;\n c._prev = null;\n });\n graphic.removeAllChild();\n graphic.update();\n sortedChildren.forEach(c => {\n graphic.appendChild(c);\n });\n pickParams.hack_pieFace = 'outside';\n result = pickerService.pickGroup(graphic as IGroup, point, params.parentMatrix, pickParams);\n if (!result.graphic) {\n // 绘制内部\n pickParams.hack_pieFace = 'inside';\n result = pickerService.pickGroup(graphic as IGroup, point, params.parentMatrix, pickParams);\n }\n if (!result.graphic) {\n // 绘制顶部\n pickParams.hack_pieFace = 'top';\n result = pickerService.pickGroup(graphic as IGroup, point, params.parentMatrix, pickParams);\n }\n graphic.removeAllChild();\n children.forEach(c => {\n c._next = null;\n c._prev = null;\n });\n children.forEach(c => {\n graphic.appendChild(c);\n });\n } else if (is3d) {\n // 排序这些图元\n const children = graphic.getChildren() as IGraphic[];\n const zChildren = children.map(g => {\n const face3d = g.findFace();\n const vertices = face3d.vertices;\n // 计算每个顶点的view\n const viewdVerticesZ = vertices.map(v => {\n return context.view(v[0], v[1], v[2] + g.attribute.z ?? 0)[2];\n });\n const ave_z = viewdVerticesZ.reduce((a, b) => a + b, 0);\n return {\n ave_z,\n g\n };\n });\n zChildren.sort((a, b) => b.ave_z - a.ave_z);\n graphic.removeAllChild();\n zChildren.forEach(i => {\n i.g._next = null;\n i.g._prev = null;\n });\n graphic.update();\n zChildren.forEach(i => {\n graphic.add(i.g);\n });\n\n result = pickerService.pickGroup(graphic as IGroup, point, params.parentMatrix, pickParams);\n\n graphic.removeAllChild();\n children.forEach(g => {\n g._next = null;\n g._prev = null;\n });\n graphic.update();\n children.forEach(g => {\n graphic.add(g);\n });\n } else {\n result = pickerService.pickGroup(graphic as IGroup, point, params.parentMatrix, pickParams);\n }\n\n context.camera = null;\n\n pickParams.in3dInterceptor = false;\n context.restore();\n return result;\n }\n context.restore();\n return null;\n }\n\n initCanvasCtx(context: IContext2d) {\n context.setTransformForCurrent();\n }\n}\n"]}
@@ -4,12 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
 
7
- const inversify_lite_1 = require("../common/inversify-lite"), constants_1 = require("./constants"), global_picker_service_1 = require("./global-picker-service"), pick_interceptor_1 = require("./pick-interceptor"), contribution_provider_1 = require("../common/contribution-provider");
7
+ const inversify_lite_1 = require("../common/inversify-lite"), constants_1 = require("./constants"), pick_interceptor_1 = require("./pick-interceptor"), contribution_provider_1 = require("../common/contribution-provider");
8
8
 
9
9
  exports.default = new inversify_lite_1.ContainerModule((bind => {
10
- bind(constants_1.PickerService).toService(constants_1.GlobalPickerService), bind(global_picker_service_1.DefaultGlobalPickerService).toSelf().inSingletonScope(),
11
- bind(constants_1.GlobalPickerService).toService(global_picker_service_1.DefaultGlobalPickerService),
12
- bind(pick_interceptor_1.Canvas3DPickItemInterceptor).toSelf().inSingletonScope(),
10
+ bind(constants_1.PickerService).toService(constants_1.GlobalPickerService), bind(pick_interceptor_1.Canvas3DPickItemInterceptor).toSelf().inSingletonScope(),
13
11
  bind(pick_interceptor_1.PickItemInterceptor).toService(pick_interceptor_1.Canvas3DPickItemInterceptor),
14
12
  bind(pick_interceptor_1.ShadowRootPickItemInterceptorContribution).toSelf().inSingletonScope(),
15
13
  bind(pick_interceptor_1.PickItemInterceptor).toService(pick_interceptor_1.ShadowRootPickItemInterceptorContribution),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/pick-modules.ts"],"names":[],"mappings":";;AAAA,6DAA2D;AAC3D,2CAAiE;AACjE,mEAAqE;AAGrE,yDAK4B;AAC5B,2EAA2E;AAE3E,kBAAe,IAAI,gCAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,yBAAa,CAAC,CAAC,SAAS,CAAC,+BAAmB,CAAC,CAAC;IAEnD,IAAI,CAAC,kDAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,+BAAmB,CAAC,CAAC,SAAS,CAAC,kDAA0B,CAAC,CAAC;IAGhE,IAAI,CAAC,8CAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,sCAAmB,CAAC,CAAC,SAAS,CAAC,8CAA2B,CAAC,CAAC;IAGjE,IAAI,CAAC,4DAAyC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5E,IAAI,CAAC,sCAAmB,CAAC,CAAC,SAAS,CAAC,4DAAyC,CAAC,CAAC;IAG/E,IAAI,CAAC,6DAA0C,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7E,IAAI,CAAC,sCAAmB,CAAC,CAAC,SAAS,CAAC,6DAA0C,CAAC,CAAC;IAChF,IAAA,gDAAwB,EAAC,IAAI,EAAE,sCAAmB,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC","file":"pick-modules.js","sourcesContent":["import { ContainerModule } from '../common/inversify-lite';\nimport { PickerService, GlobalPickerService } from './constants';\nimport { DefaultGlobalPickerService } from './global-picker-service';\n// import { DefaultCanvasPickerService } from './canvas-picker-service';\n// import { DefaultMathPickerService } from './math-picker-service';\nimport {\n Canvas3DPickItemInterceptor,\n InteractivePickItemInterceptorContribution,\n PickItemInterceptor,\n ShadowRootPickItemInterceptorContribution\n} from './pick-interceptor';\nimport { bindContributionProvider } from '../common/contribution-provider';\n\nexport default new ContainerModule(bind => {\n bind(PickerService).toService(GlobalPickerService);\n\n bind(DefaultGlobalPickerService).toSelf().inSingletonScope();\n bind(GlobalPickerService).toService(DefaultGlobalPickerService);\n\n // interceptor\n bind(Canvas3DPickItemInterceptor).toSelf().inSingletonScope();\n bind(PickItemInterceptor).toService(Canvas3DPickItemInterceptor);\n\n // shadow root\n bind(ShadowRootPickItemInterceptorContribution).toSelf().inSingletonScope();\n bind(PickItemInterceptor).toService(ShadowRootPickItemInterceptorContribution);\n\n // interactive\n bind(InteractivePickItemInterceptorContribution).toSelf().inSingletonScope();\n bind(PickItemInterceptor).toService(InteractivePickItemInterceptorContribution);\n bindContributionProvider(bind, PickItemInterceptor);\n});\n"]}
1
+ {"version":3,"sources":["../src/picker/pick-modules.ts"],"names":[],"mappings":";;AAAA,6DAA2D;AAC3D,2CAAiE;AAIjE,yDAK4B;AAC5B,2EAA2E;AAE3E,kBAAe,IAAI,gCAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,yBAAa,CAAC,CAAC,SAAS,CAAC,+BAAmB,CAAC,CAAC;IAMnD,IAAI,CAAC,8CAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,sCAAmB,CAAC,CAAC,SAAS,CAAC,8CAA2B,CAAC,CAAC;IAGjE,IAAI,CAAC,4DAAyC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5E,IAAI,CAAC,sCAAmB,CAAC,CAAC,SAAS,CAAC,4DAAyC,CAAC,CAAC;IAG/E,IAAI,CAAC,6DAA0C,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7E,IAAI,CAAC,sCAAmB,CAAC,CAAC,SAAS,CAAC,6DAA0C,CAAC,CAAC;IAChF,IAAA,gDAAwB,EAAC,IAAI,EAAE,sCAAmB,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC","file":"pick-modules.js","sourcesContent":["import { ContainerModule } from '../common/inversify-lite';\nimport { PickerService, GlobalPickerService } from './constants';\nimport { DefaultGlobalPickerService } from './global-picker-service';\n// import { DefaultCanvasPickerService } from './canvas-picker-service';\n// import { DefaultMathPickerService } from './math-picker-service';\nimport {\n Canvas3DPickItemInterceptor,\n InteractivePickItemInterceptorContribution,\n PickItemInterceptor,\n ShadowRootPickItemInterceptorContribution\n} from './pick-interceptor';\nimport { bindContributionProvider } from '../common/contribution-provider';\n\nexport default new ContainerModule(bind => {\n bind(PickerService).toService(GlobalPickerService);\n\n // bind(DefaultGlobalPickerService).toSelf().inSingletonScope();\n // bind(GlobalPickerService).toService(DefaultGlobalPickerService);\n\n // interceptor\n bind(Canvas3DPickItemInterceptor).toSelf().inSingletonScope();\n bind(PickItemInterceptor).toService(Canvas3DPickItemInterceptor);\n\n // shadow root\n bind(ShadowRootPickItemInterceptorContribution).toSelf().inSingletonScope();\n bind(PickItemInterceptor).toService(ShadowRootPickItemInterceptorContribution);\n\n // interactive\n bind(InteractivePickItemInterceptorContribution).toSelf().inSingletonScope();\n bind(PickItemInterceptor).toService(InteractivePickItemInterceptorContribution);\n bindContributionProvider(bind, PickItemInterceptor);\n});\n"]}
@@ -1,13 +1,13 @@
1
1
  import type { IMatrix, IPoint, IPointLike } from '@visactor/vutils';
2
2
  import type { IContext2d, IGraphic, IGroup, EnvType, IGlobal, IPickerService, IGraphicPicker, IPickParams, PickResult, IPickItemInterceptorContribution, IContributionProvider } from '../interface';
3
3
  export declare abstract class DefaultPickService implements IPickerService {
4
- readonly global: IGlobal;
5
4
  protected readonly pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>;
6
5
  type: string;
7
6
  pickerMap: Map<number, IGraphicPicker>;
8
7
  pickContext?: IContext2d;
9
8
  InterceptorContributions: IPickItemInterceptorContribution[];
10
- constructor(global: IGlobal, pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>);
9
+ global: IGlobal;
10
+ constructor(pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>);
11
11
  protected _init(): void;
12
12
  abstract configure(global: IGlobal, env: EnvType): void;
13
13
  pick(graphics: IGraphic[], point: IPoint, params: IPickParams): PickResult;
@@ -16,12 +16,12 @@ Object.defineProperty(exports, "__esModule", {
16
16
  value: !0
17
17
  }), exports.DefaultPickService = void 0;
18
18
 
19
- const vutils_1 = require("@visactor/vutils"), inversify_lite_1 = require("../common/inversify-lite"), sort_1 = require("../common/sort"), contribution_provider_1 = require("../common/contribution-provider"), graphic_1 = require("../graphic"), matrix_allocate_1 = require("../allocator/matrix-allocate"), pick_interceptor_1 = require("./pick-interceptor"), constants_1 = require("../constants");
19
+ const vutils_1 = require("@visactor/vutils"), inversify_lite_1 = require("../common/inversify-lite"), sort_1 = require("../common/sort"), contribution_provider_1 = require("../common/contribution-provider"), graphic_1 = require("../graphic"), matrix_allocate_1 = require("../allocator/matrix-allocate"), pick_interceptor_1 = require("./pick-interceptor"), application_1 = require("../application");
20
20
 
21
21
  let DefaultPickService = class {
22
- constructor(global, pickItemInterceptorContributions) {
23
- this.global = global, this.pickItemInterceptorContributions = pickItemInterceptorContributions,
24
- this.type = "default";
22
+ constructor(pickItemInterceptorContributions) {
23
+ this.pickItemInterceptorContributions = pickItemInterceptorContributions, this.type = "default",
24
+ this.global = application_1.application.global;
25
25
  }
26
26
  _init() {
27
27
  this.InterceptorContributions = this.pickItemInterceptorContributions.getContributions().sort(((a, b) => a.order - b.order));
@@ -54,7 +54,11 @@ let DefaultPickService = class {
54
54
  return result;
55
55
  }
56
56
  containsPoint(graphic, point, params) {
57
- return !!this.pickItem(graphic, point, null, params);
57
+ var _a;
58
+ return !!(null === (_a = this.pickItem(graphic, point, null, null != params ? params : {
59
+ pickContext: this.pickContext,
60
+ pickerService: this
61
+ })) || void 0 === _a ? void 0 : _a.graphic);
58
62
  }
59
63
  pickGroup(group, point, parentMatrix, params) {
60
64
  let result = {
@@ -115,7 +119,7 @@ let DefaultPickService = class {
115
119
  };
116
120
 
117
121
  DefaultPickService = __decorate([ (0, inversify_lite_1.injectable)(), __param(0, (0,
118
- inversify_lite_1.inject)(constants_1.VGlobal)), __param(1, (0, inversify_lite_1.inject)(contribution_provider_1.ContributionProvider)), __param(1, (0,
119
- inversify_lite_1.named)(pick_interceptor_1.PickItemInterceptor)), __metadata("design:paramtypes", [ Object, Object ]) ], DefaultPickService),
122
+ inversify_lite_1.inject)(contribution_provider_1.ContributionProvider)), __param(0, (0,
123
+ inversify_lite_1.named)(pick_interceptor_1.PickItemInterceptor)), __metadata("design:paramtypes", [ Object ]) ], DefaultPickService),
120
124
  exports.DefaultPickService = DefaultPickService;
121
125
  //# sourceMappingURL=picker-service.js.map