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

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 +10 -13
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
4
+ void 0 === k2 && (k2 = k);
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
7
+ enumerable: !0,
8
+ get: function() {
9
+ return m[k];
10
+ }
11
+ }), Object.defineProperty(o, k2, desc);
12
+ } : function(o, m, k, k2) {
13
+ void 0 === k2 && (k2 = k), o[k2] = m[k];
14
+ }), __exportStar = this && this.__exportStar || function(m, exports) {
15
+ for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
16
+ };
17
+
18
+ Object.defineProperty(exports, "__esModule", {
19
+ value: !0
20
+ }), __exportStar(require("./jsx-classic"), exports), __exportStar(require("./graphicType"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/jsx/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B","file":"index.js","sourcesContent":["export * from './jsx-classic';\nexport * from './graphicType';\n"]}
@@ -0,0 +1,3 @@
1
+ import { Group } from '../graphic';
2
+ export declare function jsx(type: string | any, config: Record<string, any>, ...children: any): any;
3
+ export declare const Fragment: typeof Group;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var __rest = this && this.__rest || function(s, e) {
4
+ var t = {};
5
+ for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
6
+ if (null != s && "function" == typeof Object.getOwnPropertySymbols) {
7
+ var i = 0;
8
+ for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
9
+ }
10
+ return t;
11
+ };
12
+
13
+ Object.defineProperty(exports, "__esModule", {
14
+ value: !0
15
+ }), exports.Fragment = exports.jsx = void 0;
16
+
17
+ const vutils_1 = require("@visactor/vutils"), graphic_1 = require("../graphic"), graphicType_1 = require("./graphicType");
18
+
19
+ function flatten(list, out) {
20
+ if ((0, vutils_1.isArray)(list)) return list.forEach((i => flatten(i, out)));
21
+ out.push(list);
22
+ }
23
+
24
+ function jsx(type, config, ...children) {
25
+ const _a = config || {}, {key: key, attribute: attribute, stateProxy: stateProxy} = _a, props = __rest(_a, [ "key", "attribute", "stateProxy" ]);
26
+ let c = type;
27
+ (0, vutils_1.isString)(type) && (c = graphic_1.graphicCreator[type]);
28
+ const childrenList = [];
29
+ children.length && flatten(1 === children.length ? children[0] : children, childrenList);
30
+ const g = "Group" === c.name ? new c(attribute) : c(config);
31
+ return parseToGraphic(g, childrenList, props), stateProxy && (g.stateProxy = stateProxy),
32
+ g;
33
+ }
34
+
35
+ function parseToGraphic(g, childrenList, props) {
36
+ let out, isGraphic = !1;
37
+ switch (g.type) {
38
+ case "richtext":
39
+ case "rich/image":
40
+ break;
41
+
42
+ case "rich/text":
43
+ out = g.attribute || {}, childrenList[0] && (out.text = childrenList[0]);
44
+ break;
45
+
46
+ default:
47
+ isGraphic = !0;
48
+ }
49
+ isGraphic ? (childrenList.forEach((c => {
50
+ c && g.add(c);
51
+ })), Object.keys(props).forEach((k => {
52
+ const en = graphicType_1.REACT_TO_CANOPUS_EVENTS[k];
53
+ en && g.on(en, props[k]);
54
+ }))) : "richtext" === g.type && (g.attribute.textConfig = childrenList.map((item => item.attribute)).filter((item => item)));
55
+ }
56
+
57
+ exports.jsx = jsx, exports.Fragment = graphic_1.Group;
58
+ //# sourceMappingURL=jsx-classic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/jsx/jsx-classic.ts"],"names":[],"mappings":"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","file":"jsx-classic.js","sourcesContent":["import { isArray, isString } from '@visactor/vutils';\nimport { Group, graphicCreator } from '../graphic';\nimport { REACT_TO_CANOPUS_EVENTS } from './graphicType';\n\nfunction flatten(list: any, out: any[]): void {\n if (isArray(list)) {\n return list.forEach(i => flatten(i, out));\n }\n out.push(list);\n}\n\nexport function jsx(type: string | any, config: Record<string, any>, ...children: any) {\n const { key, attribute, stateProxy, ...props } = config || {};\n\n let c = type;\n if (isString(type)) {\n c = graphicCreator[type];\n }\n\n const childrenList: any[] = [];\n if (children.length) {\n flatten(children.length === 1 ? children[0] : children, childrenList);\n }\n\n const g = c.name === 'Group' ? new c(attribute) : c(config);\n parseToGraphic(g, childrenList, props);\n\n if (stateProxy) {\n g.stateProxy = stateProxy;\n }\n\n return g;\n}\n\nfunction parseToGraphic(g: any, childrenList: any[], props: any) {\n let isGraphic: boolean = false;\n let out: any;\n switch (g.type) {\n case 'richtext':\n break;\n case 'rich/text':\n out = g.attribute || {};\n childrenList[0] && (out.text = childrenList[0]);\n break;\n case 'rich/image':\n break;\n default:\n isGraphic = true;\n }\n\n if (isGraphic) {\n childrenList.forEach((c: any) => {\n c && g.add(c);\n });\n\n Object.keys(props).forEach(k => {\n const en = REACT_TO_CANOPUS_EVENTS[k];\n if (en) {\n g.on(en, props[k]);\n }\n });\n } else {\n if (g.type === 'richtext') {\n g.attribute.textConfig = childrenList.map(item => item.attribute).filter(item => item);\n }\n }\n}\n\nexport const Fragment = Group;\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, IDrawContribution, IContributionProvider, IPickItemInterceptorContribution, IPickParams } from '../interface';
3
3
  import { DefaultPickService } from './picker-service';
4
4
  export declare class DefaultCanvasPickerService extends DefaultPickService implements IPickerService {
@@ -24,5 +24,5 @@ export declare class DefaultCanvasPickerService extends DefaultPickService imple
24
24
  constructor(contributions: IContributionProvider<IGraphicPicker>, circlePicker: IGraphicPicker, rectPicker: IGraphicPicker, arcPicker: IGraphicPicker, areaPicker: IGraphicPicker, imagePicker: IGraphicPicker, linePicker: IGraphicPicker, pathPicker: IGraphicPicker, symbolPicker: IGraphicPicker, textPicker: IGraphicPicker, polygonPicker: IGraphicPicker, richtextPicker: IGraphicPicker, drawContribution: IDrawContribution, global: IGlobal, pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>);
25
25
  init(): void;
26
26
  configure(global: IGlobal, env: EnvType): void;
27
- pickItem(graphic: IGraphic, point: IPointLike, params: IPickParams): IGraphic | null;
27
+ pickItem(graphic: IGraphic, point: IPointLike, parentMatrix: IMatrix | null, params: IPickParams): IGraphic | null;
28
28
  }
@@ -47,14 +47,31 @@ let DefaultCanvasPickerService = class extends picker_service_1.DefaultPickServi
47
47
  };
48
48
  this.pickCanvas = new browser_1.BrowserCanvas(options), this.pickContext = this.pickCanvas.getContext("2d");
49
49
  }
50
- pickItem(graphic, point, params) {
50
+ pickItem(graphic, point, parentMatrix, params) {
51
51
  if (!1 === graphic.attribute.pickable) return null;
52
52
  if (this.InterceptorContributions.length) for (let i = 0; i < this.InterceptorContributions.length; i++) {
53
53
  const drawContribution = this.InterceptorContributions[i];
54
- if (drawContribution.beforePickItem && drawContribution.beforePickItem(graphic, this, point, params)) return graphic;
54
+ if (drawContribution.beforePickItem) {
55
+ const ret = drawContribution.beforePickItem(graphic, this, point, params, {
56
+ parentMatrix: parentMatrix
57
+ });
58
+ if (ret) return !0 === ret ? graphic : ret.graphic;
59
+ }
55
60
  }
56
61
  const picker = this.pickerMap.get(graphic.numberType);
57
- return picker && picker.contains(graphic, point, params) ? graphic : null;
62
+ if (!picker) return null;
63
+ const data = picker.contains(graphic, point, params) ? graphic : null;
64
+ if (data) return data;
65
+ if (this.InterceptorContributions.length) for (let i = 0; i < this.InterceptorContributions.length; i++) {
66
+ const drawContribution = this.InterceptorContributions[i];
67
+ if (drawContribution.afterPickItem) {
68
+ const ret = drawContribution.afterPickItem(graphic, this, point, params, {
69
+ parentMatrix: parentMatrix
70
+ });
71
+ if (ret) return !0 === ret ? graphic : ret.graphic;
72
+ }
73
+ }
74
+ return data;
58
75
  }
59
76
  };
60
77
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/canvas-picker-service.ts"],"names":[],"mappings":"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","file":"canvas-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 { BrowserCanvas } from '../canvas/contributions/browser';\nimport type {\n ICanvas,\n IContext2d,\n IGraphic,\n EnvType,\n IGlobal,\n IGraphicPicker,\n IPickerService,\n IDrawContribution,\n IContributionProvider,\n IPickItemInterceptorContribution,\n IPickParams\n} from '../interface';\nimport {\n CanvasArcPicker,\n CanvasAreaPicker,\n CanvasCirclePicker,\n CanvasImagePicker,\n CanvasLinePicker,\n CanvasPathPicker,\n CanvasPickerContribution,\n CanvasPolygonPicker,\n CanvasRectPicker,\n CanvasSymbolPicker,\n CanvasTextPicker,\n CanvasRichTextPicker\n} from './contributions/constants';\nimport { DefaultPickService } from './picker-service';\nimport { DrawContribution } from '../render';\nimport { PickItemInterceptor } from './pick-interceptor';\nimport { VGlobal } from '../constants';\n\n// 默认的pick-service,提供基本的最优选中策略,尽量不需要用户自己实现contribution\n// 用户可以写plugin\n@injectable()\nexport class DefaultCanvasPickerService 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(CanvasPickerContribution)\n protected readonly contributions: IContributionProvider<IGraphicPicker>,\n @inject(CanvasCirclePicker) private readonly circlePicker: IGraphicPicker, // 默认的circlePicker\n @inject(CanvasRectPicker) private readonly rectPicker: IGraphicPicker, // 默认的rectPicker\n @inject(CanvasArcPicker) private readonly arcPicker: IGraphicPicker, // 默认的arcPicker\n @inject(CanvasAreaPicker) private readonly areaPicker: IGraphicPicker, // 默认的areaPicker\n @inject(CanvasImagePicker) private readonly imagePicker: IGraphicPicker, // 默认的imagePicker\n @inject(CanvasLinePicker) private readonly linePicker: IGraphicPicker, // 默认的linePicker\n @inject(CanvasPathPicker) private readonly pathPicker: IGraphicPicker, // 默认的pathPicker\n @inject(CanvasSymbolPicker) private readonly symbolPicker: IGraphicPicker, // 默认的symbolPicker\n @inject(CanvasTextPicker) private readonly textPicker: IGraphicPicker, // 默认的textPicker\n @inject(CanvasPolygonPicker) private readonly polygonPicker: IGraphicPicker, // 默认的polygonPicker\n @inject(CanvasRichTextPicker) private readonly richtextPicker: IGraphicPicker, // 默认的richtextPicker\n\n @inject(DrawContribution)\n public readonly drawContribution: IDrawContribution,\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('canvas-picker-service', (_, 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 // if (!this.global.env) return;\n // this.contributions.getContributions().forEach(handlerContribution => {\n // handlerContribution.configure(this, this.global);\n // });\n\n // 创建pick canvas\n const options = {\n width: 100,\n height: 100,\n nativeCanvas: global.createCanvas({ width: 100, height: 100 }),\n id: 'for-pick'\n };\n this.pickCanvas = new BrowserCanvas(options);\n this.pickContext = this.pickCanvas.getContext('2d');\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 // 添加拦截器\n if (this.InterceptorContributions.length) {\n for (let i = 0; i < this.InterceptorContributions.length; i++) {\n const drawContribution = this.InterceptorContributions[i];\n if (drawContribution.beforePickItem) {\n if (drawContribution.beforePickItem(graphic, this, point, params)) {\n return graphic;\n }\n }\n }\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/canvas-picker-service.ts"],"names":[],"mappings":"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","file":"canvas-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 { BrowserCanvas } from '../canvas/contributions/browser';\nimport type {\n ICanvas,\n IContext2d,\n IGraphic,\n EnvType,\n IGlobal,\n IGraphicPicker,\n IPickerService,\n IDrawContribution,\n IContributionProvider,\n IPickItemInterceptorContribution,\n IPickParams\n} from '../interface';\nimport {\n CanvasArcPicker,\n CanvasAreaPicker,\n CanvasCirclePicker,\n CanvasImagePicker,\n CanvasLinePicker,\n CanvasPathPicker,\n CanvasPickerContribution,\n CanvasPolygonPicker,\n CanvasRectPicker,\n CanvasSymbolPicker,\n CanvasTextPicker,\n CanvasRichTextPicker\n} from './contributions/constants';\nimport { DefaultPickService } from './picker-service';\nimport { DrawContribution } from '../render';\nimport { PickItemInterceptor } from './pick-interceptor';\nimport { VGlobal } from '../constants';\n\n// 默认的pick-service,提供基本的最优选中策略,尽量不需要用户自己实现contribution\n// 用户可以写plugin\n@injectable()\nexport class DefaultCanvasPickerService 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(CanvasPickerContribution)\n protected readonly contributions: IContributionProvider<IGraphicPicker>,\n @inject(CanvasCirclePicker) private readonly circlePicker: IGraphicPicker, // 默认的circlePicker\n @inject(CanvasRectPicker) private readonly rectPicker: IGraphicPicker, // 默认的rectPicker\n @inject(CanvasArcPicker) private readonly arcPicker: IGraphicPicker, // 默认的arcPicker\n @inject(CanvasAreaPicker) private readonly areaPicker: IGraphicPicker, // 默认的areaPicker\n @inject(CanvasImagePicker) private readonly imagePicker: IGraphicPicker, // 默认的imagePicker\n @inject(CanvasLinePicker) private readonly linePicker: IGraphicPicker, // 默认的linePicker\n @inject(CanvasPathPicker) private readonly pathPicker: IGraphicPicker, // 默认的pathPicker\n @inject(CanvasSymbolPicker) private readonly symbolPicker: IGraphicPicker, // 默认的symbolPicker\n @inject(CanvasTextPicker) private readonly textPicker: IGraphicPicker, // 默认的textPicker\n @inject(CanvasPolygonPicker) private readonly polygonPicker: IGraphicPicker, // 默认的polygonPicker\n @inject(CanvasRichTextPicker) private readonly richtextPicker: IGraphicPicker, // 默认的richtextPicker\n\n @inject(DrawContribution)\n public readonly drawContribution: IDrawContribution,\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('canvas-picker-service', (_, 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 // if (!this.global.env) return;\n // this.contributions.getContributions().forEach(handlerContribution => {\n // handlerContribution.configure(this, this.global);\n // });\n\n // 创建pick canvas\n const options = {\n width: 100,\n height: 100,\n nativeCanvas: global.createCanvas({ width: 100, height: 100 }),\n id: 'for-pick'\n };\n this.pickCanvas = new BrowserCanvas(options);\n this.pickContext = this.pickCanvas.getContext('2d');\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 // 添加拦截器\n if (this.InterceptorContributions.length) {\n for (let i = 0; i < this.InterceptorContributions.length; i++) {\n const drawContribution = this.InterceptorContributions[i];\n if (drawContribution.beforePickItem) {\n const ret = drawContribution.beforePickItem(graphic, this, point, params, { parentMatrix });\n if (ret) {\n return ret === true ? graphic : ret.graphic;\n }\n }\n }\n }\n const picker = this.pickerMap.get(graphic.numberType);\n if (!picker) {\n return null;\n }\n const data = picker.contains(graphic, point, params) ? graphic : null;\n\n if (data) {\n return data;\n }\n // 添加拦截器\n if (this.InterceptorContributions.length) {\n for (let i = 0; i < this.InterceptorContributions.length; i++) {\n const drawContribution = this.InterceptorContributions[i];\n if (drawContribution.afterPickItem) {\n const ret = drawContribution.afterPickItem(graphic, this, point, params, { parentMatrix });\n if (ret) {\n return ret === true ? graphic : ret.graphic;\n }\n }\n }\n }\n return data;\n }\n}\n"]}
@@ -31,7 +31,7 @@ let DefaultCanvasGlyphPicker = class {
31
31
  if (pickerService) {
32
32
  let picked = !1;
33
33
  return glyph.getSubGraphic().forEach((g => {
34
- picked || (picked = !!pickerService.pickItem(g, point, params));
34
+ picked || (picked = !!pickerService.pickItem(g, point, null, params));
35
35
  })), picked;
36
36
  }
37
37
  return !1;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/contributions/canvas-picker/glyph-picker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,yCAA+C;AAC/C,0DAA+D;AAE/D,4CAA8C;AAGvC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAInC,YAAiD,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAH/E,SAAI,GAAW,OAAO,CAAC;QACvB,eAAU,GAAW,6BAAiB,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,wBAAwB;IADpC,IAAA,sBAAU,GAAE;IAKE,WAAA,IAAA,kBAAM,EAAC,oBAAW,CAAC,CAAA;;GAJrB,wBAAwB,CA0EpC;AA1EY,4DAAwB","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 DefaultCanvasGlyphPicker 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/canvas-picker/glyph-picker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,yCAA+C;AAC/C,0DAA+D;AAE/D,4CAA8C;AAGvC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAInC,YAAiD,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAH/E,SAAI,GAAW,OAAO,CAAC;QACvB,eAAU,GAAW,6BAAiB,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,wBAAwB;IADpC,IAAA,sBAAU,GAAE;IAKE,WAAA,IAAA,kBAAM,EAAC,oBAAW,CAAC,CAAA;;GAJrB,wBAAwB,CA0EpC;AA1EY,4DAAwB","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 DefaultCanvasGlyphPicker 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"]}
@@ -0,0 +1,7 @@
1
+ import type { IPoint } from '@visactor/vutils';
2
+ import type { IGraphicPicker, IPickParams, IGroup } from '../../../interface';
3
+ export declare class DefaultCanvasGroupPicker implements IGraphicPicker {
4
+ type: string;
5
+ numberType: number;
6
+ contains(group: IGroup, point: IPoint, params?: IPickParams): boolean;
7
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
4
+ var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
5
+ if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+
9
+ Object.defineProperty(exports, "__esModule", {
10
+ value: !0
11
+ }), exports.DefaultCanvasGroupPicker = void 0;
12
+
13
+ const inversify_1 = require("inversify"), constants_1 = require("../../../graphic/constants");
14
+
15
+ let DefaultCanvasGroupPicker = class {
16
+ constructor() {
17
+ this.type = "group", this.numberType = constants_1.GROUP_NUMBER_TYPE;
18
+ }
19
+ contains(group, point, params) {
20
+ return !1;
21
+ }
22
+ };
23
+
24
+ DefaultCanvasGroupPicker = __decorate([ (0, inversify_1.injectable)() ], DefaultCanvasGroupPicker),
25
+ exports.DefaultCanvasGroupPicker = DefaultCanvasGroupPicker;
26
+ //# sourceMappingURL=group-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/picker/contributions/canvas-picker/group-picker.ts"],"names":[],"mappings":";;;;;;;;;AACA,yCAA+C;AAE/C,0DAA+D;AAGxD,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAA9B;QACL,SAAI,GAAW,OAAO,CAAC;QACvB,eAAU,GAAW,6BAAiB,CAAC;IAYzC,CAAC;IARC,QAAQ,CAAC,KAAa,EAAE,KAAa,EAAE,MAAoB;QAGzD,OAAO,KAAK,CAAC;IAIf,CAAC;CACF,CAAA;AAdY,wBAAwB;IADpC,IAAA,sBAAU,GAAE;GACA,wBAAwB,CAcpC;AAdY,4DAAwB","file":"group-picker.js","sourcesContent":["import type { IPoint } from '@visactor/vutils';\nimport { inject, injectable } from 'inversify';\nimport type { IGraphicPicker, IGraphicRender, IPickParams, IGroup } from '../../../interface';\nimport { GROUP_NUMBER_TYPE } from '../../../graphic/constants';\n\n@injectable()\nexport class DefaultCanvasGroupPicker implements IGraphicPicker {\n type: string = 'group';\n numberType: number = GROUP_NUMBER_TYPE;\n\n // constructor(@inject(RectRender) public readonly canvasRenderer: IGraphicRender) {}\n\n contains(group: IGroup, point: IPoint, params?: IPickParams): boolean {\n // Group作为特殊节点,本身不支持被pick\n // 存在shadowDOM的group,它的shadow可以被pick,但是不会冒泡到场景树中\n return false;\n // if (group.attribute.pickMode === 'imprecise') {\n // return true;\n // }\n }\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
 
7
- const inversify_1 = require("inversify"), circle_picker_1 = require("./circle-picker"), rect_picker_1 = require("./rect-picker"), arc_picker_1 = require("./arc-picker"), area_picker_1 = require("./area-picker"), image_picker_1 = require("./image-picker"), line_picker_1 = require("./line-picker"), path_picker_1 = require("./path-picker"), symbol_picker_1 = require("./symbol-picker"), text_picker_1 = require("./text-picker"), constants_1 = require("../constants"), contribution_provider_1 = require("../../../common/contribution-provider"), polygon_picker_1 = require("./polygon-picker"), richtext_picker_1 = require("./richtext-picker"), glyph_picker_1 = require("./glyph-picker"), rect3d_picker_1 = require("./rect3d-picker"), pyramid3d_picker_1 = require("./pyramid3d-picker"), arc3d_picker_1 = require("./arc3d-picker");
7
+ const inversify_1 = require("inversify"), circle_picker_1 = require("./circle-picker"), rect_picker_1 = require("./rect-picker"), arc_picker_1 = require("./arc-picker"), area_picker_1 = require("./area-picker"), image_picker_1 = require("./image-picker"), line_picker_1 = require("./line-picker"), path_picker_1 = require("./path-picker"), symbol_picker_1 = require("./symbol-picker"), text_picker_1 = require("./text-picker"), constants_1 = require("../constants"), contribution_provider_1 = require("../../../common/contribution-provider"), polygon_picker_1 = require("./polygon-picker"), richtext_picker_1 = require("./richtext-picker"), glyph_picker_1 = require("./glyph-picker"), rect3d_picker_1 = require("./rect3d-picker"), pyramid3d_picker_1 = require("./pyramid3d-picker"), arc3d_picker_1 = require("./arc3d-picker"), group_picker_1 = require("./group-picker");
8
8
 
9
9
  exports.default = new inversify_1.ContainerModule(((bind, unbind, isBound, rebind) => {
10
10
  bind(circle_picker_1.DefaultCanvasCirclePicker).toSelf().inSingletonScope(), bind(constants_1.CanvasCirclePicker).toService(circle_picker_1.DefaultCanvasCirclePicker),
@@ -39,6 +39,8 @@ exports.default = new inversify_1.ContainerModule(((bind, unbind, isBound, rebin
39
39
  bind(constants_1.CanvasPickerContribution).toService(constants_1.CanvasRichTextPicker),
40
40
  bind(glyph_picker_1.DefaultCanvasGlyphPicker).toSelf().inSingletonScope(), bind(constants_1.CanvasGlyphPicker).toService(glyph_picker_1.DefaultCanvasGlyphPicker),
41
41
  bind(constants_1.CanvasPickerContribution).toService(constants_1.CanvasGlyphPicker),
42
+ bind(group_picker_1.DefaultCanvasGroupPicker).toSelf().inSingletonScope(), bind(constants_1.CanvasGroupPicker).toService(group_picker_1.DefaultCanvasGroupPicker),
43
+ bind(constants_1.CanvasPickerContribution).toService(constants_1.CanvasGroupPicker),
42
44
  (0, contribution_provider_1.bindContributionProvider)(bind, constants_1.CanvasPickerContribution);
43
45
  }));
44
46
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/contributions/canvas-picker/module.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,mDAA4D;AAC5D,+CAAwD;AACxD,6CAAsD;AACtD,+CAAwD;AACxD,iDAA0D;AAC1D,+CAAwD;AACxD,+CAAwD;AACxD,mDAA4D;AAC5D,+CAAwD;AACxD,4CAiBsB;AACtB,iFAAiF;AACjF,qDAA8D;AAC9D,uDAAgE;AAChE,iDAA0D;AAC1D,mDAA4D;AAC5D,yDAAkE;AAClE,iDAA0D;AAE1D,kBAAe,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAEnE,IAAI,CAAC,yCAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,8BAAkB,CAAC,CAAC,SAAS,CAAC,yCAAyB,CAAC,CAAC;IAC9D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,8BAAkB,CAAC,CAAC;IAG7D,IAAI,CAAC,qCAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,4BAAgB,CAAC,CAAC,SAAS,CAAC,qCAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,yCAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,8BAAkB,CAAC,CAAC,SAAS,CAAC,yCAAyB,CAAC,CAAC;IAC9D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,8BAAkB,CAAC,CAAC;IAG7D,IAAI,CAAC,mCAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,mCAAsB,CAAC,CAAC;IACxD,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,2BAAe,CAAC,CAAC;IAG1D,IAAI,CAAC,qCAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,4BAAgB,CAAC,CAAC,SAAS,CAAC,qCAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,uCAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,6BAAiB,CAAC,CAAC,SAAS,CAAC,uCAAwB,CAAC,CAAC;IAC5D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAG5D,IAAI,CAAC,qCAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,4BAAgB,CAAC,CAAC,SAAS,CAAC,qCAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,qCAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,4BAAgB,CAAC,CAAC,SAAS,CAAC,qCAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,yCAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,8BAAkB,CAAC,CAAC,SAAS,CAAC,yCAAyB,CAAC,CAAC;IAC9D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,8BAAkB,CAAC,CAAC;IAG7D,IAAI,CAAC,qCAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,4BAAgB,CAAC,CAAC,SAAS,CAAC,qCAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,2CAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,+BAAmB,CAAC,CAAC,SAAS,CAAC,2CAA0B,CAAC,CAAC;IAChE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,+BAAmB,CAAC,CAAC;IAG9D,IAAI,CAAC,+CAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC/D,IAAI,CAAC,iCAAqB,CAAC,CAAC,SAAS,CAAC,+CAA4B,CAAC,CAAC;IACpE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,iCAAqB,CAAC,CAAC;IAGhE,IAAI,CAAC,uCAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,6BAAiB,CAAC,CAAC,SAAS,CAAC,uCAAwB,CAAC,CAAC;IAC5D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAG5D,IAAI,CAAC,6CAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,gCAAoB,CAAC,CAAC,SAAS,CAAC,6CAA2B,CAAC,CAAC;IAClE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,gCAAoB,CAAC,CAAC;IAE/D,IAAI,CAAC,uCAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,6BAAiB,CAAC,CAAC,SAAS,CAAC,uCAAwB,CAAC,CAAC;IAC5D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAE5D,IAAA,gDAAwB,EAAC,IAAI,EAAE,oCAAwB,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC","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":";;AAAA,yCAA4C;AAC5C,mDAA4D;AAC5D,+CAAwD;AACxD,6CAAsD;AACtD,+CAAwD;AACxD,iDAA0D;AAC1D,+CAAwD;AACxD,+CAAwD;AACxD,mDAA4D;AAC5D,+CAAwD;AACxD,4CAkBsB;AACtB,iFAAiF;AACjF,qDAA8D;AAC9D,uDAAgE;AAChE,iDAA0D;AAC1D,mDAA4D;AAC5D,yDAAkE;AAClE,iDAA0D;AAC1D,iDAA0D;AAE1D,kBAAe,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAEnE,IAAI,CAAC,yCAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,8BAAkB,CAAC,CAAC,SAAS,CAAC,yCAAyB,CAAC,CAAC;IAC9D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,8BAAkB,CAAC,CAAC;IAG7D,IAAI,CAAC,qCAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,4BAAgB,CAAC,CAAC,SAAS,CAAC,qCAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,yCAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,8BAAkB,CAAC,CAAC,SAAS,CAAC,yCAAyB,CAAC,CAAC;IAC9D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,8BAAkB,CAAC,CAAC;IAG7D,IAAI,CAAC,mCAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,mCAAsB,CAAC,CAAC;IACxD,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,2BAAe,CAAC,CAAC;IAG1D,IAAI,CAAC,qCAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,4BAAgB,CAAC,CAAC,SAAS,CAAC,qCAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,uCAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,6BAAiB,CAAC,CAAC,SAAS,CAAC,uCAAwB,CAAC,CAAC;IAC5D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAG5D,IAAI,CAAC,qCAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,4BAAgB,CAAC,CAAC,SAAS,CAAC,qCAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,qCAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,4BAAgB,CAAC,CAAC,SAAS,CAAC,qCAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,yCAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,8BAAkB,CAAC,CAAC,SAAS,CAAC,yCAAyB,CAAC,CAAC;IAC9D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,8BAAkB,CAAC,CAAC;IAG7D,IAAI,CAAC,qCAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,4BAAgB,CAAC,CAAC,SAAS,CAAC,qCAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,2CAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,IAAI,CAAC,+BAAmB,CAAC,CAAC,SAAS,CAAC,2CAA0B,CAAC,CAAC;IAChE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,+BAAmB,CAAC,CAAC;IAG9D,IAAI,CAAC,+CAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC/D,IAAI,CAAC,iCAAqB,CAAC,CAAC,SAAS,CAAC,+CAA4B,CAAC,CAAC;IACpE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,iCAAqB,CAAC,CAAC;IAGhE,IAAI,CAAC,uCAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,6BAAiB,CAAC,CAAC,SAAS,CAAC,uCAAwB,CAAC,CAAC;IAC5D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAG5D,IAAI,CAAC,6CAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,gCAAoB,CAAC,CAAC,SAAS,CAAC,6CAA2B,CAAC,CAAC;IAClE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,gCAAoB,CAAC,CAAC;IAE/D,IAAI,CAAC,uCAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,6BAAiB,CAAC,CAAC,SAAS,CAAC,uCAAwB,CAAC,CAAC;IAC5D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAE5D,IAAI,CAAC,uCAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,6BAAiB,CAAC,CAAC,SAAS,CAAC,uCAAwB,CAAC,CAAC;IAC5D,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAE5D,IAAA,gDAAwB,EAAC,IAAI,EAAE,oCAAwB,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC","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"]}
@@ -16,7 +16,8 @@ Object.defineProperty(exports, "__esModule", {
16
16
  value: !0
17
17
  }), exports.DefaultCanvasSymbolPicker = void 0;
18
18
 
19
- const inversify_1 = require("inversify"), theme_1 = require("../../../graphic/theme"), render_1 = require("../../../render"), matrix_allocate_1 = require("../../../allocator/matrix-allocate"), canvas_utils_1 = require("../../../common/canvas-utils"), base_picker_1 = require("./base-picker"), constants_1 = require("../../../graphic/constants");
19
+ const inversify_1 = require("inversify"), theme_1 = require("../../../graphic/theme"), render_1 = require("../../../render"), matrix_allocate_1 = require("../../../allocator/matrix-allocate"), canvas_utils_1 = require("../../../common/canvas-utils"), base_picker_1 = require("./base-picker"), constants_1 = require("../../../graphic/constants"), graphic_1 = require("../../../graphic"), rect = (0,
20
+ graphic_1.createRect)({});
20
21
 
21
22
  let DefaultCanvasSymbolPicker = class extends base_picker_1.BasePicker {
22
23
  constructor(canvasRenderer) {
@@ -25,9 +26,10 @@ let DefaultCanvasSymbolPicker = class extends base_picker_1.BasePicker {
25
26
  contains(symbol, point, params) {
26
27
  const {pickContext: pickContext} = null != params ? params : {};
27
28
  if (!pickContext) return !1;
29
+ const parsedPath = symbol.getParsedPath();
28
30
  if (!pickContext.camera) {
29
31
  if (!symbol.AABBBounds.containsPoint(point)) return !1;
30
- if ("imprecise" === symbol.attribute.pickMode) return !0;
32
+ if (parsedPath.isSvg || "imprecise" === symbol.attribute.pickMode) return !0;
31
33
  }
32
34
  pickContext.highPerformanceSave();
33
35
  const symbolAttribute = (0, theme_1.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;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.MathPickerContribution = exports.MathGlyphPicker = exports.MathPolygonPicker = exports.MathTextPicker = exports.MathSymbolPicker = exports.MathRectPicker = exports.MathPathPicker = exports.MathLinePicker = exports.MathImagePicker = exports.MathCirclePicker = exports.MathAreaPicker = exports.MathArcPicker = exports.CanvasPickerContribution = exports.CanvasGlyphPicker = exports.CanvasRichTextPicker = exports.CanvasPyramid3dPicker = exports.CanvasPolygonPicker = exports.CanvasTextPicker = exports.CanvasSymbolPicker = exports.CanvasRect3dPicker = exports.CanvasRectPicker = exports.CanvasPathPicker = exports.CanvasLinePicker = exports.CanvasImagePicker = exports.CanvasCirclePicker = exports.CanvasAreaPicker = exports.CanvasArc3dPicker = exports.CanvasArcPicker = void 0,
5
+ }), exports.MathPickerContribution = exports.MathGlyphPicker = exports.MathPolygonPicker = exports.MathTextPicker = exports.MathSymbolPicker = exports.MathRectPicker = exports.MathPathPicker = exports.MathLinePicker = exports.MathImagePicker = exports.MathCirclePicker = exports.MathAreaPicker = exports.MathArcPicker = exports.CanvasPickerContribution = exports.CanvasGroupPicker = exports.CanvasGlyphPicker = exports.CanvasRichTextPicker = exports.CanvasPyramid3dPicker = exports.CanvasPolygonPicker = exports.CanvasTextPicker = exports.CanvasSymbolPicker = exports.CanvasRect3dPicker = exports.CanvasRectPicker = exports.CanvasPathPicker = exports.CanvasLinePicker = exports.CanvasImagePicker = exports.CanvasCirclePicker = exports.CanvasAreaPicker = exports.CanvasArc3dPicker = exports.CanvasArcPicker = void 0,
6
6
  exports.CanvasArcPicker = Symbol.for("CanvasArcPicker"), exports.CanvasArc3dPicker = Symbol.for("CanvasArc3dPicker"),
7
7
  exports.CanvasAreaPicker = Symbol.for("CanvasAreaPicker"), exports.CanvasCirclePicker = Symbol.for("CanvasCirclePicker"),
8
8
  exports.CanvasImagePicker = Symbol.for("CanvasImagePicker"), exports.CanvasLinePicker = Symbol.for("CanvasLinePicker"),
@@ -10,11 +10,12 @@ exports.CanvasPathPicker = Symbol.for("CanvasPathPicker"), exports.CanvasRectPic
10
10
  exports.CanvasRect3dPicker = Symbol.for("CanvasRect3dPicker"), exports.CanvasSymbolPicker = Symbol.for("CanvasSymbolPicker"),
11
11
  exports.CanvasTextPicker = Symbol.for("CanvasTextPicker"), exports.CanvasPolygonPicker = Symbol.for("CanvasPolygonPicker"),
12
12
  exports.CanvasPyramid3dPicker = Symbol.for("CanvasPyramid3dPicker"), exports.CanvasRichTextPicker = Symbol.for("CanvasRichTextPicker"),
13
- exports.CanvasGlyphPicker = Symbol.for("CanvasGlyphPicker"), exports.CanvasPickerContribution = Symbol.for("CanvasPickerContribution"),
14
- exports.MathArcPicker = Symbol.for("MathArcPicker"), exports.MathAreaPicker = Symbol.for("MathAreaPicker"),
15
- exports.MathCirclePicker = Symbol.for("MathCirclePicker"), exports.MathImagePicker = Symbol.for("MathImagePicker"),
16
- exports.MathLinePicker = Symbol.for("MathLinePicker"), exports.MathPathPicker = Symbol.for("MathPathPicker"),
17
- exports.MathRectPicker = Symbol.for("MathRectPicker"), exports.MathSymbolPicker = Symbol.for("MathSymbolPicker"),
18
- exports.MathTextPicker = Symbol.for("MathTextPicker"), exports.MathPolygonPicker = Symbol.for("MathPolygonPicker"),
19
- exports.MathGlyphPicker = Symbol.for("MathGlyphPicker"), exports.MathPickerContribution = Symbol.for("MathPickerContribution");
13
+ exports.CanvasGlyphPicker = Symbol.for("CanvasGlyphPicker"), exports.CanvasGroupPicker = Symbol.for("CanvasGroupPicker"),
14
+ exports.CanvasPickerContribution = Symbol.for("CanvasPickerContribution"), exports.MathArcPicker = Symbol.for("MathArcPicker"),
15
+ exports.MathAreaPicker = Symbol.for("MathAreaPicker"), exports.MathCirclePicker = Symbol.for("MathCirclePicker"),
16
+ exports.MathImagePicker = Symbol.for("MathImagePicker"), exports.MathLinePicker = Symbol.for("MathLinePicker"),
17
+ exports.MathPathPicker = Symbol.for("MathPathPicker"), exports.MathRectPicker = Symbol.for("MathRectPicker"),
18
+ exports.MathSymbolPicker = Symbol.for("MathSymbolPicker"), exports.MathTextPicker = Symbol.for("MathTextPicker"),
19
+ exports.MathPolygonPicker = Symbol.for("MathPolygonPicker"), exports.MathGlyphPicker = Symbol.for("MathGlyphPicker"),
20
+ exports.MathPickerContribution = Symbol.for("MathPickerContribution");
20
21
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/contributions/constants.ts"],"names":[],"mappings":";;;AAUa,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACtD,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACtD,QAAA,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACtD,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACxD,QAAA,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC5D,QAAA,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC1D,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAElE,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC5C,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,QAAA,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":";;;AAUa,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACtD,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACtD,QAAA,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACtD,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACxD,QAAA,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC5D,QAAA,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC1D,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAElE,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC5C,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,QAAA,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 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"]}
@@ -31,7 +31,7 @@ let DefaultMathGlyphPicker = class {
31
31
  if (pickerService) {
32
32
  let picked = !1;
33
33
  return glyph.getSubGraphic().forEach((g => {
34
- picked || (picked = !!pickerService.pickItem(g, point, params));
34
+ picked || (picked = !!pickerService.pickItem(g, point, null, params));
35
35
  })), picked;
36
36
  }
37
37
  return !1;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/picker/contributions/math-picker/glyph-picker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,yCAA+C;AAC/C,0DAA+D;AAE/D,4CAA8C;AAGvC,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAIjC,YAAiD,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAH/E,SAAI,GAAW,OAAO,CAAC;QACvB,eAAU,GAAW,6BAAiB,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,IAAA,sBAAU,GAAE;IAKE,WAAA,IAAA,kBAAM,EAAC,oBAAW,CAAC,CAAA;;GAJrB,sBAAsB,CA0ElC;AA1EY,wDAAsB","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,yCAA+C;AAC/C,0DAA+D;AAE/D,4CAA8C;AAGvC,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAIjC,YAAiD,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAH/E,SAAI,GAAW,OAAO,CAAC;QACvB,eAAU,GAAW,6BAAiB,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,IAAA,sBAAU,GAAE;IAKE,WAAA,IAAA,kBAAM,EAAC,oBAAW,CAAC,CAAA;;GAJrB,sBAAsB,CA0ElC;AA1EY,wDAAsB","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 vutils_1.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 vutils_1.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":"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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, 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"]}