@visactor/vrender 0.15.0-alpha.16 → 0.15.0-alpha.17

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 (375) hide show
  1. package/cjs/animate/animate.d.ts +1 -0
  2. package/cjs/animate/animate.js +3 -0
  3. package/cjs/animate/animate.js.map +1 -1
  4. package/cjs/animate/timeline.d.ts +1 -1
  5. package/cjs/animate/timeline.js +2 -2
  6. package/cjs/animate/timeline.js.map +1 -1
  7. package/cjs/canvas/contributions/browser/context.d.ts +1 -0
  8. package/cjs/common/contribution-provider.d.ts +1 -0
  9. package/cjs/common/contribution-provider.js +7 -2
  10. package/cjs/common/contribution-provider.js.map +1 -1
  11. package/cjs/common/enums.d.ts +4 -2
  12. package/cjs/common/enums.js +3 -2
  13. package/cjs/common/enums.js.map +1 -1
  14. package/cjs/core/contributions/env/base-contribution.d.ts +11 -1
  15. package/cjs/core/contributions/env/base-contribution.js +22 -1
  16. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  17. package/cjs/core/contributions/env/browser-contribution.d.ts +11 -2
  18. package/cjs/core/contributions/env/browser-contribution.js +66 -0
  19. package/cjs/core/contributions/env/browser-contribution.js.map +1 -1
  20. package/cjs/core/contributions/textMeasure/layout.js +1 -1
  21. package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
  22. package/cjs/core/contributions/window/base-contribution.d.ts +11 -5
  23. package/cjs/core/contributions/window/base-contribution.js +10 -0
  24. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  25. package/cjs/core/contributions/window/browser-contribution.d.ts +11 -0
  26. package/cjs/core/contributions/window/browser-contribution.js +33 -2
  27. package/cjs/core/contributions/window/browser-contribution.js.map +1 -1
  28. package/cjs/core/global.d.ts +11 -1
  29. package/cjs/core/global.js +18 -0
  30. package/cjs/core/global.js.map +1 -1
  31. package/cjs/core/graphic-utils.d.ts +2 -0
  32. package/cjs/core/graphic-utils.js +13 -0
  33. package/cjs/core/graphic-utils.js.map +1 -1
  34. package/cjs/core/layer.js +6 -6
  35. package/cjs/core/layer.js.map +1 -1
  36. package/cjs/core/stage.d.ts +13 -4
  37. package/cjs/core/stage.js +54 -25
  38. package/cjs/core/stage.js.map +1 -1
  39. package/cjs/core/window.d.ts +6 -0
  40. package/cjs/core/window.js +10 -1
  41. package/cjs/core/window.js.map +1 -1
  42. package/cjs/event/event-manager.js +8 -8
  43. package/cjs/event/event-manager.js.map +1 -1
  44. package/cjs/event/event-system.js.map +1 -1
  45. package/cjs/event/federated-event/pointer-event.d.ts +1 -0
  46. package/cjs/event/federated-event/pointer-event.js.map +1 -1
  47. package/cjs/graphic/builtin-symbol/arrow2-down.d.ts +12 -0
  48. package/cjs/graphic/builtin-symbol/arrow2-down.js +30 -0
  49. package/cjs/graphic/builtin-symbol/arrow2-down.js.map +1 -0
  50. package/cjs/graphic/builtin-symbol/arrow2-left.js +1 -1
  51. package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  52. package/cjs/graphic/builtin-symbol/arrow2-right.js +1 -1
  53. package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  54. package/cjs/graphic/builtin-symbol/arrow2-up.d.ts +12 -0
  55. package/cjs/graphic/builtin-symbol/arrow2-up.js +30 -0
  56. package/cjs/graphic/builtin-symbol/arrow2-up.js.map +1 -0
  57. package/cjs/graphic/builtin-symbol/close.d.ts +13 -0
  58. package/cjs/graphic/builtin-symbol/close.js +33 -0
  59. package/cjs/graphic/builtin-symbol/close.js.map +1 -0
  60. package/cjs/graphic/builtin-symbol/index.d.ts +1 -1
  61. package/cjs/graphic/builtin-symbol/index.js +2 -2
  62. package/cjs/graphic/builtin-symbol/index.js.map +1 -1
  63. package/cjs/graphic/builtin-symbol/line-h.d.ts +13 -0
  64. package/cjs/graphic/builtin-symbol/line-h.js +32 -0
  65. package/cjs/graphic/builtin-symbol/line-h.js.map +1 -0
  66. package/cjs/graphic/builtin-symbol/line-v.d.ts +13 -0
  67. package/cjs/graphic/builtin-symbol/line-v.js +32 -0
  68. package/cjs/graphic/builtin-symbol/line-v.js.map +1 -0
  69. package/cjs/graphic/builtin-symbol/utils.d.ts +13 -5
  70. package/cjs/graphic/builtin-symbol/utils.js +23 -9
  71. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  72. package/cjs/graphic/config.js +8 -4
  73. package/cjs/graphic/config.js.map +1 -1
  74. package/cjs/graphic/constants.d.ts +22 -0
  75. package/cjs/graphic/constants.js +20 -2
  76. package/cjs/graphic/constants.js.map +1 -1
  77. package/cjs/graphic/graphic.d.ts +4 -1
  78. package/cjs/graphic/graphic.js +49 -21
  79. package/cjs/graphic/graphic.js.map +1 -1
  80. package/cjs/graphic/group.js +1 -1
  81. package/cjs/graphic/group.js.map +1 -1
  82. package/cjs/graphic/index.d.ts +1 -0
  83. package/cjs/graphic/index.js +13 -13
  84. package/cjs/graphic/index.js.map +1 -1
  85. package/cjs/graphic/richtext/utils.d.ts +1 -1
  86. package/cjs/graphic/richtext/utils.js +1 -1
  87. package/cjs/graphic/richtext/utils.js.map +1 -1
  88. package/cjs/graphic/symbol.d.ts +2 -1
  89. package/cjs/graphic/symbol.js +27 -4
  90. package/cjs/graphic/symbol.js.map +1 -1
  91. package/cjs/graphic/text.js +33 -23
  92. package/cjs/graphic/text.js.map +1 -1
  93. package/cjs/graphic/tools.d.ts +3 -2
  94. package/cjs/graphic/tools.js +58 -3
  95. package/cjs/graphic/tools.js.map +1 -1
  96. package/cjs/graphic/wrap-text.js +10 -8
  97. package/cjs/graphic/wrap-text.js.map +1 -1
  98. package/cjs/index.d.ts +3 -1
  99. package/cjs/index.js +3 -3
  100. package/cjs/index.js.map +1 -1
  101. package/cjs/interface/animate.d.ts +3 -1
  102. package/cjs/interface/animate.js.map +1 -1
  103. package/cjs/interface/core.d.ts +1 -0
  104. package/cjs/interface/core.js.map +1 -1
  105. package/cjs/interface/global.d.ts +25 -1
  106. package/cjs/interface/global.js.map +1 -1
  107. package/cjs/interface/graphic/image.d.ts +1 -0
  108. package/cjs/interface/graphic/image.js.map +1 -1
  109. package/cjs/interface/graphic/symbol.d.ts +3 -2
  110. package/cjs/interface/graphic/symbol.js.map +1 -1
  111. package/cjs/interface/graphic/text.d.ts +1 -0
  112. package/cjs/interface/graphic/text.js.map +1 -1
  113. package/cjs/interface/graphic.d.ts +27 -3
  114. package/cjs/interface/graphic.js.map +1 -1
  115. package/cjs/interface/picker.d.ts +9 -1
  116. package/cjs/interface/picker.js.map +1 -1
  117. package/cjs/interface/render.d.ts +1 -0
  118. package/cjs/interface/render.js.map +1 -1
  119. package/cjs/interface/stage.d.ts +10 -3
  120. package/cjs/interface/stage.js.map +1 -1
  121. package/cjs/interface/window.d.ts +12 -0
  122. package/cjs/interface/window.js.map +1 -1
  123. package/cjs/jsx/graphicType.d.ts +172 -0
  124. package/cjs/jsx/graphicType.js +133 -0
  125. package/cjs/jsx/graphicType.js.map +1 -0
  126. package/cjs/jsx/index.d.ts +2 -0
  127. package/cjs/jsx/index.js +21 -0
  128. package/cjs/jsx/index.js.map +1 -0
  129. package/cjs/jsx/jsx-classic.d.ts +3 -0
  130. package/cjs/jsx/jsx-classic.js +58 -0
  131. package/cjs/jsx/jsx-classic.js.map +1 -0
  132. package/cjs/picker/canvas-picker-service.d.ts +2 -2
  133. package/cjs/picker/canvas-picker-service.js +20 -3
  134. package/cjs/picker/canvas-picker-service.js.map +1 -1
  135. package/cjs/picker/contributions/canvas-picker/glyph-picker.js +1 -1
  136. package/cjs/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
  137. package/cjs/picker/contributions/canvas-picker/group-picker.d.ts +7 -0
  138. package/cjs/picker/contributions/canvas-picker/group-picker.js +26 -0
  139. package/cjs/picker/contributions/canvas-picker/group-picker.js.map +1 -0
  140. package/cjs/picker/contributions/canvas-picker/module.js +3 -1
  141. package/cjs/picker/contributions/canvas-picker/module.js.map +1 -1
  142. package/cjs/picker/contributions/canvas-picker/symbol-picker.js +4 -2
  143. package/cjs/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
  144. package/cjs/picker/contributions/constants.d.ts +1 -0
  145. package/cjs/picker/contributions/constants.js +9 -8
  146. package/cjs/picker/contributions/constants.js.map +1 -1
  147. package/cjs/picker/contributions/math-picker/glyph-picker.js +1 -1
  148. package/cjs/picker/contributions/math-picker/glyph-picker.js.map +1 -1
  149. package/cjs/picker/global-picker-service.d.ts +1 -1
  150. package/cjs/picker/global-picker-service.js +12 -5
  151. package/cjs/picker/global-picker-service.js.map +1 -1
  152. package/cjs/picker/math-picker-service.d.ts +2 -2
  153. package/cjs/picker/math-picker-service.js +1 -1
  154. package/cjs/picker/math-picker-service.js.map +1 -1
  155. package/cjs/picker/pick-interceptor.d.ts +12 -0
  156. package/cjs/picker/pick-interceptor.js +32 -5
  157. package/cjs/picker/pick-interceptor.js.map +1 -1
  158. package/cjs/picker/pick-modules.js +2 -0
  159. package/cjs/picker/pick-modules.js.map +1 -1
  160. package/cjs/picker/picker-service.d.ts +1 -1
  161. package/cjs/picker/picker-service.js +15 -6
  162. package/cjs/picker/picker-service.js.map +1 -1
  163. package/cjs/plugins/builtin-plugin/flex-layout-plugin.d.ts +2 -0
  164. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +42 -21
  165. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  166. package/cjs/plugins/builtin-plugin/html-attribute-plugin.d.ts +13 -0
  167. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +79 -0
  168. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -0
  169. package/cjs/plugins/plugin-modules.js +1 -1
  170. package/cjs/plugins/plugin-modules.js.map +1 -1
  171. package/cjs/render/contributions/render/contributions/image-contribution-render.js +23 -1
  172. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  173. package/cjs/render/contributions/render/draw-contribution.d.ts +3 -1
  174. package/cjs/render/contributions/render/draw-contribution.js +3 -1
  175. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  176. package/cjs/render/contributions/render/draw-interceptor.d.ts +2 -0
  177. package/cjs/render/contributions/render/draw-interceptor.js +8 -0
  178. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  179. package/cjs/render/contributions/render/image-render.js +7 -3
  180. package/cjs/render/contributions/render/image-render.js.map +1 -1
  181. package/cjs/render/contributions/render/symbol-render.js +12 -5
  182. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  183. package/cjs/render/contributions/render/utils.d.ts +2 -2
  184. package/cjs/render/contributions/render/utils.js.map +1 -1
  185. package/cjs/render/render-service.js +3 -1
  186. package/cjs/render/render-service.js.map +1 -1
  187. package/dist/index.js +3686 -428
  188. package/dist/index.min.js +1 -1
  189. package/es/animate/animate.d.ts +1 -0
  190. package/es/animate/animate.js +3 -0
  191. package/es/animate/animate.js.map +1 -1
  192. package/es/animate/timeline.d.ts +1 -1
  193. package/es/animate/timeline.js +2 -2
  194. package/es/animate/timeline.js.map +1 -1
  195. package/es/canvas/contributions/browser/context.d.ts +1 -0
  196. package/es/common/contribution-provider.d.ts +1 -0
  197. package/es/common/contribution-provider.js +4 -0
  198. package/es/common/contribution-provider.js.map +1 -1
  199. package/es/common/enums.d.ts +4 -2
  200. package/es/common/enums.js +3 -2
  201. package/es/common/enums.js.map +1 -1
  202. package/es/core/contributions/env/base-contribution.d.ts +11 -1
  203. package/es/core/contributions/env/base-contribution.js +23 -0
  204. package/es/core/contributions/env/base-contribution.js.map +1 -1
  205. package/es/core/contributions/env/browser-contribution.d.ts +11 -2
  206. package/es/core/contributions/env/browser-contribution.js +67 -1
  207. package/es/core/contributions/env/browser-contribution.js.map +1 -1
  208. package/es/core/contributions/textMeasure/layout.js +1 -1
  209. package/es/core/contributions/textMeasure/layout.js.map +1 -1
  210. package/es/core/contributions/window/base-contribution.d.ts +11 -5
  211. package/es/core/contributions/window/base-contribution.js +10 -0
  212. package/es/core/contributions/window/base-contribution.js.map +1 -1
  213. package/es/core/contributions/window/browser-contribution.d.ts +11 -0
  214. package/es/core/contributions/window/browser-contribution.js +33 -2
  215. package/es/core/contributions/window/browser-contribution.js.map +1 -1
  216. package/es/core/global.d.ts +11 -1
  217. package/es/core/global.js +18 -0
  218. package/es/core/global.js.map +1 -1
  219. package/es/core/graphic-utils.d.ts +2 -0
  220. package/es/core/graphic-utils.js +13 -0
  221. package/es/core/graphic-utils.js.map +1 -1
  222. package/es/core/layer.js +6 -6
  223. package/es/core/layer.js.map +1 -1
  224. package/es/core/stage.d.ts +13 -4
  225. package/es/core/stage.js +57 -24
  226. package/es/core/stage.js.map +1 -1
  227. package/es/core/window.d.ts +6 -0
  228. package/es/core/window.js +10 -1
  229. package/es/core/window.js.map +1 -1
  230. package/es/event/event-manager.js +8 -8
  231. package/es/event/event-manager.js.map +1 -1
  232. package/es/event/event-system.js.map +1 -1
  233. package/es/event/federated-event/pointer-event.d.ts +1 -0
  234. package/es/event/federated-event/pointer-event.js.map +1 -1
  235. package/es/graphic/builtin-symbol/arrow2-down.d.ts +12 -0
  236. package/es/graphic/builtin-symbol/arrow2-down.js +24 -0
  237. package/es/graphic/builtin-symbol/arrow2-down.js.map +1 -0
  238. package/es/graphic/builtin-symbol/arrow2-left.js +1 -1
  239. package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  240. package/es/graphic/builtin-symbol/arrow2-right.js +1 -1
  241. package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  242. package/es/graphic/builtin-symbol/arrow2-up.d.ts +12 -0
  243. package/es/graphic/builtin-symbol/arrow2-up.js +24 -0
  244. package/es/graphic/builtin-symbol/arrow2-up.js.map +1 -0
  245. package/es/graphic/builtin-symbol/close.d.ts +13 -0
  246. package/es/graphic/builtin-symbol/close.js +27 -0
  247. package/es/graphic/builtin-symbol/close.js.map +1 -0
  248. package/es/graphic/builtin-symbol/index.d.ts +1 -1
  249. package/es/graphic/builtin-symbol/index.js +11 -1
  250. package/es/graphic/builtin-symbol/index.js.map +1 -1
  251. package/es/graphic/builtin-symbol/line-h.d.ts +13 -0
  252. package/es/graphic/builtin-symbol/line-h.js +26 -0
  253. package/es/graphic/builtin-symbol/line-h.js.map +1 -0
  254. package/es/graphic/builtin-symbol/line-v.d.ts +13 -0
  255. package/es/graphic/builtin-symbol/line-v.js +26 -0
  256. package/es/graphic/builtin-symbol/line-v.js.map +1 -0
  257. package/es/graphic/builtin-symbol/utils.d.ts +13 -5
  258. package/es/graphic/builtin-symbol/utils.js +25 -7
  259. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  260. package/es/graphic/config.js +8 -4
  261. package/es/graphic/config.js.map +1 -1
  262. package/es/graphic/constants.d.ts +22 -0
  263. package/es/graphic/constants.js +26 -0
  264. package/es/graphic/constants.js.map +1 -1
  265. package/es/graphic/graphic.d.ts +4 -1
  266. package/es/graphic/graphic.js +48 -21
  267. package/es/graphic/graphic.js.map +1 -1
  268. package/es/graphic/group.js +1 -1
  269. package/es/graphic/group.js.map +1 -1
  270. package/es/graphic/index.d.ts +1 -0
  271. package/es/graphic/index.js +2 -0
  272. package/es/graphic/index.js.map +1 -1
  273. package/es/graphic/richtext/utils.d.ts +1 -1
  274. package/es/graphic/richtext/utils.js +1 -1
  275. package/es/graphic/richtext/utils.js.map +1 -1
  276. package/es/graphic/symbol.d.ts +2 -1
  277. package/es/graphic/symbol.js +28 -1
  278. package/es/graphic/symbol.js.map +1 -1
  279. package/es/graphic/text.js +33 -23
  280. package/es/graphic/text.js.map +1 -1
  281. package/es/graphic/tools.d.ts +3 -2
  282. package/es/graphic/tools.js +59 -0
  283. package/es/graphic/tools.js.map +1 -1
  284. package/es/graphic/wrap-text.js +10 -8
  285. package/es/graphic/wrap-text.js.map +1 -1
  286. package/es/index.d.ts +3 -1
  287. package/es/index.js +5 -1
  288. package/es/index.js.map +1 -1
  289. package/es/interface/animate.d.ts +3 -1
  290. package/es/interface/animate.js.map +1 -1
  291. package/es/interface/core.d.ts +1 -0
  292. package/es/interface/core.js.map +1 -1
  293. package/es/interface/global.d.ts +25 -1
  294. package/es/interface/global.js.map +1 -1
  295. package/es/interface/graphic/image.d.ts +1 -0
  296. package/es/interface/graphic/image.js.map +1 -1
  297. package/es/interface/graphic/symbol.d.ts +3 -2
  298. package/es/interface/graphic/symbol.js.map +1 -1
  299. package/es/interface/graphic/text.d.ts +1 -0
  300. package/es/interface/graphic/text.js.map +1 -1
  301. package/es/interface/graphic.d.ts +27 -3
  302. package/es/interface/graphic.js.map +1 -1
  303. package/es/interface/picker.d.ts +9 -1
  304. package/es/interface/picker.js.map +1 -1
  305. package/es/interface/render.d.ts +1 -0
  306. package/es/interface/render.js.map +1 -1
  307. package/es/interface/stage.d.ts +10 -3
  308. package/es/interface/stage.js.map +1 -1
  309. package/es/interface/window.d.ts +12 -0
  310. package/es/interface/window.js.map +1 -1
  311. package/es/jsx/graphicType.d.ts +172 -0
  312. package/es/jsx/graphicType.js +126 -0
  313. package/es/jsx/graphicType.js.map +1 -0
  314. package/es/jsx/index.d.ts +2 -0
  315. package/es/jsx/index.js +4 -0
  316. package/es/jsx/index.js.map +1 -0
  317. package/es/jsx/jsx-classic.d.ts +3 -0
  318. package/es/jsx/jsx-classic.js +56 -0
  319. package/es/jsx/jsx-classic.js.map +1 -0
  320. package/es/picker/canvas-picker-service.d.ts +2 -2
  321. package/es/picker/canvas-picker-service.js +20 -3
  322. package/es/picker/canvas-picker-service.js.map +1 -1
  323. package/es/picker/contributions/canvas-picker/glyph-picker.js +1 -1
  324. package/es/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
  325. package/es/picker/contributions/canvas-picker/group-picker.d.ts +7 -0
  326. package/es/picker/contributions/canvas-picker/group-picker.js +23 -0
  327. package/es/picker/contributions/canvas-picker/group-picker.js.map +1 -0
  328. package/es/picker/contributions/canvas-picker/module.js +6 -2
  329. package/es/picker/contributions/canvas-picker/module.js.map +1 -1
  330. package/es/picker/contributions/canvas-picker/symbol-picker.js +6 -1
  331. package/es/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
  332. package/es/picker/contributions/constants.d.ts +1 -0
  333. package/es/picker/contributions/constants.js +2 -0
  334. package/es/picker/contributions/constants.js.map +1 -1
  335. package/es/picker/contributions/math-picker/glyph-picker.js +1 -1
  336. package/es/picker/contributions/math-picker/glyph-picker.js.map +1 -1
  337. package/es/picker/global-picker-service.d.ts +1 -1
  338. package/es/picker/global-picker-service.js +12 -5
  339. package/es/picker/global-picker-service.js.map +1 -1
  340. package/es/picker/math-picker-service.d.ts +2 -2
  341. package/es/picker/math-picker-service.js +1 -1
  342. package/es/picker/math-picker-service.js.map +1 -1
  343. package/es/picker/pick-interceptor.d.ts +12 -0
  344. package/es/picker/pick-interceptor.js +34 -4
  345. package/es/picker/pick-interceptor.js.map +1 -1
  346. package/es/picker/pick-modules.js +4 -2
  347. package/es/picker/pick-modules.js.map +1 -1
  348. package/es/picker/picker-service.d.ts +1 -1
  349. package/es/picker/picker-service.js +15 -6
  350. package/es/picker/picker-service.js.map +1 -1
  351. package/es/plugins/builtin-plugin/flex-layout-plugin.d.ts +2 -0
  352. package/es/plugins/builtin-plugin/flex-layout-plugin.js +47 -20
  353. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  354. package/es/plugins/builtin-plugin/html-attribute-plugin.d.ts +13 -0
  355. package/es/plugins/builtin-plugin/html-attribute-plugin.js +75 -0
  356. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -0
  357. package/es/plugins/plugin-modules.js +2 -2
  358. package/es/plugins/plugin-modules.js.map +1 -1
  359. package/es/render/contributions/render/contributions/image-contribution-render.js +27 -0
  360. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  361. package/es/render/contributions/render/draw-contribution.d.ts +3 -1
  362. package/es/render/contributions/render/draw-contribution.js +4 -0
  363. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  364. package/es/render/contributions/render/draw-interceptor.d.ts +2 -0
  365. package/es/render/contributions/render/draw-interceptor.js +8 -0
  366. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  367. package/es/render/contributions/render/image-render.js +10 -2
  368. package/es/render/contributions/render/image-render.js.map +1 -1
  369. package/es/render/contributions/render/symbol-render.js +12 -5
  370. package/es/render/contributions/render/symbol-render.js.map +1 -1
  371. package/es/render/contributions/render/utils.d.ts +2 -2
  372. package/es/render/contributions/render/utils.js.map +1 -1
  373. package/es/render/render-service.js +3 -1
  374. package/es/render/render-service.js.map +1 -1
  375. package/package.json +11 -14
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/contributions/canvas-picker/module.ts"],"names":[],"mappings":"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","file":"module.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { DefaultCanvasCirclePicker } from './circle-picker';\nimport { DefaultCanvasRectPicker } from './rect-picker';\nimport { DefaultCanvasArcPicker } from './arc-picker';\nimport { DefaultCanvasAreaPicker } from './area-picker';\nimport { DefaultCanvasImagePicker } from './image-picker';\nimport { DefaultCanvasLinePicker } from './line-picker';\nimport { DefaultCanvasPathPicker } from './path-picker';\nimport { DefaultCanvasSymbolPicker } from './symbol-picker';\nimport { DefaultCanvasTextPicker } from './text-picker';\nimport {\n CanvasArc3dPicker,\n CanvasArcPicker,\n CanvasAreaPicker,\n CanvasCirclePicker,\n CanvasGlyphPicker,\n CanvasImagePicker,\n CanvasLinePicker,\n CanvasPathPicker,\n CanvasPickerContribution,\n CanvasPolygonPicker,\n CanvasPyramid3dPicker,\n CanvasRect3dPicker,\n CanvasRectPicker,\n CanvasRichTextPicker,\n CanvasSymbolPicker,\n CanvasTextPicker\n} from '../constants';\nimport { bindContributionProvider } from '../../../common/contribution-provider';\nimport { DefaultCanvasPolygonPicker } from './polygon-picker';\nimport { DefaultCanvasRichTextPicker } from './richtext-picker';\nimport { DefaultCanvasGlyphPicker } from './glyph-picker';\nimport { DefaultCanvasRect3dPicker } from './rect3d-picker';\nimport { DefaultCanvasPyramid3dPicker } from './pyramid3d-picker';\nimport { DefaultCanvasArc3dPicker } from './arc3d-picker';\n\nexport default new ContainerModule((bind, unbind, isBound, rebind) => {\n // circle picker\n bind(DefaultCanvasCirclePicker).toSelf().inSingletonScope();\n bind(CanvasCirclePicker).toService(DefaultCanvasCirclePicker);\n bind(CanvasPickerContribution).toService(CanvasCirclePicker);\n\n // reat picker\n bind(DefaultCanvasRectPicker).toSelf().inSingletonScope();\n bind(CanvasRectPicker).toService(DefaultCanvasRectPicker);\n bind(CanvasPickerContribution).toService(CanvasRectPicker);\n\n // reat3d picker\n bind(DefaultCanvasRect3dPicker).toSelf().inSingletonScope();\n bind(CanvasRect3dPicker).toService(DefaultCanvasRect3dPicker);\n bind(CanvasPickerContribution).toService(CanvasRect3dPicker);\n\n // arc picker\n bind(DefaultCanvasArcPicker).toSelf().inSingletonScope();\n bind(CanvasArcPicker).toService(DefaultCanvasArcPicker);\n bind(CanvasPickerContribution).toService(CanvasArcPicker);\n\n // area picker\n bind(DefaultCanvasAreaPicker).toSelf().inSingletonScope();\n bind(CanvasAreaPicker).toService(DefaultCanvasAreaPicker);\n bind(CanvasPickerContribution).toService(CanvasAreaPicker);\n\n // image picker\n bind(DefaultCanvasImagePicker).toSelf().inSingletonScope();\n bind(CanvasImagePicker).toService(DefaultCanvasImagePicker);\n bind(CanvasPickerContribution).toService(CanvasImagePicker);\n\n // line picker\n bind(DefaultCanvasLinePicker).toSelf().inSingletonScope();\n bind(CanvasLinePicker).toService(DefaultCanvasLinePicker);\n bind(CanvasPickerContribution).toService(CanvasLinePicker);\n\n // path picker\n bind(DefaultCanvasPathPicker).toSelf().inSingletonScope();\n bind(CanvasPathPicker).toService(DefaultCanvasPathPicker);\n bind(CanvasPickerContribution).toService(CanvasPathPicker);\n\n // symbol picker\n bind(DefaultCanvasSymbolPicker).toSelf().inSingletonScope();\n bind(CanvasSymbolPicker).toService(DefaultCanvasSymbolPicker);\n bind(CanvasPickerContribution).toService(CanvasSymbolPicker);\n\n // text picker\n bind(DefaultCanvasTextPicker).toSelf().inSingletonScope();\n bind(CanvasTextPicker).toService(DefaultCanvasTextPicker);\n bind(CanvasPickerContribution).toService(CanvasTextPicker);\n\n // polygon picker\n bind(DefaultCanvasPolygonPicker).toSelf().inSingletonScope();\n bind(CanvasPolygonPicker).toService(DefaultCanvasPolygonPicker);\n bind(CanvasPickerContribution).toService(CanvasPolygonPicker);\n\n // pyramid3d picker\n bind(DefaultCanvasPyramid3dPicker).toSelf().inSingletonScope();\n bind(CanvasPyramid3dPicker).toService(DefaultCanvasPyramid3dPicker);\n bind(CanvasPickerContribution).toService(CanvasPyramid3dPicker);\n\n // arc3d picker\n bind(DefaultCanvasArc3dPicker).toSelf().inSingletonScope();\n bind(CanvasArc3dPicker).toService(DefaultCanvasArc3dPicker);\n bind(CanvasPickerContribution).toService(CanvasArc3dPicker);\n\n // richtext picker\n bind(DefaultCanvasRichTextPicker).toSelf().inSingletonScope();\n bind(CanvasRichTextPicker).toService(DefaultCanvasRichTextPicker);\n bind(CanvasPickerContribution).toService(CanvasRichTextPicker);\n // glyph picker\n bind(DefaultCanvasGlyphPicker).toSelf().inSingletonScope();\n bind(CanvasGlyphPicker).toService(DefaultCanvasGlyphPicker);\n bind(CanvasPickerContribution).toService(CanvasGlyphPicker);\n\n bindContributionProvider(bind, CanvasPickerContribution);\n});\n"]}
1
+ {"version":3,"sources":["../src/picker/contributions/canvas-picker/module.ts"],"names":[],"mappings":"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","file":"module.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { DefaultCanvasCirclePicker } from './circle-picker';\nimport { DefaultCanvasRectPicker } from './rect-picker';\nimport { DefaultCanvasArcPicker } from './arc-picker';\nimport { DefaultCanvasAreaPicker } from './area-picker';\nimport { DefaultCanvasImagePicker } from './image-picker';\nimport { DefaultCanvasLinePicker } from './line-picker';\nimport { DefaultCanvasPathPicker } from './path-picker';\nimport { DefaultCanvasSymbolPicker } from './symbol-picker';\nimport { DefaultCanvasTextPicker } from './text-picker';\nimport {\n CanvasArc3dPicker,\n CanvasArcPicker,\n CanvasAreaPicker,\n CanvasCirclePicker,\n CanvasGlyphPicker,\n CanvasGroupPicker,\n CanvasImagePicker,\n CanvasLinePicker,\n CanvasPathPicker,\n CanvasPickerContribution,\n CanvasPolygonPicker,\n CanvasPyramid3dPicker,\n CanvasRect3dPicker,\n CanvasRectPicker,\n CanvasRichTextPicker,\n CanvasSymbolPicker,\n CanvasTextPicker\n} from '../constants';\nimport { bindContributionProvider } from '../../../common/contribution-provider';\nimport { DefaultCanvasPolygonPicker } from './polygon-picker';\nimport { DefaultCanvasRichTextPicker } from './richtext-picker';\nimport { DefaultCanvasGlyphPicker } from './glyph-picker';\nimport { DefaultCanvasRect3dPicker } from './rect3d-picker';\nimport { DefaultCanvasPyramid3dPicker } from './pyramid3d-picker';\nimport { DefaultCanvasArc3dPicker } from './arc3d-picker';\nimport { DefaultCanvasGroupPicker } from './group-picker';\n\nexport default new ContainerModule((bind, unbind, isBound, rebind) => {\n // circle picker\n bind(DefaultCanvasCirclePicker).toSelf().inSingletonScope();\n bind(CanvasCirclePicker).toService(DefaultCanvasCirclePicker);\n bind(CanvasPickerContribution).toService(CanvasCirclePicker);\n\n // reat picker\n bind(DefaultCanvasRectPicker).toSelf().inSingletonScope();\n bind(CanvasRectPicker).toService(DefaultCanvasRectPicker);\n bind(CanvasPickerContribution).toService(CanvasRectPicker);\n\n // reat3d picker\n bind(DefaultCanvasRect3dPicker).toSelf().inSingletonScope();\n bind(CanvasRect3dPicker).toService(DefaultCanvasRect3dPicker);\n bind(CanvasPickerContribution).toService(CanvasRect3dPicker);\n\n // arc picker\n bind(DefaultCanvasArcPicker).toSelf().inSingletonScope();\n bind(CanvasArcPicker).toService(DefaultCanvasArcPicker);\n bind(CanvasPickerContribution).toService(CanvasArcPicker);\n\n // area picker\n bind(DefaultCanvasAreaPicker).toSelf().inSingletonScope();\n bind(CanvasAreaPicker).toService(DefaultCanvasAreaPicker);\n bind(CanvasPickerContribution).toService(CanvasAreaPicker);\n\n // image picker\n bind(DefaultCanvasImagePicker).toSelf().inSingletonScope();\n bind(CanvasImagePicker).toService(DefaultCanvasImagePicker);\n bind(CanvasPickerContribution).toService(CanvasImagePicker);\n\n // line picker\n bind(DefaultCanvasLinePicker).toSelf().inSingletonScope();\n bind(CanvasLinePicker).toService(DefaultCanvasLinePicker);\n bind(CanvasPickerContribution).toService(CanvasLinePicker);\n\n // path picker\n bind(DefaultCanvasPathPicker).toSelf().inSingletonScope();\n bind(CanvasPathPicker).toService(DefaultCanvasPathPicker);\n bind(CanvasPickerContribution).toService(CanvasPathPicker);\n\n // symbol picker\n bind(DefaultCanvasSymbolPicker).toSelf().inSingletonScope();\n bind(CanvasSymbolPicker).toService(DefaultCanvasSymbolPicker);\n bind(CanvasPickerContribution).toService(CanvasSymbolPicker);\n\n // text picker\n bind(DefaultCanvasTextPicker).toSelf().inSingletonScope();\n bind(CanvasTextPicker).toService(DefaultCanvasTextPicker);\n bind(CanvasPickerContribution).toService(CanvasTextPicker);\n\n // polygon picker\n bind(DefaultCanvasPolygonPicker).toSelf().inSingletonScope();\n bind(CanvasPolygonPicker).toService(DefaultCanvasPolygonPicker);\n bind(CanvasPickerContribution).toService(CanvasPolygonPicker);\n\n // pyramid3d picker\n bind(DefaultCanvasPyramid3dPicker).toSelf().inSingletonScope();\n bind(CanvasPyramid3dPicker).toService(DefaultCanvasPyramid3dPicker);\n bind(CanvasPickerContribution).toService(CanvasPyramid3dPicker);\n\n // arc3d picker\n bind(DefaultCanvasArc3dPicker).toSelf().inSingletonScope();\n bind(CanvasArc3dPicker).toService(DefaultCanvasArc3dPicker);\n bind(CanvasPickerContribution).toService(CanvasArc3dPicker);\n\n // richtext picker\n bind(DefaultCanvasRichTextPicker).toSelf().inSingletonScope();\n bind(CanvasRichTextPicker).toService(DefaultCanvasRichTextPicker);\n bind(CanvasPickerContribution).toService(CanvasRichTextPicker);\n // glyph picker\n bind(DefaultCanvasGlyphPicker).toSelf().inSingletonScope();\n bind(CanvasGlyphPicker).toService(DefaultCanvasGlyphPicker);\n bind(CanvasPickerContribution).toService(CanvasGlyphPicker);\n // group picker\n bind(DefaultCanvasGroupPicker).toSelf().inSingletonScope();\n bind(CanvasGroupPicker).toService(DefaultCanvasGroupPicker);\n bind(CanvasPickerContribution).toService(CanvasGroupPicker);\n\n bindContributionProvider(bind, CanvasPickerContribution);\n});\n"]}
@@ -24,6 +24,10 @@ import { BasePicker } from "./base-picker";
24
24
 
25
25
  import { SYMBOL_NUMBER_TYPE } from "../../../graphic/constants";
26
26
 
27
+ import { createRect } from "../../../graphic";
28
+
29
+ const rect = createRect({});
30
+
27
31
  let DefaultCanvasSymbolPicker = class extends BasePicker {
28
32
  constructor(canvasRenderer) {
29
33
  super(), this.canvasRenderer = canvasRenderer, this.type = "symbol", this.numberType = SYMBOL_NUMBER_TYPE;
@@ -31,9 +35,10 @@ let DefaultCanvasSymbolPicker = class extends BasePicker {
31
35
  contains(symbol, point, params) {
32
36
  const {pickContext: pickContext} = null != params ? params : {};
33
37
  if (!pickContext) return !1;
38
+ const parsedPath = symbol.getParsedPath();
34
39
  if (!pickContext.camera) {
35
40
  if (!symbol.AABBBounds.containsPoint(point)) return !1;
36
- if ("imprecise" === symbol.attribute.pickMode) return !0;
41
+ if (parsedPath.isSvg || "imprecise" === symbol.attribute.pickMode) return !0;
37
42
  }
38
43
  pickContext.highPerformanceSave();
39
44
  const symbolAttribute = getTheme(symbol).symbol, data = this.transform(symbol, symbolAttribute, pickContext), {x: x, y: y, z: z, lastModelMatrix: lastModelMatrix} = data;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/contributions/canvas-picker/symbol-picker.ts"],"names":[],"mappings":"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","file":"symbol-picker.js","sourcesContent":["import { inject, injectable } from 'inversify';\nimport type { IPoint } from '@visactor/vutils';\nimport { getTheme } from '../../../graphic/theme';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n ISymbol,\n IThemeAttribute,\n IGraphicPicker,\n IGraphicRender,\n IPickParams\n} from '../../../interface';\nimport { SymbolRender } from '../../../render';\nimport { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport { getScaledStroke } from '../../../common/canvas-utils';\nimport { BasePicker } from './base-picker';\nimport { SYMBOL_NUMBER_TYPE } from '../../../graphic/constants';\n\n@injectable()\nexport class DefaultCanvasSymbolPicker extends BasePicker<ISymbol> implements IGraphicPicker {\n type: string = 'symbol';\n numberType: number = SYMBOL_NUMBER_TYPE;\n\n constructor(@inject(SymbolRender) public readonly canvasRenderer: IGraphicRender) {\n super();\n }\n\n contains(symbol: ISymbol, point: IPoint, params?: IPickParams): boolean {\n const { pickContext } = params ?? {};\n if (!pickContext) {\n return false;\n }\n\n if (!pickContext.camera) {\n if (!symbol.AABBBounds.containsPoint(point)) {\n return false;\n }\n if (symbol.attribute.pickMode === 'imprecise') {\n return true;\n }\n }\n\n pickContext.highPerformanceSave();\n // const symbolAttribute = graphicService.themeService.getCurrentTheme().symbolAttribute;\n const symbolAttribute = getTheme(symbol).symbol;\n\n const data = this.transform(symbol, symbolAttribute, pickContext);\n const { x, y, z, lastModelMatrix } = data;\n // let { x = symbolAttribute.x, y = symbolAttribute.y } = symbol.attribute;\n\n // pickContext.highPerformanceSave();\n // if (!symbol.transMatrix.onlyTranslate()) {\n // // 性能较差\n // x = 0;\n // y = 0;\n // pickContext.transformFromMatrix(symbol.transMatrix, true);\n // } else {\n // const point = symbol.getOffsetXY(symbolAttribute);\n // x += point.x;\n // y += point.y;\n // // 当前context有rotate/scale,重置matrix\n // pickContext.setTransformForCurrent();\n // }\n\n let pickPoint = point;\n if (pickContext.camera) {\n pickPoint = point.clone();\n const globalMatrix = symbol.parent.globalTransMatrix;\n pickPoint.x = globalMatrix.a * point.x + globalMatrix.c * point.y + globalMatrix.e;\n pickPoint.y = globalMatrix.b * point.x + globalMatrix.d * point.y + globalMatrix.f;\n }\n\n this.canvasRenderer.z = z;\n // 详细形状判断\n let picked = false;\n this.canvasRenderer.drawShape(\n symbol,\n pickContext,\n x,\n y,\n {} as any,\n null,\n (\n context: IContext2d,\n symbolAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => {\n // 选中后面就不需要再走逻辑了\n if (picked) {\n return true;\n }\n picked = context.isPointInPath(pickPoint.x, pickPoint.y);\n return picked;\n },\n (\n context: IContext2d,\n symbolAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => {\n // 选中后面就不需要再走逻辑了\n if (picked) {\n return true;\n }\n const lineWidth = symbolAttribute.lineWidth || themeAttribute.lineWidth;\n pickContext.lineWidth = getScaledStroke(pickContext, lineWidth, pickContext.dpr);\n picked = context.isPointInStroke(pickPoint.x, pickPoint.y);\n return picked;\n }\n );\n\n this.canvasRenderer.z = 0;\n\n if (pickContext.modelMatrix !== lastModelMatrix) {\n mat4Allocate.free(pickContext.modelMatrix);\n }\n pickContext.modelMatrix = lastModelMatrix;\n pickContext.highPerformanceRestore();\n return picked;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/picker/contributions/canvas-picker/symbol-picker.ts"],"names":[],"mappings":"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","file":"symbol-picker.js","sourcesContent":["import { inject, injectable } from 'inversify';\nimport type { IPoint } from '@visactor/vutils';\nimport { getTheme } from '../../../graphic/theme';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n ISymbol,\n IThemeAttribute,\n IGraphicPicker,\n IGraphicRender,\n IPickParams\n} from '../../../interface';\nimport { SymbolRender } from '../../../render';\nimport { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport { getScaledStroke } from '../../../common/canvas-utils';\nimport { BasePicker } from './base-picker';\nimport { SYMBOL_NUMBER_TYPE } from '../../../graphic/constants';\nimport { createRect } from '../../../graphic';\n\nconst rect = createRect({});\n\n@injectable()\nexport class DefaultCanvasSymbolPicker extends BasePicker<ISymbol> implements IGraphicPicker {\n type: string = 'symbol';\n numberType: number = SYMBOL_NUMBER_TYPE;\n\n constructor(@inject(SymbolRender) public readonly canvasRenderer: IGraphicRender) {\n super();\n }\n\n contains(symbol: ISymbol, point: IPoint, params?: IPickParams): boolean {\n const { pickContext } = params ?? {};\n if (!pickContext) {\n return false;\n }\n\n const parsedPath = symbol.getParsedPath();\n if (!pickContext.camera) {\n if (!symbol.AABBBounds.containsPoint(point)) {\n return false;\n }\n if (parsedPath.isSvg || symbol.attribute.pickMode === 'imprecise') {\n return true;\n }\n }\n\n pickContext.highPerformanceSave();\n // const symbolAttribute = graphicService.themeService.getCurrentTheme().symbolAttribute;\n const symbolAttribute = getTheme(symbol).symbol;\n\n const data = this.transform(symbol, symbolAttribute, pickContext);\n const { x, y, z, lastModelMatrix } = data;\n // let { x = symbolAttribute.x, y = symbolAttribute.y } = symbol.attribute;\n\n // pickContext.highPerformanceSave();\n // if (!symbol.transMatrix.onlyTranslate()) {\n // // 性能较差\n // x = 0;\n // y = 0;\n // pickContext.transformFromMatrix(symbol.transMatrix, true);\n // } else {\n // const point = symbol.getOffsetXY(symbolAttribute);\n // x += point.x;\n // y += point.y;\n // // 当前context有rotate/scale,重置matrix\n // pickContext.setTransformForCurrent();\n // }\n\n let pickPoint = point;\n if (pickContext.camera) {\n pickPoint = point.clone();\n const globalMatrix = symbol.parent.globalTransMatrix;\n pickPoint.x = globalMatrix.a * point.x + globalMatrix.c * point.y + globalMatrix.e;\n pickPoint.y = globalMatrix.b * point.x + globalMatrix.d * point.y + globalMatrix.f;\n }\n\n this.canvasRenderer.z = z;\n // 详细形状判断\n let picked = false;\n this.canvasRenderer.drawShape(\n symbol,\n pickContext,\n x,\n y,\n {} as any,\n null,\n (\n context: IContext2d,\n symbolAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => {\n // 选中后面就不需要再走逻辑了\n if (picked) {\n return true;\n }\n picked = context.isPointInPath(pickPoint.x, pickPoint.y);\n return picked;\n },\n (\n context: IContext2d,\n symbolAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => {\n // 选中后面就不需要再走逻辑了\n if (picked) {\n return true;\n }\n const lineWidth = symbolAttribute.lineWidth || themeAttribute.lineWidth;\n pickContext.lineWidth = getScaledStroke(pickContext, lineWidth, pickContext.dpr);\n picked = context.isPointInStroke(pickPoint.x, pickPoint.y);\n return picked;\n }\n );\n\n this.canvasRenderer.z = 0;\n\n if (pickContext.modelMatrix !== lastModelMatrix) {\n mat4Allocate.free(pickContext.modelMatrix);\n }\n pickContext.modelMatrix = lastModelMatrix;\n pickContext.highPerformanceRestore();\n return picked;\n }\n}\n"]}
@@ -13,6 +13,7 @@ export declare const CanvasPolygonPicker: unique symbol;
13
13
  export declare const CanvasPyramid3dPicker: unique symbol;
14
14
  export declare const CanvasRichTextPicker: unique symbol;
15
15
  export declare const CanvasGlyphPicker: unique symbol;
16
+ export declare const CanvasGroupPicker: unique symbol;
16
17
  export declare const CanvasPickerContribution: unique symbol;
17
18
  export declare const MathArcPicker: unique symbol;
18
19
  export declare const MathAreaPicker: unique symbol;
@@ -28,6 +28,8 @@ export const CanvasRichTextPicker = Symbol.for("CanvasRichTextPicker");
28
28
 
29
29
  export const CanvasGlyphPicker = Symbol.for("CanvasGlyphPicker");
30
30
 
31
+ export const CanvasGroupPicker = Symbol.for("CanvasGroupPicker");
32
+
31
33
  export const CanvasPickerContribution = Symbol.for("CanvasPickerContribution");
32
34
 
33
35
  export const MathArcPicker = Symbol.for("MathArcPicker");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/contributions/constants.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC","file":"constants.js","sourcesContent":["// export const ArcPicker = Symbol.for('ArcPicker');\n// export const AreaPicker = Symbol.for('AreaPicker');\n// export const CirclePicker = Symbol.for('CirclePicker');\n// export const ImagePicker = Symbol.for('ImagePicker');\n// export const LinePicker = Symbol.for('LinePicker');\n// export const PathPicker = Symbol.for('PathPicker');\n// export const RectPicker = Symbol.for('RectPicker');\n// export const SymbolPicker = Symbol.for('SymbolPicker');\n// export const TextPicker = Symbol.for('TextPicker');\n\nexport const CanvasArcPicker = Symbol.for('CanvasArcPicker');\nexport const CanvasArc3dPicker = Symbol.for('CanvasArc3dPicker');\nexport const CanvasAreaPicker = Symbol.for('CanvasAreaPicker');\nexport const CanvasCirclePicker = Symbol.for('CanvasCirclePicker');\nexport const CanvasImagePicker = Symbol.for('CanvasImagePicker');\nexport const CanvasLinePicker = Symbol.for('CanvasLinePicker');\nexport const CanvasPathPicker = Symbol.for('CanvasPathPicker');\nexport const CanvasRectPicker = Symbol.for('CanvasRectPicker');\nexport const CanvasRect3dPicker = Symbol.for('CanvasRect3dPicker');\nexport const CanvasSymbolPicker = Symbol.for('CanvasSymbolPicker');\nexport const CanvasTextPicker = Symbol.for('CanvasTextPicker');\nexport const CanvasPolygonPicker = Symbol.for('CanvasPolygonPicker');\nexport const CanvasPyramid3dPicker = Symbol.for('CanvasPyramid3dPicker');\nexport const CanvasRichTextPicker = Symbol.for('CanvasRichTextPicker');\nexport const CanvasGlyphPicker = Symbol.for('CanvasGlyphPicker');\nexport const CanvasPickerContribution = Symbol.for('CanvasPickerContribution');\n\nexport const MathArcPicker = Symbol.for('MathArcPicker');\nexport const MathAreaPicker = Symbol.for('MathAreaPicker');\nexport const MathCirclePicker = Symbol.for('MathCirclePicker');\nexport const MathImagePicker = Symbol.for('MathImagePicker');\nexport const MathLinePicker = Symbol.for('MathLinePicker');\nexport const MathPathPicker = Symbol.for('MathPathPicker');\nexport const MathRectPicker = Symbol.for('MathRectPicker');\nexport const MathSymbolPicker = Symbol.for('MathSymbolPicker');\nexport const MathTextPicker = Symbol.for('MathTextPicker');\nexport const MathPolygonPicker = Symbol.for('MathPolygonPicker');\nexport const MathGlyphPicker = Symbol.for('MathGlyphPicker');\nexport const MathPickerContribution = Symbol.for('MathPickerContribution');\n"]}
1
+ {"version":3,"sources":["../src/picker/contributions/constants.ts"],"names":[],"mappings":"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","file":"constants.js","sourcesContent":["// export const ArcPicker = Symbol.for('ArcPicker');\n// export const AreaPicker = Symbol.for('AreaPicker');\n// export const CirclePicker = Symbol.for('CirclePicker');\n// export const ImagePicker = Symbol.for('ImagePicker');\n// export const LinePicker = Symbol.for('LinePicker');\n// export const PathPicker = Symbol.for('PathPicker');\n// export const RectPicker = Symbol.for('RectPicker');\n// export const SymbolPicker = Symbol.for('SymbolPicker');\n// export const TextPicker = Symbol.for('TextPicker');\n\nexport const CanvasArcPicker = Symbol.for('CanvasArcPicker');\nexport const CanvasArc3dPicker = Symbol.for('CanvasArc3dPicker');\nexport const CanvasAreaPicker = Symbol.for('CanvasAreaPicker');\nexport const CanvasCirclePicker = Symbol.for('CanvasCirclePicker');\nexport const CanvasImagePicker = Symbol.for('CanvasImagePicker');\nexport const CanvasLinePicker = Symbol.for('CanvasLinePicker');\nexport const CanvasPathPicker = Symbol.for('CanvasPathPicker');\nexport const CanvasRectPicker = Symbol.for('CanvasRectPicker');\nexport const CanvasRect3dPicker = Symbol.for('CanvasRect3dPicker');\nexport const CanvasSymbolPicker = Symbol.for('CanvasSymbolPicker');\nexport const CanvasTextPicker = Symbol.for('CanvasTextPicker');\nexport const CanvasPolygonPicker = Symbol.for('CanvasPolygonPicker');\nexport const CanvasPyramid3dPicker = Symbol.for('CanvasPyramid3dPicker');\nexport const CanvasRichTextPicker = Symbol.for('CanvasRichTextPicker');\nexport const CanvasGlyphPicker = Symbol.for('CanvasGlyphPicker');\nexport const CanvasGroupPicker = Symbol.for('CanvasGroupPicker');\nexport const CanvasPickerContribution = Symbol.for('CanvasPickerContribution');\n\nexport const MathArcPicker = Symbol.for('MathArcPicker');\nexport const MathAreaPicker = Symbol.for('MathAreaPicker');\nexport const MathCirclePicker = Symbol.for('MathCirclePicker');\nexport const MathImagePicker = Symbol.for('MathImagePicker');\nexport const MathLinePicker = Symbol.for('MathLinePicker');\nexport const MathPathPicker = Symbol.for('MathPathPicker');\nexport const MathRectPicker = Symbol.for('MathRectPicker');\nexport const MathSymbolPicker = Symbol.for('MathSymbolPicker');\nexport const MathTextPicker = Symbol.for('MathTextPicker');\nexport const MathPolygonPicker = Symbol.for('MathPolygonPicker');\nexport const MathGlyphPicker = Symbol.for('MathGlyphPicker');\nexport const MathPickerContribution = Symbol.for('MathPickerContribution');\n"]}
@@ -29,7 +29,7 @@ let DefaultMathGlyphPicker = class {
29
29
  if (pickerService) {
30
30
  let picked = !1;
31
31
  return glyph.getSubGraphic().forEach((g => {
32
- picked || (picked = !!pickerService.pickItem(g, point, params));
32
+ picked || (picked = !!pickerService.pickItem(g, point, null, params));
33
33
  })), picked;
34
34
  }
35
35
  return !1;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/contributions/math-picker/glyph-picker.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGvC,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAIjC,YAAiD,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAH/E,SAAI,GAAW,OAAO,CAAC;QACvB,eAAU,GAAW,iBAAiB,CAAC;IAE2C,CAAC;IAEnF,QAAQ,CAAC,KAAa,EAAE,KAAa,EAAE,MAAoB;QACzD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;YAC1C,OAAO,KAAK,CAAC;SACd;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,KAAK,WAAW,EAAE;YAC5C,OAAO,IAAI,CAAC;SACb;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,aAAa,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC;QAC5C,IAAI,aAAa,EAAE;YAEjB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,KAAK,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChC,IAAI,MAAM,EAAE;oBACV,OAAO;iBACR;gBACD,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IA0Cf,CAAC;CACF,CAAA;AA1EY,sBAAsB;IADlC,UAAU,EAAE;IAKE,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;;GAJrB,sBAAsB,CA0ElC;SA1EY,sBAAsB","file":"glyph-picker.js","sourcesContent":["import type { IPoint } from '@visactor/vutils';\nimport { inject, injectable } from 'inversify';\nimport { GLYPH_NUMBER_TYPE } from '../../../graphic/constants';\nimport type { IGlyph, IGraphicPicker, IGraphicRender, IPickParams } from '../../../interface';\nimport { GlyphRender } from '../../../render';\n\n@injectable()\nexport class DefaultMathGlyphPicker implements IGraphicPicker {\n type: string = 'glyph';\n numberType: number = GLYPH_NUMBER_TYPE;\n\n constructor(@inject(GlyphRender) public readonly canvasRenderer: IGraphicRender) {}\n\n contains(glyph: IGlyph, point: IPoint, params?: IPickParams): boolean {\n if (!glyph.AABBBounds.containsPoint(point)) {\n return false;\n }\n if (glyph.attribute.pickMode === 'imprecise') {\n return true;\n }\n\n const { pickContext } = params ?? {};\n if (!pickContext) {\n return false;\n }\n\n const pickerService = params?.pickerService;\n if (pickerService) {\n // 遍历所有的子元素pick\n let picked = false;\n glyph.getSubGraphic().forEach(g => {\n if (picked) {\n return;\n }\n picked = !!pickerService.pickItem(g, point, params);\n });\n return picked;\n }\n return false;\n\n // const { rectAttribute } = graphicService.themeService.getCurrentTheme();\n // const glyphAttribute = getTheme(glyph).glyph;\n // let { x = glyphAttribute.x, y = glyphAttribute.y } = glyph.attribute;\n\n // pickContext.highPerformanceSave();\n // if (!glyph.transMatrix.onlyTranslate()) {\n // // 性能较差\n // x = 0;\n // y = 0;\n // pickContext.transformFromMatrix(glyph.transMatrix, true);\n // } else {\n // const { dx = glyphAttribute.dx, dy = glyphAttribute.dy } = glyph.attribute;\n // x += dx;\n // y += dy;\n // // 当前context有rotate/scale,重置matrix\n // pickContext.setTransformForCurrent();\n // }\n // // 详细形状判断\n // let picked = false;\n // this.canvasRenderer.drawShape(\n // glyph,\n // pickContext,\n // x,\n // y,\n // {\n // drawContribution: params.pickerService?.drawContribution\n // } as any,\n // null,\n // context => {\n // // 选中后面就不需要再走逻辑了\n // if (picked) {\n // return true;\n // }\n // picked = context.isPointInPath(point.x, point.y);\n // return picked;\n // }\n // );\n\n // pickContext.highPerformanceRestore();\n // return picked; // 无圆角形状判断通过\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/picker/contributions/math-picker/glyph-picker.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGvC,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAIjC,YAAiD,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAH/E,SAAI,GAAW,OAAO,CAAC;QACvB,eAAU,GAAW,iBAAiB,CAAC;IAE2C,CAAC;IAEnF,QAAQ,CAAC,KAAa,EAAE,KAAa,EAAE,MAAoB;QACzD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;YAC1C,OAAO,KAAK,CAAC;SACd;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,KAAK,WAAW,EAAE;YAC5C,OAAO,IAAI,CAAC;SACb;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,aAAa,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC;QAC5C,IAAI,aAAa,EAAE;YAEjB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,KAAK,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChC,IAAI,MAAM,EAAE;oBACV,OAAO;iBACR;gBACD,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IA0Cf,CAAC;CACF,CAAA;AA1EY,sBAAsB;IADlC,UAAU,EAAE;IAKE,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;;GAJrB,sBAAsB,CA0ElC;SA1EY,sBAAsB","file":"glyph-picker.js","sourcesContent":["import type { IPoint } from '@visactor/vutils';\nimport { inject, injectable } from 'inversify';\nimport { GLYPH_NUMBER_TYPE } from '../../../graphic/constants';\nimport type { IGlyph, IGraphicPicker, IGraphicRender, IPickParams } from '../../../interface';\nimport { GlyphRender } from '../../../render';\n\n@injectable()\nexport class DefaultMathGlyphPicker implements IGraphicPicker {\n type: string = 'glyph';\n numberType: number = GLYPH_NUMBER_TYPE;\n\n constructor(@inject(GlyphRender) public readonly canvasRenderer: IGraphicRender) {}\n\n contains(glyph: IGlyph, point: IPoint, params?: IPickParams): boolean {\n if (!glyph.AABBBounds.containsPoint(point)) {\n return false;\n }\n if (glyph.attribute.pickMode === 'imprecise') {\n return true;\n }\n\n const { pickContext } = params ?? {};\n if (!pickContext) {\n return false;\n }\n\n const pickerService = params?.pickerService;\n if (pickerService) {\n // 遍历所有的子元素pick\n let picked = false;\n glyph.getSubGraphic().forEach(g => {\n if (picked) {\n return;\n }\n picked = !!pickerService.pickItem(g, point, null, params);\n });\n return picked;\n }\n return false;\n\n // const { rectAttribute } = graphicService.themeService.getCurrentTheme();\n // const glyphAttribute = getTheme(glyph).glyph;\n // let { x = glyphAttribute.x, y = glyphAttribute.y } = glyph.attribute;\n\n // pickContext.highPerformanceSave();\n // if (!glyph.transMatrix.onlyTranslate()) {\n // // 性能较差\n // x = 0;\n // y = 0;\n // pickContext.transformFromMatrix(glyph.transMatrix, true);\n // } else {\n // const { dx = glyphAttribute.dx, dy = glyphAttribute.dy } = glyph.attribute;\n // x += dx;\n // y += dy;\n // // 当前context有rotate/scale,重置matrix\n // pickContext.setTransformForCurrent();\n // }\n // // 详细形状判断\n // let picked = false;\n // this.canvasRenderer.drawShape(\n // glyph,\n // pickContext,\n // x,\n // y,\n // {\n // drawContribution: params.pickerService?.drawContribution\n // } as any,\n // null,\n // context => {\n // // 选中后面就不需要再走逻辑了\n // if (picked) {\n // return true;\n // }\n // picked = context.isPointInPath(point.x, point.y);\n // return picked;\n // }\n // );\n\n // pickContext.highPerformanceRestore();\n // return picked; // 无圆角形状判断通过\n }\n}\n"]}
@@ -11,5 +11,5 @@ export declare class DefaultGlobalPickerService implements IPickerService {
11
11
  pick(graphics: IGraphic[], point: IPointLike, params?: IPickParams): PickResult;
12
12
  containsPoint(graphic: IGraphic, point: IPointLike, params?: IPickParams): boolean;
13
13
  pickGroup(group: IGroup, point: IPointLike, parentMatrix: IMatrix, params?: IPickParams): PickResult;
14
- pickItem(graphic: IGraphic, point: IPointLike, params?: IPickParams): IGraphic | null;
14
+ pickItem(graphic: IGraphic, point: IPointLike, parentMatrix: IMatrix | null, params?: IPickParams): IGraphic | null;
15
15
  }
@@ -34,12 +34,19 @@ let DefaultGlobalPickerService = class {
34
34
  };
35
35
  const parentMatrix = new Matrix(1, 0, 0, 1, 0, 0);
36
36
  let group;
37
- for (let i = 0; i < graphics.length && (graphics[i].isContainer ? result = this.pickGroup(graphics[i], point, parentMatrix, params) : result.graphic = this.pickItem(graphics[i], point, params),
37
+ for (let i = 0; i < graphics.length && (graphics[i].isContainer ? result = this.pickGroup(graphics[i], point, parentMatrix, params) : result.graphic = this.pickItem(graphics[i], point, parentMatrix, params),
38
38
  !result.graphic); i++) group || (group = result.group);
39
- return result.graphic || (result.group = group), result;
39
+ if (result.graphic || (result.group = group), result.graphic) {
40
+ let g = result.graphic;
41
+ for (;g.parent; ) g = g.parent;
42
+ g.shadowHost && (result.params = {
43
+ shadowTarget: result.graphic
44
+ }, result.graphic = g.shadowHost);
45
+ }
46
+ return result;
40
47
  }
41
48
  containsPoint(graphic, point, params) {
42
- return !!this.pickItem(graphic, point, params);
49
+ return !!this.pickItem(graphic, point, null, params);
43
50
  }
44
51
  pickGroup(group, point, parentMatrix, params) {
45
52
  let result = {
@@ -56,12 +63,12 @@ let DefaultGlobalPickerService = class {
56
63
  !1 !== group.attribute.childrenPickable && group.forEachChildren((graphic => {
57
64
  if (graphic.isContainer) result = this.pickGroup(graphic, point, parentMatrix, params); else {
58
65
  const newPoint = new Point(point.x, point.y);
59
- parentMatrix.transformPoint(newPoint, newPoint), result.graphic = this.pickItem(graphic, newPoint, params);
66
+ parentMatrix.transformPoint(newPoint, newPoint), result.graphic = this.pickItem(graphic, newPoint, parentMatrix, params);
60
67
  }
61
68
  return !!result.graphic || !!result.group;
62
69
  })), result.graphic || result.group || !groupPicked || (result.group = group), result;
63
70
  }
64
- pickItem(graphic, point, params) {
71
+ pickItem(graphic, point, parentMatrix, params) {
65
72
  return !1 === graphic.attribute.pickable ? null : graphic.AABBBounds.containsPoint(point) ? graphic : null;
66
73
  }
67
74
  };
@@ -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 'inversify';\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\nexport const BoundsPicker = Symbol.for('BoundsPicker');\n\nexport const GlobalPickerService = Symbol.for('GlobalPickerService');\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 result.graphic = this.pickItem(graphics[i], point, params);\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 return result;\n }\n\n containsPoint(graphic: IGraphic, point: IPointLike, params?: IPickParams): boolean {\n return !!this.pickItem(graphic, point, 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 result.graphic = this.pickItem(graphic, newPoint, params);\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(graphic: IGraphic, point: IPointLike, params?: IPickParams): IGraphic | null {\n if (graphic.attribute.pickable === false) {\n return null;\n }\n if (graphic.AABBBounds.containsPoint(point)) {\n return graphic;\n }\n return null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/picker/global-picker-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAW/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAK9D,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAKrC,YAImC,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;QAEhD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;YAC/E,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,MAAe,EAAE,GAAY;IAKvC,CAAC;IAID,IAAI,CAAC,QAAoB,EAAE,KAAiB,EAAE,MAAoB;QAChE,IAAI,MAAM,GAAe;YACvB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;SACZ,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,IAAI,KAAa,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBAC3B,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAW,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;aAC7E;iBAAM;gBACL,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;aAC1E;YACD,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,MAAM;aACP;YACD,IAAI,CAAC,KAAK,EAAE;gBACV,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;aACtB;SACF;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;QAED,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;YACvB,OAAO,CAAC,CAAC,MAAM,EAAE;gBACf,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;aACd;YACD,IAAI,CAAC,CAAC,UAAU,EAAE;gBAChB,MAAM,CAAC,MAAM,GAAG;oBACd,YAAY,EAAE,MAAM,CAAC,OAAO;iBAC7B,CAAC;gBACF,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC;aAC/B;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,OAAiB,EAAE,KAAiB,EAAE,MAAoB;QACtE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,KAAiB,EAAE,YAAqB,EAAE,MAAoB;QACrF,IAAI,MAAM,GAAe;YACvB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;SACd,CAAC;QACF,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,EAAE;YACxC,OAAO,MAAM,CAAC;SACf;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAEtC,MAAM,QAAQ,GAAW,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACrD,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE7D,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAC;QAEtE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAEhH,IAAI,KAAK,CAAC,SAAS,CAAC,gBAAgB,KAAK,KAAK,EAAE;YAC9C,KAAK,CAAC,eAAe,CAAC,CAAC,OAAiB,EAAE,EAAE;gBAC1C,IAAI,OAAO,CAAC,WAAW,EAAE;oBACvB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;iBACzE;qBAAM;oBACL,MAAM,QAAQ,GAAW,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrD,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAChD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;iBACzE;gBACD,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5C,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,WAAW,EAAE;YACnD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD,QAAQ,CAAC,OAAiB,EAAE,KAAiB,EAAE,YAA4B,EAAE,MAAoB;QAC/F,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxC,OAAO,IAAI,CAAC;SACb;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;YAC3C,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA1HY,0BAA0B;IADtC,UAAU,EAAE;IAUR,WAAA,MAAM,CAAC,OAAO,CAAC,CAAA;;GATP,0BAA0B,CA0HtC;SA1HY,0BAA0B","file":"global-picker-service.js","sourcesContent":["import type { IMatrix, IPoint, IPointLike } from '@visactor/vutils';\nimport { Matrix, Point } from '@visactor/vutils';\nimport { inject, injectable } from 'inversify';\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\nexport const BoundsPicker = Symbol.for('BoundsPicker');\n\nexport const GlobalPickerService = Symbol.for('GlobalPickerService');\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 result.graphic = this.pickItem(graphics[i], point, parentMatrix, params);\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 result.graphic = this.pickItem(graphic, newPoint, parentMatrix, params);\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(graphic: IGraphic, point: IPointLike, parentMatrix: IMatrix | null, params?: IPickParams): IGraphic | null {\n if (graphic.attribute.pickable === false) {\n return null;\n }\n if (graphic.AABBBounds.containsPoint(point)) {\n return graphic;\n }\n return null;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { IPointLike } from '@visactor/vutils';
1
+ import type { IMatrix, IPointLike } from '@visactor/vutils';
2
2
  import type { ICanvas, IContext2d, IGraphic, EnvType, IGlobal, IGraphicPicker, IPickerService, IContributionProvider, IPickItemInterceptorContribution, IPickParams } from '../interface';
3
3
  import { DefaultPickService } from './picker-service';
4
4
  export declare class DefaultMathPickerService extends DefaultPickService implements IPickerService {
@@ -12,5 +12,5 @@ export declare class DefaultMathPickerService extends DefaultPickService impleme
12
12
  constructor(contributions: IContributionProvider<IGraphicPicker>, global: IGlobal, pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>);
13
13
  init(): void;
14
14
  configure(global: IGlobal, env: EnvType): void;
15
- pickItem(graphic: IGraphic, point: IPointLike, params?: IPickParams): IGraphic | null;
15
+ pickItem(graphic: IGraphic, point: IPointLike, parentMatrix: IMatrix | null, params?: IPickParams): IGraphic | null;
16
16
  }
@@ -40,7 +40,7 @@ let DefaultMathPickerService = class extends DefaultPickService {
40
40
  configure(global, env) {
41
41
  this.pickContext = new EmptyContext2d(null, 1);
42
42
  }
43
- pickItem(graphic, point, params) {
43
+ pickItem(graphic, point, parentMatrix, params) {
44
44
  if (!1 === graphic.attribute.pickable) return null;
45
45
  const picker = this.pickerMap.get(graphic.numberType);
46
46
  return picker && picker.contains(graphic, point, params) ? graphic : null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/math-picker-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAarE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAKlD,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,kBAAkB;IAO9D,YAGqB,aAAoD,EACtC,MAAe,EAI7B,gCAAyF;QAE5G,KAAK,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;QAP7B,kBAAa,GAAb,aAAa,CAAuC;QACtC,WAAM,GAAN,MAAM,CAAS;QAI7B,qCAAgC,GAAhC,gCAAgC,CAAyD;QAG5G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;YAC7E,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAC7B,CAAC;IAGD,IAAI;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,MAAe,EAAE,GAAY;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAGD,QAAQ,CAAC,OAAiB,EAAE,KAAiB,EAAE,MAAoB;QACjE,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxC,OAAO,IAAI,CAAC;SACb;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC;CACF,CAAA;AAvBC;IAAC,aAAa,EAAE;;;;oDAMf;AA/BU,wBAAwB;IADpC,UAAU,EAAE;IASR,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAE7B,WAAA,MAAM,CAAC,OAAO,CAAC,CAAA;IAEf,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,KAAK,CAAC,mBAAmB,CAAC,CAAA;;GAdlB,wBAAwB,CAgDpC;SAhDY,wBAAwB","file":"math-picker-service.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line\nimport { ContributionProvider } from '../common/contribution-provider';\nimport { inject, injectable, named, postConstruct } from 'inversify';\nimport type {\n ICanvas,\n IContext2d,\n IGraphic,\n EnvType,\n IGlobal,\n IGraphicPicker,\n IPickerService,\n IContributionProvider,\n IPickItemInterceptorContribution,\n IPickParams\n} from '../interface';\nimport { DefaultPickService } from './picker-service';\nimport { EmptyContext2d } from '../canvas';\nimport { MathPickerContribution } from './contributions/constants';\nimport { VGlobal } from '../constants';\nimport { PickItemInterceptor } from './pick-interceptor';\n\n// 默认的pick-service,提供基本的最优选中策略,尽量不需要用户自己实现contribution\n// 用户可以写plugin\n@injectable()\nexport class DefaultMathPickerService extends DefaultPickService implements IPickerService {\n declare type: 'default';\n // pcik canvas\n declare pickCanvas: ICanvas;\n declare pickContext: IContext2d;\n declare pickerMap: Map<number, IGraphicPicker>;\n\n constructor(\n @inject(ContributionProvider)\n @named(MathPickerContribution)\n protected readonly contributions: IContributionProvider<IGraphicPicker>,\n @inject(VGlobal) public readonly global: IGlobal,\n // 拦截器\n @inject(ContributionProvider)\n @named(PickItemInterceptor)\n protected readonly pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>\n ) {\n super(global, pickItemInterceptorContributions);\n this.global.hooks.onSetEnv.tap('math-picker-service', (lastEnv, env, global) => {\n this.configure(global, env);\n });\n this.configure(this.global, this.global.env);\n this.pickerMap = new Map();\n }\n\n @postConstruct()\n init() {\n this.contributions.getContributions().forEach(item => {\n this.pickerMap.set(item.numberType, item);\n });\n super._init();\n }\n\n configure(global: IGlobal, env: EnvType) {\n this.pickContext = new EmptyContext2d(null, 1);\n }\n\n // todo: switch统一改为数字map\n pickItem(graphic: IGraphic, point: IPointLike, params?: IPickParams): IGraphic | null {\n if (graphic.attribute.pickable === false) {\n return null;\n }\n const picker = this.pickerMap.get(graphic.numberType);\n if (!picker) {\n return null;\n }\n return picker.contains(graphic, point, params) ? graphic : null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/picker/math-picker-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAarE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAKlD,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,kBAAkB;IAO9D,YAGqB,aAAoD,EACtC,MAAe,EAI7B,gCAAyF;QAE5G,KAAK,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;QAP7B,kBAAa,GAAb,aAAa,CAAuC;QACtC,WAAM,GAAN,MAAM,CAAS;QAI7B,qCAAgC,GAAhC,gCAAgC,CAAyD;QAG5G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;YAC7E,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAC7B,CAAC;IAGD,IAAI;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,MAAe,EAAE,GAAY;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAGD,QAAQ,CAAC,OAAiB,EAAE,KAAiB,EAAE,YAA4B,EAAE,MAAoB;QAC/F,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxC,OAAO,IAAI,CAAC;SACb;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC;CACF,CAAA;AAvBC;IAAC,aAAa,EAAE;;;;oDAMf;AA/BU,wBAAwB;IADpC,UAAU,EAAE;IASR,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAE7B,WAAA,MAAM,CAAC,OAAO,CAAC,CAAA;IAEf,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,KAAK,CAAC,mBAAmB,CAAC,CAAA;;GAdlB,wBAAwB,CAgDpC;SAhDY,wBAAwB","file":"math-picker-service.js","sourcesContent":["import type { IMatrix, IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line\nimport { ContributionProvider } from '../common/contribution-provider';\nimport { inject, injectable, named, postConstruct } from 'inversify';\nimport type {\n ICanvas,\n IContext2d,\n IGraphic,\n EnvType,\n IGlobal,\n IGraphicPicker,\n IPickerService,\n IContributionProvider,\n IPickItemInterceptorContribution,\n IPickParams\n} from '../interface';\nimport { DefaultPickService } from './picker-service';\nimport { EmptyContext2d } from '../canvas';\nimport { MathPickerContribution } from './contributions/constants';\nimport { VGlobal } from '../constants';\nimport { PickItemInterceptor } from './pick-interceptor';\n\n// 默认的pick-service,提供基本的最优选中策略,尽量不需要用户自己实现contribution\n// 用户可以写plugin\n@injectable()\nexport class DefaultMathPickerService extends DefaultPickService implements IPickerService {\n declare type: 'default';\n // pcik canvas\n declare pickCanvas: ICanvas;\n declare pickContext: IContext2d;\n declare pickerMap: Map<number, IGraphicPicker>;\n\n constructor(\n @inject(ContributionProvider)\n @named(MathPickerContribution)\n protected readonly contributions: IContributionProvider<IGraphicPicker>,\n @inject(VGlobal) public readonly global: IGlobal,\n // 拦截器\n @inject(ContributionProvider)\n @named(PickItemInterceptor)\n protected readonly pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>\n ) {\n super(global, pickItemInterceptorContributions);\n this.global.hooks.onSetEnv.tap('math-picker-service', (lastEnv, env, global) => {\n this.configure(global, env);\n });\n this.configure(this.global, this.global.env);\n this.pickerMap = new Map();\n }\n\n @postConstruct()\n init() {\n this.contributions.getContributions().forEach(item => {\n this.pickerMap.set(item.numberType, item);\n });\n super._init();\n }\n\n configure(global: IGlobal, env: EnvType) {\n this.pickContext = new EmptyContext2d(null, 1);\n }\n\n // todo: switch统一改为数字map\n pickItem(graphic: IGraphic, point: IPointLike, parentMatrix: IMatrix | null, params?: IPickParams): IGraphic | null {\n if (graphic.attribute.pickable === false) {\n return null;\n }\n const picker = this.pickerMap.get(graphic.numberType);\n if (!picker) {\n return null;\n }\n return picker.contains(graphic, point, params) ? graphic : null;\n }\n}\n"]}
@@ -1,6 +1,18 @@
1
1
  import type { IMatrix, IPointLike } from '@visactor/vutils';
2
2
  import type { IContext2d, IGraphic, IPickItemInterceptorContribution, IPickParams, IPickerService, PickResult } from '../interface';
3
3
  export declare const PickItemInterceptor: unique symbol;
4
+ export declare class ShadowRootPickItemInterceptorContribution implements IPickItemInterceptorContribution {
5
+ order: number;
6
+ afterPickItem(graphic: IGraphic, pickerService: IPickerService, point: IPointLike, pickParams: IPickParams, params?: {
7
+ parentMatrix: IMatrix;
8
+ }): boolean | PickResult;
9
+ beforePickItem(graphic: IGraphic, pickerService: IPickerService, point: IPointLike, pickParams: IPickParams, params?: {
10
+ parentMatrix: IMatrix;
11
+ }): boolean | PickResult;
12
+ protected _pickItem(graphic: IGraphic, pickerService: IPickerService, point: IPointLike, pickParams: IPickParams, params?: {
13
+ parentMatrix: IMatrix;
14
+ }): boolean | PickResult;
15
+ }
4
16
  export declare class Canvas3DPickItemInterceptor implements IPickItemInterceptorContribution {
5
17
  order: number;
6
18
  beforePickItem(graphic: IGraphic, pickerService: IPickerService, point: IPointLike, pickParams: IPickParams, params?: {
@@ -4,14 +4,45 @@ var __decorate = this && this.__decorate || function(decorators, target, key, de
4
4
  return c > 3 && r && Object.defineProperty(target, key, r), r;
5
5
  };
6
6
 
7
- import { pi2 } from "@visactor/vutils";
7
+ import { Point, pi2 } from "@visactor/vutils";
8
8
 
9
9
  import { injectable } from "inversify";
10
10
 
11
11
  import { ARC3D_NUMBER_TYPE } from "../graphic/constants";
12
12
 
13
+ import { matrixAllocate } from "../allocator/matrix-allocate";
14
+
13
15
  export const PickItemInterceptor = Symbol.for("PickItemInterceptor");
14
16
 
17
+ let ShadowRootPickItemInterceptorContribution = class {
18
+ constructor() {
19
+ this.order = 1;
20
+ }
21
+ afterPickItem(graphic, pickerService, point, pickParams, params) {
22
+ return (graphic.attribute.shadowRootIdx > 0 || !graphic.attribute.shadowRootIdx) && this._pickItem(graphic, pickerService, point, pickParams, params);
23
+ }
24
+ beforePickItem(graphic, pickerService, point, pickParams, params) {
25
+ return graphic.attribute.shadowRootIdx < 0 && this._pickItem(graphic, pickerService, point, pickParams, params);
26
+ }
27
+ _pickItem(graphic, pickerService, point, pickParams, params) {
28
+ if (!graphic.shadowRoot) return !1;
29
+ const {parentMatrix: parentMatrix} = params || {};
30
+ if (!parentMatrix) return !1;
31
+ const context = pickerService.pickContext;
32
+ context.highPerformanceSave();
33
+ const g = graphic.shadowRoot, currentGroupMatrix = matrixAllocate.allocateByObj(parentMatrix), newPoint = new Point(point.x, point.y);
34
+ parentMatrix.transformPoint(newPoint, newPoint);
35
+ const transMatrix = graphic.transMatrix;
36
+ currentGroupMatrix.multiply(transMatrix.a, transMatrix.b, transMatrix.c, transMatrix.d, transMatrix.e, transMatrix.f);
37
+ const result = pickerService.pickGroup(g, newPoint.clone(), currentGroupMatrix, pickParams);
38
+ return context.highPerformanceRestore(), result;
39
+ }
40
+ };
41
+
42
+ ShadowRootPickItemInterceptorContribution = __decorate([ injectable() ], ShadowRootPickItemInterceptorContribution);
43
+
44
+ export { ShadowRootPickItemInterceptorContribution };
45
+
15
46
  let Canvas3DPickItemInterceptor = class {
16
47
  constructor() {
17
48
  this.order = 1;
@@ -63,10 +94,9 @@ let Canvas3DPickItemInterceptor = class {
63
94
  graphic.add(g);
64
95
  }));
65
96
  } else result = pickerService.pickGroup(graphic, point, params.parentMatrix, pickParams);
66
- return context.camera = null, context.restore(), pickParams.in3dInterceptor = !1,
67
- result;
97
+ return context.camera = null, pickParams.in3dInterceptor = !1, result;
68
98
  }
69
- return null;
99
+ return context.restore(), null;
70
100
  }
71
101
  initCanvasCtx(context) {
72
102
  context.setTransformForCurrent();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/pick-interceptor.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAazD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAM9D,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAAjC;QAEL,UAAK,GAAW,CAAC,CAAC;IAmJpB,CAAC;IAjJC,cAAc,CACZ,OAAiB,EACjB,aAA6B,EAC7B,KAAiB,EACjB,UAAuB,EACvB,MAEC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,eAAe,EAAE;YACnD,OAAO,IAAI,CAAC;SACb;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QACD,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC;QAGlC,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAG9B,IAAI,OAAO,CAAC,WAAW,EAAE;YAEvB,IAAI,KAAK,GAAY,KAAK,CAAC;YAC3B,IAAI,IAAI,GAAY,KAAK,CAAC;YAC1B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAW,EAAE,EAAE;gBACtC,KAAK,GAAG,CAAC,CAAC,UAAU,KAAK,iBAAiB,CAAC;gBAC3C,OAAO,CAAC,KAAK,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,eAAe,CAAC,CAAC,CAAW,EAAE,EAAE;gBACtC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,IAAI,MAAkB,CAAC;YACvB,IAAI,KAAK,EAAE;gBACT,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAY,CAAC;gBASjD,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;gBACrC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;oBAC3B,IAAI,MAAM,GAAG,CAAC,MAAA,MAAA,CAAC,CAAC,SAAS,CAAC,UAAU,mCAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC3E,IAAI,MAAM,GAAG,CAAC,MAAA,MAAA,CAAC,CAAC,SAAS,CAAC,UAAU,mCAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC3E,OAAO,MAAM,GAAG,CAAC,EAAE;wBACjB,MAAM,IAAI,GAAG,CAAC;qBACf;oBACD,OAAO,MAAM,GAAG,CAAC,EAAE;wBACjB,MAAM,IAAI,GAAG,CAAC;qBACf;oBACD,OAAO,MAAM,GAAG,MAAM,CAAC;gBACzB,CAAC,CAAC,CAAC;gBACH,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACzB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;oBACf,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACzB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;gBACH,UAAU,CAAC,YAAY,GAAG,SAAS,CAAC;gBACpC,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,OAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBAC5F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBAEnB,UAAU,CAAC,YAAY,GAAG,QAAQ,CAAC;oBACnC,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,OAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;iBAC7F;gBACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBAEnB,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;oBAChC,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,OAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;iBAC7F;gBACD,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;oBACf,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,IAAI,EAAE;gBAEf,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAgB,CAAC;gBACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBACjC,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;oBAEjC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;wBACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChE,CAAC,CAAC,CAAC;oBACH,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACxD,OAAO;wBACL,KAAK;wBACL,CAAC;qBACF,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC5C,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;oBACjB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;gBACnB,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;gBAEH,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,OAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBAE5F,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;oBACf,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,OAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;aAC7F;YAED,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,OAAO,CAAC,OAAO,EAAE,CAAC;YAElB,UAAU,CAAC,eAAe,GAAG,KAAK,CAAC;YACnC,OAAO,MAAM,CAAC;SACf;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,OAAmB;QAC/B,OAAO,CAAC,sBAAsB,EAAE,CAAC;IACnC,CAAC;CACF,CAAA;AArJY,2BAA2B;IADvC,UAAU,EAAE;GACA,2BAA2B,CAqJvC;SArJY,2BAA2B","file":"pick-interceptor.js","sourcesContent":["import type { IMatrix, IPointLike } from '@visactor/vutils';\nimport { pi2 } from '@visactor/vutils';\nimport { injectable } from 'inversify';\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';\n\n// 拦截器\nexport const PickItemInterceptor = Symbol.for('PickItemInterceptor');\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 context.restore();\n\n pickParams.in3dInterceptor = false;\n return result;\n }\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":";;;;;;AACA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAWzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAM9D,IAAM,yCAAyC,GAA/C,MAAM,yCAAyC;IAA/C;QACL,UAAK,GAAW,CAAC,CAAC;IAuEpB,CAAC;IAtEC,aAAa,CACX,OAAiB,EACjB,aAA6B,EAC7B,KAAiB,EACjB,UAAuB,EACvB,MAEC;QAED,IAAI,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE;YAC3E,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;SAC1E;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc,CACZ,OAAiB,EACjB,aAA6B,EAC7B,KAAiB,EACjB,UAAuB,EACvB,MAEC;QAED,IAAI,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;SAC1E;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAES,SAAS,CACjB,OAAiB,EACjB,aAA6B,EAC7B,KAAiB,EACjB,UAAuB,EACvB,MAEC;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;QACD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC;QAC1C,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAE9B,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;QAC7B,MAAM,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,kBAAkB,CAAC,QAAQ,CACzB,WAAW,CAAC,CAAC,EACb,WAAW,CAAC,CAAC,EACb,WAAW,CAAC,CAAC,EACb,WAAW,CAAC,CAAC,EACb,WAAW,CAAC,CAAC,EACb,WAAW,CAAC,CAAC,CACd,CAAC;QAEF,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC;QAE5F,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAEjC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAxEY,yCAAyC;IADrD,UAAU,EAAE;GACA,yCAAyC,CAwErD;SAxEY,yCAAyC;AA8E/C,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAAjC;QAEL,UAAK,GAAW,CAAC,CAAC;IAmJpB,CAAC;IAjJC,cAAc,CACZ,OAAiB,EACjB,aAA6B,EAC7B,KAAiB,EACjB,UAAuB,EACvB,MAEC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,eAAe,EAAE;YACnD,OAAO,IAAI,CAAC;SACb;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QACD,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC;QAGlC,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAG9B,IAAI,OAAO,CAAC,WAAW,EAAE;YAEvB,IAAI,KAAK,GAAY,KAAK,CAAC;YAC3B,IAAI,IAAI,GAAY,KAAK,CAAC;YAC1B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAW,EAAE,EAAE;gBACtC,KAAK,GAAG,CAAC,CAAC,UAAU,KAAK,iBAAiB,CAAC;gBAC3C,OAAO,CAAC,KAAK,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,eAAe,CAAC,CAAC,CAAW,EAAE,EAAE;gBACtC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,IAAI,MAAkB,CAAC;YACvB,IAAI,KAAK,EAAE;gBACT,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAY,CAAC;gBASjD,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;gBACrC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;oBAC3B,IAAI,MAAM,GAAG,CAAC,MAAA,MAAA,CAAC,CAAC,SAAS,CAAC,UAAU,mCAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC3E,IAAI,MAAM,GAAG,CAAC,MAAA,MAAA,CAAC,CAAC,SAAS,CAAC,UAAU,mCAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC3E,OAAO,MAAM,GAAG,CAAC,EAAE;wBACjB,MAAM,IAAI,GAAG,CAAC;qBACf;oBACD,OAAO,MAAM,GAAG,CAAC,EAAE;wBACjB,MAAM,IAAI,GAAG,CAAC;qBACf;oBACD,OAAO,MAAM,GAAG,MAAM,CAAC;gBACzB,CAAC,CAAC,CAAC;gBACH,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACzB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;oBACf,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACzB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;gBACH,UAAU,CAAC,YAAY,GAAG,SAAS,CAAC;gBACpC,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,OAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBAC5F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBAEnB,UAAU,CAAC,YAAY,GAAG,QAAQ,CAAC;oBACnC,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,OAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;iBAC7F;gBACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBAEnB,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;oBAChC,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,OAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;iBAC7F;gBACD,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;oBACf,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,IAAI,EAAE;gBAEf,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAgB,CAAC;gBACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBACjC,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;oBAEjC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;wBACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChE,CAAC,CAAC,CAAC;oBACH,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACxD,OAAO;wBACL,KAAK;wBACL,CAAC;qBACF,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC5C,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;oBACjB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;gBACnB,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;gBAEH,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,OAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBAE5F,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;oBACf,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,OAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;aAC7F;YAED,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAEtB,UAAU,CAAC,eAAe,GAAG,KAAK,CAAC;YACnC,OAAO,MAAM,CAAC;SACf;QACD,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,OAAmB;QAC/B,OAAO,CAAC,sBAAsB,EAAE,CAAC;IACnC,CAAC;CACF,CAAA;AArJY,2BAA2B;IADvC,UAAU,EAAE;GACA,2BAA2B,CAqJvC;SArJY,2BAA2B","file":"pick-interceptor.js","sourcesContent":["import type { IMatrix, IPointLike } from '@visactor/vutils';\nimport { Point, pi2 } from '@visactor/vutils';\nimport { injectable } from 'inversify';\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 ): boolean | PickResult {\n if (graphic.attribute.shadowRootIdx > 0 || !graphic.attribute.shadowRootIdx) {\n return this._pickItem(graphic, pickerService, point, pickParams, params);\n }\n return false;\n }\n\n beforePickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ): boolean | PickResult {\n if (graphic.attribute.shadowRootIdx < 0) {\n return this._pickItem(graphic, pickerService, point, pickParams, params);\n }\n return false;\n }\n\n protected _pickItem(\n graphic: IGraphic,\n pickerService: IPickerService,\n point: IPointLike,\n pickParams: IPickParams,\n params?: {\n parentMatrix: IMatrix;\n }\n ): boolean | PickResult {\n if (!graphic.shadowRoot) {\n return false;\n }\n const { parentMatrix } = params || {};\n if (!parentMatrix) {\n return false;\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/**\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"]}
@@ -8,7 +8,7 @@ import { DefaultCanvasPickerService } from "./canvas-picker-service";
8
8
 
9
9
  import { DefaultMathPickerService } from "./math-picker-service";
10
10
 
11
- import { Canvas3DPickItemInterceptor, PickItemInterceptor } from "./pick-interceptor";
11
+ import { Canvas3DPickItemInterceptor, PickItemInterceptor, ShadowRootPickItemInterceptorContribution } from "./pick-interceptor";
12
12
 
13
13
  import { bindContributionProvider } from "../common/contribution-provider";
14
14
 
@@ -16,6 +16,8 @@ export default new ContainerModule((bind => {
16
16
  bind(DefaultCanvasPickerService).toSelf().inSingletonScope(), bind(DefaultMathPickerService).toSelf().inSingletonScope(),
17
17
  bind(PickerService).toService(DefaultCanvasPickerService), bind(DefaultGlobalPickerService).toSelf().inSingletonScope(),
18
18
  bind(GlobalPickerService).toService(DefaultGlobalPickerService), bind(Canvas3DPickItemInterceptor).toSelf().inSingletonScope(),
19
- bind(PickItemInterceptor).toService(Canvas3DPickItemInterceptor), bindContributionProvider(bind, PickItemInterceptor);
19
+ bind(PickItemInterceptor).toService(Canvas3DPickItemInterceptor), bind(ShadowRootPickItemInterceptorContribution).toSelf().inSingletonScope(),
20
+ bind(PickItemInterceptor).toService(ShadowRootPickItemInterceptorContribution),
21
+ bindContributionProvider(bind, PickItemInterceptor);
20
22
  }));
21
23
  //# sourceMappingURL=pick-modules.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/pick-modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,wBAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAE3D,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAE1D,IAAI,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAGhE,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACjE,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC","file":"pick-modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { PickerService } from './picker-service';\nimport { DefaultGlobalPickerService, GlobalPickerService } from './global-picker-service';\nimport { DefaultCanvasPickerService } from './canvas-picker-service';\nimport { DefaultMathPickerService } from './math-picker-service';\nimport { Canvas3DPickItemInterceptor, PickItemInterceptor } from './pick-interceptor';\nimport { bindContributionProvider } from '../common/contribution-provider';\n\nexport default new ContainerModule(bind => {\n bind(DefaultCanvasPickerService).toSelf().inSingletonScope();\n bind(DefaultMathPickerService).toSelf().inSingletonScope();\n\n bind(PickerService).toService(DefaultCanvasPickerService);\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 bindContributionProvider(bind, PickItemInterceptor);\n});\n"]}
1
+ {"version":3,"sources":["../src/picker/pick-modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,yCAAyC,EAC1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,wBAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAE3D,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAE1D,IAAI,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAGhE,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IAEjE,IAAI,CAAC,yCAAyC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5E,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC;IAC/E,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC","file":"pick-modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { PickerService } from './picker-service';\nimport { DefaultGlobalPickerService, GlobalPickerService } from './global-picker-service';\nimport { DefaultCanvasPickerService } from './canvas-picker-service';\nimport { DefaultMathPickerService } from './math-picker-service';\nimport {\n Canvas3DPickItemInterceptor,\n PickItemInterceptor,\n ShadowRootPickItemInterceptorContribution\n} from './pick-interceptor';\nimport { bindContributionProvider } from '../common/contribution-provider';\n\nexport default new ContainerModule(bind => {\n bind(DefaultCanvasPickerService).toSelf().inSingletonScope();\n bind(DefaultMathPickerService).toSelf().inSingletonScope();\n\n bind(PickerService).toService(DefaultCanvasPickerService);\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 bind(ShadowRootPickItemInterceptorContribution).toSelf().inSingletonScope();\n bind(PickItemInterceptor).toService(ShadowRootPickItemInterceptorContribution);\n bindContributionProvider(bind, PickItemInterceptor);\n});\n"]}
@@ -15,6 +15,6 @@ export declare abstract class DefaultPickService implements IPickerService {
15
15
  pick(graphics: IGraphic[], point: IPoint, params: IPickParams): PickResult;
16
16
  containsPoint(graphic: IGraphic, point: IPointLike, params: IPickParams): boolean;
17
17
  pickGroup(group: IGroup, point: IPointLike, parentMatrix: IMatrix, params: IPickParams): PickResult;
18
- abstract pickItem(graphic: IGraphic, point: IPointLike, params: IPickParams): IGraphic | null;
18
+ abstract pickItem(graphic: IGraphic, point: IPointLike, parentMatrix: IMatrix | null, params: IPickParams): IGraphic | null;
19
19
  protected selectPicker(graphic: IGraphic): IGraphicPicker | null;
20
20
  }
@@ -53,13 +53,20 @@ let DefaultPickService = class {
53
53
  this.pickContext && this.pickContext.clearMatrix(!0, 1);
54
54
  const parentMatrix = new Matrix(1, 0, 0, 1, offsetX, offsetY);
55
55
  let group;
56
- for (let i = graphics.length - 1; i >= 0 && (graphics[i].isContainer ? result = this.pickGroup(graphics[i], point, parentMatrix, params) : result.graphic = this.pickItem(graphics[i], point, params),
56
+ for (let i = graphics.length - 1; i >= 0 && (graphics[i].isContainer ? result = this.pickGroup(graphics[i], point, parentMatrix, params) : result.graphic = this.pickItem(graphics[i], point, parentMatrix, params),
57
57
  !result.graphic); i--) group || (group = result.group);
58
- return result.graphic || (result.group = group), this.pickContext && (this.pickContext.inuse = !1),
59
- result;
58
+ if (result.graphic || (result.group = group), this.pickContext && (this.pickContext.inuse = !1),
59
+ result.graphic) {
60
+ let g = result.graphic;
61
+ for (;g.parent; ) g = g.parent;
62
+ g.shadowHost && (result.params = {
63
+ shadowTarget: result.graphic
64
+ }, result.graphic = g.shadowHost);
65
+ }
66
+ return result;
60
67
  }
61
68
  containsPoint(graphic, point, params) {
62
- return !!this.pickItem(graphic, point, params);
69
+ return !!this.pickItem(graphic, point, null, params);
63
70
  }
64
71
  pickGroup(group, point, parentMatrix, params) {
65
72
  let result = {
@@ -91,9 +98,11 @@ let DefaultPickService = class {
91
98
  currentGroupMatrix.transformPoint(newPoint, newPoint);
92
99
  const insideGroup = group.AABBBounds.containsPoint(newPoint);
93
100
  if (!insideGroup && !group.stage.camera) return result;
101
+ const pickedItem = this.pickItem(group, newPoint.clone(), parentMatrix, params);
102
+ pickedItem && (result.graphic = pickedItem);
94
103
  const groupPicked = !1 !== group.attribute.pickable && insideGroup;
95
104
  return currentGroupMatrix.multiply(transMatrix.a, transMatrix.b, transMatrix.c, transMatrix.d, transMatrix.e, transMatrix.f),
96
- !1 !== group.attribute.childrenPickable && foreach(group, DefaultAttribute.zIndex, (graphic => {
105
+ !1 === group.attribute.childrenPickable || pickedItem || foreach(group, DefaultAttribute.zIndex, (graphic => {
97
106
  if (graphic.isContainer) {
98
107
  const newPoint = new Point(point.x, point.y), theme = getTheme(group).group, {scrollX: scrollX = theme.scrollX, scrollY: scrollY = theme.scrollY} = group.attribute;
99
108
  newPoint.x -= scrollX, newPoint.y -= scrollY, result = this.pickGroup(graphic, newPoint, currentGroupMatrix, params);
@@ -102,7 +111,7 @@ let DefaultPickService = class {
102
111
  currentGroupMatrix.transformPoint(newPoint, newPoint);
103
112
  const theme = getTheme(group).group, {scrollX: scrollX = theme.scrollX, scrollY: scrollY = theme.scrollY} = group.attribute;
104
113
  newPoint.x -= scrollX, newPoint.y -= scrollY;
105
- const pickedItem = this.pickItem(graphic, newPoint, params);
114
+ const pickedItem = this.pickItem(graphic, newPoint, parentMatrix, params);
106
115
  result.graphic = pickedItem;
107
116
  }
108
117
  return !!result.graphic || !!result.group;