@visactor/vrender-core 0.23.0-alpha.3 → 1.0.0-alpha.10

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 (382) hide show
  1. package/cjs/animate/config.d.ts +0 -1
  2. package/cjs/animate/config.js +1 -5
  3. package/cjs/animate/config.js.map +1 -1
  4. package/cjs/application.d.ts +2 -1
  5. package/cjs/application.js.map +1 -1
  6. package/cjs/color-string/interpolate.js +5 -2
  7. package/cjs/color-string/interpolate.js.map +1 -1
  8. package/cjs/common/canvas-utils.js +6 -3
  9. package/cjs/common/canvas-utils.js.map +1 -1
  10. package/cjs/common/custom-path2d.js +2 -2
  11. package/cjs/common/custom-path2d.js.map +1 -1
  12. package/cjs/common/diff.d.ts +1 -0
  13. package/cjs/common/diff.js +19 -0
  14. package/cjs/common/diff.js.map +1 -0
  15. package/cjs/common/enums.d.ts +0 -16
  16. package/cjs/common/enums.js +4 -12
  17. package/cjs/common/enums.js.map +1 -1
  18. package/cjs/common/morphing-utils.js +32 -124
  19. package/cjs/common/morphing-utils.js.map +1 -1
  20. package/cjs/common/segment/index.d.ts +1 -0
  21. package/cjs/common/segment/index.js +4 -1
  22. package/cjs/common/segment/index.js.map +1 -1
  23. package/cjs/common/segment/step.d.ts +6 -0
  24. package/cjs/common/segment/step.js +19 -2
  25. package/cjs/common/segment/step.js.map +1 -1
  26. package/cjs/common/shape/arc.d.ts +1 -1
  27. package/cjs/common/shape/arc.js +7 -3
  28. package/cjs/common/shape/arc.js.map +1 -1
  29. package/cjs/common/split-path.js +2 -3
  30. package/cjs/common/split-path.js.map +1 -1
  31. package/cjs/common/store.js +2 -1
  32. package/cjs/common/utils.d.ts +0 -2
  33. package/cjs/common/utils.js +4 -8
  34. package/cjs/common/utils.js.map +1 -1
  35. package/cjs/core/global-module.js +2 -0
  36. package/cjs/core/stage.d.ts +5 -2
  37. package/cjs/core/stage.js +19 -10
  38. package/cjs/core/stage.js.map +1 -1
  39. package/cjs/event/event-system.js +6 -7
  40. package/cjs/event/event-system.js.map +1 -1
  41. package/cjs/event/federated-event/base-event.js +1 -1
  42. package/cjs/event/federated-event/base-event.js.map +1 -1
  43. package/cjs/graphic/arc.d.ts +1 -2
  44. package/cjs/graphic/arc.js +4 -3
  45. package/cjs/graphic/arc.js.map +1 -1
  46. package/cjs/graphic/area.d.ts +1 -2
  47. package/cjs/graphic/area.js +5 -2
  48. package/cjs/graphic/area.js.map +1 -1
  49. package/cjs/graphic/circle.d.ts +1 -2
  50. package/cjs/graphic/circle.js +7 -3
  51. package/cjs/graphic/circle.js.map +1 -1
  52. package/cjs/graphic/config.d.ts +2 -1
  53. package/cjs/graphic/config.js +10 -3
  54. package/cjs/graphic/config.js.map +1 -1
  55. package/cjs/graphic/constants.d.ts +1 -0
  56. package/cjs/graphic/constants.js +4 -3
  57. package/cjs/graphic/constants.js.map +1 -1
  58. package/cjs/graphic/graphic-service/graphic-module.js +1 -2
  59. package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
  60. package/cjs/graphic/graphic.d.ts +10 -10
  61. package/cjs/graphic/graphic.js +42 -98
  62. package/cjs/graphic/graphic.js.map +1 -1
  63. package/cjs/graphic/group.js +14 -7
  64. package/cjs/graphic/group.js.map +1 -1
  65. package/cjs/graphic/image.js +2 -1
  66. package/cjs/graphic/image.js.map +1 -1
  67. package/cjs/graphic/index.d.ts +1 -0
  68. package/cjs/graphic/index.js +8 -8
  69. package/cjs/graphic/index.js.map +1 -1
  70. package/cjs/graphic/line.d.ts +1 -2
  71. package/cjs/graphic/line.js +7 -2
  72. package/cjs/graphic/line.js.map +1 -1
  73. package/cjs/graphic/path.js +2 -1
  74. package/cjs/graphic/path.js.map +1 -1
  75. package/cjs/graphic/polygon.js +2 -1
  76. package/cjs/graphic/polygon.js.map +1 -1
  77. package/cjs/graphic/rect.js +7 -3
  78. package/cjs/graphic/rect.js.map +1 -1
  79. package/cjs/graphic/richtext/icon.d.ts +1 -1
  80. package/cjs/graphic/richtext/icon.js.map +1 -1
  81. package/cjs/graphic/richtext/paragraph.d.ts +3 -0
  82. package/cjs/graphic/richtext/paragraph.js +14 -10
  83. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  84. package/cjs/graphic/richtext/utils.js +12 -2
  85. package/cjs/graphic/richtext/utils.js.map +1 -1
  86. package/cjs/graphic/richtext.d.ts +3 -0
  87. package/cjs/graphic/richtext.js +3 -2
  88. package/cjs/graphic/richtext.js.map +1 -1
  89. package/cjs/graphic/star.d.ts +52 -0
  90. package/cjs/graphic/star.js +78 -0
  91. package/cjs/graphic/star.js.map +1 -0
  92. package/cjs/graphic/symbol.js +3 -1
  93. package/cjs/graphic/symbol.js.map +1 -1
  94. package/cjs/graphic/text.js +1 -0
  95. package/cjs/graphic/text.js.map +1 -1
  96. package/cjs/graphic/theme.js +2 -0
  97. package/cjs/graphic/theme.js.map +1 -1
  98. package/cjs/index.d.ts +3 -0
  99. package/cjs/index.js +14 -12
  100. package/cjs/index.js.map +1 -1
  101. package/cjs/interface/animate.d.ts +1 -165
  102. package/cjs/interface/animate.js +1 -4
  103. package/cjs/interface/animate.js.map +1 -1
  104. package/cjs/interface/animation/animate.d.ts +117 -0
  105. package/cjs/interface/animation/animate.js +10 -0
  106. package/cjs/interface/animation/animate.js.map +1 -0
  107. package/cjs/interface/animation/easing.d.ts +3 -0
  108. package/cjs/interface/animation/easing.js +6 -0
  109. package/cjs/interface/animation/easing.js.map +1 -0
  110. package/cjs/interface/animation/index.d.ts +5 -0
  111. package/cjs/interface/animation/index.js +23 -0
  112. package/cjs/interface/animation/index.js.map +1 -0
  113. package/cjs/interface/animation/ticker.d.ts +39 -0
  114. package/cjs/interface/animation/ticker.js +11 -0
  115. package/cjs/interface/animation/ticker.js.map +1 -0
  116. package/cjs/interface/animation/timeline.d.ts +17 -0
  117. package/cjs/interface/animation/timeline.js +6 -0
  118. package/cjs/interface/animation/timeline.js.map +1 -0
  119. package/cjs/interface/animation/type.d.ts +13 -0
  120. package/cjs/interface/animation/type.js +15 -0
  121. package/cjs/interface/animation/type.js.map +1 -0
  122. package/cjs/interface/common.d.ts +1 -1
  123. package/cjs/interface/common.js.map +1 -1
  124. package/cjs/interface/contribution.d.ts +2 -0
  125. package/cjs/interface/contribution.js.map +1 -1
  126. package/cjs/interface/graphic/index.d.ts +1 -0
  127. package/cjs/interface/graphic/index.js +3 -2
  128. package/cjs/interface/graphic/index.js.map +1 -1
  129. package/cjs/interface/graphic/richText.d.ts +3 -0
  130. package/cjs/interface/graphic/richText.js.map +1 -1
  131. package/cjs/interface/graphic/star.d.ts +12 -0
  132. package/cjs/interface/graphic/star.js +6 -0
  133. package/cjs/interface/graphic/star.js.map +1 -0
  134. package/cjs/interface/graphic/theme.d.ts +3 -0
  135. package/cjs/interface/graphic/theme.js.map +1 -1
  136. package/cjs/interface/graphic.d.ts +12 -1
  137. package/cjs/interface/graphic.js.map +1 -1
  138. package/cjs/interface/index.d.ts +1 -1
  139. package/cjs/interface/index.js +1 -1
  140. package/cjs/interface/index.js.map +1 -1
  141. package/cjs/interface/render.d.ts +1 -0
  142. package/cjs/interface/render.js.map +1 -1
  143. package/cjs/interface/stage.d.ts +3 -1
  144. package/cjs/interface/stage.js.map +1 -1
  145. package/cjs/modules.d.ts +2 -1
  146. package/cjs/modules.js +4 -3
  147. package/cjs/modules.js.map +1 -1
  148. package/cjs/plugins/builtin-plugin/auto-render-plugin.js +9 -8
  149. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  150. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +14 -11
  151. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  152. package/cjs/plugins/builtin-plugin/edit-module.js +11 -8
  153. package/cjs/plugins/builtin-plugin/edit-module.js.map +1 -1
  154. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +13 -10
  155. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  156. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +0 -1
  157. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  158. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js +8 -5
  159. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  160. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js +1 -1
  161. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  162. package/cjs/register/register-star.d.ts +1 -0
  163. package/cjs/register/register-star.js +14 -0
  164. package/cjs/register/register-star.js.map +1 -0
  165. package/cjs/render/contributions/render/area-render.js +2 -2
  166. package/cjs/render/contributions/render/area-render.js.map +1 -1
  167. package/cjs/render/contributions/render/contributions/constants.d.ts +1 -0
  168. package/cjs/render/contributions/render/contributions/constants.js +3 -2
  169. package/cjs/render/contributions/render/contributions/constants.js.map +1 -1
  170. package/cjs/render/contributions/render/contributions/index.d.ts +1 -0
  171. package/cjs/render/contributions/render/contributions/index.js +2 -2
  172. package/cjs/render/contributions/render/contributions/index.js.map +1 -1
  173. package/cjs/render/contributions/render/contributions/star-contribution-render.d.ts +2 -0
  174. package/cjs/render/contributions/render/contributions/star-contribution-render.js +11 -0
  175. package/cjs/render/contributions/render/contributions/star-contribution-render.js.map +1 -0
  176. package/cjs/render/contributions/render/draw-contribution.js +1 -1
  177. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  178. package/cjs/render/contributions/render/line-render.js +1 -1
  179. package/cjs/render/contributions/render/line-render.js.map +1 -1
  180. package/cjs/render/contributions/render/star-module.d.ts +2 -0
  181. package/cjs/render/contributions/render/star-module.js +15 -0
  182. package/cjs/render/contributions/render/star-module.js.map +1 -0
  183. package/cjs/render/contributions/render/star-render.d.ts +10 -0
  184. package/cjs/render/contributions/render/star-render.js +54 -0
  185. package/cjs/render/contributions/render/star-render.js.map +1 -0
  186. package/cjs/render/contributions/render/symbol.d.ts +1 -0
  187. package/cjs/render/contributions/render/symbol.js +2 -2
  188. package/cjs/render/contributions/render/symbol.js.map +1 -1
  189. package/cjs/render/render-service.d.ts +1 -1
  190. package/cjs/render/render-service.js.map +1 -1
  191. package/dist/index.es.js +12578 -12435
  192. package/es/animate/config.d.ts +0 -1
  193. package/es/animate/config.js +0 -5
  194. package/es/animate/config.js.map +1 -1
  195. package/es/application.d.ts +2 -1
  196. package/es/application.js.map +1 -1
  197. package/es/color-string/interpolate.js +4 -1
  198. package/es/color-string/interpolate.js.map +1 -1
  199. package/es/common/canvas-utils.js +6 -3
  200. package/es/common/canvas-utils.js.map +1 -1
  201. package/es/common/custom-path2d.js +2 -2
  202. package/es/common/custom-path2d.js.map +1 -1
  203. package/es/common/diff.d.ts +1 -0
  204. package/es/common/diff.js +11 -0
  205. package/es/common/diff.js.map +1 -0
  206. package/es/common/enums.d.ts +0 -16
  207. package/es/common/enums.js +2 -21
  208. package/es/common/enums.js.map +1 -1
  209. package/es/common/morphing-utils.js +29 -124
  210. package/es/common/morphing-utils.js.map +1 -1
  211. package/es/common/segment/index.d.ts +1 -0
  212. package/es/common/segment/index.js +6 -1
  213. package/es/common/segment/index.js.map +1 -1
  214. package/es/common/segment/step.d.ts +6 -0
  215. package/es/common/segment/step.js +13 -0
  216. package/es/common/segment/step.js.map +1 -1
  217. package/es/common/shape/arc.d.ts +1 -1
  218. package/es/common/shape/arc.js +7 -3
  219. package/es/common/shape/arc.js.map +1 -1
  220. package/es/common/split-path.js +2 -3
  221. package/es/common/split-path.js.map +1 -1
  222. package/es/common/store.js +2 -1
  223. package/es/common/utils.d.ts +0 -2
  224. package/es/common/utils.js +0 -4
  225. package/es/common/utils.js.map +1 -1
  226. package/es/core/global-module.js +2 -0
  227. package/es/core/stage.d.ts +5 -2
  228. package/es/core/stage.js +20 -9
  229. package/es/core/stage.js.map +1 -1
  230. package/es/event/event-system.js +6 -7
  231. package/es/event/event-system.js.map +1 -1
  232. package/es/event/federated-event/base-event.js +1 -1
  233. package/es/event/federated-event/base-event.js.map +1 -1
  234. package/es/graphic/arc.d.ts +1 -2
  235. package/es/graphic/arc.js +4 -3
  236. package/es/graphic/arc.js.map +1 -1
  237. package/es/graphic/area.d.ts +1 -2
  238. package/es/graphic/area.js +5 -2
  239. package/es/graphic/area.js.map +1 -1
  240. package/es/graphic/circle.d.ts +1 -2
  241. package/es/graphic/circle.js +6 -3
  242. package/es/graphic/circle.js.map +1 -1
  243. package/es/graphic/config.d.ts +2 -1
  244. package/es/graphic/config.js +11 -2
  245. package/es/graphic/config.js.map +1 -1
  246. package/es/graphic/constants.d.ts +1 -0
  247. package/es/graphic/constants.js +2 -0
  248. package/es/graphic/constants.js.map +1 -1
  249. package/es/graphic/graphic-service/graphic-module.js +1 -1
  250. package/es/graphic/graphic-service/graphic-module.js.map +1 -1
  251. package/es/graphic/graphic.d.ts +10 -10
  252. package/es/graphic/graphic.js +44 -100
  253. package/es/graphic/graphic.js.map +1 -1
  254. package/es/graphic/group.js +15 -8
  255. package/es/graphic/group.js.map +1 -1
  256. package/es/graphic/image.js +2 -1
  257. package/es/graphic/image.js.map +1 -1
  258. package/es/graphic/index.d.ts +1 -0
  259. package/es/graphic/index.js +2 -0
  260. package/es/graphic/index.js.map +1 -1
  261. package/es/graphic/line.d.ts +1 -2
  262. package/es/graphic/line.js +7 -2
  263. package/es/graphic/line.js.map +1 -1
  264. package/es/graphic/path.js +2 -1
  265. package/es/graphic/path.js.map +1 -1
  266. package/es/graphic/polygon.js +2 -1
  267. package/es/graphic/polygon.js.map +1 -1
  268. package/es/graphic/rect.js +7 -3
  269. package/es/graphic/rect.js.map +1 -1
  270. package/es/graphic/richtext/icon.d.ts +1 -1
  271. package/es/graphic/richtext/icon.js.map +1 -1
  272. package/es/graphic/richtext/paragraph.d.ts +3 -0
  273. package/es/graphic/richtext/paragraph.js +14 -10
  274. package/es/graphic/richtext/paragraph.js.map +1 -1
  275. package/es/graphic/richtext/utils.js +12 -2
  276. package/es/graphic/richtext/utils.js.map +1 -1
  277. package/es/graphic/richtext.d.ts +3 -0
  278. package/es/graphic/richtext.js +3 -2
  279. package/es/graphic/richtext.js.map +1 -1
  280. package/es/graphic/star.d.ts +52 -0
  281. package/es/graphic/star.js +82 -0
  282. package/es/graphic/star.js.map +1 -0
  283. package/es/graphic/symbol.js +3 -1
  284. package/es/graphic/symbol.js.map +1 -1
  285. package/es/graphic/text.js +1 -0
  286. package/es/graphic/text.js.map +1 -1
  287. package/es/graphic/theme.js +3 -1
  288. package/es/graphic/theme.js.map +1 -1
  289. package/es/index.d.ts +3 -0
  290. package/es/index.js +6 -0
  291. package/es/index.js.map +1 -1
  292. package/es/interface/animate.d.ts +1 -165
  293. package/es/interface/animate.js +2 -1
  294. package/es/interface/animate.js.map +1 -1
  295. package/es/interface/animation/animate.d.ts +117 -0
  296. package/es/interface/animation/animate.js +6 -0
  297. package/es/interface/animation/animate.js.map +1 -0
  298. package/es/interface/animation/easing.d.ts +3 -0
  299. package/es/interface/animation/easing.js +2 -0
  300. package/es/interface/animation/easing.js.map +1 -0
  301. package/es/interface/animation/index.d.ts +5 -0
  302. package/es/interface/animation/index.js +10 -0
  303. package/es/interface/animation/index.js.map +1 -0
  304. package/es/interface/animation/ticker.d.ts +39 -0
  305. package/es/interface/animation/ticker.js +7 -0
  306. package/es/interface/animation/ticker.js.map +1 -0
  307. package/es/interface/animation/timeline.d.ts +17 -0
  308. package/es/interface/animation/timeline.js +2 -0
  309. package/es/interface/animation/timeline.js.map +1 -0
  310. package/es/interface/animation/type.d.ts +13 -0
  311. package/es/interface/animation/type.js +14 -0
  312. package/es/interface/animation/type.js.map +1 -0
  313. package/es/interface/common.d.ts +1 -1
  314. package/es/interface/common.js.map +1 -1
  315. package/es/interface/contribution.d.ts +2 -0
  316. package/es/interface/contribution.js.map +1 -1
  317. package/es/interface/graphic/index.d.ts +1 -0
  318. package/es/interface/graphic/index.js +2 -0
  319. package/es/interface/graphic/index.js.map +1 -1
  320. package/es/interface/graphic/richText.d.ts +3 -0
  321. package/es/interface/graphic/richText.js.map +1 -1
  322. package/es/interface/graphic/star.d.ts +12 -0
  323. package/es/interface/graphic/star.js +2 -0
  324. package/es/interface/graphic/star.js.map +1 -0
  325. package/es/interface/graphic/theme.d.ts +3 -0
  326. package/es/interface/graphic/theme.js.map +1 -1
  327. package/es/interface/graphic.d.ts +12 -1
  328. package/es/interface/graphic.js.map +1 -1
  329. package/es/interface/index.d.ts +1 -1
  330. package/es/interface/index.js +1 -1
  331. package/es/interface/index.js.map +1 -1
  332. package/es/interface/render.d.ts +1 -0
  333. package/es/interface/render.js.map +1 -1
  334. package/es/interface/stage.d.ts +3 -1
  335. package/es/interface/stage.js.map +1 -1
  336. package/es/modules.d.ts +2 -1
  337. package/es/modules.js +6 -0
  338. package/es/modules.js.map +1 -1
  339. package/es/plugins/builtin-plugin/auto-render-plugin.js +8 -8
  340. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  341. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +13 -12
  342. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  343. package/es/plugins/builtin-plugin/edit-module.js +11 -8
  344. package/es/plugins/builtin-plugin/edit-module.js.map +1 -1
  345. package/es/plugins/builtin-plugin/flex-layout-plugin.js +12 -11
  346. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  347. package/es/plugins/builtin-plugin/html-attribute-plugin.js +0 -1
  348. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  349. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js +8 -5
  350. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  351. package/es/plugins/builtin-plugin/richtext-edit-plugin.js +1 -1
  352. package/es/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  353. package/es/register/register-star.d.ts +1 -0
  354. package/es/register/register-star.js +8 -0
  355. package/es/register/register-star.js.map +1 -0
  356. package/es/render/contributions/render/area-render.js +2 -2
  357. package/es/render/contributions/render/area-render.js.map +1 -1
  358. package/es/render/contributions/render/contributions/constants.d.ts +1 -0
  359. package/es/render/contributions/render/contributions/constants.js +2 -0
  360. package/es/render/contributions/render/contributions/constants.js.map +1 -1
  361. package/es/render/contributions/render/contributions/index.d.ts +1 -0
  362. package/es/render/contributions/render/contributions/index.js +2 -0
  363. package/es/render/contributions/render/contributions/index.js.map +1 -1
  364. package/es/render/contributions/render/contributions/star-contribution-render.d.ts +2 -0
  365. package/es/render/contributions/render/contributions/star-contribution-render.js +8 -0
  366. package/es/render/contributions/render/contributions/star-contribution-render.js.map +1 -0
  367. package/es/render/contributions/render/draw-contribution.js +1 -1
  368. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  369. package/es/render/contributions/render/line-render.js +1 -1
  370. package/es/render/contributions/render/line-render.js.map +1 -1
  371. package/es/render/contributions/render/star-module.d.ts +2 -0
  372. package/es/render/contributions/render/star-module.js +13 -0
  373. package/es/render/contributions/render/star-module.js.map +1 -0
  374. package/es/render/contributions/render/star-render.d.ts +10 -0
  375. package/es/render/contributions/render/star-render.js +59 -0
  376. package/es/render/contributions/render/star-render.js.map +1 -0
  377. package/es/render/contributions/render/symbol.d.ts +1 -0
  378. package/es/render/contributions/render/symbol.js +2 -0
  379. package/es/render/contributions/render/symbol.js.map +1 -1
  380. package/es/render/render-service.d.ts +1 -1
  381. package/es/render/render-service.js.map +1 -1
  382. package/package.json +2 -2
@@ -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 {\n IGraphic,\n IPlugin,\n IPluginService,\n IRenderService,\n IGroup,\n IStage,\n CreateDOMParamsType,\n CommonDomOptions,\n SimpleDomStyleOptions,\n IText,\n ILayer\n} from '../../interface';\nimport { application } from '../../application';\nimport { getTheme } from '../../graphic/theme';\nimport { DefaultAttribute } from '../../graphic/config';\nimport { textAttributesToStyle } from '../../common/text';\nimport { isFunction, isNil, isObject, isString, styleStringToObject, calculateAnchorOfBounds } from '@visactor/vutils';\nimport { Factory } from '../../factory';\n\nexport class HtmlAttributePlugin implements IPlugin {\n name: string = 'HtmlAttributePlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n htmlMap: Record<\n string,\n {\n wrapContainer: HTMLElement;\n nativeContainer: HTMLElement;\n container: string | HTMLElement | null;\n renderId: number;\n }\n > = {};\n renderId: number = 0;\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 // 全量查找,因为可能会有只渲染交互层的情况\n this.drawHTML([...(context.stage.getChildren() as any)]);\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 application.graphicService.hooks.onRemove.unTap(this.key);\n application.graphicService.hooks.onRelease.unTap(this.key);\n this.release();\n }\n\n getWrapContainer(stage: IStage, userContainer?: string | HTMLElement | null, domParams?: CreateDOMParamsType) {\n let nativeContainer;\n if (userContainer) {\n if (typeof userContainer === 'string') {\n nativeContainer = application.global.getElementById(userContainer);\n } else {\n nativeContainer = userContainer;\n }\n } else {\n nativeContainer = stage.window.getContainer();\n }\n // 创建wrapGroup\n return {\n wrapContainer: application.global.createDom({ tagName: 'div', parent: nativeContainer, ...domParams }),\n nativeContainer\n };\n }\n\n parseDefaultStyleFromGraphic(graphic: IGraphic) {\n const attrs: any = graphic.type === 'text' && graphic.attribute ? graphic.attribute : getTheme(graphic).text;\n\n return textAttributesToStyle(attrs);\n }\n\n getTransformOfText(graphic: IText) {\n const textTheme = getTheme(graphic).text;\n const { textAlign = textTheme.textAlign, textBaseline = textTheme.textBaseline } = graphic.attribute;\n const matrix = graphic.globalTransMatrix;\n const cssAttrs = matrix.toTransformAttrs();\n const { rotateDeg, scaleX, scaleY } = cssAttrs;\n const translateMap: any = {\n left: '0',\n start: '0',\n end: '-100%',\n center: '-50%',\n right: '-100%',\n top: '0',\n middle: '-50%',\n bottom: '-100%',\n alphabetic: '-79%'\n };\n const originMap: any = {\n left: '0',\n start: '0',\n end: '100%',\n center: '50%',\n right: '100%',\n top: '0',\n middle: '50%',\n bottom: '100%',\n alphabetic: '79%'\n };\n\n return {\n textAlign,\n // textBaseline,\n transform: `translate(${translateMap[textAlign]},${translateMap[textBaseline]}) rotate(${rotateDeg}deg) scaleX(${scaleX}) scaleY(${scaleY})`,\n transformOrigin: `${originMap[textAlign]} ${originMap[textBaseline]}`\n };\n }\n\n onWheel = (ev: Event) => {\n try {\n const newEvent = new (ev as any).constructor(ev.type, ev);\n const canvas = this.pluginService.stage.window.getContext().getCanvas().nativeCanvas;\n canvas.dispatchEvent(newEvent);\n } catch (err) {\n return;\n // console.log(err);\n }\n };\n\n updateStyleOfWrapContainer(\n graphic: IGraphic,\n stage: IStage,\n wrapContainer: HTMLElement,\n nativeContainer: HTMLElement,\n options: SimpleDomStyleOptions & CommonDomOptions\n ) {\n const { pointerEvents, penetrateEventList = [] } = options;\n let calculateStyle = this.parseDefaultStyleFromGraphic(graphic);\n\n calculateStyle.display = graphic.attribute.visible !== false ? 'block' : 'none';\n // 事件穿透\n calculateStyle.pointerEvents = pointerEvents === true ? 'all' : pointerEvents ? pointerEvents : 'none';\n if (calculateStyle.pointerEvents !== 'none') {\n // 删除所有的事件\n this.removeWrapContainerEventListener(wrapContainer);\n // 监听所有的事件\n penetrateEventList.forEach(event => {\n if (event === 'wheel') {\n wrapContainer.addEventListener('wheel', this.onWheel);\n }\n });\n }\n\n // 定位wrapGroup\n if (!wrapContainer.style.position) {\n wrapContainer.style.position = 'absolute';\n nativeContainer.style.position = 'relative';\n }\n let left: number = 0;\n let top: number = 0;\n const b = graphic.globalAABBBounds;\n\n let anchorType = options.anchorType;\n\n if (isNil(anchorType)) {\n anchorType = graphic.type === 'text' ? 'position' : 'boundsLeftTop';\n }\n\n if (anchorType === 'boundsLeftTop') {\n // 兼容老的配置,统一配置\n anchorType = 'top-left';\n }\n if (anchorType === 'position' || b.empty()) {\n const matrix = graphic.globalTransMatrix;\n left = matrix.e;\n top = matrix.f;\n } else {\n const anchor = calculateAnchorOfBounds(b, anchorType);\n\n left = anchor.x;\n top = anchor.y;\n }\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 viewBox = stage.viewBox;\n const offsetX = left + windowTL.left - containerTL.left + viewBox.x1;\n const offsetTop = top + windowTL.top - containerTL.top + viewBox.y1;\n // wrapGroup.style.transform = `translate(${offsetX}px, ${offsetTop}px)`;\n calculateStyle.left = `${offsetX}px`;\n calculateStyle.top = `${offsetTop}px`;\n\n if (graphic.type === 'text' && anchorType === 'position') {\n calculateStyle = {\n ...calculateStyle,\n ...this.getTransformOfText(graphic as IText)\n };\n }\n\n if (isFunction(options.style)) {\n const userStyle = options.style(\n { top: offsetTop, left: offsetX, width: b.width(), height: b.height() },\n graphic,\n wrapContainer\n );\n\n if (userStyle) {\n calculateStyle = { ...calculateStyle, ...userStyle };\n }\n } else if (isObject(options.style)) {\n calculateStyle = { ...calculateStyle, ...options.style };\n } else if (isString(options.style) && options.style) {\n calculateStyle = { ...calculateStyle, ...styleStringToObject(options.style as string) };\n }\n\n // 更新样式\n application.global.updateDom(wrapContainer, {\n width: options.width,\n height: options.height,\n style: calculateStyle\n });\n }\n\n protected clearCacheContainer() {\n if (this.htmlMap) {\n Object.keys(this.htmlMap).forEach(key => {\n if (this.htmlMap[key] && this.htmlMap[key].renderId !== this.renderId) {\n this.removeElement(key);\n }\n });\n }\n\n this.renderId += 1;\n }\n\n protected drawHTML(layers: ILayer[]) {\n if (application.global.env === 'browser') {\n layers\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 this.clearCacheContainer();\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 removeElement(id: string) {\n if (!this.htmlMap || !this.htmlMap[id]) {\n return;\n }\n\n const { wrapContainer } = this.htmlMap[id];\n if (wrapContainer) {\n application.global.removeDom(wrapContainer);\n }\n\n this.htmlMap[id] = null;\n }\n\n removeWrapContainerEventListener(wrapContainer: HTMLElement) {\n wrapContainer.removeEventListener('wheel', this.onWheel);\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 } = html;\n\n if (!dom) {\n return;\n }\n const id = isNil(html.id) ? `${graphic.id ?? graphic._uid}_react` : html.id;\n\n if (this.htmlMap && this.htmlMap[id] && container && container !== this.htmlMap[id].container) {\n this.removeElement(id);\n }\n\n if (!this.htmlMap || !this.htmlMap[id]) {\n // createa a wrapper contianer to be the root of react element\n const { wrapContainer, nativeContainer } = this.getWrapContainer(stage, container);\n\n if (wrapContainer) {\n // init append\n if (typeof dom === 'string') {\n wrapContainer.innerHTML = dom;\n } else {\n wrapContainer.appendChild(dom);\n }\n\n if (!this.htmlMap) {\n this.htmlMap = {};\n }\n\n this.htmlMap[id] = { wrapContainer, nativeContainer, container, renderId: this.renderId };\n }\n } else {\n if (typeof dom === 'string') {\n this.htmlMap[id].wrapContainer.innerHTML = dom;\n } else {\n if (dom !== this.htmlMap[id].wrapContainer.firstChild) {\n this.htmlMap[id].wrapContainer.removeChild(this.htmlMap[id].wrapContainer.firstChild);\n this.htmlMap[id].wrapContainer.appendChild(dom);\n }\n }\n }\n\n if (!this.htmlMap || !this.htmlMap[id]) {\n return;\n }\n\n const { wrapContainer, nativeContainer } = this.htmlMap[id];\n\n this.updateStyleOfWrapContainer(graphic, stage, wrapContainer, nativeContainer, html);\n this.htmlMap[id].renderId = this.renderId;\n }\n\n release() {\n if (application.global.env === 'browser') {\n this.removeAllDom(this.pluginService.stage.defaultLayer);\n }\n }\n removeAllDom(g: IGraphic) {\n if (this.htmlMap) {\n Object.keys(this.htmlMap).forEach(key => {\n this.removeElement(key);\n });\n\n this.htmlMap = null;\n }\n }\n}\n\nexport const registerHtmlAttributePlugin = () => {\n Factory.registerPlugin('HtmlAttributePlugin', HtmlAttributePlugin);\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 {\n IGraphic,\n IPlugin,\n IPluginService,\n IRenderService,\n IGroup,\n IStage,\n CreateDOMParamsType,\n CommonDomOptions,\n SimpleDomStyleOptions,\n IText,\n ILayer\n} from '../../interface';\nimport { application } from '../../application';\nimport { getTheme } from '../../graphic/theme';\nimport { DefaultAttribute } from '../../graphic/config';\nimport { textAttributesToStyle } from '../../common/text';\nimport { isFunction, isNil, isObject, isString, styleStringToObject, calculateAnchorOfBounds } from '@visactor/vutils';\nimport { Factory } from '../../factory';\n\nexport class HtmlAttributePlugin implements IPlugin {\n name: string = 'HtmlAttributePlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n htmlMap: Record<\n string,\n {\n wrapContainer: HTMLElement;\n nativeContainer: HTMLElement;\n container: string | HTMLElement | null;\n renderId: number;\n }\n > = {};\n renderId: number = 0;\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 // 全量查找,因为可能会有只渲染交互层的情况\n this.drawHTML([...(context.stage.getChildren() as any)]);\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 // application.graphicService.hooks.onRemove.unTap(this.key);\n // application.graphicService.hooks.onRelease.unTap(this.key);\n this.release();\n }\n\n getWrapContainer(stage: IStage, userContainer?: string | HTMLElement | null, domParams?: CreateDOMParamsType) {\n let nativeContainer;\n if (userContainer) {\n if (typeof userContainer === 'string') {\n nativeContainer = application.global.getElementById(userContainer);\n } else {\n nativeContainer = userContainer;\n }\n } else {\n nativeContainer = stage.window.getContainer();\n }\n // 创建wrapGroup\n return {\n wrapContainer: application.global.createDom({ tagName: 'div', parent: nativeContainer, ...domParams }),\n nativeContainer\n };\n }\n\n parseDefaultStyleFromGraphic(graphic: IGraphic) {\n const attrs: any = graphic.type === 'text' && graphic.attribute ? graphic.attribute : getTheme(graphic).text;\n\n return textAttributesToStyle(attrs);\n }\n\n getTransformOfText(graphic: IText) {\n const textTheme = getTheme(graphic).text;\n const { textAlign = textTheme.textAlign, textBaseline = textTheme.textBaseline } = graphic.attribute;\n const matrix = graphic.globalTransMatrix;\n const cssAttrs = matrix.toTransformAttrs();\n const { rotateDeg, scaleX, scaleY } = cssAttrs;\n const translateMap: any = {\n left: '0',\n start: '0',\n end: '-100%',\n center: '-50%',\n right: '-100%',\n top: '0',\n middle: '-50%',\n bottom: '-100%',\n alphabetic: '-79%'\n };\n const originMap: any = {\n left: '0',\n start: '0',\n end: '100%',\n center: '50%',\n right: '100%',\n top: '0',\n middle: '50%',\n bottom: '100%',\n alphabetic: '79%'\n };\n\n return {\n textAlign,\n // textBaseline,\n transform: `translate(${translateMap[textAlign]},${translateMap[textBaseline]}) rotate(${rotateDeg}deg) scaleX(${scaleX}) scaleY(${scaleY})`,\n transformOrigin: `${originMap[textAlign]} ${originMap[textBaseline]}`\n };\n }\n\n onWheel = (ev: Event) => {\n try {\n const newEvent = new (ev as any).constructor(ev.type, ev);\n const canvas = this.pluginService.stage.window.getContext().getCanvas().nativeCanvas;\n canvas.dispatchEvent(newEvent);\n } catch (err) {\n return;\n // console.log(err);\n }\n };\n\n updateStyleOfWrapContainer(\n graphic: IGraphic,\n stage: IStage,\n wrapContainer: HTMLElement,\n nativeContainer: HTMLElement,\n options: SimpleDomStyleOptions & CommonDomOptions\n ) {\n const { pointerEvents, penetrateEventList = [] } = options;\n let calculateStyle = this.parseDefaultStyleFromGraphic(graphic);\n\n calculateStyle.display = graphic.attribute.visible !== false ? 'block' : 'none';\n // 事件穿透\n calculateStyle.pointerEvents = pointerEvents === true ? 'all' : pointerEvents ? pointerEvents : 'none';\n if (calculateStyle.pointerEvents !== 'none') {\n // 删除所有的事件\n this.removeWrapContainerEventListener(wrapContainer);\n // 监听所有的事件\n penetrateEventList.forEach(event => {\n if (event === 'wheel') {\n wrapContainer.addEventListener('wheel', this.onWheel);\n }\n });\n }\n\n // 定位wrapGroup\n if (!wrapContainer.style.position) {\n wrapContainer.style.position = 'absolute';\n nativeContainer.style.position = 'relative';\n }\n let left: number = 0;\n let top: number = 0;\n const b = graphic.globalAABBBounds;\n\n let anchorType = options.anchorType;\n\n if (isNil(anchorType)) {\n anchorType = graphic.type === 'text' ? 'position' : 'boundsLeftTop';\n }\n\n if (anchorType === 'boundsLeftTop') {\n // 兼容老的配置,统一配置\n anchorType = 'top-left';\n }\n if (anchorType === 'position' || b.empty()) {\n const matrix = graphic.globalTransMatrix;\n left = matrix.e;\n top = matrix.f;\n } else {\n const anchor = calculateAnchorOfBounds(b, anchorType);\n\n left = anchor.x;\n top = anchor.y;\n }\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 viewBox = stage.viewBox;\n const offsetX = left + windowTL.left - containerTL.left + viewBox.x1;\n const offsetTop = top + windowTL.top - containerTL.top + viewBox.y1;\n // wrapGroup.style.transform = `translate(${offsetX}px, ${offsetTop}px)`;\n calculateStyle.left = `${offsetX}px`;\n calculateStyle.top = `${offsetTop}px`;\n\n if (graphic.type === 'text' && anchorType === 'position') {\n calculateStyle = {\n ...calculateStyle,\n ...this.getTransformOfText(graphic as IText)\n };\n }\n\n if (isFunction(options.style)) {\n const userStyle = options.style(\n { top: offsetTop, left: offsetX, width: b.width(), height: b.height() },\n graphic,\n wrapContainer\n );\n\n if (userStyle) {\n calculateStyle = { ...calculateStyle, ...userStyle };\n }\n } else if (isObject(options.style)) {\n calculateStyle = { ...calculateStyle, ...options.style };\n } else if (isString(options.style) && options.style) {\n calculateStyle = { ...calculateStyle, ...styleStringToObject(options.style as string) };\n }\n\n // 更新样式\n application.global.updateDom(wrapContainer, {\n width: options.width,\n height: options.height,\n style: calculateStyle\n });\n }\n\n protected clearCacheContainer() {\n if (this.htmlMap) {\n Object.keys(this.htmlMap).forEach(key => {\n if (this.htmlMap[key] && this.htmlMap[key].renderId !== this.renderId) {\n this.removeElement(key);\n }\n });\n }\n\n this.renderId += 1;\n }\n\n protected drawHTML(layers: ILayer[]) {\n if (application.global.env === 'browser') {\n layers\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 this.clearCacheContainer();\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 removeElement(id: string) {\n if (!this.htmlMap || !this.htmlMap[id]) {\n return;\n }\n\n const { wrapContainer } = this.htmlMap[id];\n if (wrapContainer) {\n application.global.removeDom(wrapContainer);\n }\n\n this.htmlMap[id] = null;\n }\n\n removeWrapContainerEventListener(wrapContainer: HTMLElement) {\n wrapContainer.removeEventListener('wheel', this.onWheel);\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 } = html;\n\n if (!dom) {\n return;\n }\n const id = isNil(html.id) ? `${graphic.id ?? graphic._uid}_react` : html.id;\n\n if (this.htmlMap && this.htmlMap[id] && container && container !== this.htmlMap[id].container) {\n this.removeElement(id);\n }\n\n if (!this.htmlMap || !this.htmlMap[id]) {\n // createa a wrapper contianer to be the root of react element\n const { wrapContainer, nativeContainer } = this.getWrapContainer(stage, container);\n\n if (wrapContainer) {\n // init append\n if (typeof dom === 'string') {\n wrapContainer.innerHTML = dom;\n } else {\n wrapContainer.appendChild(dom);\n }\n\n if (!this.htmlMap) {\n this.htmlMap = {};\n }\n\n this.htmlMap[id] = { wrapContainer, nativeContainer, container, renderId: this.renderId };\n }\n } else {\n if (typeof dom === 'string') {\n this.htmlMap[id].wrapContainer.innerHTML = dom;\n } else {\n if (dom !== this.htmlMap[id].wrapContainer.firstChild) {\n this.htmlMap[id].wrapContainer.removeChild(this.htmlMap[id].wrapContainer.firstChild);\n this.htmlMap[id].wrapContainer.appendChild(dom);\n }\n }\n }\n\n if (!this.htmlMap || !this.htmlMap[id]) {\n return;\n }\n\n const { wrapContainer, nativeContainer } = this.htmlMap[id];\n\n this.updateStyleOfWrapContainer(graphic, stage, wrapContainer, nativeContainer, html);\n this.htmlMap[id].renderId = this.renderId;\n }\n\n release() {\n if (application.global.env === 'browser') {\n this.removeAllDom(this.pluginService.stage.defaultLayer);\n }\n }\n removeAllDom(g: IGraphic) {\n if (this.htmlMap) {\n Object.keys(this.htmlMap).forEach(key => {\n this.removeElement(key);\n });\n\n this.htmlMap = null;\n }\n }\n}\n\nexport const registerHtmlAttributePlugin = () => {\n Factory.registerPlugin('HtmlAttributePlugin', HtmlAttributePlugin);\n};\n"]}
@@ -9,17 +9,20 @@ export class IncrementalAutoRenderPlugin {
9
9
  this.key = this.name + this._uid;
10
10
  }
11
11
  activate(context) {
12
- this.pluginService = context, application.graphicService.hooks.onAddIncremental.tap(this.key, ((graphic, group, stage) => {
12
+ this.pluginService = context;
13
+ const stage = this.pluginService.stage;
14
+ stage && (stage.graphicService.hooks.onAddIncremental.tap(this.key, ((graphic, group, stage) => {
13
15
  graphic.glyphHost && (graphic = graphic.glyphHost), graphic.stage === context.stage && null != graphic.stage && (this.nextUserParams.startAtId = group._uid,
14
16
  this.renderNextFrame(group));
15
- })), application.graphicService.hooks.onClearIncremental.tap(this.key, ((group, stage) => {
17
+ })), stage.graphicService.hooks.onClearIncremental.tap(this.key, ((group, stage) => {
16
18
  group.stage === context.stage && null != group.stage && (this.nextUserParams.startAtId = group._uid,
17
19
  this.nextUserParams.restartIncremental = !0, this.renderNextFrame(group));
18
- }));
20
+ })));
19
21
  }
20
22
  deactivate(context) {
21
- application.graphicService.hooks.onAddIncremental.taps = application.graphicService.hooks.onAddIncremental.taps.filter((item => item.name !== this.key)),
22
- application.graphicService.hooks.onClearIncremental.taps = application.graphicService.hooks.onClearIncremental.taps.filter((item => item.name !== this.key));
23
+ const stage = this.pluginService.stage;
24
+ stage && (stage.graphicService.hooks.onAddIncremental.taps = stage.graphicService.hooks.onAddIncremental.taps.filter((item => item.name !== this.key)),
25
+ stage.graphicService.hooks.onClearIncremental.taps = stage.graphicService.hooks.onClearIncremental.taps.filter((item => item.name !== this.key)));
23
26
  }
24
27
  renderNextFrame(group) {
25
28
  this.nextFrameRenderGroupSet.add(group), this.willNextFrameRender || (this.willNextFrameRender = !0,
@@ -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 stage,\n layer,\n viewBox: stage.window.getViewBox(),\n transMatrix: stage.window.getViewBoxTransform(),\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 const stage = this.pluginService.stage;\n if (!stage) {\n return;\n }\n stage.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 stage.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 const stage = this.pluginService.stage;\n if (!stage) {\n return;\n }\n stage.graphicService.hooks.onAddIncremental.taps = stage.graphicService.hooks.onAddIncremental.taps.filter(item => {\n return item.name !== this.key;\n });\n stage.graphicService.hooks.onClearIncremental.taps = stage.graphicService.hooks.onClearIncremental.taps.filter(\n item => {\n return item.name !== this.key;\n }\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 stage,\n layer,\n viewBox: stage.window.getViewBox(),\n transMatrix: stage.window.getViewBoxTransform(),\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"]}
@@ -417,7 +417,7 @@ export class RichTextEditPlugin {
417
417
  const {editOptions: editOptions = {}} = currRt.attribute;
418
418
  editOptions.stopPropagation && currRt.removeEventListener("*", this.stopPropagation),
419
419
  trulyDeFocus && (this.trySyncPlaceholderToTextConfig(), currRt.detachShadow()),
420
- this.currRt = null;
420
+ this.currRt = null, this.editModule.currRt = null;
421
421
  const shadowRoot = this.getShadow(currRt);
422
422
  this.editLine && (this.removeEditLineOrBgOrBounds(this.editLine, shadowRoot), this.editLine.release(),
423
423
  this.editLine = null, this.removeEditLineOrBgOrBounds(this.editBg, shadowRoot),