@visactor/vstory 0.0.4-alpha.2 → 0.0.5-alpha.0

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 (734) hide show
  1. package/README.md +13 -0
  2. package/cjs/animate/typewirter.d.ts +3 -4
  3. package/cjs/animate/typewirter.js +44 -30
  4. package/cjs/animate/typewirter.js.map +1 -1
  5. package/cjs/constants/action.d.ts +9 -0
  6. package/cjs/constants/action.js +10 -2
  7. package/cjs/constants/action.js.map +1 -1
  8. package/cjs/constants/character.d.ts +2 -2
  9. package/cjs/constants/character.js +2 -3
  10. package/cjs/constants/character.js.map +1 -1
  11. package/cjs/constants/config.js +2 -1
  12. package/cjs/dsl/constant/index.d.ts +13 -0
  13. package/cjs/dsl/constant/index.js +6 -1
  14. package/cjs/dsl/constant/index.js.map +1 -1
  15. package/cjs/dsl/story-chart/area.d.ts +2 -0
  16. package/cjs/dsl/story-chart/area.js +5 -1
  17. package/cjs/dsl/story-chart/area.js.map +1 -1
  18. package/cjs/dsl/story-chart/bar.d.ts +2 -0
  19. package/cjs/dsl/story-chart/bar.js +1 -1
  20. package/cjs/dsl/story-chart/bar.js.map +1 -1
  21. package/cjs/dsl/story-chart/line.d.ts +2 -0
  22. package/cjs/dsl/story-chart/line.js +2 -2
  23. package/cjs/dsl/story-chart/line.js.map +1 -1
  24. package/cjs/dsl/story-chart/pie.d.ts +2 -0
  25. package/cjs/dsl/story-chart/pie.js +4 -1
  26. package/cjs/dsl/story-chart/pie.js.map +1 -1
  27. package/cjs/dsl/story-processor/graphic/appear.js.map +1 -1
  28. package/cjs/dsl/story-processor/graphic/effect/appear.js +2 -7
  29. package/cjs/dsl/story-processor/graphic/effect/appear.js.map +1 -1
  30. package/cjs/dsl/story-processor/graphic/effect/typewriter.js +1 -1
  31. package/cjs/dsl/story-processor/graphic/effect/typewriter.js.map +1 -1
  32. package/cjs/dsl/story-processor/index.js +1 -1
  33. package/cjs/dsl/story-processor/processor.js +1 -1
  34. package/cjs/dsl/types/index.d.ts +1 -0
  35. package/cjs/dsl/types/index.js.map +1 -1
  36. package/cjs/dsl/utils/datum.js +2 -1
  37. package/cjs/dsl/utils/flicker.js +1 -1
  38. package/cjs/edit/const.d.ts +1 -3
  39. package/cjs/edit/const.js +1 -0
  40. package/cjs/edit/const.js.map +1 -1
  41. package/cjs/edit/edit-action.d.ts +9 -0
  42. package/cjs/edit/edit-action.js +61 -5
  43. package/cjs/edit/edit-action.js.map +1 -1
  44. package/cjs/edit/edit-component/base-selection.d.ts +8 -3
  45. package/cjs/edit/edit-component/base-selection.js +30 -4
  46. package/cjs/edit/edit-component/base-selection.js.map +1 -1
  47. package/cjs/edit/edit-component/chart-selection.d.ts +15 -0
  48. package/cjs/edit/edit-component/chart-selection.js +39 -0
  49. package/cjs/edit/edit-component/chart-selection.js.map +1 -0
  50. package/cjs/edit/edit-component/common.d.ts +1 -11
  51. package/cjs/edit/edit-component/common.js +1 -32
  52. package/cjs/edit/edit-component/common.js.map +1 -1
  53. package/cjs/edit/edit-component/edit-control/richtext-control.d.ts +19 -0
  54. package/cjs/edit/edit-component/edit-control/richtext-control.js +34 -0
  55. package/cjs/edit/edit-component/edit-control/richtext-control.js.map +1 -0
  56. package/cjs/edit/edit-component/edit-control/richtext-transform-control.d.ts +2 -3
  57. package/cjs/edit/edit-component/edit-control/richtext-transform-control.js +30 -32
  58. package/cjs/edit/edit-component/edit-control/richtext-transform-control.js.map +1 -1
  59. package/cjs/edit/edit-component/edit-control/transform-control.d.ts +4 -2
  60. package/cjs/edit/edit-component/edit-control/transform-control.js +10 -6
  61. package/cjs/edit/edit-component/edit-control/transform-control.js.map +1 -1
  62. package/cjs/edit/edit-component/edit-control/transform-drag.d.ts +1 -0
  63. package/cjs/edit/edit-component/edit-control/transform-drag.js +4 -2
  64. package/cjs/edit/edit-component/edit-control/transform-drag.js.map +1 -1
  65. package/cjs/edit/edit-component/image-selection.d.ts +1 -2
  66. package/cjs/edit/edit-component/image-selection.js +2 -5
  67. package/cjs/edit/edit-component/image-selection.js.map +1 -1
  68. package/cjs/edit/edit-component/index.js +4 -5
  69. package/cjs/edit/edit-component/index.js.map +1 -1
  70. package/cjs/edit/edit-component/layer-edit.js +0 -2
  71. package/cjs/edit/edit-component/mixin/richtext.d.ts +21 -0
  72. package/cjs/edit/edit-component/mixin/richtext.js +26 -0
  73. package/cjs/edit/edit-component/mixin/richtext.js.map +1 -0
  74. package/cjs/edit/edit-component/rect-selection.d.ts +8 -12
  75. package/cjs/edit/edit-component/rect-selection.js +13 -18
  76. package/cjs/edit/edit-component/rect-selection.js.map +1 -1
  77. package/cjs/edit/edit-component/richtext-selection-common.d.ts +19 -0
  78. package/cjs/edit/edit-component/richtext-selection-common.js +35 -0
  79. package/cjs/edit/edit-component/richtext-selection-common.js.map +1 -0
  80. package/cjs/edit/edit-component/richtext-selection.d.ts +0 -2
  81. package/cjs/edit/edit-component/richtext-selection.js +1 -7
  82. package/cjs/edit/edit-component/richtext-selection.js.map +1 -1
  83. package/cjs/edit/edit-component/shape-selection.d.ts +11 -0
  84. package/cjs/edit/edit-component/shape-selection.js +36 -0
  85. package/cjs/edit/edit-component/shape-selection.js.map +1 -0
  86. package/cjs/edit/edit-component/text-selection.d.ts +0 -3
  87. package/cjs/edit/edit-component/text-selection.js +3 -11
  88. package/cjs/edit/edit-component/text-selection.js.map +1 -1
  89. package/cjs/edit/edit.d.ts +5 -2
  90. package/cjs/edit/edit.js +20 -5
  91. package/cjs/edit/edit.js.map +1 -1
  92. package/cjs/edit/interface.d.ts +6 -1
  93. package/cjs/edit/interface.js +3 -1
  94. package/cjs/edit/interface.js.map +1 -1
  95. package/cjs/index.d.ts +3 -1
  96. package/cjs/index.js +2 -1
  97. package/cjs/index.js.map +1 -1
  98. package/cjs/interface/type.js +1 -2
  99. package/cjs/player/interface/player.d.ts +5 -2
  100. package/cjs/player/interface/player.js.map +1 -1
  101. package/cjs/player/interface/scheduler.d.ts +1 -1
  102. package/cjs/player/interface/scheduler.js.map +1 -1
  103. package/cjs/player/player.d.ts +7 -2
  104. package/cjs/player/player.js +31 -21
  105. package/cjs/player/player.js.map +1 -1
  106. package/cjs/player/processor/chart/common/chartAppear.d.ts +5 -0
  107. package/cjs/player/processor/chart/common/chartAppear.js +11 -0
  108. package/cjs/player/processor/chart/common/chartAppear.js.map +1 -0
  109. package/cjs/player/processor/chart/common/commonAppear.d.ts +8 -0
  110. package/cjs/player/processor/chart/common/commonAppear.js +46 -0
  111. package/cjs/player/processor/chart/common/commonAppear.js.map +1 -0
  112. package/cjs/player/processor/chart/component/axisAppear.d.ts +2 -2
  113. package/cjs/player/processor/chart/component/axisAppear.js +2 -2
  114. package/cjs/player/processor/chart/component/axisAppear.js.map +1 -1
  115. package/cjs/player/processor/chart/component/commonAppear.d.ts +3 -3
  116. package/cjs/player/processor/chart/component/commonAppear.js +5 -17
  117. package/cjs/player/processor/chart/component/commonAppear.js.map +1 -1
  118. package/cjs/player/processor/chart/component/labelAppear.d.ts +2 -2
  119. package/cjs/player/processor/chart/component/labelAppear.js +1 -1
  120. package/cjs/player/processor/chart/component/labelAppear.js.map +1 -1
  121. package/cjs/player/processor/chart/component/legendsAppear.d.ts +4 -3
  122. package/cjs/player/processor/chart/component/legendsAppear.js +2 -3
  123. package/cjs/player/processor/chart/component/legendsAppear.js.map +1 -1
  124. package/cjs/player/processor/chart/component/titleAppear.d.ts +4 -3
  125. package/cjs/player/processor/chart/component/titleAppear.js +2 -3
  126. package/cjs/player/processor/chart/component/titleAppear.js.map +1 -1
  127. package/cjs/player/processor/chart/rankingBar/rankingBar.d.ts +29 -0
  128. package/cjs/player/processor/chart/rankingBar/rankingBar.js +54 -0
  129. package/cjs/player/processor/chart/rankingBar/rankingBar.js.map +1 -0
  130. package/cjs/player/processor/chart/seriesmark/commonTransformMarkAppear.d.ts +3 -3
  131. package/cjs/player/processor/chart/seriesmark/commonTransformMarkAppear.js.map +1 -1
  132. package/cjs/player/processor/chart/seriesmark/{transformArcAppear.d.ts → transformArcVisibility.d.ts} +2 -2
  133. package/cjs/player/processor/chart/seriesmark/{transformArcAppear.js → transformArcVisibility.js} +5 -6
  134. package/cjs/player/processor/chart/seriesmark/transformArcVisibility.js.map +1 -0
  135. package/cjs/player/processor/chart/seriesmark/{transformRectAppear.d.ts → transformLineVisibility.d.ts} +2 -2
  136. package/cjs/player/processor/chart/seriesmark/transformLineVisibility.js +12 -0
  137. package/cjs/player/processor/chart/seriesmark/transformLineVisibility.js.map +1 -0
  138. package/cjs/player/processor/chart/seriesmark/{transformLineAppear.d.ts → transformRectVisibility.d.ts} +2 -2
  139. package/cjs/player/processor/chart/seriesmark/{transformRectAppear.js → transformRectVisibility.js} +6 -7
  140. package/cjs/player/processor/chart/seriesmark/transformRectVisibility.js.map +1 -0
  141. package/cjs/player/processor/chart/seriesmark/transformSymbolVisibility.d.ts +12 -0
  142. package/cjs/player/processor/chart/seriesmark/transformSymbolVisibility.js +12 -0
  143. package/cjs/player/processor/chart/seriesmark/transformSymbolVisibility.js.map +1 -0
  144. package/cjs/player/processor/chart/seriesmark/transformTextVisibility.d.ts +12 -0
  145. package/cjs/player/processor/chart/seriesmark/transformTextVisibility.js +12 -0
  146. package/cjs/player/processor/chart/seriesmark/transformTextVisibility.js.map +1 -0
  147. package/cjs/player/processor/chart/transformMap.d.ts +24 -18
  148. package/cjs/player/processor/chart/transformMap.js +8 -7
  149. package/cjs/player/processor/chart/transformMap.js.map +1 -1
  150. package/cjs/player/processor/chart/vchart.d.ts +76 -18
  151. package/cjs/player/processor/chart/vchart.js +151 -36
  152. package/cjs/player/processor/chart/vchart.js.map +1 -1
  153. package/cjs/player/processor/common/bounce-processor.d.ts +3 -0
  154. package/cjs/player/processor/common/bounce-processor.js +23 -0
  155. package/cjs/player/processor/common/bounce-processor.js.map +1 -0
  156. package/cjs/player/processor/common/common.d.ts +5 -0
  157. package/cjs/player/processor/common/common.js +20 -0
  158. package/cjs/player/processor/common/common.js.map +1 -0
  159. package/cjs/player/processor/common/fade-processor.d.ts +4 -0
  160. package/cjs/player/processor/common/fade-processor.js +36 -0
  161. package/cjs/player/processor/common/fade-processor.js.map +1 -0
  162. package/cjs/player/processor/common/move-processor.d.ts +8 -0
  163. package/cjs/player/processor/common/move-processor.js +155 -0
  164. package/cjs/player/processor/common/move-processor.js.map +1 -0
  165. package/cjs/player/processor/common/scale-processor.d.ts +8 -0
  166. package/cjs/player/processor/common/scale-processor.js +49 -0
  167. package/cjs/player/processor/common/scale-processor.js.map +1 -0
  168. package/cjs/player/processor/common/wipe-processor.d.ts +4 -0
  169. package/cjs/player/processor/common/wipe-processor.js +40 -0
  170. package/cjs/player/processor/common/wipe-processor.js.map +1 -0
  171. package/cjs/player/processor/common-processor.js +3 -0
  172. package/cjs/player/processor/common-processor.js.map +1 -0
  173. package/cjs/player/processor/component/common-component.d.ts +45 -9
  174. package/cjs/player/processor/component/common-component.js +99 -78
  175. package/cjs/player/processor/component/common-component.js.map +1 -1
  176. package/cjs/player/processor/component/image/image-visibility.d.ts +5 -0
  177. package/cjs/player/processor/component/image/image-visibility.js +16 -0
  178. package/cjs/player/processor/component/image/image-visibility.js.map +1 -0
  179. package/cjs/player/processor/component/line/line-visibility.d.ts +5 -0
  180. package/cjs/player/processor/component/line/line-visibility.js +16 -0
  181. package/cjs/player/processor/component/line/line-visibility.js.map +1 -0
  182. package/cjs/player/processor/component/rect/rect-visibility.d.ts +5 -0
  183. package/cjs/player/processor/component/rect/rect-visibility.js +16 -0
  184. package/cjs/player/processor/component/rect/rect-visibility.js.map +1 -0
  185. package/cjs/player/processor/component/shape/shape-visibility.d.ts +5 -0
  186. package/cjs/player/processor/component/shape/shape-visibility.js +16 -0
  187. package/cjs/player/processor/component/shape/shape-visibility.js.map +1 -0
  188. package/cjs/player/processor/component/text/text-visibility.d.ts +6 -0
  189. package/cjs/player/processor/component/text/text-visibility.js +41 -0
  190. package/cjs/player/processor/component/text/text-visibility.js.map +1 -0
  191. package/cjs/player/processor/component/timeline/timeline-visibility.d.ts +15 -0
  192. package/cjs/player/processor/component/timeline/timeline-visibility.js +79 -0
  193. package/cjs/player/processor/component/timeline/timeline-visibility.js.map +1 -0
  194. package/cjs/player/processor/component/utils.d.ts +3 -1
  195. package/cjs/player/processor/component/utils.js +16 -1
  196. package/cjs/player/processor/component/utils.js.map +1 -1
  197. package/cjs/player/processor/interface/action-processor.d.ts +6 -6
  198. package/cjs/player/processor/interface/action-processor.js.map +1 -1
  199. package/cjs/player/processor/interface/appear-action.d.ts +30 -18
  200. package/cjs/player/processor/interface/appear-action.js.map +1 -1
  201. package/cjs/player/processor/interface/common-action.d.ts +15 -0
  202. package/cjs/player/processor/interface/common-action.js +6 -0
  203. package/cjs/player/processor/interface/common-action.js.map +1 -0
  204. package/cjs/player/processor/interface/style-action.d.ts +33 -0
  205. package/cjs/player/processor/interface/style-action.js +6 -0
  206. package/cjs/player/processor/interface/style-action.js.map +1 -0
  207. package/cjs/player/processor/processor-item.d.ts +5 -5
  208. package/cjs/player/processor/processor-item.js.map +1 -1
  209. package/cjs/player/processor/processor.d.ts +3 -3
  210. package/cjs/player/processor/processor.js +2 -2
  211. package/cjs/player/processor/processor.js.map +1 -1
  212. package/cjs/player/processor/processorMap.d.ts +31 -21
  213. package/cjs/player/processor/processorMap.js +48 -8
  214. package/cjs/player/processor/processorMap.js.map +1 -1
  215. package/cjs/player/scheduler.d.ts +4 -3
  216. package/cjs/player/scheduler.js +16 -10
  217. package/cjs/player/scheduler.js.map +1 -1
  218. package/cjs/scene/scene.js +2 -0
  219. package/cjs/story/canvas/canvas.d.ts +4 -2
  220. package/cjs/story/canvas/canvas.js +20 -14
  221. package/cjs/story/canvas/canvas.js.map +1 -1
  222. package/cjs/story/character/base/base.d.ts +7 -4
  223. package/cjs/story/character/base/base.js +7 -4
  224. package/cjs/story/character/base/base.js.map +1 -1
  225. package/cjs/story/character/chart/character.d.ts +16 -0
  226. package/cjs/story/character/chart/character.js +59 -14
  227. package/cjs/story/character/chart/character.js.map +1 -1
  228. package/cjs/story/character/chart/characters/rankingBar.d.ts +4 -0
  229. package/cjs/story/character/chart/characters/rankingBar.js +15 -0
  230. package/cjs/story/character/chart/characters/rankingBar.js.map +1 -0
  231. package/cjs/story/character/chart/graphic/vchart-graphic-picker.js +6 -8
  232. package/cjs/story/character/chart/graphic/vchart-graphic-picker.js.map +1 -1
  233. package/cjs/story/character/chart/graphic/vchart-graphic-render.js +8 -8
  234. package/cjs/story/character/chart/graphic/vchart-graphic-render.js.map +1 -1
  235. package/cjs/story/character/chart/graphic/vchart-graphic.d.ts +13 -2
  236. package/cjs/story/character/chart/graphic/vchart-graphic.js +82 -14
  237. package/cjs/story/character/chart/graphic/vchart-graphic.js.map +1 -1
  238. package/cjs/story/character/chart/runtime/common-spec.d.ts +2 -4
  239. package/cjs/story/character/chart/runtime/common-spec.js +0 -2
  240. package/cjs/story/character/chart/runtime/common-spec.js.map +1 -1
  241. package/cjs/story/character/chart/runtime/component-spec.d.ts +4 -3
  242. package/cjs/story/character/chart/runtime/component-spec.js +7 -5
  243. package/cjs/story/character/chart/runtime/component-spec.js.map +1 -1
  244. package/cjs/story/character/chart/temp/constant.d.ts +1 -0
  245. package/cjs/story/character/chart/temp/constant.js +2 -1
  246. package/cjs/story/character/chart/temp/constant.js.map +1 -1
  247. package/cjs/story/character/chart/temp/templates/bar.d.ts +20 -0
  248. package/cjs/story/character/chart/temp/templates/bar.js +31 -0
  249. package/cjs/story/character/chart/temp/templates/bar.js.map +1 -0
  250. package/cjs/story/character/chart/temp/templates/base-temp.d.ts +6 -4
  251. package/cjs/story/character/chart/temp/templates/base-temp.js +1 -1
  252. package/cjs/story/character/chart/temp/templates/base-temp.js.map +1 -1
  253. package/cjs/story/character/chart/temp/templates/ranking-bar-temp.d.ts +8 -0
  254. package/cjs/story/character/chart/temp/templates/ranking-bar-temp.js +22 -0
  255. package/cjs/story/character/chart/temp/templates/ranking-bar-temp.js.map +1 -0
  256. package/cjs/story/character/component/character-group/component-group-graphic-render.d.ts +2 -2
  257. package/cjs/story/character/component/character-group/component-group-graphic-render.js +3 -3
  258. package/cjs/story/character/component/character-group/component-group-graphic-render.js.map +1 -1
  259. package/cjs/story/character/component/character-group/component-group-graphic.d.ts +2 -1
  260. package/cjs/story/character/component/character-group/component-group-graphic.js +12 -4
  261. package/cjs/story/character/component/character-group/component-group-graphic.js.map +1 -1
  262. package/cjs/story/character/component/character.d.ts +9 -4
  263. package/cjs/story/character/component/character.js +26 -6
  264. package/cjs/story/character/component/character.js.map +1 -1
  265. package/cjs/story/character/component/characters/character-image.d.ts +3 -0
  266. package/cjs/story/character/component/characters/character-image.js +4 -0
  267. package/cjs/story/character/component/characters/character-image.js.map +1 -1
  268. package/cjs/story/character/component/characters/character-rect.d.ts +3 -0
  269. package/cjs/story/character/component/characters/character-rect.js +4 -0
  270. package/cjs/story/character/component/characters/character-rect.js.map +1 -1
  271. package/cjs/story/character/component/characters/character-richtext.d.ts +1 -6
  272. package/cjs/story/character/component/characters/character-richtext.js +0 -16
  273. package/cjs/story/character/component/characters/character-richtext.js.map +1 -1
  274. package/cjs/story/character/component/characters/character-shape.d.ts +4 -0
  275. package/cjs/story/character/component/characters/character-shape.js +15 -0
  276. package/cjs/story/character/component/characters/character-shape.js.map +1 -1
  277. package/cjs/story/character/component/characters/character-text.js +1 -1
  278. package/cjs/story/character/component/characters/character-text.js.map +1 -1
  279. package/cjs/story/character/component/graphic/graphic-base-text.d.ts +24 -0
  280. package/cjs/story/character/component/graphic/{graphic-text.js → graphic-base-text.js} +45 -24
  281. package/cjs/story/character/component/graphic/graphic-base-text.js.map +1 -0
  282. package/cjs/story/character/component/graphic/graphic.d.ts +1 -1
  283. package/cjs/story/character/component/graphic/graphic.js.map +1 -1
  284. package/cjs/story/character/component/graphic/richtext.d.ts +1 -9
  285. package/cjs/story/character/component/graphic/richtext.js +0 -45
  286. package/cjs/story/character/component/graphic/richtext.js.map +1 -1
  287. package/cjs/story/character/component/graphic/symbol.d.ts +3 -0
  288. package/cjs/story/character/component/graphic/symbol.js +17 -3
  289. package/cjs/story/character/component/graphic/symbol.js.map +1 -1
  290. package/cjs/story/character/component/graphic/text.d.ts +4 -3
  291. package/cjs/story/character/component/graphic/text.js +21 -6
  292. package/cjs/story/character/component/graphic/text.js.map +1 -1
  293. package/cjs/story/character/component/graphic/timeline.d.ts +6 -0
  294. package/cjs/story/character/component/graphic/timeline.js +7 -1
  295. package/cjs/story/character/component/graphic/timeline.js.map +1 -1
  296. package/cjs/story/character/dsl-interface.d.ts +4 -2
  297. package/cjs/story/character/dsl-interface.js.map +1 -1
  298. package/cjs/story/character/runtime-interface.d.ts +10 -4
  299. package/cjs/story/character/runtime-interface.js.map +1 -1
  300. package/cjs/story/character/visactor/character.d.ts +20 -6
  301. package/cjs/story/character/visactor/character.js +17 -1
  302. package/cjs/story/character/visactor/character.js.map +1 -1
  303. package/cjs/story/character/visactor/interface.d.ts +1 -0
  304. package/cjs/story/character/visactor/interface.js.map +1 -1
  305. package/cjs/story/character-tree/character-tree.d.ts +1 -0
  306. package/cjs/story/character-tree/character-tree.js +6 -0
  307. package/cjs/story/character-tree/character-tree.js.map +1 -1
  308. package/cjs/story/index.js +5 -3
  309. package/cjs/story/index.js.map +1 -1
  310. package/cjs/story/interface/dsl-interface.d.ts +7 -9
  311. package/cjs/story/interface/dsl-interface.js.map +1 -1
  312. package/cjs/story/interface/player.d.ts +1 -13
  313. package/cjs/story/interface/player.js +1 -4
  314. package/cjs/story/interface/player.js.map +1 -1
  315. package/cjs/story/interface/runtime-interface.d.ts +5 -3
  316. package/cjs/story/interface/runtime-interface.js.map +1 -1
  317. package/cjs/story/story.d.ts +2 -1
  318. package/cjs/story/story.js +9 -6
  319. package/cjs/story/story.js.map +1 -1
  320. package/cjs/story/utils/layout.d.ts +2 -1
  321. package/cjs/story/utils/layout.js +2 -2
  322. package/cjs/story/utils/layout.js.map +1 -1
  323. package/cjs/story/utils/vchart-pick.d.ts +115 -0
  324. package/cjs/story/utils/vchart-pick.js +109 -0
  325. package/cjs/story/utils/vchart-pick.js.map +1 -0
  326. package/cjs/util/space.js +2 -1
  327. package/dist/index.js +50811 -0
  328. package/dist/index.min.js +20 -0
  329. package/es/animate/typewirter.d.ts +3 -4
  330. package/es/animate/typewirter.js +46 -30
  331. package/es/animate/typewirter.js.map +1 -1
  332. package/es/constants/action.d.ts +9 -0
  333. package/es/constants/action.js +11 -1
  334. package/es/constants/action.js.map +1 -1
  335. package/es/constants/character.d.ts +2 -2
  336. package/es/constants/character.js +2 -3
  337. package/es/constants/character.js.map +1 -1
  338. package/es/constants/config.js +2 -1
  339. package/es/dsl/constant/index.d.ts +13 -0
  340. package/es/dsl/constant/index.js +6 -1
  341. package/es/dsl/constant/index.js.map +1 -1
  342. package/es/dsl/story-chart/area.d.ts +2 -0
  343. package/es/dsl/story-chart/area.js +5 -1
  344. package/es/dsl/story-chart/area.js.map +1 -1
  345. package/es/dsl/story-chart/bar.d.ts +2 -0
  346. package/es/dsl/story-chart/bar.js +1 -1
  347. package/es/dsl/story-chart/bar.js.map +1 -1
  348. package/es/dsl/story-chart/line.d.ts +2 -0
  349. package/es/dsl/story-chart/line.js +2 -2
  350. package/es/dsl/story-chart/line.js.map +1 -1
  351. package/es/dsl/story-chart/pie.d.ts +2 -0
  352. package/es/dsl/story-chart/pie.js +4 -1
  353. package/es/dsl/story-chart/pie.js.map +1 -1
  354. package/es/dsl/story-processor/graphic/appear.js.map +1 -1
  355. package/es/dsl/story-processor/graphic/effect/appear.js +1 -8
  356. package/es/dsl/story-processor/graphic/effect/appear.js.map +1 -1
  357. package/es/dsl/story-processor/graphic/effect/typewriter.js +1 -1
  358. package/es/dsl/story-processor/graphic/effect/typewriter.js.map +1 -1
  359. package/es/dsl/story-processor/index.js +1 -1
  360. package/es/dsl/story-processor/processor.js +1 -1
  361. package/es/dsl/types/index.d.ts +1 -0
  362. package/es/dsl/types/index.js.map +1 -1
  363. package/es/dsl/utils/datum.js +2 -1
  364. package/es/dsl/utils/flicker.js +1 -1
  365. package/es/edit/const.d.ts +1 -3
  366. package/es/edit/const.js +1 -0
  367. package/es/edit/const.js.map +1 -1
  368. package/es/edit/edit-action.d.ts +9 -0
  369. package/es/edit/edit-action.js +63 -5
  370. package/es/edit/edit-action.js.map +1 -1
  371. package/es/edit/edit-component/base-selection.d.ts +8 -3
  372. package/es/edit/edit-component/base-selection.js +31 -3
  373. package/es/edit/edit-component/base-selection.js.map +1 -1
  374. package/es/edit/edit-component/chart-selection.d.ts +15 -0
  375. package/es/edit/edit-component/chart-selection.js +31 -0
  376. package/es/edit/edit-component/chart-selection.js.map +1 -0
  377. package/es/edit/edit-component/common.d.ts +1 -11
  378. package/es/edit/edit-component/common.js +1 -26
  379. package/es/edit/edit-component/common.js.map +1 -1
  380. package/es/edit/edit-component/edit-control/richtext-control.d.ts +19 -0
  381. package/es/edit/edit-component/edit-control/richtext-control.js +28 -0
  382. package/es/edit/edit-component/edit-control/richtext-control.js.map +1 -0
  383. package/es/edit/edit-component/edit-control/richtext-transform-control.d.ts +2 -3
  384. package/es/edit/edit-component/edit-control/richtext-transform-control.js +29 -34
  385. package/es/edit/edit-component/edit-control/richtext-transform-control.js.map +1 -1
  386. package/es/edit/edit-component/edit-control/transform-control.d.ts +4 -2
  387. package/es/edit/edit-component/edit-control/transform-control.js +10 -6
  388. package/es/edit/edit-component/edit-control/transform-control.js.map +1 -1
  389. package/es/edit/edit-component/edit-control/transform-drag.d.ts +1 -0
  390. package/es/edit/edit-component/edit-control/transform-drag.js +4 -2
  391. package/es/edit/edit-component/edit-control/transform-drag.js.map +1 -1
  392. package/es/edit/edit-component/image-selection.d.ts +1 -2
  393. package/es/edit/edit-component/image-selection.js +2 -5
  394. package/es/edit/edit-component/image-selection.js.map +1 -1
  395. package/es/edit/edit-component/index.js +7 -9
  396. package/es/edit/edit-component/index.js.map +1 -1
  397. package/es/edit/edit-component/layer-edit.js +0 -2
  398. package/es/edit/edit-component/mixin/richtext.d.ts +21 -0
  399. package/es/edit/edit-component/mixin/richtext.js +18 -0
  400. package/es/edit/edit-component/mixin/richtext.js.map +1 -0
  401. package/es/edit/edit-component/rect-selection.d.ts +8 -12
  402. package/es/edit/edit-component/rect-selection.js +14 -21
  403. package/es/edit/edit-component/rect-selection.js.map +1 -1
  404. package/es/edit/edit-component/richtext-selection-common.d.ts +19 -0
  405. package/es/edit/edit-component/richtext-selection-common.js +33 -0
  406. package/es/edit/edit-component/richtext-selection-common.js.map +1 -0
  407. package/es/edit/edit-component/richtext-selection.d.ts +0 -2
  408. package/es/edit/edit-component/richtext-selection.js +1 -7
  409. package/es/edit/edit-component/richtext-selection.js.map +1 -1
  410. package/es/edit/edit-component/shape-selection.d.ts +11 -0
  411. package/es/edit/edit-component/shape-selection.js +30 -0
  412. package/es/edit/edit-component/shape-selection.js.map +1 -0
  413. package/es/edit/edit-component/text-selection.d.ts +0 -3
  414. package/es/edit/edit-component/text-selection.js +2 -12
  415. package/es/edit/edit-component/text-selection.js.map +1 -1
  416. package/es/edit/edit.d.ts +5 -2
  417. package/es/edit/edit.js +21 -4
  418. package/es/edit/edit.js.map +1 -1
  419. package/es/edit/interface.d.ts +6 -1
  420. package/es/edit/interface.js +3 -1
  421. package/es/edit/interface.js.map +1 -1
  422. package/es/index.d.ts +3 -1
  423. package/es/index.js +5 -1
  424. package/es/index.js.map +1 -1
  425. package/es/interface/type.js +1 -2
  426. package/es/player/interface/player.d.ts +5 -2
  427. package/es/player/interface/player.js.map +1 -1
  428. package/es/player/interface/scheduler.d.ts +1 -1
  429. package/es/player/interface/scheduler.js.map +1 -1
  430. package/es/player/player.d.ts +7 -2
  431. package/es/player/player.js +33 -20
  432. package/es/player/player.js.map +1 -1
  433. package/es/player/processor/chart/common/chartAppear.d.ts +5 -0
  434. package/es/player/processor/chart/common/chartAppear.js +4 -0
  435. package/es/player/processor/chart/common/chartAppear.js.map +1 -0
  436. package/es/player/processor/chart/common/commonAppear.d.ts +8 -0
  437. package/es/player/processor/chart/common/commonAppear.js +36 -0
  438. package/es/player/processor/chart/common/commonAppear.js.map +1 -0
  439. package/es/player/processor/chart/component/axisAppear.d.ts +2 -2
  440. package/es/player/processor/chart/component/axisAppear.js +3 -1
  441. package/es/player/processor/chart/component/axisAppear.js.map +1 -1
  442. package/es/player/processor/chart/component/commonAppear.d.ts +3 -3
  443. package/es/player/processor/chart/component/commonAppear.js +3 -14
  444. package/es/player/processor/chart/component/commonAppear.js.map +1 -1
  445. package/es/player/processor/chart/component/labelAppear.d.ts +2 -2
  446. package/es/player/processor/chart/component/labelAppear.js +1 -1
  447. package/es/player/processor/chart/component/labelAppear.js.map +1 -1
  448. package/es/player/processor/chart/component/legendsAppear.d.ts +4 -3
  449. package/es/player/processor/chart/component/legendsAppear.js +2 -2
  450. package/es/player/processor/chart/component/legendsAppear.js.map +1 -1
  451. package/es/player/processor/chart/component/titleAppear.d.ts +4 -3
  452. package/es/player/processor/chart/component/titleAppear.js +2 -2
  453. package/es/player/processor/chart/component/titleAppear.js.map +1 -1
  454. package/es/player/processor/chart/rankingBar/rankingBar.d.ts +29 -0
  455. package/es/player/processor/chart/rankingBar/rankingBar.js +50 -0
  456. package/es/player/processor/chart/rankingBar/rankingBar.js.map +1 -0
  457. package/es/player/processor/chart/seriesmark/commonTransformMarkAppear.d.ts +3 -3
  458. package/es/player/processor/chart/seriesmark/commonTransformMarkAppear.js.map +1 -1
  459. package/{cjs/player/processor/chart/seriesmark/transformSymbolAppear.d.ts → es/player/processor/chart/seriesmark/transformArcVisibility.d.ts} +3 -3
  460. package/es/player/processor/chart/seriesmark/{transformArcAppear.js → transformArcVisibility.js} +3 -4
  461. package/es/player/processor/chart/seriesmark/transformArcVisibility.js.map +1 -0
  462. package/es/player/processor/chart/seriesmark/transformLineVisibility.d.ts +12 -0
  463. package/es/player/processor/chart/seriesmark/transformLineVisibility.js +4 -0
  464. package/es/player/processor/chart/seriesmark/transformLineVisibility.js.map +1 -0
  465. package/es/player/processor/chart/seriesmark/transformRectVisibility.d.ts +12 -0
  466. package/es/player/processor/chart/seriesmark/{transformRectAppear.js → transformRectVisibility.js} +4 -5
  467. package/es/player/processor/chart/seriesmark/transformRectVisibility.js.map +1 -0
  468. package/es/player/processor/chart/seriesmark/transformSymbolVisibility.d.ts +12 -0
  469. package/es/player/processor/chart/seriesmark/transformSymbolVisibility.js +4 -0
  470. package/es/player/processor/chart/seriesmark/transformSymbolVisibility.js.map +1 -0
  471. package/es/player/processor/chart/seriesmark/transformTextVisibility.d.ts +12 -0
  472. package/es/player/processor/chart/seriesmark/transformTextVisibility.js +4 -0
  473. package/es/player/processor/chart/seriesmark/transformTextVisibility.js.map +1 -0
  474. package/es/player/processor/chart/transformMap.d.ts +24 -18
  475. package/es/player/processor/chart/transformMap.js +14 -11
  476. package/es/player/processor/chart/transformMap.js.map +1 -1
  477. package/es/player/processor/chart/vchart.d.ts +76 -18
  478. package/es/player/processor/chart/vchart.js +145 -34
  479. package/es/player/processor/chart/vchart.js.map +1 -1
  480. package/es/player/processor/common/bounce-processor.d.ts +3 -0
  481. package/es/player/processor/common/bounce-processor.js +19 -0
  482. package/es/player/processor/common/bounce-processor.js.map +1 -0
  483. package/es/player/processor/common/common.d.ts +5 -0
  484. package/es/player/processor/common/common.js +12 -0
  485. package/es/player/processor/common/common.js.map +1 -0
  486. package/es/player/processor/common/fade-processor.d.ts +4 -0
  487. package/es/player/processor/common/fade-processor.js +30 -0
  488. package/es/player/processor/common/fade-processor.js.map +1 -0
  489. package/es/player/processor/common/move-processor.d.ts +8 -0
  490. package/es/player/processor/common/move-processor.js +148 -0
  491. package/es/player/processor/common/move-processor.js.map +1 -0
  492. package/es/player/processor/common/scale-processor.d.ts +8 -0
  493. package/es/player/processor/common/scale-processor.js +43 -0
  494. package/es/player/processor/common/scale-processor.js.map +1 -0
  495. package/es/player/processor/common/wipe-processor.d.ts +4 -0
  496. package/es/player/processor/common/wipe-processor.js +36 -0
  497. package/es/player/processor/common/wipe-processor.js.map +1 -0
  498. package/es/player/processor/common-processor.js +3 -0
  499. package/es/player/processor/common-processor.js.map +1 -0
  500. package/es/player/processor/component/common-component.d.ts +45 -9
  501. package/es/player/processor/component/common-component.js +97 -73
  502. package/es/player/processor/component/common-component.js.map +1 -1
  503. package/es/player/processor/component/image/image-visibility.d.ts +5 -0
  504. package/es/player/processor/component/image/image-visibility.js +8 -0
  505. package/es/player/processor/component/image/image-visibility.js.map +1 -0
  506. package/es/player/processor/component/line/line-visibility.d.ts +5 -0
  507. package/es/player/processor/component/line/line-visibility.js +8 -0
  508. package/es/player/processor/component/line/line-visibility.js.map +1 -0
  509. package/es/player/processor/component/rect/rect-visibility.d.ts +5 -0
  510. package/es/player/processor/component/rect/rect-visibility.js +8 -0
  511. package/es/player/processor/component/rect/rect-visibility.js.map +1 -0
  512. package/es/player/processor/component/shape/shape-visibility.d.ts +5 -0
  513. package/es/player/processor/component/shape/shape-visibility.js +8 -0
  514. package/es/player/processor/component/shape/shape-visibility.js.map +1 -0
  515. package/es/player/processor/component/text/text-visibility.d.ts +6 -0
  516. package/es/player/processor/component/text/text-visibility.js +39 -0
  517. package/es/player/processor/component/text/text-visibility.js.map +1 -0
  518. package/es/player/processor/component/timeline/timeline-visibility.d.ts +15 -0
  519. package/es/player/processor/component/timeline/timeline-visibility.js +71 -0
  520. package/es/player/processor/component/timeline/timeline-visibility.js.map +1 -0
  521. package/es/player/processor/component/utils.d.ts +3 -1
  522. package/es/player/processor/component/utils.js +13 -0
  523. package/es/player/processor/component/utils.js.map +1 -1
  524. package/es/player/processor/interface/action-processor.d.ts +6 -6
  525. package/es/player/processor/interface/action-processor.js.map +1 -1
  526. package/es/player/processor/interface/appear-action.d.ts +30 -18
  527. package/es/player/processor/interface/appear-action.js.map +1 -1
  528. package/es/player/processor/interface/common-action.d.ts +15 -0
  529. package/es/player/processor/interface/common-action.js +2 -0
  530. package/es/player/processor/interface/common-action.js.map +1 -0
  531. package/es/player/processor/interface/style-action.d.ts +33 -0
  532. package/es/player/processor/interface/style-action.js +2 -0
  533. package/es/player/processor/interface/style-action.js.map +1 -0
  534. package/es/player/processor/processor-item.d.ts +5 -5
  535. package/es/player/processor/processor-item.js.map +1 -1
  536. package/es/player/processor/processor.d.ts +3 -3
  537. package/es/player/processor/processor.js +2 -2
  538. package/es/player/processor/processor.js.map +1 -1
  539. package/es/player/processor/processorMap.d.ts +31 -21
  540. package/es/player/processor/processorMap.js +59 -15
  541. package/es/player/processor/processorMap.js.map +1 -1
  542. package/es/player/scheduler.d.ts +4 -3
  543. package/es/player/scheduler.js +16 -10
  544. package/es/player/scheduler.js.map +1 -1
  545. package/es/scene/scene.js +2 -0
  546. package/es/story/canvas/canvas.d.ts +4 -2
  547. package/es/story/canvas/canvas.js +21 -14
  548. package/es/story/canvas/canvas.js.map +1 -1
  549. package/es/story/character/base/base.d.ts +7 -4
  550. package/es/story/character/base/base.js +7 -4
  551. package/es/story/character/base/base.js.map +1 -1
  552. package/es/story/character/chart/character.d.ts +16 -0
  553. package/es/story/character/chart/character.js +63 -17
  554. package/es/story/character/chart/character.js.map +1 -1
  555. package/es/story/character/chart/characters/rankingBar.d.ts +4 -0
  556. package/es/story/character/chart/characters/rankingBar.js +14 -0
  557. package/es/story/character/chart/characters/rankingBar.js.map +1 -0
  558. package/es/story/character/chart/graphic/vchart-graphic-picker.js +6 -8
  559. package/es/story/character/chart/graphic/vchart-graphic-picker.js.map +1 -1
  560. package/es/story/character/chart/graphic/vchart-graphic-render.js +9 -9
  561. package/es/story/character/chart/graphic/vchart-graphic-render.js.map +1 -1
  562. package/es/story/character/chart/graphic/vchart-graphic.d.ts +13 -2
  563. package/es/story/character/chart/graphic/vchart-graphic.js +85 -13
  564. package/es/story/character/chart/graphic/vchart-graphic.js.map +1 -1
  565. package/es/story/character/chart/runtime/common-spec.d.ts +2 -4
  566. package/es/story/character/chart/runtime/common-spec.js +0 -2
  567. package/es/story/character/chart/runtime/common-spec.js.map +1 -1
  568. package/es/story/character/chart/runtime/component-spec.d.ts +4 -3
  569. package/es/story/character/chart/runtime/component-spec.js +7 -5
  570. package/es/story/character/chart/runtime/component-spec.js.map +1 -1
  571. package/es/story/character/chart/temp/constant.d.ts +1 -0
  572. package/es/story/character/chart/temp/constant.js +2 -1
  573. package/es/story/character/chart/temp/constant.js.map +1 -1
  574. package/es/story/character/chart/temp/templates/bar.d.ts +20 -0
  575. package/es/story/character/chart/temp/templates/bar.js +27 -0
  576. package/es/story/character/chart/temp/templates/bar.js.map +1 -0
  577. package/es/story/character/chart/temp/templates/base-temp.d.ts +6 -4
  578. package/es/story/character/chart/temp/templates/base-temp.js +1 -1
  579. package/es/story/character/chart/temp/templates/base-temp.js.map +1 -1
  580. package/es/story/character/chart/temp/templates/ranking-bar-temp.d.ts +8 -0
  581. package/es/story/character/chart/temp/templates/ranking-bar-temp.js +18 -0
  582. package/es/story/character/chart/temp/templates/ranking-bar-temp.js.map +1 -0
  583. package/es/story/character/component/character-group/component-group-graphic-render.d.ts +2 -2
  584. package/es/story/character/component/character-group/component-group-graphic-render.js +4 -4
  585. package/es/story/character/component/character-group/component-group-graphic-render.js.map +1 -1
  586. package/es/story/character/component/character-group/component-group-graphic.d.ts +2 -1
  587. package/es/story/character/component/character-group/component-group-graphic.js +11 -3
  588. package/es/story/character/component/character-group/component-group-graphic.js.map +1 -1
  589. package/es/story/character/component/character.d.ts +9 -4
  590. package/es/story/character/component/character.js +26 -5
  591. package/es/story/character/component/character.js.map +1 -1
  592. package/es/story/character/component/characters/character-image.d.ts +3 -0
  593. package/es/story/character/component/characters/character-image.js +4 -0
  594. package/es/story/character/component/characters/character-image.js.map +1 -1
  595. package/es/story/character/component/characters/character-rect.d.ts +3 -0
  596. package/es/story/character/component/characters/character-rect.js +4 -0
  597. package/es/story/character/component/characters/character-rect.js.map +1 -1
  598. package/es/story/character/component/characters/character-richtext.d.ts +1 -6
  599. package/es/story/character/component/characters/character-richtext.js +0 -12
  600. package/es/story/character/component/characters/character-richtext.js.map +1 -1
  601. package/es/story/character/component/characters/character-shape.d.ts +4 -0
  602. package/es/story/character/component/characters/character-shape.js +15 -0
  603. package/es/story/character/component/characters/character-shape.js.map +1 -1
  604. package/es/story/character/component/characters/character-text.js +2 -2
  605. package/es/story/character/component/characters/character-text.js.map +1 -1
  606. package/es/story/character/component/graphic/graphic-base-text.d.ts +24 -0
  607. package/es/story/character/component/graphic/{graphic-text.js → graphic-base-text.js} +44 -23
  608. package/es/story/character/component/graphic/graphic-base-text.js.map +1 -0
  609. package/es/story/character/component/graphic/graphic.d.ts +1 -1
  610. package/es/story/character/component/graphic/graphic.js.map +1 -1
  611. package/es/story/character/component/graphic/richtext.d.ts +1 -9
  612. package/es/story/character/component/graphic/richtext.js +0 -41
  613. package/es/story/character/component/graphic/richtext.js.map +1 -1
  614. package/es/story/character/component/graphic/symbol.d.ts +3 -0
  615. package/es/story/character/component/graphic/symbol.js +17 -2
  616. package/es/story/character/component/graphic/symbol.js.map +1 -1
  617. package/es/story/character/component/graphic/text.d.ts +4 -3
  618. package/es/story/character/component/graphic/text.js +21 -4
  619. package/es/story/character/component/graphic/text.js.map +1 -1
  620. package/es/story/character/component/graphic/timeline.d.ts +6 -0
  621. package/es/story/character/component/graphic/timeline.js +7 -1
  622. package/es/story/character/component/graphic/timeline.js.map +1 -1
  623. package/es/story/character/dsl-interface.d.ts +4 -2
  624. package/es/story/character/dsl-interface.js.map +1 -1
  625. package/es/story/character/runtime-interface.d.ts +10 -4
  626. package/es/story/character/runtime-interface.js.map +1 -1
  627. package/es/story/character/visactor/character.d.ts +20 -6
  628. package/es/story/character/visactor/character.js +18 -0
  629. package/es/story/character/visactor/character.js.map +1 -1
  630. package/es/story/character/visactor/interface.d.ts +1 -0
  631. package/es/story/character/visactor/interface.js.map +1 -1
  632. package/es/story/character-tree/character-tree.d.ts +1 -0
  633. package/es/story/character-tree/character-tree.js +6 -0
  634. package/es/story/character-tree/character-tree.js.map +1 -1
  635. package/es/story/index.js +7 -6
  636. package/es/story/index.js.map +1 -1
  637. package/es/story/interface/dsl-interface.d.ts +7 -9
  638. package/es/story/interface/dsl-interface.js.map +1 -1
  639. package/es/story/interface/player.d.ts +1 -13
  640. package/es/story/interface/player.js +2 -1
  641. package/es/story/interface/player.js.map +1 -1
  642. package/es/story/interface/runtime-interface.d.ts +5 -3
  643. package/es/story/interface/runtime-interface.js.map +1 -1
  644. package/es/story/story.d.ts +2 -1
  645. package/es/story/story.js +9 -6
  646. package/es/story/story.js.map +1 -1
  647. package/es/story/utils/layout.d.ts +2 -1
  648. package/es/story/utils/layout.js +2 -2
  649. package/es/story/utils/layout.js.map +1 -1
  650. package/es/story/utils/vchart-pick.d.ts +115 -0
  651. package/es/story/utils/vchart-pick.js +115 -0
  652. package/es/story/utils/vchart-pick.js.map +1 -0
  653. package/es/util/space.js +2 -1
  654. package/package.json +9 -8
  655. package/cjs/player/processor/chart/seriesmark/transformArcAppear.js.map +0 -1
  656. package/cjs/player/processor/chart/seriesmark/transformLineAppear.js +0 -14
  657. package/cjs/player/processor/chart/seriesmark/transformLineAppear.js.map +0 -1
  658. package/cjs/player/processor/chart/seriesmark/transformRectAppear.js.map +0 -1
  659. package/cjs/player/processor/chart/seriesmark/transformSymbolAppear.js +0 -14
  660. package/cjs/player/processor/chart/seriesmark/transformSymbolAppear.js.map +0 -1
  661. package/cjs/player/processor/chart/seriesmark/transformTextAppear.d.ts +0 -12
  662. package/cjs/player/processor/chart/seriesmark/transformTextAppear.js +0 -14
  663. package/cjs/player/processor/chart/seriesmark/transformTextAppear.js.map +0 -1
  664. package/cjs/player/processor/component/image/image-appear.d.ts +0 -5
  665. package/cjs/player/processor/component/image/image-appear.js +0 -16
  666. package/cjs/player/processor/component/image/image-appear.js.map +0 -1
  667. package/cjs/player/processor/component/line/line-appear.d.ts +0 -5
  668. package/cjs/player/processor/component/line/line-appear.js +0 -16
  669. package/cjs/player/processor/component/line/line-appear.js.map +0 -1
  670. package/cjs/player/processor/component/rect/rect-appear.d.ts +0 -5
  671. package/cjs/player/processor/component/rect/rect-appear.js +0 -16
  672. package/cjs/player/processor/component/rect/rect-appear.js.map +0 -1
  673. package/cjs/player/processor/component/shape/shape-appear.d.ts +0 -5
  674. package/cjs/player/processor/component/shape/shape-appear.js +0 -16
  675. package/cjs/player/processor/component/shape/shape-appear.js.map +0 -1
  676. package/cjs/player/processor/component/text/text-appear.d.ts +0 -7
  677. package/cjs/player/processor/component/text/text-appear.js +0 -34
  678. package/cjs/player/processor/component/text/text-appear.js.map +0 -1
  679. package/cjs/player/processor/component/timeline/timeline-appear.d.ts +0 -7
  680. package/cjs/player/processor/component/timeline/timeline-appear.js +0 -33
  681. package/cjs/player/processor/component/timeline/timeline-appear.js.map +0 -1
  682. package/cjs/story/character/component/graphic/graphic-text.d.ts +0 -18
  683. package/cjs/story/character/component/graphic/graphic-text.js.map +0 -1
  684. package/cjs/story/player/encode.js +0 -3
  685. package/cjs/story/player/encode.js.map +0 -1
  686. package/cjs/story/player/index.js +0 -3
  687. package/cjs/story/player/index.js.map +0 -1
  688. package/cjs/story/player/ticker.d.ts +0 -1
  689. package/cjs/story/player/ticker.js +0 -3
  690. package/cjs/story/player/ticker.js.map +0 -1
  691. package/es/player/processor/chart/seriesmark/transformArcAppear.d.ts +0 -12
  692. package/es/player/processor/chart/seriesmark/transformArcAppear.js.map +0 -1
  693. package/es/player/processor/chart/seriesmark/transformLineAppear.d.ts +0 -12
  694. package/es/player/processor/chart/seriesmark/transformLineAppear.js +0 -7
  695. package/es/player/processor/chart/seriesmark/transformLineAppear.js.map +0 -1
  696. package/es/player/processor/chart/seriesmark/transformRectAppear.d.ts +0 -12
  697. package/es/player/processor/chart/seriesmark/transformRectAppear.js.map +0 -1
  698. package/es/player/processor/chart/seriesmark/transformSymbolAppear.d.ts +0 -12
  699. package/es/player/processor/chart/seriesmark/transformSymbolAppear.js +0 -7
  700. package/es/player/processor/chart/seriesmark/transformSymbolAppear.js.map +0 -1
  701. package/es/player/processor/chart/seriesmark/transformTextAppear.d.ts +0 -12
  702. package/es/player/processor/chart/seriesmark/transformTextAppear.js +0 -7
  703. package/es/player/processor/chart/seriesmark/transformTextAppear.js.map +0 -1
  704. package/es/player/processor/component/image/image-appear.d.ts +0 -5
  705. package/es/player/processor/component/image/image-appear.js +0 -8
  706. package/es/player/processor/component/image/image-appear.js.map +0 -1
  707. package/es/player/processor/component/line/line-appear.d.ts +0 -5
  708. package/es/player/processor/component/line/line-appear.js +0 -8
  709. package/es/player/processor/component/line/line-appear.js.map +0 -1
  710. package/es/player/processor/component/rect/rect-appear.d.ts +0 -5
  711. package/es/player/processor/component/rect/rect-appear.js +0 -8
  712. package/es/player/processor/component/rect/rect-appear.js.map +0 -1
  713. package/es/player/processor/component/shape/shape-appear.d.ts +0 -5
  714. package/es/player/processor/component/shape/shape-appear.js +0 -8
  715. package/es/player/processor/component/shape/shape-appear.js.map +0 -1
  716. package/es/player/processor/component/text/text-appear.d.ts +0 -7
  717. package/es/player/processor/component/text/text-appear.js +0 -32
  718. package/es/player/processor/component/text/text-appear.js.map +0 -1
  719. package/es/player/processor/component/timeline/timeline-appear.d.ts +0 -7
  720. package/es/player/processor/component/timeline/timeline-appear.js +0 -27
  721. package/es/player/processor/component/timeline/timeline-appear.js.map +0 -1
  722. package/es/story/character/component/graphic/graphic-text.d.ts +0 -18
  723. package/es/story/character/component/graphic/graphic-text.js.map +0 -1
  724. package/es/story/player/encode.d.ts +0 -1
  725. package/es/story/player/encode.js +0 -3
  726. package/es/story/player/encode.js.map +0 -1
  727. package/es/story/player/index.d.ts +0 -1
  728. package/es/story/player/index.js +0 -3
  729. package/es/story/player/index.js.map +0 -1
  730. package/es/story/player/ticker.d.ts +0 -1
  731. package/es/story/player/ticker.js +0 -3
  732. package/es/story/player/ticker.js.map +0 -1
  733. /package/cjs/{story/player/encode.d.ts → player/processor/common-processor.d.ts} +0 -0
  734. /package/{cjs/story/player/index.d.ts → es/player/processor/common-processor.d.ts} +0 -0
@@ -40,7 +40,7 @@ export type IUpdateParams = {
40
40
  text?: string | string[];
41
41
  };
42
42
  export interface ITransformControl extends IGroup {
43
- updateSubBounds: (b: IAABBBoundsLike) => void;
43
+ updateBoundsAndAngle: (b: IAABBBoundsLike, angle: number) => void;
44
44
  onActive: () => void;
45
45
  onUpdate: (cb: (data: IUpdateParams, event?: VRenderPointerEvent) => Partial<IUpdateParams> | false) => void;
46
46
  onEditorEnd: (cb: (event?: VRenderPointerEvent) => void) => void;
@@ -91,7 +91,7 @@ export declare class TransformControl extends AbstractComponent<Required<Transfo
91
91
  private _dragEnd;
92
92
  private _unDragEnd;
93
93
  protected _editorEnd: () => void;
94
- updateSubBounds(bounds: IAABBBoundsLike): void;
94
+ updateBoundsAndAngle(bounds: IAABBBoundsLike, angle: number): void;
95
95
  onActive(): void;
96
96
  initEvent(): void;
97
97
  protected handleMouseMove: (e: any) => void;
@@ -131,6 +131,8 @@ export declare class TransformControl extends AbstractComponent<Required<Transfo
131
131
  shapePoints: IPointLike[];
132
132
  };
133
133
  releaseEvent(): void;
134
+ releaseDragger(): void;
135
+ private _isRelease;
134
136
  release(): void;
135
137
  }
136
138
  export {};
@@ -81,7 +81,7 @@ export class TransformControl extends AbstractComponent {
81
81
  this.isDragging && (this.dragOffsetX = 0, this.dragOffsetY = 0, this.setActiveGraphic(null),
82
82
  null === (_a = this.editEndCbs) || void 0 === _a || _a.forEach((cb => cb(e))), this.isEditor = !1,
83
83
  this.isDragging = !1);
84
- }, this.editComponent = editComponent, this._editorConfig = {
84
+ }, this._isRelease = !1, this.editComponent = editComponent, this._editorConfig = {
85
85
  move: !1 !== attributes.move,
86
86
  rotate: !1 !== attributes.rotate,
87
87
  resize: !1 !== attributes.resize,
@@ -94,7 +94,7 @@ export class TransformControl extends AbstractComponent {
94
94
  this.rect = createRect({
95
95
  fill: "transparent",
96
96
  stroke: !1,
97
- pickable: !0
97
+ pickable: !1
98
98
  }), this.editBorder = createRect({
99
99
  fill: !1,
100
100
  stroke: !1
@@ -111,7 +111,7 @@ export class TransformControl extends AbstractComponent {
111
111
  visible: !1
112
112
  }));
113
113
  }
114
- updateSubBounds(bounds) {
114
+ updateBoundsAndAngle(bounds, angle) {
115
115
  var _a, _b;
116
116
  this.rect.setAttributes({
117
117
  x: bounds.x1,
@@ -121,7 +121,8 @@ export class TransformControl extends AbstractComponent {
121
121
  });
122
122
  const x = (null !== (_a = this.attribute.x) && void 0 !== _a ? _a : 0) + (bounds.x1 + bounds.x2) / 2, y = (null !== (_b = this.attribute.y) && void 0 !== _b ? _b : 0) + (bounds.y1 + bounds.y2) / 2;
123
123
  this.setAttributes({
124
- anchor: [ x, y ]
124
+ anchor: [ x, y ],
125
+ angle: angle
125
126
  });
126
127
  }
127
128
  onActive() {
@@ -406,9 +407,12 @@ export class TransformControl extends AbstractComponent {
406
407
  this.stage.removeEventListener("pointerup", this.handleDragMouseUp)), this.removeEventListener("pointerout", this.handleMouseOut),
407
408
  this.removeEventListener("pointerdown", this.handleDragMouseDown);
408
409
  }
410
+ releaseDragger() {
411
+ this._dragger && this._dragger.release();
412
+ }
409
413
  release() {
410
- this.releaseEvent(), this.parent.removeChild(this), this.editBorder = null, this.updateCbs = [],
411
- this.editEndCbs = [], this.unTransStartCbs = [], super.release();
414
+ this._isRelease = !0, this.releaseEvent(), this.parent.removeChild(this), this.editBorder = null,
415
+ this.updateCbs = [], this.editEndCbs = [], this.unTransStartCbs = [], super.release();
412
416
  }
413
417
  }
414
418
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/edit/edit-component/edit-control/transform-control.ts"],"names":[],"mappings":"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","file":"transform-control.js","sourcesContent":["/**\n * @description PopTip组件\n */\nimport type {\n ICircleGraphicAttribute,\n IPathGraphicAttribute,\n IGraphic,\n IGroupGraphicAttribute,\n IRect,\n IRectGraphicAttribute,\n ILineGraphicAttribute,\n IGroup,\n IGraphicAttribute\n} from '@visactor/vrender';\nimport { createRect } from '@visactor/vrender';\nimport type { IAABBBounds, IAABBBoundsLike, IPointLike } from '@visactor/vutils';\nimport { AABBBounds, merge, normalizePadding, pi } from '@visactor/vutils';\nimport { AbstractComponent } from '@visactor/vrender-components';\nimport { transformPointWithMatrix } from '../../../util/space';\nimport { MinSize } from '../../../constants/attribute';\nimport { normalizeAngle } from '../../../util/math';\nimport { DRAG_ANCHOR_COLOR, SHAPE_SELECT_COLOR } from './constants';\nimport type { VRenderPointerEvent } from '../../../interface/type';\nimport type { IEditComponent } from '../../interface';\nimport { Edit } from '../../edit';\nimport { DragComponent } from './transform-drag';\n// import { EditorActionMode } from './enum';\n\ntype AnchorDirection = 'top' | 'bottom' | 'left-top' | 'left-bottom' | 'right' | 'left' | 'right-top' | 'right-bottom';\n\nconst fixedAngles = [0, Math.PI / 2, Math.PI, (Math.PI * 3) / 2, Math.PI * 2];\nconst maxAngleDifference = (3 / 180) * Math.PI; // 10 degrees\n\nexport type TransformAttributes = {\n padding?: number | [number, number, number, number];\n resizeBorder?: Partial<ILineGraphicAttribute>;\n cornerRect?: Partial<IRectGraphicAttribute>;\n rotateCircle?: Partial<ICircleGraphicAttribute>;\n rotatePath?: Partial<IPathGraphicAttribute> & { size: number };\n handlerLine?: Partial<ILineGraphicAttribute> & { size: number };\n shapeCircle?: Partial<ICircleGraphicAttribute>;\n move?: boolean;\n rotate?: boolean;\n resize?: boolean;\n reshape?: boolean;\n setCursor?: (c: string) => void;\n shapePoints?: IPointLike[];\n isShapePointAbsolute?: boolean;\n /**\n * 支持的锚点\n */\n enabledAnchors?: AnchorDirection[];\n // minSize\n minWidth?: number;\n minHeight?: number;\n proportionalScaling?: boolean;\n} & IGroupGraphicAttribute;\n\nexport type IUpdateParams = {\n x: number;\n y: number;\n width: number;\n height: number;\n angle: number;\n anchor: [number | string, number | string];\n // relative position of shape point\n shapePoints: IPointLike[];\n // text\n text?: string | string[];\n};\n\nconst borderAnchors = ['top', 'bottom', 'left', 'right'];\nconst cornerAnchors = ['left-top', 'right-top', 'left-bottom', 'right-bottom'];\n\nconst anchorPositionMap = {\n top: [0, 0, 1, 0],\n bottom: [0, 1, 1, 1],\n left: [0, 0, 0, 1],\n right: [1, 0, 1, 1],\n\n 'left-top': [0, 0],\n 'right-top': [1, 0],\n 'left-bottom': [0, 1],\n 'right-bottom': [1, 1]\n};\n\nconst anchorCursorMap = {\n 'left-top': 'nwse-resize',\n top: 'ns-resize',\n 'right-top': 'nesw-resize',\n left: 'ew-resize',\n right: 'ew-resize',\n 'left-bottom': 'nesw-resize',\n bottom: 'ns-resize',\n 'right-bottom': 'nwse-resize'\n};\n\nexport interface ITransformControl extends IGroup {\n updateSubBounds: (b: IAABBBoundsLike) => void;\n onActive: () => void;\n onUpdate: (cb: (data: IUpdateParams, event?: VRenderPointerEvent) => Partial<IUpdateParams> | false) => void;\n onEditorEnd: (cb: (event?: VRenderPointerEvent) => void) => void;\n onEditorStart: (cb: (event?: VRenderPointerEvent) => void) => void;\n onUnTransStart: (cb: (event: PointerEvent) => void) => void;\n}\n\nexport class TransformControl extends AbstractComponent<Required<TransformAttributes>> implements ITransformControl {\n name = 'TransformControl';\n rectB: IAABBBounds;\n isDragging: boolean = false;\n dragOffsetX: number;\n dragOffsetY: number;\n dragStartAngle: number = 0;\n activeGraphic: IGraphic | null;\n horizontalResizble: number;\n verticalResizble: number;\n rotatable: number;\n reshapeState: number;\n rect: IRect;\n editBorder: IRect;\n // state: {\n // actionMode: EditorActionMode;\n // };\n // 是否正在执行addChildUpdateBoundTag,避免循环调用\n runningAddChildUpdateBoundTag: boolean;\n\n updateCbs: Array<(data: IUpdateParams, event?: VRenderPointerEvent) => Partial<IUpdateParams> | false>;\n editEndCbs: Array<(event?: VRenderPointerEvent) => void>;\n editStartCbs: Array<(event?: VRenderPointerEvent) => void>;\n unTransStartCbs: Array<(event: PointerEvent) => void>;\n\n isEditor: boolean = false;\n\n _editorConfig: {\n move: boolean;\n rotate: boolean;\n resize: boolean;\n reshape: boolean;\n };\n\n minSize: { width: number; height: number } = { width: MinSize, height: MinSize };\n\n proportionalScaling: boolean = false;\n // 缩放前的属性\n _rectBeforeScale: IRectGraphicAttribute;\n // 缩放前的点击位置,用来进行等比缩放处理缩放比\n _eventPosBeforeScale: any;\n\n _setCursor: (c: string) => void = null;\n\n editComponent: IEditComponent;\n\n // drag\n _dragger: DragComponent;\n private _lastBoxInDrag: IRect;\n\n static defaultAttributes: Partial<TransformAttributes> = {\n // 去掉padding\n // padding: 2,\n resizeBorder: {\n stroke: SHAPE_SELECT_COLOR,\n lineWidth: 1\n },\n cornerRect: {\n fill: 'white',\n stroke: SHAPE_SELECT_COLOR,\n lineWidth: 1,\n width: 8,\n height: 8,\n cornerRadius: 2\n },\n rotateCircle: {\n fill: 'white',\n stroke: SHAPE_SELECT_COLOR,\n radius: 10\n },\n rotatePath: {\n fill: '#000000',\n size: 12,\n angle: Math.PI,\n // eslint-disable-next-line\n path: 'M202.403,95.22c0,46.312-33.237,85.002-77.109,93.484v25.663l-69.76-40l69.76-40v23.494 c27.176-7.87,47.109-32.964,47.109-62.642c0-35.962-29.258-65.22-65.22-65.22s-65.22,29.258-65.22,65.22 c0,9.686,2.068,19.001,6.148,27.688l-27.154,12.754c-5.968-12.707-8.994-26.313-8.994-40.441C11.964,42.716,54.68,0,107.184,0 S202.403,42.716,202.403,95.22z'\n },\n handlerLine: {\n stroke: SHAPE_SELECT_COLOR,\n lineWidth: 1,\n size: 24\n },\n shapeCircle: {\n fill: 'white',\n lineWidth: 1,\n radius: 4,\n stroke: DRAG_ANCHOR_COLOR,\n startAngle: 0,\n endAngle: Math.PI * 2\n }\n };\n\n constructor(editComponent: IEditComponent, attributes: Partial<TransformAttributes>) {\n super(merge({ shadowRootIdx: 1 }, TransformControl.defaultAttributes, attributes));\n this.editComponent = editComponent;\n this._editorConfig = {\n move: attributes.move !== false,\n rotate: attributes.rotate !== false,\n resize: attributes.resize !== false,\n reshape: attributes.reshape !== false\n };\n // this.state = {\n // actionMode: EditorActionMode.addTool\n // };\n this.rectB = new AABBBounds();\n this.dragOffsetX = 0;\n this.dragOffsetY = 0;\n this.activeGraphic = null;\n this.horizontalResizble = 0;\n this.verticalResizble = 0;\n this.rotatable = 0;\n this.runningAddChildUpdateBoundTag = false;\n this.minSize.width = attributes.minWidth ?? MinSize;\n this.minSize.height = attributes.minHeight ?? MinSize;\n this.proportionalScaling = attributes.proportionalScaling === true;\n this._setCursor = attributes.setCursor;\n this.rect = createRect({\n fill: 'transparent',\n stroke: false,\n pickable: true\n });\n // this.rect.attachShadow();\n this.editBorder = createRect({\n fill: false,\n stroke: false\n });\n this.editBorder.attachShadow();\n this.add(this.rect);\n this.add(this.editBorder);\n this.editStartCbs = [];\n this.unTransStartCbs = [];\n this.updateCbs = [];\n this.editEndCbs = [];\n }\n\n addDrag() {\n if (!this.stage) {\n return;\n }\n this._dragger = new DragComponent(this.stage);\n this._dragger.dragHandler(this._dragElement);\n this._dragger.dragEndHandler(this._dragEnd);\n this._dragger.unDragEndHandler(this._unDragEnd);\n this._lastBoxInDrag = createRect({\n pickable: false,\n stroke: SHAPE_SELECT_COLOR,\n strokeOpacity: 0.4,\n visible: false\n });\n }\n\n protected _dragElement = (moveX: number, moveY: number) => {\n this._lastBoxInDrag.setAttribute('visible', true);\n const scale = this.stage.defaultLayer?.globalTransMatrix.a ?? 1;\n this.moveBy(moveX / scale, moveY / scale);\n };\n private _dragEnd = () => {\n this._editorEnd();\n };\n private _unDragEnd = () => {\n this._editorEnd();\n };\n\n protected _editorEnd = () => {\n // this._endHandler(this._editorBox.getTransformAttribute());\n // this._editorBox.isEditor = false;\n // this._snapLineX.setAttributes({ visible: false });\n // this._snapLineY.setAttributes({ visible: false });\n\n // this._snapTargetBoxX.setAttributes({ visible: false });\n // this._snapTargetBoxY.setAttributes({ visible: false });\n\n this._lastBoxInDrag.setAttribute('visible', false);\n // this._opt.editorEvent.setCursorSyncToTriggerLayer();\n };\n\n updateSubBounds(bounds: IAABBBoundsLike) {\n // set bounds\n this.rect.setAttributes({\n x: bounds.x1,\n y: bounds.y1,\n width: bounds.x2 - bounds.x1,\n height: bounds.y2 - bounds.y1\n });\n\n // set anchor\n const x = (this.attribute.x ?? 0) + (bounds.x1 + bounds.x2) / 2;\n const y = (this.attribute.y ?? 0) + (bounds.y1 + bounds.y2) / 2;\n this.setAttributes({ anchor: [x, y] });\n }\n\n onActive() {\n this.initEvent();\n }\n\n initEvent() {\n // cursor\n this.editBorder.addEventListener('mousemove', this.handleMouseMove);\n this.addEventListener('pointerout', this.handleMouseOut);\n\n // drag\n this.addEventListener('pointerdown', this.handleDragMouseDown);\n this.addDrag();\n\n this.stage.addEventListener('pointermove', this.handleDragMouseMove);\n this.stage.addEventListener('pointerup', this.handleDragMouseUp);\n }\n\n protected handleMouseMove = (e: any) => {\n if (e.pickParams) {\n const { shadowTarget } = e.pickParams;\n this.setCursor(shadowTarget.attribute.cursor);\n } else {\n this.setCursor();\n }\n };\n\n protected handleMouseOut = (e: any) => {\n this.setCursor();\n };\n\n protected handleDragMouseDown = (e: any) => {\n this.isEditor = true;\n this.editStartCbs.forEach(cb => cb(e));\n const layerPos = transformPointWithMatrix(this.layer.globalTransMatrix.getInverse(), e.offset);\n this.dragOffsetX = layerPos.x;\n this.dragOffsetY = layerPos.y;\n\n const { shadowTarget } = e.pickParams || {};\n // 开启move\n if (shadowTarget && this.stage) {\n this.setActiveGraphic(shadowTarget);\n this._rectBeforeScale = { ...this.rect.attribute };\n this._eventPosBeforeScale = layerPos;\n this.isDragging = true;\n this.dragStartAngle = this.attribute.angle ?? 0;\n } else {\n this.unTransStartCbs.forEach(cb => cb(e));\n this._dragger.startDrag(e);\n }\n };\n\n protected handleDragMouseMove = (e: any) => {\n if (!this.isDragging) {\n return;\n }\n // this._editComponent.isEditing = true;\n const layerPos = transformPointWithMatrix(this.layer.globalTransMatrix.getInverse(), e.offset);\n\n const dx = layerPos.x - this.dragOffsetX;\n const dy = layerPos.y - this.dragOffsetY;\n\n if (dx === 0 && dy === 0) {\n return;\n }\n\n if (this.rotatable) {\n this.handleRotate(layerPos);\n this.dispatchUpdate(e);\n } else if (this.reshapeState) {\n this._handleReshape(dx, dy);\n this.dispatchUpdate(e);\n } else {\n this._handleScale(dx, dy, e);\n this.dispatchUpdate(e);\n }\n\n this.dragOffsetX = layerPos.x;\n this.dragOffsetY = layerPos.y;\n };\n\n protected handleDragMouseUp = (e: any) => {\n if (!this.isDragging) {\n return;\n }\n // this._editComponent.isEditing = false;\n this.dragOffsetX = 0;\n this.dragOffsetY = 0;\n this.setActiveGraphic(null);\n this.editEndCbs?.forEach(cb => cb(e));\n this.isEditor = false;\n this.isDragging = false;\n };\n\n protected setCursor(c?: string) {\n if (this.stage) {\n this.stage.setCursor(c);\n this._setCursor?.(c);\n }\n }\n\n protected setActiveGraphic(g: IGraphic | null) {\n this.activeGraphic = g;\n // 设置resize的方向\n let reset = true;\n if (g && g.name) {\n reset = false;\n const name = g.name;\n const dirList = name.split('-');\n const type = dirList.shift();\n if (type === 'scale') {\n if (dirList.length === 2) {\n this.horizontalResizble = dirList[0] === 'left' ? -1 : 1;\n this.verticalResizble = dirList[1] === 'top' ? -1 : 1;\n } else {\n const dir = dirList[0];\n const h = dir === 'left' || dir === 'right';\n this.horizontalResizble = h ? (dirList[0] === 'left' ? -1 : 1) : 0;\n this.verticalResizble = h ? 0 : dirList[0] === 'top' ? -1 : 1;\n }\n this.rotatable = 0;\n } else if (type === 'rotate') {\n this.rotatable = 1;\n this.horizontalResizble = 0;\n this.verticalResizble = 0;\n } else if (type === 'reshape') {\n this.reshapeState = Number.parseInt(dirList[0], 10) + 1;\n this.rotatable = 0;\n this.horizontalResizble = 0;\n this.verticalResizble = 0;\n } else {\n reset = true;\n }\n }\n if (reset) {\n this.horizontalResizble = 0;\n this.verticalResizble = 0;\n this.rotatable = 0;\n this.reshapeState = 0;\n }\n }\n\n // 非等比缩放\n protected handleScale(dx: number, dy: number) {\n const { anchor, x, y, width, height } = this._getRectWithOffset(dx, dy, this.rect.attribute).attribute;\n if (width < this.minSize.width) {\n return;\n }\n if (height < this.minSize.height) {\n return;\n }\n this.rect.setAttributes({\n width,\n height,\n x,\n y\n });\n this.setAttributes({\n anchor: anchor as [number | string, number | string]\n });\n }\n\n // 缩放\n private _handleScale(dx: number, dy: number, e: any) {\n if (this.proportionalScaling) {\n this._handleScaleProportional(dx, dy, e);\n } else {\n this.handleScale(dx, dy);\n }\n }\n\n // 等比缩放\n private _handleScaleProportional(dx: number, dy: number, e: any) {\n const layerPos = transformPointWithMatrix(this.layer.globalTransMatrix.getInverse(), e.offset);\n const { attribute, temp } = this._getRectWithOffset(\n layerPos.x - this._eventPosBeforeScale.x,\n layerPos.y - this._eventPosBeforeScale.y,\n this._rectBeforeScale\n );\n\n const maxScale = Math.max(\n attribute.width / this._rectBeforeScale.width,\n attribute.height / this._rectBeforeScale.height\n );\n const finalWidth = this._rectBeforeScale.width * maxScale;\n const finalHeight = this._rectBeforeScale.height * maxScale;\n if (finalWidth < this.minSize.width) {\n return;\n }\n if (finalHeight < this.minSize.height) {\n return;\n }\n let nextP2 = temp.nextP2;\n const nextP1 = temp.nextP1;\n\n const angle = this.getAngle();\n // console.log('_handleScaleProportional', nextP1, nextP2, angle, this.verticalResizble, this.horizontalResizble);\n\n // v 1 h 1\n // 拖动的右下角 不需要改变\n if (this.verticalResizble > 0 && this.horizontalResizble > 0) {\n nextP2 = this._getRectP2(nextP1, { width: finalWidth, height: finalHeight }, angle);\n }\n // 1 h -1\n // 拖动的左下角 以右上角为基准\n else if (this.verticalResizble > 0 && this.horizontalResizble < 0) {\n const lockPos = {\n // 锁定角位置\n x: nextP1.x + attribute.width * Math.cos(angle),\n y: nextP1.y + attribute.width * Math.sin(angle)\n };\n // final下的 p1 与 p2\n nextP1.x = lockPos.x - finalWidth * Math.cos(angle);\n nextP1.y = lockPos.y - finalWidth * Math.sin(angle);\n nextP2 = this._getRectP2(nextP1, { width: finalWidth, height: finalHeight }, angle);\n }\n // -1 h 1\n // 拖动的右上角 以左下角为基准\n if (this.verticalResizble < 0 && this.horizontalResizble > 0) {\n const lockPos = {\n // 锁定角位置\n x: nextP1.x - attribute.height * Math.sin(angle),\n y: nextP1.y + attribute.height * Math.cos(angle)\n };\n // final下的 p1 与 p2\n (nextP1.x = lockPos.x + finalHeight * Math.sin(angle)), (nextP1.y = lockPos.y - finalHeight * Math.cos(angle));\n nextP2 = this._getRectP2(nextP1, { width: finalWidth, height: finalHeight }, angle);\n }\n // -1 h 1\n // 拖动的左上角 以右下角为基准\n if (this.verticalResizble < 0 && this.horizontalResizble < 0) {\n // p2 锁定 ,计算 p1\n nextP1.x = nextP2.x - Math.cos(angle) * finalWidth + Math.sin(angle) * finalHeight;\n nextP1.y = nextP2.y - Math.sin(angle) * finalWidth - Math.cos(angle) * finalHeight;\n }\n\n const center = {\n x: (nextP1.x + nextP2.x) / 2,\n y: (nextP1.y + nextP2.y) / 2\n };\n this.rect.setAttributes({\n width: finalWidth,\n height: finalHeight,\n x: center.x - finalWidth / 2,\n y: center.y - finalHeight / 2\n });\n this.setAttributes({\n anchor: [center.x, center.y]\n });\n }\n\n private _handleReshape(dx: number, dy: number) {\n const { width, height } = this.rect.attribute;\n const { shapePoints } = this.attribute;\n const angle = this.getAngle();\n const _dx = dx;\n const _dy = dy;\n dx = Math.cos(angle) * _dx + Math.sin(angle) * _dy;\n dy = Math.cos(angle + pi / 2) * _dx + Math.sin(angle + pi / 2) * _dy;\n if (!this.attribute.isShapePointAbsolute) {\n dx /= width;\n dy /= height;\n }\n const nextShapePoints = shapePoints.map((shapePoint, i) => {\n return i + 1 === this.reshapeState ? { x: shapePoint.x + dx, y: shapePoint.y + dy } : shapePoint;\n });\n this.setAttributes({\n shapePoints: nextShapePoints\n });\n }\n\n private _getRectWithOffset(dx: number, dy: number, lastAttribute: IRectGraphicAttribute) {\n // 投影得到旋转前的dx和dy\n const angle = this.getAngle();\n const _dx = dx;\n const _dy = dy;\n dx = Math.cos(angle) * _dx + Math.sin(angle) * _dy;\n dy = Math.cos(angle + pi / 2) * _dx + Math.sin(angle + pi / 2) * _dy;\n\n dx *= this.horizontalResizble;\n dy *= this.verticalResizble;\n\n const { x, y, width, height } = lastAttribute;\n\n const m = this.transMatrix;\n // 原始的x和y位置\n const nextP1 = {\n x: m.a * x + m.c * y + m.e,\n y: m.b * x + m.d * y + m.f\n };\n const nextP2 = {\n x: m.a * (x + width) + m.c * (y + height) + m.e,\n y: m.b * (x + width) + m.d * (y + height) + m.f\n };\n if (this.horizontalResizble < 0) {\n nextP1.x -= Math.cos(angle) * dx;\n nextP1.y -= Math.sin(angle) * dx;\n } else if (this.horizontalResizble > 0) {\n nextP2.x += Math.cos(angle) * dx;\n nextP2.y += Math.sin(angle) * dx;\n }\n\n if (this.verticalResizble < 0) {\n nextP1.x -= Math.cos(angle + pi / 2) * dy;\n nextP1.y -= Math.sin(angle + pi / 2) * dy;\n } else if (this.verticalResizble > 0) {\n nextP2.x += Math.cos(angle + pi / 2) * dy;\n nextP2.y += Math.sin(angle + pi / 2) * dy;\n }\n\n const center = {\n x: (nextP1.x + nextP2.x) / 2,\n y: (nextP1.y + nextP2.y) / 2\n };\n\n const tw = width + dx;\n const th = height + dy;\n\n // 返回属性计算结果+当前计算过程的重要变量\n return {\n attribute: {\n width: tw,\n height: th,\n x: center.x - tw / 2,\n y: center.y - th / 2,\n anchor: [center.x, center.y]\n },\n temp: {\n nextP1,\n nextP2,\n dx,\n dy\n }\n };\n }\n\n private _getRectP2(p1: { x: number; y: number }, size: { width: number; height: number }, angle: number) {\n return {\n x: p1.x + Math.cos(angle) * size.width - Math.sin(angle) * size.height,\n y: p1.y + Math.sin(angle) * size.width + Math.cos(angle) * size.height\n };\n }\n\n protected handleRotate(currentPoint: { x: number; y: number }) {\n const originB = this.rectB;\n const cx = (originB.x1 + originB.x2) / 2;\n const cy = (originB.y1 + originB.y2) / 2;\n\n const vectorDrag = { x: this._eventPosBeforeScale.x - cx, y: this._eventPosBeforeScale.y - cy };\n const vectorCurrent = { x: currentPoint.x - cx, y: currentPoint.y - cy };\n const dot = vectorDrag.x * vectorCurrent.x + vectorDrag.y * vectorCurrent.y;\n const modDrag = Math.sqrt(vectorDrag.x ** 2 + vectorDrag.y ** 2);\n const modCurrent = Math.sqrt(vectorCurrent.x ** 2 + vectorCurrent.y ** 2);\n const cosAngle = dot / (modDrag * modCurrent);\n const cross = vectorDrag.x * vectorCurrent.y - vectorDrag.y * vectorCurrent.x;\n const delta = cross < 0 ? Math.PI * 2 - Math.acos(cosAngle) : Math.acos(cosAngle);\n\n this.setAttributes({\n angle: this.fixAngle(this.dragStartAngle + delta),\n anchor: [cx, cy]\n });\n }\n\n private fixAngle(angle: number) {\n angle = normalizeAngle(angle);\n for (const fixedAngle of fixedAngles) {\n if (angle >= fixedAngle - maxAngleDifference && angle <= fixedAngle + maxAngleDifference) {\n return fixedAngle;\n }\n }\n return angle;\n }\n\n getAngle(): number {\n if (!this.attribute.postMatrix) {\n return this.attribute.angle ?? 0;\n }\n const m = this.transMatrix;\n return Math.atan2(m.b, m.a);\n }\n\n protected render() {\n const {\n resizeBorder,\n padding,\n cornerRect,\n rotateCircle,\n rotatePath,\n handlerLine,\n shapeCircle,\n enabledAnchors = ['top', 'bottom', 'left-top', 'left-bottom', 'right', 'left', 'right-top', 'right-bottom'],\n shapePoints = [],\n isShapePointAbsolute\n } = this.attribute as TransformAttributes;\n\n const root = this.editBorder.shadowRoot;\n if (!root || this.count === 1) {\n return;\n }\n\n const parsedPadding = normalizePadding(padding as any);\n const { x = 0, y = 0, width: w = 0, height: h = 0 } = this.rect.attribute;\n this.rectB.setValue(x, y, x + w, y + h);\n\n const minX = x - parsedPadding[3];\n const minY = y - parsedPadding[0];\n const width = w + parsedPadding[1] + parsedPadding[3];\n const height = h + parsedPadding[0] + parsedPadding[2];\n\n borderAnchors.forEach((anchor, i) => {\n const enableResize = this._editorConfig.resize && enabledAnchors.includes(anchor as AnchorDirection);\n const item = anchorPositionMap[anchor];\n const cursor = enableResize ? anchorCursorMap[anchor] : 'default';\n root.createOrUpdateChild(\n enableResize ? `scale-${anchor}` : `stroke-line-${anchor}`,\n {\n x: minX,\n y: minY,\n points: [\n { x: item[0] * width, y: item[1] * height },\n { x: item[2] * width, y: item[3] * height }\n ],\n cursor,\n ...resizeBorder\n },\n 'line'\n );\n });\n\n if (this._editorConfig.rotate) {\n // 添加顶部\n root.createOrUpdateChild(\n 'top-handler-line',\n {\n x: minX + width / 2,\n y: minY,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: -handlerLine.size }\n ],\n ...handlerLine\n },\n 'line'\n );\n root.createOrUpdateChild(\n `rotate-all`,\n {\n x: minX + width / 2,\n y: minY - handlerLine.size - rotateCircle.radius,\n cursor: 'grab',\n ...rotateCircle\n },\n 'circle'\n );\n root.createOrUpdateChild(\n `path-rotate`,\n {\n pickable: false,\n x: minX + width / 2 + rotatePath.size / 2,\n y: minY - handlerLine.size + rotatePath.size / 2 - rotateCircle.radius,\n scaleX: rotatePath.size / 200,\n scaleY: rotatePath.size / 200,\n cursor: 'grab',\n dx: 0.5,\n dy: -0.5,\n ...rotatePath\n },\n 'path'\n );\n }\n\n // 添加锚点\n if (this._editorConfig.resize) {\n enabledAnchors.forEach((anchor: string) => {\n if (!cornerAnchors.includes(anchor)) {\n return;\n }\n const item = anchorPositionMap[anchor];\n const cursor = anchorCursorMap[anchor];\n root.createOrUpdateChild(\n `scale-${anchor}`,\n {\n x: minX + item[0] * width - cornerRect.width! / 2,\n y: minY + item[1] * height - cornerRect.height! / 2,\n cursor,\n ...cornerRect\n },\n 'rect'\n );\n });\n }\n\n if (this._editorConfig.reshape) {\n const shapePointsChildren = root.children.filter((child: any) => child.name.startsWith('reshape'));\n if (shapePointsChildren.length !== shapePoints.length) {\n shapePointsChildren.forEach((child: any) => root.removeChild(child));\n }\n shapePoints.forEach((point, i) => {\n root.createOrUpdateChild(\n `reshape-${i}`,\n {\n x: isShapePointAbsolute ? point.x : point.x * w + x,\n y: isShapePointAbsolute ? point.y : point.y * h + y,\n cursor: 'move',\n ...shapeCircle\n },\n 'circle'\n );\n });\n }\n }\n\n moveBy(dx: number, dy: number): this {\n const { x, y, width, height } = this.rect.attribute;\n this.rect.setAttributes({\n width: width,\n height: height,\n x: x + dx,\n y: y + dy\n });\n this.setAttributes({\n anchor: [x + dx + width / 2, y + dy + height / 2]\n });\n this.dispatchUpdate();\n return this;\n }\n\n dispatchUpdate(e?: any) {\n const out = this.getTransformAttribute();\n this.updateCbs.forEach(cb => {\n const data = cb(out, e);\n if (data) {\n const { x, y, width, height, anchor, angle, shapePoints } = data;\n Number.isFinite(x) && this.rect.setAttribute('x', x);\n Number.isFinite(y) && this.rect.setAttribute('y', y);\n Number.isFinite(width) && this.rect.setAttribute('width', width);\n Number.isFinite(height) && this.rect.setAttribute('height', height);\n anchor && this.setAttribute('anchor', anchor);\n Number.isFinite(angle) && this.setAttribute('angle', angle);\n shapePoints && this.setAttribute('shapePoints', shapePoints);\n }\n });\n }\n\n onUpdate(cb: (data: IUpdateParams, event?: VRenderPointerEvent) => Partial<IUpdateParams> | false) {\n this.updateCbs.push(cb);\n }\n\n onEditorEnd(cb: (event?: VRenderPointerEvent) => void) {\n this.editEndCbs.push(cb);\n }\n onEditorStart(cb: (event?: VRenderPointerEvent) => void) {\n this.editStartCbs.push(cb);\n }\n onUnTransStart(cb: (event: PointerEvent) => void) {\n this.unTransStartCbs.push(cb);\n }\n\n addChildUpdateBoundTag() {\n super.addChildUpdateBoundTag();\n\n // 如果wrap内的内容bounds变化,那就需要重新调用render\n if (this.runningAddChildUpdateBoundTag) {\n return;\n }\n this.runningAddChildUpdateBoundTag = true;\n\n this.render();\n\n this.runningAddChildUpdateBoundTag = false;\n }\n\n getTransformAttribute() {\n const { x, y, width, height } = this.rect.attribute;\n const { angle, anchor, shapePoints } = this.attribute;\n return {\n x,\n y,\n width,\n height,\n angle,\n anchor,\n shapePoints\n };\n }\n\n releaseEvent() {\n this.editBorder.removeEventListener('mousemove', this.handleMouseMove);\n if (this.stage) {\n this.stage.removeEventListener('pointermove', this.handleDragMouseMove);\n this.stage.removeEventListener('pointerup', this.handleDragMouseUp);\n }\n this.removeEventListener('pointerout', this.handleMouseOut);\n this.removeEventListener('pointerdown', this.handleDragMouseDown);\n }\n\n release(): void {\n // event\n this.releaseEvent();\n\n this.parent.removeChild(this);\n this.editBorder = null;\n this.updateCbs = [];\n this.editEndCbs = [];\n this.unTransStartCbs = [];\n super.release();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/edit/edit-component/edit-control/transform-control.ts"],"names":[],"mappings":"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","file":"transform-control.js","sourcesContent":["/**\n * @description PopTip组件\n */\nimport type {\n ICircleGraphicAttribute,\n IPathGraphicAttribute,\n IGraphic,\n IGroupGraphicAttribute,\n IRect,\n IRectGraphicAttribute,\n ILineGraphicAttribute,\n IGroup,\n IGraphicAttribute\n} from '@visactor/vrender';\nimport { createRect } from '@visactor/vrender';\nimport type { IAABBBounds, IAABBBoundsLike, IPointLike } from '@visactor/vutils';\nimport { AABBBounds, merge, normalizePadding, pi } from '@visactor/vutils';\nimport { AbstractComponent } from '@visactor/vrender-components';\nimport { transformPointWithMatrix } from '../../../util/space';\nimport { MinSize } from '../../../constants/attribute';\nimport { normalizeAngle } from '../../../util/math';\nimport { DRAG_ANCHOR_COLOR, SHAPE_SELECT_COLOR } from './constants';\nimport type { VRenderPointerEvent } from '../../../interface/type';\nimport type { IEditComponent } from '../../interface';\nimport { Edit } from '../../edit';\nimport { DragComponent } from './transform-drag';\nimport { StoryEvent } from '../../../story/interface';\n// import { EditorActionMode } from './enum';\n\ntype AnchorDirection = 'top' | 'bottom' | 'left-top' | 'left-bottom' | 'right' | 'left' | 'right-top' | 'right-bottom';\n\nconst fixedAngles = [0, Math.PI / 2, Math.PI, (Math.PI * 3) / 2, Math.PI * 2];\nconst maxAngleDifference = (3 / 180) * Math.PI; // 10 degrees\n\nexport type TransformAttributes = {\n padding?: number | [number, number, number, number];\n resizeBorder?: Partial<ILineGraphicAttribute>;\n cornerRect?: Partial<IRectGraphicAttribute>;\n rotateCircle?: Partial<ICircleGraphicAttribute>;\n rotatePath?: Partial<IPathGraphicAttribute> & { size: number };\n handlerLine?: Partial<ILineGraphicAttribute> & { size: number };\n shapeCircle?: Partial<ICircleGraphicAttribute>;\n move?: boolean;\n rotate?: boolean;\n resize?: boolean;\n reshape?: boolean;\n setCursor?: (c: string) => void;\n shapePoints?: IPointLike[];\n isShapePointAbsolute?: boolean;\n /**\n * 支持的锚点\n */\n enabledAnchors?: AnchorDirection[];\n // minSize\n minWidth?: number;\n minHeight?: number;\n proportionalScaling?: boolean;\n} & IGroupGraphicAttribute;\n\nexport type IUpdateParams = {\n x: number;\n y: number;\n width: number;\n height: number;\n angle: number;\n anchor: [number | string, number | string];\n // relative position of shape point\n shapePoints: IPointLike[];\n // text\n text?: string | string[];\n};\n\nconst borderAnchors = ['top', 'bottom', 'left', 'right'];\nconst cornerAnchors = ['left-top', 'right-top', 'left-bottom', 'right-bottom'];\n\nconst anchorPositionMap = {\n top: [0, 0, 1, 0],\n bottom: [0, 1, 1, 1],\n left: [0, 0, 0, 1],\n right: [1, 0, 1, 1],\n\n 'left-top': [0, 0],\n 'right-top': [1, 0],\n 'left-bottom': [0, 1],\n 'right-bottom': [1, 1]\n};\n\nconst anchorCursorMap = {\n 'left-top': 'nwse-resize',\n top: 'ns-resize',\n 'right-top': 'nesw-resize',\n left: 'ew-resize',\n right: 'ew-resize',\n 'left-bottom': 'nesw-resize',\n bottom: 'ns-resize',\n 'right-bottom': 'nwse-resize'\n};\n\nexport interface ITransformControl extends IGroup {\n updateBoundsAndAngle: (b: IAABBBoundsLike, angle: number) => void;\n onActive: () => void;\n onUpdate: (cb: (data: IUpdateParams, event?: VRenderPointerEvent) => Partial<IUpdateParams> | false) => void;\n onEditorEnd: (cb: (event?: VRenderPointerEvent) => void) => void;\n onEditorStart: (cb: (event?: VRenderPointerEvent) => void) => void;\n onUnTransStart: (cb: (event: PointerEvent) => void) => void;\n}\n\nexport class TransformControl extends AbstractComponent<Required<TransformAttributes>> implements ITransformControl {\n name = 'TransformControl';\n rectB: IAABBBounds;\n isDragging: boolean = false;\n dragOffsetX: number;\n dragOffsetY: number;\n dragStartAngle: number = 0;\n activeGraphic: IGraphic | null;\n horizontalResizble: number;\n verticalResizble: number;\n rotatable: number;\n reshapeState: number;\n rect: IRect;\n editBorder: IRect;\n // state: {\n // actionMode: EditorActionMode;\n // };\n // 是否正在执行addChildUpdateBoundTag,避免循环调用\n runningAddChildUpdateBoundTag: boolean;\n\n updateCbs: Array<(data: IUpdateParams, event?: VRenderPointerEvent) => Partial<IUpdateParams> | false>;\n editEndCbs: Array<(event?: VRenderPointerEvent) => void>;\n editStartCbs: Array<(event?: VRenderPointerEvent) => void>;\n unTransStartCbs: Array<(event: PointerEvent) => void>;\n\n isEditor: boolean = false;\n\n _editorConfig: {\n move: boolean;\n rotate: boolean;\n resize: boolean;\n reshape: boolean;\n };\n\n minSize: { width: number; height: number } = { width: MinSize, height: MinSize };\n\n proportionalScaling: boolean = false;\n // 缩放前的属性\n _rectBeforeScale: IRectGraphicAttribute;\n // 缩放前的点击位置,用来进行等比缩放处理缩放比\n _eventPosBeforeScale: any;\n\n _setCursor: (c: string) => void = null;\n\n editComponent: IEditComponent;\n\n // drag\n _dragger: DragComponent;\n private _lastBoxInDrag: IRect;\n\n static defaultAttributes: Partial<TransformAttributes> = {\n // 去掉padding\n // padding: 2,\n resizeBorder: {\n stroke: SHAPE_SELECT_COLOR,\n lineWidth: 1\n },\n cornerRect: {\n fill: 'white',\n stroke: SHAPE_SELECT_COLOR,\n lineWidth: 1,\n width: 8,\n height: 8,\n cornerRadius: 2\n },\n rotateCircle: {\n fill: 'white',\n stroke: SHAPE_SELECT_COLOR,\n radius: 10\n },\n rotatePath: {\n fill: '#000000',\n size: 12,\n angle: Math.PI,\n // eslint-disable-next-line\n path: 'M202.403,95.22c0,46.312-33.237,85.002-77.109,93.484v25.663l-69.76-40l69.76-40v23.494 c27.176-7.87,47.109-32.964,47.109-62.642c0-35.962-29.258-65.22-65.22-65.22s-65.22,29.258-65.22,65.22 c0,9.686,2.068,19.001,6.148,27.688l-27.154,12.754c-5.968-12.707-8.994-26.313-8.994-40.441C11.964,42.716,54.68,0,107.184,0 S202.403,42.716,202.403,95.22z'\n },\n handlerLine: {\n stroke: SHAPE_SELECT_COLOR,\n lineWidth: 1,\n size: 24\n },\n shapeCircle: {\n fill: 'white',\n lineWidth: 1,\n radius: 4,\n stroke: DRAG_ANCHOR_COLOR,\n startAngle: 0,\n endAngle: Math.PI * 2\n }\n };\n\n constructor(editComponent: IEditComponent, attributes: Partial<TransformAttributes>) {\n super(merge({ shadowRootIdx: 1 }, TransformControl.defaultAttributes, attributes));\n this.editComponent = editComponent;\n this._editorConfig = {\n move: attributes.move !== false,\n rotate: attributes.rotate !== false,\n resize: attributes.resize !== false,\n reshape: attributes.reshape !== false\n };\n // this.state = {\n // actionMode: EditorActionMode.addTool\n // };\n this.rectB = new AABBBounds();\n this.dragOffsetX = 0;\n this.dragOffsetY = 0;\n this.activeGraphic = null;\n this.horizontalResizble = 0;\n this.verticalResizble = 0;\n this.rotatable = 0;\n this.runningAddChildUpdateBoundTag = false;\n this.minSize.width = attributes.minWidth ?? MinSize;\n this.minSize.height = attributes.minHeight ?? MinSize;\n this.proportionalScaling = attributes.proportionalScaling === true;\n this._setCursor = attributes.setCursor;\n this.rect = createRect({\n fill: 'transparent',\n stroke: false,\n pickable: false\n });\n // this.rect.attachShadow();\n this.editBorder = createRect({\n fill: false,\n stroke: false\n });\n this.editBorder.attachShadow();\n this.add(this.rect);\n this.add(this.editBorder);\n this.editStartCbs = [];\n this.unTransStartCbs = [];\n this.updateCbs = [];\n this.editEndCbs = [];\n }\n\n addDrag() {\n if (!this.stage) {\n return;\n }\n this._dragger = new DragComponent(this.stage);\n this._dragger.dragHandler(this._dragElement);\n this._dragger.dragEndHandler(this._dragEnd);\n this._dragger.unDragEndHandler(this._unDragEnd);\n this._lastBoxInDrag = createRect({\n pickable: false,\n stroke: SHAPE_SELECT_COLOR,\n strokeOpacity: 0.4,\n visible: false\n });\n }\n\n protected _dragElement = (moveX: number, moveY: number) => {\n this._lastBoxInDrag.setAttribute('visible', true);\n const scale = this.stage.defaultLayer?.globalTransMatrix.a ?? 1;\n this.moveBy(moveX / scale, moveY / scale);\n };\n private _dragEnd = () => {\n this._editorEnd();\n };\n private _unDragEnd = () => {\n this._editorEnd();\n };\n\n protected _editorEnd = () => {\n // this._endHandler(this._editorBox.getTransformAttribute());\n // this._editorBox.isEditor = false;\n // this._snapLineX.setAttributes({ visible: false });\n // this._snapLineY.setAttributes({ visible: false });\n\n // this._snapTargetBoxX.setAttributes({ visible: false });\n // this._snapTargetBoxY.setAttributes({ visible: false });\n\n this._lastBoxInDrag.setAttribute('visible', false);\n // this._opt.editorEvent.setCursorSyncToTriggerLayer();\n };\n\n updateBoundsAndAngle(bounds: IAABBBoundsLike, angle: number) {\n // set bounds\n this.rect.setAttributes({\n x: bounds.x1,\n y: bounds.y1,\n width: bounds.x2 - bounds.x1,\n height: bounds.y2 - bounds.y1\n });\n\n // set anchor\n const x = (this.attribute.x ?? 0) + (bounds.x1 + bounds.x2) / 2;\n const y = (this.attribute.y ?? 0) + (bounds.y1 + bounds.y2) / 2;\n this.setAttributes({ anchor: [x, y], angle });\n }\n\n onActive() {\n this.initEvent();\n }\n\n initEvent() {\n // cursor\n this.editBorder.addEventListener('mousemove', this.handleMouseMove);\n this.addEventListener('pointerout', this.handleMouseOut);\n\n // drag\n this.addEventListener('pointerdown', this.handleDragMouseDown);\n this.addDrag();\n\n this.stage.addEventListener('pointermove', this.handleDragMouseMove);\n this.stage.addEventListener('pointerup', this.handleDragMouseUp);\n }\n\n protected handleMouseMove = (e: any) => {\n if (e.pickParams) {\n const { shadowTarget } = e.pickParams;\n this.setCursor(shadowTarget.attribute.cursor);\n } else {\n this.setCursor();\n }\n };\n\n protected handleMouseOut = (e: any) => {\n this.setCursor();\n };\n\n protected handleDragMouseDown = (e: any) => {\n this.isEditor = true;\n this.editStartCbs.forEach(cb => cb(e));\n const layerPos = transformPointWithMatrix(this.layer.globalTransMatrix.getInverse(), e.offset);\n this.dragOffsetX = layerPos.x;\n this.dragOffsetY = layerPos.y;\n\n const { shadowTarget } = e.pickParams || {};\n // 开启move\n if (shadowTarget && this.stage) {\n this.setActiveGraphic(shadowTarget);\n this._rectBeforeScale = { ...this.rect.attribute };\n this._eventPosBeforeScale = layerPos;\n this.isDragging = true;\n this.dragStartAngle = this.attribute.angle ?? 0;\n } else {\n this.unTransStartCbs.forEach(cb => cb(e));\n this._dragger.startDrag(e);\n }\n };\n\n protected handleDragMouseMove = (e: any) => {\n if (!this.isDragging) {\n return;\n }\n // this._editComponent.isEditing = true;\n const layerPos = transformPointWithMatrix(this.layer.globalTransMatrix.getInverse(), e.offset);\n\n const dx = layerPos.x - this.dragOffsetX;\n const dy = layerPos.y - this.dragOffsetY;\n\n if (dx === 0 && dy === 0) {\n return;\n }\n\n if (this.rotatable) {\n this.handleRotate(layerPos);\n this.dispatchUpdate(e);\n } else if (this.reshapeState) {\n this._handleReshape(dx, dy);\n this.dispatchUpdate(e);\n } else {\n this._handleScale(dx, dy, e);\n this.dispatchUpdate(e);\n }\n\n this.dragOffsetX = layerPos.x;\n this.dragOffsetY = layerPos.y;\n };\n\n protected handleDragMouseUp = (e: any) => {\n if (!this.isDragging) {\n return;\n }\n // this._editComponent.isEditing = false;\n this.dragOffsetX = 0;\n this.dragOffsetY = 0;\n this.setActiveGraphic(null);\n this.editEndCbs?.forEach(cb => cb(e));\n this.isEditor = false;\n this.isDragging = false;\n };\n\n protected setCursor(c?: string) {\n if (this.stage) {\n this.stage.setCursor(c);\n this._setCursor?.(c);\n }\n }\n\n protected setActiveGraphic(g: IGraphic | null) {\n this.activeGraphic = g;\n // 设置resize的方向\n let reset = true;\n if (g && g.name) {\n reset = false;\n const name = g.name;\n const dirList = name.split('-');\n const type = dirList.shift();\n if (type === 'scale') {\n if (dirList.length === 2) {\n this.horizontalResizble = dirList[0] === 'left' ? -1 : 1;\n this.verticalResizble = dirList[1] === 'top' ? -1 : 1;\n } else {\n const dir = dirList[0];\n const h = dir === 'left' || dir === 'right';\n this.horizontalResizble = h ? (dirList[0] === 'left' ? -1 : 1) : 0;\n this.verticalResizble = h ? 0 : dirList[0] === 'top' ? -1 : 1;\n }\n this.rotatable = 0;\n } else if (type === 'rotate') {\n this.rotatable = 1;\n this.horizontalResizble = 0;\n this.verticalResizble = 0;\n } else if (type === 'reshape') {\n this.reshapeState = Number.parseInt(dirList[0], 10) + 1;\n this.rotatable = 0;\n this.horizontalResizble = 0;\n this.verticalResizble = 0;\n } else {\n reset = true;\n }\n }\n if (reset) {\n this.horizontalResizble = 0;\n this.verticalResizble = 0;\n this.rotatable = 0;\n this.reshapeState = 0;\n }\n }\n\n // 非等比缩放\n protected handleScale(dx: number, dy: number) {\n const { anchor, x, y, width, height } = this._getRectWithOffset(dx, dy, this.rect.attribute).attribute;\n if (width < this.minSize.width) {\n return;\n }\n if (height < this.minSize.height) {\n return;\n }\n this.rect.setAttributes({\n width,\n height,\n x,\n y\n });\n this.setAttributes({\n anchor: anchor as [number | string, number | string]\n });\n }\n\n // 缩放\n private _handleScale(dx: number, dy: number, e: any) {\n if (this.proportionalScaling) {\n this._handleScaleProportional(dx, dy, e);\n } else {\n this.handleScale(dx, dy);\n }\n }\n\n // 等比缩放\n private _handleScaleProportional(dx: number, dy: number, e: any) {\n const layerPos = transformPointWithMatrix(this.layer.globalTransMatrix.getInverse(), e.offset);\n const { attribute, temp } = this._getRectWithOffset(\n layerPos.x - this._eventPosBeforeScale.x,\n layerPos.y - this._eventPosBeforeScale.y,\n this._rectBeforeScale\n );\n\n const maxScale = Math.max(\n attribute.width / this._rectBeforeScale.width,\n attribute.height / this._rectBeforeScale.height\n );\n const finalWidth = this._rectBeforeScale.width * maxScale;\n const finalHeight = this._rectBeforeScale.height * maxScale;\n if (finalWidth < this.minSize.width) {\n return;\n }\n if (finalHeight < this.minSize.height) {\n return;\n }\n let nextP2 = temp.nextP2;\n const nextP1 = temp.nextP1;\n\n const angle = this.getAngle();\n // console.log('_handleScaleProportional', nextP1, nextP2, angle, this.verticalResizble, this.horizontalResizble);\n\n // v 1 h 1\n // 拖动的右下角 不需要改变\n if (this.verticalResizble > 0 && this.horizontalResizble > 0) {\n nextP2 = this._getRectP2(nextP1, { width: finalWidth, height: finalHeight }, angle);\n }\n // 1 h -1\n // 拖动的左下角 以右上角为基准\n else if (this.verticalResizble > 0 && this.horizontalResizble < 0) {\n const lockPos = {\n // 锁定角位置\n x: nextP1.x + attribute.width * Math.cos(angle),\n y: nextP1.y + attribute.width * Math.sin(angle)\n };\n // final下的 p1 与 p2\n nextP1.x = lockPos.x - finalWidth * Math.cos(angle);\n nextP1.y = lockPos.y - finalWidth * Math.sin(angle);\n nextP2 = this._getRectP2(nextP1, { width: finalWidth, height: finalHeight }, angle);\n }\n // -1 h 1\n // 拖动的右上角 以左下角为基准\n if (this.verticalResizble < 0 && this.horizontalResizble > 0) {\n const lockPos = {\n // 锁定角位置\n x: nextP1.x - attribute.height * Math.sin(angle),\n y: nextP1.y + attribute.height * Math.cos(angle)\n };\n // final下的 p1 与 p2\n (nextP1.x = lockPos.x + finalHeight * Math.sin(angle)), (nextP1.y = lockPos.y - finalHeight * Math.cos(angle));\n nextP2 = this._getRectP2(nextP1, { width: finalWidth, height: finalHeight }, angle);\n }\n // -1 h 1\n // 拖动的左上角 以右下角为基准\n if (this.verticalResizble < 0 && this.horizontalResizble < 0) {\n // p2 锁定 ,计算 p1\n nextP1.x = nextP2.x - Math.cos(angle) * finalWidth + Math.sin(angle) * finalHeight;\n nextP1.y = nextP2.y - Math.sin(angle) * finalWidth - Math.cos(angle) * finalHeight;\n }\n\n const center = {\n x: (nextP1.x + nextP2.x) / 2,\n y: (nextP1.y + nextP2.y) / 2\n };\n this.rect.setAttributes({\n width: finalWidth,\n height: finalHeight,\n x: center.x - finalWidth / 2,\n y: center.y - finalHeight / 2\n });\n this.setAttributes({\n anchor: [center.x, center.y]\n });\n }\n\n private _handleReshape(dx: number, dy: number) {\n const { width, height } = this.rect.attribute;\n const { shapePoints } = this.attribute;\n const angle = this.getAngle();\n const _dx = dx;\n const _dy = dy;\n dx = Math.cos(angle) * _dx + Math.sin(angle) * _dy;\n dy = Math.cos(angle + pi / 2) * _dx + Math.sin(angle + pi / 2) * _dy;\n if (!this.attribute.isShapePointAbsolute) {\n dx /= width;\n dy /= height;\n }\n const nextShapePoints = shapePoints.map((shapePoint, i) => {\n return i + 1 === this.reshapeState ? { x: shapePoint.x + dx, y: shapePoint.y + dy } : shapePoint;\n });\n this.setAttributes({\n shapePoints: nextShapePoints\n });\n }\n\n private _getRectWithOffset(dx: number, dy: number, lastAttribute: IRectGraphicAttribute) {\n // 投影得到旋转前的dx和dy\n const angle = this.getAngle();\n const _dx = dx;\n const _dy = dy;\n dx = Math.cos(angle) * _dx + Math.sin(angle) * _dy;\n dy = Math.cos(angle + pi / 2) * _dx + Math.sin(angle + pi / 2) * _dy;\n\n dx *= this.horizontalResizble;\n dy *= this.verticalResizble;\n\n const { x, y, width, height } = lastAttribute;\n\n const m = this.transMatrix;\n // 原始的x和y位置\n const nextP1 = {\n x: m.a * x + m.c * y + m.e,\n y: m.b * x + m.d * y + m.f\n };\n const nextP2 = {\n x: m.a * (x + width) + m.c * (y + height) + m.e,\n y: m.b * (x + width) + m.d * (y + height) + m.f\n };\n if (this.horizontalResizble < 0) {\n nextP1.x -= Math.cos(angle) * dx;\n nextP1.y -= Math.sin(angle) * dx;\n } else if (this.horizontalResizble > 0) {\n nextP2.x += Math.cos(angle) * dx;\n nextP2.y += Math.sin(angle) * dx;\n }\n\n if (this.verticalResizble < 0) {\n nextP1.x -= Math.cos(angle + pi / 2) * dy;\n nextP1.y -= Math.sin(angle + pi / 2) * dy;\n } else if (this.verticalResizble > 0) {\n nextP2.x += Math.cos(angle + pi / 2) * dy;\n nextP2.y += Math.sin(angle + pi / 2) * dy;\n }\n\n const center = {\n x: (nextP1.x + nextP2.x) / 2,\n y: (nextP1.y + nextP2.y) / 2\n };\n\n const tw = width + dx;\n const th = height + dy;\n\n // 返回属性计算结果+当前计算过程的重要变量\n return {\n attribute: {\n width: tw,\n height: th,\n x: center.x - tw / 2,\n y: center.y - th / 2,\n anchor: [center.x, center.y]\n },\n temp: {\n nextP1,\n nextP2,\n dx,\n dy\n }\n };\n }\n\n private _getRectP2(p1: { x: number; y: number }, size: { width: number; height: number }, angle: number) {\n return {\n x: p1.x + Math.cos(angle) * size.width - Math.sin(angle) * size.height,\n y: p1.y + Math.sin(angle) * size.width + Math.cos(angle) * size.height\n };\n }\n\n protected handleRotate(currentPoint: { x: number; y: number }) {\n const originB = this.rectB;\n const cx = (originB.x1 + originB.x2) / 2;\n const cy = (originB.y1 + originB.y2) / 2;\n\n const vectorDrag = { x: this._eventPosBeforeScale.x - cx, y: this._eventPosBeforeScale.y - cy };\n const vectorCurrent = { x: currentPoint.x - cx, y: currentPoint.y - cy };\n const dot = vectorDrag.x * vectorCurrent.x + vectorDrag.y * vectorCurrent.y;\n const modDrag = Math.sqrt(vectorDrag.x ** 2 + vectorDrag.y ** 2);\n const modCurrent = Math.sqrt(vectorCurrent.x ** 2 + vectorCurrent.y ** 2);\n const cosAngle = dot / (modDrag * modCurrent);\n const cross = vectorDrag.x * vectorCurrent.y - vectorDrag.y * vectorCurrent.x;\n const delta = cross < 0 ? Math.PI * 2 - Math.acos(cosAngle) : Math.acos(cosAngle);\n\n this.setAttributes({\n angle: this.fixAngle(this.dragStartAngle + delta),\n anchor: [cx, cy]\n });\n }\n\n private fixAngle(angle: number) {\n angle = normalizeAngle(angle);\n for (const fixedAngle of fixedAngles) {\n if (angle >= fixedAngle - maxAngleDifference && angle <= fixedAngle + maxAngleDifference) {\n return fixedAngle;\n }\n }\n return angle;\n }\n\n getAngle(): number {\n if (!this.attribute.postMatrix) {\n return this.attribute.angle ?? 0;\n }\n const m = this.transMatrix;\n return Math.atan2(m.b, m.a);\n }\n\n protected render() {\n const {\n resizeBorder,\n padding,\n cornerRect,\n rotateCircle,\n rotatePath,\n handlerLine,\n shapeCircle,\n enabledAnchors = ['top', 'bottom', 'left-top', 'left-bottom', 'right', 'left', 'right-top', 'right-bottom'],\n shapePoints = [],\n isShapePointAbsolute\n } = this.attribute as TransformAttributes;\n\n const root = this.editBorder.shadowRoot;\n if (!root || this.count === 1) {\n return;\n }\n\n const parsedPadding = normalizePadding(padding as any);\n const { x = 0, y = 0, width: w = 0, height: h = 0 } = this.rect.attribute;\n this.rectB.setValue(x, y, x + w, y + h);\n\n const minX = x - parsedPadding[3];\n const minY = y - parsedPadding[0];\n const width = w + parsedPadding[1] + parsedPadding[3];\n const height = h + parsedPadding[0] + parsedPadding[2];\n\n borderAnchors.forEach((anchor, i) => {\n const enableResize = this._editorConfig.resize && enabledAnchors.includes(anchor as AnchorDirection);\n const item = anchorPositionMap[anchor];\n const cursor = enableResize ? anchorCursorMap[anchor] : 'default';\n root.createOrUpdateChild(\n enableResize ? `scale-${anchor}` : `stroke-line-${anchor}`,\n {\n x: minX,\n y: minY,\n points: [\n { x: item[0] * width, y: item[1] * height },\n { x: item[2] * width, y: item[3] * height }\n ],\n cursor,\n ...resizeBorder\n },\n 'line'\n );\n });\n\n if (this._editorConfig.rotate) {\n // 添加顶部\n root.createOrUpdateChild(\n 'top-handler-line',\n {\n x: minX + width / 2,\n y: minY,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: -handlerLine.size }\n ],\n ...handlerLine\n },\n 'line'\n );\n root.createOrUpdateChild(\n `rotate-all`,\n {\n x: minX + width / 2,\n y: minY - handlerLine.size - rotateCircle.radius,\n cursor: 'grab',\n ...rotateCircle\n },\n 'circle'\n );\n root.createOrUpdateChild(\n `path-rotate`,\n {\n pickable: false,\n x: minX + width / 2 + rotatePath.size / 2,\n y: minY - handlerLine.size + rotatePath.size / 2 - rotateCircle.radius,\n scaleX: rotatePath.size / 200,\n scaleY: rotatePath.size / 200,\n cursor: 'grab',\n dx: 0.5,\n dy: -0.5,\n ...rotatePath\n },\n 'path'\n );\n }\n\n // 添加锚点\n if (this._editorConfig.resize) {\n enabledAnchors.forEach((anchor: string) => {\n if (!cornerAnchors.includes(anchor)) {\n return;\n }\n const item = anchorPositionMap[anchor];\n const cursor = anchorCursorMap[anchor];\n root.createOrUpdateChild(\n `scale-${anchor}`,\n {\n x: minX + item[0] * width - cornerRect.width! / 2,\n y: minY + item[1] * height - cornerRect.height! / 2,\n cursor,\n ...cornerRect\n },\n 'rect'\n );\n });\n }\n\n if (this._editorConfig.reshape) {\n const shapePointsChildren = root.children.filter((child: any) => child.name.startsWith('reshape'));\n if (shapePointsChildren.length !== shapePoints.length) {\n shapePointsChildren.forEach((child: any) => root.removeChild(child));\n }\n shapePoints.forEach((point, i) => {\n root.createOrUpdateChild(\n `reshape-${i}`,\n {\n x: isShapePointAbsolute ? point.x : point.x * w + x,\n y: isShapePointAbsolute ? point.y : point.y * h + y,\n cursor: 'move',\n ...shapeCircle\n },\n 'circle'\n );\n });\n }\n }\n\n moveBy(dx: number, dy: number): this {\n const { x, y, width, height } = this.rect.attribute;\n this.rect.setAttributes({\n width: width,\n height: height,\n x: x + dx,\n y: y + dy\n });\n this.setAttributes({\n anchor: [x + dx + width / 2, y + dy + height / 2]\n });\n this.dispatchUpdate();\n return this;\n }\n\n dispatchUpdate(e?: any) {\n const out = this.getTransformAttribute();\n this.updateCbs.forEach(cb => {\n const data = cb(out, e);\n if (data) {\n const { x, y, width, height, anchor, angle, shapePoints } = data;\n Number.isFinite(x) && this.rect.setAttribute('x', x);\n Number.isFinite(y) && this.rect.setAttribute('y', y);\n Number.isFinite(width) && this.rect.setAttribute('width', width);\n Number.isFinite(height) && this.rect.setAttribute('height', height);\n anchor && this.setAttribute('anchor', anchor);\n Number.isFinite(angle) && this.setAttribute('angle', angle);\n shapePoints && this.setAttribute('shapePoints', shapePoints);\n }\n });\n }\n\n onUpdate(cb: (data: IUpdateParams, event?: VRenderPointerEvent) => Partial<IUpdateParams> | false) {\n this.updateCbs.push(cb);\n }\n\n onEditorEnd(cb: (event?: VRenderPointerEvent) => void) {\n this.editEndCbs.push(cb);\n }\n onEditorStart(cb: (event?: VRenderPointerEvent) => void) {\n this.editStartCbs.push(cb);\n }\n onUnTransStart(cb: (event: PointerEvent) => void) {\n this.unTransStartCbs.push(cb);\n }\n\n addChildUpdateBoundTag() {\n super.addChildUpdateBoundTag();\n\n // 如果wrap内的内容bounds变化,那就需要重新调用render\n if (this.runningAddChildUpdateBoundTag) {\n return;\n }\n this.runningAddChildUpdateBoundTag = true;\n\n this.render();\n\n this.runningAddChildUpdateBoundTag = false;\n }\n\n getTransformAttribute() {\n const { x, y, width, height } = this.rect.attribute;\n const { angle, anchor, shapePoints } = this.attribute;\n return {\n x,\n y,\n width,\n height,\n angle,\n anchor,\n shapePoints\n };\n }\n\n releaseEvent() {\n this.editBorder.removeEventListener('mousemove', this.handleMouseMove);\n if (this.stage) {\n this.stage.removeEventListener('pointermove', this.handleDragMouseMove);\n this.stage.removeEventListener('pointerup', this.handleDragMouseUp);\n }\n this.removeEventListener('pointerout', this.handleMouseOut);\n this.removeEventListener('pointerdown', this.handleDragMouseDown);\n }\n\n releaseDragger() {\n if (!this._dragger) {\n return;\n }\n this._dragger.release();\n }\n\n private _isRelease = false;\n release(): void {\n this._isRelease = true;\n // event\n this.releaseEvent();\n\n this.parent.removeChild(this);\n this.editBorder = null;\n this.updateCbs = [];\n this.editEndCbs = [];\n this.unTransStartCbs = [];\n super.release();\n }\n}\n"]}
@@ -5,6 +5,7 @@ export declare class DragComponent {
5
5
  set state(state: 'startDrag' | 'dragging' | 'stopDrag' | 'none');
6
6
  private _lastPosX;
7
7
  private _lastPosY;
8
+ private _stage;
8
9
  constructor(stage: IStage);
9
10
  protected _dragHandler: (moveX: number, moveY: number) => void;
10
11
  protected _dragEndHandler: () => void;
@@ -15,7 +15,8 @@ export class DragComponent {
15
15
  var _a, _b;
16
16
  "dragging" === this._state || "startDrag" === this._state ? (this._state = "stopDrag",
17
17
  this._state = "stopDrag", null === (_b = this._dragEndHandler) || void 0 === _b || _b.call(this)) : null === (_a = this._unDragEndHandler) || void 0 === _a || _a.call(this);
18
- }, stage.addEventListener("pointermove", this.pointerMove, !0), stage.addEventListener("pointerup", this.stopDrag, !0);
18
+ }, this._stage = stage, stage.addEventListener("pointermove", this.pointerMove, !0),
19
+ stage.addEventListener("pointerup", this.stopDrag, !0);
19
20
  }
20
21
  dragHandler(handler) {
21
22
  this._dragHandler = handler;
@@ -30,7 +31,8 @@ export class DragComponent {
30
31
  this._state = "startDrag", this._lastPosX = event.clientX, this._lastPosY = event.clientY;
31
32
  }
32
33
  release() {
33
- window.removeEventListener("pointermove", this.pointerMove, !0), window.removeEventListener("pointerup", this.stopDrag, !0),
34
+ this._stage && (this._stage.removeEventListener("pointermove", this.pointerMove, !0),
35
+ this._stage.removeEventListener("pointerup", this.stopDrag, !0), this._stage = null),
34
36
  this._dragHandler = null, this._dragEndHandler = null;
35
37
  }
36
38
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/edit/edit-component/edit-control/transform-drag.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IAExB,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,KAAqD;QAC7D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAMD,YAAY,KAAa;QAZjB,WAAM,GAAmD,MAAM,CAAC;QAqBxE,gBAAW,GAAG,CAAC,KAAmB,EAAE,EAAE;;YACpC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,EAAE;gBAChE,OAAO;aACR;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;gBAC9B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;aAC1B;YACD,MAAA,IAAI,CAAC,YAAY,qDAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YACpF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;QACjC,CAAC,CAAC;QAkBF,aAAQ,GAAG,CAAC,KAAmB,EAAE,EAAE;;YACjC,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;gBAC7D,MAAA,IAAI,CAAC,iBAAiB,oDAAI,CAAC;gBAC3B,OAAO;aACR;YAED,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YAIzB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YACzB,MAAA,IAAI,CAAC,eAAe,oDAAI,CAAC;QAC3B,CAAC,CAAC;QAhDA,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9D,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAkBD,WAAW,CAAC,OAA+C;QACzD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IACD,cAAc,CAAC,OAAmB;QAChC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACjC,CAAC;IACD,gBAAgB,CAAC,OAAmB;QAClC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,KAAmB;QAC3B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;IACjC,CAAC;IAgBD,OAAO;QACL,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAClE,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;CACF","file":"transform-drag.js","sourcesContent":["import type { IStage } from '@visactor/vrender';\n\nexport class DragComponent {\n private _state: 'startDrag' | 'dragging' | 'stopDrag' | 'none' = 'none';\n get state() {\n return this._state;\n }\n set state(state: 'startDrag' | 'dragging' | 'stopDrag' | 'none') {\n this._state = state;\n }\n\n private _lastPosX: number;\n private _lastPosY: number;\n // protected _container: HTMLElement;\n\n constructor(stage: IStage) {\n stage.addEventListener('pointermove', this.pointerMove, true);\n stage.addEventListener('pointerup', this.stopDrag, true);\n }\n\n protected _dragHandler: (moveX: number, moveY: number) => void;\n protected _dragEndHandler: () => void;\n protected _unDragEndHandler: () => void;\n\n pointerMove = (event: PointerEvent) => {\n if (!(this._state === 'startDrag' || this._state === 'dragging')) {\n return;\n }\n if (this._state !== 'dragging') {\n this._state = 'dragging';\n }\n this._dragHandler?.(event.clientX - this._lastPosX, event.clientY - this._lastPosY);\n this._lastPosX = event.clientX;\n this._lastPosY = event.clientY;\n };\n\n dragHandler(handler: (moveX: number, moveY: number) => void) {\n this._dragHandler = handler;\n }\n dragEndHandler(handler: () => void) {\n this._dragEndHandler = handler;\n }\n unDragEndHandler(handler: () => void) {\n this._unDragEndHandler = handler;\n }\n\n startDrag(event: PointerEvent) {\n this._state = 'startDrag';\n this._lastPosX = event.clientX;\n this._lastPosY = event.clientY;\n }\n\n stopDrag = (event: PointerEvent) => {\n if (this._state !== 'dragging' && this._state !== 'startDrag') {\n this._unDragEndHandler?.();\n return;\n }\n // const lastState = this._state;\n this._state = 'stopDrag';\n // if (lastState !== 'dragging') {\n // return;\n // }\n this._state = 'stopDrag';\n this._dragEndHandler?.();\n };\n\n release() {\n window.removeEventListener('pointermove', this.pointerMove, true);\n window.removeEventListener('pointerup', this.stopDrag, true);\n this._dragHandler = null;\n this._dragEndHandler = null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/edit/edit-component/edit-control/transform-drag.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IAExB,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,KAAqD;QAC7D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAOD,YAAY,KAAa;QAbjB,WAAM,GAAmD,MAAM,CAAC;QAuBxE,gBAAW,GAAG,CAAC,KAAmB,EAAE,EAAE;;YACpC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,EAAE;gBAChE,OAAO;aACR;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;gBAC9B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;aAC1B;YACD,MAAA,IAAI,CAAC,YAAY,qDAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YACpF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;QACjC,CAAC,CAAC;QAkBF,aAAQ,GAAG,CAAC,KAAmB,EAAE,EAAE;;YACjC,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;gBAC7D,MAAA,IAAI,CAAC,iBAAiB,oDAAI,CAAC;gBAC3B,OAAO;aACR;YAED,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YAIzB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YACzB,MAAA,IAAI,CAAC,eAAe,oDAAI,CAAC;QAC3B,CAAC,CAAC;QAjDA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9D,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAkBD,WAAW,CAAC,OAA+C;QACzD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IACD,cAAc,CAAC,OAAmB;QAChC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACjC,CAAC;IACD,gBAAgB,CAAC,OAAmB;QAClC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,KAAmB;QAC3B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;IACjC,CAAC;IAgBD,OAAO;QACL,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;CACF","file":"transform-drag.js","sourcesContent":["import type { IStage } from '@visactor/vrender';\n\nexport class DragComponent {\n private _state: 'startDrag' | 'dragging' | 'stopDrag' | 'none' = 'none';\n get state() {\n return this._state;\n }\n set state(state: 'startDrag' | 'dragging' | 'stopDrag' | 'none') {\n this._state = state;\n }\n\n private _lastPosX: number;\n private _lastPosY: number;\n private _stage: IStage;\n // protected _container: HTMLElement;\n\n constructor(stage: IStage) {\n this._stage = stage;\n stage.addEventListener('pointermove', this.pointerMove, true);\n stage.addEventListener('pointerup', this.stopDrag, true);\n }\n\n protected _dragHandler: (moveX: number, moveY: number) => void;\n protected _dragEndHandler: () => void;\n protected _unDragEndHandler: () => void;\n\n pointerMove = (event: PointerEvent) => {\n if (!(this._state === 'startDrag' || this._state === 'dragging')) {\n return;\n }\n if (this._state !== 'dragging') {\n this._state = 'dragging';\n }\n this._dragHandler?.(event.clientX - this._lastPosX, event.clientY - this._lastPosY);\n this._lastPosX = event.clientX;\n this._lastPosY = event.clientY;\n };\n\n dragHandler(handler: (moveX: number, moveY: number) => void) {\n this._dragHandler = handler;\n }\n dragEndHandler(handler: () => void) {\n this._dragEndHandler = handler;\n }\n unDragEndHandler(handler: () => void) {\n this._unDragEndHandler = handler;\n }\n\n startDrag(event: PointerEvent) {\n this._state = 'startDrag';\n this._lastPosX = event.clientX;\n this._lastPosY = event.clientY;\n }\n\n stopDrag = (event: PointerEvent) => {\n if (this._state !== 'dragging' && this._state !== 'startDrag') {\n this._unDragEndHandler?.();\n return;\n }\n // const lastState = this._state;\n this._state = 'stopDrag';\n // if (lastState !== 'dragging') {\n // return;\n // }\n this._state = 'stopDrag';\n this._dragEndHandler?.();\n };\n\n release() {\n if (this._stage) {\n this._stage.removeEventListener('pointermove', this.pointerMove, true);\n this._stage.removeEventListener('pointerup', this.stopDrag, true);\n this._stage = null;\n }\n this._dragHandler = null;\n this._dragEndHandler = null;\n }\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  import { type IEditComponent } from '../interface';
2
- import type { ITransformControl, TransformAttributes } from './edit-control/transform-control';
3
2
  import { RectSelection } from './rect-selection';
4
3
  export declare class ImageSelection extends RectSelection implements IEditComponent {
5
4
  readonly level = 3;
6
5
  readonly type: string;
7
- protected _createLayoutComponent(attributes: Partial<TransformAttributes>): ITransformControl;
6
+ readonly editCharacterType: string;
8
7
  }
@@ -1,13 +1,10 @@
1
- import { TransformControl } from "./edit-control/transform-control";
1
+ import { StoryComponentType } from "../../constants/character";
2
2
 
3
3
  import { RectSelection } from "./rect-selection";
4
4
 
5
5
  export class ImageSelection extends RectSelection {
6
6
  constructor() {
7
- super(...arguments), this.level = 3, this.type = "image";
8
- }
9
- _createLayoutComponent(attributes) {
10
- return new TransformControl(this, attributes);
7
+ super(...arguments), this.level = 3, this.type = "image", this.editCharacterType = StoryComponentType.IMAGE;
11
8
  }
12
9
  }
13
10
  //# sourceMappingURL=image-selection.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/edit/edit-component/image-selection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,cAAe,SAAQ,aAAa;IAAjD;;QACW,UAAK,GAAG,CAAC,CAAC;QACV,SAAI,GAAW,OAAO,CAAC;IAKlC,CAAC;IAHW,sBAAsB,CAAC,UAAwC;QACvE,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;CACF","file":"image-selection.js","sourcesContent":["import { type IEditActionInfo, type IEditComponent } from '../interface';\nimport type { ITransformControl, TransformAttributes } from './edit-control/transform-control';\nimport { TransformControl } from './edit-control/transform-control';\nimport { RectSelection } from './rect-selection';\n\nexport class ImageSelection extends RectSelection implements IEditComponent {\n readonly level = 3;\n readonly type: string = 'image';\n\n protected _createLayoutComponent(attributes: Partial<TransformAttributes>): ITransformControl {\n return new TransformControl(this, attributes);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/edit/edit-component/image-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAK/D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,cAAe,SAAQ,aAAa;IAAjD;;QACW,UAAK,GAAG,CAAC,CAAC;QACV,SAAI,GAAW,OAAO,CAAC;QACvB,sBAAiB,GAAW,kBAAkB,CAAC,KAAK,CAAC;IAKhE,CAAC;CAAA","file":"image-selection.js","sourcesContent":["import { StoryComponentType } from '../../constants/character';\nimport { type IEditComponent } from '../interface';\nimport { BaseSelection } from './base-selection';\nimport type { ITransformControl, TransformAttributes } from './edit-control/transform-control';\nimport { TransformControl } from './edit-control/transform-control';\nimport { RectSelection } from './rect-selection';\n\nexport class ImageSelection extends RectSelection implements IEditComponent {\n readonly level = 3;\n readonly type: string = 'image';\n readonly editCharacterType: string = StoryComponentType.IMAGE;\n\n // protected _createLayoutComponent(attributes: Partial<TransformAttributes>): ITransformControl {\n // return new TransformControl(this, attributes);\n // }\n}\n"]}
@@ -1,20 +1,18 @@
1
- import { CommonEditComponent } from "./common";
2
-
3
1
  import { BoxSelection } from "./box-selection";
4
2
 
5
3
  import { ImageSelection } from "./image-selection";
6
4
 
7
- import { TextSelection } from "./text-selection";
8
-
9
- import { RichTextSelection } from "./richtext-selection";
10
-
11
5
  import { RectSelection } from "./rect-selection";
12
6
 
7
+ import { ChartSelection } from "./chart-selection";
8
+
13
9
  import { Edit } from "../edit";
14
10
 
11
+ import { ShapeSelection } from "./shape-selection";
12
+
15
13
  export function loadAllSelection() {
16
- Edit.registerEditComponent("common", CommonEditComponent), Edit.registerEditComponent("text", TextSelection),
17
- Edit.registerEditComponent("richtext", RichTextSelection), Edit.registerEditComponent("rect", RectSelection),
18
- Edit.registerEditComponent("box-selection", BoxSelection), Edit.registerEditComponent("image-selection", ImageSelection);
14
+ Edit.registerEditComponent("rect", RectSelection), Edit.registerEditComponent("image", ImageSelection),
15
+ Edit.registerEditComponent("shape", ShapeSelection), Edit.registerEditComponent("chart", ChartSelection),
16
+ Edit.registerEditComponent("box-selection", BoxSelection);
19
17
  }
20
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/edit/edit-component/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC1D,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC1D,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAC1D,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;AAChE,CAAC","file":"index.js","sourcesContent":["import { CommonEditComponent } from './common';\nimport { BoxSelection } from './box-selection';\nimport { ImageSelection } from './image-selection';\nimport { TextSelection } from './text-selection';\nimport { RichTextSelection } from './richtext-selection';\nimport { RectSelection } from './rect-selection';\nimport { Edit } from '../edit';\n\nexport function loadAllSelection() {\n Edit.registerEditComponent('common', CommonEditComponent);\n Edit.registerEditComponent('text', TextSelection);\n Edit.registerEditComponent('richtext', RichTextSelection);\n Edit.registerEditComponent('rect', RectSelection);\n Edit.registerEditComponent('box-selection', BoxSelection);\n Edit.registerEditComponent('image-selection', ImageSelection);\n}\n"]}
1
+ {"version":3,"sources":["../src/edit/edit-component/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,gBAAgB;IAI9B,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACpD,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACpD,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACpD,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;AAC5D,CAAC","file":"index.js","sourcesContent":["// import { CommonEditComponent } from './common';\nimport { BoxSelection } from './box-selection';\nimport { ImageSelection } from './image-selection';\nimport { RectSelection } from './rect-selection';\nimport { ChartSelection } from './chart-selection';\nimport { Edit } from '../edit';\nimport { ShapeSelection } from './shape-selection';\n\nexport function loadAllSelection() {\n // Edit.registerEditComponent('common', CommonEditComponent);\n // Edit.registerEditComponent('text', TextSelection);\n // Edit.registerEditComponent('richtext', RichTextSelection);\n Edit.registerEditComponent('rect', RectSelection);\n Edit.registerEditComponent('image', ImageSelection);\n Edit.registerEditComponent('shape', ShapeSelection);\n Edit.registerEditComponent('chart', ChartSelection);\n Edit.registerEditComponent('box-selection', BoxSelection);\n}\n"]}
@@ -1,3 +1 @@
1
-
2
-
3
1
  //# sourceMappingURL=layer-edit.js.map
@@ -0,0 +1,21 @@
1
+ import type { Edit } from './../../edit';
2
+ import type { IRichText } from '@visactor/vrender-core';
3
+ import type { ICharacter } from '../../../story/character';
4
+ import type { IEditActionInfo, IEditComponent } from '../../interface';
5
+ import { RichTextControl } from '../edit-control/richtext-control';
6
+ import type { ITransformControl } from '../edit-control/transform-control';
7
+ export interface RichTextMixin extends IEditComponent {
8
+ edit: Edit;
9
+ _actionInfo: IEditActionInfo;
10
+ _isSelection: boolean;
11
+ isEditing: boolean;
12
+ _layoutComponent?: ITransformControl;
13
+ _activeCharacter?: ICharacter | null;
14
+ }
15
+ export declare class RichTextMixin {
16
+ _richTextControl: RichTextControl;
17
+ _textClickHandlerTemp: any;
18
+ _createRichControl(character: ICharacter, text: IRichText): void;
19
+ _releaseRichControl(character: ICharacter, text: IRichText): void;
20
+ handlerTextClick(): void;
21
+ }
@@ -0,0 +1,18 @@
1
+ import { RichTextControl } from "../edit-control/richtext-control";
2
+
3
+ export class RichTextMixin {
4
+ _createRichControl(character, text) {
5
+ this._richTextControl = new RichTextControl(this.edit, character, text), this._textClickHandlerTemp = this.handlerTextClick.bind(this),
6
+ text.addEventListener("pointerdown", this._textClickHandlerTemp);
7
+ }
8
+ _releaseRichControl(character, text) {
9
+ var _a;
10
+ null === (_a = this._richTextControl) || void 0 === _a || _a.release(), text && text.removeEventListener("pointerdown", this._textClickHandlerTemp),
11
+ this._richTextControl = null, this._textClickHandlerTemp = null;
12
+ }
13
+ handlerTextClick() {
14
+ var _a;
15
+ null === (_a = this._richTextControl) || void 0 === _a || _a.startEdit();
16
+ }
17
+ }
18
+ //# sourceMappingURL=richtext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/edit/edit-component/mixin/richtext.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAYnE,MAAM,OAAO,aAAa;IAIxB,kBAAkB,CAAC,SAAqB,EAAE,IAAe;QACvD,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACnE,CAAC;IAED,mBAAmB,CAAC,SAAqB,EAAE,IAAe;;QACxD,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO,EAAE,CAAC;QACjC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACrE;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,gBAAgB;;QACd,MAAA,IAAI,CAAC,gBAAgB,0CAAE,SAAS,EAAE,CAAC;IACrC,CAAC;CACF","file":"richtext.js","sourcesContent":["import type { Edit } from './../../edit';\nimport type { IRichText } from '@visactor/vrender-core';\nimport type { ICharacter } from '../../../story/character';\nimport type { IEditActionInfo, IEditComponent } from '../../interface';\nimport { RichTextControl } from '../edit-control/richtext-control';\nimport type { ITransformControl } from '../edit-control/transform-control';\n\nexport interface RichTextMixin extends IEditComponent {\n edit: Edit;\n _actionInfo: IEditActionInfo;\n _isSelection: boolean;\n isEditing: boolean;\n _layoutComponent?: ITransformControl;\n _activeCharacter?: ICharacter | null;\n}\n\nexport class RichTextMixin {\n _richTextControl: RichTextControl;\n _textClickHandlerTemp: any;\n\n _createRichControl(character: ICharacter, text: IRichText) {\n this._richTextControl = new RichTextControl(this.edit, character, text);\n this._textClickHandlerTemp = this.handlerTextClick.bind(this);\n text.addEventListener('pointerdown', this._textClickHandlerTemp);\n }\n\n _releaseRichControl(character: ICharacter, text: IRichText) {\n this._richTextControl?.release();\n if (text) {\n text.removeEventListener('pointerdown', this._textClickHandlerTemp);\n }\n this._richTextControl = null;\n this._textClickHandlerTemp = null;\n }\n\n handlerTextClick() {\n this._richTextControl?.startEdit();\n }\n}\n"]}
@@ -1,18 +1,14 @@
1
- import type { IEditSelectionInfo } from '../interface';
2
- import { type IEditComponent } from '../interface';
3
- import type { Edit } from '../edit';
4
- import { BaseSelection } from './base-selection';
5
- import type { TransformAttributes, ITransformControl, IUpdateParams } from './edit-control/transform-control';
6
1
  import type { VRenderPointerEvent } from '../../interface/type';
7
- export declare class RectSelection extends BaseSelection implements IEditComponent {
8
- readonly edit: Edit;
2
+ import type { IEditActionInfo } from '../interface';
3
+ import { type IEditComponent } from '../interface';
4
+ import type { IUpdateParams } from './edit-control/transform-control';
5
+ import { RichTextSelectionCommon } from './richtext-selection-common';
6
+ export declare class RectSelection extends RichTextSelectionCommon implements IEditComponent {
9
7
  readonly level = 3;
10
8
  readonly type: string;
11
- constructor(edit: Edit);
12
- protected _createLayoutComponent(attributes: Partial<TransformAttributes>): ITransformControl;
9
+ readonly editCharacterType: string;
10
+ startEdit(actionInfo: IEditActionInfo): void;
13
11
  editEnd(): void;
14
- checkAction(actionInfo: IEditSelectionInfo): boolean;
15
- checkActionWhileEditing(actionInfo: IEditSelectionInfo): boolean;
12
+ handlerContentClick: (e: any) => void;
16
13
  protected handlerTransformChange(data: IUpdateParams, event?: VRenderPointerEvent): void;
17
- checkActionWhileNoEditing(actionInfo: IEditSelectionInfo): boolean;
18
14
  }
@@ -1,31 +1,24 @@
1
- import { EditActionEnum } from "../interface";
1
+ import { StoryComponentType } from "../../constants/character";
2
2
 
3
- import { BaseSelection } from "./base-selection";
3
+ import { RichTextSelectionCommon } from "./richtext-selection-common";
4
4
 
5
- import { RichTextTransformControl } from "./edit-control/richtext-transform-control";
6
-
7
- export class RectSelection extends BaseSelection {
8
- constructor(edit) {
9
- super(edit), this.edit = edit, this.level = 3, this.type = "rect";
5
+ export class RectSelection extends RichTextSelectionCommon {
6
+ constructor() {
7
+ super(...arguments), this.level = 3, this.type = "rect", this.editCharacterType = StoryComponentType.RECT,
8
+ this.handlerContentClick = e => {
9
+ this._layoutComponent.handleDragMouseDown(e), this.endRichTextEdit();
10
+ };
10
11
  }
11
- _createLayoutComponent(attributes) {
12
- return new RichTextTransformControl(this, attributes);
12
+ startEdit(actionInfo) {
13
+ super.startEdit(actionInfo);
14
+ this._actionInfo.character.graphic.graphic.addEventListener("pointerdown", this.handlerContentClick);
13
15
  }
14
16
  editEnd() {
17
+ this._actionInfo.character.graphic.graphic.removeEventListener("pointerdown", this.handlerContentClick),
15
18
  super.editEnd();
16
19
  }
17
- checkAction(actionInfo) {
18
- return this.isEditing ? this.checkActionWhileEditing(actionInfo) : this.checkActionWhileNoEditing(actionInfo);
19
- }
20
- checkActionWhileEditing(actionInfo) {
21
- return (actionInfo.type !== EditActionEnum.singleSelection || actionInfo.detail.graphicType === this.type) && !!("pointerdown" !== actionInfo.event.type || actionInfo.event.target && actionInfo.event.target.parent === this._layoutComponent);
22
- }
23
20
  handlerTransformChange(data, event) {
24
- this._activeCharacter && this._activeCharacter.setAttributes(data);
25
- }
26
- checkActionWhileNoEditing(actionInfo) {
27
- return actionInfo.type === EditActionEnum.singleSelection && actionInfo.detail.graphicType === this.type && (this.startEdit(actionInfo),
28
- !0);
21
+ return super.handlerTransformChange(data, event);
29
22
  }
30
23
  }
31
- //# sourceMappingURL=rect-selection.js.map
24
+ //# sourceMappingURL=rect-selection.js.map