@visactor/vrender 0.15.0-alpha.2 → 0.15.0-alpha.21

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 (966) hide show
  1. package/cjs/allocator/allocator-modules.js.map +1 -1
  2. package/cjs/allocator/canvas-allocate.js.map +1 -1
  3. package/cjs/allocator/constants.js.map +1 -1
  4. package/cjs/allocator/graphic-allocate.js.map +1 -1
  5. package/cjs/allocator/matrix-allocate.js.map +1 -1
  6. package/cjs/allocator/point-allocate.js.map +1 -1
  7. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  8. package/cjs/animate/Ticker/index.js.map +1 -1
  9. package/cjs/animate/animate.d.ts +1 -0
  10. package/cjs/animate/animate.js +3 -0
  11. package/cjs/animate/animate.js.map +1 -1
  12. package/cjs/animate/config.js.map +1 -1
  13. package/cjs/animate/custom-animate.js.map +1 -1
  14. package/cjs/animate/default-ticker.js +1 -1
  15. package/cjs/animate/default-ticker.js.map +1 -1
  16. package/cjs/animate/easing.js.map +1 -1
  17. package/cjs/animate/index.js.map +1 -1
  18. package/cjs/animate/morphing.js.map +1 -1
  19. package/cjs/animate/timeline.d.ts +1 -1
  20. package/cjs/animate/timeline.js +2 -2
  21. package/cjs/animate/timeline.js.map +1 -1
  22. package/cjs/application.js.map +1 -1
  23. package/cjs/canvas/constants.js.map +1 -1
  24. package/cjs/canvas/contributions/browser/canvas.js +1 -1
  25. package/cjs/canvas/contributions/browser/canvas.js.map +1 -1
  26. package/cjs/canvas/contributions/browser/conical-gradient.js.map +1 -1
  27. package/cjs/canvas/contributions/browser/context.d.ts +1 -0
  28. package/cjs/canvas/contributions/browser/context.js.map +1 -1
  29. package/cjs/canvas/contributions/browser/index.js.map +1 -1
  30. package/cjs/canvas/contributions/browser/modules.js.map +1 -1
  31. package/cjs/canvas/contributions/feishu/canvas.js.map +1 -1
  32. package/cjs/canvas/contributions/feishu/context.js.map +1 -1
  33. package/cjs/canvas/contributions/feishu/index.js.map +1 -1
  34. package/cjs/canvas/contributions/feishu/modules.js.map +1 -1
  35. package/cjs/canvas/contributions/lynx/canvas.js.map +1 -1
  36. package/cjs/canvas/contributions/lynx/context.js.map +1 -1
  37. package/cjs/canvas/contributions/lynx/index.js.map +1 -1
  38. package/cjs/canvas/contributions/lynx/modules.js.map +1 -1
  39. package/cjs/canvas/contributions/modules.js.map +1 -1
  40. package/cjs/canvas/contributions/node/canvas.js.map +1 -1
  41. package/cjs/canvas/contributions/node/context.js.map +1 -1
  42. package/cjs/canvas/contributions/node/index.js.map +1 -1
  43. package/cjs/canvas/contributions/node/modules.js.map +1 -1
  44. package/cjs/canvas/contributions/taro/canvas.js.map +1 -1
  45. package/cjs/canvas/contributions/taro/context.js.map +1 -1
  46. package/cjs/canvas/contributions/taro/index.js.map +1 -1
  47. package/cjs/canvas/contributions/taro/modules.js.map +1 -1
  48. package/cjs/canvas/contributions/tt/canvas.js.map +1 -1
  49. package/cjs/canvas/contributions/tt/context.js.map +1 -1
  50. package/cjs/canvas/contributions/tt/index.js.map +1 -1
  51. package/cjs/canvas/contributions/tt/modules.js.map +1 -1
  52. package/cjs/canvas/contributions/wx/canvas.js.map +1 -1
  53. package/cjs/canvas/contributions/wx/context.js.map +1 -1
  54. package/cjs/canvas/contributions/wx/index.js.map +1 -1
  55. package/cjs/canvas/contributions/wx/modules.js.map +1 -1
  56. package/cjs/canvas/empty-context.js.map +1 -1
  57. package/cjs/canvas/index.js.map +1 -1
  58. package/cjs/canvas/util.js.map +1 -1
  59. package/cjs/color-string/colorName.js.map +1 -1
  60. package/cjs/color-string/index.js.map +1 -1
  61. package/cjs/color-string/interpolate.js.map +1 -1
  62. package/cjs/common/bezier-utils.js.map +1 -1
  63. package/cjs/common/bounds-context.js.map +1 -1
  64. package/cjs/common/canvas-utils.js.map +1 -1
  65. package/cjs/common/contribution-provider.d.ts +1 -0
  66. package/cjs/common/contribution-provider.js +7 -2
  67. package/cjs/common/contribution-provider.js.map +1 -1
  68. package/cjs/common/custom-path2d.js.map +1 -1
  69. package/cjs/common/enums.d.ts +4 -2
  70. package/cjs/common/enums.js +3 -2
  71. package/cjs/common/enums.js.map +1 -1
  72. package/cjs/common/generator.js.map +1 -1
  73. package/cjs/common/matrix.js.map +1 -1
  74. package/cjs/common/morphing-utils.js.map +1 -1
  75. package/cjs/common/path-svg.js.map +1 -1
  76. package/cjs/common/polygon.js.map +1 -1
  77. package/cjs/common/render-area.js.map +1 -1
  78. package/cjs/common/render-command-list.js.map +1 -1
  79. package/cjs/common/render-curve.js.map +1 -1
  80. package/cjs/common/seg-context.js.map +1 -1
  81. package/cjs/common/segment/basis.js.map +1 -1
  82. package/cjs/common/segment/common.js.map +1 -1
  83. package/cjs/common/segment/curve/arc.js.map +1 -1
  84. package/cjs/common/segment/curve/base.js.map +1 -1
  85. package/cjs/common/segment/curve/cubic-bezier.js.map +1 -1
  86. package/cjs/common/segment/curve/curve-context.js.map +1 -1
  87. package/cjs/common/segment/curve/ellipse.js.map +1 -1
  88. package/cjs/common/segment/curve/line.js.map +1 -1
  89. package/cjs/common/segment/curve/move.js.map +1 -1
  90. package/cjs/common/segment/curve/path.js.map +1 -1
  91. package/cjs/common/segment/curve/quadratic-bezier.js.map +1 -1
  92. package/cjs/common/segment/index.js.map +1 -1
  93. package/cjs/common/segment/linear-closed.js.map +1 -1
  94. package/cjs/common/segment/linear.js.map +1 -1
  95. package/cjs/common/segment/monotone.js.map +1 -1
  96. package/cjs/common/segment/step.js.map +1 -1
  97. package/cjs/common/shape/arc.js.map +1 -1
  98. package/cjs/common/shape/rect.js.map +1 -1
  99. package/cjs/common/sort.js.map +1 -1
  100. package/cjs/common/split-path.js.map +1 -1
  101. package/cjs/common/store.js.map +1 -1
  102. package/cjs/common/text.js.map +1 -1
  103. package/cjs/common/utils.js.map +1 -1
  104. package/cjs/constants.js.map +1 -1
  105. package/cjs/container.js.map +1 -1
  106. package/cjs/core/application.js.map +1 -1
  107. package/cjs/core/camera.js.map +1 -1
  108. package/cjs/core/constants.js.map +1 -1
  109. package/cjs/core/contributions/env/base-contribution.d.ts +6 -0
  110. package/cjs/core/contributions/env/base-contribution.js +12 -0
  111. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  112. package/cjs/core/contributions/env/browser-contribution.d.ts +6 -0
  113. package/cjs/core/contributions/env/browser-contribution.js +19 -0
  114. package/cjs/core/contributions/env/browser-contribution.js.map +1 -1
  115. package/cjs/core/contributions/env/feishu-contribution.js.map +1 -1
  116. package/cjs/core/contributions/env/lynx-contribution.js.map +1 -1
  117. package/cjs/core/contributions/env/modules.js.map +1 -1
  118. package/cjs/core/contributions/env/node-contribution.js.map +1 -1
  119. package/cjs/core/contributions/env/taro-contribution.js.map +1 -1
  120. package/cjs/core/contributions/env/wx-contribution.d.ts +1 -0
  121. package/cjs/core/contributions/env/wx-contribution.js +5 -3
  122. package/cjs/core/contributions/env/wx-contribution.js.map +1 -1
  123. package/cjs/core/contributions/index.js.map +1 -1
  124. package/cjs/core/contributions/layerHandler/canvas2d-contribution.d.ts +1 -0
  125. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +3 -0
  126. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  127. package/cjs/core/contributions/layerHandler/modules.js.map +1 -1
  128. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.d.ts +1 -0
  129. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +3 -0
  130. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  131. package/cjs/core/contributions/modules.js.map +1 -1
  132. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  133. package/cjs/core/contributions/textMeasure/layout.js +1 -1
  134. package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
  135. package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
  136. package/cjs/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  137. package/cjs/core/contributions/window/base-contribution.d.ts +11 -5
  138. package/cjs/core/contributions/window/base-contribution.js +10 -0
  139. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  140. package/cjs/core/contributions/window/browser-contribution.d.ts +11 -0
  141. package/cjs/core/contributions/window/browser-contribution.js +33 -2
  142. package/cjs/core/contributions/window/browser-contribution.js.map +1 -1
  143. package/cjs/core/contributions/window/feishu-contribution.js.map +1 -1
  144. package/cjs/core/contributions/window/lynx-contribution.js.map +1 -1
  145. package/cjs/core/contributions/window/modules.js.map +1 -1
  146. package/cjs/core/contributions/window/native-contribution.js.map +1 -1
  147. package/cjs/core/contributions/window/node-contribution.js.map +1 -1
  148. package/cjs/core/contributions/window/taro-contribution.js.map +1 -1
  149. package/cjs/core/contributions/window/wx-contribution.js.map +1 -1
  150. package/cjs/core/core-modules.js.map +1 -1
  151. package/cjs/core/global-module.js.map +1 -1
  152. package/cjs/core/global.d.ts +6 -0
  153. package/cjs/core/global.js +9 -0
  154. package/cjs/core/global.js.map +1 -1
  155. package/cjs/core/graphic-utils.d.ts +2 -0
  156. package/cjs/core/graphic-utils.js +13 -0
  157. package/cjs/core/graphic-utils.js.map +1 -1
  158. package/cjs/core/index.js.map +1 -1
  159. package/cjs/core/layer-service.js.map +1 -1
  160. package/cjs/core/layer.js +1 -1
  161. package/cjs/core/layer.js.map +1 -1
  162. package/cjs/core/light.js.map +1 -1
  163. package/cjs/core/stage.d.ts +7 -2
  164. package/cjs/core/stage.js +27 -12
  165. package/cjs/core/stage.js.map +1 -1
  166. package/cjs/core/window.d.ts +6 -0
  167. package/cjs/core/window.js +10 -1
  168. package/cjs/core/window.js.map +1 -1
  169. package/cjs/create.js.map +1 -1
  170. package/cjs/event/constant.js.map +1 -1
  171. package/cjs/event/event-manager.js +13 -11
  172. package/cjs/event/event-manager.js.map +1 -1
  173. package/cjs/event/event-system.js.map +1 -1
  174. package/cjs/event/event-target.js.map +1 -1
  175. package/cjs/event/extension/drag.js.map +1 -1
  176. package/cjs/event/extension/gesture.js.map +1 -1
  177. package/cjs/event/extension/index.js.map +1 -1
  178. package/cjs/event/federated-event/base-event.js.map +1 -1
  179. package/cjs/event/federated-event/custom-event.js.map +1 -1
  180. package/cjs/event/federated-event/index.js.map +1 -1
  181. package/cjs/event/federated-event/mouse-event.js.map +1 -1
  182. package/cjs/event/federated-event/pointer-event.d.ts +1 -0
  183. package/cjs/event/federated-event/pointer-event.js.map +1 -1
  184. package/cjs/event/federated-event/wheel-event.js.map +1 -1
  185. package/cjs/event/index.js.map +1 -1
  186. package/cjs/event/util.js.map +1 -1
  187. package/cjs/export.js.map +1 -1
  188. package/cjs/graphic/arc.d.ts +7 -0
  189. package/cjs/graphic/arc.js +3 -1
  190. package/cjs/graphic/arc.js.map +1 -1
  191. package/cjs/graphic/arc3d.js.map +1 -1
  192. package/cjs/graphic/area.js.map +1 -1
  193. package/cjs/graphic/bounds.js.map +1 -1
  194. package/cjs/graphic/builtin-symbol/arrow.js.map +1 -1
  195. package/cjs/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  196. package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  197. package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  198. package/cjs/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  199. package/cjs/graphic/builtin-symbol/circle.js.map +1 -1
  200. package/cjs/graphic/builtin-symbol/close.js.map +1 -1
  201. package/cjs/graphic/builtin-symbol/cross.js.map +1 -1
  202. package/cjs/graphic/builtin-symbol/diamond.js.map +1 -1
  203. package/cjs/graphic/builtin-symbol/index.js.map +1 -1
  204. package/cjs/graphic/builtin-symbol/line-h.js.map +1 -1
  205. package/cjs/graphic/builtin-symbol/line-v.js.map +1 -1
  206. package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
  207. package/cjs/graphic/builtin-symbol/square.js.map +1 -1
  208. package/cjs/graphic/builtin-symbol/star.js.map +1 -1
  209. package/cjs/graphic/builtin-symbol/stroke.js.map +1 -1
  210. package/cjs/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  211. package/cjs/graphic/builtin-symbol/triangle-down.js.map +1 -1
  212. package/cjs/graphic/builtin-symbol/triangle-left.js.map +1 -1
  213. package/cjs/graphic/builtin-symbol/triangle-right.js.map +1 -1
  214. package/cjs/graphic/builtin-symbol/triangle-up.js.map +1 -1
  215. package/cjs/graphic/builtin-symbol/triangle.js.map +1 -1
  216. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  217. package/cjs/graphic/builtin-symbol/wedge.js.map +1 -1
  218. package/cjs/graphic/builtin-symbol/wye.js.map +1 -1
  219. package/cjs/graphic/circle.js.map +1 -1
  220. package/cjs/graphic/config.js +9 -4
  221. package/cjs/graphic/config.js.map +1 -1
  222. package/cjs/graphic/constants.js.map +1 -1
  223. package/cjs/graphic/glyph.js.map +1 -1
  224. package/cjs/graphic/graphic-creator.js.map +1 -1
  225. package/cjs/graphic/graphic-service/arc-contribution.js.map +1 -1
  226. package/cjs/graphic/graphic-service/area-contribution.js.map +1 -1
  227. package/cjs/graphic/graphic-service/circle-contribution.js.map +1 -1
  228. package/cjs/graphic/graphic-service/common-contribution.js.map +1 -1
  229. package/cjs/graphic/graphic-service/default-theme.js.map +1 -1
  230. package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
  231. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  232. package/cjs/graphic/graphic-service/path-contribution.js.map +1 -1
  233. package/cjs/graphic/graphic-service/rect-contribution.js.map +1 -1
  234. package/cjs/graphic/graphic-service/symbol-contribution.js.map +1 -1
  235. package/cjs/graphic/graphic.d.ts +4 -1
  236. package/cjs/graphic/graphic.js +58 -23
  237. package/cjs/graphic/graphic.js.map +1 -1
  238. package/cjs/graphic/group.js +1 -1
  239. package/cjs/graphic/group.js.map +1 -1
  240. package/cjs/graphic/image.js.map +1 -1
  241. package/cjs/graphic/index.js.map +1 -1
  242. package/cjs/graphic/line.js.map +1 -1
  243. package/cjs/graphic/node-tree.js.map +1 -1
  244. package/cjs/graphic/path.js.map +1 -1
  245. package/cjs/graphic/polygon.js.map +1 -1
  246. package/cjs/graphic/pyramid3d.js.map +1 -1
  247. package/cjs/graphic/rect.js.map +1 -1
  248. package/cjs/graphic/rect3d.js.map +1 -1
  249. package/cjs/graphic/richtext/frame.js.map +1 -1
  250. package/cjs/graphic/richtext/icon.js.map +1 -1
  251. package/cjs/graphic/richtext/line.js.map +1 -1
  252. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  253. package/cjs/graphic/richtext/utils.js.map +1 -1
  254. package/cjs/graphic/richtext/wrapper.js.map +1 -1
  255. package/cjs/graphic/richtext.js.map +1 -1
  256. package/cjs/graphic/shadow-root.js.map +1 -1
  257. package/cjs/graphic/symbol.js.map +1 -1
  258. package/cjs/graphic/text.js +35 -25
  259. package/cjs/graphic/text.js.map +1 -1
  260. package/cjs/graphic/theme.js.map +1 -1
  261. package/cjs/graphic/tools.js.map +1 -1
  262. package/cjs/graphic/wrap-text.js +16 -10
  263. package/cjs/graphic/wrap-text.js.map +1 -1
  264. package/cjs/index.d.ts +2 -1
  265. package/cjs/index.js +2 -2
  266. package/cjs/index.js.map +1 -1
  267. package/cjs/interface/allocator.js.map +1 -1
  268. package/cjs/interface/animate.d.ts +3 -1
  269. package/cjs/interface/animate.js.map +1 -1
  270. package/cjs/interface/camera.js.map +1 -1
  271. package/cjs/interface/canvas.js.map +1 -1
  272. package/cjs/interface/color.js.map +1 -1
  273. package/cjs/interface/common.js.map +1 -1
  274. package/cjs/interface/context.js.map +1 -1
  275. package/cjs/interface/contribution.js.map +1 -1
  276. package/cjs/interface/core.d.ts +1 -0
  277. package/cjs/interface/core.js.map +1 -1
  278. package/cjs/interface/creator.js.map +1 -1
  279. package/cjs/interface/curve.js.map +1 -1
  280. package/cjs/interface/event.js.map +1 -1
  281. package/cjs/interface/global.d.ts +12 -0
  282. package/cjs/interface/global.js.map +1 -1
  283. package/cjs/interface/graphic/arc.d.ts +2 -0
  284. package/cjs/interface/graphic/arc.js.map +1 -1
  285. package/cjs/interface/graphic/arc3d.js.map +1 -1
  286. package/cjs/interface/graphic/area.js.map +1 -1
  287. package/cjs/interface/graphic/bounds.js.map +1 -1
  288. package/cjs/interface/graphic/circle.js.map +1 -1
  289. package/cjs/interface/graphic/creator.js.map +1 -1
  290. package/cjs/interface/graphic/dynamic-path.js.map +1 -1
  291. package/cjs/interface/graphic/ellipse.js.map +1 -1
  292. package/cjs/interface/graphic/face3d.js.map +1 -1
  293. package/cjs/interface/graphic/glyph.js.map +1 -1
  294. package/cjs/interface/graphic/group.js.map +1 -1
  295. package/cjs/interface/graphic/image.d.ts +1 -0
  296. package/cjs/interface/graphic/image.js.map +1 -1
  297. package/cjs/interface/graphic/index.js.map +1 -1
  298. package/cjs/interface/graphic/isogon.js.map +1 -1
  299. package/cjs/interface/graphic/line.d.ts +1 -0
  300. package/cjs/interface/graphic/line.js.map +1 -1
  301. package/cjs/interface/graphic/path.js.map +1 -1
  302. package/cjs/interface/graphic/polygon.js.map +1 -1
  303. package/cjs/interface/graphic/polyline.js.map +1 -1
  304. package/cjs/interface/graphic/pyramid3d.js.map +1 -1
  305. package/cjs/interface/graphic/rect.js.map +1 -1
  306. package/cjs/interface/graphic/rect3d.js.map +1 -1
  307. package/cjs/interface/graphic/richText.js.map +1 -1
  308. package/cjs/interface/graphic/shadow-root.js.map +1 -1
  309. package/cjs/interface/graphic/svg.js.map +1 -1
  310. package/cjs/interface/graphic/symbol.js.map +1 -1
  311. package/cjs/interface/graphic/text.d.ts +1 -0
  312. package/cjs/interface/graphic/text.js.map +1 -1
  313. package/cjs/interface/graphic/theme.js.map +1 -1
  314. package/cjs/interface/graphic/util.js.map +1 -1
  315. package/cjs/interface/graphic-service.js.map +1 -1
  316. package/cjs/interface/graphic-utils.js.map +1 -1
  317. package/cjs/interface/graphic.d.ts +15 -3
  318. package/cjs/interface/graphic.js.map +1 -1
  319. package/cjs/interface/index.js.map +1 -1
  320. package/cjs/interface/layer.d.ts +1 -0
  321. package/cjs/interface/layer.js.map +1 -1
  322. package/cjs/interface/light.js.map +1 -1
  323. package/cjs/interface/loader.js.map +1 -1
  324. package/cjs/interface/matrix.js.map +1 -1
  325. package/cjs/interface/node-tree.js.map +1 -1
  326. package/cjs/interface/path.js.map +1 -1
  327. package/cjs/interface/picker.d.ts +9 -1
  328. package/cjs/interface/picker.js.map +1 -1
  329. package/cjs/interface/plugin.js.map +1 -1
  330. package/cjs/interface/render.js.map +1 -1
  331. package/cjs/interface/stage.d.ts +7 -2
  332. package/cjs/interface/stage.js.map +1 -1
  333. package/cjs/interface/sync-hook.js.map +1 -1
  334. package/cjs/interface/text.js.map +1 -1
  335. package/cjs/interface/theme-service.js.map +1 -1
  336. package/cjs/interface/util.js.map +1 -1
  337. package/cjs/interface/window.d.ts +12 -0
  338. package/cjs/interface/window.js.map +1 -1
  339. package/cjs/jsx/graphicType.d.ts +96 -60
  340. package/cjs/jsx/graphicType.js.map +1 -1
  341. package/cjs/jsx/index.js.map +1 -1
  342. package/cjs/jsx/jsx-classic.d.ts +2 -4
  343. package/cjs/jsx/jsx-classic.js +7 -18
  344. package/cjs/jsx/jsx-classic.js.map +1 -1
  345. package/cjs/kits/env.js.map +1 -1
  346. package/cjs/kits/index.js.map +1 -1
  347. package/cjs/modules.js.map +1 -1
  348. package/cjs/picker/canvas-picker-service.d.ts +2 -2
  349. package/cjs/picker/canvas-picker-service.js +20 -3
  350. package/cjs/picker/canvas-picker-service.js.map +1 -1
  351. package/cjs/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
  352. package/cjs/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
  353. package/cjs/picker/contributions/canvas-picker/area-picker.js.map +1 -1
  354. package/cjs/picker/contributions/canvas-picker/base-picker.js.map +1 -1
  355. package/cjs/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
  356. package/cjs/picker/contributions/canvas-picker/glyph-picker.js +1 -1
  357. package/cjs/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
  358. package/cjs/picker/contributions/canvas-picker/group-picker.d.ts +7 -0
  359. package/cjs/picker/contributions/canvas-picker/group-picker.js +26 -0
  360. package/cjs/picker/contributions/canvas-picker/group-picker.js.map +1 -0
  361. package/cjs/picker/contributions/canvas-picker/image-picker.js.map +1 -1
  362. package/cjs/picker/contributions/canvas-picker/line-picker.js.map +1 -1
  363. package/cjs/picker/contributions/canvas-picker/module.js +3 -1
  364. package/cjs/picker/contributions/canvas-picker/module.js.map +1 -1
  365. package/cjs/picker/contributions/canvas-picker/path-picker.js.map +1 -1
  366. package/cjs/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
  367. package/cjs/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
  368. package/cjs/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
  369. package/cjs/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
  370. package/cjs/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
  371. package/cjs/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
  372. package/cjs/picker/contributions/canvas-picker/text-picker.js.map +1 -1
  373. package/cjs/picker/contributions/constants.d.ts +1 -0
  374. package/cjs/picker/contributions/constants.js +9 -8
  375. package/cjs/picker/contributions/constants.js.map +1 -1
  376. package/cjs/picker/contributions/math-picker/arc-picker.js.map +1 -1
  377. package/cjs/picker/contributions/math-picker/area-picker.js.map +1 -1
  378. package/cjs/picker/contributions/math-picker/circle-picker.js.map +1 -1
  379. package/cjs/picker/contributions/math-picker/glyph-picker.js +1 -1
  380. package/cjs/picker/contributions/math-picker/glyph-picker.js.map +1 -1
  381. package/cjs/picker/contributions/math-picker/line-picker.js.map +1 -1
  382. package/cjs/picker/contributions/math-picker/module.js.map +1 -1
  383. package/cjs/picker/contributions/math-picker/path-picker.js.map +1 -1
  384. package/cjs/picker/contributions/math-picker/polygon-picker.js.map +1 -1
  385. package/cjs/picker/contributions/math-picker/rect-picker.js.map +1 -1
  386. package/cjs/picker/contributions/math-picker/symbol-picker.js.map +1 -1
  387. package/cjs/picker/contributions/math-picker/text-picker.js.map +1 -1
  388. package/cjs/picker/contributions/modules.js.map +1 -1
  389. package/cjs/picker/contributions/old/circle-picker.js.map +1 -1
  390. package/cjs/picker/contributions/old/rect-picker.js.map +1 -1
  391. package/cjs/picker/global-picker-service.d.ts +1 -1
  392. package/cjs/picker/global-picker-service.js +12 -5
  393. package/cjs/picker/global-picker-service.js.map +1 -1
  394. package/cjs/picker/index.js.map +1 -1
  395. package/cjs/picker/math-picker-service.d.ts +2 -2
  396. package/cjs/picker/math-picker-service.js +1 -1
  397. package/cjs/picker/math-picker-service.js.map +1 -1
  398. package/cjs/picker/pick-interceptor.d.ts +12 -0
  399. package/cjs/picker/pick-interceptor.js +30 -2
  400. package/cjs/picker/pick-interceptor.js.map +1 -1
  401. package/cjs/picker/pick-modules.js +2 -0
  402. package/cjs/picker/pick-modules.js.map +1 -1
  403. package/cjs/picker/picker-service.d.ts +1 -1
  404. package/cjs/picker/picker-service.js +15 -6
  405. package/cjs/picker/picker-service.js.map +1 -1
  406. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  407. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  408. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  409. package/cjs/plugins/builtin-plugin/flex-layout-plugin.d.ts +2 -0
  410. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +42 -21
  411. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  412. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +8 -4
  413. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  414. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  415. package/cjs/plugins/builtin-plugin/poptip-plugin.js.map +1 -1
  416. package/cjs/plugins/constants.js.map +1 -1
  417. package/cjs/plugins/plugin-modules.js +1 -1
  418. package/cjs/plugins/plugin-modules.js.map +1 -1
  419. package/cjs/plugins/plugin-service.js.map +1 -1
  420. package/cjs/render/contributions/modules.js.map +1 -1
  421. package/cjs/render/contributions/render/arc-render.js +9 -2
  422. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  423. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  424. package/cjs/render/contributions/render/area-render.js +32 -22
  425. package/cjs/render/contributions/render/area-render.js.map +1 -1
  426. package/cjs/render/contributions/render/base-render.js.map +1 -1
  427. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  428. package/cjs/render/contributions/render/clear-screen.js.map +1 -1
  429. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +9 -7
  430. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  431. package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  432. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  433. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +9 -7
  434. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  435. package/cjs/render/contributions/render/contributions/constants.js.map +1 -1
  436. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  437. package/cjs/render/contributions/render/contributions/image-contribution-render.js +23 -1
  438. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  439. package/cjs/render/contributions/render/contributions/index.js.map +1 -1
  440. package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  441. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  442. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +9 -7
  443. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  444. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +24 -22
  445. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  446. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  447. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  448. package/cjs/render/contributions/render/draw-interceptor.d.ts +2 -0
  449. package/cjs/render/contributions/render/draw-interceptor.js +8 -0
  450. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  451. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  452. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  453. package/cjs/render/contributions/render/group-render.js.map +1 -1
  454. package/cjs/render/contributions/render/image-render.js +7 -3
  455. package/cjs/render/contributions/render/image-render.js.map +1 -1
  456. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  457. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  458. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  459. package/cjs/render/contributions/render/index.js.map +1 -1
  460. package/cjs/render/contributions/render/line-render.js +50 -23
  461. package/cjs/render/contributions/render/line-render.js.map +1 -1
  462. package/cjs/render/contributions/render/module.js.map +1 -1
  463. package/cjs/render/contributions/render/path-render.js.map +1 -1
  464. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  465. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  466. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  467. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  468. package/cjs/render/contributions/render/render-slector.js.map +1 -1
  469. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  470. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  471. package/cjs/render/contributions/render/symbol.js.map +1 -1
  472. package/cjs/render/contributions/render/text-render.js.map +1 -1
  473. package/cjs/render/contributions/render/utils.d.ts +2 -2
  474. package/cjs/render/contributions/render/utils.js.map +1 -1
  475. package/cjs/render/index.js.map +1 -1
  476. package/cjs/render/render-modules.js.map +1 -1
  477. package/cjs/render/render-service.js.map +1 -1
  478. package/cjs/resource-loader/loader.js.map +1 -1
  479. package/cjs/tapable/Hook.js.map +1 -1
  480. package/cjs/tapable/SyncHook.js.map +1 -1
  481. package/cjs/tapable/index.js.map +1 -1
  482. package/dist/index.js +1373 -933
  483. package/dist/index.min.js +1 -1
  484. package/es/allocator/allocator-modules.js.map +1 -1
  485. package/es/allocator/canvas-allocate.js.map +1 -1
  486. package/es/allocator/constants.js.map +1 -1
  487. package/es/allocator/graphic-allocate.js.map +1 -1
  488. package/es/allocator/matrix-allocate.js.map +1 -1
  489. package/es/allocator/point-allocate.js.map +1 -1
  490. package/es/animate/Ticker/default-ticker.js.map +1 -1
  491. package/es/animate/Ticker/index.js.map +1 -1
  492. package/es/animate/animate.d.ts +1 -0
  493. package/es/animate/animate.js +3 -0
  494. package/es/animate/animate.js.map +1 -1
  495. package/es/animate/config.js.map +1 -1
  496. package/es/animate/custom-animate.js.map +1 -1
  497. package/es/animate/default-ticker.js +1 -1
  498. package/es/animate/default-ticker.js.map +1 -1
  499. package/es/animate/easing.js.map +1 -1
  500. package/es/animate/index.js.map +1 -1
  501. package/es/animate/morphing.js.map +1 -1
  502. package/es/animate/timeline.d.ts +1 -1
  503. package/es/animate/timeline.js +2 -2
  504. package/es/animate/timeline.js.map +1 -1
  505. package/es/application.js.map +1 -1
  506. package/es/canvas/constants.js.map +1 -1
  507. package/es/canvas/contributions/browser/canvas.js +1 -1
  508. package/es/canvas/contributions/browser/canvas.js.map +1 -1
  509. package/es/canvas/contributions/browser/conical-gradient.js.map +1 -1
  510. package/es/canvas/contributions/browser/context.d.ts +1 -0
  511. package/es/canvas/contributions/browser/context.js.map +1 -1
  512. package/es/canvas/contributions/browser/index.js.map +1 -1
  513. package/es/canvas/contributions/browser/modules.js.map +1 -1
  514. package/es/canvas/contributions/feishu/canvas.js.map +1 -1
  515. package/es/canvas/contributions/feishu/context.js.map +1 -1
  516. package/es/canvas/contributions/feishu/index.js.map +1 -1
  517. package/es/canvas/contributions/feishu/modules.js.map +1 -1
  518. package/es/canvas/contributions/lynx/canvas.js.map +1 -1
  519. package/es/canvas/contributions/lynx/context.js.map +1 -1
  520. package/es/canvas/contributions/lynx/index.js.map +1 -1
  521. package/es/canvas/contributions/lynx/modules.js.map +1 -1
  522. package/es/canvas/contributions/modules.js.map +1 -1
  523. package/es/canvas/contributions/node/canvas.js.map +1 -1
  524. package/es/canvas/contributions/node/context.js.map +1 -1
  525. package/es/canvas/contributions/node/index.js.map +1 -1
  526. package/es/canvas/contributions/node/modules.js.map +1 -1
  527. package/es/canvas/contributions/taro/canvas.js.map +1 -1
  528. package/es/canvas/contributions/taro/context.js.map +1 -1
  529. package/es/canvas/contributions/taro/index.js.map +1 -1
  530. package/es/canvas/contributions/taro/modules.js.map +1 -1
  531. package/es/canvas/contributions/tt/canvas.js.map +1 -1
  532. package/es/canvas/contributions/tt/context.js.map +1 -1
  533. package/es/canvas/contributions/tt/index.js.map +1 -1
  534. package/es/canvas/contributions/tt/modules.js.map +1 -1
  535. package/es/canvas/contributions/wx/canvas.js.map +1 -1
  536. package/es/canvas/contributions/wx/context.js.map +1 -1
  537. package/es/canvas/contributions/wx/index.js.map +1 -1
  538. package/es/canvas/contributions/wx/modules.js.map +1 -1
  539. package/es/canvas/empty-context.js.map +1 -1
  540. package/es/canvas/index.js.map +1 -1
  541. package/es/canvas/util.js.map +1 -1
  542. package/es/color-string/colorName.js.map +1 -1
  543. package/es/color-string/index.js.map +1 -1
  544. package/es/color-string/interpolate.js.map +1 -1
  545. package/es/common/bezier-utils.js.map +1 -1
  546. package/es/common/bounds-context.js.map +1 -1
  547. package/es/common/canvas-utils.js.map +1 -1
  548. package/es/common/contribution-provider.d.ts +1 -0
  549. package/es/common/contribution-provider.js +4 -0
  550. package/es/common/contribution-provider.js.map +1 -1
  551. package/es/common/custom-path2d.js.map +1 -1
  552. package/es/common/enums.d.ts +4 -2
  553. package/es/common/enums.js +3 -2
  554. package/es/common/enums.js.map +1 -1
  555. package/es/common/generator.js.map +1 -1
  556. package/es/common/matrix.js.map +1 -1
  557. package/es/common/morphing-utils.js.map +1 -1
  558. package/es/common/path-svg.js.map +1 -1
  559. package/es/common/polygon.js.map +1 -1
  560. package/es/common/render-area.js.map +1 -1
  561. package/es/common/render-command-list.js.map +1 -1
  562. package/es/common/render-curve.js.map +1 -1
  563. package/es/common/seg-context.js.map +1 -1
  564. package/es/common/segment/basis.js.map +1 -1
  565. package/es/common/segment/common.js.map +1 -1
  566. package/es/common/segment/curve/arc.js.map +1 -1
  567. package/es/common/segment/curve/base.js.map +1 -1
  568. package/es/common/segment/curve/cubic-bezier.js.map +1 -1
  569. package/es/common/segment/curve/curve-context.js.map +1 -1
  570. package/es/common/segment/curve/ellipse.js.map +1 -1
  571. package/es/common/segment/curve/line.js.map +1 -1
  572. package/es/common/segment/curve/move.js.map +1 -1
  573. package/es/common/segment/curve/path.js.map +1 -1
  574. package/es/common/segment/curve/quadratic-bezier.js.map +1 -1
  575. package/es/common/segment/index.js.map +1 -1
  576. package/es/common/segment/linear-closed.js.map +1 -1
  577. package/es/common/segment/linear.js.map +1 -1
  578. package/es/common/segment/monotone.js.map +1 -1
  579. package/es/common/segment/step.js.map +1 -1
  580. package/es/common/shape/arc.js.map +1 -1
  581. package/es/common/shape/rect.js.map +1 -1
  582. package/es/common/sort.js.map +1 -1
  583. package/es/common/split-path.js.map +1 -1
  584. package/es/common/store.js.map +1 -1
  585. package/es/common/text.js.map +1 -1
  586. package/es/common/utils.js.map +1 -1
  587. package/es/constants.js.map +1 -1
  588. package/es/container.js.map +1 -1
  589. package/es/core/application.js.map +1 -1
  590. package/es/core/camera.js.map +1 -1
  591. package/es/core/constants.js.map +1 -1
  592. package/es/core/contributions/env/base-contribution.d.ts +6 -0
  593. package/es/core/contributions/env/base-contribution.js +12 -0
  594. package/es/core/contributions/env/base-contribution.js.map +1 -1
  595. package/es/core/contributions/env/browser-contribution.d.ts +6 -0
  596. package/es/core/contributions/env/browser-contribution.js +19 -0
  597. package/es/core/contributions/env/browser-contribution.js.map +1 -1
  598. package/es/core/contributions/env/feishu-contribution.js.map +1 -1
  599. package/es/core/contributions/env/lynx-contribution.js.map +1 -1
  600. package/es/core/contributions/env/modules.js.map +1 -1
  601. package/es/core/contributions/env/node-contribution.js.map +1 -1
  602. package/es/core/contributions/env/taro-contribution.js.map +1 -1
  603. package/es/core/contributions/env/wx-contribution.d.ts +1 -0
  604. package/es/core/contributions/env/wx-contribution.js +5 -3
  605. package/es/core/contributions/env/wx-contribution.js.map +1 -1
  606. package/es/core/contributions/index.js.map +1 -1
  607. package/es/core/contributions/layerHandler/canvas2d-contribution.d.ts +1 -0
  608. package/es/core/contributions/layerHandler/canvas2d-contribution.js +3 -0
  609. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  610. package/es/core/contributions/layerHandler/modules.js.map +1 -1
  611. package/es/core/contributions/layerHandler/offscreen2d-contribution.d.ts +1 -0
  612. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +3 -0
  613. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  614. package/es/core/contributions/modules.js.map +1 -1
  615. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  616. package/es/core/contributions/textMeasure/layout.js +1 -1
  617. package/es/core/contributions/textMeasure/layout.js.map +1 -1
  618. package/es/core/contributions/textMeasure/modules.js.map +1 -1
  619. package/es/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  620. package/es/core/contributions/window/base-contribution.d.ts +11 -5
  621. package/es/core/contributions/window/base-contribution.js +10 -0
  622. package/es/core/contributions/window/base-contribution.js.map +1 -1
  623. package/es/core/contributions/window/browser-contribution.d.ts +11 -0
  624. package/es/core/contributions/window/browser-contribution.js +33 -2
  625. package/es/core/contributions/window/browser-contribution.js.map +1 -1
  626. package/es/core/contributions/window/feishu-contribution.js.map +1 -1
  627. package/es/core/contributions/window/lynx-contribution.js.map +1 -1
  628. package/es/core/contributions/window/modules.js.map +1 -1
  629. package/es/core/contributions/window/native-contribution.js.map +1 -1
  630. package/es/core/contributions/window/node-contribution.js.map +1 -1
  631. package/es/core/contributions/window/taro-contribution.js.map +1 -1
  632. package/es/core/contributions/window/wx-contribution.js.map +1 -1
  633. package/es/core/core-modules.js.map +1 -1
  634. package/es/core/global-module.js.map +1 -1
  635. package/es/core/global.d.ts +6 -0
  636. package/es/core/global.js +9 -0
  637. package/es/core/global.js.map +1 -1
  638. package/es/core/graphic-utils.d.ts +2 -0
  639. package/es/core/graphic-utils.js +13 -0
  640. package/es/core/graphic-utils.js.map +1 -1
  641. package/es/core/index.js.map +1 -1
  642. package/es/core/layer-service.js.map +1 -1
  643. package/es/core/layer.js +1 -1
  644. package/es/core/layer.js.map +1 -1
  645. package/es/core/light.js.map +1 -1
  646. package/es/core/stage.d.ts +7 -2
  647. package/es/core/stage.js +28 -11
  648. package/es/core/stage.js.map +1 -1
  649. package/es/core/window.d.ts +6 -0
  650. package/es/core/window.js +10 -1
  651. package/es/core/window.js.map +1 -1
  652. package/es/create.js.map +1 -1
  653. package/es/event/constant.js.map +1 -1
  654. package/es/event/event-manager.js +13 -11
  655. package/es/event/event-manager.js.map +1 -1
  656. package/es/event/event-system.js.map +1 -1
  657. package/es/event/event-target.js.map +1 -1
  658. package/es/event/extension/drag.js.map +1 -1
  659. package/es/event/extension/gesture.js.map +1 -1
  660. package/es/event/extension/index.js.map +1 -1
  661. package/es/event/federated-event/base-event.js.map +1 -1
  662. package/es/event/federated-event/custom-event.js.map +1 -1
  663. package/es/event/federated-event/index.js.map +1 -1
  664. package/es/event/federated-event/mouse-event.js.map +1 -1
  665. package/es/event/federated-event/pointer-event.d.ts +1 -0
  666. package/es/event/federated-event/pointer-event.js.map +1 -1
  667. package/es/event/federated-event/wheel-event.js.map +1 -1
  668. package/es/event/index.js.map +1 -1
  669. package/es/event/util.js.map +1 -1
  670. package/es/export.js.map +1 -1
  671. package/es/graphic/arc.d.ts +7 -0
  672. package/es/graphic/arc.js +3 -1
  673. package/es/graphic/arc.js.map +1 -1
  674. package/es/graphic/arc3d.js.map +1 -1
  675. package/es/graphic/area.js.map +1 -1
  676. package/es/graphic/bounds.js.map +1 -1
  677. package/es/graphic/builtin-symbol/arrow.js.map +1 -1
  678. package/es/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  679. package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  680. package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  681. package/es/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  682. package/es/graphic/builtin-symbol/circle.js.map +1 -1
  683. package/es/graphic/builtin-symbol/close.js.map +1 -1
  684. package/es/graphic/builtin-symbol/cross.js.map +1 -1
  685. package/es/graphic/builtin-symbol/diamond.js.map +1 -1
  686. package/es/graphic/builtin-symbol/index.js.map +1 -1
  687. package/es/graphic/builtin-symbol/line-h.js.map +1 -1
  688. package/es/graphic/builtin-symbol/line-v.js.map +1 -1
  689. package/es/graphic/builtin-symbol/rect.js.map +1 -1
  690. package/es/graphic/builtin-symbol/square.js.map +1 -1
  691. package/es/graphic/builtin-symbol/star.js.map +1 -1
  692. package/es/graphic/builtin-symbol/stroke.js.map +1 -1
  693. package/es/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  694. package/es/graphic/builtin-symbol/triangle-down.js.map +1 -1
  695. package/es/graphic/builtin-symbol/triangle-left.js.map +1 -1
  696. package/es/graphic/builtin-symbol/triangle-right.js.map +1 -1
  697. package/es/graphic/builtin-symbol/triangle-up.js.map +1 -1
  698. package/es/graphic/builtin-symbol/triangle.js.map +1 -1
  699. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  700. package/es/graphic/builtin-symbol/wedge.js.map +1 -1
  701. package/es/graphic/builtin-symbol/wye.js.map +1 -1
  702. package/es/graphic/circle.js.map +1 -1
  703. package/es/graphic/config.js +9 -4
  704. package/es/graphic/config.js.map +1 -1
  705. package/es/graphic/constants.js.map +1 -1
  706. package/es/graphic/glyph.js.map +1 -1
  707. package/es/graphic/graphic-creator.js.map +1 -1
  708. package/es/graphic/graphic-service/arc-contribution.js.map +1 -1
  709. package/es/graphic/graphic-service/area-contribution.js.map +1 -1
  710. package/es/graphic/graphic-service/circle-contribution.js.map +1 -1
  711. package/es/graphic/graphic-service/common-contribution.js.map +1 -1
  712. package/es/graphic/graphic-service/default-theme.js.map +1 -1
  713. package/es/graphic/graphic-service/graphic-module.js.map +1 -1
  714. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  715. package/es/graphic/graphic-service/path-contribution.js.map +1 -1
  716. package/es/graphic/graphic-service/rect-contribution.js.map +1 -1
  717. package/es/graphic/graphic-service/symbol-contribution.js.map +1 -1
  718. package/es/graphic/graphic.d.ts +4 -1
  719. package/es/graphic/graphic.js +57 -23
  720. package/es/graphic/graphic.js.map +1 -1
  721. package/es/graphic/group.js +1 -1
  722. package/es/graphic/group.js.map +1 -1
  723. package/es/graphic/image.js.map +1 -1
  724. package/es/graphic/index.js.map +1 -1
  725. package/es/graphic/line.js.map +1 -1
  726. package/es/graphic/node-tree.js.map +1 -1
  727. package/es/graphic/path.js.map +1 -1
  728. package/es/graphic/polygon.js.map +1 -1
  729. package/es/graphic/pyramid3d.js.map +1 -1
  730. package/es/graphic/rect.js.map +1 -1
  731. package/es/graphic/rect3d.js.map +1 -1
  732. package/es/graphic/richtext/frame.js.map +1 -1
  733. package/es/graphic/richtext/icon.js.map +1 -1
  734. package/es/graphic/richtext/line.js.map +1 -1
  735. package/es/graphic/richtext/paragraph.js.map +1 -1
  736. package/es/graphic/richtext/utils.js.map +1 -1
  737. package/es/graphic/richtext/wrapper.js.map +1 -1
  738. package/es/graphic/richtext.js.map +1 -1
  739. package/es/graphic/shadow-root.js.map +1 -1
  740. package/es/graphic/symbol.js.map +1 -1
  741. package/es/graphic/text.js +34 -26
  742. package/es/graphic/text.js.map +1 -1
  743. package/es/graphic/theme.js.map +1 -1
  744. package/es/graphic/tools.js.map +1 -1
  745. package/es/graphic/wrap-text.js +16 -10
  746. package/es/graphic/wrap-text.js.map +1 -1
  747. package/es/index.d.ts +2 -1
  748. package/es/index.js +3 -1
  749. package/es/index.js.map +1 -1
  750. package/es/interface/allocator.js.map +1 -1
  751. package/es/interface/animate.d.ts +3 -1
  752. package/es/interface/animate.js.map +1 -1
  753. package/es/interface/camera.js.map +1 -1
  754. package/es/interface/canvas.js.map +1 -1
  755. package/es/interface/color.js.map +1 -1
  756. package/es/interface/common.js.map +1 -1
  757. package/es/interface/context.js.map +1 -1
  758. package/es/interface/contribution.js.map +1 -1
  759. package/es/interface/core.d.ts +1 -0
  760. package/es/interface/core.js.map +1 -1
  761. package/es/interface/creator.js.map +1 -1
  762. package/es/interface/curve.js.map +1 -1
  763. package/es/interface/event.js.map +1 -1
  764. package/es/interface/global.d.ts +12 -0
  765. package/es/interface/global.js.map +1 -1
  766. package/es/interface/graphic/arc.d.ts +2 -0
  767. package/es/interface/graphic/arc.js.map +1 -1
  768. package/es/interface/graphic/arc3d.js.map +1 -1
  769. package/es/interface/graphic/area.js.map +1 -1
  770. package/es/interface/graphic/bounds.js.map +1 -1
  771. package/es/interface/graphic/circle.js.map +1 -1
  772. package/es/interface/graphic/creator.js.map +1 -1
  773. package/es/interface/graphic/dynamic-path.js.map +1 -1
  774. package/es/interface/graphic/ellipse.js.map +1 -1
  775. package/es/interface/graphic/face3d.js.map +1 -1
  776. package/es/interface/graphic/glyph.js.map +1 -1
  777. package/es/interface/graphic/group.js.map +1 -1
  778. package/es/interface/graphic/image.d.ts +1 -0
  779. package/es/interface/graphic/image.js.map +1 -1
  780. package/es/interface/graphic/index.js.map +1 -1
  781. package/es/interface/graphic/isogon.js.map +1 -1
  782. package/es/interface/graphic/line.d.ts +1 -0
  783. package/es/interface/graphic/line.js.map +1 -1
  784. package/es/interface/graphic/path.js.map +1 -1
  785. package/es/interface/graphic/polygon.js.map +1 -1
  786. package/es/interface/graphic/polyline.js.map +1 -1
  787. package/es/interface/graphic/pyramid3d.js.map +1 -1
  788. package/es/interface/graphic/rect.js.map +1 -1
  789. package/es/interface/graphic/rect3d.js.map +1 -1
  790. package/es/interface/graphic/richText.js.map +1 -1
  791. package/es/interface/graphic/shadow-root.js.map +1 -1
  792. package/es/interface/graphic/svg.js.map +1 -1
  793. package/es/interface/graphic/symbol.js.map +1 -1
  794. package/es/interface/graphic/text.d.ts +1 -0
  795. package/es/interface/graphic/text.js.map +1 -1
  796. package/es/interface/graphic/theme.js.map +1 -1
  797. package/es/interface/graphic/util.js.map +1 -1
  798. package/es/interface/graphic-service.js.map +1 -1
  799. package/es/interface/graphic-utils.js.map +1 -1
  800. package/es/interface/graphic.d.ts +15 -3
  801. package/es/interface/graphic.js.map +1 -1
  802. package/es/interface/index.js.map +1 -1
  803. package/es/interface/layer.d.ts +1 -0
  804. package/es/interface/layer.js.map +1 -1
  805. package/es/interface/light.js.map +1 -1
  806. package/es/interface/loader.js.map +1 -1
  807. package/es/interface/matrix.js.map +1 -1
  808. package/es/interface/node-tree.js.map +1 -1
  809. package/es/interface/path.js.map +1 -1
  810. package/es/interface/picker.d.ts +9 -1
  811. package/es/interface/picker.js.map +1 -1
  812. package/es/interface/plugin.js.map +1 -1
  813. package/es/interface/render.js.map +1 -1
  814. package/es/interface/stage.d.ts +7 -2
  815. package/es/interface/stage.js.map +1 -1
  816. package/es/interface/sync-hook.js.map +1 -1
  817. package/es/interface/text.js.map +1 -1
  818. package/es/interface/theme-service.js.map +1 -1
  819. package/es/interface/util.js.map +1 -1
  820. package/es/interface/window.d.ts +12 -0
  821. package/es/interface/window.js.map +1 -1
  822. package/es/jsx/graphicType.d.ts +96 -60
  823. package/es/jsx/graphicType.js.map +1 -1
  824. package/es/jsx/index.js.map +1 -1
  825. package/es/jsx/jsx-classic.d.ts +2 -4
  826. package/es/jsx/jsx-classic.js +8 -15
  827. package/es/jsx/jsx-classic.js.map +1 -1
  828. package/es/kits/env.js.map +1 -1
  829. package/es/kits/index.js.map +1 -1
  830. package/es/modules.js.map +1 -1
  831. package/es/picker/canvas-picker-service.d.ts +2 -2
  832. package/es/picker/canvas-picker-service.js +20 -3
  833. package/es/picker/canvas-picker-service.js.map +1 -1
  834. package/es/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
  835. package/es/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
  836. package/es/picker/contributions/canvas-picker/area-picker.js.map +1 -1
  837. package/es/picker/contributions/canvas-picker/base-picker.js.map +1 -1
  838. package/es/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
  839. package/es/picker/contributions/canvas-picker/glyph-picker.js +1 -1
  840. package/es/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
  841. package/es/picker/contributions/canvas-picker/group-picker.d.ts +7 -0
  842. package/es/picker/contributions/canvas-picker/group-picker.js +23 -0
  843. package/es/picker/contributions/canvas-picker/group-picker.js.map +1 -0
  844. package/es/picker/contributions/canvas-picker/image-picker.js.map +1 -1
  845. package/es/picker/contributions/canvas-picker/line-picker.js.map +1 -1
  846. package/es/picker/contributions/canvas-picker/module.js +6 -2
  847. package/es/picker/contributions/canvas-picker/module.js.map +1 -1
  848. package/es/picker/contributions/canvas-picker/path-picker.js.map +1 -1
  849. package/es/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
  850. package/es/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
  851. package/es/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
  852. package/es/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
  853. package/es/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
  854. package/es/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
  855. package/es/picker/contributions/canvas-picker/text-picker.js.map +1 -1
  856. package/es/picker/contributions/constants.d.ts +1 -0
  857. package/es/picker/contributions/constants.js +2 -0
  858. package/es/picker/contributions/constants.js.map +1 -1
  859. package/es/picker/contributions/math-picker/arc-picker.js.map +1 -1
  860. package/es/picker/contributions/math-picker/area-picker.js.map +1 -1
  861. package/es/picker/contributions/math-picker/circle-picker.js.map +1 -1
  862. package/es/picker/contributions/math-picker/glyph-picker.js +1 -1
  863. package/es/picker/contributions/math-picker/glyph-picker.js.map +1 -1
  864. package/es/picker/contributions/math-picker/line-picker.js.map +1 -1
  865. package/es/picker/contributions/math-picker/module.js.map +1 -1
  866. package/es/picker/contributions/math-picker/path-picker.js.map +1 -1
  867. package/es/picker/contributions/math-picker/polygon-picker.js.map +1 -1
  868. package/es/picker/contributions/math-picker/rect-picker.js.map +1 -1
  869. package/es/picker/contributions/math-picker/symbol-picker.js.map +1 -1
  870. package/es/picker/contributions/math-picker/text-picker.js.map +1 -1
  871. package/es/picker/contributions/modules.js.map +1 -1
  872. package/es/picker/contributions/old/circle-picker.js.map +1 -1
  873. package/es/picker/contributions/old/rect-picker.js.map +1 -1
  874. package/es/picker/global-picker-service.d.ts +1 -1
  875. package/es/picker/global-picker-service.js +12 -5
  876. package/es/picker/global-picker-service.js.map +1 -1
  877. package/es/picker/index.js.map +1 -1
  878. package/es/picker/math-picker-service.d.ts +2 -2
  879. package/es/picker/math-picker-service.js +1 -1
  880. package/es/picker/math-picker-service.js.map +1 -1
  881. package/es/picker/pick-interceptor.d.ts +12 -0
  882. package/es/picker/pick-interceptor.js +32 -1
  883. package/es/picker/pick-interceptor.js.map +1 -1
  884. package/es/picker/pick-modules.js +4 -2
  885. package/es/picker/pick-modules.js.map +1 -1
  886. package/es/picker/picker-service.d.ts +1 -1
  887. package/es/picker/picker-service.js +15 -6
  888. package/es/picker/picker-service.js.map +1 -1
  889. package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  890. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  891. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  892. package/es/plugins/builtin-plugin/flex-layout-plugin.d.ts +2 -0
  893. package/es/plugins/builtin-plugin/flex-layout-plugin.js +47 -20
  894. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  895. package/es/plugins/builtin-plugin/html-attribute-plugin.js +8 -4
  896. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  897. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  898. package/es/plugins/builtin-plugin/poptip-plugin.js.map +1 -1
  899. package/es/plugins/constants.js.map +1 -1
  900. package/es/plugins/plugin-modules.js +2 -2
  901. package/es/plugins/plugin-modules.js.map +1 -1
  902. package/es/plugins/plugin-service.js.map +1 -1
  903. package/es/render/contributions/modules.js.map +1 -1
  904. package/es/render/contributions/render/arc-render.js +10 -3
  905. package/es/render/contributions/render/arc-render.js.map +1 -1
  906. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  907. package/es/render/contributions/render/area-render.js +31 -21
  908. package/es/render/contributions/render/area-render.js.map +1 -1
  909. package/es/render/contributions/render/base-render.js.map +1 -1
  910. package/es/render/contributions/render/circle-render.js.map +1 -1
  911. package/es/render/contributions/render/clear-screen.js.map +1 -1
  912. package/es/render/contributions/render/contributions/arc-contribution-render.js +9 -7
  913. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  914. package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  915. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  916. package/es/render/contributions/render/contributions/circle-contribution-render.js +9 -7
  917. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  918. package/es/render/contributions/render/contributions/constants.js.map +1 -1
  919. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  920. package/es/render/contributions/render/contributions/image-contribution-render.js +27 -0
  921. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  922. package/es/render/contributions/render/contributions/index.js.map +1 -1
  923. package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  924. package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  925. package/es/render/contributions/render/contributions/rect-contribution-render.js +9 -7
  926. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  927. package/es/render/contributions/render/contributions/symbol-contribution-render.js +22 -20
  928. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  929. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  930. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  931. package/es/render/contributions/render/draw-interceptor.d.ts +2 -0
  932. package/es/render/contributions/render/draw-interceptor.js +8 -0
  933. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  934. package/es/render/contributions/render/glyph-render.js.map +1 -1
  935. package/es/render/contributions/render/graphic-render.js.map +1 -1
  936. package/es/render/contributions/render/group-render.js.map +1 -1
  937. package/es/render/contributions/render/image-render.js +10 -2
  938. package/es/render/contributions/render/image-render.js.map +1 -1
  939. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  940. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  941. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  942. package/es/render/contributions/render/index.js.map +1 -1
  943. package/es/render/contributions/render/line-render.js +49 -22
  944. package/es/render/contributions/render/line-render.js.map +1 -1
  945. package/es/render/contributions/render/module.js.map +1 -1
  946. package/es/render/contributions/render/path-render.js.map +1 -1
  947. package/es/render/contributions/render/polygon-render.js.map +1 -1
  948. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  949. package/es/render/contributions/render/rect-render.js.map +1 -1
  950. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  951. package/es/render/contributions/render/render-slector.js.map +1 -1
  952. package/es/render/contributions/render/richtext-render.js.map +1 -1
  953. package/es/render/contributions/render/symbol-render.js.map +1 -1
  954. package/es/render/contributions/render/symbol.js.map +1 -1
  955. package/es/render/contributions/render/text-render.js.map +1 -1
  956. package/es/render/contributions/render/utils.d.ts +2 -2
  957. package/es/render/contributions/render/utils.js.map +1 -1
  958. package/es/render/index.js.map +1 -1
  959. package/es/render/render-modules.js.map +1 -1
  960. package/es/render/render-service.js.map +1 -1
  961. package/es/resource-loader/loader.js.map +1 -1
  962. package/es/tapable/Hook.js.map +1 -1
  963. package/es/tapable/SyncHook.js.map +1 -1
  964. package/es/tapable/index.js.map +1 -1
  965. package/package.json +7 -7
  966. package/es/tsconfig.tsbuildinfo +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/picker/picker-service.ts"],"names":[],"mappings":"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","file":"picker-service.js","sourcesContent":["import type { IMatrix, IPoint, IPointLike } from '@visactor/vutils';\nimport { Matrix, Point, IBounds } from '@visactor/vutils';\nimport { inject, injectable, named } from 'inversify';\nimport { foreach } from '../common/sort';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../common/contribution-provider';\nimport type {\n IContext2d,\n IGraphic,\n IGroup,\n EnvType,\n IGlobal,\n IPickerService,\n IGraphicPicker,\n IPickParams,\n PickResult,\n IPickItemInterceptorContribution,\n IContributionProvider\n} from '../interface';\nimport { DefaultAttribute, getTheme, mat3Tomat4, multiplyMat4Mat4 } from '../graphic';\nimport { mat4Allocate, matrixAllocate } from '../allocator/matrix-allocate';\nimport { PickItemInterceptor } from './pick-interceptor';\nimport { VGlobal } from '../constants';\n\nexport const GraphicPicker = Symbol.for('GraphicPicker');\n\nexport const PickerService = Symbol.for('PickerService');\n\n@injectable()\nexport abstract class DefaultPickService implements IPickerService {\n type: string = 'default';\n declare pickerMap: Map<number, IGraphicPicker>;\n declare pickContext?: IContext2d;\n declare InterceptorContributions: IPickItemInterceptorContribution[];\n\n constructor(\n @inject(VGlobal) public readonly global: IGlobal,\n // 拦截器\n @inject(ContributionProvider)\n @named(PickItemInterceptor)\n protected readonly pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>\n ) {}\n\n protected _init() {\n this.InterceptorContributions = this.pickItemInterceptorContributions\n .getContributions()\n .sort((a, b) => a.order - b.order);\n }\n\n abstract configure(global: IGlobal, env: EnvType): void;\n\n // todo: params支持\n // todo: 性能优化\n pick(graphics: IGraphic[], point: IPoint, params: IPickParams): PickResult {\n let result: PickResult = {\n graphic: null,\n group: null\n };\n params.pickerService = this;\n let offsetX = 0;\n let offsetY = 0;\n if (params && params.bounds) {\n if (!params.bounds.contains(point.x, point.y)) {\n return result;\n }\n offsetX = params.bounds.x1;\n offsetY = params.bounds.y1;\n }\n if (this.pickContext) {\n this.pickContext.inuse = true;\n }\n params.pickContext = this.pickContext;\n this.pickContext && this.pickContext.clearMatrix(true, 1);\n\n const parentMatrix = new Matrix(1, 0, 0, 1, offsetX, offsetY);\n let group: IGroup;\n for (let i = graphics.length - 1; i >= 0; 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 if (this.pickContext) {\n this.pickContext.inuse = false;\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 // TODO: 支持3d模式的拾取和自定义path的拾取\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 const context = params.pickContext;\n const lastMatrix = context.modelMatrix;\n // 如果是3d,那么需要生成modelMatrix\n if (context.camera) {\n const m = group.transMatrix;\n const matrix = mat4Allocate.allocate();\n mat3Tomat4(matrix, m);\n if (lastMatrix) {\n if (matrix) {\n const m = mat4Allocate.allocate();\n context.modelMatrix = multiplyMat4Mat4(m, lastMatrix, matrix);\n mat4Allocate.free(matrix);\n }\n } else {\n // 转化context的matrix为lastMatrix\n mat3Tomat4(matrix, group.globalTransMatrix);\n context.modelMatrix = matrix;\n }\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 result = drawContribution.beforePickItem(group, this, point, params, { parentMatrix });\n if (result) {\n if (context.modelMatrix !== lastMatrix) {\n mat4Allocate.free(context.modelMatrix);\n }\n context.modelMatrix = lastMatrix;\n return result as PickResult;\n }\n }\n }\n }\n // 转换坐标空间\n const transMatrix = group.transMatrix;\n const currentGroupMatrix = matrixAllocate.allocateByObj(parentMatrix);\n const newPoint: IPoint = new Point(point.x, point.y);\n currentGroupMatrix.transformPoint(newPoint, newPoint);\n // todo: 支持带有path的group的选中\n const insideGroup = group.AABBBounds.containsPoint(newPoint);\n // 如果group没有被选中,直接跳过(如果是3d模式,那么继续)\n if (!insideGroup && !group.stage.camera) {\n return result;\n }\n const groupPicked = group.attribute.pickable !== false && insideGroup;\n\n currentGroupMatrix.multiply(\n transMatrix.a,\n transMatrix.b,\n transMatrix.c,\n transMatrix.d,\n transMatrix.e,\n transMatrix.f\n );\n if (group.attribute.childrenPickable !== false) {\n foreach(\n group,\n DefaultAttribute.zIndex,\n (graphic: IGraphic) => {\n if (graphic.isContainer) {\n // 偏移scrollX和scrollY\n const newPoint: IPoint = new Point(point.x, point.y);\n const theme = getTheme(group).group;\n const { scrollX = theme.scrollX, scrollY = theme.scrollY } = group.attribute;\n newPoint.x -= scrollX;\n newPoint.y -= scrollY;\n result = this.pickGroup(graphic as IGroup, newPoint, currentGroupMatrix, params);\n } else {\n const newPoint: IPoint = new Point(point.x, point.y);\n currentGroupMatrix.transformPoint(newPoint, newPoint);\n // 偏移scrollX和scrollY\n const theme = getTheme(group).group;\n const { scrollX = theme.scrollX, scrollY = theme.scrollY } = group.attribute;\n newPoint.x -= scrollX;\n newPoint.y -= scrollY;\n const pickedItem = this.pickItem(graphic, newPoint, params);\n result.graphic = pickedItem;\n }\n return !!result.graphic || !!result.group;\n },\n true,\n !!context.camera\n );\n }\n if (context.modelMatrix !== lastMatrix) {\n mat4Allocate.free(context.modelMatrix);\n }\n context.modelMatrix = lastMatrix;\n\n if (!result.graphic && !result.group && groupPicked && !group.stage.camera) {\n result.group = group;\n }\n matrixAllocate.free(currentGroupMatrix);\n return result;\n }\n\n // todo: switch统一改为数字map\n abstract pickItem(graphic: IGraphic, point: IPointLike, params: IPickParams): IGraphic | null;\n\n protected selectPicker(graphic: IGraphic): IGraphicPicker | null {\n const picker = this.pickerMap.get(graphic.numberType);\n if (!picker) {\n return null;\n }\n return picker;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/picker/picker-service.ts"],"names":[],"mappings":"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","file":"picker-service.js","sourcesContent":["import type { IMatrix, IPoint, IPointLike } from '@visactor/vutils';\nimport { Matrix, Point, IBounds } from '@visactor/vutils';\nimport { inject, injectable, named } from 'inversify';\nimport { foreach } from '../common/sort';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../common/contribution-provider';\nimport type {\n IContext2d,\n IGraphic,\n IGroup,\n EnvType,\n IGlobal,\n IPickerService,\n IGraphicPicker,\n IPickParams,\n PickResult,\n IPickItemInterceptorContribution,\n IContributionProvider\n} from '../interface';\nimport { DefaultAttribute, getTheme, mat3Tomat4, multiplyMat4Mat4 } from '../graphic';\nimport { mat4Allocate, matrixAllocate } from '../allocator/matrix-allocate';\nimport { PickItemInterceptor } from './pick-interceptor';\nimport { VGlobal } from '../constants';\n\nexport const GraphicPicker = Symbol.for('GraphicPicker');\n\nexport const PickerService = Symbol.for('PickerService');\n\n@injectable()\nexport abstract class DefaultPickService implements IPickerService {\n type: string = 'default';\n declare pickerMap: Map<number, IGraphicPicker>;\n declare pickContext?: IContext2d;\n declare InterceptorContributions: IPickItemInterceptorContribution[];\n\n constructor(\n @inject(VGlobal) public readonly global: IGlobal,\n // 拦截器\n @inject(ContributionProvider)\n @named(PickItemInterceptor)\n protected readonly pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>\n ) {}\n\n protected _init() {\n this.InterceptorContributions = this.pickItemInterceptorContributions\n .getContributions()\n .sort((a, b) => a.order - b.order);\n }\n\n abstract configure(global: IGlobal, env: EnvType): void;\n\n // todo: params支持\n // todo: 性能优化\n pick(graphics: IGraphic[], point: IPoint, params: IPickParams): PickResult {\n let result: PickResult = {\n graphic: null,\n group: null\n };\n params.pickerService = this;\n let offsetX = 0;\n let offsetY = 0;\n if (params && params.bounds) {\n if (!params.bounds.contains(point.x, point.y)) {\n return result;\n }\n offsetX = params.bounds.x1;\n offsetY = params.bounds.y1;\n }\n if (this.pickContext) {\n this.pickContext.inuse = true;\n }\n params.pickContext = this.pickContext;\n this.pickContext && this.pickContext.clearMatrix(true, 1);\n\n const parentMatrix = new Matrix(1, 0, 0, 1, offsetX, offsetY);\n let group: IGroup;\n for (let i = graphics.length - 1; i >= 0; 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 if (this.pickContext) {\n this.pickContext.inuse = false;\n }\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 // TODO: 支持3d模式的拾取和自定义path的拾取\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 const context = params.pickContext;\n const lastMatrix = context.modelMatrix;\n // 如果是3d,那么需要生成modelMatrix\n if (context.camera) {\n const m = group.transMatrix;\n const matrix = mat4Allocate.allocate();\n mat3Tomat4(matrix, m);\n if (lastMatrix) {\n if (matrix) {\n const m = mat4Allocate.allocate();\n context.modelMatrix = multiplyMat4Mat4(m, lastMatrix, matrix);\n mat4Allocate.free(matrix);\n }\n } else {\n // 转化context的matrix为lastMatrix\n mat3Tomat4(matrix, group.globalTransMatrix);\n context.modelMatrix = matrix;\n }\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 result = drawContribution.beforePickItem(group, this, point, params, { parentMatrix });\n if (result) {\n if (context.modelMatrix !== lastMatrix) {\n mat4Allocate.free(context.modelMatrix);\n }\n context.modelMatrix = lastMatrix;\n return result as PickResult;\n }\n }\n }\n }\n // 转换坐标空间\n const transMatrix = group.transMatrix;\n const currentGroupMatrix = matrixAllocate.allocateByObj(parentMatrix);\n const newPoint: IPoint = new Point(point.x, point.y);\n currentGroupMatrix.transformPoint(newPoint, newPoint);\n // todo: 支持带有path的group的选中\n const insideGroup = group.AABBBounds.containsPoint(newPoint);\n // 如果group没有被选中,直接跳过(如果是3d模式,那么继续)\n if (!insideGroup && !group.stage.camera) {\n return result;\n }\n // pickGroup,Group目前只支持拦截模式(用于shadow节点)\n const pickedItem = this.pickItem(group, newPoint.clone(), parentMatrix, params);\n if (pickedItem) {\n result.graphic = pickedItem;\n }\n const groupPicked = group.attribute.pickable !== false && insideGroup;\n\n currentGroupMatrix.multiply(\n transMatrix.a,\n transMatrix.b,\n transMatrix.c,\n transMatrix.d,\n transMatrix.e,\n transMatrix.f\n );\n if (group.attribute.childrenPickable !== false && !pickedItem) {\n foreach(\n group,\n DefaultAttribute.zIndex,\n (graphic: IGraphic) => {\n if (graphic.isContainer) {\n // 偏移scrollX和scrollY\n const newPoint: IPoint = new Point(point.x, point.y);\n const theme = getTheme(group).group;\n const { scrollX = theme.scrollX, scrollY = theme.scrollY } = group.attribute;\n newPoint.x -= scrollX;\n newPoint.y -= scrollY;\n result = this.pickGroup(graphic as IGroup, newPoint, currentGroupMatrix, params);\n } else {\n const newPoint: IPoint = new Point(point.x, point.y);\n currentGroupMatrix.transformPoint(newPoint, newPoint);\n // 偏移scrollX和scrollY\n const theme = getTheme(group).group;\n const { scrollX = theme.scrollX, scrollY = theme.scrollY } = group.attribute;\n newPoint.x -= scrollX;\n newPoint.y -= scrollY;\n const pickedItem = this.pickItem(graphic, newPoint, parentMatrix, params);\n result.graphic = pickedItem;\n }\n return !!result.graphic || !!result.group;\n },\n true,\n !!context.camera\n );\n }\n if (context.modelMatrix !== lastMatrix) {\n mat4Allocate.free(context.modelMatrix);\n }\n context.modelMatrix = lastMatrix;\n\n if (!result.graphic && !result.group && groupPicked && !group.stage.camera) {\n result.group = group;\n }\n matrixAllocate.free(currentGroupMatrix);\n return result;\n }\n\n // todo: switch统一改为数字map\n abstract pickItem(\n graphic: IGraphic,\n point: IPointLike,\n parentMatrix: IMatrix | null,\n params: IPickParams\n ): IGraphic | null;\n\n protected selectPicker(graphic: IGraphic): IGraphicPicker | null {\n const picker = this.pickerMap.get(graphic.numberType);\n if (!picker) {\n return null;\n }\n return picker;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/builtin-plugin/3dview-transform-plugin.ts"],"names":[],"mappings":"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","file":"3dview-transform-plugin.js","sourcesContent":["import type { IOption3D, IPlugin, IPluginService } from '../../interface';\nimport { Generator } from '../../common/generator';\n\nexport class ViewTransform3dPlugin implements IPlugin {\n name: 'ViewTransform3dPlugin' = 'ViewTransform3dPlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n mousedown?: boolean;\n pageX?: number;\n pageY?: number;\n option3d?: IOption3D;\n\n onMouseDown = (e: MouseEvent | any) => {\n if (!this.option3d) {\n this.option3d = this.pluginService.stage.option3d;\n }\n if (!this.option3d) {\n return;\n }\n this.mousedown = true;\n this.pageX = e.page.x;\n this.pageY = e.page.y;\n };\n onMouseUp = (e: MouseEvent | any) => {\n if (!this.option3d) {\n this.option3d = this.pluginService.stage.option3d;\n }\n if (!this.option3d) {\n return;\n }\n this.mousedown = false;\n };\n onMouseMove = (e: MouseEvent | any) => {\n const stage = this.pluginService.stage;\n if (!this.option3d) {\n this.option3d = stage.option3d;\n }\n if (!this.option3d) {\n return;\n }\n if (this.mousedown) {\n if (!this.pageX || !this.pageY) {\n this.pageX = e.page.x;\n this.pageY = e.page.y;\n } else {\n const deltaX = e.page.x - this.pageX;\n const deltaY = e.page.y - this.pageY;\n this.pageX = e.page.x;\n this.pageY = e.page.y;\n\n const angle1 = deltaX / 100;\n const angle2 = deltaY / 100;\n this.option3d.alpha = (this.option3d.alpha ?? 0) + angle1;\n this.option3d.beta = (this.option3d.beta ?? 0) + angle2;\n stage.set3dOptions(this.option3d);\n stage.renderNextFrame();\n }\n }\n };\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n const stage = context.stage;\n this.option3d = stage.option3d;\n stage.addEventListener('mousedown', this.onMouseDown);\n stage.addEventListener('mouseup', this.onMouseUp);\n stage.addEventListener('mousemove', this.onMouseMove);\n }\n deactivate(context: IPluginService): void {\n const stage = context.stage;\n stage.removeEventListener('mousedown', this.onMouseDown);\n stage.removeEventListener('mouseup', this.onMouseUp);\n stage.removeEventListener('mousemove', this.onMouseMove);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/plugins/builtin-plugin/3dview-transform-plugin.ts"],"names":[],"mappings":"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","file":"3dview-transform-plugin.js","sourcesContent":["import type { IOption3D, IPlugin, IPluginService } from '../../interface';\nimport { Generator } from '../../common/generator';\n\nexport class ViewTransform3dPlugin implements IPlugin {\n name: 'ViewTransform3dPlugin' = 'ViewTransform3dPlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n mousedown?: boolean;\n pageX?: number;\n pageY?: number;\n option3d?: IOption3D;\n\n onMouseDown = (e: MouseEvent | any) => {\n if (!this.option3d) {\n this.option3d = this.pluginService.stage.option3d;\n }\n if (!this.option3d) {\n return;\n }\n this.mousedown = true;\n this.pageX = e.page.x;\n this.pageY = e.page.y;\n };\n onMouseUp = (e: MouseEvent | any) => {\n if (!this.option3d) {\n this.option3d = this.pluginService.stage.option3d;\n }\n if (!this.option3d) {\n return;\n }\n this.mousedown = false;\n };\n onMouseMove = (e: MouseEvent | any) => {\n const stage = this.pluginService.stage;\n if (!this.option3d) {\n this.option3d = stage.option3d;\n }\n if (!this.option3d) {\n return;\n }\n if (this.mousedown) {\n if (!this.pageX || !this.pageY) {\n this.pageX = e.page.x;\n this.pageY = e.page.y;\n } else {\n const deltaX = e.page.x - this.pageX;\n const deltaY = e.page.y - this.pageY;\n this.pageX = e.page.x;\n this.pageY = e.page.y;\n\n const angle1 = deltaX / 100;\n const angle2 = deltaY / 100;\n this.option3d.alpha = (this.option3d.alpha ?? 0) + angle1;\n this.option3d.beta = (this.option3d.beta ?? 0) + angle2;\n stage.set3dOptions(this.option3d);\n stage.renderNextFrame();\n }\n }\n };\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n const stage = context.stage;\n this.option3d = stage.option3d;\n stage.addEventListener('mousedown', this.onMouseDown);\n stage.addEventListener('mouseup', this.onMouseUp);\n stage.addEventListener('mousemove', this.onMouseMove);\n }\n deactivate(context: IPluginService): void {\n const stage = context.stage;\n stage.removeEventListener('mousedown', this.onMouseDown);\n stage.removeEventListener('mouseup', this.onMouseUp);\n stage.removeEventListener('mousemove', this.onMouseMove);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/builtin-plugin/auto-render-plugin.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;AACnD,mDAAgD;AAGhD,MAAa,gBAAgB;IAA7B;QACE,SAAI,GAAuB,kBAAkB,CAAC;QAC9C,gBAAW,GAAiB,YAAY,CAAC;QAEzC,SAAI,GAAW,qBAAS,CAAC,kBAAkB,EAAE,CAAC;QAC9C,QAAG,GAAW,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IA8BtC,CAAC;IA5BC,QAAQ,CAAC,OAAuB;QAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YACzE,IAAI,OAAO,CAAC,SAAS,EAAE;gBACrB,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;aAC7B;YACD,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC5D,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;QACH,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YAClE,IAAI,OAAO,CAAC,SAAS,EAAE;gBACrB,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;aAC7B;YACD,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC5D,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,OAAuB;QAChC,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI;YACrD,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACpE,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAChH,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAnCD,4CAmCC","file":"auto-render-plugin.js","sourcesContent":["import { Generator } from '../../common/generator';\nimport { application } from '../../application';\nimport type { IPlugin, IPluginService } from '../../interface';\n\nexport class AutoRenderPlugin implements IPlugin {\n name: 'AutoRenderPlugin' = 'AutoRenderPlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n application.graphicService.hooks.onAttributeUpdate.tap(this.key, graphic => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n if (graphic.stage === context.stage && graphic.stage != null) {\n graphic.stage.renderNextFrame();\n }\n });\n application.graphicService.hooks.onSetStage.tap(this.key, graphic => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n if (graphic.stage === context.stage && graphic.stage != null) {\n graphic.stage.renderNextFrame();\n }\n });\n }\n deactivate(context: IPluginService): void {\n application.graphicService.hooks.onAttributeUpdate.taps =\n application.graphicService.hooks.onAttributeUpdate.taps.filter(item => {\n return item.name !== this.key;\n });\n application.graphicService.hooks.onSetStage.taps = application.graphicService.hooks.onSetStage.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/plugins/builtin-plugin/auto-render-plugin.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;AACnD,mDAAgD;AAGhD,MAAa,gBAAgB;IAA7B;QACE,SAAI,GAAuB,kBAAkB,CAAC;QAC9C,gBAAW,GAAiB,YAAY,CAAC;QAEzC,SAAI,GAAW,qBAAS,CAAC,kBAAkB,EAAE,CAAC;QAC9C,QAAG,GAAW,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IA8BtC,CAAC;IA5BC,QAAQ,CAAC,OAAuB;QAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YACzE,IAAI,OAAO,CAAC,SAAS,EAAE;gBACrB,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;aAC7B;YACD,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC5D,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;QACH,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YAClE,IAAI,OAAO,CAAC,SAAS,EAAE;gBACrB,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;aAC7B;YACD,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC5D,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,OAAuB;QAChC,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI;YACrD,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACpE,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAChH,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAnCD,4CAmCC","file":"auto-render-plugin.js","sourcesContent":["import { Generator } from '../../common/generator';\nimport { application } from '../../application';\nimport type { IPlugin, IPluginService } from '../../interface';\n\nexport class AutoRenderPlugin implements IPlugin {\n name: 'AutoRenderPlugin' = 'AutoRenderPlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n application.graphicService.hooks.onAttributeUpdate.tap(this.key, graphic => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n if (graphic.stage === context.stage && graphic.stage != null) {\n graphic.stage.renderNextFrame();\n }\n });\n application.graphicService.hooks.onSetStage.tap(this.key, graphic => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n if (graphic.stage === context.stage && graphic.stage != null) {\n graphic.stage.renderNextFrame();\n }\n });\n }\n deactivate(context: IPluginService): void {\n application.graphicService.hooks.onAttributeUpdate.taps =\n application.graphicService.hooks.onAttributeUpdate.taps.filter(item => {\n return item.name !== this.key;\n });\n application.graphicService.hooks.onSetStage.taps = application.graphicService.hooks.onSetStage.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/builtin-plugin/dirty-bounds-plugin.ts"],"names":[],"mappings":"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","file":"dirty-bounds-plugin.js","sourcesContent":["import type { IAABBBounds } from '@visactor/vutils';\nimport { AABBBounds } from '@visactor/vutils';\nimport { Generator } from '../../common/generator';\nimport type { IGraphic, IStage, IPlugin, IPluginService } from '../../interface';\nimport { application } from '../../application';\n\nconst globalBounds = new AABBBounds();\n\nexport class DirtyBoundsPlugin implements IPlugin {\n name: 'DirtyBoundsPlugin' = 'DirtyBoundsPlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n context.stage.hooks.afterRender.tap(this.key, stage => {\n if (!(stage && stage === this.pluginService.stage)) {\n return;\n }\n stage.dirtyBounds.clear();\n });\n application.graphicService.hooks.beforeUpdateAABBBounds.tap(\n this.key,\n (graphic: IGraphic, stage: IStage, willUpdate: boolean, bounds: IAABBBounds) => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n if (!(stage && stage === this.pluginService.stage && stage.renderCount)) {\n return;\n }\n // group的子元素导致的bounds更新不用做dirtyBounds\n if (graphic.isContainer && !graphic.shouldSelfChangeUpdateAABBBounds()) {\n return;\n }\n if (willUpdate) {\n globalBounds.setValue(bounds.x1, bounds.y1, bounds.x2, bounds.y2);\n stage.dirty(globalBounds, graphic.parent && graphic.parent.globalTransMatrix);\n }\n }\n );\n application.graphicService.hooks.afterUpdateAABBBounds.tap(\n this.key,\n (\n graphic: IGraphic,\n stage: IStage,\n bounds: IAABBBounds,\n params: { globalAABBBounds: IAABBBounds },\n selfChange: boolean\n ) => {\n if (!(stage && stage === this.pluginService.stage && stage.renderCount)) {\n return;\n }\n // group的子元素导致的bounds更新不用做dirtyBounds\n if (graphic.isContainer && !selfChange) {\n return;\n }\n stage.dirty(params.globalAABBBounds);\n }\n );\n application.graphicService.hooks.onRemove.tap(this.key, (graphic: IGraphic) => {\n const stage = graphic.stage;\n if (!(stage && stage === this.pluginService.stage && stage.renderCount)) {\n return;\n }\n if (stage) {\n stage.dirty(graphic.globalAABBBounds);\n }\n });\n }\n deactivate(context: IPluginService): void {\n application.graphicService.hooks.beforeUpdateAABBBounds.taps =\n application.graphicService.hooks.beforeUpdateAABBBounds.taps.filter(item => {\n return item.name !== this.key;\n });\n application.graphicService.hooks.afterUpdateAABBBounds.taps =\n application.graphicService.hooks.afterUpdateAABBBounds.taps.filter(item => {\n return item.name !== this.key;\n });\n context.stage.hooks.afterRender.taps = context.stage.hooks.afterRender.taps.filter(item => {\n return item.name !== this.key;\n });\n application.graphicService.hooks.onRemove.taps = application.graphicService.hooks.onRemove.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/plugins/builtin-plugin/dirty-bounds-plugin.ts"],"names":[],"mappings":";;;AACA,6CAA8C;AAC9C,sDAAmD;AAEnD,mDAAgD;AAEhD,MAAM,YAAY,GAAG,IAAI,mBAAU,EAAE,CAAC;AAEtC,MAAa,iBAAiB;IAA9B;QACE,SAAI,GAAwB,mBAAmB,CAAC;QAChD,gBAAW,GAAiB,YAAY,CAAC;QAEzC,SAAI,GAAW,qBAAS,CAAC,kBAAkB,EAAE,CAAC;QAC9C,QAAG,GAAW,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IA0EtC,CAAC;IAxEC,QAAQ,CAAC,OAAuB;QAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;YACpD,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;gBAClD,OAAO;aACR;YACD,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAAG,CACzD,IAAI,CAAC,GAAG,EACR,CAAC,OAAiB,EAAE,KAAa,EAAE,UAAmB,EAAE,MAAmB,EAAE,EAAE;YAC7E,IAAI,OAAO,CAAC,SAAS,EAAE;gBACrB,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;aAC7B;YACD,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;gBACvE,OAAO;aACR;YAED,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAE;gBACtE,OAAO;aACR;YACD,IAAI,UAAU,EAAE;gBACd,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAClE,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;aAC/E;QACH,CAAC,CACF,CAAC;QACF,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CACxD,IAAI,CAAC,GAAG,EACR,CACE,OAAiB,EACjB,KAAa,EACb,MAAmB,EACnB,MAAyC,EACzC,UAAmB,EACnB,EAAE;YACF,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;gBACvE,OAAO;aACR;YAED,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE;gBACtC,OAAO;aACR;YACD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACvC,CAAC,CACF,CAAC;QACF,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAiB,EAAE,EAAE;YAC5E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;gBACvE,OAAO;aACR;YACD,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aACvC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,OAAuB;QAChC,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI;YAC1D,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACzE,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI;YACzD,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACxE,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACxF,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,yBAAW,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC5G,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA/ED,8CA+EC","file":"dirty-bounds-plugin.js","sourcesContent":["import type { IAABBBounds } from '@visactor/vutils';\nimport { AABBBounds } from '@visactor/vutils';\nimport { Generator } from '../../common/generator';\nimport type { IGraphic, IStage, IPlugin, IPluginService } from '../../interface';\nimport { application } from '../../application';\n\nconst globalBounds = new AABBBounds();\n\nexport class DirtyBoundsPlugin implements IPlugin {\n name: 'DirtyBoundsPlugin' = 'DirtyBoundsPlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n context.stage.hooks.afterRender.tap(this.key, stage => {\n if (!(stage && stage === this.pluginService.stage)) {\n return;\n }\n stage.dirtyBounds.clear();\n });\n application.graphicService.hooks.beforeUpdateAABBBounds.tap(\n this.key,\n (graphic: IGraphic, stage: IStage, willUpdate: boolean, bounds: IAABBBounds) => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n if (!(stage && stage === this.pluginService.stage && stage.renderCount)) {\n return;\n }\n // group的子元素导致的bounds更新不用做dirtyBounds\n if (graphic.isContainer && !graphic.shouldSelfChangeUpdateAABBBounds()) {\n return;\n }\n if (willUpdate) {\n globalBounds.setValue(bounds.x1, bounds.y1, bounds.x2, bounds.y2);\n stage.dirty(globalBounds, graphic.parent && graphic.parent.globalTransMatrix);\n }\n }\n );\n application.graphicService.hooks.afterUpdateAABBBounds.tap(\n this.key,\n (\n graphic: IGraphic,\n stage: IStage,\n bounds: IAABBBounds,\n params: { globalAABBBounds: IAABBBounds },\n selfChange: boolean\n ) => {\n if (!(stage && stage === this.pluginService.stage && stage.renderCount)) {\n return;\n }\n // group的子元素导致的bounds更新不用做dirtyBounds\n if (graphic.isContainer && !selfChange) {\n return;\n }\n stage.dirty(params.globalAABBBounds);\n }\n );\n application.graphicService.hooks.onRemove.tap(this.key, (graphic: IGraphic) => {\n const stage = graphic.stage;\n if (!(stage && stage === this.pluginService.stage && stage.renderCount)) {\n return;\n }\n if (stage) {\n stage.dirty(graphic.globalAABBBounds);\n }\n });\n }\n deactivate(context: IPluginService): void {\n application.graphicService.hooks.beforeUpdateAABBBounds.taps =\n application.graphicService.hooks.beforeUpdateAABBBounds.taps.filter(item => {\n return item.name !== this.key;\n });\n application.graphicService.hooks.afterUpdateAABBBounds.taps =\n application.graphicService.hooks.afterUpdateAABBBounds.taps.filter(item => {\n return item.name !== this.key;\n });\n context.stage.hooks.afterRender.taps = context.stage.hooks.afterRender.taps.filter(item => {\n return item.name !== this.key;\n });\n application.graphicService.hooks.onRemove.taps = application.graphicService.hooks.onRemove.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n}\n"]}
@@ -1,11 +1,13 @@
1
1
  import type { IGraphic, IGroup, IGroupAttribute } from '../../interface';
2
2
  import type { IPlugin, IPluginService } from '../../interface';
3
+ import { AABBBounds } from '@visactor/vutils';
3
4
  export declare class FlexLayoutPlugin implements IPlugin {
4
5
  name: 'FlexLayoutPlugin';
5
6
  activeEvent: 'onRegister';
6
7
  pluginService: IPluginService;
7
8
  id: number;
8
9
  key: string;
10
+ tempBounds: AABBBounds;
9
11
  tryLayout(graphic: IGraphic): void;
10
12
  layoutMain(p: IGroup, children: IGraphic[], justifyContent: IGroupAttribute['justifyContent'], main: {
11
13
  len: number;
@@ -4,20 +4,30 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.FlexLayoutPlugin = void 0;
6
6
 
7
- const graphic_1 = require("../../graphic"), modules_1 = require("../../modules"), generator_1 = require("../../common/generator");
7
+ const graphic_1 = require("../../graphic"), modules_1 = require("../../modules"), generator_1 = require("../../common/generator"), util_1 = require("../../canvas/util"), utils_1 = require("../../common/utils"), vutils_1 = require("@visactor/vutils");
8
8
 
9
9
  class FlexLayoutPlugin {
10
10
  constructor() {
11
11
  this.name = "FlexLayoutPlugin", this.activeEvent = "onRegister", this.id = generator_1.Generator.GenAutoIncrementId(),
12
- this.key = this.name + this.id;
12
+ this.key = this.name + this.id, this.tempBounds = new vutils_1.AABBBounds;
13
13
  }
14
14
  tryLayout(graphic) {
15
15
  const p = graphic.parent;
16
- if (!p) return;
16
+ if (!p || !graphic.needUpdateLayout()) return;
17
17
  const theme = (0, graphic_1.getTheme)(p).group, {display: display = theme.display} = p.attribute;
18
18
  if ("flex" !== display) return;
19
- const {width: width, height: height, flexDirection: flexDirection = theme.flexDirection, flexWrap: flexWrap = theme.flexWrap, justifyContent: justifyContent = theme.justifyContent, alignItems: alignItems = theme.alignItems, alignContent: alignContent = theme.alignContent} = p.attribute;
20
- if (!width || !height) return;
19
+ const {flexDirection: flexDirection = theme.flexDirection, flexWrap: flexWrap = theme.flexWrap, justifyContent: justifyContent = theme.justifyContent, alignItems: alignItems = theme.alignItems, alignContent: alignContent = theme.alignContent, clip: clip = theme.clip} = p.attribute;
20
+ let childrenWidth = 0, childrenHeight = 0, boundsLegal = 0;
21
+ if (p.forEachChildren((child => {
22
+ const bounds = child.AABBBounds;
23
+ "column" === flexDirection || "column-reverse" === flexDirection ? (childrenHeight += bounds.height(),
24
+ childrenWidth = Math.max(childrenWidth, bounds.width())) : (childrenWidth += bounds.width(),
25
+ childrenHeight = Math.max(childrenHeight, bounds.height())), boundsLegal += bounds.x1,
26
+ boundsLegal += bounds.y1, boundsLegal += bounds.x2, boundsLegal += bounds.y2;
27
+ })), !isFinite(boundsLegal)) return;
28
+ const width = p.attribute.width || childrenWidth, height = p.attribute.height || childrenHeight;
29
+ p.attribute.width || (p.attribute.width = 0), p.attribute.height || (p.attribute.height = 0),
30
+ this.tempBounds.copy(p._AABBBounds);
21
31
  const result = {
22
32
  main: {
23
33
  len: width,
@@ -68,15 +78,15 @@ class FlexLayoutPlugin {
68
78
  let lastIdx = 0;
69
79
  if (mainList.forEach((s => {
70
80
  this.layoutMain(p, children, justifyContent, main, mianLenArray, lastIdx, s), lastIdx = s.idx + 1;
71
- })), crossLen = mainList.reduce(((a, b) => a + b.crossLen), 0), 1 === mainList.length) {
72
- if ("flex-end" === alignItems) {
73
- const anchorPos = cross.len;
74
- this.layoutCross(children, alignItems, cross, anchorPos, mianLenArray, mainList[0], 0);
75
- } else if ("center" === alignItems) {
76
- const anchorPos = cross.len / 2;
77
- this.layoutCross(children, alignItems, cross, anchorPos, mianLenArray, mainList[0], 0);
78
- }
79
- } else if ("flex-start" === alignContent) {
81
+ })), crossLen = mainList.reduce(((a, b) => a + b.crossLen), 0), 1 === mainList.length) if ("flex-end" === alignItems) {
82
+ const anchorPos = cross.len;
83
+ this.layoutCross(children, alignItems, cross, anchorPos, mianLenArray, mainList[0], 0);
84
+ } else if ("center" === alignItems) {
85
+ const anchorPos = cross.len / 2;
86
+ this.layoutCross(children, alignItems, cross, anchorPos, mianLenArray, mainList[0], 0);
87
+ } else children.forEach((child => {
88
+ child.attribute[cross.field] = getPadding(child, cross.field);
89
+ })); else if ("flex-start" === alignContent) {
80
90
  lastIdx = 0;
81
91
  let anchorPos = 0;
82
92
  mainList.forEach(((s, i) => {
@@ -107,37 +117,40 @@ class FlexLayoutPlugin {
107
117
  lastIdx = s.idx + 1, anchorPos += s.crossLen + 2 * padding;
108
118
  }));
109
119
  }
120
+ children.forEach(((child, idx) => {
121
+ child.addUpdateBoundTag(), child.addUpdatePositionTag(), child.clearUpdateLayoutTag();
122
+ })), p.addUpdateLayoutTag(), clip || this.tempBounds.equals(p.AABBBounds) || this.tryLayout(p);
110
123
  }
111
124
  layoutMain(p, children, justifyContent, main, mianLenArray, lastIdx, currSeg) {
112
125
  if ("flex-start" === justifyContent) {
113
126
  let pos = 0;
114
- for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[main.field] = pos,
127
+ for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[main.field] = pos + getPadding(children[i], main.field),
115
128
  pos += mianLenArray[i].mainLen;
116
129
  } else if ("flex-end" === justifyContent) {
117
130
  let pos = main.len;
118
- for (let i = lastIdx; i <= currSeg.idx; i++) pos -= mianLenArray[i].mainLen, children[i].attribute[main.field] = pos;
131
+ for (let i = lastIdx; i <= currSeg.idx; i++) pos -= mianLenArray[i].mainLen, children[i].attribute[main.field] = pos + getPadding(children[i], main.field);
119
132
  } else if ("space-around" === justifyContent) if (currSeg.mainLen >= main.len) {
120
133
  let pos = 0;
121
- for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[main.field] = pos,
134
+ for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[main.field] = pos + getPadding(children[i], main.field),
122
135
  pos += mianLenArray[i].mainLen;
123
136
  } else {
124
137
  const size = currSeg.idx - lastIdx + 1, padding = (main.len - currSeg.mainLen) / size / 2;
125
138
  let pos = padding;
126
- for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[main.field] = pos,
139
+ for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[main.field] = pos + getPadding(children[i], main.field),
127
140
  pos += mianLenArray[i].mainLen + 2 * padding;
128
141
  } else if ("space-between" === justifyContent) if (currSeg.mainLen >= main.len) {
129
142
  let pos = 0;
130
- for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[main.field] = pos,
143
+ for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[main.field] = pos + getPadding(children[i], main.field),
131
144
  pos += mianLenArray[i].mainLen;
132
145
  } else {
133
146
  const size = currSeg.idx - lastIdx + 1, padding = (main.len - currSeg.mainLen) / (2 * size - 2);
134
147
  let pos = 0;
135
- for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[main.field] = pos,
148
+ for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[main.field] = pos + getPadding(children[i], main.field),
136
149
  pos += mianLenArray[i].mainLen + 2 * padding;
137
150
  }
138
151
  }
139
152
  layoutCross(children, alignItem, cross, anchorPos, lenArray, currSeg, lastIdx) {
140
- if ("flex-end" === alignItem) for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[cross.field] = anchorPos - lenArray[i].crossLen; else if ("center" === alignItem) for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[cross.field] = anchorPos - lenArray[i].crossLen / 2; else for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[cross.field] = anchorPos;
153
+ if ("flex-end" === alignItem) for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[cross.field] = anchorPos - lenArray[i].crossLen + getPadding(children[i], cross.field); else if ("center" === alignItem) for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[cross.field] = anchorPos - lenArray[i].crossLen / 2 + getPadding(children[i], cross.field); else for (let i = lastIdx; i <= currSeg.idx; i++) children[i].attribute[cross.field] = anchorPos + getPadding(children[i], cross.field);
141
154
  }
142
155
  activate(context) {
143
156
  this.pluginService = context, modules_1.graphicService.hooks.onAttributeUpdate.tap(this.key, (graphic => {
@@ -152,5 +165,13 @@ class FlexLayoutPlugin {
152
165
  }
153
166
  }
154
167
 
168
+ function getPadding(graphic, field) {
169
+ if (!graphic.attribute.boundsPadding) return 0;
170
+ if ((0, util_1.isNumber)(graphic.attribute.boundsPadding)) return graphic.attribute.boundsPadding;
171
+ if ((0, vutils_1.isArray)(graphic.attribute.boundsPadding) && 1 === graphic.attribute.boundsPadding.length) return graphic.attribute.boundsPadding[0];
172
+ const paddingArray = (0, utils_1.parsePadding)(graphic.attribute.boundsPadding);
173
+ return "x" === field ? paddingArray[3] : "y" === field ? paddingArray[0] : 0;
174
+ }
175
+
155
176
  exports.FlexLayoutPlugin = FlexLayoutPlugin;
156
177
  //# sourceMappingURL=flex-layout-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/builtin-plugin/flex-layout-plugin.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AACzC,2CAA+C;AAE/C,sDAAmD;AAEnD,MAAa,gBAAgB;IAA7B;QACE,SAAI,GAAuB,kBAAkB,CAAC;QAC9C,gBAAW,GAAiB,YAAY,CAAC;QAEzC,OAAE,GAAW,qBAAS,CAAC,kBAAkB,EAAE,CAAC;QAC5C,QAAG,GAAW,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;IAwPpC,CAAC;IAtPC,SAAS,CAAC,OAAiB;QACzB,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,CAAC,EAAE;YACN,OAAO;SACR;QACD,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAChC,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC;QAChD,IAAI,OAAO,KAAK,MAAM,EAAE;YACtB,OAAO;SACR;QACD,MAAM,EACJ,KAAK,EACL,MAAM,EACN,aAAa,GAAG,KAAK,CAAC,aAAa,EACnC,QAAQ,GAAG,KAAK,CAAC,QAAQ,EACzB,cAAc,GAAG,KAAK,CAAC,cAAc,EACrC,UAAU,GAAG,KAAK,CAAC,UAAU,EAC7B,YAAY,GAAG,KAAK,CAAC,YAAY,EAClC,GAAG,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE;YACtB,OAAO;SACR;QAED,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;YAChC,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;YAClC,GAAG,EAAE,CAAC;SACP,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,aAAa,KAAK,aAAa,EAAE;YACnC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACjB;aAAM,IAAI,aAAa,KAAK,QAAQ,EAAE;YACrC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;YAClB,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACjB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;SACnB;aAAM,IAAI,aAAa,KAAK,gBAAgB,EAAE;YAC7C,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;YAClB,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACjB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;YAClB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACjB;QAGD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,YAAY,GAA4C,EAAE,CAAC;QACjE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAW,EAAE,EAAE;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACxD,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACjD,OAAO,IAAI,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAyD,EAAE,CAAC;QAC1E,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,QAAQ,KAAK,MAAM,EAAE;YAC7C,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;gBAChD,IAAI,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE;oBAClC,IAAI,SAAS,KAAK,CAAC,EAAE;wBACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAClE,SAAS,GAAG,CAAC,CAAC;wBACd,UAAU,GAAG,CAAC,CAAC;qBAChB;yBAAM;wBACL,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAC5D,SAAS,GAAG,OAAO,CAAC;wBACpB,UAAU,GAAG,QAAQ,CAAC;qBACvB;iBACF;qBAAM;oBACL,SAAS,IAAI,OAAO,CAAC;oBACrB,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;iBAC7C;YACH,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;SAC3F;aAAM;YACL,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;SAC7E;QAED,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAgB,CAAC;QAG/C,IAAI,OAAO,GAAW,CAAC,CAAC;QACxB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7E,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAGxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,IAAI,UAAU,KAAK,UAAU,EAAE;gBAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACxF;iBAAM,IAAI,UAAU,KAAK,QAAQ,EAAE;gBAClC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACxF;SACF;aAAM;YACL,IAAI,YAAY,KAAK,YAAY,EAAE;gBACjC,OAAO,GAAG,CAAC,CAAC;gBACZ,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC/F,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBACpB,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC;gBAC1B,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,YAAY,KAAK,QAAQ,EAAE;gBACpC,OAAO,GAAG,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxD,IAAI,SAAS,GAAG,OAAO,CAAC;gBACxB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC5G,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBACpB,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC;gBAC1B,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,YAAY,KAAK,cAAc,EAAE;gBAC1C,OAAO,GAAG,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC1E,IAAI,SAAS,GAAG,OAAO,CAAC;gBACxB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC/F,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBACpB,SAAS,IAAI,CAAC,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,YAAY,KAAK,eAAe,EAAE;gBAC3C,OAAO,GAAG,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChF,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC/F,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBACpB,SAAS,IAAI,CAAC,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,UAAU,CACR,CAAS,EACT,QAAoB,EACpB,cAAiD,EACjD,IAAoC,EACpC,YAAqD,EACrD,OAAe,EACf,OAA2D;QAE3D,IAAI,cAAc,KAAK,YAAY,EAAE;YACnC,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3C,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;gBACxC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aAChC;SACF;aAAM,IAAI,cAAc,KAAK,UAAU,EAAE;YACxC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3C,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC/B,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;aACzC;SACF;aAAM,IAAI,cAAc,KAAK,cAAc,EAAE;YAC5C,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE;gBAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;oBAC3C,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;oBACxC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;iBAChC;aACF;iBAAM;gBACL,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;gBACvC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;gBACxD,IAAI,GAAG,GAAG,OAAO,CAAC;gBAClB,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;oBAC3C,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;oBACxC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;iBAC9C;aACF;SACF;aAAM,IAAI,cAAc,KAAK,eAAe,EAAE;YAC7C,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE;gBAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;oBAC3C,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;oBACxC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;iBAChC;aACF;iBAAM;gBACL,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;gBACvC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9D,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;oBAC3C,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;oBACxC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;iBAC9C;aACF;SACF;IACH,CAAC;IAED,WAAW,CACT,QAAoB,EACpB,SAAwC,EACxC,KAAqC,EACrC,SAAiB,EACjB,QAAiD,EACjD,OAA2D,EAC3D,OAAe;QAEf,IAAI,SAAS,KAAK,UAAU,EAAE;YAC5B,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3C,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aACvE;SACF;aAAM,IAAI,SAAS,KAAK,QAAQ,EAAE;YACjC,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3C,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;aAC3E;SACF;aAAM;YACL,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3C,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;aAChD;SACF;IACH,CAAC;IAED,QAAQ,CAAC,OAAuB;QAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,wBAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YAC7D,IAAI,OAAO,CAAC,SAAS,EAAE;gBACrB,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;aAC7B;YACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,wBAAc,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YACtD,IAAI,OAAO,CAAC,SAAS,EAAE;gBACrB,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;aAC7B;YACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,OAAuB;QAChC,wBAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,GAAG,wBAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACtG,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,wBAAc,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,wBAAc,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACxF,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA7PD,4CA6PC","file":"flex-layout-plugin.js","sourcesContent":["import type { IGraphic, IGroup, IGroupAttribute } from '../../interface';\nimport { getTheme } from '../../graphic';\nimport { graphicService } from '../../modules';\nimport type { IPlugin, IPluginService } from '../../interface';\nimport { Generator } from '../../common/generator';\n\nexport class FlexLayoutPlugin implements IPlugin {\n name: 'FlexLayoutPlugin' = 'FlexLayoutPlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n id: number = Generator.GenAutoIncrementId();\n key: string = this.name + this.id;\n\n tryLayout(graphic: IGraphic) {\n const p = graphic.parent;\n if (!p) {\n return;\n }\n const theme = getTheme(p).group;\n const { display = theme.display } = p.attribute;\n if (display !== 'flex') {\n return;\n }\n const {\n width,\n height,\n flexDirection = theme.flexDirection,\n flexWrap = theme.flexWrap,\n justifyContent = theme.justifyContent,\n alignItems = theme.alignItems,\n alignContent = theme.alignContent\n } = p.attribute;\n if (!(width && height)) {\n return;\n }\n\n const result = {\n main: { len: width, field: 'x' },\n cross: { len: height, field: 'y' },\n dir: 1\n };\n const main = result.main;\n const cross = result.cross;\n if (flexDirection === 'row-reverse') {\n result.dir = -1;\n } else if (flexDirection === 'column') {\n main.len = height;\n cross.len = width;\n main.field = 'y';\n cross.field = 'x';\n } else if (flexDirection === 'column-reverse') {\n main.len = height;\n cross.len = width;\n main.field = 'y';\n cross.field = 'x';\n result.dir = -1;\n }\n\n // 计算宽度\n let mainLen = 0;\n let crossLen = 0;\n const mianLenArray: { mainLen: number; crossLen: number }[] = [];\n p.forEachChildren((c: IGraphic) => {\n const b = c.AABBBounds;\n const ml = main.field === 'x' ? b.width() : b.height();\n const cl = cross.field === 'x' ? b.width() : b.height();\n mianLenArray.push({ mainLen: ml, crossLen: cl });\n mainLen += ml;\n crossLen = Math.max(crossLen, cl);\n });\n // 解析main\n const mainList: { idx: number; mainLen: number; crossLen: number }[] = [];\n if (mainLen > main.len && flexWrap === 'wrap') {\n let tempMainL = 0;\n let tempCrossL = 0;\n mianLenArray.forEach(({ mainLen, crossLen }, i) => {\n if (tempMainL + mainLen > main.len) {\n if (tempMainL === 0) {\n mainList.push({ idx: i, mainLen: tempMainL + mainLen, crossLen });\n tempMainL = 0;\n tempCrossL = 0;\n } else {\n mainList.push({ idx: i - 1, mainLen: tempMainL, crossLen });\n tempMainL = mainLen;\n tempCrossL = crossLen;\n }\n } else {\n tempMainL += mainLen;\n tempCrossL = Math.max(tempCrossL, crossLen);\n }\n });\n mainList.push({ idx: mianLenArray.length - 1, mainLen: tempMainL, crossLen: tempCrossL });\n } else {\n mainList.push({ idx: mianLenArray.length - 1, mainLen: mainLen, crossLen });\n }\n\n const children = p.getChildren() as IGraphic[];\n\n // 布局main\n let lastIdx: number = 0;\n mainList.forEach(s => {\n this.layoutMain(p, children, justifyContent, main, mianLenArray, lastIdx, s);\n lastIdx = s.idx + 1;\n });\n\n crossLen = mainList.reduce((a, b) => a + b.crossLen, 0);\n\n // 布局cross\n if (mainList.length === 1) {\n if (alignItems === 'flex-end') {\n const anchorPos = cross.len;\n this.layoutCross(children, alignItems, cross, anchorPos, mianLenArray, mainList[0], 0);\n } else if (alignItems === 'center') {\n const anchorPos = cross.len / 2;\n this.layoutCross(children, alignItems, cross, anchorPos, mianLenArray, mainList[0], 0);\n }\n } else {\n if (alignContent === 'flex-start') {\n lastIdx = 0;\n let anchorPos = 0;\n mainList.forEach((s, i) => {\n this.layoutCross(children, 'flex-start', cross, anchorPos, mianLenArray, mainList[i], lastIdx);\n lastIdx = s.idx + 1;\n anchorPos += s.crossLen;\n });\n } else if (alignContent === 'center') {\n lastIdx = 0;\n const padding = Math.max(0, (cross.len - crossLen) / 2);\n let anchorPos = padding;\n mainList.forEach((s, i) => {\n this.layoutCross(children, 'center', cross, anchorPos + s.crossLen / 2, mianLenArray, mainList[i], lastIdx);\n lastIdx = s.idx + 1;\n anchorPos += s.crossLen;\n });\n } else if (alignContent === 'space-around') {\n lastIdx = 0;\n const padding = Math.max(0, (cross.len - crossLen) / mainList.length / 2);\n let anchorPos = padding;\n mainList.forEach((s, i) => {\n this.layoutCross(children, 'flex-start', cross, anchorPos, mianLenArray, mainList[i], lastIdx);\n lastIdx = s.idx + 1;\n anchorPos += s.crossLen + padding * 2;\n });\n } else if (alignContent === 'space-between') {\n lastIdx = 0;\n const padding = Math.max(0, (cross.len - crossLen) / (mainList.length * 2 - 2));\n let anchorPos = 0;\n mainList.forEach((s, i) => {\n this.layoutCross(children, 'flex-start', cross, anchorPos, mianLenArray, mainList[i], lastIdx);\n lastIdx = s.idx + 1;\n anchorPos += s.crossLen + padding * 2;\n });\n }\n }\n }\n\n layoutMain(\n p: IGroup,\n children: IGraphic[],\n justifyContent: IGroupAttribute['justifyContent'],\n main: { len: number; field: string },\n mianLenArray: { mainLen: number; crossLen: number }[],\n lastIdx: number,\n currSeg: { idx: number; mainLen: number; crossLen: number }\n ) {\n if (justifyContent === 'flex-start') {\n let pos = 0;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[main.field] = pos;\n pos += mianLenArray[i].mainLen;\n }\n } else if (justifyContent === 'flex-end') {\n let pos = main.len;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n pos -= mianLenArray[i].mainLen;\n children[i].attribute[main.field] = pos;\n }\n } else if (justifyContent === 'space-around') {\n if (currSeg.mainLen >= main.len) {\n let pos = 0;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[main.field] = pos;\n pos += mianLenArray[i].mainLen;\n }\n } else {\n const size = currSeg.idx - lastIdx + 1;\n const padding = (main.len - currSeg.mainLen) / size / 2;\n let pos = padding;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[main.field] = pos;\n pos += mianLenArray[i].mainLen + padding * 2;\n }\n }\n } else if (justifyContent === 'space-between') {\n if (currSeg.mainLen >= main.len) {\n let pos = 0;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[main.field] = pos;\n pos += mianLenArray[i].mainLen;\n }\n } else {\n const size = currSeg.idx - lastIdx + 1;\n const padding = (main.len - currSeg.mainLen) / (size * 2 - 2);\n let pos = 0;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[main.field] = pos;\n pos += mianLenArray[i].mainLen + padding * 2;\n }\n }\n }\n }\n\n layoutCross(\n children: IGraphic[],\n alignItem: IGroupAttribute['alignItems'],\n cross: { len: number; field: string },\n anchorPos: number,\n lenArray: { mainLen: number; crossLen: number }[],\n currSeg: { idx: number; mainLen: number; crossLen: number },\n lastIdx: number\n ) {\n if (alignItem === 'flex-end') {\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[cross.field] = anchorPos - lenArray[i].crossLen;\n }\n } else if (alignItem === 'center') {\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[cross.field] = anchorPos - lenArray[i].crossLen / 2;\n }\n } else {\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[cross.field] = anchorPos;\n }\n }\n }\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n graphicService.hooks.onAttributeUpdate.tap(this.key, graphic => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n this.tryLayout(graphic);\n });\n graphicService.hooks.onSetStage.tap(this.key, graphic => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n this.tryLayout(graphic);\n });\n }\n deactivate(context: IPluginService): void {\n graphicService.hooks.onAttributeUpdate.taps = graphicService.hooks.onAttributeUpdate.taps.filter(item => {\n return item.name !== this.key;\n });\n graphicService.hooks.onSetStage.taps = graphicService.hooks.onSetStage.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/plugins/builtin-plugin/flex-layout-plugin.ts"],"names":[],"mappings":"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","file":"flex-layout-plugin.js","sourcesContent":["import type { IGraphic, IGroup, IGroupAttribute, IStage } from '../../interface';\nimport { getTheme } from '../../graphic';\nimport { graphicService } from '../../modules';\nimport type { IPlugin, IPluginService } from '../../interface';\nimport { Generator } from '../../common/generator';\nimport { isNumber } from '../../canvas/util';\nimport { parsePadding } from '../../common/utils';\nimport { AABBBounds, isArray } from '@visactor/vutils';\n\nexport class FlexLayoutPlugin implements IPlugin {\n name: 'FlexLayoutPlugin' = 'FlexLayoutPlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n id: number = Generator.GenAutoIncrementId();\n key: string = this.name + this.id;\n tempBounds: AABBBounds = new AABBBounds();\n\n tryLayout(graphic: IGraphic) {\n const p = graphic.parent;\n if (!p || !graphic.needUpdateLayout()) {\n return;\n }\n const theme = getTheme(p).group;\n const { display = theme.display } = p.attribute;\n if (display !== 'flex') {\n return;\n }\n const {\n // width,\n // height,\n flexDirection = theme.flexDirection,\n flexWrap = theme.flexWrap,\n justifyContent = theme.justifyContent,\n alignItems = theme.alignItems,\n alignContent = theme.alignContent,\n clip = theme.clip\n } = p.attribute;\n // if (!(width && height)) {\n // return;\n // }\n\n let childrenWidth = 0;\n let childrenHeight = 0;\n let boundsLegal = 0;\n p.forEachChildren((child: IGraphic) => {\n const bounds = child.AABBBounds;\n if (flexDirection === 'column' || flexDirection === 'column-reverse') {\n childrenHeight += bounds.height();\n childrenWidth = Math.max(childrenWidth, bounds.width());\n } else {\n childrenWidth += bounds.width();\n childrenHeight = Math.max(childrenHeight, bounds.height());\n }\n boundsLegal += bounds.x1;\n boundsLegal += bounds.y1;\n boundsLegal += bounds.x2;\n boundsLegal += bounds.y2;\n });\n // judgement children bounds legal\n if (!isFinite(boundsLegal)) {\n return;\n }\n const width = p.attribute.width || childrenWidth;\n const height = p.attribute.height || childrenHeight;\n if (!p.attribute.width) {\n p.attribute.width = 0;\n }\n if (!p.attribute.height) {\n p.attribute.height = 0;\n }\n\n // 这里使用p._AABBBounds可能会将非布局造成的bounds更新也会触发重新布局\n // TODO: 增加layout前预处理,在非递归布局前将子节点及其全部父节点_AABBBounds更新\n this.tempBounds.copy(p._AABBBounds);\n const result = {\n main: { len: width, field: 'x' },\n cross: { len: height, field: 'y' },\n dir: 1\n };\n const main = result.main;\n const cross = result.cross;\n if (flexDirection === 'row-reverse') {\n result.dir = -1;\n } else if (flexDirection === 'column') {\n main.len = height;\n cross.len = width;\n main.field = 'y';\n cross.field = 'x';\n } else if (flexDirection === 'column-reverse') {\n main.len = height;\n cross.len = width;\n main.field = 'y';\n cross.field = 'x';\n result.dir = -1;\n }\n\n // 计算宽度\n let mainLen = 0;\n let crossLen = 0;\n const mianLenArray: { mainLen: number; crossLen: number }[] = [];\n p.forEachChildren((c: IGraphic) => {\n const b = c.AABBBounds;\n const ml = main.field === 'x' ? b.width() : b.height();\n const cl = cross.field === 'x' ? b.width() : b.height();\n mianLenArray.push({ mainLen: ml, crossLen: cl });\n mainLen += ml;\n crossLen = Math.max(crossLen, cl);\n });\n // 解析main\n const mainList: { idx: number; mainLen: number; crossLen: number }[] = [];\n if (mainLen > main.len && flexWrap === 'wrap') {\n let tempMainL = 0;\n let tempCrossL = 0;\n mianLenArray.forEach(({ mainLen, crossLen }, i) => {\n if (tempMainL + mainLen > main.len) {\n if (tempMainL === 0) {\n mainList.push({ idx: i, mainLen: tempMainL + mainLen, crossLen });\n tempMainL = 0;\n tempCrossL = 0;\n } else {\n mainList.push({ idx: i - 1, mainLen: tempMainL, crossLen });\n tempMainL = mainLen;\n tempCrossL = crossLen;\n }\n } else {\n tempMainL += mainLen;\n tempCrossL = Math.max(tempCrossL, crossLen);\n }\n });\n mainList.push({ idx: mianLenArray.length - 1, mainLen: tempMainL, crossLen: tempCrossL });\n } else {\n mainList.push({ idx: mianLenArray.length - 1, mainLen: mainLen, crossLen });\n }\n\n const children = p.getChildren() as IGraphic[];\n\n // 布局main\n let lastIdx: number = 0;\n mainList.forEach(s => {\n this.layoutMain(p, children, justifyContent, main, mianLenArray, lastIdx, s);\n lastIdx = s.idx + 1;\n });\n\n crossLen = mainList.reduce((a, b) => a + b.crossLen, 0);\n\n // 布局cross\n if (mainList.length === 1) {\n if (alignItems === 'flex-end') {\n const anchorPos = cross.len;\n this.layoutCross(children, alignItems, cross, anchorPos, mianLenArray, mainList[0], 0);\n } else if (alignItems === 'center') {\n const anchorPos = cross.len / 2;\n this.layoutCross(children, alignItems, cross, anchorPos, mianLenArray, mainList[0], 0);\n } else {\n children.forEach(child => {\n child.attribute[cross.field] = getPadding(child, cross.field);\n });\n }\n } else {\n if (alignContent === 'flex-start') {\n lastIdx = 0;\n let anchorPos = 0;\n mainList.forEach((s, i) => {\n this.layoutCross(children, 'flex-start', cross, anchorPos, mianLenArray, mainList[i], lastIdx);\n lastIdx = s.idx + 1;\n anchorPos += s.crossLen;\n });\n } else if (alignContent === 'center') {\n lastIdx = 0;\n const padding = Math.max(0, (cross.len - crossLen) / 2);\n let anchorPos = padding;\n mainList.forEach((s, i) => {\n this.layoutCross(children, 'center', cross, anchorPos + s.crossLen / 2, mianLenArray, mainList[i], lastIdx);\n lastIdx = s.idx + 1;\n anchorPos += s.crossLen;\n });\n } else if (alignContent === 'space-around') {\n lastIdx = 0;\n const padding = Math.max(0, (cross.len - crossLen) / mainList.length / 2);\n let anchorPos = padding;\n mainList.forEach((s, i) => {\n this.layoutCross(children, 'flex-start', cross, anchorPos, mianLenArray, mainList[i], lastIdx);\n lastIdx = s.idx + 1;\n anchorPos += s.crossLen + padding * 2;\n });\n } else if (alignContent === 'space-between') {\n lastIdx = 0;\n const padding = Math.max(0, (cross.len - crossLen) / (mainList.length * 2 - 2));\n let anchorPos = 0;\n mainList.forEach((s, i) => {\n this.layoutCross(children, 'flex-start', cross, anchorPos, mianLenArray, mainList[i], lastIdx);\n lastIdx = s.idx + 1;\n anchorPos += s.crossLen + padding * 2;\n });\n }\n }\n\n // update children\n children.forEach((child, idx) => {\n child.addUpdateBoundTag();\n child.addUpdatePositionTag();\n child.clearUpdateLayoutTag();\n });\n\n p.addUpdateLayoutTag();\n // 更新父级元素的layout,直到存在clip\n if (!clip && !this.tempBounds.equals(p.AABBBounds)) {\n // 判断父元素包围盒是否发生变化\n this.tryLayout(p);\n }\n }\n\n layoutMain(\n p: IGroup,\n children: IGraphic[],\n justifyContent: IGroupAttribute['justifyContent'],\n main: { len: number; field: string },\n mianLenArray: { mainLen: number; crossLen: number }[],\n lastIdx: number,\n currSeg: { idx: number; mainLen: number; crossLen: number }\n ) {\n if (justifyContent === 'flex-start') {\n let pos = 0;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[main.field] = pos + getPadding(children[i], main.field);\n pos += mianLenArray[i].mainLen;\n }\n } else if (justifyContent === 'flex-end') {\n let pos = main.len;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n pos -= mianLenArray[i].mainLen;\n children[i].attribute[main.field] = pos + getPadding(children[i], main.field);\n }\n } else if (justifyContent === 'space-around') {\n if (currSeg.mainLen >= main.len) {\n let pos = 0;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[main.field] = pos + getPadding(children[i], main.field);\n pos += mianLenArray[i].mainLen;\n }\n } else {\n const size = currSeg.idx - lastIdx + 1;\n const padding = (main.len - currSeg.mainLen) / size / 2;\n let pos = padding;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[main.field] = pos + getPadding(children[i], main.field);\n pos += mianLenArray[i].mainLen + padding * 2;\n }\n }\n } else if (justifyContent === 'space-between') {\n if (currSeg.mainLen >= main.len) {\n let pos = 0;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[main.field] = pos + getPadding(children[i], main.field);\n pos += mianLenArray[i].mainLen;\n }\n } else {\n const size = currSeg.idx - lastIdx + 1;\n const padding = (main.len - currSeg.mainLen) / (size * 2 - 2);\n let pos = 0;\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[main.field] = pos + getPadding(children[i], main.field);\n pos += mianLenArray[i].mainLen + padding * 2;\n }\n }\n }\n }\n\n layoutCross(\n children: IGraphic[],\n alignItem: IGroupAttribute['alignItems'],\n cross: { len: number; field: string },\n anchorPos: number,\n lenArray: { mainLen: number; crossLen: number }[],\n currSeg: { idx: number; mainLen: number; crossLen: number },\n lastIdx: number\n ) {\n if (alignItem === 'flex-end') {\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[cross.field] = anchorPos - lenArray[i].crossLen + getPadding(children[i], cross.field);\n }\n } else if (alignItem === 'center') {\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[cross.field] =\n anchorPos - lenArray[i].crossLen / 2 + getPadding(children[i], cross.field);\n }\n } else {\n for (let i = lastIdx; i <= currSeg.idx; i++) {\n children[i].attribute[cross.field] = anchorPos + getPadding(children[i], cross.field);\n }\n }\n }\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n graphicService.hooks.onAttributeUpdate.tap(this.key, graphic => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n this.tryLayout(graphic);\n });\n graphicService.hooks.onSetStage.tap(this.key, graphic => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n this.tryLayout(graphic);\n });\n }\n deactivate(context: IPluginService): void {\n graphicService.hooks.onAttributeUpdate.taps = graphicService.hooks.onAttributeUpdate.taps.filter(item => {\n return item.name !== this.key;\n });\n graphicService.hooks.onSetStage.taps = graphicService.hooks.onSetStage.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n}\n\nfunction getPadding(graphic: IGraphic, field: string): number {\n if (!graphic.attribute.boundsPadding) {\n return 0;\n } else if (isNumber(graphic.attribute.boundsPadding)) {\n return graphic.attribute.boundsPadding as number;\n } else if (isArray(graphic.attribute.boundsPadding) && graphic.attribute.boundsPadding.length === 1) {\n return graphic.attribute.boundsPadding[0];\n }\n const paddingArray = parsePadding(graphic.attribute.boundsPadding);\n if (field === 'x') {\n return paddingArray[3];\n } else if (field === 'y') {\n return paddingArray[0];\n }\n return 0;\n}\n"]}
@@ -29,12 +29,14 @@ class HtmlAttributePlugin {
29
29
  }
30
30
  renderGroupHTML(group) {
31
31
  this.renderGraphicHTML(group), group.forEachChildren((g => {
32
- this.renderGraphicHTML(g);
32
+ g.isContainer ? this.renderGroupHTML(g) : this.renderGraphicHTML(g);
33
33
  }));
34
34
  }
35
35
  renderGraphicHTML(graphic) {
36
36
  const {html: html} = graphic.attribute;
37
- if (!html) return;
37
+ if (!html) return void (graphic.bindDom && graphic.bindDom.size && (graphic.bindDom.forEach((item => {
38
+ item.dom && item.dom.parentElement.removeChild(item.dom);
39
+ })), graphic.bindDom.clear()));
38
40
  const stage = graphic.stage;
39
41
  if (!stage) return;
40
42
  const {dom: dom, container: container, width: width, height: height, style: style, anchorType: anchorType = "boundsLeftTop"} = html;
@@ -58,7 +60,8 @@ class HtmlAttributePlugin {
58
60
  dom: nativeDom,
59
61
  container: container,
60
62
  wrapGroup: wrapGroup
61
- })), wrapGroup.style.pointerEvents = "none", wrapGroup.style.position || (wrapGroup.style.position = "absolute");
63
+ })), wrapGroup.style.pointerEvents = "none", wrapGroup.style.position || (wrapGroup.style.position = "absolute",
64
+ nativeContainer.style.position = "relative");
62
65
  let left = 0, top = 0;
63
66
  if ("position" === anchorType) {
64
67
  const matrix = graphic.transMatrix;
@@ -67,7 +70,8 @@ class HtmlAttributePlugin {
67
70
  const b = graphic.AABBBounds;
68
71
  left = b.x1, top = b.y1;
69
72
  }
70
- wrapGroup.style.left = `${left}px`, wrapGroup.style.top = `${top}px`;
73
+ const containerTL = application_1.application.global.getElementTopLeft(nativeContainer, !1), windowTL = stage.window.getTopLeft(!1), offsetX = left + windowTL.left - containerTL.left, offsetTop = top + windowTL.top - containerTL.top;
74
+ wrapGroup.style.left = `${offsetX}px`, wrapGroup.style.top = `${offsetTop}px`;
71
75
  }
72
76
  }
73
77
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/builtin-plugin/html-attribute-plugin.ts"],"names":[],"mappings":"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","file":"html-attribute-plugin.js","sourcesContent":["import { Generator } from '../../common/generator';\nimport type { IGraphic, IPlugin, IPluginService, IRenderService, IDrawContext, IGroup } from '../../interface';\nimport { application } from '../../application';\nimport { DefaultAttribute } from '../../graphic';\n\nexport class HtmlAttributePlugin implements IPlugin {\n name: 'HtmlAttributePlugin' = 'HtmlAttributePlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n context.stage.hooks.afterRender.tap(this.key, stage => {\n if (!(stage && stage === this.pluginService.stage)) {\n return;\n }\n\n this.drawHTML(context.stage.renderService);\n });\n }\n deactivate(context: IPluginService): void {\n context.stage.hooks.afterRender.taps = context.stage.hooks.afterRender.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n\n protected drawHTML(renderService: IRenderService) {\n if (application.global.env === 'browser') {\n renderService.renderTreeRoots\n .sort((a, b) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach(group => {\n this.renderGroupHTML(group as IGroup);\n });\n }\n }\n\n renderGroupHTML(group: IGroup) {\n this.renderGraphicHTML(group);\n group.forEachChildren((g: IGraphic) => {\n this.renderGraphicHTML(g);\n });\n }\n\n renderGraphicHTML(graphic: IGraphic) {\n const { html } = graphic.attribute;\n if (!html) {\n return;\n }\n const stage = graphic.stage;\n if (!stage) {\n return;\n }\n const { dom, container, width, height, style, anchorType = 'boundsLeftTop' } = html;\n if (!graphic.bindDom) {\n graphic.bindDom = new Map();\n }\n const lastDom = graphic.bindDom.get(dom);\n // 如果存在了(dom存在,且container没有变化),就跳过\n if (lastDom && !(container && container !== lastDom.container)) {\n return;\n }\n // 清除上一次的dom\n graphic.bindDom.forEach(({ wrapGroup }) => {\n application.global.removeDom(wrapGroup);\n });\n // 转化这个dom为nativeDOM\n let nativeDom: HTMLElement;\n if (typeof dom === 'string') {\n nativeDom = new DOMParser().parseFromString(dom, 'text/xml').firstChild as any;\n } else {\n nativeDom = dom;\n }\n // 获取container的dom,默认为window的container\n let nativeContainer;\n const _container =\n container || (stage.params.enableHtmlAttribute === true ? null : stage.params.enableHtmlAttribute);\n if (_container) {\n if (typeof _container === 'string') {\n nativeContainer = application.global.getElementById(_container);\n } else {\n nativeContainer = _container;\n }\n } else {\n // nativeContainer = application.global.getRootElement();\n nativeContainer = graphic.stage.window.getContainer();\n }\n // 创建wrapGroup\n const wrapGroup = application.global.createDom({ tagName: 'div', width, height, style, parent: nativeContainer });\n if (wrapGroup) {\n wrapGroup.appendChild(nativeDom);\n graphic.bindDom.set(dom, { dom: nativeDom, container, wrapGroup: wrapGroup as any });\n }\n // 事件穿透\n wrapGroup.style.pointerEvents = 'none';\n // 定位wrapGroup\n if (!wrapGroup.style.position) {\n wrapGroup.style.position = 'absolute';\n }\n let left: number = 0;\n let top: number = 0;\n if (anchorType === 'position') {\n const matrix = graphic.transMatrix;\n left = matrix.e;\n top = matrix.f;\n } else {\n const b = graphic.AABBBounds;\n left = b.x1;\n top = b.y1;\n }\n wrapGroup.style.left = `${left}px`;\n wrapGroup.style.top = `${top}px`;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/plugins/builtin-plugin/html-attribute-plugin.ts"],"names":[],"mappings":"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","file":"html-attribute-plugin.js","sourcesContent":["import { Generator } from '../../common/generator';\nimport type { IGraphic, IPlugin, IPluginService, IRenderService, IDrawContext, IGroup } from '../../interface';\nimport { application } from '../../application';\nimport { DefaultAttribute } from '../../graphic';\n\nexport class HtmlAttributePlugin implements IPlugin {\n name: 'HtmlAttributePlugin' = 'HtmlAttributePlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n context.stage.hooks.afterRender.tap(this.key, stage => {\n if (!(stage && stage === this.pluginService.stage)) {\n return;\n }\n\n this.drawHTML(context.stage.renderService);\n });\n }\n deactivate(context: IPluginService): void {\n context.stage.hooks.afterRender.taps = context.stage.hooks.afterRender.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n\n protected drawHTML(renderService: IRenderService) {\n if (application.global.env === 'browser') {\n renderService.renderTreeRoots\n .sort((a, b) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach(group => {\n this.renderGroupHTML(group as IGroup);\n });\n }\n }\n\n renderGroupHTML(group: IGroup) {\n this.renderGraphicHTML(group);\n group.forEachChildren((g: IGraphic) => {\n if (g.isContainer) {\n this.renderGroupHTML(g as IGroup);\n } else {\n this.renderGraphicHTML(g);\n }\n });\n }\n\n renderGraphicHTML(graphic: IGraphic) {\n const { html } = graphic.attribute;\n if (!html) {\n if (graphic.bindDom && graphic.bindDom.size) {\n // 删除dom\n graphic.bindDom.forEach(item => {\n item.dom && item.dom.parentElement.removeChild(item.dom);\n });\n graphic.bindDom.clear();\n }\n return;\n }\n const stage = graphic.stage;\n if (!stage) {\n return;\n }\n const { dom, container, width, height, style, anchorType = 'boundsLeftTop' } = html;\n if (!graphic.bindDom) {\n graphic.bindDom = new Map();\n }\n const lastDom = graphic.bindDom.get(dom);\n // 如果存在了(dom存在,且container没有变化),就跳过\n if (lastDom && !(container && container !== lastDom.container)) {\n return;\n }\n // 清除上一次的dom\n graphic.bindDom.forEach(({ wrapGroup }) => {\n application.global.removeDom(wrapGroup);\n });\n // 转化这个dom为nativeDOM\n let nativeDom: HTMLElement;\n if (typeof dom === 'string') {\n nativeDom = new DOMParser().parseFromString(dom, 'text/xml').firstChild as any;\n } else {\n nativeDom = dom;\n }\n // 获取container的dom,默认为window的container\n let nativeContainer;\n const _container =\n container || (stage.params.enableHtmlAttribute === true ? null : stage.params.enableHtmlAttribute);\n if (_container) {\n if (typeof _container === 'string') {\n nativeContainer = application.global.getElementById(_container);\n } else {\n nativeContainer = _container;\n }\n } else {\n // nativeContainer = application.global.getRootElement();\n nativeContainer = graphic.stage.window.getContainer();\n }\n // 创建wrapGroup\n const wrapGroup = application.global.createDom({ tagName: 'div', width, height, style, parent: nativeContainer });\n if (wrapGroup) {\n wrapGroup.appendChild(nativeDom);\n graphic.bindDom.set(dom, { dom: nativeDom, container, wrapGroup: wrapGroup as any });\n }\n // 事件穿透\n wrapGroup.style.pointerEvents = 'none';\n // 定位wrapGroup\n if (!wrapGroup.style.position) {\n wrapGroup.style.position = 'absolute';\n nativeContainer.style.position = 'relative';\n }\n let left: number = 0;\n let top: number = 0;\n if (anchorType === 'position') {\n const matrix = graphic.transMatrix;\n left = matrix.e;\n top = matrix.f;\n } else {\n const b = graphic.AABBBounds;\n left = b.x1;\n top = b.y1;\n }\n // 查看wrapGroup的位置\n // const wrapGroupTL = application.global.getElementTopLeft(wrapGroup, false);\n const containerTL = application.global.getElementTopLeft(nativeContainer, false);\n const windowTL = stage.window.getTopLeft(false);\n const offsetX = left + windowTL.left - containerTL.left;\n const offsetTop = top + windowTL.top - containerTL.top;\n // wrapGroup.style.transform = `translate(${offsetX}px, ${offsetTop}px)`;\n wrapGroup.style.left = `${offsetX}px`;\n wrapGroup.style.top = `${offsetTop}px`;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/builtin-plugin/incremental-auto-render-plugin.ts"],"names":[],"mappings":"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","file":"incremental-auto-render-plugin.js","sourcesContent":["import type { IGroup, IPlugin, IPluginService, IDrawContext } from '../../interface';\nimport { application } from '../../application';\nimport { Generator } from '../../common/generator';\n\nexport class IncrementalAutoRenderPlugin implements IPlugin {\n name: 'IncrementalAutoRenderPlugin' = 'IncrementalAutoRenderPlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n protected nextFrameRenderGroupSet: Set<IGroup> = new Set();\n protected willNextFrameRender: boolean = false;\n nextUserParams: Partial<IDrawContext> = {};\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n application.graphicService.hooks.onAddIncremental.tap(this.key, (graphic, group, stage) => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n if (graphic.stage === context.stage && graphic.stage != null) {\n this.nextUserParams.startAtId = group._uid;\n this.renderNextFrame(group);\n }\n });\n application.graphicService.hooks.onClearIncremental.tap(this.key, (group, stage) => {\n if (group.stage === context.stage && group.stage != null) {\n this.nextUserParams.startAtId = group._uid;\n this.nextUserParams.restartIncremental = true;\n this.renderNextFrame(group);\n }\n });\n }\n deactivate(context: IPluginService): void {\n application.graphicService.hooks.onAddIncremental.taps =\n application.graphicService.hooks.onAddIncremental.taps.filter(item => {\n return item.name !== this.key;\n });\n application.graphicService.hooks.onClearIncremental.taps =\n application.graphicService.hooks.onClearIncremental.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n\n renderNextFrame(group: IGroup): void {\n this.nextFrameRenderGroupSet.add(group);\n if (!this.willNextFrameRender) {\n this.willNextFrameRender = true;\n application.global.getRequestAnimationFrame()(() => {\n this._doRenderInThisFrame();\n this.willNextFrameRender = false;\n });\n }\n }\n\n _doRenderInThisFrame() {\n const stage = this.pluginService.stage;\n if (this.nextFrameRenderGroupSet.size) {\n this.nextFrameRenderGroupSet.forEach(group => {\n const layer = group.layer;\n if (!layer || !group.layer.subLayers) {\n return;\n }\n const subLayer = group.layer.subLayers.get(group._uid);\n if (!subLayer || !subLayer.drawContribution) {\n return;\n }\n subLayer.drawContribution.draw(stage.renderService, {\n x: stage.x,\n y: stage.y,\n width: layer.viewWidth,\n height: layer.viewHeight,\n stage,\n layer,\n // TODO: 多图层时不应该再用默认background\n clear: 'transparent',\n renderService: stage.renderService,\n updateBounds: false,\n startAtId: group._uid,\n context: subLayer.layer.getNativeHandler().getContext(),\n ...this.nextUserParams\n });\n });\n this.nextUserParams = {};\n this.nextFrameRenderGroupSet.clear();\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/plugins/builtin-plugin/incremental-auto-render-plugin.ts"],"names":[],"mappings":"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","file":"incremental-auto-render-plugin.js","sourcesContent":["import type { IGroup, IPlugin, IPluginService, IDrawContext } from '../../interface';\nimport { application } from '../../application';\nimport { Generator } from '../../common/generator';\n\nexport class IncrementalAutoRenderPlugin implements IPlugin {\n name: 'IncrementalAutoRenderPlugin' = 'IncrementalAutoRenderPlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n protected nextFrameRenderGroupSet: Set<IGroup> = new Set();\n protected willNextFrameRender: boolean = false;\n nextUserParams: Partial<IDrawContext> = {};\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n application.graphicService.hooks.onAddIncremental.tap(this.key, (graphic, group, stage) => {\n if (graphic.glyphHost) {\n graphic = graphic.glyphHost;\n }\n if (graphic.stage === context.stage && graphic.stage != null) {\n this.nextUserParams.startAtId = group._uid;\n this.renderNextFrame(group);\n }\n });\n application.graphicService.hooks.onClearIncremental.tap(this.key, (group, stage) => {\n if (group.stage === context.stage && group.stage != null) {\n this.nextUserParams.startAtId = group._uid;\n this.nextUserParams.restartIncremental = true;\n this.renderNextFrame(group);\n }\n });\n }\n deactivate(context: IPluginService): void {\n application.graphicService.hooks.onAddIncremental.taps =\n application.graphicService.hooks.onAddIncremental.taps.filter(item => {\n return item.name !== this.key;\n });\n application.graphicService.hooks.onClearIncremental.taps =\n application.graphicService.hooks.onClearIncremental.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n\n renderNextFrame(group: IGroup): void {\n this.nextFrameRenderGroupSet.add(group);\n if (!this.willNextFrameRender) {\n this.willNextFrameRender = true;\n application.global.getRequestAnimationFrame()(() => {\n this._doRenderInThisFrame();\n this.willNextFrameRender = false;\n });\n }\n }\n\n _doRenderInThisFrame() {\n const stage = this.pluginService.stage;\n if (this.nextFrameRenderGroupSet.size) {\n this.nextFrameRenderGroupSet.forEach(group => {\n const layer = group.layer;\n if (!layer || !group.layer.subLayers) {\n return;\n }\n const subLayer = group.layer.subLayers.get(group._uid);\n if (!subLayer || !subLayer.drawContribution) {\n return;\n }\n subLayer.drawContribution.draw(stage.renderService, {\n x: stage.x,\n y: stage.y,\n width: layer.viewWidth,\n height: layer.viewHeight,\n stage,\n layer,\n // TODO: 多图层时不应该再用默认background\n clear: 'transparent',\n renderService: stage.renderService,\n updateBounds: false,\n startAtId: group._uid,\n context: subLayer.layer.getNativeHandler().getContext(),\n ...this.nextUserParams\n });\n });\n this.nextUserParams = {};\n this.nextFrameRenderGroupSet.clear();\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/builtin-plugin/poptip-plugin.ts"],"names":[],"mappings":"","file":"poptip-plugin.js","sourcesContent":["// import type { FederatedPointerEvent } from '../../event';\n// import { Generator } from '../../common/generator';\n// import type { IGraphic, IPlugin, IPluginService } from '../../interface';\n\n// export class PopTipPlugin implements IPlugin {\n// name: 'PopTipPlugin' = 'PopTipPlugin';\n// activeEvent: 'onRegister' = 'onRegister';\n// pluginService: IPluginService;\n// _uid: number = Generator.GenAutoIncrementId();\n// key: string = this.name + this._uid;\n// activeGraphic: IGraphic;\n\n// activate(context: IPluginService): void {\n// this.pluginService = context;\n// const { stage } = this.pluginService;\n\n// stage.addEventListener('pointerover', this.poptip);\n// }\n// poptip = (e: FederatedPointerEvent) => {\n// const graphic = e.target as any;\n// if (graphic.isContainer || !graphic.attribute || graphic === this.activeGraphic) {\n// this.unpoptip(e);\n// return;\n// }\n// const { poptip } = graphic.attribute;\n// if (poptip) {\n// graphic._showPoptip = true;\n// }\n\n// if (this.activeGraphic) {\n// this.activeGraphic._showPoptip = false;\n// }\n// console.log(graphic)\n// this.setActiveGraphic(graphic, true);\n// }\n\n// unpoptip = (e: FederatedPointerEvent) => {\n// if (!this.activeGraphic) {\n// return;\n// }\n// this.activeGraphic._showPoptip = false;\n// this.setActiveGraphic(null, true);\n// }\n\n// setActiveGraphic(graphic: any | null, rerender?: boolean) {\n// this.activeGraphic = graphic;\n// // 触发重绘\n// this.pluginService.stage.renderNextFrame();\n// }\n\n// deactivate(context: IPluginService): void {\n// const { stage } = this.pluginService;\n// stage.removeEventListener('pointerover', this.poptip);\n// }\n// }\n"]}
1
+ {"version":3,"sources":["../src/plugins/builtin-plugin/poptip-plugin.ts"],"names":[],"mappings":"","file":"poptip-plugin.js","sourcesContent":["// import type { FederatedPointerEvent } from '../../event';\n// import { Generator } from '../../common/generator';\n// import type { IGraphic, IPlugin, IPluginService } from '../../interface';\n\n// export class PopTipPlugin implements IPlugin {\n// name: 'PopTipPlugin' = 'PopTipPlugin';\n// activeEvent: 'onRegister' = 'onRegister';\n// pluginService: IPluginService;\n// _uid: number = Generator.GenAutoIncrementId();\n// key: string = this.name + this._uid;\n// activeGraphic: IGraphic;\n\n// activate(context: IPluginService): void {\n// this.pluginService = context;\n// const { stage } = this.pluginService;\n\n// stage.addEventListener('pointerover', this.poptip);\n// }\n// poptip = (e: FederatedPointerEvent) => {\n// const graphic = e.target as any;\n// if (graphic.isContainer || !graphic.attribute || graphic === this.activeGraphic) {\n// this.unpoptip(e);\n// return;\n// }\n// const { poptip } = graphic.attribute;\n// if (poptip) {\n// graphic._showPoptip = true;\n// }\n\n// if (this.activeGraphic) {\n// this.activeGraphic._showPoptip = false;\n// }\n// console.log(graphic)\n// this.setActiveGraphic(graphic, true);\n// }\n\n// unpoptip = (e: FederatedPointerEvent) => {\n// if (!this.activeGraphic) {\n// return;\n// }\n// this.activeGraphic._showPoptip = false;\n// this.setActiveGraphic(null, true);\n// }\n\n// setActiveGraphic(graphic: any | null, rerender?: boolean) {\n// this.activeGraphic = graphic;\n// // 触发重绘\n// this.pluginService.stage.renderNextFrame();\n// }\n\n// deactivate(context: IPluginService): void {\n// const { stage } = this.pluginService;\n// stage.removeEventListener('pointerover', this.poptip);\n// }\n// }\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC","file":"constants.js","sourcesContent":["export const AutoEnablePlugins = Symbol.for('AutoEnablePlugins');\nexport const PluginService = Symbol.for('PluginService');\n"]}
1
+ {"version":3,"sources":["../src/plugins/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC","file":"constants.js","sourcesContent":["export const AutoEnablePlugins = Symbol.for('AutoEnablePlugins');\nexport const PluginService = Symbol.for('PluginService');\n"]}
@@ -8,6 +8,6 @@ const inversify_1 = require("inversify"), constants_1 = require("./constants"),
8
8
 
9
9
  exports.default = new inversify_1.ContainerModule((bind => {
10
10
  bind(plugin_service_1.DefaultPluginService).toSelf(), bind(constants_1.PluginService).toService(plugin_service_1.DefaultPluginService),
11
- (0, contribution_provider_1.bindContributionProvider)(bind, constants_2.AutoEnablePlugins);
11
+ (0, contribution_provider_1.bindContributionProviderNoSingletonScope)(bind, constants_2.AutoEnablePlugins);
12
12
  }));
13
13
  //# sourceMappingURL=plugin-modules.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/plugin-modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,2CAA4C;AAC5C,qDAAwD;AACxD,2EAA2E;AAC3E,2CAAgD;AAEhD,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,qCAAoB,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,IAAI,CAAC,yBAAa,CAAC,CAAC,SAAS,CAAC,qCAAoB,CAAC,CAAC;IAGpD,IAAA,gDAAwB,EAAC,IAAI,EAAE,6BAAiB,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC","file":"plugin-modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { PluginService } from './constants';\nimport { DefaultPluginService } from './plugin-service';\nimport { bindContributionProvider } from '../common/contribution-provider';\nimport { AutoEnablePlugins } from './constants';\n\nexport default new ContainerModule(bind => {\n bind(DefaultPluginService).toSelf();\n bind(PluginService).toService(DefaultPluginService);\n\n // image 渲染器注入contributions\n bindContributionProvider(bind, AutoEnablePlugins);\n});\n"]}
1
+ {"version":3,"sources":["../src/plugins/plugin-modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,2CAA4C;AAC5C,qDAAwD;AACxD,2EAA2F;AAC3F,2CAAgD;AAEhD,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,qCAAoB,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,IAAI,CAAC,yBAAa,CAAC,CAAC,SAAS,CAAC,qCAAoB,CAAC,CAAC;IAGpD,IAAA,gEAAwC,EAAC,IAAI,EAAE,6BAAiB,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC","file":"plugin-modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { PluginService } from './constants';\nimport { DefaultPluginService } from './plugin-service';\nimport { bindContributionProviderNoSingletonScope } from '../common/contribution-provider';\nimport { AutoEnablePlugins } from './constants';\n\nexport default new ContainerModule(bind => {\n bind(DefaultPluginService).toSelf();\n bind(PluginService).toService(DefaultPluginService);\n\n // image 渲染器注入contributions\n bindContributionProviderNoSingletonScope(bind, AutoEnablePlugins);\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/plugin-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAsD;AAEtD,2EAAuE;AACvE,2CAAgD;AAChD,4CAAyC;AAGlC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAM/B,YAGqB,iBAAiD;QAAjD,sBAAiB,GAAjB,iBAAiB,CAAgC;QAEpE,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,MAAiC;QACrD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAGpB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAC9B,IAAI,UAAU,IAAI,qBAAS,CAAC,OAAO,CAAC,6BAAiB,CAAC,EAAE;YACtD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpD,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAClB;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC5B,MAAM,GAAG,GAAc,EAAE,CAAC;QAC1B,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,MAAe;QACtB,IAAI,MAAM,CAAC,WAAW,KAAK,mBAAmB,EAAE;YAC9C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3C;aAAM,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,EAAE;YAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB;IACH,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;CACF,CAAA;AAjEY,oBAAoB;IADhC,IAAA,sBAAU,GAAE;IAQR,WAAA,IAAA,kBAAM,EAAC,4CAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,iBAAK,EAAC,6BAAiB,CAAC,CAAA;;GARhB,oBAAoB,CAiEhC;AAjEY,oDAAoB","file":"plugin-service.js","sourcesContent":["import { injectable, inject, named } from 'inversify';\nimport type { IContributionProvider, IPlugin, IPluginService, IStage } from '../interface';\nimport { ContributionProvider } from '../common/contribution-provider';\nimport { AutoEnablePlugins } from './constants';\nimport { container } from '../container';\n\n@injectable()\nexport class DefaultPluginService implements IPluginService {\n declare onStartupFinishedPlugin: IPlugin[];\n declare onRegisterPlugin: IPlugin[];\n declare stage: IStage;\n declare actived: boolean;\n\n constructor(\n @inject(ContributionProvider)\n @named(AutoEnablePlugins)\n protected readonly autoEnablePlugins: IContributionProvider<IPlugin>\n ) {\n this.onStartupFinishedPlugin = [];\n this.onRegisterPlugin = [];\n this.actived = false;\n }\n\n active(stage: IStage, params: { pluginList?: string[] }) {\n this.stage = stage;\n this.actived = true;\n\n // 启动插件\n const { pluginList } = params;\n if (pluginList && container.isBound(AutoEnablePlugins)) {\n this.autoEnablePlugins.getContributions().forEach(p => {\n if (pluginList.includes(p.name)) {\n this.register(p);\n }\n });\n }\n }\n\n findPluginsByName(name: string): IPlugin[] {\n const arr: IPlugin[] = [];\n this.onStartupFinishedPlugin.forEach(plugin => {\n if (plugin.name === name) {\n arr.push(plugin);\n }\n });\n this.onRegisterPlugin.forEach(plugin => {\n if (plugin.name === name) {\n arr.push(plugin);\n }\n });\n return arr;\n }\n\n register(plugin: IPlugin) {\n if (plugin.activeEvent === 'onStartupFinished') {\n this.onStartupFinishedPlugin.push(plugin);\n } else if (plugin.activeEvent === 'onRegister') {\n this.onRegisterPlugin.push(plugin);\n plugin.activate(this);\n }\n }\n\n release(...params: any): void {\n this.onStartupFinishedPlugin.forEach(plugin => {\n plugin.deactivate(this);\n });\n this.onStartupFinishedPlugin = [];\n this.onRegisterPlugin.forEach(plugin => {\n plugin.deactivate(this);\n });\n this.onRegisterPlugin = [];\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/plugins/plugin-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAsD;AAEtD,2EAAuE;AACvE,2CAAgD;AAChD,4CAAyC;AAGlC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAM/B,YAGqB,iBAAiD;QAAjD,sBAAiB,GAAjB,iBAAiB,CAAgC;QAEpE,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,MAAiC;QACrD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAGpB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAC9B,IAAI,UAAU,IAAI,qBAAS,CAAC,OAAO,CAAC,6BAAiB,CAAC,EAAE;YACtD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpD,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAClB;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC5B,MAAM,GAAG,GAAc,EAAE,CAAC;QAC1B,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,MAAe;QACtB,IAAI,MAAM,CAAC,WAAW,KAAK,mBAAmB,EAAE;YAC9C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3C;aAAM,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,EAAE;YAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB;IACH,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;CACF,CAAA;AAjEY,oBAAoB;IADhC,IAAA,sBAAU,GAAE;IAQR,WAAA,IAAA,kBAAM,EAAC,4CAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,iBAAK,EAAC,6BAAiB,CAAC,CAAA;;GARhB,oBAAoB,CAiEhC;AAjEY,oDAAoB","file":"plugin-service.js","sourcesContent":["import { injectable, inject, named } from 'inversify';\nimport type { IContributionProvider, IPlugin, IPluginService, IStage } from '../interface';\nimport { ContributionProvider } from '../common/contribution-provider';\nimport { AutoEnablePlugins } from './constants';\nimport { container } from '../container';\n\n@injectable()\nexport class DefaultPluginService implements IPluginService {\n declare onStartupFinishedPlugin: IPlugin[];\n declare onRegisterPlugin: IPlugin[];\n declare stage: IStage;\n declare actived: boolean;\n\n constructor(\n @inject(ContributionProvider)\n @named(AutoEnablePlugins)\n protected readonly autoEnablePlugins: IContributionProvider<IPlugin>\n ) {\n this.onStartupFinishedPlugin = [];\n this.onRegisterPlugin = [];\n this.actived = false;\n }\n\n active(stage: IStage, params: { pluginList?: string[] }) {\n this.stage = stage;\n this.actived = true;\n\n // 启动插件\n const { pluginList } = params;\n if (pluginList && container.isBound(AutoEnablePlugins)) {\n this.autoEnablePlugins.getContributions().forEach(p => {\n if (pluginList.includes(p.name)) {\n this.register(p);\n }\n });\n }\n }\n\n findPluginsByName(name: string): IPlugin[] {\n const arr: IPlugin[] = [];\n this.onStartupFinishedPlugin.forEach(plugin => {\n if (plugin.name === name) {\n arr.push(plugin);\n }\n });\n this.onRegisterPlugin.forEach(plugin => {\n if (plugin.name === name) {\n arr.push(plugin);\n }\n });\n return arr;\n }\n\n register(plugin: IPlugin) {\n if (plugin.activeEvent === 'onStartupFinished') {\n this.onStartupFinishedPlugin.push(plugin);\n } else if (plugin.activeEvent === 'onRegister') {\n this.onRegisterPlugin.push(plugin);\n plugin.activate(this);\n }\n }\n\n release(...params: any): void {\n this.onStartupFinishedPlugin.forEach(plugin => {\n plugin.deactivate(this);\n });\n this.onStartupFinishedPlugin = [];\n this.onRegisterPlugin.forEach(plugin => {\n plugin.deactivate(this);\n });\n this.onRegisterPlugin = [];\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/render/contributions/modules.ts"],"names":[],"mappings":";;;;;AACA,6DAA2C;AAE3C,SAAwB,IAAI,CAAC,SAAoB;IAC/C,SAAS,CAAC,IAAI,CAAC,gBAAY,CAAC,CAAC;AAC/B,CAAC;AAFD,uBAEC","file":"modules.js","sourcesContent":["import { Container } from 'inversify';\nimport renderModule from './render/module';\n\nexport default function load(container: Container) {\n container.load(renderModule);\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/modules.ts"],"names":[],"mappings":";;;;;AACA,6DAA2C;AAE3C,SAAwB,IAAI,CAAC,SAAoB;IAC/C,SAAS,CAAC,IAAI,CAAC,gBAAY,CAAC,CAAC;AAC/B,CAAC;AAFD,uBAEC","file":"modules.js","sourcesContent":["import { Container } from 'inversify';\nimport renderModule from './render/module';\n\nexport default function load(container: Container) {\n container.load(renderModule);\n}\n"]}