ding-image-editor 3.15.3

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 (374) hide show
  1. package/README.md +193 -0
  2. package/dist/svg/icon-a.svg +376 -0
  3. package/dist/svg/icon-b.svg +369 -0
  4. package/dist/svg/icon-c.svg +369 -0
  5. package/dist/svg/icon-d.svg +369 -0
  6. package/dist/tui-image-editor.css +6 -0
  7. package/dist/tui-image-editor.js +62329 -0
  8. package/dist/tui-image-editor.min.css +5 -0
  9. package/dist/tui-image-editor.min.js +15 -0
  10. package/index.d.ts +334 -0
  11. package/package.json +52 -0
  12. package/src/css/buttons.styl +102 -0
  13. package/src/css/checkbox.styl +86 -0
  14. package/src/css/colorpicker.styl +98 -0
  15. package/src/css/gridtable.styl +45 -0
  16. package/src/css/icon.styl +44 -0
  17. package/src/css/index.styl +17 -0
  18. package/src/css/main.styl +163 -0
  19. package/src/css/position.styl +309 -0
  20. package/src/css/range.styl +91 -0
  21. package/src/css/submenu.styl +168 -0
  22. package/src/index.js +29 -0
  23. package/src/js/action.js +686 -0
  24. package/src/js/command/addIcon.js +42 -0
  25. package/src/js/command/addImageObject.js +34 -0
  26. package/src/js/command/addObject.js +43 -0
  27. package/src/js/command/addShape.js +51 -0
  28. package/src/js/command/addText.js +73 -0
  29. package/src/js/command/applyFilter.js +95 -0
  30. package/src/js/command/changeIconColor.js +48 -0
  31. package/src/js/command/changeSelection.js +31 -0
  32. package/src/js/command/changeShape.js +84 -0
  33. package/src/js/command/changeText.js +44 -0
  34. package/src/js/command/changeTextStyle.js +80 -0
  35. package/src/js/command/clearObjects.js +33 -0
  36. package/src/js/command/flip.js +36 -0
  37. package/src/js/command/loadImage.js +58 -0
  38. package/src/js/command/removeFilter.js +38 -0
  39. package/src/js/command/removeObject.js +37 -0
  40. package/src/js/command/resize.js +41 -0
  41. package/src/js/command/resizeCanvasDimension.js +40 -0
  42. package/src/js/command/rotate.js +64 -0
  43. package/src/js/command/setObjectPosition.js +50 -0
  44. package/src/js/command/setObjectProperties.js +55 -0
  45. package/src/js/component/cropper.js +407 -0
  46. package/src/js/component/filter.js +229 -0
  47. package/src/js/component/flip.js +146 -0
  48. package/src/js/component/freeDrawing.js +144 -0
  49. package/src/js/component/icon.js +246 -0
  50. package/src/js/component/imageLoader.js +84 -0
  51. package/src/js/component/line.js +205 -0
  52. package/src/js/component/resize.js +103 -0
  53. package/src/js/component/rotation.js +91 -0
  54. package/src/js/component/shape.js +601 -0
  55. package/src/js/component/text.js +572 -0
  56. package/src/js/component/zoom.js +708 -0
  57. package/src/js/consts.js +404 -0
  58. package/src/js/drawingMode/cropper.js +35 -0
  59. package/src/js/drawingMode/freeDrawing.js +36 -0
  60. package/src/js/drawingMode/icon.js +35 -0
  61. package/src/js/drawingMode/lineDrawing.js +36 -0
  62. package/src/js/drawingMode/resize.js +35 -0
  63. package/src/js/drawingMode/shape.js +35 -0
  64. package/src/js/drawingMode/text.js +35 -0
  65. package/src/js/drawingMode/zoom.js +37 -0
  66. package/src/js/extension/arrowLine.js +172 -0
  67. package/src/js/extension/blur.js +29 -0
  68. package/src/js/extension/colorFilter.js +104 -0
  69. package/src/js/extension/cropzone.js +568 -0
  70. package/src/js/extension/emboss.js +29 -0
  71. package/src/js/extension/mask.js +90 -0
  72. package/src/js/extension/sharpen.js +29 -0
  73. package/src/js/factory/command.js +36 -0
  74. package/src/js/factory/errorMessage.js +27 -0
  75. package/src/js/graphics.js +1539 -0
  76. package/src/js/helper/imagetracer.js +1396 -0
  77. package/src/js/helper/selectionModifyHelper.js +86 -0
  78. package/src/js/helper/shapeFilterFillHelper.js +564 -0
  79. package/src/js/helper/shapeResizeHelper.js +237 -0
  80. package/src/js/imageEditor.js +1795 -0
  81. package/src/js/interface/command.js +131 -0
  82. package/src/js/interface/component.js +127 -0
  83. package/src/js/interface/drawingMode.js +47 -0
  84. package/src/js/invoker.js +292 -0
  85. package/src/js/polyfill.js +498 -0
  86. package/src/js/ui/crop.js +139 -0
  87. package/src/js/ui/draw.js +187 -0
  88. package/src/js/ui/filter.js +510 -0
  89. package/src/js/ui/flip.js +87 -0
  90. package/src/js/ui/history.js +171 -0
  91. package/src/js/ui/icon.js +191 -0
  92. package/src/js/ui/locale/locale.js +19 -0
  93. package/src/js/ui/mask.js +96 -0
  94. package/src/js/ui/panelMenu.js +130 -0
  95. package/src/js/ui/resize.js +241 -0
  96. package/src/js/ui/rotate.js +123 -0
  97. package/src/js/ui/shape.js +265 -0
  98. package/src/js/ui/submenuBase.js +122 -0
  99. package/src/js/ui/template/controls.js +21 -0
  100. package/src/js/ui/template/mainContainer.js +38 -0
  101. package/src/js/ui/template/style.js +146 -0
  102. package/src/js/ui/template/submenu/crop.js +73 -0
  103. package/src/js/ui/template/submenu/draw.js +42 -0
  104. package/src/js/ui/template/submenu/filter.js +157 -0
  105. package/src/js/ui/template/submenu/flip.js +41 -0
  106. package/src/js/ui/template/submenu/history.js +22 -0
  107. package/src/js/ui/template/submenu/icon.js +108 -0
  108. package/src/js/ui/template/submenu/mask.js +30 -0
  109. package/src/js/ui/template/submenu/resize.js +54 -0
  110. package/src/js/ui/template/submenu/rotate.js +32 -0
  111. package/src/js/ui/template/submenu/shape.js +45 -0
  112. package/src/js/ui/template/submenu/text.js +67 -0
  113. package/src/js/ui/template/submenu/zoom.js +41 -0
  114. package/src/js/ui/text.js +279 -0
  115. package/src/js/ui/theme/standard.js +220 -0
  116. package/src/js/ui/theme/theme.js +249 -0
  117. package/src/js/ui/tools/colorpicker.js +250 -0
  118. package/src/js/ui/tools/range.js +390 -0
  119. package/src/js/ui.js +858 -0
  120. package/src/js/util.js +551 -0
  121. package/src/svg/default.svg +335 -0
  122. package/src/svg/icon-a/ic-apply.svg +6 -0
  123. package/src/svg/icon-a/ic-cancel.svg +6 -0
  124. package/src/svg/icon-a/ic-color-transparent-w.svg +12 -0
  125. package/src/svg/icon-a/ic-crop.svg +7 -0
  126. package/src/svg/icon-a/ic-delete-all.svg +6 -0
  127. package/src/svg/icon-a/ic-delete.svg +6 -0
  128. package/src/svg/icon-a/ic-draw-free.svg +5 -0
  129. package/src/svg/icon-a/ic-draw-line.svg +5 -0
  130. package/src/svg/icon-a/ic-draw.svg +6 -0
  131. package/src/svg/icon-a/ic-filter.svg +7 -0
  132. package/src/svg/icon-a/ic-flip-reset.svg +7 -0
  133. package/src/svg/icon-a/ic-flip-x.svg +6 -0
  134. package/src/svg/icon-a/ic-flip-y.svg +6 -0
  135. package/src/svg/icon-a/ic-flip.svg +6 -0
  136. package/src/svg/icon-a/ic-history-check.svg +5 -0
  137. package/src/svg/icon-a/ic-history-crop.svg +7 -0
  138. package/src/svg/icon-a/ic-history-delete.svg +9 -0
  139. package/src/svg/icon-a/ic-history-draw.svg +7 -0
  140. package/src/svg/icon-a/ic-history-filter.svg +8 -0
  141. package/src/svg/icon-a/ic-history-flip.svg +6 -0
  142. package/src/svg/icon-a/ic-history-group.svg +9 -0
  143. package/src/svg/icon-a/ic-history-icon.svg +6 -0
  144. package/src/svg/icon-a/ic-history-load.svg +7 -0
  145. package/src/svg/icon-a/ic-history-mask.svg +9 -0
  146. package/src/svg/icon-a/ic-history-resize.svg +12 -0
  147. package/src/svg/icon-a/ic-history-rotate.svg +16 -0
  148. package/src/svg/icon-a/ic-history-shape.svg +7 -0
  149. package/src/svg/icon-a/ic-history-text.svg +8 -0
  150. package/src/svg/icon-a/ic-history.svg +6 -0
  151. package/src/svg/icon-a/ic-icon-arrow-2.svg +5 -0
  152. package/src/svg/icon-a/ic-icon-arrow-3.svg +5 -0
  153. package/src/svg/icon-a/ic-icon-arrow.svg +5 -0
  154. package/src/svg/icon-a/ic-icon-bubble.svg +5 -0
  155. package/src/svg/icon-a/ic-icon-heart.svg +5 -0
  156. package/src/svg/icon-a/ic-icon-load.svg +8 -0
  157. package/src/svg/icon-a/ic-icon-location.svg +8 -0
  158. package/src/svg/icon-a/ic-icon-polygon.svg +5 -0
  159. package/src/svg/icon-a/ic-icon-star-2.svg +5 -0
  160. package/src/svg/icon-a/ic-icon-star.svg +5 -0
  161. package/src/svg/icon-a/ic-icon.svg +5 -0
  162. package/src/svg/icon-a/ic-mask-load.svg +8 -0
  163. package/src/svg/icon-a/ic-mask.svg +6 -0
  164. package/src/svg/icon-a/ic-redo.svg +7 -0
  165. package/src/svg/icon-a/ic-reset.svg +7 -0
  166. package/src/svg/icon-a/ic-resize.svg +13 -0
  167. package/src/svg/icon-a/ic-rotate-clockwise.svg +7 -0
  168. package/src/svg/icon-a/ic-rotate-counterclockwise.svg +7 -0
  169. package/src/svg/icon-a/ic-rotate.svg +7 -0
  170. package/src/svg/icon-a/ic-shape-circle.svg +5 -0
  171. package/src/svg/icon-a/ic-shape-rectangle.svg +5 -0
  172. package/src/svg/icon-a/ic-shape-triangle.svg +5 -0
  173. package/src/svg/icon-a/ic-shape.svg +6 -0
  174. package/src/svg/icon-a/ic-text-align-center.svg +6 -0
  175. package/src/svg/icon-a/ic-text-align-left.svg +6 -0
  176. package/src/svg/icon-a/ic-text-align-right.svg +6 -0
  177. package/src/svg/icon-a/ic-text-bold.svg +7 -0
  178. package/src/svg/icon-a/ic-text-italic.svg +6 -0
  179. package/src/svg/icon-a/ic-text-underline.svg +7 -0
  180. package/src/svg/icon-a/ic-text.svg +7 -0
  181. package/src/svg/icon-a/ic-undo.svg +7 -0
  182. package/src/svg/icon-a/ic-zoom-hand.svg +8 -0
  183. package/src/svg/icon-a/ic-zoom-zoom-in.svg +10 -0
  184. package/src/svg/icon-a/ic-zoom-zoom-out.svg +9 -0
  185. package/src/svg/icon-a/img-bi.svg +5 -0
  186. package/src/svg/icon-b/ic-apply.svg +6 -0
  187. package/src/svg/icon-b/ic-cancel.svg +6 -0
  188. package/src/svg/icon-b/ic-crop.svg +7 -0
  189. package/src/svg/icon-b/ic-delete-all.svg +6 -0
  190. package/src/svg/icon-b/ic-delete.svg +6 -0
  191. package/src/svg/icon-b/ic-draw-free.svg +5 -0
  192. package/src/svg/icon-b/ic-draw-line.svg +5 -0
  193. package/src/svg/icon-b/ic-draw.svg +6 -0
  194. package/src/svg/icon-b/ic-filter.svg +7 -0
  195. package/src/svg/icon-b/ic-flip-reset.svg +7 -0
  196. package/src/svg/icon-b/ic-flip-x.svg +6 -0
  197. package/src/svg/icon-b/ic-flip-y.svg +6 -0
  198. package/src/svg/icon-b/ic-flip.svg +6 -0
  199. package/src/svg/icon-b/ic-history-check.svg +5 -0
  200. package/src/svg/icon-b/ic-history-crop.svg +7 -0
  201. package/src/svg/icon-b/ic-history-delete.svg +9 -0
  202. package/src/svg/icon-b/ic-history-draw.svg +7 -0
  203. package/src/svg/icon-b/ic-history-filter.svg +8 -0
  204. package/src/svg/icon-b/ic-history-flip.svg +6 -0
  205. package/src/svg/icon-b/ic-history-group.svg +9 -0
  206. package/src/svg/icon-b/ic-history-icon.svg +6 -0
  207. package/src/svg/icon-b/ic-history-load.svg +7 -0
  208. package/src/svg/icon-b/ic-history-mask.svg +9 -0
  209. package/src/svg/icon-b/ic-history-resize.svg +12 -0
  210. package/src/svg/icon-b/ic-history-rotate.svg +16 -0
  211. package/src/svg/icon-b/ic-history-shape.svg +7 -0
  212. package/src/svg/icon-b/ic-history-text.svg +8 -0
  213. package/src/svg/icon-b/ic-history.svg +6 -0
  214. package/src/svg/icon-b/ic-icon-arrow-2.svg +5 -0
  215. package/src/svg/icon-b/ic-icon-arrow-3.svg +5 -0
  216. package/src/svg/icon-b/ic-icon-arrow.svg +5 -0
  217. package/src/svg/icon-b/ic-icon-bubble.svg +5 -0
  218. package/src/svg/icon-b/ic-icon-heart.svg +5 -0
  219. package/src/svg/icon-b/ic-icon-load.svg +8 -0
  220. package/src/svg/icon-b/ic-icon-location.svg +8 -0
  221. package/src/svg/icon-b/ic-icon-polygon.svg +5 -0
  222. package/src/svg/icon-b/ic-icon-star-2.svg +5 -0
  223. package/src/svg/icon-b/ic-icon-star.svg +5 -0
  224. package/src/svg/icon-b/ic-icon.svg +5 -0
  225. package/src/svg/icon-b/ic-mask-load.svg +8 -0
  226. package/src/svg/icon-b/ic-mask.svg +6 -0
  227. package/src/svg/icon-b/ic-redo.svg +7 -0
  228. package/src/svg/icon-b/ic-reset.svg +7 -0
  229. package/src/svg/icon-b/ic-resize.svg +13 -0
  230. package/src/svg/icon-b/ic-rotate-clockwise.svg +7 -0
  231. package/src/svg/icon-b/ic-rotate-counterclockwise.svg +7 -0
  232. package/src/svg/icon-b/ic-rotate.svg +7 -0
  233. package/src/svg/icon-b/ic-shape-circle.svg +5 -0
  234. package/src/svg/icon-b/ic-shape-rectangle.svg +5 -0
  235. package/src/svg/icon-b/ic-shape-triangle.svg +5 -0
  236. package/src/svg/icon-b/ic-shape.svg +6 -0
  237. package/src/svg/icon-b/ic-text-align-center.svg +6 -0
  238. package/src/svg/icon-b/ic-text-align-left.svg +6 -0
  239. package/src/svg/icon-b/ic-text-align-right.svg +6 -0
  240. package/src/svg/icon-b/ic-text-bold.svg +7 -0
  241. package/src/svg/icon-b/ic-text-italic.svg +6 -0
  242. package/src/svg/icon-b/ic-text-underline.svg +7 -0
  243. package/src/svg/icon-b/ic-text.svg +7 -0
  244. package/src/svg/icon-b/ic-undo.svg +7 -0
  245. package/src/svg/icon-b/ic-zoom-hand.svg +8 -0
  246. package/src/svg/icon-b/ic-zoom-zoom-in.svg +12 -0
  247. package/src/svg/icon-b/ic-zoom-zoom-out.svg +11 -0
  248. package/src/svg/icon-b/img-bi.svg +5 -0
  249. package/src/svg/icon-c/ic-apply.svg +6 -0
  250. package/src/svg/icon-c/ic-cancel.svg +6 -0
  251. package/src/svg/icon-c/ic-crop.svg +7 -0
  252. package/src/svg/icon-c/ic-delete-all.svg +6 -0
  253. package/src/svg/icon-c/ic-delete.svg +6 -0
  254. package/src/svg/icon-c/ic-draw-free.svg +5 -0
  255. package/src/svg/icon-c/ic-draw-line.svg +5 -0
  256. package/src/svg/icon-c/ic-draw.svg +6 -0
  257. package/src/svg/icon-c/ic-filter.svg +7 -0
  258. package/src/svg/icon-c/ic-flip-reset.svg +7 -0
  259. package/src/svg/icon-c/ic-flip-x.svg +6 -0
  260. package/src/svg/icon-c/ic-flip-y.svg +6 -0
  261. package/src/svg/icon-c/ic-flip.svg +6 -0
  262. package/src/svg/icon-c/ic-history-check.svg +5 -0
  263. package/src/svg/icon-c/ic-history-crop.svg +7 -0
  264. package/src/svg/icon-c/ic-history-delete.svg +9 -0
  265. package/src/svg/icon-c/ic-history-draw.svg +7 -0
  266. package/src/svg/icon-c/ic-history-filter.svg +8 -0
  267. package/src/svg/icon-c/ic-history-flip.svg +6 -0
  268. package/src/svg/icon-c/ic-history-group.svg +9 -0
  269. package/src/svg/icon-c/ic-history-icon.svg +6 -0
  270. package/src/svg/icon-c/ic-history-load.svg +7 -0
  271. package/src/svg/icon-c/ic-history-mask.svg +9 -0
  272. package/src/svg/icon-c/ic-history-resize.svg +12 -0
  273. package/src/svg/icon-c/ic-history-rotate.svg +16 -0
  274. package/src/svg/icon-c/ic-history-shape.svg +7 -0
  275. package/src/svg/icon-c/ic-history-text.svg +8 -0
  276. package/src/svg/icon-c/ic-history.svg +6 -0
  277. package/src/svg/icon-c/ic-icon-arrow-2.svg +5 -0
  278. package/src/svg/icon-c/ic-icon-arrow-3.svg +5 -0
  279. package/src/svg/icon-c/ic-icon-arrow.svg +5 -0
  280. package/src/svg/icon-c/ic-icon-bubble.svg +5 -0
  281. package/src/svg/icon-c/ic-icon-heart.svg +5 -0
  282. package/src/svg/icon-c/ic-icon-load.svg +8 -0
  283. package/src/svg/icon-c/ic-icon-location.svg +8 -0
  284. package/src/svg/icon-c/ic-icon-polygon.svg +5 -0
  285. package/src/svg/icon-c/ic-icon-star-2.svg +5 -0
  286. package/src/svg/icon-c/ic-icon-star.svg +5 -0
  287. package/src/svg/icon-c/ic-icon.svg +5 -0
  288. package/src/svg/icon-c/ic-mask-load.svg +8 -0
  289. package/src/svg/icon-c/ic-mask.svg +6 -0
  290. package/src/svg/icon-c/ic-redo.svg +7 -0
  291. package/src/svg/icon-c/ic-reset.svg +7 -0
  292. package/src/svg/icon-c/ic-resize.svg +13 -0
  293. package/src/svg/icon-c/ic-rotate-clockwise.svg +7 -0
  294. package/src/svg/icon-c/ic-rotate-counterclockwise.svg +7 -0
  295. package/src/svg/icon-c/ic-rotate.svg +7 -0
  296. package/src/svg/icon-c/ic-shape-circle.svg +5 -0
  297. package/src/svg/icon-c/ic-shape-rectangle.svg +5 -0
  298. package/src/svg/icon-c/ic-shape-triangle.svg +5 -0
  299. package/src/svg/icon-c/ic-shape.svg +6 -0
  300. package/src/svg/icon-c/ic-text-align-center.svg +6 -0
  301. package/src/svg/icon-c/ic-text-align-left.svg +6 -0
  302. package/src/svg/icon-c/ic-text-align-right.svg +6 -0
  303. package/src/svg/icon-c/ic-text-bold.svg +7 -0
  304. package/src/svg/icon-c/ic-text-italic.svg +6 -0
  305. package/src/svg/icon-c/ic-text-underline.svg +7 -0
  306. package/src/svg/icon-c/ic-text.svg +7 -0
  307. package/src/svg/icon-c/ic-undo.svg +7 -0
  308. package/src/svg/icon-c/ic-zoom-hand.svg +8 -0
  309. package/src/svg/icon-c/ic-zoom-zoom-in.svg +12 -0
  310. package/src/svg/icon-c/ic-zoom-zoom-out.svg +11 -0
  311. package/src/svg/icon-c/img-bi.svg +5 -0
  312. package/src/svg/icon-d/ic-apply.svg +6 -0
  313. package/src/svg/icon-d/ic-cancel.svg +6 -0
  314. package/src/svg/icon-d/ic-crop.svg +7 -0
  315. package/src/svg/icon-d/ic-delete-all.svg +6 -0
  316. package/src/svg/icon-d/ic-delete.svg +6 -0
  317. package/src/svg/icon-d/ic-draw-free.svg +5 -0
  318. package/src/svg/icon-d/ic-draw-line.svg +5 -0
  319. package/src/svg/icon-d/ic-draw.svg +6 -0
  320. package/src/svg/icon-d/ic-filter.svg +7 -0
  321. package/src/svg/icon-d/ic-flip-reset.svg +7 -0
  322. package/src/svg/icon-d/ic-flip-x.svg +6 -0
  323. package/src/svg/icon-d/ic-flip-y.svg +6 -0
  324. package/src/svg/icon-d/ic-flip.svg +6 -0
  325. package/src/svg/icon-d/ic-history-check.svg +5 -0
  326. package/src/svg/icon-d/ic-history-crop.svg +7 -0
  327. package/src/svg/icon-d/ic-history-delete.svg +9 -0
  328. package/src/svg/icon-d/ic-history-draw.svg +7 -0
  329. package/src/svg/icon-d/ic-history-filter.svg +8 -0
  330. package/src/svg/icon-d/ic-history-flip.svg +6 -0
  331. package/src/svg/icon-d/ic-history-group.svg +9 -0
  332. package/src/svg/icon-d/ic-history-icon.svg +6 -0
  333. package/src/svg/icon-d/ic-history-load.svg +7 -0
  334. package/src/svg/icon-d/ic-history-mask.svg +9 -0
  335. package/src/svg/icon-d/ic-history-resize.svg +12 -0
  336. package/src/svg/icon-d/ic-history-rotate.svg +16 -0
  337. package/src/svg/icon-d/ic-history-shape.svg +7 -0
  338. package/src/svg/icon-d/ic-history-text.svg +8 -0
  339. package/src/svg/icon-d/ic-history.svg +6 -0
  340. package/src/svg/icon-d/ic-icon-arrow-2.svg +5 -0
  341. package/src/svg/icon-d/ic-icon-arrow-3.svg +5 -0
  342. package/src/svg/icon-d/ic-icon-arrow.svg +5 -0
  343. package/src/svg/icon-d/ic-icon-bubble.svg +5 -0
  344. package/src/svg/icon-d/ic-icon-heart.svg +5 -0
  345. package/src/svg/icon-d/ic-icon-load.svg +8 -0
  346. package/src/svg/icon-d/ic-icon-location.svg +8 -0
  347. package/src/svg/icon-d/ic-icon-polygon.svg +5 -0
  348. package/src/svg/icon-d/ic-icon-star-2.svg +5 -0
  349. package/src/svg/icon-d/ic-icon-star.svg +5 -0
  350. package/src/svg/icon-d/ic-icon.svg +5 -0
  351. package/src/svg/icon-d/ic-mask-load.svg +8 -0
  352. package/src/svg/icon-d/ic-mask.svg +6 -0
  353. package/src/svg/icon-d/ic-redo.svg +7 -0
  354. package/src/svg/icon-d/ic-reset.svg +7 -0
  355. package/src/svg/icon-d/ic-resize.svg +13 -0
  356. package/src/svg/icon-d/ic-rotate-clockwise.svg +7 -0
  357. package/src/svg/icon-d/ic-rotate-counterclockwise.svg +7 -0
  358. package/src/svg/icon-d/ic-rotate.svg +7 -0
  359. package/src/svg/icon-d/ic-shape-circle.svg +5 -0
  360. package/src/svg/icon-d/ic-shape-rectangle.svg +5 -0
  361. package/src/svg/icon-d/ic-shape-triangle.svg +5 -0
  362. package/src/svg/icon-d/ic-shape.svg +6 -0
  363. package/src/svg/icon-d/ic-text-align-center.svg +6 -0
  364. package/src/svg/icon-d/ic-text-align-left.svg +6 -0
  365. package/src/svg/icon-d/ic-text-align-right.svg +6 -0
  366. package/src/svg/icon-d/ic-text-bold.svg +7 -0
  367. package/src/svg/icon-d/ic-text-italic.svg +6 -0
  368. package/src/svg/icon-d/ic-text-underline.svg +7 -0
  369. package/src/svg/icon-d/ic-text.svg +7 -0
  370. package/src/svg/icon-d/ic-undo.svg +7 -0
  371. package/src/svg/icon-d/ic-zoom-hand.svg +8 -0
  372. package/src/svg/icon-d/ic-zoom-zoom-in.svg +12 -0
  373. package/src/svg/icon-d/ic-zoom-zoom-out.svg +11 -0
  374. package/src/svg/icon-d/img-bi.svg +5 -0
@@ -0,0 +1,131 @@
1
+ import extend from 'tui-code-snippet/object/extend';
2
+ import errorMessage from '@/factory/errorMessage';
3
+
4
+ const createMessage = errorMessage.create;
5
+ const errorTypes = errorMessage.types;
6
+
7
+ /**
8
+ * Command class
9
+ * @class
10
+ * @param {{name:function, execute: function, undo: function,
11
+ * executeCallback: function, undoCallback: function}} actions - Command actions
12
+ * @param {Array} args - passing arguments on execute, undo
13
+ * @ignore
14
+ */
15
+ class Command {
16
+ constructor(actions, args) {
17
+ /**
18
+ * command name
19
+ * @type {string}
20
+ */
21
+ this.name = actions.name;
22
+
23
+ /**
24
+ * arguments
25
+ * @type {Array}
26
+ */
27
+ this.args = args;
28
+
29
+ /**
30
+ * Execute function
31
+ * @type {function}
32
+ */
33
+ this.execute = actions.execute;
34
+
35
+ /**
36
+ * Undo function
37
+ * @type {function}
38
+ */
39
+ this.undo = actions.undo;
40
+
41
+ /**
42
+ * executeCallback
43
+ * @type {function}
44
+ */
45
+ this.executeCallback = actions.executeCallback || null;
46
+
47
+ /**
48
+ * undoCallback
49
+ * @type {function}
50
+ */
51
+ this.undoCallback = actions.undoCallback || null;
52
+
53
+ /**
54
+ * data for undo
55
+ * @type {Object}
56
+ */
57
+ this.undoData = {};
58
+ }
59
+
60
+ /**
61
+ * Execute action
62
+ * @param {Object.<string, Component>} compMap - Components injection
63
+ * @abstract
64
+ */
65
+ execute() {
66
+ throw new Error(createMessage(errorTypes.UN_IMPLEMENTATION, 'execute'));
67
+ }
68
+
69
+ /**
70
+ * Undo action
71
+ * @param {Object.<string, Component>} compMap - Components injection
72
+ * @abstract
73
+ */
74
+ undo() {
75
+ throw new Error(createMessage(errorTypes.UN_IMPLEMENTATION, 'undo'));
76
+ }
77
+
78
+ /**
79
+ * command for redo if undoData exists
80
+ * @returns {boolean} isRedo
81
+ */
82
+ get isRedo() {
83
+ return Object.keys(this.undoData).length > 0;
84
+ }
85
+
86
+ /**
87
+ * Set undoData action
88
+ * @param {Object} undoData - maked undo data
89
+ * @param {Object} cachedUndoDataForSilent - cached undo data
90
+ * @param {boolean} isSilent - is silent execution or not
91
+ * @returns {Object} cachedUndoDataForSilent
92
+ */
93
+ setUndoData(undoData, cachedUndoDataForSilent, isSilent) {
94
+ if (cachedUndoDataForSilent) {
95
+ undoData = cachedUndoDataForSilent;
96
+ }
97
+
98
+ if (!isSilent) {
99
+ extend(this.undoData, undoData);
100
+ cachedUndoDataForSilent = null;
101
+ } else if (!cachedUndoDataForSilent) {
102
+ cachedUndoDataForSilent = undoData;
103
+ }
104
+
105
+ return cachedUndoDataForSilent;
106
+ }
107
+
108
+ /**
109
+ * Attach execute callabck
110
+ * @param {function} callback - Callback after execution
111
+ * @returns {Command} this
112
+ */
113
+ setExecuteCallback(callback) {
114
+ this.executeCallback = callback;
115
+
116
+ return this;
117
+ }
118
+
119
+ /**
120
+ * Attach undo callback
121
+ * @param {function} callback - Callback after undo
122
+ * @returns {Command} this
123
+ */
124
+ setUndoCallback(callback) {
125
+ this.undoCallback = callback;
126
+
127
+ return this;
128
+ }
129
+ }
130
+
131
+ export default Command;
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Component interface
3
+ * @class
4
+ * @param {string} name - component name
5
+ * @param {Graphics} graphics - Graphics instance
6
+ * @ignore
7
+ */
8
+ class Component {
9
+ constructor(name, graphics) {
10
+ /**
11
+ * Component name
12
+ * @type {string}
13
+ */
14
+ this.name = name;
15
+
16
+ /**
17
+ * Graphics instance
18
+ * @type {Graphics}
19
+ */
20
+ this.graphics = graphics;
21
+ }
22
+
23
+ /**
24
+ * Fire Graphics event
25
+ * @returns {Object} return value
26
+ */
27
+ fire(...args) {
28
+ const context = this.graphics;
29
+
30
+ return this.graphics.fire.apply(context, args);
31
+ }
32
+
33
+ /**
34
+ * Save image(background) of canvas
35
+ * @param {string} name - Name of image
36
+ * @param {fabric.Image} oImage - Fabric image instance
37
+ */
38
+ setCanvasImage(name, oImage) {
39
+ this.graphics.setCanvasImage(name, oImage);
40
+ }
41
+
42
+ /**
43
+ * Returns canvas element of fabric.Canvas[[lower-canvas]]
44
+ * @returns {HTMLCanvasElement}
45
+ */
46
+ getCanvasElement() {
47
+ return this.graphics.getCanvasElement();
48
+ }
49
+
50
+ /**
51
+ * Get fabric.Canvas instance
52
+ * @returns {fabric.Canvas}
53
+ */
54
+ getCanvas() {
55
+ return this.graphics.getCanvas();
56
+ }
57
+
58
+ /**
59
+ * Get canvasImage (fabric.Image instance)
60
+ * @returns {fabric.Image}
61
+ */
62
+ getCanvasImage() {
63
+ return this.graphics.getCanvasImage();
64
+ }
65
+
66
+ /**
67
+ * Get image name
68
+ * @returns {string}
69
+ */
70
+ getImageName() {
71
+ return this.graphics.getImageName();
72
+ }
73
+
74
+ /**
75
+ * Get image editor
76
+ * @returns {ImageEditor}
77
+ */
78
+ getEditor() {
79
+ return this.graphics.getEditor();
80
+ }
81
+
82
+ /**
83
+ * Return component name
84
+ * @returns {string}
85
+ */
86
+ getName() {
87
+ return this.name;
88
+ }
89
+
90
+ /**
91
+ * Set image properties
92
+ * @param {Object} setting - Image properties
93
+ * @param {boolean} [withRendering] - If true, The changed image will be reflected in the canvas
94
+ */
95
+ setImageProperties(setting, withRendering) {
96
+ this.graphics.setImageProperties(setting, withRendering);
97
+ }
98
+
99
+ /**
100
+ * Set canvas dimension - css only
101
+ * @param {Object} dimension - Canvas css dimension
102
+ */
103
+ setCanvasCssDimension(dimension) {
104
+ this.graphics.setCanvasCssDimension(dimension);
105
+ }
106
+
107
+ /**
108
+ * Set canvas dimension - css only
109
+ * @param {Object} dimension - Canvas backstore dimension
110
+ */
111
+ setCanvasBackstoreDimension(dimension) {
112
+ this.graphics.setCanvasBackstoreDimension(dimension);
113
+ }
114
+
115
+ /**
116
+ * Adjust canvas dimension with scaling image
117
+ */
118
+ adjustCanvasDimension() {
119
+ this.graphics.adjustCanvasDimension();
120
+ }
121
+
122
+ adjustCanvasDimensionBase() {
123
+ this.graphics.adjustCanvasDimensionBase();
124
+ }
125
+ }
126
+
127
+ export default Component;
@@ -0,0 +1,47 @@
1
+ import errorMessage from '@/factory/errorMessage';
2
+
3
+ const createMessage = errorMessage.create;
4
+ const errorTypes = errorMessage.types;
5
+
6
+ /**
7
+ * DrawingMode interface
8
+ * @class
9
+ * @param {string} name - drawing mode name
10
+ * @ignore
11
+ */
12
+ class DrawingMode {
13
+ constructor(name) {
14
+ /**
15
+ * the name of drawing mode
16
+ * @type {string}
17
+ */
18
+ this.name = name;
19
+ }
20
+
21
+ /**
22
+ * Get this drawing mode name;
23
+ * @returns {string} drawing mode name
24
+ */
25
+ getName() {
26
+ return this.name;
27
+ }
28
+
29
+ /**
30
+ * start this drawing mode
31
+ * @param {Object} options - drawing mode options
32
+ * @abstract
33
+ */
34
+ start() {
35
+ throw new Error(createMessage(errorTypes.UN_IMPLEMENTATION, 'start'));
36
+ }
37
+
38
+ /**
39
+ * stop this drawing mode
40
+ * @abstract
41
+ */
42
+ end() {
43
+ throw new Error(createMessage(errorTypes.UN_IMPLEMENTATION, 'stop'));
44
+ }
45
+ }
46
+
47
+ export default DrawingMode;
@@ -0,0 +1,292 @@
1
+ import isString from 'tui-code-snippet/type/isString';
2
+ import CustomEvents from 'tui-code-snippet/customEvents/customEvents';
3
+ import commandFactory from '@/factory/command';
4
+ import { isFunction } from '@/util';
5
+ import { eventNames, rejectMessages } from '@/consts';
6
+
7
+ /**
8
+ * Invoker
9
+ * @class
10
+ * @ignore
11
+ */
12
+ class Invoker {
13
+ constructor() {
14
+ /**
15
+ * Undo stack
16
+ * @type {Array.<Command>}
17
+ * @private
18
+ */
19
+ this._undoStack = [];
20
+
21
+ /**
22
+ * Redo stack
23
+ * @type {Array.<Command>}
24
+ * @private
25
+ */
26
+ this._redoStack = [];
27
+
28
+ /**
29
+ * Lock-flag for executing command
30
+ * @type {boolean}
31
+ * @private
32
+ */
33
+ this._isLocked = false;
34
+
35
+ this._isSilent = false;
36
+ }
37
+
38
+ /**
39
+ * Invoke command execution
40
+ * @param {Command} command - Command
41
+ * @param {boolean} [isRedo=false] - check if command is redo
42
+ * @returns {Promise}
43
+ * @private
44
+ */
45
+ _invokeExecution(command, isRedo = false) {
46
+ this.lock();
47
+
48
+ let { args } = command;
49
+ if (!args) {
50
+ args = [];
51
+ }
52
+
53
+ return command
54
+ .execute(...args)
55
+ .then((value) => {
56
+ if (!this._isSilent) {
57
+ this.pushUndoStack(command);
58
+
59
+ this.fire(isRedo ? eventNames.AFTER_REDO : eventNames.EXECUTE_COMMAND, command);
60
+ }
61
+ this.unlock();
62
+ if (isFunction(command.executeCallback)) {
63
+ command.executeCallback(value);
64
+ }
65
+
66
+ return value;
67
+ })
68
+ ['catch']((message) => {
69
+ this.unlock();
70
+
71
+ return Promise.reject(message);
72
+ });
73
+ }
74
+
75
+ /**
76
+ * Invoke command undo
77
+ * @param {Command} command - Command
78
+ * @returns {Promise}
79
+ * @private
80
+ */
81
+ _invokeUndo(command) {
82
+ this.lock();
83
+
84
+ let { args } = command;
85
+ if (!args) {
86
+ args = [];
87
+ }
88
+
89
+ return command
90
+ .undo(...args)
91
+ .then((value) => {
92
+ this.pushRedoStack(command);
93
+ this.fire(eventNames.AFTER_UNDO, command);
94
+ this.unlock();
95
+ if (isFunction(command.undoCallback)) {
96
+ command.undoCallback(value);
97
+ }
98
+
99
+ return value;
100
+ })
101
+ ['catch']((message) => {
102
+ this.unlock();
103
+
104
+ return Promise.reject(message);
105
+ });
106
+ }
107
+
108
+ /**
109
+ * fire REDO_STACK_CHANGED event
110
+ * @private
111
+ */
112
+ _fireRedoStackChanged() {
113
+ this.fire(eventNames.REDO_STACK_CHANGED, this._redoStack.length);
114
+ }
115
+
116
+ /**
117
+ * fire UNDO_STACK_CHANGED event
118
+ * @private
119
+ */
120
+ _fireUndoStackChanged() {
121
+ this.fire(eventNames.UNDO_STACK_CHANGED, this._undoStack.length);
122
+ }
123
+
124
+ /**
125
+ * Lock this invoker
126
+ */
127
+ lock() {
128
+ this._isLocked = true;
129
+ }
130
+
131
+ /**
132
+ * Unlock this invoker
133
+ */
134
+ unlock() {
135
+ this._isLocked = false;
136
+ }
137
+
138
+ executeSilent(...args) {
139
+ this._isSilent = true;
140
+
141
+ return this.execute(...args, this._isSilent).then(() => {
142
+ this._isSilent = false;
143
+ });
144
+ }
145
+
146
+ /**
147
+ * Invoke command
148
+ * Store the command to the undoStack
149
+ * Clear the redoStack
150
+ * @param {String} commandName - Command name
151
+ * @param {...*} args - Arguments for creating command
152
+ * @returns {Promise}
153
+ */
154
+ execute(...args) {
155
+ if (this._isLocked) {
156
+ return Promise.reject(rejectMessages.isLock);
157
+ }
158
+
159
+ let [command] = args;
160
+ if (isString(command)) {
161
+ command = commandFactory.create(...args);
162
+ }
163
+
164
+ return this._invokeExecution(command).then((value) => {
165
+ this.clearRedoStack();
166
+
167
+ return value;
168
+ });
169
+ }
170
+
171
+ /**
172
+ * Undo command
173
+ * @returns {Promise}
174
+ */
175
+ undo() {
176
+ let command = this._undoStack.pop();
177
+ let promise;
178
+ let message = '';
179
+
180
+ if (command && this._isLocked) {
181
+ this.pushUndoStack(command, true);
182
+ command = null;
183
+ }
184
+ if (command) {
185
+ if (this.isEmptyUndoStack()) {
186
+ this._fireUndoStackChanged();
187
+ }
188
+ promise = this._invokeUndo(command);
189
+ } else {
190
+ message = rejectMessages.undo;
191
+ if (this._isLocked) {
192
+ message = `${message} Because ${rejectMessages.isLock}`;
193
+ }
194
+ promise = Promise.reject(message);
195
+ }
196
+
197
+ return promise;
198
+ }
199
+
200
+ /**
201
+ * Redo command
202
+ * @returns {Promise}
203
+ */
204
+ redo() {
205
+ let command = this._redoStack.pop();
206
+ let promise;
207
+ let message = '';
208
+
209
+ if (command && this._isLocked) {
210
+ this.pushRedoStack(command, true);
211
+ command = null;
212
+ }
213
+ if (command) {
214
+ if (this.isEmptyRedoStack()) {
215
+ this._fireRedoStackChanged();
216
+ }
217
+ promise = this._invokeExecution(command, true);
218
+ } else {
219
+ message = rejectMessages.redo;
220
+ if (this._isLocked) {
221
+ message = `${message} Because ${rejectMessages.isLock}`;
222
+ }
223
+ promise = Promise.reject(message);
224
+ }
225
+
226
+ return promise;
227
+ }
228
+
229
+ /**
230
+ * Push undo stack
231
+ * @param {Command} command - command
232
+ * @param {boolean} [isSilent] - Fire event or not
233
+ */
234
+ pushUndoStack(command, isSilent) {
235
+ this._undoStack.push(command);
236
+ if (!isSilent) {
237
+ this._fireUndoStackChanged();
238
+ }
239
+ }
240
+
241
+ /**
242
+ * Push redo stack
243
+ * @param {Command} command - command
244
+ * @param {boolean} [isSilent] - Fire event or not
245
+ */
246
+ pushRedoStack(command, isSilent) {
247
+ this._redoStack.push(command);
248
+ if (!isSilent) {
249
+ this._fireRedoStackChanged();
250
+ }
251
+ }
252
+
253
+ /**
254
+ * Return whether the redoStack is empty
255
+ * @returns {boolean}
256
+ */
257
+ isEmptyRedoStack() {
258
+ return this._redoStack.length === 0;
259
+ }
260
+
261
+ /**
262
+ * Return whether the undoStack is empty
263
+ * @returns {boolean}
264
+ */
265
+ isEmptyUndoStack() {
266
+ return this._undoStack.length === 0;
267
+ }
268
+
269
+ /**
270
+ * Clear undoStack
271
+ */
272
+ clearUndoStack() {
273
+ if (!this.isEmptyUndoStack()) {
274
+ this._undoStack = [];
275
+ this._fireUndoStackChanged();
276
+ }
277
+ }
278
+
279
+ /**
280
+ * Clear redoStack
281
+ */
282
+ clearRedoStack() {
283
+ if (!this.isEmptyRedoStack()) {
284
+ this._redoStack = [];
285
+ this._fireRedoStackChanged();
286
+ }
287
+ }
288
+ }
289
+
290
+ CustomEvents.mixin(Invoker);
291
+
292
+ export default Invoker;